Generador de Notas Contables


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:

Parámetros

Al ejecutar el proceso Generador de Diarios Contables desde la interfaz de PrimApp / iDempiere, se presentan los siguientes parámetros de configuración:

Parámetro Nombre en BD Descripción / Uso
Rango de Fechas ProcessingDate Rango de fechas (Desde/Hasta) para filtrar y acumular los montos del diario origen (Fact_Acct).
Fecha de Contabilidad DateAcct Fecha contable del asiento de diario generado. Determina el período contable destino.
Es Simulación IsSimulation Si se marca como "Sí" (Y), el generador solo muestra una previsualización de los montos resultantes en el registro de log sin crear el asiento real.
Acción de Documento DocAction La acción de documento contable que se aplicará automáticamente tras crear el diario (Completar, Preparar, etc.).
Nº del Documento DocumentNo Número de documento personalizado opcional para el diario generado. Si está vacío, usa la secuencia predeterminada del tipo de documento.
Socio de Negocio C_BPartner_ID Filtro opcional para extraer los saldos de origen contable pertenecientes a un tercero específico.
Producto M_Product_ID Filtro opcional para extraer los saldos de origen contable pertenecientes a un producto específico.
Jerarquía de Organización PA_Hierarchy_ID Estructura organizativa para consolidar movimientos contables de múltiples subsidiarias o sucursales.

Importante: El proceso requiere que el diario generado contenga al menos una línea válida y sea posible balancearlo. Asegúrese de que las cuentas de ajuste contable de débitos y créditos estén debidamente configuradas en la cabecera del Generador de Diarios para evitar fallas en ejecuciones definitivas.