Files
sam-docs/changes/20260319_split_card_journal_matching_fix.md

3.2 KiB

분리 카드거래 분개 매칭 및 개별 행 표시 수정

날짜: 2026-03-19 작업자: Claude Code

변경 개요

카드사용내역에서 1건의 카드거래를 공제/불공제로 분리(split)한 후 각각 분개하면, 일반전표입력 화면에서 두 가지 문제가 있었다:

  1. 분리 분개를 인식하지 못해 미분개로 표시
  2. 분리 거래가 1행으로만 표시되어 개별 분리 항목의 금액/계정/공제구분이 누락

원인: 분리 분개의 source_keyuniqueKey|split:{id} 형식인데, 원본 uniqueKey로만 매칭했고, 카드거래 목록이 원본 단위로만 반환되어 분리 항목이 확장되지 않았음.

수정된 파일

파일 변경 내용
app/Http/Controllers/Finance/JournalEntryController.php cardTransactions(): 분리 항목을 CardTransactionSplit에서 조회하여 개별 행으로 확장, 분리 키 기반 분개 매칭
app/Http/Controllers/Finance/AccountLedgerController.php fetchCardTransactions(): 분리 키(uniqueKey|split:N) 파싱하여 원본 카드 데이터로 매핑
resources/views/finance/journal-entries.blade.php 분리 행별 분리#N 배지 추가, 각 분리 행이 자체 분개 내역 표시

상세 변경 사항

1. JournalEntryController — 분리 항목 확장

  • barobill_card_transaction_splits 테이블에서 기간 내 분리 데이터 조회
  • 분리가 있는 카드거래: 원본 1행 → 분리 항목별 N행으로 확장
    • 각 분리 행: 자체 uniqueKey(원본|split:{id}), 금액, 공제구분, 계정과목
    • isSplit, splitIndex, splitTotal 필드 추가
  • 분리가 없는 카드거래: 기존과 동일하게 1행 유지
  • 확장된 키로 journal_entries 매칭 → 각 분리 행이 자체 분개 상태 보유

2. AccountLedgerController — 분리 키 매핑

  • source_key 파싱 시 |split:N 접미사를 제거하여 원본 4-part 키 추출
  • 분리 키도 원본 카드거래 데이터(카드번호, 카드사, 가맹점 등)로 매핑

3. journal-entries.blade.php — 분리 행 표시

  • 분리#N 보라색 배지로 분리 항목 구분
  • 각 분리 행이 독립적으로 분개 내역/차변/대변 표시
  • 카드사용내역의 분리 구조와 동일하게 표현

표시 예시

카드사용내역에서 120,260원을 2건 분리한 경우:

적요 출금 분개
분리#1 사무실 명글선반 불공제 52,890 차 사무용품비 52,890 / 대 미지급비용 52,890
분리#2 팬트리정리함 구입 공제 67,370 차 사무용품비 61,245 / 차 부가세대급금 6,125 / 대 미지급비용 67,370

테스트 체크리스트

  • 분리 거래가 일반전표에서 개별 행으로 표시 (분리#1, 분리#2)
  • 각 분리 행에 자체 분개 내역/금액/공제구분 표시
  • 분리 분개 완료 시 각 행에 자물쇠 아이콘
  • 분리되지 않은 일반 카드거래의 표시가 기존과 동일 (회귀 없음)
  • 계정별원장에서 분리 카드거래 행에 카드 배지/가맹점 정보 표시

관련 문서

  • changes/20260319_card_transaction_display_unification.md — 카드거래 표시 포맷 3개 화면 통일