Commit Graph

21 Commits

Author SHA1 Message Date
5d1b366cbd docs(alcance): version 1.4 - importe total $70,000 IVA incluido por todo el desarrollo adicional, sin modulo de buro (se cotiza aparte) 2026-09-25 23:02:36 +00:00
d5276f4466 docs: reacomodar importes con app Android (20,000) y buro de credito (15,000) aparte, mas 3,000 de cambios web (v1.3)
- Aplicacion para Android con precio propio de $20,000.00, dentro del paquete.
- Modulo de buro de credito con precio de $15,000.00, aparte del paquete.
- Cambios en la pagina web: $3,000.00 aparte del paquete (partida 39 nueva).
- Las otras 37 partidas reacomodadas para que el paquete siga sumando $70,000.00
  con IVA incluido (verificado sumando la tabla).
- Resumen de importes en tres bloques: paquete $70,000, conceptos aparte $18,000 y
  total $88,000.00 con IVA incluido (subtotal $75,862.07 + IVA $12,137.93).
- Portada con los tres importes, fecha 23 de septiembre y control de versiones 1.3.
- PDF (19 paginas) y pagina web regenerados y publicados.
2026-09-23 00:03:22 +00:00
9d97197ba1 docs: fijar importes del desarrollo adicional (70,000 IVA incluido) e incluir app Android (v1.2)
- Seccion 10 con el importe de cada una de las 38 partidas, ya con IVA incluido;
  la suma cuadra exactamente con el total (se verifico sumando la tabla).
- Seccion 12 nueva: suma de partidas $70,000.00, subtotal $60,344.83, IVA 16%
  $9,655.17 y total a pagar $70,000.00 (setenta mil pesos 00/100 M.N.).
- Partida 38 nueva: aplicacion para Android, incluida en el importe y pendiente
  de ejecutar (hoy el sistema se instala desde el navegador como PWA).
- El modulo de buro de credito queda fuera del importe y marcado como "se cotiza
  por separado", por depender del contrato y las credenciales del buro.
- Portada con la version 1.2 y el importe total; control de versiones actualizado.
- PDF (18 paginas) y pagina web regenerados.
2026-09-22 09:59:20 +00:00
e963267f9f docs: agregar el modulo de conexion a buro de credito al documento de extras (v1.1)
- Seccion 6.9 nueva: la solicitud queda registrada como partida 37, marcada como
  PENDIENTE DE EJECUTAR (no entregada) para no inflar lo facturable.
- Incluye el alcance propuesto (consulta desde alta y contactos, consentimiento
  del titular, folio y reporte en el expediente, control de consumo y permisos)
  y los requisitos que debe entregar el cliente: contrato, credenciales de la API
  del buro y definicion de la informacion que quiere ver.
- Partida 6.9-37 en la tabla de facturacion y punto 5 en los pendientes abiertos.
- Control de versiones en la seccion 1, fecha de emision 22 de septiembre y
  cronologia actualizada. PDF (17 paginas) y pagina web regenerados.
2026-09-22 04:03:03 +00:00
e8d1c57ad5 docs: publicar el documento de alcance como pagina web privada en /doc/alcance-2f9k7d/
- scripts/generar-web-documento.py arma la pagina (barra con logotipo, boton de
  descarga del PDF, hoja centrada, tablas con scroll en pantallas chicas, modo
  oscuro automatico y estilos de impresion) y reutiliza el generador de PDF.
- La pagina se sirve con un prefijo privado en NGINX: no se enlaza desde ninguna
  app, lleva X-Robots-Tag y meta noindex, y la cache se desactiva para que los
  cambios se vean al momento.
- Se sincroniza deploy/nginx-host.conf con lo que estaba instalado en el host
  (faltaba el cache de assets immutable) y se agrega la ruta privada.
- El logotipo se reduce a tamano de pantalla: venia de un JPEG de 959 px y era el
  90% del peso del PDF (495 KB -> 240 KB), sin cambiar el diseno.
2026-09-21 19:16:48 +00:00
31abeec362 docs: generador reutilizable de PDF con portada institucional
Script que convierte cualquier documento de docs/ a PDF (portada con logotipo y
tabla de datos, encabezados de tabla repetidos, pie numerado y control de saltos
de pagina). Genera el logotipo con transparencia real: el PNG del repo trae fondo
gris y sobre la portada blanca dibujaba un rectangulo.

