Auxiliar Contable (Estado de Cuenta)
Descripción General
El proceso Auxiliar Contable (Estado de Cuenta) (AccountingLedger) compila los movimientos contables detallados y calcula progresivamente el saldo acumulado (débitos, créditos y saldo en marcha) de una o varias cuentas contables dentro de un rango de fechas. La información consolidada se inserta en la tabla temporal T_ReportStatementCDS para facilitar su impresión y análisis.
Cálculo Eficiente de Saldos Progresivos: A diferencia de las consultas tradicionales de bases de datos, este proceso aprovecha las funciones analíticas de ventana SQL y el uso de una tabla temporal segmentada por instancia de proceso (
AD_PInstance_ID) para generar estados de cuenta complejos a gran velocidad.
Flujo de Ejecución Técnico
El proceso ejecuta las siguientes etapas durante su ejecución en el servidor de aplicaciones:
- Inicialización de Rango de Fechas: Si el usuario define fechas específicas en el parámetro
DateAcct, se utilizan dichos valores. Si no especifica fechas pero proporciona unC_Period_ID, extrae las fechas de inicio y fin de dicho período. Como último recurso, calcula los rangos basados en el mes calendario actual. - Generación de Líneas de Detalle (LevelNo = 1):
- Consulta la vista contable diaria
cds_rv_fact_acct_dayaplicando los filtros de cuenta, organización, terceros, proyectos, actividades y dimensiones del usuario. - Calcula el balance acumulado de las transacciones usando la función analítica SQL:
SUM(AmtAcctDr - AmtAcctCr) OVER (PARTITION BY e.Value ORDER BY e.Value, a.DateAcct, e.Description ASC ROWS UNBOUNDED PRECEDING). - Inserta los resultados con
LevelNo = 1en la tabla temporal.
- Consulta la vista contable diaria
- Cálculo del Saldo Inicial (LevelNo = 0):
- Suma los movimientos acumulados anteriores a la fecha de inicio del reporte.
- Control Contable de Cuentas de Resultados: Si la cuenta procesada no es de Balance (sino una cuenta de gastos o ingresos), el proceso restringe la consulta del saldo inicial limitándola a la fecha de inicio del año fiscal en curso (obtenida mediante
MPeriod.getFirstInYear). Esto evita la acumulación indebida de saldos históricos cerrados en ejercicios anteriores. - Inserta la línea de saldo consolidado inicial con la descripción fija
'SALDO INICIAL'yLevelNo = 0.
- Actualización Masiva del Balance Acumulado: Ejecuta un comando SQL de tipo
UPDATEque recalcula y encadena el saldo acumulado real progresivo sumando el saldo inicial (LevelNo = 0) con el histórico detallado de transacciones (LevelNo = 1) ordenadas por fecha contable y descripción.
Estructura de la Tabla Temporal T_ReportStatementCDS
La tabla intermedia t_reportstatementcds consolida los registros antes de que iDempiere invoque al motor de renderizado del reporte. Los campos clave de esta tabla son:
AD_PInstance_ID: Código numérico único asignado a la instancia del proceso ejecutado, permitiendo aislar las consultas concurrentes entre usuarios.LevelNo: Indica la jerarquía de la línea (0= Saldo Inicial;1= Detalle Transaccional).DateAcct: Fecha del movimiento contable.Name/Description: Nombre descriptivo o detalle de la transacción contable.AmtAcctDr/AmtAcctCr: Montos contables de débito y crédito.Balance: Saldo progresivo consolidado calculado a la fecha.Account_ID/Account_Name: Identificadores de la cuenta contable conteniendo la línea.c_bpartner_id: Socio de negocio de la transacción (tercero relacionado).
Nota de Rendimiento: La tabla temporal utiliza índices en su estructura de base de datos para los campos AD_PInstance_ID, Account_ID y DateAcct para garantizar velocidad óptima en grandes volúmenes de transacciones contables diarias.
Parámetros
Al ejecutar el proceso Auxiliar Contable (Estado de Cuenta) en la interfaz de PrimApp / iDempiere, se presentan los siguientes parámetros de configuración:
| Parámetro | Nombre en BD | Descripción / Uso |
|---|---|---|
| Esquema Contable | C_AcctSchema_ID |
El esquema de cuentas del cual se extraerán las transacciones (parámetro obligatorio). |
| Tipo de Asiento | PostingType |
Filtro por tipo de registro (A = Real, S = Presupuestado, P = Planificado). Por defecto, 'A'. |
| Período | C_Period_ID |
Define el período contable para deducir fechas en caso de que no se especifique un rango manual. |
| Fecha Contable | DateAcct |
Rango de fechas (desde/hasta) para el análisis auxiliar. |
| Cuenta Contable | Account_ID |
La cuenta natural a procesar. El proceso soporta la expansión jerárquica si se indica una jerarquía en el árbol. |
| Socio de Negocio | C_BPartner_ID |
Filtro opcional para extraer transacciones correspondientes a un tercero específico. |
| Jerarquía | PA_Hierarchy_ID |
Jerarquía para la resolución estructural del árbol organizativo o de cuentas. |
| Dimensiones Adicionales | Varios IDs | Filtros opcionales para refinar la extracción por Organización (AD_Org_ID), Producto, Proyecto, Actividad, Campaña, Región de Ventas, y elementos de dimensiones personalizadas de usuario (User1_ID, User2_ID, UserElement1_ID, UserElement2_ID). |