workspace/knowledge-base/reference/odoo/README.md
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

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

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

203 lines
5.9 KiB
Markdown

# 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
```bash
# 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
```bash
# 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
```bash
# 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)
```bash
# 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
```python
# 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
```python
@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
```python
@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
```python
# 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
- [Odoo Documentation](https://www.odoo.com/documentation/18.0/)
- [Odoo GitHub](https://github.com/odoo/odoo)
- [Odoo ORM Reference](https://www.odoo.com/documentation/18.0/developer/reference/backend/orm.html)