Commit Graph

109 Commits

Author SHA1 Message Date
김보곤
02685371f9 fix:카드사용내역 엑셀 다운로드 개선
- 카드번호 문자형 출력 (="번호" 형식으로 과학적 표기 방지)
- 사업자번호, 가맹점명 열 추가
- 합계금액/공급가액/세액 3열로 분리 (화면과 동일)
- 분개 행도 공급가액/세액 분리 출력

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 10:55:20 +09:00
김보곤
2609437063 fix:바로빌 거래 저장 시 잔액 차이 중복 방지 및 기존 중복 자동 정리 2026-02-10 21:45:30 +09:00
김보곤
5596ed0e76 fix:mergeWithDedup 반환 형식 수정 및 합계 금액 중복 차감 2026-02-10 17:19:29 +09:00
김보곤
352b521fcf fix:수동/API 중복 거래 제거 (mergeWithDedup) + 디버그 로그 2026-02-10 17:17:53 +09:00
김보곤
892778b7eb fix:save() 디버그 로그 추가 (수동거래 저장 문제 추적) 2026-02-10 17:04:37 +09:00
김보곤
d01253aa27 fix:save()에서 수동 거래를 dbId로 직접 업데이트
수동 거래는 balance가 재계산되어 composite key 매칭 불가.
dbId를 사용하여 직접 레코드를 찾고 비-키 필드만 업데이트.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:57:48 +09:00
김보곤
2c3bccb9a0 fix:save()에서 수동 거래 스킵 (재계산 balance로 인한 충돌 방지)
수동 거래의 balance는 화면에서 재계산된 값이므로 DB 원본값과 다름.
save()에서 처리하면 잘못된 레코드 매칭 또는 unique key 충돌 발생.
수동 거래는 updateManual()에서만 처리하도록 스킵.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:55:48 +09:00
김보곤
cc4cf64248 fix:수동거래 수정 시 unique key 컬럼(deposit/withdraw/balance) 제외
수동 거래의 balance는 화면에서 재계산(recalcManualBalances)되어 표시되므로
DB의 원본값과 다름. 프론트에서 재계산된 balance를 보내면 다른 레코드와
unique key 충돌 발생. 수정 시 적요/예금주명 등 비-키 필드만 업데이트.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:52:44 +09:00
김보곤
587c21fa11 fix:updateManual()도 Query Builder로 전환 (numeric dirty 감지 문제)
수동 거래 수정 시 Eloquent가 deposit/withdraw/balance를
dirty로 오감지 (DB "515900.00" vs validation 515900 비교).
DB::table()로 변경하여 지정 필드만 정확히 업데이트.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:48:28 +09:00
김보곤
1cab267ec6 fix:입출금내역 save()를 순수 Query Builder로 전환
Eloquent 모델의 decimal cast + opcache 캐시 문제로 인해
deposit/withdraw/balance가 dirty 감지되어 unique 제약조건 위반.
- Eloquent 완전 우회: DB::table() 기반 lookup + update + insert
- CAST(AS SIGNED) 제거: 정확한 decimal 비교로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:42:13 +09:00
김보곤
f73e8a18a1 fix:입출금내역 저장 시 decimal:2 cast dirty 감지로 인한 unique 제약조건 위반 수정
Eloquent 모델의 decimal:2 cast가 balance를 dirty로 잘못 감지하여
UPDATE 시 balance가 포함되면서 unique 제약조건 위반 발생.
Query Builder(DB::table)로 변경하여 지정 필드만 업데이트.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:35:04 +09:00
김보곤
13f2e1df73 fix:입출금내역 상대계좌예금주명 저장 후 원복되는 문제 수정
인라인 편집으로 cast 저장 시 override 테이블의 modified_cast가
메인 테이블 값보다 우선하여 이전 값이 표시되는 문제.
save() 후 override의 modified_cast를 동기화(제거)하여 충돌 방지.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:25:00 +09:00
김보곤
20568765e0 fix:계좌 입출금내역 저장 키값에 balance 추가하여 동일 금액 다른 거래 구분
같은 출금금액이라도 잔액(balance)이 다르면 별도 거래로 인식하도록 개선.
기존에는 balance 없이 매칭하여 김종성/곽형석 등 다른 거래가 같은 키로 인식되는 문제 수정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 11:39:16 +09:00
김보곤
64ac667cfd fix:계좌 입출금내역 상대계좌예금주명/적요 업데이트 누락 수정
기존 거래 업데이트 시 cast(상대계좌예금주명), summary(적요)가
업데이트 대상에서 빠져있어 저장되지 않던 문제 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:46:57 +09:00
김보곤
2c138a1135 feat:홈택스 분개 저장 구조 변경 (journal_entries → hometax_invoice_journals)
- HometaxInvoiceJournal 모델 신규 생성
- HometaxInvoice에 journals() 관계 추가
- HometaxController: 저장 로직 변경 + 조회/삭제 엔드포인트 추가
- HometaxSyncService: hasJournal 필드 추가
- 프론트엔드: 분개완료 상태 표시, 기존 분개 로드/수정/삭제 지원

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:03:07 +09:00
김보곤
943648169a fix:홈택스 분개 차/대 토글 기능 추가 및 저장 오류 수정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:25:16 +09:00
김보곤
f34bcce0e0 fix:홈택스 수동입력 수정 validation 오류 해결
- corp_name 필드 sometimes→nullable 변경 (null 전달 시 string 오류 방지)
- tax_amount nullable 처리, 미입력 시 0
- 한글 validation 메시지 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 19:45:07 +09:00
김보곤
3f2c8a013b fix:홈택스 수동입력 세액 필수 제거, 미입력시 0 처리
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 19:42:52 +09:00
김보곤
f24287cafa fix:홈택스 수동입력 validation 오류 메시지 한글화
validation.required 대신 필드별 한글 오류 메시지 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 19:38:41 +09:00
김보곤
9cf9576781 fix:홈택스 수동입력 저장 시 NOT NULL 오류 수정
invoicer_corp_name, invoicee_corp_name에 null coalescing 추가
매출 입력 시 invoicer 필드가 null로 전달되어 DB NOT NULL 제약 위반 발생

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 19:36:34 +09:00
김보곤
eaa3490c9a fix:일일자금일보 중복 제거 키에서 balance 제외
- 같은 거래가 잔액만 다르게 저장된 경우도 중복으로 인식하도록 수정
- save() upsert에서도 balance 제외하여 향후 중복 방지
- 기존 레코드 발견 시 balance도 갱신

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 17:59:21 +09:00
김보곤
e9466344c9 fix:일일자금일보 거래 중복 표시 및 잔액 NaN 버그 수정
- periodReport에서 동일 거래(계좌+일시+금액) 중복 제거 로직 추가
- EaccountController save() 금액 비교를 정수 캐스트로 변경하여 decimal 정밀도 차이 중복 방지
- 합계행 잔액 계산 시 Number() 캐스트로 NaN 방지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 17:55:27 +09:00
김보곤
98e1ce31c5 fix:수동입력 validation 오류 수정 (거래처명 nullable)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 17:38:51 +09:00
김보곤
a629cb6fcd feat:홈택스 매출/매입 수동입력, 분개, 카드내역 참조 기능 추가
- 수동입력: MAN-YYYYMMDD-NNN 형식 자동채번, 생성/수정/삭제
- 분개: 세금계산서에서 일반전표 자동 생성 (매출/매입 패턴)
- 카드내역 참조: 수동입력 시 카드사용내역에서 금액/거래처 자동채움
- 테이블에 액션 컬럼 추가 (분개/수정/삭제 버튼)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 17:29:02 +09:00
김보곤
ce08d0110a feat:계좌 입출금내역 분개(Split) 기능 구현
- BankTransactionSplit 모델 생성
- EaccountController에 splits/saveSplits/deleteSplits 메서드 추가
- 라우트 3개 추가 (GET/POST/DELETE splits)
- BankSplitModal React 컴포넌트 추가
- TransactionTable에 분개 컬럼/하위행 렌더링
- App 컴포넌트에 분개 상태 및 핸들러 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 14:43:21 +09:00
김보곤
cd3b79d67e fix:홈택스 매입/매출 → 홈택스 매출/매입 메뉴명 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 13:50:13 +09:00
김보곤
fcebb5b219 fix:계좌관리 페이지 HX-Redirect 추가 및 잔액 계산 개선
- BankAccountController에 HX-Redirect 추가 (HTMX 네비게이션 시 스크립트 실행 보장)
- latestBalances() 수동입력 거래 포함 정확한 잔액 계산으로 개선
- N+1 쿼리 제거: 전체 거래를 한번에 조회 후 계좌별 그룹화 처리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 13:28:40 +09:00
김보곤
74b810e894 fix:계좌 잔액 기준값 계산 개선 - 수동입력 건도 누적 추적
- findBaseBalance를 이전 전체 거래 순회 방식으로 변경
- API 데이터는 바로빌 잔액을 그대로 사용
- 수동입력 건(잔액 0 저장)은 입출금 누적으로 잔액 계산
- 9월 수동입력 → 10월 조회 시 정확한 이전 잔액 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 12:54:15 +09:00
김보곤
b151fa30c0 fix:계좌 입출금내역 수동입력 잔액 계산 개선
- 조회기간 이전의 마지막 잔액을 DB에서 조회하여 기준값으로 사용
- findBaseBalance() 메소드 추가: 조회 시작일 이전 최종 잔액 탐색
- 수동입력 건의 잔액이 0에서 시작하지 않고 이전 실제 잔액에서 계산
- 단일계좌/전체계좌/수동건만 조회 모든 케이스에 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 12:51:08 +09:00
김보곤
a105553cf4 refactor:카드사용내역 메뉴를 재무관리로 이동
- /finance/card-transactions에서 EcardController 직접 호출 (리디렉션 제거)
- /barobill/ecard index는 재무관리로 리디렉션
- 데이터 API 라우트(cards, transactions 등)는 barobill 하위 유지
- 바로빌 메뉴에서 카드 사용내역 제거 (재무관리에 이미 존재)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 12:41:11 +09:00
김보곤
b546e19fe9 fix:카드 사용내역 기본 200건 조회 및 전체기간 통계 반영
- 기본 조회 건수 50 → 200으로 변경
- 단일 카드 조회 시 전체 데이터를 가져와서 통계 계산 후 로컬 페이지네이션
- 상단 통계(총 사용금액, 공제, 불공제)가 페이지네이션과 무관하게 전체 조회기간 반영
- 페이지네이션 중일 때 프론트엔드 재계산이 백엔드 통계를 덮어쓰지 않도록 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 11:38:53 +09:00
김보곤
6341e96367 refactor:계좌입출금내역 메뉴를 재무관리로 이동
- 재무관리 > 계좌거래내역 → 계좌입출금내역으로 명칭 변경
- /finance/account-transactions에서 EaccountController 직접 호출 (리디렉션 제거)
- /barobill/eaccount index는 재무관리로 리디렉션
- 데이터 API 라우트(accounts, transactions 등)는 barobill 하위 유지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 11:31:17 +09:00
김보곤
0f40ca673a fix:수동입력 건 잔액을 직전 거래 기준으로 자동 재계산
- recalcManualBalances() 메서드 추가: 병합된 로그를 시간순으로 순회하며
  수동입력 건의 잔액을 직전 거래 잔액 + 입금 - 출금으로 재계산
