feat(mejoras): 25 mejoras UX en todos los módulos + purga Monday

Backend: mi-dia siempre local, vocabulario canónico, AplicacionPago con usuario
Mi día: modal español real, cita desde modal, score falso eliminado
Cotizador: barra sticky, persistencia local con folio
Alta Clientes: redirect eliminado, foto conectada, asesor desde sesión, refs dinámicas
Cobranza: contrato Mora arreglado, link a Plan, abono próximo pago, WhatsApp
Landing: contactos locales, ModalContacto eliminado, ModoTrabajo eliminado
Dashboards: MiTablero unificado, funnel con descartados, drill-down, rango fechas
Chat FRASA: corpus 5 desarrollos, 6 herramientas, historial conversaciones

69 archivos, 7 apps construidas
This commit is contained in:
2026-09-11 06:52:37 +00:00
parent 075d47c304
commit 64b01246d6
69 changed files with 1600 additions and 1133 deletions

View File

@@ -162,10 +162,11 @@ describe('detalleContactoLocal', () => {
expect(detalle.contacto).toMatchObject({
nombre: 'JUAN PÉREZ',
Teléfono: '4771234567',
Email: 'juan@correo.mx',
CURP: 'CURP123',
RFC: 'RFC123',
telefono: '4771234567',
email: 'juan@correo.mx',
estado: 'Cliente',
curp: 'CURP123',
rfc: 'RFC123',
})
expect(detalle.propiedad).toMatchObject({
id: 'loc_a1',
@@ -203,7 +204,7 @@ describe('detalleContactoLocal', () => {
const detalle = await detalleContactoLocal('loc_1')
expect(detalle).not.toBeNull()
if (detalle === null) return
expect(detalle.contacto).toMatchObject({ nombre: 'ANA DEMO', Teléfono: '6649998877', Estado: 'Afluencia' })
expect(detalle.contacto).toMatchObject({ nombre: 'ANA DEMO', telefono: '6649998877', estado: 'Afluencia' })
expect(detalle.propiedad).toBeNull()
expect(detalle.relaciones.oportunidades).toHaveLength(1)
expect(detalle.historial.length).toBeGreaterThan(0)