erp-core/docs/01-analisis-referencias/odoo
2026-01-04 06:12:07 -06:00
..
MAPEO-ODOO-TO-MGN.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-account-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-analytic-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-auth-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-base-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-crm-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-hr-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-mail-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-portal-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-project-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-purchase-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-sale-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
odoo-stock-analysis.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
README.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00
VALIDACION-MGN-VS-ODOO.md Initial commit - erp-core 2026-01-04 06:12:07 -06:00

Resumen Ejecutivo - Análisis de Módulos Odoo

Proyecto: ERP Genérico Fuente: Odoo Community Edition v18.0 Fecha: 2025-11-23 Analista: Architecture-Analyst


Objetivo del Análisis

Analizar los 12 módulos core de Odoo para extraer:

  • Lógica de negocio consolidada y probada
  • Modelos de datos principales
  • Patrones arquitectónicos
  • Funcionalidades relevantes para ERP Genérico
  • Mapeo a módulos MGN (MGN-001 a MGN-014)

Módulos Analizados (12)

Módulo Odoo Aplicación en ERP Genérico Prioridad Mapeo MGN Estado
base Sistema base, modelos fundamentales P0 MGN-001, MGN-002, MGN-003 Analizado
auth_signup Autenticación y registro P0 MGN-001 Analizado
account Módulo financiero P0 MGN-004 Analizado
stock Inventario P0 MGN-005 Analizado
purchase Compras P0 MGN-006 Analizado
sale Ventas P0 MGN-007 Analizado
analytic Contabilidad analítica P0 MGN-008 Analizado
mail Mensajería y notificaciones P0 MGN-014 Analizado
crm CRM básico P1 MGN-009 Analizado
hr Recursos humanos P1 MGN-010 Analizado
project Proyectos genéricos P1 MGN-011 Analizado
portal Portal de usuarios P1 MGN-013 Analizado

Hallazgos Principales

1. Arquitectura ORM Potente

Odoo implementa un ORM muy completo con:

  • Decoradores para computed fields (@api.depends)
  • Sistema de herencia múltiple (_inherit, _inherits)
  • Campos relacionales sofisticados (Many2one, One2many, Many2many)
  • Validaciones con @api.constrains
  • OnChange events (@api.onchange)

Aplicabilidad: - Patrones traducibles a TypeORM/Prisma

2. Sistema de Permisos Robusto

  • Grupos de seguridad (res.groups)
  • Record rules (filtrado por usuario/empresa)
  • Permisos CRUD granulares (ir.model.access)
  • Multi-company support nativo

Aplicabilidad: - RBAC implementado en MGN-001

3. Contabilidad Analítica Universal

El módulo analytic permite tracking de costos por proyecto/centro de costos

  • Integrado en todos los módulos (compras, ventas, inventario)
  • Base para reportes financieros
  • Esencial para ERPs multi-proyecto

Aplicabilidad: - MGN-008 debe implementar este patrón

4. Sistema de Workflows con Estados

Todos los módulos usan Selection fields con estados bien definidos:

  • draftconfirmeddonecancel
  • Transiciones controladas por lógica de negocio
  • Integración con mail.thread para tracking

Aplicabilidad: - Patrón universal para ERP Genérico

5. Integración con mail.thread

Casi todos los modelos heredan de mail.thread para:

  • Tracking de cambios automático
  • Sistema de mensajes y notificaciones
  • Followers y actividades programadas
  • Chatter UI

Aplicabilidad: - MGN-014 debe implementar patrón similar


Patrones Arquitectónicos Destacables

1. Multi-Company

# Odoo pattern
company_id = fields.Many2one('res.company', required=True, default=lambda self: self.env.company)
  • Record rules filtran por empresa automáticamente
  • Usuarios pueden cambiar de empresa
  • Aplicable a multi-tenancy del ERP Genérico

2. Analytic Accounts

# Odoo pattern
analytic_account_id = fields.Many2one('account.analytic.account')
  • Presente en: compras, ventas, inventario, proyectos
  • Permite reportes consolidados de costos/ingresos por proyecto
  • Esencial para construcción/manufactura

3. Portal Views

# Odoo pattern
@http.route(['/my/orders'], type='http', auth='user', website=True)
def portal_my_orders(self):
    # Vista limitada para clientes
  • Sistema de portal para usuarios externos
  • Acciones permitidas (aprobar, comentar, descargar)
  • Seguridad con record rules

