6. Clientes
Cubre contacts tipo client (el módulo de proveedores comparte el mismo backend — ver 4. Inventario y compras para los casos específicos de supplier). Aquí se prueban los casos propios de la relación cliente↔venta y la usabilidad del CRUD.
Historial de ejecución
| Ciclo | Fecha | Ejecutado por | Casos ejecutados | Resultado |
|---|---|---|---|---|
| 1 | — | — | — | Pendiente |
CP CLI-01: Crear cliente con solo nombre
- Resultado esperado: se crea sin problema;
phone/extraquedan vacíos.- Resultado obtenido: Pendiente.
CP CLI-02: Crear cliente con email con formato inválido
- Objetivo: el DTO de
contactsno tienebinding:"email"en el campoauth/people) — probar si de verdad acepta cualquier string.- Resultado esperado a verificar: si lo acepta, confirmar si esto causa problemas después (ej. al enviar un recibo por correo, o en el reporte de clientes).
- Resultado obtenido: Pendiente.
CP CLI-03: Crear dos clientes con el mismo email
- Resultado esperado a verificar: a diferencia de
auth_users,contacts.emailno tiene índice único — confirmar que efectivamente permite duplicados. Si el negocio espera que el email identifique a un cliente único, esto es un hallazgo a reportar.- Resultado obtenido: Pendiente.
CP CLI-04: Asociar un cliente existente a una venta (
customer_id) vs. escribir el nombre libre (customer_name)
- Pasos: hacer una venta eligiendo un cliente ya registrado, y otra venta solo escribiendo un nombre sin buscarlo en la lista.
- Resultado esperado: ambas deben guardarse correctamente; confirmar que el reporte de ventas muestra el nombre correcto en los dos casos, y que elegir un cliente existente no es obligatorio para completar una venta.
- Resultado obtenido: Pendiente.
CP CLI-05: Desactivar un cliente (
is_active=false) que tiene ventas históricas
- Resultado esperado: no debe borrar ni afectar las ventas pasadas; solo debería dejar de aparecer como opción al buscar clientes en una venta nueva (confirmar si el buscador del POS realmente filtra por
is_active).- Resultado obtenido: Pendiente.
CP CLI-06: Buscar cliente por nombre parcial en el selector del POS
- Resultado esperado: debe encontrar coincidencias parciales/insensibles a mayúsculas (ej. buscar “juan” encuentra “Juan Pérez”).
- Resultado obtenido: Pendiente.
CP CLI-07: Borrar un cliente que tiene ventas asociadas
- Resultado esperado a verificar: ¿se permite el borrado (soft-delete)? Confirmar que las ventas que lo referencian por
customer_idno queden rotas al mostrarlas (deberían seguir mostrando el nombre guardado en la venta, no depender de una consulta en vivo al contacto).- Resultado obtenido: Pendiente.
Notas de usabilidad y sugerencias
Se completa durante la ejecución.