feat:분개 모달 공급가액/부가세 필드 추가
- SplitModal: 금액 단일필드 → 공급가액+부가세 2필드로 변경 - 행별 합계금액 자동계산 표시 - 분개 리스트 행에 공급가액/부가세 개별 표시 - 분개 기반 요약 재계산 로직 추가 (recalculateSummary) - 모델: split_supply_amount, split_tax 필드 추가 - 컨트롤러: 분개 합계 검증 및 CSV 내보내기 반영 - 레거시 데이터(supply/tax 없는 기존 분개) 호환성 유지 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1076,7 +1076,11 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
|
||||
foreach ($splits as $index => $split) {
|
||||
$splitDeductionType = $split['deduction_type'] ?? $split['deductionType'] ?? 'deductible';
|
||||
$splitDeductionText = ($splitDeductionType === 'non_deductible') ? '불공' : '공제';
|
||||
$splitAmount = $split['split_amount'] ?? $split['amount'] ?? 0;
|
||||
$splitSupplyAmount = $split['split_supply_amount'] ?? $split['supplyAmount'] ?? null;
|
||||
$splitTax = $split['split_tax'] ?? $split['tax'] ?? null;
|
||||
$splitAmount = ($splitSupplyAmount !== null && $splitTax !== null)
|
||||
? floatval($splitSupplyAmount) + floatval($splitTax)
|
||||
: ($split['split_amount'] ?? $split['amount'] ?? 0);
|
||||
$splitEvidenceName = $split['evidence_name'] ?? $split['evidenceName'] ?? '';
|
||||
$splitDescription = $split['description'] ?? '';
|
||||
$splitAccountCode = $split['account_code'] ?? $split['accountCode'] ?? '';
|
||||
@@ -1092,7 +1096,7 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
|
||||
$splitEvidenceName,
|
||||
$splitDescription,
|
||||
number_format($splitAmount),
|
||||
'', // 부가세 (분개에서는 생략)
|
||||
$splitTax !== null ? number_format(floatval($splitTax)) : '',
|
||||
'', // 승인번호
|
||||
$splitAccountCode,
|
||||
$splitAccountName,
|
||||
@@ -1176,9 +1180,14 @@ public function saveSplits(Request $request): JsonResponse
|
||||
]);
|
||||
}
|
||||
|
||||
// 분개 금액 합계 검증
|
||||
// 분개 금액 합계 검증 (공급가액 + 부가세 합계)
|
||||
$originalAmount = floatval($originalData['originalAmount'] ?? 0);
|
||||
$splitTotal = array_sum(array_map(fn($s) => floatval($s['amount'] ?? 0), $splits));
|
||||
$splitTotal = array_sum(array_map(function ($s) {
|
||||
if (isset($s['supplyAmount']) && isset($s['tax'])) {
|
||||
return floatval($s['supplyAmount']) + floatval($s['tax']);
|
||||
}
|
||||
return floatval($s['amount'] ?? 0);
|
||||
}, $splits));
|
||||
|
||||
if (abs($originalAmount - $splitTotal) > 0.01) {
|
||||
return response()->json([
|
||||
|
||||
Reference in New Issue
Block a user