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:
- Carga de la Plantilla Contable: Instancia la plantilla de configuración del generador (
QSS_JournalGenerator) utilizando el ID del registro activo. - Definición del Agrupamiento (Dimensiones): Determina qué dimensiones contables se heredarán en las líneas del diario contable de destino:
- Si
CopyAllDimensionsestá 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 (siSameProductestá activo).
- Si
- Extracción y Sumarización: Ejecuta consultas SQL dinámicas sobre
Fact_Acctagrupadas 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). - 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).
- Para cada fuente de origen, multiplica el saldo neto (
- 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. - 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. - 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).
- Si Es Simulación está activo (
Estructura de Plantillas de Configuración
El comportamiento contable y el direccionamiento del proceso se gobiernan a través de tres niveles de registros:
- Generador de Diarios (Cabecera): Define el Esquema Contable (
C_AcctSchema_ID), la Organización, el Tipo de Documento, la Categoría de Diario, el Tipo de Registro (Generalmente Real 'A') y las Cuentas de Ajuste por Redondeo. - Línea de Generación: Define las cuentas contables definitivas en las que se registrarán el Débito (
C_ElementValueDR_ID) y/o el Crédito (C_ElementValueCR_ID), así como el tipo de agrupamiento de dimensiones (como el Tipo de Tercero: Fijo, Mismo Origen, Columna Externa) y sus multiplicadores finales. - Fuente del Generador: Define qué cuenta contable o árbol contable de origen (
C_ElementValue_ID) enFact_Acctproporcionará la información de saldo financiero, y qué porcentaje o multiplicador individual se le aplicará.
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.