La v16 es la producción real
la v19 es un staging inconcluso
La v16 (Melkart + Veniu) NO está apagada: es la producción viva de UNE — 34,911 alumnos, 9.2M facturas, facturando cada mes. La v19 (Xmarts) que le prometieron sigue siendo un staging con datos de prueba.
Melkart + Veniu
34,911 alumnos · 239 usuarios · 9.2M facturas · 1.37M POS. Facturando hoy.
Xmarts
211 contactos de prueba · alumnos "test" · aún no migrado.
🔑 El hallazgo que reencuadra todo
UNE sigue operando en la v16 (Melkart, Google Cloud). La migración a la v19 prometida nunca se completó — la v19 es un staging con 211 contactos de prueba. Lo "prometido" (colegiaturas) en la v16 funciona a escala: 142,360 inscripciones activas. Ese es el verdadero trago amargo: pagaron por una migración que lleva años sin arrancar, mientras producción corre en un Odoo 16 que envejece.
Quién construyó qué
El núcleo académico de la v16 lo hizo Melkart (partner español), no Veniu. El rol de Veniu fue integrador + capa custom. En la v19, Xmarts reemplazó todo el núcleo de Melkart con su propia suite.
🟣 v16 — el reparto real
- Melkart (12 mód.): núcleo académico
school_*(base v13→v15), Firebase, ASC schedule - Veniu (~17 mód.): nómina UNE, addenda fiscal, extra fields, y APIs puente (incluida "API para recibir contactos desde un bot")
- Softhealer (6), Serpent (2), Hg (3): herramientas comerciales de compras/POS/presupuesto
- Technaureus: biometría ⚠️ (familia con CVE SQLi) · GTICA: WhatsApp · OCA: auditlog
🟡 v19 — Xmarts al mando
- Xmarts (24 mód. / 202 modelos): núcleo académico nuevo
xma_*+school.*(79 modelos), portal, Google Classroom, MCP - Odoo Enterprise:
sale_subscription(colegiaturas nativas) - Vauxoo: localización MX / CFDI
- UNE (Studio):
studio_customization+ 59 campos manuales
Mapeo funcional
🔄 Reemplazado · ♻️ Mismo propósito, reconstruido · ⬇️ Retroceso
| Área | v16 (Melkart + Veniu · GCP) — PRODUCCIÓN | v19 (Xmarts · CloudPepper) — STAGING | |
|---|---|---|---|
| Escala / uso | 34,911 alumnos · 9.2M facturas · 1.37M POS (vivo) | 211 contactos de prueba · 212 facturas test | ⚠️ |
| Núcleo académico | Melkart school_* (v13→v15) — 241 modelos | Xmarts xma_* + school.* (79 mod.) | 🔄 |
| Colegiaturas | Melkart school.enroll = 142,360 + pricelist 2,390 + SERVO 3,526 + becas 572 · VIVO | Odoo sale_subscription = 29 subs de prueba (4 planes) | 🔄 |
| Fiscal / CFDI | Veniu sh_edi_une_addenda (Addenda UNE) | Vauxoo l10n_mx + Xmarts xma_iedu_cfdi_complement | 🔄 |
| Banco / Santander | Veniu web_api_santander | Xmarts xma_l10n_mx_santander_reference | ♻️ |
| Bot / API puente | Veniu sh_api_contact / crm_api_module | Xmarts xma_connect / xma_integration_une | ♻️ |
| Nómina | Veniu hr_payroll_une + contract customs | Odoo Payroll nativo | 🔄 |
| Biometría / asistencia | Technaureus biométrico + face recognition | Asistencia escolar school.attendance (319/828) | 🔄 |
| Presupuestos | crossovered.budget: 37,205 líneas · 3,236 posiciones (vivo) | budget.analytic: 3 líneas (apenas) | 🔄 |
| Compras + autorizaciones | Doble validación PRENDIDA (two_step) · 43,513 órdenes · 42 "to approve" — código | Nativo po_double_validation apagado (one_step) + Studio x_studio_aprobador* | ⬇️ |
| Extra fields / Studio | Módulos sh_*_extra_fields (código) · 13 campos Studio | 59 campos Studio (manual) | ⬇️ |
| Firebase | Melkart odoo_firebase_core | — (MCP odoo_remote_mcp) | 🔄 |
| Infraestructura | Google Cloud (self-hosted GCP) | CloudPepper | 🔄 |
Studio vs Desarrollo
🟣 v16 — 100% código
31,970 campos de código · solo 13 Studio · 0 modelos Studio.
Todo versionado por Git; hasta los campos extra están en módulos sh_*_extra_fields de código.
🟡 v19 — código + 59 Studio
Xmarts rehízo en código, pero encima UNE metió 59 campos Studio —
el parche analítico x_plan*_id y las autorizaciones de compra x_studio_aprobador*.
⬇️ El retroceso que revela la comparación
En compras/autorizaciones/extra-fields, la v19 retrocedió de código a Studio. Lo que en v16 estaba
resuelto con módulos versionados (sh_purchase_extra_fields, purchase_budget,
bi_purchase_budget, scs_sale_purchase), en v19 quedó como campos Studio frágiles y
a medio armar. Re-solidificar eso en código es una mejora concreta del rescate.
¿Qué se tomó y qué es nuevo?
Nada del código de v16 se reutilizó tal cual. Xmarts reconstruyó todo con sus xma_*.
Lo que sobrevivió fueron los conceptos, no el código.
❌ Lo que se perdió / reemplazó
El núcleo Melkart completo, Firebase, la biometría Technaureus, WhatsApp GTICA, los checklists de CRM, y toda la capa custom de Veniu (nómina, extra fields, APIs) — Xmarts la rehízo a su manera. Además, dos saltos de plataforma: Google Cloud → CloudPepper, y tres de versión (16→19).
✅ v16 auditada EN VIVO — riesgos de la producción real
La v16 está viva pero con deuda: /web/database/manager expuesto + list_db activo;
22 crons parados (nextcall vencido — incluido el sync de timbrado SAT y "Enviar WhatsApp pendientes");
10,411 correos sin enviar; 19 usuarios admin; sin candado de cierre contable sobre 9.2M facturas;
904 RFC y 7,847 emails duplicados; 5 módulos inconsistentes. Es un Odoo 16 grande que ya necesita atención,
además de la migración inconclusa a v19.
La v16 es la producción real
la v19 es un staging inconcluso
La v16 (Melkart + Veniu) NO está apagada: es la producción viva de UNE — 34,911 alumnos, 9.2M facturas, facturando cada mes. La v19 (Xmarts) que le prometieron sigue siendo un staging con datos de prueba.
Melkart + Veniu
34,911 alumnos · 239 usuarios · 9.2M facturas · 1.37M POS. Facturando hoy.
Xmarts
211 contactos de prueba · alumnos "test" · aún no migrado.
🔑 El hallazgo que reencuadra todo
UNE sigue operando en la v16 (Melkart, Google Cloud). La migración a la v19 prometida nunca se completó — la v19 es un staging con 211 contactos de prueba. Lo "prometido" (colegiaturas) en la v16 funciona a escala: 142,360 inscripciones activas. Ese es el verdadero trago amargo: pagaron por una migración que lleva años sin arrancar, mientras producción corre en un Odoo 16 que envejece.
Quién construyó qué
El núcleo académico de la v16 lo hizo Melkart (partner español), no Veniu. El rol de Veniu fue integrador + capa custom. En la v19, Xmarts reemplazó todo el núcleo de Melkart con su propia suite.
🟣 v16 — el reparto real
- Melkart (12 mód.): núcleo académico
school_*(base v13→v15), Firebase, ASC schedule - Veniu (~17 mód.): nómina UNE, addenda fiscal, extra fields, y APIs puente (incluida "API para recibir contactos desde un bot")
- Softhealer (6), Serpent (2), Hg (3): herramientas comerciales de compras/POS/presupuesto
- Technaureus: biometría ⚠️ (familia con CVE SQLi) · GTICA: WhatsApp · OCA: auditlog
🟡 v19 — Xmarts al mando
- Xmarts (24 mód. / 202 modelos): núcleo académico nuevo
xma_*+school.*(79 modelos), portal, Google Classroom, MCP - Odoo Enterprise:
sale_subscription(colegiaturas nativas) - Vauxoo: localización MX / CFDI
- UNE (Studio):
studio_customization+ 59 campos manuales
Mapeo funcional
🔄 Reemplazado · ♻️ Mismo propósito, reconstruido · ⬇️ Retroceso
| Área | v16 (Melkart + Veniu · GCP) — PRODUCCIÓN | v19 (Xmarts · CloudPepper) — STAGING | |
|---|---|---|---|
| Escala / uso | 34,911 alumnos · 9.2M facturas · 1.37M POS (vivo) | 211 contactos de prueba · 212 facturas test | ⚠️ |
| Núcleo académico | Melkart school_* (v13→v15) — 241 modelos | Xmarts xma_* + school.* (79 mod.) | 🔄 |
| Colegiaturas | Melkart school.enroll = 142,360 + pricelist 2,390 + SERVO 3,526 + becas 572 · VIVO | Odoo sale_subscription = 29 subs de prueba (4 planes) | 🔄 |
| Fiscal / CFDI | Veniu sh_edi_une_addenda (Addenda UNE) | Vauxoo l10n_mx + Xmarts xma_iedu_cfdi_complement | 🔄 |
| Banco / Santander | Veniu web_api_santander | Xmarts xma_l10n_mx_santander_reference | ♻️ |
| Bot / API puente | Veniu sh_api_contact / crm_api_module | Xmarts xma_connect / xma_integration_une | ♻️ |
| Nómina | Veniu hr_payroll_une + contract customs | Odoo Payroll nativo | 🔄 |
| Biometría / asistencia | Technaureus biométrico + face recognition | Asistencia escolar school.attendance (319/828) | 🔄 |
| Presupuestos | crossovered.budget: 37,205 líneas · 3,236 posiciones (vivo) | budget.analytic: 3 líneas (apenas) | 🔄 |
| Compras + autorizaciones | Doble validación PRENDIDA (two_step) · 43,513 órdenes · 42 "to approve" — código | Nativo po_double_validation apagado (one_step) + Studio x_studio_aprobador* | ⬇️ |
| Extra fields / Studio | Módulos sh_*_extra_fields (código) · 13 campos Studio | 59 campos Studio (manual) | ⬇️ |
| Firebase | Melkart odoo_firebase_core | — (MCP odoo_remote_mcp) | 🔄 |
| Infraestructura | Google Cloud (self-hosted GCP) | CloudPepper | 🔄 |
Studio vs Desarrollo
🟣 v16 — 100% código
31,970 campos de código · solo 13 Studio · 0 modelos Studio.
Todo versionado por Git; hasta los campos extra están en módulos sh_*_extra_fields de código.
🟡 v19 — código + 59 Studio
Xmarts rehízo en código, pero encima UNE metió 59 campos Studio —
el parche analítico x_plan*_id y las autorizaciones de compra x_studio_aprobador*.
⬇️ El retroceso que revela la comparación
En compras/autorizaciones/extra-fields, la v19 retrocedió de código a Studio. Lo que en v16 estaba
resuelto con módulos versionados (sh_purchase_extra_fields, purchase_budget,
bi_purchase_budget, scs_sale_purchase), en v19 quedó como campos Studio frágiles y
a medio armar. Re-solidificar eso en código es una mejora concreta del rescate.
¿Qué se tomó y qué es nuevo?
Nada del código de v16 se reutilizó tal cual. Xmarts reconstruyó todo con sus xma_*.
Lo que sobrevivió fueron los conceptos, no el código.
❌ Lo que se perdió / reemplazó
El núcleo Melkart completo, Firebase, la biometría Technaureus, WhatsApp GTICA, los checklists de CRM, y toda la capa custom de Veniu (nómina, extra fields, APIs) — Xmarts la rehízo a su manera. Además, dos saltos de plataforma: Google Cloud → CloudPepper, y tres de versión (16→19).
✅ v16 auditada EN VIVO — riesgos de la producción real
La v16 está viva pero con deuda: /web/database/manager expuesto + list_db activo;
22 crons parados (nextcall vencido — incluido el sync de timbrado SAT y "Enviar WhatsApp pendientes");
10,411 correos sin enviar; 19 usuarios admin; sin candado de cierre contable sobre 9.2M facturas;
904 RFC y 7,847 emails duplicados; 5 módulos inconsistentes. Es un Odoo 16 grande que ya necesita atención,
además de la migración inconclusa a v19.