Files
sam-docs/dev/changes/20260311_esign_journal_barobill_fixes.md

5.7 KiB

전자서명 체크박스, 전표 적요 동기화, 거래처 드롭다운, 바로빌 중복 키 수정

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


변경 개요

네 가지 개선/수정 사항:

  1. 전자서명 템플릿 체크박스 — 체크박스 필드에 변수 연결 UI를 추가했다가, "배치 위치에 무조건 체크 표시" 방식으로 단순화
  2. 전표 적요 → 자금일보 동기화 — 일반전표 적요 수정 시 일일자금일보에 반영되지 않던 문제 해결
  3. 거래처 드롭다운 클릭 버그 — 다른 요소에서 포커스 이동 후 클릭 시 드롭다운이 즉시 닫히는 문제 해결
  4. 바로빌 은행거래 중복 키 에러EaccountController 동기화 시 insertinsertOrIgnore 변경

수정된 파일

파일 프로젝트 변경 내용
resources/views/esign/template-fields.blade.php MNG 체크박스 필드 속성 패널에 안내 문구 + PDF 오버레이에 ☑ 표시
app/Http/Controllers/Finance/JournalEntryController.php MNG update()BankTransactionOverride 동기화 추가
resources/views/finance/journal-entries.blade.php MNG TradingPartnerSelectjustFocusedRef 플래그 추가
app/Http/Controllers/Barobill/EaccountController.php MNG insertinsertOrIgnore 변경

상세 변경 사항

1. 전자서명 템플릿 체크박스 단순화

문제: 체크박스 필드를 템플릿에 배치할 때 변수 연결 드롭다운이 표시되었으나, 선택 가능한 체크박스 변수가 없어 사용 불가.

해결: 체크박스는 "이 위치에 체크 표시를 넣겠다"는 의미이므로 변수 연결 자체가 불필요. 다음과 같이 단순화:

  • 변수 연결 UI 제거 → "☑ 이 위치에 체크 표시가 렌더링됩니다" 안내 문구 표시
  • PDF 오버레이에서 체크박스 필드는 ☑ 아이콘으로 시각적 표시
  • 커스텀 변수의 체크박스 타입 옵션 제거
체크박스 필드 배치 → 해당 위치에 무조건 ☑ 렌더링
(변수 연결 불필요, 위치 정보만 저장)

2. 전표 적요 수정 → 자금일보 반영

문제: 일반전표의 적요를 수정하면 journal_entries.description만 업데이트되고, 일일자금일보가 참조하는 barobill_bank_transactions.summary는 변경되지 않음.

JournalEntry.description 수정
    ↓ (기존: 연결 없음)
일일자금일보 → barobill_bank_transactions.summary (이전 값 그대로)

해결: JournalEntryController::update() 트랜잭션 안에서, source_type = 'bank_transaction'인 전표의 적요 수정 시 BankTransactionOverridemodified_summary를 저장.

JournalEntry.description 수정
    ↓ (신규: 자동 동기화)
BankTransactionOverride.modified_summary 저장
    ↓
일일자금일보 periodReport() → override 적용 → 수정된 적요 표시

기존 modified_cast 보존: override 저장 시 기존 modified_cast 값을 조회하여 유지.


3. 거래처 드롭다운 클릭 버그 수정

문제: TradingPartnerSelect 컴포넌트에서 다른 요소에 포커스가 있을 때 클릭하면 드롭다운이 열렸다가 즉시 닫힘.

원인: 이벤트 순서 — onFocus → 드롭다운 열림 → onClicksetIsOpen(!isOpen) 토글로 다시 닫힘. React 렌더 타이밍에 따라 onClickisOpen = true 상태에서 실행되어 false로 전환.

해결: justFocusedRef 플래그 추가.

onFocus  justFocusedRef = true, setIsOpen(true)
onClick  justFocusedRef가 true면 토글 건너뜀 (이미 열림)
         justFocusedRef가 false면 정상 토글 (이미 포커스된 상태에서 클릭)

4. 바로빌 은행거래 동기화 중복 키 에러

문제: EaccountController의 거래내역 저장 시 Duplicate entry 에러 발생.

원인: 기존 레코드 조회 WHERE에 summary를 포함하지만, DB unique index(barobill_bank_trans_unique)에는 summary가 없음.

구분 포함 컬럼
WHERE 조회 tenant_id, bank_account_num, trans_dt, deposit, withdraw, balance, summary
DB unique index tenant_id, bank_account_num, trans_dt, deposit, withdraw, balance

같은 거래인데 summary만 다른 경우(전각/반각 문자 차이 등) → WHERE에서 기존 레코드 못 찾음 → INSERT 시도 → unique index 위반.

해결: DB::table()->insert()DB::table()->insertOrIgnore() 변경.


배포

커밋 내용 develop main
f11b1238 체크박스 변수 연결 추가
4f033172 체크박스 단순화
a97396df 전표 적요 → 자금일보 동기화
0be1fe7a 거래처 드롭다운 버그 수정
2d3f915a 바로빌 중복 키 수정

테스트 체크리스트

  • 전자서명 템플릿에서 체크박스 필드 배치 시 ☑ 안내 표시
  • 일반전표 적요 수정 후 저장 → 자금일보에서 수정된 적요 반영
  • 거래처 드롭다운을 마우스 클릭으로 열기 정상 동작
  • Tab 키로 거래처 이동 시 자동 열림 정상 동작
  • 바로빌 동기화 시 중복 거래에서 에러 없이 처리

관련 문서


최종 업데이트: 2026-03-11