using System; using System.Collections.Generic; using System.Linq; namespace GestionIntegral.Api.Dtos.Reportes.ViewModels { public class CuentasDistribuidorViewModel { // --- Datos de entrada --- public IEnumerable Movimientos { get; set; } = new List(); public IEnumerable Pagos { get; set; } = new List(); public IEnumerable DebitosCreditos { get; set; } = new List(); // 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; } }