Files
SKEEN-Proyecto/docs/migracion-concentrado.md

2.4 KiB
Raw Permalink Blame History

Migración del histórico legacy (citas + ventas/pagos) — 2026-10-10

Reextracción completa de la plataforma legacy (sistema.skeenmx.app, solo lectura) e importación idempotente a skeen_odoo. Alimenta el reporte Concentrado (recreación fiel al legacy: una fila por venta, desglose por método de pago × moneda).

Datasets extraídos (origen: /root/migracion/extraccion/concentrado/)

Archivo Contenido
citas_full.csv 57,030 citas 2022-11-07 → 2026-10-10, con status real del legacy (done 21,369 · cancelled 16,546 · pending 11,622 · confirmed 4,274 · no_show 3,219). Reanudable (citas_full.progress).
concentrado_full.csv 29,467 filas = 48 meses del reporte concentrado legacy (Excel mensual en concentrado_mensual/), verificado al centavo vs el HTML del legacy.
ventas_full.json / ventas_full.csv 19,278 ventas únicas con expedientes_id (join a pacientes vía res.partner.legacy_id) y desglose de pagos.

Scripts: x_full_citas.py, x_full_ventas.py, x_full_concentrado.py (extracción, reusan extraer_skeen.login(); correr con /root/odoo-venv/bin/python).

Importación

importar_concentrado_full.py — idempotente (upsert por legacy_id; re-ejecutable):

/root/odoo-venv/bin/python /root/migracion/importar_concentrado_full.py --db skeen_odoo --permitir-produccion

Resultado en producción (2026-10-10):

  • Citas: 39,565 legacy_id retroados, 39,564 actualizadas con estado real, 9,009 creadas, 8,456 filas basura omitidas (NO CITAR / teléfonos inválidos). 7,351 doctores fantasma numéricos anulados; sin resolver (doctor NULL): id 34–39, 44, 51 (~8,350 citas históricas).
  • Ventas: 24,497 creadas (96.8% de folios con monto), 26,983 pagos. Cuadra al centavo por mes, método y moneda contra el legacy (48/48 meses).
  • Omitidos: 799 folios ($1.29M, 2.5% del dinero) cuyos pacientes (expedientes_id) nunca se migraron a Odoo; 139 filas todo-$0 (sesiones de paquete).
  • Las 20,127 ventas del pipeline de julio-2026 se eliminaron: eran duplicadas del mismo histórico, sin pagos y con montos corruptos (p. ej. cantidad 126 × $12,600).

Requiere

  • Columna legacy_id en skeen_cita y skeen_venta (agregada 2026-10-10, v1.0.1).
  • Métodos de pago saldo_favor y points en skeen.pago (v1.0.2).
  • Backups previos en /root/backups/skeen_odoo_pre_import_prod_20261010_100903.dump (y skeen_preimport_20261010_095311.dump).