From 441898b52f43c827e67311e226dbf5f845c2ddf0 Mon Sep 17 00:00:00 2001 From: Scott Pouliot Date: Tue, 19 May 2026 18:33:50 -0400 Subject: [PATCH 1/3] Fix NoExtraLayerCharge not persisting on quotes and job EditItems reload - QuotePricingAssemblyService.BuildQuoteItemCoat: map NoExtraLayerCharge from CreateQuoteItemCoatDto to QuoteItemCoat on every quote save (was always omitted) - JobsController.EditItems GET: include NoExtraLayerCharge in coat mapping when reloading existing items for the wizard (was dropped, causing revert on second edit) Co-Authored-By: Claude Sonnet 4.6 --- .../Services/QuotePricingAssemblyService.cs | 1 + src/PowderCoating.Web/Controllers/JobsController.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/PowderCoating.Application/Services/QuotePricingAssemblyService.cs b/src/PowderCoating.Application/Services/QuotePricingAssemblyService.cs index 9efa727..db45f13 100644 --- a/src/PowderCoating.Application/Services/QuotePricingAssemblyService.cs +++ b/src/PowderCoating.Application/Services/QuotePricingAssemblyService.cs @@ -264,6 +264,7 @@ public class QuotePricingAssemblyService : IQuotePricingAssemblyService TransferEfficiency = coatDto.TransferEfficiency, PowderCostPerLb = coatDto.PowderCostPerLb, PowderToOrder = coatDto.PowderToOrder, + NoExtraLayerCharge = coatDto.NoExtraLayerCharge, Notes = coatDto.Notes, CompanyId = companyId, CreatedAt = createdAtUtc diff --git a/src/PowderCoating.Web/Controllers/JobsController.cs b/src/PowderCoating.Web/Controllers/JobsController.cs index c2fe1ea..28f0650 100644 --- a/src/PowderCoating.Web/Controllers/JobsController.cs +++ b/src/PowderCoating.Web/Controllers/JobsController.cs @@ -2946,6 +2946,7 @@ public class JobsController : Controller TransferEfficiency = c.TransferEfficiency, PowderCostPerLb = c.PowderCostPerLb, PowderToOrder = c.PowderToOrder, + NoExtraLayerCharge = c.NoExtraLayerCharge, Notes = c.Notes }).ToList(), PrepServices = ji.PrepServices.Select(ps => new CreateQuoteItemPrepServiceDto From 59b152c89f5a359434b92be1e05002a911593fb1 Mon Sep 17 00:00:00 2001 From: Scott Pouliot Date: Tue, 19 May 2026 18:36:04 -0400 Subject: [PATCH 2/3] Fix noExtraLayerCharge missing from Job Details wizard item projection WizardExistingItems coat serialization in Details GET omitted noExtraLayerCharge, so editing a line item from the Details page always lost the no-charge flag. Co-Authored-By: Claude Sonnet 4.6 --- src/PowderCoating.Web/Controllers/JobsController.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PowderCoating.Web/Controllers/JobsController.cs b/src/PowderCoating.Web/Controllers/JobsController.cs index 28f0650..b8a00d3 100644 --- a/src/PowderCoating.Web/Controllers/JobsController.cs +++ b/src/PowderCoating.Web/Controllers/JobsController.cs @@ -477,6 +477,7 @@ public class JobsController : Controller transferEfficiency = c.TransferEfficiency, powderCostPerLb = c.PowderCostPerLb, powderToOrder = c.PowderToOrder, + noExtraLayerCharge = c.NoExtraLayerCharge, notes = c.Notes }), prepServices = ji.PrepServices.Select(ps => new { From 4a7087cc0c0ccaf29e0f4776a71eec8a7731986a Mon Sep 17 00:00:00 2001 From: Scott Pouliot Date: Tue, 19 May 2026 18:37:29 -0400 Subject: [PATCH 3/3] Fix NoExtraLayerCharge dropped in DeleteItem pricing recalculation After deleting a job item, the remaining-items DTO projection was missing NoExtraLayerCharge, causing PricingCalculationService to treat all coats as extra-charge when recalculating the job total post-delete. Co-Authored-By: Claude Sonnet 4.6 --- src/PowderCoating.Web/Controllers/JobsController.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PowderCoating.Web/Controllers/JobsController.cs b/src/PowderCoating.Web/Controllers/JobsController.cs index b8a00d3..393ae28 100644 --- a/src/PowderCoating.Web/Controllers/JobsController.cs +++ b/src/PowderCoating.Web/Controllers/JobsController.cs @@ -3128,7 +3128,8 @@ public class JobsController : Controller InventoryItemId = c.InventoryItemId, CoverageSqFtPerLb = c.CoverageSqFtPerLb, TransferEfficiency = c.TransferEfficiency, - PowderCostPerLb = c.PowderCostPerLb + PowderCostPerLb = c.PowderCostPerLb, + NoExtraLayerCharge = c.NoExtraLayerCharge }).ToList() }).ToList();