@model PowderCoating.Application.DTOs.Accounting.BillDto @using PowderCoating.Core.Enums @{ ViewData["Title"] = $"Bill {Model.BillNumber}"; ViewData["PageIcon"] = "bi-receipt-cutoff"; ViewData["PageHelpTitle"] = "Bill Status"; ViewData["PageHelpContent"] = "Draft: editable, not yet confirmed. Open: awaiting payment. Partially Paid: some payments recorded. Paid: fully settled. Voided: cancelled — preserves history. Edit is only available in Draft status. Use Void instead of deleting to keep a complete audit trail."; string StatusBadge(BillStatus s) => s switch { BillStatus.Draft => "secondary", BillStatus.Open => "primary", BillStatus.PartiallyPaid => "warning", BillStatus.Paid => "success", BillStatus.Voided => "danger", _ => "secondary" }; }
Vendor
@Model.VendorName
@if (!string.IsNullOrEmpty(Model.VendorEmail)) {@Model.VendorEmail
} @if (!string.IsNullOrEmpty(Model.VendorPhone)) {@Model.VendorPhone
}Bill Date
@Model.BillDate.ToString("MMM d, yyyy")
Due Date
@Model.DueDate.Value.ToString("MMM d, yyyy")
Vendor Ref #
@Model.VendorInvoiceNumber
Terms
@Model.Terms
Memo
@Model.Memo
| Account | Description | Job | Qty | Unit Price | Amount |
|---|---|---|---|---|---|
| @li.AccountNumber @li.AccountName | @li.Description | @li.JobNumber | @li.Quantity.ToString("G") | @li.UnitPrice.ToString("C") | @li.Amount.ToString("C") |
| Subtotal | @Model.SubTotal.ToString("C") | ||||
| Tax (@Model.TaxPercent.ToString("G")%) | @Model.TaxAmount.ToString("C") | ||||
| Total | @Model.Total.ToString("C") | ||||
| Payment # | Date | Method | Check # | Bank Account | Memo | Amount | |
|---|---|---|---|---|---|---|---|
| @pmt.PaymentNumber | @pmt.PaymentDate.ToString("MMM d, yyyy") | @pmt.PaymentMethod | @pmt.CheckNumber | @pmt.BankAccountName | @pmt.Memo | @pmt.Amount.ToString("C") |