- Add StockItemService for CRUD operations on stock items
- Update SupplierService to manage SupplierOfferings instead of
SupplierStock (GetOfferingsForSupplierAsync, AddOfferingAsync, etc.)
- Update CutListPackingService to use StockItems for available lengths
- Register StockItemService in Program.cs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Migration drops SupplierStocks table and creates StockItems and
SupplierOfferings tables with appropriate indexes and foreign keys.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove SupplierStock entity
- Update Material navigation from SupplierStocks to StockItems
- Update Supplier navigation from Stocks to Offerings
- Update ApplicationDbContext with new DbSets and configurations
- Add unique constraints: StockItem(MaterialId, LengthInches) and
SupplierOffering(SupplierId, StockItemId)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Introduce new data model that separates stock catalog (StockItem) from
supplier-specific pricing/catalog info (SupplierOffering). StockItem
represents a Material+Length combination, while SupplierOffering links
suppliers to stock items with part numbers, descriptions, and pricing.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changes sidebar gradient to neutral gray and adds compact print styles
for better paper usage when printing reports.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds printWithTitle function to set document title before printing for
better file naming when saving as PDF.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updates Results page to display packing results grouped by material,
showing in-stock vs. to-be-purchased breakdown with order summaries.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Redesigns Project Edit with a tabbed interface and adds material
selection (shape -> size) when adding parts. Updates Index to show
customer instead of material.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Extends the Material Edit page with a side panel to manage available
stock lengths, including quantity tracking and CRUD operations.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds MaterialsController with bulk import support and SeedController
for development data seeding.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Refactors CutListPackingService to:
- Pack parts grouped by material type
- Distinguish between in-stock and to-be-purchased bins
- Use material stock lengths for finite inventory
- Use supplier stock for unlimited purchase options
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Removes project-level stock bin methods since stock is now derived from
material stock lengths. Updates queries to include Material on parts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds CRUD methods for managing material stock lengths, including
duplicate checking and quantity tracking.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updates ApplicationDbContext to configure MaterialStockLength and
revised ProjectPart relationships.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Each project part now references its own material, allowing a single
project to use multiple material types. Removes ProjectStockBin entity
since stock is now derived from material stock lengths.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Introduces a new entity to track available stock lengths per material,
enabling in-stock vs. purchase-needed distinction during optimization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a new web-based frontend for cut list optimization using:
- Blazor Server with .NET 8
- Entity Framework Core with MSSQL LocalDB
- Full CRUD for Materials, Suppliers, Projects, and Cutting Tools
- Supplier stock length management for quick project setup
- Integration with CutList.Core for bin packing optimization
- Print-friendly HTML reports with efficiency statistics
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>