workspace-v1/shared/knowledge-base/reference/odoo/README.md
Adrian Flores Cortes 967ab360bb Initial commit: Workspace v1 with 3-layer architecture
Structure:
- control-plane/: Registries, SIMCO directives, CI/CD templates
- projects/: Gamilit, ERP-Suite, Trading-Platform, Betting-Analytics
- shared/: Libs catalog, knowledge-base

Key features:
- Centralized port, domain, database, and service registries
- 23 SIMCO directives + 6 fundamental principles
- NEXUS agent profiles with delegation rules
- Validation scripts for workspace integrity
- Dockerfiles for all services
- Path aliases for quick reference

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 00:35:19 -06:00

5.9 KiB

Referencia Odoo Community Edition 18.0

Fecha de clonación: 2025-12-05 Versión: 18.0 Fuente: https://github.com/odoo/odoo


Propósito

Este repositorio sirve como referencia de lógica de negocio para el desarrollo del ERP Suite. NO se ejecutará Odoo, solo se usará para:

  1. Validar modelos de datos - Comparar nuestras tablas con los modelos Odoo
  2. Revisar lógica de negocio - Workflows, estados, validaciones
  3. Consultar patrones - RBAC, multi-company, computed fields
  4. Verificar constraints - Reglas de negocio probadas

Estructura Relevante

odoo-18.0/
├── odoo/addons/base/           # Módulo base (usuarios, companies, partners)
│   ├── models/
│   │   ├── res_users.py        # Usuarios y autenticación
│   │   ├── res_company.py      # Empresas/multi-company
│   │   ├── res_partner.py      # Partners (clientes/proveedores)
│   │   ├── res_currency.py     # Monedas y tasas de cambio
│   │   ├── res_country.py      # Países y estados
│   │   ├── ir_rule.py          # Record Rules (RLS)
│   │   └── ir_model.py         # Permisos por modelo
│   └── security/
│       ├── ir.model.access.csv # Permisos CRUD
│       └── base_groups.xml     # Grupos/roles base
│
├── addons/
│   ├── account/                # Contabilidad
│   ├── stock/                  # Inventario
│   ├── purchase/               # Compras
│   ├── sale/                   # Ventas
│   ├── crm/                    # CRM
│   ├── hr/                     # Recursos Humanos
│   ├── project/                # Proyectos
│   ├── mail/                   # Mensajería/Notificaciones
│   ├── portal/                 # Portal usuarios externos
│   ├── analytic/               # Contabilidad analítica
│   └── auth_signup/            # Registro de usuarios

Mapeo Odoo → ERP Suite

Módulo Odoo Módulo ERP Suite Archivos Clave
base (res.users) MGN-001 Auth res_users.py, ir_rule.py
base (res.company) MGN-002 res_company.py
base (res.partner) MGN-003 Catalogs res_partner.py, res_country.py
account MGN-010 Financial account_move.py, account_account.py
stock MGN-011 Inventory stock_move.py, stock_quant.py
purchase MGN-012 Purchasing purchase_order.py
sale - sale_order.py
crm MGN-013 CRM crm_lead.py
hr - hr_employee.py
project - project.py, project_task.py
mail MGN-008 Notifications mail_message.py, mail_thread.py
portal - portal_mixin.py
analytic - analytic_account.py

Cómo Usar Esta Referencia

1. Consultar Modelo de Datos

# Ver campos de usuarios
cat odoo-18.0/odoo/addons/base/models/res_users.py

# Ver campos de partners
cat odoo-18.0/odoo/addons/base/models/res_partner.py

2. Ver Permisos y Grupos

# Permisos CRUD por modelo
cat odoo-18.0/odoo/addons/base/security/ir.model.access.csv

# Definición de grupos
cat odoo-18.0/odoo/addons/base/security/base_groups.xml

3. Revisar Lógica de Negocio

# Workflow de órdenes de compra
cat odoo-18.0/addons/purchase/models/purchase_order.py

# Movimientos de inventario
cat odoo-18.0/addons/stock/models/stock_move.py

4. Ver Record Rules (RLS)

# Reglas de seguridad
grep -r "ir.rule" odoo-18.0/odoo/addons/base/security/

Archivos Más Consultados

Para MGN-001 Auth / MGN-002 Users / MGN-003 RBAC

Archivo Propósito
odoo/addons/base/models/res_users.py Modelo de usuarios, autenticación
odoo/addons/base/models/ir_rule.py Record Rules (equivalente a RLS)
odoo/addons/base/security/ir.model.access.csv Permisos CRUD
odoo/addons/base/security/base_groups.xml Grupos y roles
addons/auth_signup/models/res_users.py Registro de usuarios

Para MGN-004 Tenants

Archivo Propósito
odoo/addons/base/models/res_company.py Multi-company (≈ multi-tenant)
odoo/addons/base/models/ir_rule.py Filtrado por company_id

Para Módulos de Negocio

Archivo Propósito
addons/account/models/account_move.py Asientos contables
addons/stock/models/stock_move.py Movimientos de inventario
addons/purchase/models/purchase_order.py Órdenes de compra
addons/sale/models/sale_order.py Órdenes de venta

Patrones Importantes a Estudiar

1. Estados y Transiciones

# En purchase_order.py
state = fields.Selection([
    ('draft', 'RFQ'),
    ('sent', 'RFQ Sent'),
    ('to approve', 'To Approve'),
    ('purchase', 'Purchase Order'),
    ('done', 'Locked'),
    ('cancel', 'Cancelled')
], string='Status', default='draft')

2. Computed Fields

@api.depends('order_line.price_total')
def _amount_all(self):
    for order in self:
        order.amount_total = sum(order.order_line.mapped('price_total'))

3. Constraints

@api.constrains('date_start', 'date_end')
def _check_dates(self):
    if self.date_start > self.date_end:
        raise ValidationError("End date must be after start date")

4. Multi-Company Filter

# En ir.rule XML
<record id="sale_order_company_rule" model="ir.rule">
    <field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>

Notas

  • Tamaño: ~1.2GB (incluye todos los addons)
  • Licencia: LGPL-3.0
  • NO ejecutar: Solo referencia, no instalar dependencias Python

Enlaces Útiles