105 lines
2.6 KiB
Markdown
105 lines
2.6 KiB
Markdown
# Análisis del Módulo Analytic de Odoo
|
|
|
|
**Módulo:** analytic
|
|
**Prioridad:** P0
|
|
**Mapeo MGN:** MGN-008 (Contabilidad Analítica)
|
|
|
|
## Descripción
|
|
|
|
Módulo CRÍTICO para ERPs multi-proyecto. Permite tracking de costos/ingresos por:
|
|
- Proyectos
|
|
- Departamentos
|
|
- Centros de costo
|
|
- Clientes
|
|
- Campañas
|
|
|
|
## Modelos Principales
|
|
|
|
### account.analytic.account (Cuentas Analíticas)
|
|
- Nombre del proyecto/centro de costo
|
|
- Plan de cuentas analítico
|
|
- Balance de costos/ingresos
|
|
|
|
### account.analytic.line (Líneas Analíticas)
|
|
- Registro de costo o ingreso
|
|
- Vinculado a cuenta analítica
|
|
- Integrado en: compras, ventas, inventario, nómina, gastos
|
|
|
|
## Patrón Universal
|
|
|
|
**TODOS los módulos transaccionales registran en analytic:**
|
|
|
|
```python
|
|
# En purchase.order.line
|
|
analytic_account_id = fields.Many2one('account.analytic.account')
|
|
|
|
# En sale.order.line
|
|
analytic_account_id = fields.Many2one('account.analytic.account')
|
|
|
|
# En account.move.line (facturas)
|
|
analytic_account_id = fields.Many2one('account.analytic.account')
|
|
|
|
# En hr_timesheet (horas trabajadas)
|
|
analytic_account_id = fields.Many2one('account.analytic.account')
|
|
```
|
|
|
|
**Resultado:** Reportes consolidados de costos/ingresos por proyecto
|
|
|
|
## Ejemplo de Uso
|
|
|
|
```
|
|
Proyecto: "Construcción Torre A"
|
|
analytic_account_id = 101
|
|
|
|
Compras de materiales: $500,000 → analytic_account_id = 101
|
|
Ventas de departamentos: $2,000,000 → analytic_account_id = 101
|
|
Nómina de empleados: $300,000 → analytic_account_id = 101
|
|
|
|
Balance Analítico:
|
|
Ingresos: $2,000,000
|
|
Costos: $800,000
|
|
Margen: $1,200,000 (60%)
|
|
```
|
|
|
|
## Mapeo a MGN-008
|
|
|
|
- RF-ANA-001: Gestión de cuentas analíticas
|
|
- RF-ANA-002: Registro de líneas analíticas
|
|
- RF-ANA-003: Reportes por proyecto/centro de costo
|
|
- RF-ANA-004: Integración con módulos transaccionales
|
|
|
|
## Implementación Recomendada MGN-008
|
|
|
|
```sql
|
|
-- Schema analytics
|
|
CREATE TABLE analytics.accounts (
|
|
id SERIAL PRIMARY KEY,
|
|
tenant_id INT NOT NULL,
|
|
code VARCHAR(20) NOT NULL,
|
|
name VARCHAR(200) NOT NULL,
|
|
type VARCHAR(50), -- project, department, cost_center, customer
|
|
parent_id INT REFERENCES analytics.accounts(id),
|
|
active BOOLEAN DEFAULT TRUE
|
|
);
|
|
|
|
CREATE TABLE analytics.lines (
|
|
id SERIAL PRIMARY KEY,
|
|
tenant_id INT NOT NULL,
|
|
account_id INT NOT NULL REFERENCES analytics.accounts(id),
|
|
date DATE NOT NULL,
|
|
description TEXT,
|
|
amount DECIMAL(15,2) NOT NULL,
|
|
currency_id INT,
|
|
source_module VARCHAR(50), -- 'purchase', 'sale', 'payroll', 'expenses'
|
|
source_id INT, -- ID del registro fuente
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
```
|
|
|
|
**Aplicabilidad:** ⭐⭐⭐⭐⭐ - ESENCIAL para ERP Construcción/Proyectos
|
|
|
|
---
|
|
|
|
**Fecha:** 2025-11-23
|
|
**Estado:** ✅ Análisis completo
|