다크모드
구현 상태
기준일: 2026-07-23
표기: ✅ 구현 · ⚠️ 부분 구현 또는 서버 승격 필요 · ❌ 예정
핵심 용어와 계산
| 항목 | 상태 | 현재 근거 | 남은 작업 |
|---|---|---|---|
| 부과액 성격별 구성 | ✅ | useAllocations, useBillingPreset | 실서버 계산 계약 고정 |
| E2 미수관리비·성격별 대변 | ✅ | useBillingJournal.vouchersInvoicing() | 부과 확정 RPC와 원자화 |
| 선수금 원장 | ✅ | useReceipts | 실서버 원장 승격 |
| E5 선수금 충당 | ✅ | useBillingJournal.vouchersAdvanceMovements() | 청구 확정과 원자화 |
| 청구액 파생 | ✅ | useCollectingDetail.totals.payable | 문서 시점 청구액과 실시간 잔액 필드 분리 |
| 수납·초과분 선수금 | ✅ | useReceipts, E4 | 실입금 어댑터·서버 원장 |
| 가수금·재분류 | ✅ | E9·E-reclass | 실입금 어댑터·서버 원장 |
| 미수 연령분석 | ✅ | useReceivableAging | 서버 집계 승격 |
| 차수 마감·이월 | ✅ | 기간 체인·마감 게이트 | 서버 트랜잭션 강화 |
용어 정합 상태
| 항목 | 상태 | 설명 |
|---|---|---|
| 회계 정본 섹션 | ✅ | /finance-accounting-tax/accounting/에서 용어·흐름·분개·불변식 통합 |
| 화면의 정식 용어 + 쉬운 툴팁 | ⚠️ | TermTip 기반은 구현됐으나 기존 받을금액·미수액 라벨 전수 마이그레이션 필요 |
| 청구액 시점 고정 | ⚠️ | 고지서 VM은 청구액을 제공하지만 일부 계정 화면이 실시간 payable을 청구액으로 표시 |
| E2 사건 명칭 | ⚠️ | 현재 코드명 청구확정의 회계 실질은 부과채권 인식 |
| 월별 관리비 리스트 금액 | ⚠️ | FE 컬럼·마감 snapshot 구현, 운영 서버 목록 projection 승격 필요 |
서버 원자성
현재 프론트엔드 프로토타입은 계산과 분개 파생을 검증했고, 기간·단계 전이 일부는 서버 RPC로 승격했다. 다음 사건은 최종적으로 하나의 서버 트랜잭션으로 묶어야 한다.
부과·청구 확정
text
부과 결과 동결
+ 계약별 미수관리비 발생
+ 성격·세금구분별 E2 전표
+ 선수금 충당 E5
+ 청구 문서 버전
+ 감사 actor하나라도 실패하면 전체를 롤백해야 한다.
수납 확정
text
입금 식별
+ 차수·구성요소별 충당
+ 초과액 선수금 적립
+ E4 또는 E9/E-reclass 전표
+ 감사 actor중복 요청에는 같은 결과를 반환하는 멱등키가 필요하다.
알려진 정합 과제
청구액을 청구 문서의 시점 고정 금액으로 저장하고, 실시간 계정 화면은미수잔액을 사용하도록 분리한다.- E2 코드명
청구확정을 회계 실질에 맞는부과채권 인식으로 마이그레이션하고, 문서청구 확정사건과 분리한다. - 기존 화면의
받을금액을총 미수채권또는미수잔액으로 문맥별 마이그레이션한다. - 월별 관리비 리스트의
부과액·정산 수납액·미수잔액·수납률을 운영 서버 목록 projection으로 승격한다. 정산 수납액은현금수납액 + 선수금 충당액이며 상세 응답은 두 구성액을 보존한다. - 부과 확정, E2, E5, 청구 문서 생성을 단일 서버 RPC로 원자화한다.
- 실제 제품 어댑터가 동일한 용어·사건·불변식 계약을 구현하는지 페이지별로 검수한다.
회귀 테스트 기준
필수 시나리오:
- 부과액 10,000원, 선수금 충당 1,000원 → 청구액 9,000원
- 청구액 9,000원 중 4,000원 수납 → 원 청구액 9,000원, 미수잔액 5,000원
- 미수잔액 5,000원에 7,000원 입금 → 수납 충당 5,000원, 선수금 2,000원
- 미식별 7,000원 입금 → 가수금 7,000원, 수납액 0원
- 모든 사건의 전표 차변합과 대변합 일치
관련 구현 정본
src/composables/useBillingJournal.jssrc/composables/useCollectingDetail.jssrc/composables/useReceipts.jssrc/composables/useInvoice.jsdocs/PROCESS-RECEIPTS-CANON-2026-06-19.mddocs/handoff/backend/invoicing-collecting-role-split.mddocs/handoff/backend/collecting-detail.md