fix: [payroll] 전표 기타공제 항목별 분리 및 음수 금액 처리
- 기타공제를 합산 단일 라인에서 항목별(연말정산소득세, 연말정산지방소득세 등) 분리 - formatInputCurrency/parseInputCurrency 음수 부호 처리 추가 - JournalEntryController validation에서 min:0 제거하여 음수 credit_amount 허용
This commit is contained in:
@@ -749,13 +749,18 @@ public function generateJournalEntry(Request $request): JsonResponse
|
||||
], 422);
|
||||
}
|
||||
|
||||
// 기타공제(deductions JSON) 합산 포함
|
||||
$extraDeductionsTotal = 0;
|
||||
// 기타공제(deductions JSON) 항목별 합산
|
||||
$extraDeductionsByName = [];
|
||||
foreach ($payrolls as $p) {
|
||||
foreach ($p->deductions ?? [] as $d) {
|
||||
$extraDeductionsTotal += (int) ($d['amount'] ?? 0);
|
||||
$name = $d['name'] ?? '기타공제';
|
||||
$amount = (int) ($d['amount'] ?? 0);
|
||||
if ($amount != 0) {
|
||||
$extraDeductionsByName[$name] = ($extraDeductionsByName[$name] ?? 0) + $amount;
|
||||
}
|
||||
}
|
||||
}
|
||||
$extraDeductionsTotal = array_sum($extraDeductionsByName);
|
||||
|
||||
$sums = (object) [
|
||||
'total_gross' => $payrolls->sum('gross_salary'),
|
||||
@@ -827,10 +832,11 @@ public function generateJournalEntry(Request $request): JsonResponse
|
||||
[(int) $sums->total_resident_tax, '강서구청', "{$monthLabel} 지방소득세"],
|
||||
];
|
||||
|
||||
// 기타공제
|
||||
$extraDeductions = (int) $sums->total_extra_deductions;
|
||||
if ($extraDeductions != 0) {
|
||||
$deductionItems[] = [$extraDeductions, '임직원', '기타공제'];
|
||||
// 기타공제 (항목별)
|
||||
foreach ($extraDeductionsByName as $deductionName => $deductionAmount) {
|
||||
if ($deductionAmount != 0) {
|
||||
$deductionItems[] = [$deductionAmount, '임직원', $deductionName];
|
||||
}
|
||||
}
|
||||
|
||||
// 1. 차변: 801 급여 / 임직원 — 총지급액
|
||||
|
||||
Reference in New Issue
Block a user