- 단일 계좌/전체 계좌/수동건만 있는 경우 모두 적용
- API 거래의 잔액은 그대로 유지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 11:20:12 +09:00
김보곤
17547aa4ae feat:계좌 입출금내역 수동입력 기능 추가
- BankTransaction 모델에 is_manual 필드 추가
- EaccountController에 storeManual/updateManual/destroyManual 메서드 추가
- transactions() 메서드에서 수동입력 데이터와 API 데이터 병합
- 라우트에 수동입력 관련 POST/PUT/DELETE 추가
- 뷰에 ManualEntryModal 컴포넌트 추가 (계좌선택, 입금/출금 유형, 금액 등)
- 거래 목록에 수동 뱃지, 수정/삭제 버튼 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 11:00:58 +09:00
김보곤
fd0b8d8536 feat:바로빌 계좌 거래내역 적요/내용 수정 기능 추가
- BankTransactionOverride 모델 추가 (오버라이드 데이터 관리)
- EaccountController에 saveOverride 엔드포인트 추가
- parseTransactionLogs에서 오버라이드 데이터 병합 로직 추가
- 프론트엔드에 TransactionEditModal 컴포넌트 추가
- 적요 셀 클릭 시 수정 모달 표시
- 오버라이드된 항목 시각적 표시 (배경색, 수정 배지)
- 원본 복원 기능 포함

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 09:57:55 +09:00
김보곤
a7670c6ecf fix:재무 대시보드 계좌 잔액을 DB 저장된 최신 거래내역에서 조회
- latestBalances API 추가 (barobill_bank_transactions 테이블)
- 바로빌 GetBankAccountEx 대신 로컬 DB 최신 잔액 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 06:23:28 +09:00
김보곤
7f0bbc1a95 feat:전자세금계산서 공급받는자 거래처 검색 모달 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 20:46:35 +09:00
김보곤
3fb1777bad feat:카드 거래 숨김(삭제) 및 복원 기능 추가
- CardTransactionHide 모델 생성 (숨김 테이블 연동)
- EcardController에 hide/restore/hidden 메서드 추가
- 기존 transactions/getAllCardsTransactions에 숨김 키 필터링 적용
- 프론트엔드에 숨김 버튼, 삭제데이터 보기 토글, 복원 기능 추가
- web.php에 숨김 관련 라우트 3개 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 17:27:30 +09:00
김보곤
fbfedf03d7 feat:분개 모달 공급가액/부가세 필드 추가
- SplitModal: 금액 단일필드 → 공급가액+부가세 2필드로 변경
- 행별 합계금액 자동계산 표시
- 분개 리스트 행에 공급가액/부가세 개별 표시
- 분개 기반 요약 재계산 로직 추가 (recalculateSummary)
- 모델: split_supply_amount, split_tax 필드 추가
- 컨트롤러: 분개 합계 검증 및 CSV 내보내기 반영
- 레거시 데이터(supply/tax 없는 기존 분개) 호환성 유지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 15:42:42 +09:00
김보곤
51f45b3f5b fix:수동입력 카드거래 금액 계산 버그 수정
수동입력시 approval_amount가 공급가액(supply)인데
effectiveSupplyAmount = amount - tax로 이중 차감되던 문제 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 14:39:29 +09:00
김보곤
1492a279f8 feat:카드 사용내역 수동입력 CRUD 기능 추가
- 수동입력 모달 (등록/수정) 추가
- storeManual, updateManual, destroyManual 컨트롤러 메서드 추가
- 바로빌 API 데이터와 수동 입력 건 병합 표시
- 수동 건에 "수동" 배지, 수정/삭제 버튼 표시
- 라우트: POST/PUT/DELETE /barobill/ecard/manual

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 11:24:40 +09:00
김보곤
3c3b89384d fix:부가세 합계에서 불공제(불공) 거래 제외
- totalTax 집계 시 deductionType이 'deductible'인 건만 포함
- parseTransactionLogs(), getAllCardsTransactions() 양쪽 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 10:57:42 +09:00
김보곤
bacf0396d5 feat:카드 사용내역 공급가액/부가세 수정 및 이력 추적 기능
- CardTransaction 모델에 modified_supply_amount, modified_tax 추가
- CardTransactionAmountLog 모델 신규 생성 (수정 이력)
- parseTransactionLogs: effectiveSupplyAmount, effectiveTax, isAmountModified 응답 추가
- save: 금액 변경 감지 시 amount_logs 이력 자동 기록
- 프론트엔드: 공급가액/부가세 input 수정 가능, 합계금액 자동계산
- 수정 시 주황색 배경 + 원본값 취소선 표시
- 분개된 거래는 금액 수정 비활성화 (읽기전용)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 10:02:56 +09:00
김보곤
f6f3c4bc45 fix:카드 사용내역 공제/불공제 통계를 전체 페이지 기준으로 계산
- 백엔드에서 페이지네이션 전 전체 데이터로 공제/불공제/부가세 통계 산출
- parseTransactionLogs에 deductibleAmount/Count, nonDeductibleAmount/Count, totalTax 추가
- getAllCardsTransactions summary에 공제/불공제 통계 포함
- 프론트엔드에서 logs 기반 계산 제거, summary 데이터 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 19:27:36 +09:00
김보곤
90e8b3ea76 feat:전자세금계산서 품목별 거래일자(월/일) 입력 기능 추가
- 품목 데이터 구조에 month, day 필드 추가
- 품목 테이블에 월/일 입력 컬럼 추가
- 바로빌 API PurchaseExpiry 필드에 YYYYMMDD 형식 거래일자 전달
- 상세 모달에 월/일 표시 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 18:02:20 +09:00
김보곤
95df5cb669 feat:전자세금계산서 공급자 기초정보 설정 모달 구현
- EtaxController에 getSupplier/updateSupplier 메서드 추가
- etax 라우트 그룹에 GET/POST /supplier 라우트 추가
- SupplierSettingsModal React 컴포넌트 구현 (톱니바퀴 아이콘)
- IssueForm이 supplier state를 props로 참조하도록 변경
- manager_phone → manager_hp 필드명 버그 수정
- FIXED_SUPPLIER → INITIAL_SUPPLIER 상수 리네이밍

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 11:22:20 +09:00
김보곤
ac66e36294 feat:홈택스 세금계산서 로컬 저장 및 동기화 기능 구현
- HometaxInvoice 모델 생성 (로컬 DB 조회/저장)
- HometaxSyncService 서비스 생성 (API 데이터 동기화)
- HometaxController에 로컬 조회/동기화 메서드 추가
- 라우트 추가: local-sales, local-purchases, sync, update-memo, toggle-checked
- UI: 데이터소스 선택 (로컬 DB/바로빌 API), 동기화 버튼 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:13:18 +09:00
김보곤
5f7a323839 feat:홈택스 검색 UI 바로빌 스타일로 개선
- 작성일자/발급일자 선택 드롭다운 추가
- 분기(1~4분기), 반기(1기/2기), 1년 버튼 추가
- 거래처 검색 필드 추가 (사업자번호/사업자명)
- 컨트롤러 dateType 파라미터 지원 (1:작성일자, 2:발급일자, 3:전송일자)
- 한국 시간대(Asia/Seoul) 기준 날짜 계산

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 16:49:23 +09:00
김보곤
83a438a030 fix:계정과목을 글로벌 데이터로 변경 (테넌트 무관) 2026-02-03 09:56:30 +09:00
김보곤
692be5c51b feat:홈택스 마지막 수집 시간 기록 및 표시 기능
- BarobillMember 모델에 last_sales_fetch_at, last_purchases_fetch_at 추가
- 매출/매입 조회 시 마지막 수집 시간 DB에 저장
- collectStatus API에서 저장된 시간 조회하여 반환
- 조회 성공 후 화면의 마지막 수집 시간 자동 갱신

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 09:12:42 +09:00