importacion historico legacy completo: citas con estados reales + 24,497 ventas con pagos (cuadre al centavo 48/48 meses); method points en skeen_pagos + sin acumular al canjear; scripts y doc de migracion
This commit is contained in:
42
docs/migracion-concentrado.md
Normal file
42
docs/migracion-concentrado.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 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):
|
||||
|
||||
```bash
|
||||
/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`).
|
||||
Reference in New Issue
Block a user