Ir al contenido

Editar Cliente

Actualiza la informacion de un cliente existente.

  1. Localiza el cliente en la lista.
  2. Clic en el icono de lapiz (Editar) en la columna Acciones — se abre el formulario.
  3. Modifica los campos necesarios.
  4. Clic en “Guardar” — cambios guardados.

ALERTA: Si el cliente tiene facturas emitidas, algunos cambios fiscales (CIF/NIF) podrian afectar la trazabilidad. El sistema mostrara una advertencia.

Todos los campos descritos en Crear Cliente son editables, excepto:

  • El ID del cliente (generado automaticamente).
  • La fecha de creacion (historica).
  • Los cambios se reflejan inmediatamente en la lista.
  • Toast de confirmacion: “Cliente actualizado correctamente”.
  • Si editaste el nombre, el cambio aparece en todas las facturas futuras.
MensajeCausaSolucion
”Cliente no encontrado”ID invalido o cliente eliminadoVerifica que el cliente existe
Errores de validacionMismos que en Crear ClienteRevisa Errores comunes de Crear Cliente
🔧 Detalles Tecnicos — Editar Cliente

Validaciones:

  • Mismas validaciones que Crear Cliente (VAL-01 a VAL-11)

Tablas involucradas:

  • customers — UPDATE donde id = '<customer_id>'

Advertencias:

  • Si COUNT(invoices WHERE customer_id = '<id>') > 0 → mostrar alerta antes de guardar

Queries de diagnostico:

-- Cliente con facturas asociadas
SELECT c.*, COUNT(i.id) as invoice_count
FROM customers c
LEFT JOIN invoices i ON i.customer_id = c.id
WHERE c.id = '<customer_id>'
GROUP BY c.id;
-- Historial de cambios (si existe auditoria)
SELECT * FROM audit_log
WHERE table_name = 'customers'
AND record_id = '<customer_id>'
ORDER BY created_at DESC;

Adapter:

  • Metodo: update(id: string, data: CustomerUpdateData): Promise<Customer>

Eventos:

  • customerUpdatedEvent — Publicado tras actualizacion exitosa
  • Payload: { customerId, changes }

Componentes:

  • Formulario: CustomerFormSheet.tsx (mismo que crear, con customerId prop)
  • Carga datos: loadCustomer(id) en useEffect