@page "/orders/add" @inject PurchaseItemService PurchaseItemService @inject StockItemService StockItemService @inject SupplierService SupplierService @inject JobService JobService @inject NavigationManager Navigation @using CutList.Core.Formatting @using CutList.Web.Data.Entities Add Order Item

Add Order Item

@if (loading) {

Loading...

} else {
Order Item Details
@if (!string.IsNullOrEmpty(errorMessage)) {
@errorMessage
}
Cancel
} @code { private PurchaseItem item = new() { Quantity = 1 }; private List stockItems = new(); private Dictionary> stockItemGroups = new(); private List suppliers = new(); private List jobs = new(); private bool loading = true; private bool saving; private string? errorMessage; protected override async Task OnInitializedAsync() { stockItems = await StockItemService.GetAllAsync(); suppliers = await SupplierService.GetAllAsync(); jobs = await JobService.GetAllAsync(); stockItemGroups = stockItems .GroupBy(s => s.Material.Shape.GetDisplayName()) .OrderBy(g => g.Key) .ToDictionary(g => g.Key, g => g.OrderBy(s => s.Material.Size).ThenBy(s => s.LengthInches).ToList()); loading = false; } private async Task SaveAsync() { errorMessage = null; saving = true; try { if (item.StockItemId == 0) { errorMessage = "Please select a stock item"; return; } if (item.Quantity <= 0) { errorMessage = "Quantity must be at least 1"; return; } await PurchaseItemService.CreateAsync(item); Navigation.NavigateTo("orders"); } finally { saving = false; } } }