tweaked layout, added JS for live totals

This commit is contained in:
2026-03-07 21:47:03 -05:00
parent 67513c527e
commit 151bbf2d7f
6 changed files with 126 additions and 17 deletions

View File

@@ -0,0 +1,40 @@
function updateLineItemTotals() {
let grandTotal = 0;
document.querySelectorAll(".line-item").forEach(function(row){
let qty = parseFloat(row.querySelector(".qty-field")?.value || 0);
let price = parseFloat(row.querySelector(".price-field")?.value || 0);
let total = qty * price;
row.querySelector(".line-total").textContent =
total.toLocaleString(undefined,{minimumFractionDigits:2,maximumFractionDigits:2});
grandTotal += total;
});
let grand = document.getElementById("line-items-grand-total");
if(grand){
grand.textContent =
grandTotal.toLocaleString(undefined,{minimumFractionDigits:2,maximumFractionDigits:2});
}
}
document.addEventListener("input", function(e){
if(e.target.classList.contains("qty-field") ||
e.target.classList.contains("price-field")){
updateLineItemTotals();
}
});
document.addEventListener("DOMContentLoaded", function(){
updateLineItemTotals();
});