From d51fa3b27be500f37f4ae6c7aacc0983add12213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Thu, 19 Mar 2026 22:30:44 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[changes]=20=EB=B6=84=EB=A6=AC=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=EA=B1=B0=EB=9E=98=20=EB=B6=84=EA=B0=9C=20?= =?UTF-8?q?=EB=A7=A4=EC=B9=AD=20=EB=88=84=EB=9D=BD=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=9D=B4=EB=A0=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- INDEX.md | 1 + ...0260319_split_card_journal_matching_fix.md | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 changes/20260319_split_card_journal_matching_fix.md diff --git a/INDEX.md b/INDEX.md index d9da3b4..37aa906 100644 --- a/INDEX.md +++ b/INDEX.md @@ -288,6 +288,7 @@ DB 도메인별: | [20260319_db_codebridge_migration_and_fixes.md](changes/20260319_db_codebridge_migration_and_fixes.md) | MNG 전용 테이블 codebridge DB 이관 + 손익계산서 매출액/월별 세부내역 수정 | | [20260319_attendance_leave_sync_fix.md](changes/20260319_attendance_leave_sync_fix.md) | 근태현황 승인된 휴가 누락 attendance 레코드 자동 보정 | | [20260319_card_transaction_display_unification.md](changes/20260319_card_transaction_display_unification.md) | 카드거래 표시 포맷 3개 화면 통일 (계정별원장·일반전표·카드사용내역) | +| [20260319_split_card_journal_matching_fix.md](changes/20260319_split_card_journal_matching_fix.md) | 분리 카드거래 분개 매칭 누락 수정 (split source_key 패턴 매칭) | --- diff --git a/changes/20260319_split_card_journal_matching_fix.md b/changes/20260319_split_card_journal_matching_fix.md new file mode 100644 index 0000000..f8488bf --- /dev/null +++ b/changes/20260319_split_card_journal_matching_fix.md @@ -0,0 +1,49 @@ +# 분리 카드거래 분개 매칭 누락 수정 + +**날짜:** 2026-03-19 +**작업자:** Claude Code + +## 변경 개요 + +카드사용내역에서 1건의 카드거래를 공제/불공제로 분리(split)한 후 각각 분개하면, 일반전표입력 화면에서 해당 거래가 **미분개**로 표시되는 버그를 수정했다. + +**원인**: 분리 분개의 `source_key`는 `uniqueKey|split:{id}` 형식인데, 일반전표입력과 계정별원장에서는 원본 `uniqueKey`로만 매칭하여 분리 분개를 인식하지 못했음. + +## 수정된 파일 + +| 파일 | 변경 내용 | +|------|----------| +| `app/Http/Controllers/Finance/JournalEntryController.php` | `cardTransactions()` 메서드에 분리 source_key LIKE 매칭 + 분리 건수 비교 로직 추가 | +| `app/Http/Controllers/Finance/AccountLedgerController.php` | `fetchCardTransactions()`에서 분리 키(`uniqueKey\|split:N`)도 원본 카드 데이터로 매핑 | +| `resources/views/finance/journal-entries.blade.php` | 카드거래 행 빌드 시 복수 분리 분개 journal을 합산하여 1행 표시 | + +## 상세 변경 사항 + +### 1. JournalEntryController — 분리 분개 감지 + +- `source_key LIKE 'uniqueKey|split:%'` 패턴으로 분리 분개 journal_entries 조회 +- `barobill_card_transaction_splits` 테이블에서 분리 건수 조회 +- 분리 건수 == 분리 분개 수이면 `hasJournal = true` +- `splitJournalIds` 배열을 프론트엔드에 전달 + +### 2. AccountLedgerController — 분리 키 매핑 + +- source_key 파싱 시 `|split:N` 접미사 제거하여 원본 4-part 키 추출 +- 분리 키도 원본 카드거래 데이터(카드번호, 카드사, 가맹점 등)로 매핑 + +### 3. journal-entries.blade.php — 복수 분개 합산 + +- `splitJournalIds`가 있으면 모든 journal의 lines를 합산 +- `linkedJournalIds`에 모든 분리 journal ID 등록 (중복 행 방지) +- 차변/대변 합계도 복수 journal 합산 + +## 테스트 체크리스트 + +- [ ] 분리 거래(2건 이상 분리)가 일반전표에서 자물쇠 아이콘으로 표시 +- [ ] 분리 분개의 모든 라인(불공제+공제)이 분개 내역 컬럼에 합산 표시 +- [ ] 분리되지 않은 일반 카드거래의 분개 표시가 기존과 동일 (회귀 없음) +- [ ] 계정별원장에서 분리 카드거래 행에 카드 배지/가맹점 정보 표시 + +## 관련 문서 + +- `changes/20260319_card_transaction_display_unification.md` — 카드거래 표시 포맷 3개 화면 통일