2.6 KiB
2.6 KiB
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:
# 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
-- 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