From 5bf2914e221cf1bc8ee1db8a6fbb32d5cebe8a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 10 Mar 2026 12:26:34 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[payroll]=20=EC=9D=8C=EC=88=98=20?= =?UTF-8?q?=EA=B3=B5=EC=A0=9C=ED=95=AD=EB=AA=A9=20=EC=A0=84=ED=91=9C=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EB=B0=A9=EC=8B=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 음수 공제(환급)를 차변 별도 라인 대신 대변 마이너스로 처리 - 차변은 총지급액(gross_salary) 단일 라인 고정 - 대변합계 = 양수공제 + 음수공제(마이너스 대변) + 실수령액 = 차변 --- .../Api/Admin/HR/PayrollController.php | 40 ++++++------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/Api/Admin/HR/PayrollController.php b/app/Http/Controllers/Api/Admin/HR/PayrollController.php index 0f286819..9fc3335c 100644 --- a/app/Http/Controllers/Api/Admin/HR/PayrollController.php +++ b/app/Http/Controllers/Api/Admin/HR/PayrollController.php @@ -848,39 +848,23 @@ public function generateJournalEntry(Request $request): JsonResponse ]; } - // 2~N. 공제항목: 양수→대변, 음수→차변 (환급으로 예수금 감소) + // 2~N. 공제항목: 모두 대변 처리 (음수 공제는 마이너스 대변) foreach ($deductionItems as [$amount, $partnerName, $desc]) { if ($amount == 0) { continue; } - if ($amount > 0) { - // 양수: 대변 207 예수금 (원천징수) - $lines[] = [ - 'dc_type' => 'credit', - 'account_code' => '207', - 'account_name' => $accountCodes['207'], - 'trading_partner_id' => $partners[$partnerName], - 'trading_partner_name' => $partnerName, - 'debit_amount' => 0, - 'credit_amount' => $amount, - 'description' => $desc, - 'line_no' => $lineNo++, - ]; - } else { - // 음수: 차변 207 예수금 (환급) - $lines[] = [ - 'dc_type' => 'debit', - 'account_code' => '207', - 'account_name' => $accountCodes['207'], - 'trading_partner_id' => $partners[$partnerName], - 'trading_partner_name' => $partnerName, - 'debit_amount' => abs($amount), - 'credit_amount' => 0, - 'description' => "{$desc} (환급)", - 'line_no' => $lineNo++, - ]; - } + $lines[] = [ + 'dc_type' => 'credit', + 'account_code' => '207', + 'account_name' => $accountCodes['207'], + 'trading_partner_id' => $partners[$partnerName], + 'trading_partner_name' => $partnerName, + 'debit_amount' => 0, + 'credit_amount' => $amount, + 'description' => $amount < 0 ? "{$desc} (환급)" : $desc, + 'line_no' => $lineNo++, + ]; } // 최종: 대변 205 미지급비용 / 임직원 — 실수령액 (DB 값)