컨텐츠로 건너뛰기

청구월 생성

‘청구월 생성’ 기능이 실행될 때 백엔드에서 처리되는 주요 과정을 정리해 드리겠습니다. 이는 사용자가 인터페이스에서 새로운 달을 선택하고 생성을 요청했을 때 서버 측에서 일어나는 일련의 작업입니다.

  1. 요청 수신 및 유효성 검사:

    • 프론트엔드로부터 특정 년도와 월(YYYY-MM)에 대한 청구월 생성 요청을 받습니다.
    • 요청된 청구월이 이미 존재하는지 확인합니다. (중복 생성 방지)
    • 직전 청구월(YYYY-MM-1)의 데이터가 마감(확정)되었는지 확인합니다. (직전 달 검침값, 미납액 등을 가져오기 위해 필수적일 수 있음)
    • 유효성 검사에 실패하면 오류 메시지를 반환합니다.
  2. 신규 청구월 데이터 구조 생성:

    • 데이터베이스에 해당 년월(YYYY-MM)을 식별자로 하는 새로운 청구월 관리 레코드(예: BillingMonth 테이블)를 생성합니다. 초기 상태는 ‘작업 중’ 또는 ‘입력 대기’ 등으로 설정합니다.
  3. 기준 정보 스냅샷 생성:

    • 현재 시점의 관리비 계산에 필요한 기준 정보들을 데이터베이스에서 조회합니다.
      • 현재 부과 대상인 모든 호실 목록 및 면적 정보 (Units 테이블)
      • 현재 유효한 관리비 항목 목록 (FeeItems 테이블)
      • 각 관리비 항목에 연결된 배분 기준 (DistributionRules 테이블)
      • 현재 적용되는 단가 정보 (Tariffs 테이블)
      • 통합 청구 설정 정보 (ConsolidatedBilling 테이블 등)
    • 조회된 기준 정보들을 해당 청구월 레코드와 연결하여 ‘스냅샷’으로 저장합니다. 이는 주로 별도의 연결 테이블(예: BillingMonth_FeeItems, BillingMonth_Units)에 생성 시점의 기준 정보 ID와 청구월 ID를 기록하는 방식으로 구현됩니다.
    • 목적: 청구월 생성 이후에 기준 정보가 변경되더라도, 이미 생성된 청구월의 계산에는 영향을 주지 않아 데이터의 일관성과 정확성을 보장합니다.
  4. 직전 달 데이터 조회 및 연동:

    • 직전 청구월(YYYY-MM-1)의 최종 확정된 데이터를 조회합니다.
      • 각 호실별 최종 계량기 지침 (‘당월지침’) (MeterReadings 테이블)
      • 각 호실별(또는 통합 청구 단위별) 최종 미납/정산액 (BillingSummaries 또는 Ledger 테이블)
      • (선택 사항) 직전 달 고정 비용 항목들의 부과 금액 (MonthlyFeeDetails 테이블)
    • 조회된 데이터를 바탕으로 새로 생성된 청구월의 초기 데이터를 설정합니다.
      • 새 청구월의 각 호실별 계량기 레코드(MeterReadings 테이블)를 생성하고, ‘전월지침’ 필드에 직전 달 ‘당월지침’ 값을 채웁니다. ‘당월지침’ 필드는 비워둡니다(입력 대기).
      • 새 청구월의 각 호실별(또는 통합 청구 단위별) 관리비 내역 레코드(MonthlyFeeDetails 또는 BillingSummaries 테이블)를 생성하고, ‘전월미납/정산액’ 필드에 직전 달 최종 미납/정산액 값을 채웁니다.
      • (선택 사항) 고정 비용 항목에 대해 직전 달 금액을 초기값으로 설정합니다.
  5. 작업 로그 기록:

    • 청구월 생성 작업에 대한 로그(작업자, 시간 등)를 기록하여 추적 가능하도록 합니다.
  6. 응답 전송:

    • 모든 처리가 성공적으로 완료되면, 프론트엔드에 성공 메시지와 함께 새로 생성된 청구월의 ID 등을 반환하여 사용자가 해당 월의 ‘검침 및 비용 입력’ 화면으로 이동할 수 있도록 합니다.

이러한 백엔드 처리를 통해, 사용자는 편리하게 새로운 달의 관리비 작업을 시작할 수 있으며, 시스템은 데이터의 정확성과 일관성을 유지하면서 필요한 정보들을 자동으로 준비하게 됩니다.