1
Settlement
dmolinari edited this page 2026-02-25 20:56:14 -03:00

📊 Liquidación Cruzada (Settlement)

Liquidación Cruzada


🤝 ¿Qué es la Liquidación Cruzada?

En SIG-CM, un cliente puede comprar un Combo (Bundle) que incluya productos de diferentes medios o empresas (por ejemplo, pagar un aviso en el Diario Papel que incluye de regalo una mención en la Radio).

Dado que el cliente paga todo el combo junto en la caja (a una sola empresa facturadora), el sistema debe calcular al final del mes quién cobró el dinero y quién prestó realmente el servicio, para que las empresas puedan transferirse los saldos correspondientes.

⚙️ Reglas de Negocio del Motor de Liquidación

Para que las cuentas sean exactas, el Backend aplica las siguientes reglas estrictas:

  1. Filtro de Cobro Efectivo: El sistema solo liquida dinero que realmente ingresó a la caja. Ignora las ventas en Cuenta Corriente que aún estén impagas. Solo se toman en cuenta los ítems cuya orden maestra tenga el estado PaymentStatus = 'Paid'.
  2. Detección de Deuda Cruzada: El algoritmo busca específicamente los ítems de venta donde la empresa que emitió la factura (BillingCompanyId) es distinta a la empresa dueña del producto (ServiceCompanyId).
  3. Consolidación: Suma los importes netos (SubTotal) y cuenta la cantidad de transacciones, agrupando los resultados en pares exactos (Ej: La Empresa A le debe $X a la Empresa B por Y cantidad de transacciones).

💡 Nota Técnica: Todo este cálculo se realiza de directamente en el motor de la base de datos (SQL Server) a través de un Query de agrupación en el ReportRepository, lo que garantiza velocidad sin importar el volumen de ventas.