Antigüedad de Saldos

Descripción General

El proceso de Antigüedad de Saldos (Aging) analiza las facturas de venta y de compra pendientes de cobro o pago, junto con los cobros y pagos no aplicados, clasificándolos en rangos de vencimiento (corriente, 1-30, 31-60, 61-90, 91-120, 120+ días) a una fecha de corte específica. El resultado se registra en la tabla temporal T_Aging a través del modelo MAging.

Cálculo Histórico y Conversión de Monedas: Este proceso destaca por su capacidad de generar reportes de antigüedad retroactivos a cualquier fecha histórica (mediante la vista RV_OpenItemToDate) y convertir dinámicamente todos los montos a una moneda de presentación común utilizando las tasas de cambio contables del sistema.

Flujo de Ejecución Técnico

El proceso sigue las siguientes etapas durante su ejecución en el servidor:

  1. Cálculo del Desfase de Fecha de Corte: Carga la fecha de corte parametrizada (StatementDate). Si está vacía, asume la fecha actual del sistema. Calcula la diferencia en días entre hoy y la fecha de corte (m_statementOffset) para ajustar dinámicamente los días de vencimiento (DaysDue) obtenidos de la base de datos.
  2. Selección del Origen de Datos (Actual vs. Histórico):
    • Modo de Saldos Actuales (DateAcct = Falso): Consulta la vista estándar de partidas abiertas del sistema (RV_OpenItem), reflejando los saldos pendientes a la fecha actual del sistema.
    • Modo Histórico (DateAcct = Verdadero): Consulta la vista histórica de partidas abiertas (RV_OpenItemToDate) y calcula los importes pagados y abiertos a la fecha de corte del reporte mediante las funciones nativas de base de datos invoicePaidToDate(...) y invoiceOpenToDate(...).
  3. Conversión de Moneda Opcional: Si el usuario especifica una moneda destino en el parámetro ConvertAmountsInCurrency_ID, el proceso encapsula las columnas de importes contables en la consulta SQL dentro de la función currencyConvert(...) utilizando la moneda de origen de la transacción, el ID de moneda destino, la fecha de contabilidad, el tipo de conversión y los datos de cliente/organización.
  4. Agregación e Inserción en T_Aging (Modelo MAging):
    • Ejecuta la consulta generada aplicando filtros por Organización, Grupo de Socios de Negocio o Tercero específico.
    • Para cada fila devuelta, ajusta los días de retraso del pago sumando el desfase: DaysDue + m_statementOffset.
    • Si el parámetro Listar Facturas (IsListInvoices) está activo, genera registros desglosados detallando la factura, la fecha de facturación, el plan de pagos (C_InvoicePaySchedule_ID), la actividad, el proyecto y la campaña. Si no está marcado, agrupa la información del saldo consolidado por Socio de Negocio.
    • Inserta los cobros y pagos no aplicados (cobros a cuenta o anticipos donde C_Payment_ID > 0) como saldos abiertos negativos en el reporte para disminuir el saldo vencido general de forma correcta.
    • Llama a MAging.add(...) para mapear los montos en los rangos de mora correspondientes y los persiste en la tabla temporal de base de datos T_Aging.

Estructura de la Tabla Temporal T_Aging

El proceso interactúa directamente con la tabla de base de datos intermedia T_Aging. Los campos y cubetas clave utilizados son:

Nota: Los cobros y pagos que han sido registrados en cuentas pero no han sido aplicados a facturas (cobros y pagos a cuenta) son clasificados de manera automática en la columna de saldo contable corriente (PastDueAmt0) para compensar y reflejar el valor neto real de deuda del tercero.

Parámetros

Al ejecutar el proceso de Antigüedad de Saldos (Aging) en Lirion o iDempiere, se presentan los siguientes parámetros de configuración:

Parámetro Nombre en BD Descripción / Uso
Fecha de Corte StatementDate Fecha de corte de saldos para calcular los rangos de antigüedad. Si se deja en blanco, asume el día de hoy.
A Fecha Contable DateAcct Si se marca como "Sí" (Y), calcula la antigüedad utilizando los saldos a la fecha histórica indicada (retroactivo). Si es "No" (N), calcula los saldos vigentes actuales.
Transacción de Ventas IsSOTrx Indica si se procesa la antigüedad de cuentas por cobrar de clientes (Y) o cuentas por pagar de proveedores (N).
Convertir a Moneda ConvertAmountsInCurrency_ID Moneda de presentación de reporte. Realiza conversiones automáticas al ID seleccionado.
Organización AD_Org_ID Filtro opcional para limitar la extracción a una sucursal u organización específica.
Grupo de Terceros C_BP_Group_ID Filtro opcional para evaluar únicamente una categoría específica de socios de negocio.
Socio de Negocio C_BPartner_ID Filtro contable opcional para evaluar un tercero de forma individual.
Listar Facturas IsListInvoices Si se marca como "Sí" (Y), desglose individual de las facturas con sus rangos de vencimiento. Si es "No" (N), muestra los totales acumulados por socio de negocio.