Permite congelar el saldo de un distribuidor por empresa a una fecha de corte y bloquear modificaciones retroactivas sobre el período cerrado. El saldo se calcula sumando movimientos en rango (sin tocar cue_Saldos). Incluye reapertura controlada exclusivamente por SuperAdmin, reporte con saldo inicial, atajo "Desde último cierre", y auditoría del ciclo de vida _H. Permisos CC001/CC002/CC003. Middleware global mapea bloqueos por período cerrado a HTTP 409.
32 lines
1.5 KiB
C#
32 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace GestionIntegral.Api.Dtos.Reportes.ViewModels
|
|
{
|
|
public class CuentasDistribuidorViewModel
|
|
{
|
|
// --- Datos de entrada ---
|
|
public IEnumerable<BalanceCuentaDistDto> Movimientos { get; set; } = new List<BalanceCuentaDistDto>();
|
|
public IEnumerable<BalanceCuentaPagosDto> Pagos { get; set; } = new List<BalanceCuentaPagosDto>();
|
|
public IEnumerable<BalanceCuentaDebCredDto> DebitosCreditos { get; set; } = new List<BalanceCuentaDebCredDto>();
|
|
|
|
// Saldo inicial del período: snapshot del último cierre + movimientos netos hasta fechaDesde.
|
|
// 0 si no hay cierre previo.
|
|
public decimal SaldoInicial { get; set; }
|
|
|
|
// --- Parámetros del reporte ---
|
|
public string NombreDistribuidor { get; set; } = string.Empty;
|
|
public string FechaDesde { get; set; } = string.Empty;
|
|
public string FechaHasta { get; set; } = string.Empty;
|
|
public string FechaReporte { get; set; } = DateTime.Now.ToString("dd/MM/yyyy");
|
|
|
|
// --- Propiedades para el resumen final ---
|
|
public decimal TotalMovimientos => Movimientos.Sum(m => m.Debe - m.Haber);
|
|
public decimal TotalPagos => Pagos.Sum(p => p.Debe - p.Haber);
|
|
public decimal TotalDebitosCreditos => DebitosCreditos.Sum(d => d.Debe - d.Haber);
|
|
|
|
// Saldo Final = Saldo Inicial + suma neta del período (Debe - Haber por sección).
|
|
public decimal SaldoFinal => SaldoInicial + TotalMovimientos + TotalPagos + TotalDebitosCreditos;
|
|
}
|
|
} |