From f6b2f0d499c075daaecf96e823ea2b88e3caf216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Fri, 27 Feb 2026 16:19:17 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[payroll]=20=EA=B8=89=EC=97=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=AA=A8=EB=8B=AC=20=EC=B4=9D=20=EC=A7=80?= =?UTF-8?q?=EA=B8=89=EC=95=A1=20=EA=B3=84=EC=82=B0=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - decimal:0 캐스트로 인해 금액이 문자열로 전달되어 문자열 연결 발생 - Number()로 명시적 숫자 변환 추가 --- resources/views/hr/payrolls/index.blade.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/views/hr/payrolls/index.blade.php b/resources/views/hr/payrolls/index.blade.php index b5ebbd30..aca3dcba 100644 --- a/resources/views/hr/payrolls/index.blade.php +++ b/resources/views/hr/payrolls/index.blade.php @@ -463,11 +463,11 @@ function openEditPayrollModal(id, data) { }); // 총 지급액·과세표준 계산 표시 - const baseSalary = data.base_salary || 0; - const overtimePay = data.overtime_pay || 0; - const bonus = data.bonus || 0; + const baseSalary = Number(data.base_salary) || 0; + const overtimePay = Number(data.overtime_pay) || 0; + const bonus = Number(data.bonus) || 0; let allowancesTotal = 0; - if (data.allowances) data.allowances.forEach(a => allowancesTotal += (a.amount || 0)); + if (data.allowances) data.allowances.forEach(a => allowancesTotal += (Number(a.amount) || 0)); const grossSalary = baseSalary + overtimePay + bonus + allowancesTotal; document.getElementById('calcGross').textContent = numberFormat(grossSalary); document.getElementById('calcTaxableBase').textContent = numberFormat(grossSalary - bonus);