Add IsIncoming inventory flag and catalog-to-incoming powder flow in item wizard

- InventoryItem.IsIncoming: marks powder ordered but not yet received; enables QR code
  printing on work orders while the shipment is in transit
- InventoryController.CreateIncomingFromCatalog: POST endpoint creates a 0-balance inventory
  record from a PowderCatalogItem and returns it in wizard-compatible shape
- item-wizard.js: custom coat tab now searches the platform powder catalog as a fallback;
  catalog results show an 'Add as Incoming Order' option; createIncomingFromCatalog POSTs
  to server and selects the new item without a page refresh
- QuoteItemCoatDto: CatalogItemId + AddAsIncoming fields so the wizard can signal server-side
  incoming-item creation during quote save
- Inventory Create/Edit/Index views: IsIncoming badge and field
- IInventoryAiLookupService: minor interface update
- Migration: AddInventoryIsIncoming

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-08 20:47:19 -04:00
parent f40d58ac2e
commit fc35fd123c
10 changed files with 10038 additions and 22 deletions
@@ -275,7 +275,13 @@
<span class="fw-semibold">@((item.QuantityOnHand * item.UnitCost).ToString("C"))</span>
</td>
<td>
@if (item.IsActive)
@if (item.IsIncoming)
{
<span class="badge bg-warning bg-opacity-25 text-warning-emphasis">
<i class="bi bi-truck me-1"></i>Incoming
</span>
}
else if (item.IsActive)
{
<span class="badge bg-success bg-opacity-10 text-success">
<i class="bi bi-check-circle me-1"></i>Active