@page "/facturacion/cuentas-cobrar" @attribute [Authorize] @inject ISalesService SalesSvc @inject IDialogService DialogSvc @inject NavigationManager Nav @inject ISnackbar Snackbar Cuentas por Cobrar - AutoTaller ERP TOTAL POR COBRAR S/. @TotalCobrar.ToString("N2") @cuentas.Count factura(s) VENCIDAS S/. @TotalVencidas.ToString("N2") @cuentas.Count(c => c.Vencida) factura(s) POR VENCER S/. @TotalPorVencer.ToString("N2") @cuentas.Count(c => !c.Vencida) factura(s)
Comprobante Cliente Fecha Vencimiento Días vencido Total Saldo Acción @context.Comprobante @context.Cliente @context.Fecha.ToString("dd/MM/yyyy") @context.FechaVencimiento.ToString("dd/MM/yyyy") @if (context.DiasVencido > 0) { @context.DiasVencido días } else { @(-context.DiasVencido) días restantes } S/. @context.Total.ToString("N2") S/. @context.SaldoPendiente.ToString("N2") Cobrar ¡No hay cuentas por cobrar pendientes!
@code { private bool soloVencidas; private List cuentas = new(); private bool cargando = true; private decimal TotalCobrar => cuentas.Sum(c => c.SaldoPendiente); private decimal TotalVencidas => cuentas.Where(c => c.Vencida).Sum(c => c.SaldoPendiente); private decimal TotalPorVencer => cuentas.Where(c => !c.Vencida).Sum(c => c.SaldoPendiente); protected override async Task OnInitializedAsync() => await CargarAsync(); private async Task CargarAsync() { cargando = true; cuentas = await SalesSvc.ListarCuentasCobrarAsync(soloVencidas); cargando = false; } private async Task RegistrarPago(CuentaCobrarDto c) { var pago = new PagoFormDto { FacturaId = c.FacturaId, Monto = c.SaldoPendiente }; var parametros = new DialogParameters { ["Pago"] = pago, ["SaldoMaximo"] = c.SaldoPendiente, ["Comprobante"] = c.Comprobante }; var opciones = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small, FullWidth = true }; var dialog = await DialogSvc.ShowAsync("Registrar pago", parametros, opciones); var r = await dialog.Result; if (r is { Canceled: false }) { Snackbar.Add("Pago registrado", Severity.Success); await CargarAsync(); } } }