@model PowderCoating.Web.ViewModels.Reports.InvoiceAgingDetailViewModel @{ ViewData["Title"] = "Invoice Aging Detail"; }
Total Outstanding
@Model.TotalBalance.ToString("C")
Open Invoices
@Model.Items.Count
Overdue (1–30 days)
@Model.Items.Where(i => i.AgingBucket == "1–30 Days").Sum(i => i.BalanceDue).ToString("C")
Overdue (90+ days)
@Model.Items.Where(i => i.AgingBucket == "90+ Days").Sum(i => i.BalanceDue).ToString("C")
@foreach (var item in Model.Items) { var bucketClass = item.AgingBucket switch { "Current" => "text-success", "1–30 Days" => "text-warning", "31–60 Days" => "text-orange", "61–90 Days" => "text-danger", "90+ Days" => "fw-bold text-danger", _ => "" }; }
Invoice # Customer Invoice Date Due Date Total Paid Balance Due Days Overdue Aging Bucket Status
@item.InvoiceNumber @item.CustomerName @if (!string.IsNullOrEmpty(item.CustomerEmail)) {
@item.CustomerEmail
}
@item.InvoiceDate.ToString("MMM d, yyyy") @Html.Raw(item.DueDate?.ToString("MMM d, yyyy") ?? "—") @item.Total.ToString("C") @item.AmountPaid.ToString("C") @item.BalanceDue.ToString("C") @Html.Raw(item.DaysOverdue > 0 ? item.DaysOverdue.ToString() : "—") @item.AgingBucket @item.StatusDisplay
Total Outstanding @Model.TotalBalance.ToString("C")