# 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