@page "/jobs/new"
@page "/jobs/{Id:int}"
@inject JobService JobService
@inject MaterialService MaterialService
@inject CutListPackingService PackingService
@inject NavigationManager Navigation
@inject IJSRuntime JS
@using CutList.Core
@using CutList.Core.Nesting
@using CutList.Core.Formatting
@using CutList.Web.Data.Entities
@loadError
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.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.
Stock must be explicitly added here before you can optimize — there is no automatic fallback to inventory.
| Material | Length | Qty | Priority | Source | Actions |
|---|---|---|---|---|---|
| @stock.Material?.DisplayName | @ArchUnits.FormatFromInches((double)stock.LengthInches) (@(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
No additional material lengths are required beyond the stock configured for this job.
} else {| Material | Length | Qty |
|---|---|---|
| @materialResult.Material.DisplayName | @FormatResultLength(group.Key) | @group.Count() |
| Total Required | @summary.TotalToBePurchasedBins bars | |
| @materialResult.Material.DisplayName @(materialSummary.InStockBins + materialSummary.ToBePurchasedBins) bars · @materialSummary.TotalPieces pieces · @materialSummary.Efficiency.ToString("F1")% efficiency | |||
|---|---|---|---|
| # | Stock Length | Cuts | Waste |
| @binNum | @FormatResultLength(entry.Bin.Length) | @foreach (var item in entry.Bin.Items) { @if (!string.IsNullOrWhiteSpace(item.Name)) { @item.Name } @FormatResultLength(item.Length) } | @FormatResultLength(entry.Bin.RemainingLength) |
Click Optimize to calculate the most efficient cut list.