Skip to content

퇴직정산 페이지 (FE 메인테이너)

독자: FE 메인테이너/AI. 작성: 2026-07-10. 계산 규칙 정본: ../backend/hr-retirement-settlement.md.

라우트·트리

  • /human-capital/compensation/retirement/generalIndexViewHeaderOrg + MainOrg
  • MainOrg — 기준일(asOf, 가정 퇴직일) 소유 + 시트 배선
    • blocks/DynamicTableOrgretirementRows(asOf) 조망(10명). 이름 클릭(§0-10) → 정산 시트
    • overlays/SheetRetirementArt — 3xl 시트. 퇴직일 date 입력(로컬 재계산 시뮬레이션) + 명세 2표(퇴직금 산정/세액 산정) + [정산서 발급](eligible 게이트)

⚠ 구 Unit CRUD 스캐폴딩은 제거됨(2026-07-10). 급여 페이지가 크로스 임포트하던 Unit 시트 3종은 compensation/payroll/general/overlays/로 소유 이전(빌드 가드 — payroll 실화 시 함께 정리할 것).

소비 컴포저블

파일역할
useRetirement.jssettlementFor(employeeId, retireDate) 명세 VM / retirementRows(asOf) 조망. 평균임금·통상하한·퇴직금·퇴직소득세(2023~ 환산 구조)
payrollMock.jsearningsBreakdown(월 임금총액)·basicTax(누진세율 — export 공용)
contractMock.jsemployees(hireDate)·contracts(terminationDate — 퇴사자)·hourlyWage(통상임금)
documentCenterRepo.jscreateRetirementSettlement — 계산 스냅샷을 문서센터에 등록

데이터 흐름

조망·시트 전부 파생 computed(저장 없음). 유일한 쓰기 = [정산서 발급] → seam → documentCenterMock.createRetirementSettlement(스냅샷 저장) → 문서센터 목록·프리뷰(retirementSettlementTemplate.jsdoc.settlement만 렌더, 재계산 금지).

테스트

  • src/composables/useRetirement.test.js — 1년 미만 0원·365일 경계·평균임금 92일·통상 하한·환산 단계·조망 10명
  • src/composables/documentCenterMock.test.js — 정산서 스냅샷·비대상 발급 거부
  • 라이브: 조망→시트→발급→문서센터 프리뷰 9항목 Playwright 실측(2026-07-10)

확장 포인트

상여 가산 = useRetirement의 임금총액 산식만 교체(월 gross×3 자리). DC형 분기 = VM에 planType 추가 후 시트/정산서 분기.