4. Wizard Pattern (TransientModel)

class Wizard(models.TransientModel):
    _name = 'module.wizard'
    _description = 'Wizard for X'
  • Modelos temporales para asistentes/formularios
  • No se persisten en BD
  • Útil para operaciones batch, imports, exports

5. Computed Fields

@api.depends('line_ids.price_total')
def _compute_amount_total(self):
    for record in self:
        record.amount_total = sum(record.line_ids.mapped('price_total'))
  • Campos calculados automáticamente
  • Caché inteligente
  • Actualización cascada

Recomendaciones para ERP Genérico

ADOPTAR

  1. Sistema de estados con workflows

    • Implementar en todos los módulos MGN
    • Estados: draft, confirmed, done, cancelled
    • Transiciones controladas
  2. RBAC granular

    • Basado en res.users y res.groups de Odoo
    • Permisos por modelo (CRUD)
    • Record rules para filtrado
  3. Contabilidad analítica

    • MGN-008 debe implementar analytic_accounts
    • Integrar en todos los módulos transaccionales
  4. Multi-company/Multi-tenant

    • Patrón similar a Odoo pero con schemas PostgreSQL
    • Campo tenant_id en todas las tablas
    • RLS policies
  5. Sistema de tracking y auditoría

    • Patrón mail.thread adaptado
    • Tracking de cambios automático
    • Historial de modificaciones

ADAPTAR 🔧

  1. ORM patterns → TypeORM/Prisma

    • Traducir decoradores Python a TypeScript
    • Computed fields → getters o virtual columns
    • Constraints → validaciones Zod/Joi
  2. XML Views → React Components

    • Form views → React forms (React Hook Form)
    • Tree views → DataTables (TanStack Table)
    • Kanban views → Drag & drop boards
  3. Portal → Frontend routes

    • Portal Odoo → rutas públicas en React
    • Autenticación JWT
    • Permisos en frontend + backend

EVITAR

  1. No copiar arquitectura Python

    • No replicar ORM de Odoo
    • Usar ORMs nativos de Node.js
  2. No usar XML para UI

    • Odoo usa XML, nosotros React/TypeScript
    • Componentes modernos
  3. No sobre-complicar

    • Odoo tiene 600+ módulos
    • ERP Genérico solo 14 módulos core

Mapeo Odoo → MGN

Ver archivo detallado: MAPEO-ODOO-TO-MGN.md

Módulo Odoo Módulo MGN Funcionalidades Clave a Migrar
base + auth_signup MGN-001 Autenticación, usuarios, RBAC
base (res.company, res.currency) MGN-002 Empresas, organizaciones
base (res.partner, res.country, uom) MGN-003 Catálogos maestros
account MGN-004 Contabilidad, plan de cuentas, asientos
stock MGN-005 Inventario, almacenes, movimientos
purchase MGN-006 Compras, proveedores, requisiciones
sale MGN-007 Ventas, cotizaciones, clientes
analytic MGN-008 Cuentas analíticas, centros de costo
crm MGN-009 Leads, oportunidades, pipeline
hr MGN-010 Empleados, departamentos, contratos
project MGN-011 Proyectos, tareas, milestones
account (reports) MGN-012 Reportes financieros, dashboards
portal MGN-013 Portal de usuarios externos
mail MGN-014 Mensajería, notificaciones, tracking

Archivos de Análisis Detallado

  1. odoo-base-analysis.md
  2. odoo-auth-analysis.md
  3. odoo-account-analysis.md
  4. odoo-stock-analysis.md
  5. odoo-purchase-analysis.md
  6. odoo-sale-analysis.md
  7. odoo-analytic-analysis.md
  8. odoo-mail-analysis.md
  9. odoo-crm-analysis.md
  10. odoo-hr-analysis.md
  11. odoo-project-analysis.md
  12. odoo-portal-analysis.md

Próximos Pasos

  1. Revisar análisis detallado de cada módulo
  2. Validar mapeo Odoo → MGN
  3. Priorizar funcionalidades a implementar
  4. Crear RF basándose en funcionalidades Odoo
  5. Diseñar BD basándose en modelos Odoo

Fecha: 2025-11-23 Versión: 1.0.0 Estado: Análisis completo