feat: [ecard] 카드사용내역 분리/분개 열 분리
- 기존 '분개' 열을 '분리'(금액 나누기)와 '분개'(복식부기) 두 열로 분리 - SplitModal 텍스트를 '분개'에서 '분리'로 변경 - CSV 내보내기 텍스트도 '분리'로 통일 - 분리 열: 금액 분리 기능 (SplitModal) - 분개 열: 복식부기 분개 기능 (CardJournalModal)
This commit is contained in:
@@ -1093,7 +1093,7 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
|
||||
// 카드번호를 문자형으로 강제 (엑셀 과학적 표기 방지)
|
||||
$cardNumText = $cardNum ? "=\"{$cardNum}\"" : '';
|
||||
|
||||
// 고유키로 분개 데이터 확인
|
||||
// 고유키로 분리 데이터 확인
|
||||
$uniqueKey = $log['uniqueKey'] ?? implode('|', [
|
||||
$cardNum,
|
||||
$log['useDt'] ?? '',
|
||||
@@ -1117,7 +1117,7 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
|
||||
$description = $log['description'] ?? $log['merchantBizType'] ?? '';
|
||||
|
||||
if ($hasSplits) {
|
||||
// 분개가 있는 경우: 원본 행 (합계 표시)
|
||||
// 분리가 있는 경우: 원본 행 (합계 표시)
|
||||
fputcsv($handle, [
|
||||
'원본',
|
||||
$dateTime,
|
||||
@@ -1133,11 +1133,11 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
|
||||
number_format($tax),
|
||||
$approvalNum,
|
||||
'-',
|
||||
'분개됨 ('.count($splits).'건)',
|
||||
'분리됨 ('.count($splits).'건)',
|
||||
'',
|
||||
]);
|
||||
|
||||
// 각 분개 행 출력
|
||||
// 각 분리 행 출력
|
||||
foreach ($splits as $index => $split) {
|
||||
$splitDeductionType = $split['deduction_type'] ?? $split['deductionType'] ?? 'deductible';
|
||||
$splitDeductionText = ($splitDeductionType === 'non_deductible') ? '불공' : '공제';
|
||||
@@ -1151,7 +1151,7 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
|
||||
$splitMemo = $split['memo'] ?? '';
|
||||
|
||||
fputcsv($handle, [
|
||||
'└ 분개 #'.($index + 1),
|
||||
'└ 분리 #'.($index + 1),
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
@@ -1170,7 +1170,7 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
// 분개가 없는 경우: 일반 행
|
||||
// 분리가 없는 경우: 일반 행
|
||||
fputcsv($handle, [
|
||||
'일반',
|
||||
$dateTime,
|
||||
@@ -1208,7 +1208,7 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
|
||||
}
|
||||
|
||||
/**
|
||||
* 분개 내역 조회
|
||||
* 분리 내역 조회
|
||||
*/
|
||||
public function splits(Request $request): JsonResponse
|
||||
{
|
||||
@@ -1224,7 +1224,7 @@ public function splits(Request $request): JsonResponse
|
||||
'data' => $splits,
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
Log::error('분개 내역 조회 오류: '.$e->getMessage());
|
||||
Log::error('분리 내역 조회 오류: '.$e->getMessage());
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
@@ -1234,7 +1234,7 @@ public function splits(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
/**
|
||||
* 분개 저장
|
||||
* 분리 저장
|
||||
*/
|
||||
public function saveSplits(Request $request): JsonResponse
|
||||
{
|
||||
@@ -1251,7 +1251,7 @@ public function saveSplits(Request $request): JsonResponse
|
||||
]);
|
||||
}
|
||||
|
||||
// 분개 금액 합계 검증 (공급가액 + 부가세 합계)
|
||||
// 분리 금액 합계 검증 (공급가액 + 부가세 합계)
|
||||
$originalAmount = floatval($originalData['originalAmount'] ?? 0);
|
||||
$splitTotal = array_sum(array_map(function ($s) {
|
||||
if (isset($s['supplyAmount']) && isset($s['tax'])) {
|
||||
@@ -1264,7 +1264,7 @@ public function saveSplits(Request $request): JsonResponse
|
||||
if (abs($originalAmount - $splitTotal) > 0.01) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'error' => "분개 금액 합계({$splitTotal})가 원본 금액({$originalAmount})과 일치하지 않습니다.",
|
||||
'error' => "분리 금액 합계({$splitTotal})가 원본 금액({$originalAmount})과 일치하지 않습니다.",
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -1276,12 +1276,12 @@ public function saveSplits(Request $request): JsonResponse
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '분개가 저장되었습니다.',
|
||||
'message' => '분리가 저장되었습니다.',
|
||||
'splitCount' => count($splits),
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
DB::rollBack();
|
||||
Log::error('분개 저장 오류: '.$e->getMessage());
|
||||
Log::error('분리 저장 오류: '.$e->getMessage());
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
@@ -1291,7 +1291,7 @@ public function saveSplits(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
/**
|
||||
* 분개 삭제 (원본으로 복원)
|
||||
* 분리 삭제 (원본으로 복원)
|
||||
*/
|
||||
public function deleteSplits(Request $request): JsonResponse
|
||||
{
|
||||
@@ -1310,11 +1310,11 @@ public function deleteSplits(Request $request): JsonResponse
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '분개가 삭제되었습니다.',
|
||||
'message' => '분리가 삭제되었습니다.',
|
||||
'deleted' => $deleted,
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
Log::error('분개 삭제 오류: '.$e->getMessage());
|
||||
Log::error('분리 삭제 오류: '.$e->getMessage());
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
|
||||
Reference in New Issue
Block a user