@page "/jobs/new"
@page "/jobs/{Id:int}"
@inject JobService JobService
@inject MaterialService MaterialService
@inject StockItemService StockItemService
@inject CutListPackingService PackingService
@inject PurchaseItemService PurchaseItemService
@inject NavigationManager Navigation
@inject IJSRuntime JS
@using CutList.Core
@using CutList.Core.Nesting
@using CutList.Core.Formatting
@using CutList.Web.Data.Entities
Loading...
} else if (IsNew) {No parts added yet.
Add the parts you need to cut, selecting the material for each.
| Material | Length | Qty | Name | Actions |
|---|---|---|---|---|
| @part.Material.DisplayName | @ArchUnits.FormatFromInches((double)part.LengthInches) | @part.Quantity | @(string.IsNullOrWhiteSpace(part.Name) ? "-" : part.Name) | @if (!job.IsLocked) { } |
No stock configured for this job.
Add stock from your inventory or define custom lengths.
If no stock is selected, the optimizer will use all available stock for the materials in your parts list.
| Material | Length | Qty | Priority | Source | Actions |
|---|---|---|---|---|---|
| @stock.Material?.DisplayName | @ArchUnits.FormatFromInches((double)stock.LengthInches) | @(stock.Quantity == -1 ? "Unlimited" : stock.Quantity.ToString()) | @stock.Priority | @if (stock.IsCustomLength) { Custom } else { Inventory } | @if (!job.IsLocked) { } |
Some items could not be placed. This usually means no stock lengths are configured for the material, or parts are too long.
Total Stock Bars
Total Pieces
Total Waste
Efficiency
Ready to cut from existing inventory
Everything available in stock
}Click Optimize to calculate the most efficient cut list.
| # | Stock Length | Cuts | Waste |
|---|---|---|---|
| @binNumber | @ArchUnits.FormatFromInches(bin.Length) | @foreach (var item in bin.Items) { @(string.IsNullOrWhiteSpace(item.Name) ? ArchUnits.FormatFromInches(item.Length) : $"{item.Name} ({ArchUnits.FormatFromInches(item.Length)})") } | @ArchUnits.FormatFromInches(bin.RemainingLength) |