diff --git a/app/Http/Controllers/Barobill/EcardController.php b/app/Http/Controllers/Barobill/EcardController.php index 1e5bdf95..5812885a 100644 --- a/app/Http/Controllers/Barobill/EcardController.php +++ b/app/Http/Controllers/Barobill/EcardController.php @@ -1042,10 +1042,13 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse '카드번호', '카드사', '공제여부', + '사업자번호', + '가맹점명', '증빙/판매자상호', '내역', - '승인금액', - '부가세', + '합계금액', + '공급가액', + '세액', '승인번호', '계정과목코드', '계정과목명', @@ -1058,8 +1061,13 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse $cardNum = $log['cardNum'] ?? ''; $cardBrand = $log['cardBrand'] ?? ''; $approvalNum = $log['approvalNum'] ?? ''; - $approvalAmount = $log['approvalAmount'] ?? 0; - $tax = $log['tax'] ?? 0; + $approvalAmount = floatval($log['approvalAmount'] ?? 0); + $tax = floatval($log['effectiveTax'] ?? $log['tax'] ?? 0); + $supplyAmount = floatval($log['effectiveSupplyAmount'] ?? ($approvalAmount - $tax)); + $totalAmount = $supplyAmount + $tax; + + // 카드번호를 문자형으로 강제 (엑셀 과학적 표기 방지) + $cardNumText = $cardNum ? "=\"{$cardNum}\"" : ''; // 고유키로 분개 데이터 확인 $uniqueKey = $log['uniqueKey'] ?? implode('|', [ @@ -1076,8 +1084,12 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse $deductionType = $log['deductionType'] ?? ($log['merchantBizNum'] ? 'deductible' : 'non_deductible'); $deductionText = ($deductionType === 'non_deductible') ? '불공' : '공제'; + // 사업자번호, 가맹점명 + $merchantBizNum = $log['merchantBizNum'] ?? ''; + $merchantName = $log['merchantName'] ?? ''; + // 증빙/판매자상호, 내역 - $evidenceName = $log['evidenceName'] ?? $log['merchantName'] ?? ''; + $evidenceName = $log['evidenceName'] ?? $merchantName; $description = $log['description'] ?? $log['merchantBizType'] ?? ''; if ($hasSplits) { @@ -1085,15 +1097,18 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse fputcsv($handle, [ '원본', $dateTime, - $cardNum, + $cardNumText, $cardBrand, - '-', // 분개된 경우 공제여부는 각 분개에서 표시 + '-', + $merchantBizNum, + $merchantName, $evidenceName, $description, - number_format($approvalAmount), + number_format($totalAmount), + number_format($supplyAmount), number_format($tax), $approvalNum, - '-', // 분개된 경우 계정과목은 각 분개에서 표시 + '-', '분개됨 (' . count($splits) . '건)', '' ]); @@ -1102,11 +1117,9 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse foreach ($splits as $index => $split) { $splitDeductionType = $split['deduction_type'] ?? $split['deductionType'] ?? 'deductible'; $splitDeductionText = ($splitDeductionType === 'non_deductible') ? '불공' : '공제'; - $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); + $splitSupplyAmount = floatval($split['split_supply_amount'] ?? $split['supplyAmount'] ?? 0); + $splitTax = floatval($split['split_tax'] ?? $split['tax'] ?? 0); + $splitTotal = $splitSupplyAmount + $splitTax; $splitEvidenceName = $split['evidence_name'] ?? $split['evidenceName'] ?? ''; $splitDescription = $split['description'] ?? ''; $splitAccountCode = $split['account_code'] ?? $split['accountCode'] ?? ''; @@ -1115,15 +1128,18 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse fputcsv($handle, [ '└ 분개 #' . ($index + 1), - '', // 사용일시 (원본과 동일하므로 생략) - '', // 카드번호 - '', // 카드사 + '', + '', + '', $splitDeductionText, + '', + '', $splitEvidenceName, $splitDescription, - number_format($splitAmount), - $splitTax !== null ? number_format(floatval($splitTax)) : '', - '', // 승인번호 + number_format($splitTotal), + number_format($splitSupplyAmount), + number_format($splitTax), + '', $splitAccountCode, $splitAccountName, $splitMemo @@ -1134,12 +1150,15 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse fputcsv($handle, [ '일반', $dateTime, - $cardNum, + $cardNumText, $cardBrand, $deductionText, + $merchantBizNum, + $merchantName, $evidenceName, $description, - number_format($approvalAmount), + number_format($totalAmount), + number_format($supplyAmount), number_format($tax), $approvalNum, $log['accountCode'] ?? '',