Con esto el PDF del documento de alcance se puede regenerar tras cualquier
cambio del markdown:
  /root/.venv-tools/bin/python scripts/generar-pdf-documento.py docs/ALCANCE-VS-ENTREGADO.md
2026-09-21 19:06:57 +00:00
7c9ed699c4 docs: alcance contratado vs. desarrollo entregado (soporte para facturar el desarrollo adicional)
Documento en markdown y PDF con:
- El alcance originalmente contratado (4 apps, API Gateway puente a Monday,
  infraestructura Docker/NGINX/SSL y checklist de 10 dias) y lo diferido (WA CRM).
- El estado entregado: 7 aplicaciones en produccion, 12 modulos, 137 endpoints,
  33 tablas, 7 roles, 1,203 pruebas automatizadas y las metricas de uso real.
- 36 partidas de desarrollo adicional solicitado fuera del alcance, con evidencia
  en commits del repositorio, mas 11 retrabajos por cambios de sentido.
- Tabla de partidas con unidad de cobro sugerida y columnas de horas e importe
  en blanco para acordarlas con el cliente.
- Seccion de pendientes abiertos (WA CRM no solicitado, reglas de SOLE y MUTUO,
  contactos del micrositio, migracion opcional a PostgreSQL/Redis).
2026-09-21 19:05:44 +00:00
2d61b3987f docs: guía de usuario FRASA CRM en PDF
Guía completa para usuarios no técnicos:
- Cómo entrar al sistema
- Mi día (leads, oportunidades, apartados, escrituración)
- Alta de clientes (afluencia + completa)
- Cotizador
- Cobranza
- Tableros
- Contactos
- Chat Hermes
- Configuraciones (admin)
- Consejos útiles

PDF: docs/Guia_Usuario_FRASA_CRM.pdf
2026-09-08 10:53:52 +00:00
a555f69dcd docs: roles, Clientes, Contactos y mejoras de Mi dia en guia y guion 2026-09-04 09:20:16 +00:00
d81797c610 docs(guia): doble via de captura (Leads rapido/manual, Oportunidades afluencia) 2026-09-04 06:10:37 +00:00
772fdef09f docs: afluencias en Oportunidades (guia y guion al dia) 2026-09-04 05:02:43 +00:00
1ab29d765e docs(guia): quitar asteriscos literales de campos obligatorios 2026-09-02 06:20:30 +00:00
b8f9742ff7 docs: guia operativa del flujo completo por area
Nueva GUIA-FLUJO-COMPLETO.md (mapa del embudo + paso a paso para
Ventas, Coordinacion, Administracion, Cobranza, Escrituracion, SAC,
DG/Obra y Agente IA, con tabla de que se ve en Monday en cada momento).
GUION-DEMO actualizado con captura completa de afluencia, Mis capturas,
Mis clientes y perfilamiento.
2026-09-02 05:31:14 +00:00
06f75ee884 docs: guion de demo reescrito — recorrido general + sección por departamento
Actualiza acceso (dominio público HTTPS), embudo afluencia→cliente,
alta progresiva PROSPECTO→CLIENTE, columnas de obra/hitos/saldos/flujo,
y pendientes honestos vigentes
2026-09-01 22:18:58 +00:00
11213b92c7 feat(monday): obra, atrasos, hitos, saldos y flujo de escrituras desde Reporte_EstatusVenta
- Script sync-obra-estatus.py (idempotente, --dry-run, retry/backoff):
  parsea ESTATUS OBRA, SENDA-ACT-AGO2026, SENDA/SOLE DG, Diagonal 38 y
  las hojas de ventas; mapea a Unidades vía maestro-unidades.json
- Board Unidades: +12 columnas (% avance obra, meses atraso, contratista,
  clave catastral, no. oficial, vendedor, broker, venc. autorización,
  fecha entrega obra, 4 checkboxes de hitos documentales) — 147 items
  actualizados (DIAGONAL 38/38, SENDA 109/142)
- Board nuevo 'Flujo Escrituras' (18429252054): 32 items mayo–ago/2026
  por proyecto/semana con escrituras e ingreso
- Board nuevo 'Saldos a Favor' (18429252069): 7 pendientes (Estanza/Sole)
- Receta nativa documentada: recordatorio 7 días antes de Venc.
  autorización al coordinador
