Descripción General

El proceso Generador de Diarios Contables (GLJournalGenerate) automatiza la creación de asientos de diario en PrimApp / iDempiere a partir de los saldos de transacciones acumulados en el diario real (tabla Fact_Acct). Este proceso aplica multiplicadores, reglas de agrupamiento de dimensiones contables y factores de redondeo configurados en una plantilla predefinida.

Automatización de Cierres Contables: Este proceso es clave para realizar provisiones contables automáticas, distribución de costos indirectos, reclasificaciones de saldos de fin de mes o amortizaciones sin necesidad de cálculos manuales externos.

Flujo de Ejecución Técnico

Cuando el proceso se ejecuta, realiza el siguiente flujo de procesamiento en el servidor de aplicaciones:

  1. Carga de la Plantilla Contable: Instancia la plantilla de configuración del generador (QSS_JournalGenerator) utilizando el ID del registro activo.
  2. Definición del Agrupamiento (Dimensiones): Determina qué dimensiones contables se heredarán en las líneas del diario contable de destino:
    • Si CopyAllDimensions está marcado en la línea del generador, el proceso agrupa y copia dinámicamente todos los elementos del esquema contable (Tercero, Producto, Proyecto, Actividad, Campaña, etc.).
    • Si no está marcado, solo agrupa y copia el Tercero (según la regla BPDimensionType) y/o el Producto (si SameProduct está activo).
  3. Extracción y Sumarización: Ejecuta consultas SQL dinámicas sobre Fact_Acct agrupadas por las dimensiones resultantes. Filtra las transacciones contables reales (PostingType = 'A') en base a las cuentas contables del árbol definidas en las Fuentes del Generador (QSS_JournalGeneratorSource).
  4. Cálculo de Multiplicadores y Redondeo:
    • Para cada fuente de origen, multiplica el saldo neto (AmtAcctDr - AmtAcctCr) por el multiplicador de la fuente (AmtMultiplier) y aplica su respectivo redondeo.
    • Suma los montos resultantes y, a nivel de línea de destino, aplica el multiplicador de la línea y el factor de redondeo de destino (RoundFactor).
  5. Resolución Dinámica de Terceros: Si el tipo de dimensión de tercero es Column, el proceso inspecciona el registro referenciado en la base de datos (por ejemplo, obteniendo el socio de negocio asignado a un proyecto o activo) para mapearlo dinámicamente como el tercero de la línea del diario.
  6. Balanceo Contable: Calcula la diferencia neta entre los débitos y créditos resultantes de todo el lote. Si existe una diferencia menor debido a redondeos o porcentajes de distribución, genera automáticamente una línea de ajuste utilizando la cuenta de Ajuste Deudor (AdjustDR) o Ajuste Acreedor (AdjustCR) definida en el generador.
  7. Generación de Asiento:
    • Si Es Simulación está activo (IsSimulation = true), el proceso imprime en pantalla y en la bitácora el detalle de las líneas calculadas sin modificar los datos del sistema.
    • Si no es simulación, crea físicamente la cabecera del diario (GL_Journal), genera las combinaciones contables correspondientes (C_ValidCombination) para cada línea (GL_JournalLine) y ejecuta la acción de documento parametrizada (por ejemplo, Completar el Asiento).

Estructura de Plantillas de Configuración

El comportamiento contable y el direccionamiento del proceso se gobiernan a través de tres niveles de registros:


Revision #1
Created 2026-05-19 21:35:39 UTC by Angel Lara
Updated 2026-05-19 21:35:40 UTC by Angel Lara