@using PowderCoating.Application.DTOs.PurchaseOrder @using PowderCoating.Core.Enums @model PurchaseOrderDto @{ ViewData["Title"] = $"PO {Model.PoNumber}"; string StatusBadge(PurchaseOrderStatus s) => s switch { PurchaseOrderStatus.Draft => "secondary", PurchaseOrderStatus.Submitted => "primary", PurchaseOrderStatus.PartiallyReceived => "warning", PurchaseOrderStatus.Received => "success", PurchaseOrderStatus.Cancelled => "danger", _ => "secondary" }; }

@Model.PoNumber @Model.Status @if (Model.IsOverdue) { Overdue }

@Model.VendorName
Download PDF Back to List
Line Items
@foreach (var item in Model.Items) { } @if (Model.ShippingCost > 0) { }
Item SKU Ordered Received Unit Cost Line Total
@item.ItemName @if (!string.IsNullOrEmpty(item.Notes)) {
@item.Notes }
@item.ItemSKU @item.QuantityOrdered.ToString("G29") @item.UnitOfMeasure @item.QuantityReceived.ToString("G29") @if (item.IsFullyReceived) { } $@item.UnitCost.ToString("N2") $@item.LineTotal.ToString("N2")
Subtotal $@Model.SubTotal.ToString("N2")
Shipping $@Model.ShippingCost.ToString("N2")
Total $@Model.TotalAmount.ToString("N2")
@if (!string.IsNullOrEmpty(Model.Notes)) {
Notes
@Model.Notes
} @if (!string.IsNullOrEmpty(Model.InternalNotes)) {
Internal Notes
@Model.InternalNotes
}
Actions
@if (Model.Status == PurchaseOrderStatus.Draft) { Edit
@Html.AntiForgeryToken()
Delete } @if (Model.Status == PurchaseOrderStatus.Submitted || Model.Status == PurchaseOrderStatus.PartiallyReceived) { Receive Goods
@Html.AntiForgeryToken()
} @if (Model.Status == PurchaseOrderStatus.Received) {

Fully Received

@if (Model.ReceivedDate.HasValue) { @Model.ReceivedDate.Value.ToString("MM/dd/yyyy") }
@if (Model.BillId.HasValue) { View Bill @Model.BillNumber } else { Create Bill } } @if (Model.Status == PurchaseOrderStatus.PartiallyReceived && !Model.BillId.HasValue) { Create Bill (Partial) } @if (Model.BillId.HasValue && Model.Status == PurchaseOrderStatus.PartiallyReceived) { View Bill @Model.BillNumber } @if (Model.Status == PurchaseOrderStatus.Cancelled) {

Cancelled

Delete }
Vendor

@Model.VendorName

@if (!string.IsNullOrEmpty(Model.VendorEmail)) {

@Model.VendorEmail

} @if (!string.IsNullOrEmpty(Model.VendorPhone)) {

@Model.VendorPhone

}
Dates
Order Date @Model.OrderDate.ToString("MM/dd/yyyy")
Expected Delivery @(Model.ExpectedDeliveryDate?.ToString("MM/dd/yyyy") ?? "—")
@if (Model.ReceivedDate.HasValue) {
Received @Model.ReceivedDate.Value.ToString("MM/dd/yyyy")
}