erp-core/docs/01-analisis-referencias/odoo/MAPEO-ODOO-TO-MGN.md

479 lines
15 KiB
Markdown

# Mapeo Completo: Odoo → ERP Genérico (MGN)
**Proyecto:** ERP Genérico
**Fecha:** 2025-11-23
**Versión:** 1.0.0
---
## Objetivo
Mapear funcionalidades de los 12 módulos Odoo analizados a los 14 módulos del ERP Genérico (MGN-001 a MGN-014).
---
## Tabla de Mapeo General
| Módulo Odoo | Módulo MGN | Nombre MGN | Prioridad | Reutilización |
|-------------|------------|------------|-----------|---------------|
| base | MGN-001 | Fundamentos | P0 | 90% |
| auth_signup | MGN-001 | Fundamentos | P0 | 85% |
| base (res.company) | MGN-002 | Empresas y Organizaciones | P0 | 90% |
| base (partners, countries, uom) | MGN-003 | Catálogos Maestros | P0 | 95% |
| account | MGN-004 | Financiero Básico | P0 | 70% |
| stock | MGN-005 | Inventario Básico | P0 | 80% |
| purchase | MGN-006 | Compras Básico | P0 | 85% |
| sale | MGN-007 | Ventas Básico | P0 | 85% |
| analytic | MGN-008 | Contabilidad Analítica | P0 | 95% |
| crm | MGN-009 | CRM Básico | P1 | 75% |
| hr | MGN-010 | RRHH Básico | P1 | 70% |
| project | MGN-011 | Proyectos Genéricos | P1 | 80% |
| account (reports) | MGN-012 | Reportes y Analytics | P1 | 60% |
| portal | MGN-013 | Portal de Usuarios | P1 | 80% |
| mail | MGN-014 | Mensajería y Notificaciones | P0 | 85% |
---
## Mapeo Detallado por Módulo MGN
### MGN-001: Fundamentos
**Fuentes Odoo:**
- `base` (res.users, res.groups, ir.model.access, ir.rule)
- `auth_signup` (signup, reset password)
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-001 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Autenticación usuarios | RF-AUTH-001 | Login con JWT | P0 |
| Gestión de usuarios | RF-AUTH-002 | CRUD usuarios, perfiles | P0 |
| Sistema RBAC | RF-AUTH-003 | Roles, permisos por modelo, RLS | P0 |
| Multi-tenancy | RF-AUTH-004 | Schema-level isolation | P0 |
| Registro usuarios | RF-AUTH-005 | Signup con validación | P0 |
| Reset password | RF-AUTH-006 | Token seguro, expiración 24h | P0 |
| Cambio contraseña | RF-AUTH-007 | Validación password fuerte | P0 |
| Verificación email | RF-AUTH-008 | Token de verificación | P1 |
**Modelos Odoo → Tablas MGN:**
- `res.users``auth.users`
- `res.groups``auth.roles`
- `ir.model.access``auth.model_permissions`
- `ir.rule` → PostgreSQL RLS policies
**Patrones a Adoptar:**
- ✅ RBAC con herencia de roles
- ✅ Permisos CRUD granulares
- ✅ RLS (Row Level Security)
- ✅ Soft delete (active=true/false)
**Patrones a Adaptar:**
- 🔧 Sesiones → JWT tokens
- 🔧 Python decorators → TypeScript decorators
- 🔧 XML-RPC → REST APIs
---
### MGN-002: Empresas y Organizaciones
**Fuente Odoo:**
- `base` (res.company)
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-002 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Gestión de empresas | RF-COMP-001 | CRUD empresas, holdings | P0 |
| Multi-company | RF-COMP-002 | Usuario acceso a múltiples empresas | P0 |
| Configuración empresa | RF-COMP-003 | Logo, datos fiscales, moneda | P0 |
**Modelos Odoo → Tablas MGN:**
- `res.company``core.companies`
**Patrones a Adoptar:**
- ✅ Holdings (parent_id)
- ✅ Empresa vinculada a partner
- ✅ Moneda principal por empresa
---
### MGN-003: Catálogos Maestros
**Fuente Odoo:**
- `base` (res.partner, res.currency, res.country, uom.uom)
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-003 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Gestión de partners | RF-CAT-001 | Clientes, proveedores, contactos (patrón universal) | P0 |
| Catálogo monedas | RF-CAT-002 | ISO 4217, tasas de cambio | P0 |
| Catálogo países | RF-CAT-003 | ISO 3166-1, estados/provincias | P0 |
| Unidades de medida | RF-CAT-004 | Categorías, conversiones | P0 |
**Modelos Odoo → Tablas MGN:**
- `res.partner``core.partners`
- `res.currency``core.currencies`
- `res.country``core.countries`
- `res.country.state``core.states`
- `uom.uom``core.units_of_measure`
- `uom.category``core.uom_categories`
**Patrones a Adoptar:**
- ✅ Partner universal (is_customer, is_vendor, is_employee)
- ✅ Estructura jerárquica (parent_id)
- ✅ Conversiones de UoM
---
### MGN-004: Financiero Básico
**Fuente Odoo:**
- `account`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-004 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Plan de cuentas | RF-FIN-001 | Chart of accounts, tipos de cuenta | P0 |
| Asientos contables | RF-FIN-002 | Journal entries, débito/crédito | P0 |
| Facturas | RF-FIN-003 | Facturas cliente/proveedor | P0 |
| Pagos | RF-FIN-004 | Pagos, conciliación | P0 |
| Reportes financieros | RF-FIN-005 | Balance, P&L | P1 |
| Multi-moneda | RF-FIN-006 | Tasas de cambio, gain/loss | P1 |
**Modelos Odoo → Tablas MGN:**
- `account.account``financial.accounts`
- `account.move``financial.journal_entries`
- `account.move.line``financial.journal_entry_lines`
- `account.journal``financial.journals`
- `account.payment``financial.payments`
**Patrones a Adoptar:**
- ✅ Doble entrada (débito = crédito)
- ✅ Estados: draft → posted
- ✅ Conciliación bancaria
---
### MGN-005: Inventario Básico
**Fuente Odoo:**
- `stock`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-005 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Gestión almacenes | RF-INV-001 | Warehouses, configuración | P0 |
| Ubicaciones | RF-INV-002 | Estructura jerárquica, tipos | P0 |
| Movimientos | RF-INV-003 | Stock moves, origen/destino | P0 |
| Pickings | RF-INV-004 | Albaranes, agrupación movimientos | P0 |
| Trazabilidad | RF-INV-005 | Lotes, números de serie | P1 |
| Valoración | RF-INV-006 | FIFO, Average Cost | P1 |
**Modelos Odoo → Tablas MGN:**
- `stock.warehouse``inventory.warehouses`
- `stock.location``inventory.locations`
- `stock.move``inventory.stock_moves`
- `stock.picking``inventory.pickings`
- `stock.quant``inventory.stock_quants`
**Patrones a Adoptar:**
- ✅ Doble movimiento (origen → tránsito → destino)
- ✅ Ubicaciones virtuales
- ✅ Estrategias de inventario
---
### MGN-006: Compras Básico
**Fuente Odoo:**
- `purchase`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-006 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Gestión proveedores | RF-COM-001 | Catálogo, condiciones pago | P0 |
| RFQ | RF-COM-002 | Solicitudes de cotización | P0 |
| Órdenes de compra | RF-COM-003 | Purchase orders, aprobación | P0 |
| Recepciones | RF-COM-004 | Integración con inventario | P0 |
| Facturación compras | RF-COM-005 | Facturas de proveedor | P0 |
**Modelos Odoo → Tablas MGN:**
- `purchase.order``purchase.orders`
- `purchase.order.line``purchase.order_lines`
- Partners con `supplier_rank > 0` → Vendors
**Patrones a Adoptar:**
- ✅ Workflow: RFQ → PO → Recepción → Factura
- ✅ Integración automática con stock
- ✅ Control cantidades recibidas vs facturadas
---
### MGN-007: Ventas Básico
**Fuente Odoo:**
- `sale`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-007 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Gestión clientes | RF-VEN-001 | Catálogo, condiciones pago | P0 |
| Cotizaciones | RF-VEN-002 | Quotations, envío a cliente | P0 |
| Órdenes de venta | RF-VEN-003 | Sales orders, aprobación | P0 |
| Entregas | RF-VEN-004 | Integración con inventario | P0 |
| Facturación ventas | RF-VEN-005 | Facturas de cliente | P0 |
| Portal clientes | RF-VEN-006 | Aprobación online, firma | P1 |
**Modelos Odoo → Tablas MGN:**
- `sale.order``sales.orders`
- `sale.order.line``sales.order_lines`
- Partners con `customer_rank > 0` → Customers
**Patrones a Adoptar:**
- ✅ Workflow: Cotización → Venta → Entrega → Factura
- ✅ Portal de aprobación
- ✅ Firma electrónica
---
### MGN-008: Contabilidad Analítica
**Fuente Odoo:**
- `analytic`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-008 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Cuentas analíticas | RF-ANA-001 | Proyectos, centros de costo | P0 |
| Líneas analíticas | RF-ANA-002 | Registro de costos/ingresos | P0 |
| Reportes analíticos | RF-ANA-003 | Balance por proyecto | P0 |
| Integración módulos | RF-ANA-004 | Compras, ventas, nómina → analytic | P0 |
**Modelos Odoo → Tablas MGN:**
- `account.analytic.account``analytics.accounts`
- `account.analytic.line``analytics.lines`
**Patrones a Adoptar:**
- ✅ Campo `analytic_account_id` en TODOS los módulos transaccionales
- ✅ Reportes consolidados por proyecto
- ✅ Integración universal
**Aplicabilidad:** ⭐⭐⭐⭐⭐ - CRÍTICO para ERP de proyectos
---
### MGN-009: CRM Básico
**Fuente Odoo:**
- `crm`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-009 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Gestión de leads | RF-CRM-001 | Leads/oportunidades | P1 |
| Pipeline ventas | RF-CRM-002 | Stages, probabilidad | P1 |
| Actividades | RF-CRM-003 | Seguimiento, recordatorios | P1 |
| Conversión | RF-CRM-004 | Lead → Cotización | P1 |
| Reportes CRM | RF-CRM-005 | Rendimiento vendedores | P2 |
**Modelos Odoo → Tablas MGN:**
- `crm.lead``crm.leads`
- `crm.stage``crm.stages`
- `crm.team``crm.teams`
**Patrones a Adoptar:**
- ✅ Pipeline kanban drag-and-drop
- ✅ Lead scoring automático
- ✅ Actividades de seguimiento
---
### MGN-010: RRHH Básico
**Fuente Odoo:**
- `hr`, `hr_contract`, `hr_attendance`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-010 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Gestión empleados | RF-HR-001 | Datos personales, puestos | P1 |
| Departamentos | RF-HR-002 | Estructura jerárquica | P1 |
| Contratos | RF-HR-003 | Tipo, salario, fechas | P1 |
| Asistencias | RF-HR-004 | Check-in/out, horas trabajadas | P1 |
| Timesheet | RF-HR-005 | Horas por proyecto/tarea | P2 |
**Modelos Odoo → Tablas MGN:**
- `hr.employee``hr.employees`
- `hr.department``hr.departments`
- `hr.contract``hr.contracts`
- `hr.attendance``hr.attendances`
**Patrones a Adoptar:**
- ✅ Empleado vinculado a partner y user
- ✅ Departamentos jerárquicos
- ✅ Integración timesheet → analytic accounts
---
### MGN-011: Proyectos Genéricos
**Fuente Odoo:**
- `project`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-011 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Gestión proyectos | RF-PRO-001 | Proyectos, manager | P1 |
| Tareas | RF-PRO-002 | Tasks, subtasks, asignación | P1 |
| Stages | RF-PRO-003 | Pipeline personalizable | P1 |
| Timesheet | RF-PRO-004 | Horas por tarea | P2 |
| Portal proyectos | RF-PRO-005 | Vista cliente | P2 |
**Modelos Odoo → Tablas MGN:**
- `project.project``projects.projects`
- `project.task``projects.tasks`
- `project.task.type``projects.task_stages`
**Patrones a Adoptar:**
- ✅ Vista kanban de tareas
- ✅ Integración con analytic accounts
- ✅ Portal de clientes
**Aplicabilidad:** ⭐⭐⭐⭐⭐ - CRÍTICO para construcción/proyectos
---
### MGN-012: Reportes y Analytics
**Fuente Odoo:**
- `account` (reportes)
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-012 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Reportes financieros | RF-REP-001 | Balance, P&L | P1 |
| Dashboards | RF-REP-002 | KPIs, gráficos | P1 |
| Reportes personalizados | RF-REP-003 | Query builder | P2 |
| Exportación | RF-REP-004 | PDF, Excel, CSV | P1 |
**Patrones a Adoptar:**
- ✅ Reportes con filtros dinámicos
- ✅ Caching de reportes pesados
- ✅ Exportación multi-formato
---
### MGN-013: Portal de Usuarios
**Fuente Odoo:**
- `portal`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-013 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Portal clientes | RF-POR-001 | Dashboard, login | P1 |
| Vista documentos | RF-POR-002 | Órdenes, facturas | P1 |
| Aprobación cotizaciones | RF-POR-003 | Firma electrónica | P1 |
| Vista proyectos | RF-POR-004 | Tareas, comentarios | P2 |
**Modelos Odoo → Tablas MGN:**
- Usuarios con `share=true` → Rol `portal_user`
**Patrones a Adoptar:**
- ✅ RLS estricto (usuario solo ve sus registros)
- ✅ Permisos read-only + acciones permitidas
- ✅ Firma electrónica (canvas HTML5)
**Aplicabilidad:** ⭐⭐⭐⭐⭐ - CRÍTICO para portal derechohabientes INFONAVIT
---
### MGN-014: Mensajería y Notificaciones
**Fuente Odoo:**
- `mail`
**Funcionalidades a Migrar:**
| Funcionalidad Odoo | RF MGN-014 | Descripción | Prioridad |
|-------------------|------------|-------------|-----------|
| Sistema notificaciones | RF-NOT-001 | Notificaciones en tiempo real | P0 |
| Mensajería interna | RF-NOT-002 | Chat, mensajes por registro | P1 |
| Tracking cambios | RF-NOT-003 | Auditoría automática | P0 |
| Actividades | RF-NOT-004 | Recordatorios, tareas | P1 |
| Followers | RF-NOT-005 | Suscripción a registros | P2 |
**Modelos Odoo → Tablas MGN:**
- `mail.message``notifications.messages`
- `mail.followers``notifications.followers`
- `mail.activity``notifications.activities`
- Tracking implícito → `notifications.tracking`
**Patrones a Adoptar:**
- ✅ Tracking automático de campos (tracking=true)
- ✅ Chatter UI por registro
- ✅ Followers + notificaciones
**Patrones a Mejorar:**
- 🔧 Polling → WebSocket (Socket.IO)
- 🔧 Mejor UX de notificaciones
**Aplicabilidad:** ⭐⭐⭐⭐⭐ - ESENCIAL para auditoría y colaboración
---
## Resumen de Reutilización
| Módulo MGN | % Reutilización Odoo | Esfuerzo Adaptación | Prioridad |
|------------|----------------------|---------------------|-----------|
| MGN-001 | 90% | Bajo | P0 |
| MGN-002 | 90% | Bajo | P0 |
| MGN-003 | 95% | Muy Bajo | P0 |
| MGN-004 | 70% | Medio | P0 |
| MGN-005 | 80% | Bajo-Medio | P0 |
| MGN-006 | 85% | Bajo | P0 |
| MGN-007 | 85% | Bajo | P0 |
| MGN-008 | 95% | Muy Bajo | P0 |
| MGN-009 | 75% | Medio | P1 |
| MGN-010 | 70% | Medio | P1 |
| MGN-011 | 80% | Bajo-Medio | P1 |
| MGN-012 | 60% | Alto | P1 |
| MGN-013 | 80% | Bajo-Medio | P1 |
| MGN-014 | 85% | Bajo | P0 |
**Promedio de reutilización:** 81%
---
## Conclusión
Los 12 módulos de Odoo analizados proporcionan una base sólida para implementar los 14 módulos del ERP Genérico.
**Principales beneficios del análisis:**
1. Lógica de negocio probada en miles de empresas
2. Patrones arquitectónicos consolidados
3. Funcionalidades completas y bien diseñadas
4. Reducción de riesgo en decisiones de diseño
**Próximos pasos:**
1. Usar este mapeo para crear RF de MGN-001 a MGN-014
2. Diseñar BD basándose en modelos Odoo
3. Adaptar patrones Odoo a stack Node.js + React + PostgreSQL
---
**Fecha:** 2025-11-23
**Analista:** Architecture-Analyst
**Estado:** ✅ Mapeo completo