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:

  1. 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 un C_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.
  2. Generación de Líneas de Detalle (LevelNo = 1):
    • Consulta la vista contable diaria cds_rv_fact_acct_day aplicando 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 = 1 en la tabla temporal.
  3. 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' y LevelNo = 0.
  4. Actualización Masiva del Balance Acumulado: Ejecuta un comando SQL de tipo UPDATE que 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:

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 Reglas para contabilizar
Un esquema contable define las reglas contables usadas tales como método de costeo; moneda y calendario
Tipo de Aplicación * PostingType El tipo de total que esta nota contable actualizó
El tipo de aplicación indica el tipo de total (actual; gravamen; presupuesto) que esta nota contable actualizó
Período C_Period_ID Período de Calendario
El Período indica un rango de fechas exclusivo para un calendario
Fecha Contable DateAcct Fecha contable
La fecha contable indica la fecha a ser usada en las cuentas de contabilidad general generadas desde este documento
Organización AD_Org_ID Entidad organizacional dentro del grupo empresarial
Una organización es una unidad del grupo empresarial o entidad legal - Ej. Tiendas y departamentos. Es posible compartir datos entre organizaciones.
Cuenta Account_ID Cuenta usada
La cuenta (natural) usada
Tercero C_BPartner_ID Identifica un Tercero
Un tercero es cualquiera con quien usted realiza transacciones. Este puede incluir Proveedores, Clientes, Empleados o Vendedores.
Producto M_Product_ID Producto; servicio o artículo.
Identifica un artículo que puede ser comprado o vendido es esta organización.
Proyecto C_Project_ID Proyecto Financiero
Un proyecto permite hacer un seguimiento y control interno
Centro de Costo (Job) C_Activity_ID Centro de Costo (Job)
Las actividades indican tareas que son ejecutadas en el curso de un negocio; las actividades son usadas para el costeo por actividad (ABC)
Región de Ventas C_SalesRegion_ID Región de cobertura de ventas.
La región de ventas indica una área de cobertura de ventas específica.
Campaña C_Campaign_ID Campaña de Mercadeo
La Campaña define un programa de mercadotecnia único. Los proyectos pueden estar asociados con una campaña de mercadotecnia única. Usted puede entonces reportar basado en una campaña específica
Usuario 1 User1_ID El usuario definió el elemento # 1
El elemento definido por el usuario despliega los elementos opcionales que han sido definidos para esta combinación de cuentas
Usuario 2 User2_ID El usuario definió el elemento # 2
El elemento definido por el usuario despliega los elementos opcionales que han sido definidos para esta combinación de cuentas
Reportando Jerarquías PA_Hierarchy_ID Reporte Opcional de Jerarquías - Si no seleccionó se emplea el árbol predeterminado de jerarquías
Reportar Jerarquías le permite seleccionar diferentes Jerarquías/Arboles para el Reoporte.Segmentos contables deseadosm Organizaciones, Cuentas, Productos pueden tener algunas jerarquías para acomodar siferentes vistas acerca del negocio.