@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();
}
}
}