Editar Cliente
Exportar contenido
Actualiza la informacion de un cliente existente.
- Localiza el cliente en la lista.
- Clic en el icono de lapiz (Editar) en la columna Acciones — se abre el formulario.
- Modifica los campos necesarios.
- 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.
Campos editables
Sección titulada «Campos editables»Todos los campos descritos en Crear Cliente son editables, excepto:
- El ID del cliente (generado automaticamente).
- La fecha de creacion (historica).
Como se que lo hice bien
Sección titulada «Como se que lo hice bien»- 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.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solucion |
|---|---|---|
| ”Cliente no encontrado” | ID invalido o cliente eliminado | Verifica que el cliente existe |
| Errores de validacion | Mismos que en Crear Cliente | Revisa Errores comunes de Crear Cliente |
🔧 Detalles Tecnicos — Editar Cliente
Validaciones:
- Mismas validaciones que Crear Cliente (VAL-01 a VAL-11)
Tablas involucradas:
customers— UPDATE dondeid = '<customer_id>'
Advertencias:
- Si
COUNT(invoices WHERE customer_id = '<id>') > 0→ mostrar alerta antes de guardar
Queries de diagnostico:
-- Cliente con facturas asociadasSELECT c.*, COUNT(i.id) as invoice_countFROM customers cLEFT JOIN invoices i ON i.customer_id = c.idWHERE c.id = '<customer_id>'GROUP BY c.id;
-- Historial de cambios (si existe auditoria)SELECT * FROM audit_logWHERE 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, concustomerIdprop) - Carga datos:
loadCustomer(id)enuseEffect