@using PowderCoating.Application.DTOs.Common @using PowderCoating.Application.DTOs.PurchaseOrder @using PowderCoating.Core.Enums @model PagedResult @{ ViewData["Title"] = "Purchase Orders"; var searchTerm = ViewBag.SearchTerm as string; var statusFilter = ViewBag.StatusFilter as PurchaseOrderStatus?; var vendorId = ViewBag.VendorId as int?; var dateFrom = ViewBag.DateFrom as string; var dateTo = ViewBag.DateTo as string; var sortCol = (ViewBag.SortColumn as string ?? "orderdate").ToLower(); var sortDir = (ViewBag.SortDirection as string ?? "desc").ToLower(); string SortIcon(string col) { if (col != sortCol) return ""; return sortDir == "asc" ? "" : ""; } string SortHref(string col) { var dir = (col == sortCol && sortDir == "asc") ? "desc" : "asc"; return $"?sortColumn={col}&sortDirection={dir}&searchTerm={searchTerm}&statusFilter={statusFilter}&vendorId={vendorId}&dateFrom={dateFrom}&dateTo={dateTo}&pageSize={Model.PageSize}"; } string StatusBadge(PurchaseOrderStatus s) => s switch { PurchaseOrderStatus.Draft => "secondary", PurchaseOrderStatus.Submitted => "primary", PurchaseOrderStatus.PartiallyReceived => "warning", PurchaseOrderStatus.Received => "success", PurchaseOrderStatus.Cancelled => "danger", _ => "secondary" }; }

Total POs

@ViewBag.TotalCount

Open

@ViewBag.OpenCount

Committed Value

$@ViewBag.CommittedValue?.ToString("N2")

Overdue

@ViewBag.OverdueCount

Purchase Orders

@foreach (var po in Model.Items) {
@po.PoNumber @(po.IsOverdue ? " — Overdue" : "")
@po.VendorName
Status @po.Status
Order Date @po.OrderDate.ToString("MM/dd/yy")
@if (po.ExpectedDeliveryDate.HasValue) {
Expected @po.ExpectedDeliveryDate.Value.ToString("MM/dd/yy")
}
Items @po.ItemCount
Total $@po.TotalAmount.ToString("N2")
}
@if (!Model.Items.Any()) { } else { @foreach (var po in Model.Items) { } }
PO # @Html.Raw(SortIcon("ponumber")) Vendor @Html.Raw(SortIcon("vendor")) Status @Html.Raw(SortIcon("status")) Order Date @Html.Raw(SortIcon("orderdate")) Expected @Html.Raw(SortIcon("expected")) Items Total @Html.Raw(SortIcon("total"))

No purchase orders found.

Create Your First PO
@po.PoNumber @if (po.IsOverdue) { Overdue } @po.VendorName @po.Status.ToString() @po.OrderDate.ToString("MM/dd/yyyy") @(po.ExpectedDeliveryDate?.ToString("MM/dd/yyyy") ?? "—") @po.ItemCount $@po.TotalAmount.ToString("N2")