feat(unidades): pipeline de 10 etapas por unidad + sync desde Reporte_EstatusVenta

- Columna Etapa en Monday Unidades (10 labels oficiales), 155 unidades pobladas
- sync-etapas.ts idempotente (--archivo/--dry-run/--semilla) con traspasos
  Vendido→Escrituración y Escriturado→SAC como actividades (sin retroactivas)
- API: etapa en unidades + porEtapa en /api/reportes/resumen
- Dashboard: gráfica pipeline por etapa + KPI en notaría; cotizador muestra etapa
- 28 cambios aplicados desde Reporte_EstatusVenta (8 avances, 20 nuevas);
  contradicciones retenidas para revisión humana (documentadas)
- Tests: api 168, dashboards 9, cotizador 71
This commit is contained in:
2026-08-28 04:43:02 +00:00
parent 04de7d703f
commit 9e04b76616
16 changed files with 697 additions and 4 deletions

View File

@@ -1,5 +1,31 @@
# Proceso de venta y apartado
## Pipeline de 10 etapas por unidad
Cada unidad avanza por un pipeline de 10 etapas (vocabulario oficial, en orden). En Monday vive en la columna status **Etapa** del tablero Unidades; en el maestro ERP (Enkontrol) las etapas aparecen en mayúsculas y sin acentos (APARTADO, RESERVADO, VENDIDO, INTEGRACION, EN ANALISIS, AUTORIZADO, NOTARIA, ESCRITURADO, ENTREGA, POSTVENTA):
1. **Apartado** — el cliente apartó la unidad (pago de apartado).
2. **Reserva** — unidad reservada.
3. **Vendido** — venta formalizada (apartado + enganche + contrato firmado).
4. **Integración** — se integra el expediente del cliente.
5. **En Análisis** — expediente en análisis (crédito / antilavado).
6. **Autorizado** — crédito o pago autorizado.
7. **Notaría** — trámite en notaría.
8. **Escriturado** — escritura firmada.
9. **Entrega** — unidad entregada al cliente.
10. **PostVenta** — seguimiento posterior a la entrega.
### Traspasos de departamento
- Al pasar a **Vendido**, la administración de la venta pasa de Ventas a **Escrituración**. El script de sincronización (`npm run sync:etapas`) genera la actividad "Venta de {unidad} lista para Escrituración".
- Al pasar a **Escriturado**, la administración pasa de Escrituración a **SAC** (Servicio de Atención al Cliente). El script genera la actividad "{unidad} escriturado: pasa a SAC".
Las actividades de traspaso tienen dedup persistente (`traspaso:<unidad>:<etapa>`): solo se crean una vez por unidad y etapa, en transiciones nuevas (nunca de forma retroactiva en la carga histórica).
### Mapeo al estatus grueso (columna Disponibilidad)
El estatus grueso de inventario se deriva de la etapa: sin etapa → **DISPONIBLE**; Apartado/Reserva → **APARTADO**; Vendido/Integración/En Análisis/Autorizado/Notaría → **VENDIDO**; Escriturado/Entrega/PostVenta → **ESCRITURADO**.
## Apartado
1. El cliente elige unidad y se genera la cotización con las 4 propuestas (Bancario, Infonavit-Cofinavit, Contado y Semi-contado).