Skip to content

구현 상태

기준일: 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

중복 요청에는 같은 결과를 반환하는 멱등키가 필요하다.

알려진 정합 과제

  1. 청구액을 청구 문서의 시점 고정 금액으로 저장하고, 실시간 계정 화면은 미수잔액을 사용하도록 분리한다.
  2. E2 코드명 청구확정을 회계 실질에 맞는 부과채권 인식으로 마이그레이션하고, 문서 청구 확정 사건과 분리한다.
  3. 기존 화면의 받을금액총 미수채권 또는 미수잔액으로 문맥별 마이그레이션한다.
  4. 월별 관리비 리스트의 부과액·정산 수납액·미수잔액·수납률을 운영 서버 목록 projection으로 승격한다. 정산 수납액은 현금수납액 + 선수금 충당액이며 상세 응답은 두 구성액을 보존한다.
  5. 부과 확정, E2, E5, 청구 문서 생성을 단일 서버 RPC로 원자화한다.
  6. 실제 제품 어댑터가 동일한 용어·사건·불변식 계약을 구현하는지 페이지별로 검수한다.

회귀 테스트 기준

필수 시나리오:

  • 부과액 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.js
  • src/composables/useCollectingDetail.js
  • src/composables/useReceipts.js
  • src/composables/useInvoice.js
  • docs/PROCESS-RECEIPTS-CANON-2026-06-19.md
  • docs/handoff/backend/invoicing-collecting-role-split.md
  • docs/handoff/backend/collecting-detail.md