Fix inline edit not updating pricing breakdown on Job Details

Jobs/PatchItem now returns the full breakdown (itemsSubtotal,
subtotalBeforeDiscount, subtotalAfterDiscount, taxAmount) so all rows
in the pricing card update live without a page refresh.

Added data-pb attributes to the matching spans in the pricing panel.
Updated window.inlineItemEdit.totals config for jobs to map each
response key to its DOM selector.

updateTotals in inline-item-edit.js is now fully generic — cfg.totals
keys must match server response property names directly, eliminating
the old hardcoded tax/taxAmount and balance/balanceDue mismatches.
Updated Quote and Invoice configs accordingly (tax→taxAmount,
balance→balanceDue).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-20 22:58:26 -04:00
parent 30c644a8ec
commit eb13283e76
5 changed files with 31 additions and 21 deletions
@@ -4264,9 +4264,18 @@ public class JobsController : Controller
await _unitOfWork.Jobs.UpdateAsync(job);
await _unitOfWork.CompleteAsync();
// Deserialize again after possible re-serialization to get final values
QuotePricingBreakdownDto? pbFinal = null;
if (!string.IsNullOrEmpty(job.PricingBreakdownJson))
pbFinal = JsonSerializer.Deserialize<QuotePricingBreakdownDto>(job.PricingBreakdownJson);
return Json(new {
lineTotal = item.TotalPrice,
finalPrice = job.FinalPrice
lineTotal = item.TotalPrice,
finalPrice = job.FinalPrice,
itemsSubtotal = pbFinal?.ItemsSubtotal,
subtotalBeforeDiscount = pbFinal?.SubtotalBeforeDiscount,
subtotalAfterDiscount = pbFinal?.SubtotalAfterDiscount,
taxAmount = pbFinal?.TaxAmount
});
}
}