- SOLE y MUTUO no existen como inventario en Monday: sus datos de obra
  se reportan como saltados (no se crean unidades)
2026-09-01 21:59:45 +00:00
ccd4ca78ca feat(alta): guardado progresivo por etapa con réplica a Monday
- Al avanzar cada paso del wizard: upsert silencioso del borrador local
  + sync a Monday (iniciar → Contacto en PROSPECTO; pasos siguientes →
  PATCH con los campos mapeables: datos generales, dirección armada,
  actividad económica)
- Al completar: Contacto pasa a CLIENTE + Apartado + funnel (dedup)
- progresoId viaja con el borrador (se restaura solo); fallos de sync
  no bloquean el avance (aviso ámbar no bloqueante); submit final con
  fallback al endpoint legado si nunca hubo sync
- API: POST /clientes/progreso/iniciar, PATCH /clientes/progreso/:id,
  POST /clientes/progreso/:id/completar; POST /clientes legado intacto
- Tests: API 338 (+16), alta-clientes 112 (+4); smoke en vivo
  verificado (PROSPECTO → patch → CLIENTE + Apartado) y limpiado
2026-09-01 21:03:47 +00:00
98fedbd8d3 feat(funnel): leads entran como Afluencia al funnel de Oportunidades
- Captura rápida crea lead + oportunidad en etapa Afluencia (vinculadas
  por nueva tabla LeadOportunidad); también aplica a leads creados
  directo en Monday vía webhook
- Transiciones automáticas: AGENDA CITA → Agendo Cita, descarte →
  Perdido (+ dropdown Motivo No Compra), cotización con mismo teléfono
  ACTUALIZA la oportunidad (no duplica) → Cotizador, alta de cliente
  con leadMondayId → Aparto (dedup previo para no duplicar Apartado)
- Columna Desarrollo agregada al board Oportunidades (color_mm6sa20t)
- Migración lead_oportunidad aplicada con migrate diff + resolve (la DB
  tiene drift histórico por db push; migrate dev pedía reset)
- Tests: 322 verdes; smoke en vivo verificado y limpiado
2026-09-01 20:10:51 +00:00
04941e9f80 feat(api): webhooks Monday en tiempo real + alertas de inventario cableadas
- Webhook Oportunidades: cambio de etapa dispara escaneo (Aparto→Apartado,
  Ganado→Venta) además del round-robin de leads por create_item
- Acepta los nombres reales de los eventos de Monday: create_pulse/pulseId
  y update_column_value (verificados en vivo)
- Token interno (X-Internal-Token) para que los syncs locales llamen
  POST /cotizaciones/alertas-inventario sin JWT de usuario
- sync-estatus-maestro.py notifica los cambios aplicados al endpoint de
  alertas (actividad al vendedor con cotizaciones recientes)
- Fix P1008 SQLite: escaneos del poll cron secuenciales +
  connection_limit=1 en DATABASE_URL
- Webhooks registrados en Monday sobre https://frasa.consultoria-as.com
  (Leads create_item, Oportunidades change_column_value); crons quedan
  como red de seguridad
- Docs: sección 0 en AUTOMATIZACIONES-MONDAY.md con la matriz de eventos
  y los quirks de Monday
2026-08-28 16:46:08 +00:00
5d4293888b docs: guion de demostración para el cliente 2026-08-27 18:07:09 +00:00
04568a5603 feat: automatizaciones ronda 2 + app de dashboards /dash
- Escalado: lead asignado sin contactar >48h genera actividad URGENTE
  al coordinador (LEAD_ESCALADO_HORAS, MONDAY_COORDINADOR_USER_ID)
- Oportunidad en Aparto crea item en Apartado (fecha límite +7d);
  en Ganado crea la Venta; ambos con dedup
- GET /api/reportes/resumen: leads, funnel, unidades por desarrollo,
  cobranza y actividades en una respuesta (cache 60s)
- App dashboards (/dash): 8 KPIs + 3 gráficas Recharts, con auth
- Landing: tarjeta Tableros; docs/AUTOMATIZACIONES-MONDAY.md con las
  recetas nativas para activar en la UI
- Tests: api 158, dashboards 7, landing 5 — todo verde
2026-08-27 09:05:09 +00:00
122c4d6102 docs: documento de entrega 2026-08-24 2026-08-24 05:18:47 +00:00