From 67f694be65d16a98006a246876cd520f6584e21b Mon Sep 17 00:00:00 2001 From: leeheejin Date: Thu, 13 Nov 2025 17:26:28 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B1=B0=EB=9E=98=EB=AA=85=EC=84=B8=EC=84=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salesMgmt/transactionStatementForm.jsp | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/transactionStatementForm.jsp b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/transactionStatementForm.jsp index b4a8949..6861f78 100644 --- a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/transactionStatementForm.jsp +++ b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/transactionStatementForm.jsp @@ -571,6 +571,62 @@ function fn_fillData(data) { $("#totalText").text(total.toString()); $("#totalNum").text(fn_num(total)); + + // contenteditable 셀 변경 시 합계 자동 업데이트 + fn_attachCellListeners(); +} + +// 품목 테이블의 셀 변경 감지 및 합계 재계산 +function fn_attachCellListeners() { + // 품목 테이블의 모든 contenteditable 셀에 이벤트 리스너 추가 + $("#itemsBody td[contenteditable='true']").off('blur').on('blur', function() { + fn_recalculateTotal(); + }); +} + +// 합계 재계산 함수 +function fn_recalculateTotal() { + console.log("=== 합계 재계산 ==="); + + var totalQuantity = 0; + var totalSupply = 0; + var totalVat = 0; + + // 품목 테이블의 각 행을 순회하며 합계 계산 + $("#itemsBody tr").each(function() { + var cells = $(this).find("td"); + if(cells.length >= 6) { + // 수량 (3번째 열, index 2) + var quantityText = $(cells[2]).text().trim().replace(/,/g, ''); + var quantity = parseInt(quantityText) || 0; + + // 공급가액 (5번째 열, index 4) + var supplyText = $(cells[4]).text().trim().replace(/,/g, ''); + var supply = parseInt(supplyText) || 0; + + // 세액 (6번째 열, index 5) + var vatText = $(cells[5]).text().trim().replace(/,/g, ''); + var vat = parseInt(vatText) || 0; + + totalQuantity += quantity; + totalSupply += supply; + totalVat += vat; + } + }); + + console.log("재계산된 총 수량:", totalQuantity); + console.log("재계산된 총 공급가액:", totalSupply); + console.log("재계산된 총 세액:", totalVat); + + // tfoot의 합계 행 업데이트 + $("#totalQuantity").text(totalQuantity); + $("#totalSupplyPrice").text(fn_num(totalSupply)); + $("#totalVat").text(fn_num(totalVat)); + + // 상단 합계 금액 업데이트 + var total = totalSupply + totalVat; + $("#totalText").text(total.toString()); + $("#totalNum").text(fn_num(total)); } function fn_num(n) {