From 8ba4a60aa25c41756d2e2c068e67e4f05f3ef1f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Wed, 11 Mar 2026 15:51:54 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[changes]=20=EC=A0=84=EC=9E=90=EC=84=9C?= =?UTF-8?q?=EB=AA=85=20=EC=B2=B4=ED=81=AC=EB=B0=95=EC=8A=A4,=20=EC=A0=84?= =?UTF-8?q?=ED=91=9C=20=EC=A0=81=EC=9A=94=20=EB=8F=99=EA=B8=B0=ED=99=94,?= =?UTF-8?q?=20=EA=B1=B0=EB=9E=98=EC=B2=98=20=EB=93=9C=EB=A1=AD=EB=8B=A4?= =?UTF-8?q?=EC=9A=B4,=20=EB=B0=94=EB=A1=9C=EB=B9=8C=20=EC=A4=91=EB=B3=B5?= =?UTF-8?q?=20=ED=82=A4=20=EC=88=98=EC=A0=95=20=EC=9D=B4=EB=A0=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- INDEX.md | 1 + .../20260311_esign_journal_barobill_fixes.md | 136 ++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 dev/changes/20260311_esign_journal_barobill_fixes.md diff --git a/INDEX.md b/INDEX.md index cff4172..8adc2c9 100644 --- a/INDEX.md +++ b/INDEX.md @@ -180,6 +180,7 @@ DB 도메인별: | 문서 | 설명 | |------|------| | [20260311_daily_fund_sync_and_account_codes_fix.md](dev/changes/20260311_daily_fund_sync_and_account_codes_fix.md) | 자금일보 바로빌 자동동기화 + 계정과목 데이터 정리 | +| [20260311_esign_journal_barobill_fixes.md](dev/changes/20260311_esign_journal_barobill_fixes.md) | 전자서명 체크박스, 전표 적요 동기화, 거래처 드롭다운, 바로빌 중복 키 수정 | --- diff --git a/dev/changes/20260311_esign_journal_barobill_fixes.md b/dev/changes/20260311_esign_journal_barobill_fixes.md new file mode 100644 index 0000000..0d150f0 --- /dev/null +++ b/dev/changes/20260311_esign_journal_barobill_fixes.md @@ -0,0 +1,136 @@ +# 전자서명 체크박스, 전표 적요 동기화, 거래처 드롭다운, 바로빌 중복 키 수정 + +**날짜:** 2026-03-11 +**작업자:** Claude Code + +--- + +## 변경 개요 + +네 가지 개선/수정 사항: + +1. **전자서명 템플릿 체크박스** — 체크박스 필드에 변수 연결 UI를 추가했다가, "배치 위치에 무조건 체크 표시" 방식으로 단순화 +2. **전표 적요 → 자금일보 동기화** — 일반전표 적요 수정 시 일일자금일보에 반영되지 않던 문제 해결 +3. **거래처 드롭다운 클릭 버그** — 다른 요소에서 포커스 이동 후 클릭 시 드롭다운이 즉시 닫히는 문제 해결 +4. **바로빌 은행거래 중복 키 에러** — `EaccountController` 동기화 시 `insert` → `insertOrIgnore` 변경 + +--- + +## 수정된 파일 + +| 파일 | 프로젝트 | 변경 내용 | +|------|---------|----------| +| `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 | `TradingPartnerSelect`에 `justFocusedRef` 플래그 추가 | +| `app/Http/Controllers/Barobill/EaccountController.php` | MNG | `insert` → `insertOrIgnore` 변경 | + +--- + +## 상세 변경 사항 + +### 1. 전자서명 템플릿 체크박스 단순화 + +**문제**: 체크박스 필드를 템플릿에 배치할 때 변수 연결 드롭다운이 표시되었으나, 선택 가능한 체크박스 변수가 없어 사용 불가. + +**해결**: 체크박스는 "이 위치에 체크 표시를 넣겠다"는 의미이므로 변수 연결 자체가 불필요. 다음과 같이 단순화: + +- 변수 연결 UI 제거 → "☑ 이 위치에 체크 표시가 렌더링됩니다" 안내 문구 표시 +- PDF 오버레이에서 체크박스 필드는 ☑ 아이콘으로 시각적 표시 +- 커스텀 변수의 체크박스 타입 옵션 제거 + +``` +체크박스 필드 배치 → 해당 위치에 무조건 ☑ 렌더링 +(변수 연결 불필요, 위치 정보만 저장) +``` + +--- + +### 2. 전표 적요 수정 → 자금일보 반영 + +**문제**: 일반전표의 적요를 수정하면 `journal_entries.description`만 업데이트되고, 일일자금일보가 참조하는 `barobill_bank_transactions.summary`는 변경되지 않음. + +``` +JournalEntry.description 수정 + ↓ (기존: 연결 없음) +일일자금일보 → barobill_bank_transactions.summary (이전 값 그대로) +``` + +**해결**: `JournalEntryController::update()` 트랜잭션 안에서, `source_type = 'bank_transaction'`인 전표의 적요 수정 시 `BankTransactionOverride`에 `modified_summary`를 저장. + +``` +JournalEntry.description 수정 + ↓ (신규: 자동 동기화) +BankTransactionOverride.modified_summary 저장 + ↓ +일일자금일보 periodReport() → override 적용 → 수정된 적요 표시 +``` + +**기존 `modified_cast` 보존**: override 저장 시 기존 `modified_cast` 값을 조회하여 유지. + +--- + +### 3. 거래처 드롭다운 클릭 버그 수정 + +**문제**: `TradingPartnerSelect` 컴포넌트에서 다른 요소에 포커스가 있을 때 클릭하면 드롭다운이 열렸다가 즉시 닫힘. + +**원인**: 이벤트 순서 — `onFocus` → 드롭다운 열림 → `onClick` → `setIsOpen(!isOpen)` 토글로 다시 닫힘. React 렌더 타이밍에 따라 `onClick`이 `isOpen = true` 상태에서 실행되어 `false`로 전환. + +**해결**: `justFocusedRef` 플래그 추가. + +```javascript +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` | 바로빌 중복 키 수정 | ✅ | ✅ | + +--- + +## 테스트 체크리스트 + +- [x] 전자서명 템플릿에서 체크박스 필드 배치 시 ☑ 안내 표시 +- [x] 일반전표 적요 수정 후 저장 → 자금일보에서 수정된 적요 반영 +- [x] 거래처 드롭다운을 마우스 클릭으로 열기 정상 동작 +- [x] Tab 키로 거래처 이동 시 자동 열림 정상 동작 +- [x] 바로빌 동기화 시 중복 거래에서 에러 없이 처리 + +--- + +## 관련 문서 + +- [전자서명](../../features/esign/README.md) +- [재무 관리](../../features/finance/README.md) +- [자금일보 동기화 변경](20260311_daily_fund_sync_and_account_codes_fix.md) + +--- + +**최종 업데이트**: 2026-03-11