HBHR260_휴직·퇴사 내역 시트 (2섹션)
(Hereby) HR 급여 관리 > 시트 워크스페이스 > 휴직·퇴사 내역 시트
| 앱 | HR 급여 관리 (hr-system, 포트 4000) |
| 대상 사용자 | 조건1 [HR_ADMIN] / 조건2 [SUPER_ADMIN] |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_급여정본경계]] |
| Status | review |
| Owner | 카나 |
| 부모 | [[HBHR100_시트 워크스페이스 (공통 Shell)]] |
개요
- 휴직·퇴사 내역 시트는 휴직 폴더의 두 시트 유형(휴직 내역 / 퇴사 내역)을 한 문서에 2개 섹션으로 정의한다.
- 휴직 내역은 leave_of_absence_records, 퇴사 내역은 resignation_records를 근거로 한다.
- 퇴사 내역은 퇴사정산 calculator(severance_pay 산출)와 연동되어 급여 마감 정산에 반영된다.
- 휴직/퇴사 상태는 재직상태([[HBHR210_계약급여내역 시트]])와 정합하며, 해당 행은 급여대장([[HBHR200_급여대장 시트]])에서 회색 처리된다(추정).
- 정산액(퇴직정산/연말정산 등)은
commitDeduction(시트 커밋) 경로로 DeductionRecord를 생성해 정본화한다.resignation_records/year_end_settlements는 원천(observation)만 남기고 금액은 DeductionRecord로 커밋된다. DeductionRecord는 음수(환급) 허용(예: 연말정산 환급 -200,000). 시트=작업공간 vs 정본=commit 경계를 준수한다 ([[POL_급여정본경계]]). (TC 확정: 08:8.3~8.6 settlement deductions via sheet commit)
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-10 | 카나 | PM | 라이브 기능 검토 반영 |
| 2026-07-13 | 카나 | PM | 버튼 행동 명세 보강 |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 |
| 2026-07-21 | 카나 | PM | 가독성 패스 + 액션 표기 (GUIDE §7·§8) |
| 2026-07-21 | 카나 | PM | 셀 스타일 확정판 적용 (콸 승인) |
| 2026-07-21 | 카나 | PM | TC 크로스체크 확정분 반영 (🟡) |
Data I/O
Server → Client
| 변수 | DB 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
${leave.rows} | leave_of_absence_records[] | 0건 시 빈 그리드 | 휴직 행 |
${leave.status} | leave_of_absence_records.status (default active) | 미설정 시 default active | 휴직 상태, enum = TBU |
${resign.rows} | resignation_records[] | 0건 시 빈 그리드 | 퇴사 행 |
${resign.status} | resignation_records.status (default pending) | 미설정 시 default pending | 퇴사 상태, enum = TBU |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 퇴사 원천 등록 | employeeId, resignationDate, reason | resignation.create (TC 라이브 확인) | payroll:write (추정) |
| 연말정산 원천 등록 | employeeId, year, 금액 | yearEndSettlement.create (TC 라이브 확인) | payroll:write (추정) |
| 정산액 커밋 | 시트 커밋 대상 셀 → DeductionRecord | commitDeduction (TC 라이브 확인, 음수 허용) | payroll:confirm (추정) |
퇴사/연말정산 procedure는 원천(observation)만 생성하고, 실제 정산 금액은
commitDeduction(시트 커밋)이 DeductionRecord로 정본화한다. DeductionRecord는 음수(환급) 허용. (TC 확정: 08:8.3~8.6)
연동 방향
| 흐름 | 계산·경로 | 산출 | 비고 |
|---|---|---|---|
| 퇴사정산 | 퇴사 확정 시 퇴사정산 calculator가 resignation_records.resignationDate 기준 산출 | severance_pay(퇴직금) → 급여/정산 반영 | 산출식 = TBU |
| 재직상태 정합 | 휴직/퇴사 상태 ↔ 계약급여내역([[HBHR210_계약급여내역 시트]]) 재직상태 | 급여대장 행 처리(회색/제외) | [[HBHR200_급여대장 시트]] |
| 연말정산 연계 | 중도 퇴사 정산 → year_end_settlements | 연말정산 반영 | — |
화면 플로우 (Mermaid)
퇴사정산 calculator의 severance_pay는 preview/preflight까지이며, 정산 정본화는 확정 경로에서만(경로 = TBU).
섹션 A. 휴직 내역 시트 (leave_of_absence_records)
컬럼 순서·명칭은 기본 템플릿 기준(# / 사번 / 성명 / 팀 / 사유 / 시작일 / 복귀예정 / 실제복귀 / 상태 / 메모). 내부 fieldKey: employeeNumber / employeeName / team / reason / startDate / expectedReturnDate / actualReturnDate / status / notes.
| # | 컬럼 | 타입 | 설명 (용도·형식) | 연관 (ERD/calculator/타 앱) | 비고 |
|---|---|---|---|---|---|
| 1 | # | Index | • 행 순번 (read-only) | sheet_rows.sortOrder | read-only |
| 2 | 사번 | Text (system) | • 직원 사번 (read-only 시스템 컬럼) | employees.employeeNumber / fieldKey=employeeNumber | 시스템 컬럼 |
| 3 | 성명 | Text (system) | • 직원 성명 (read-only 시스템 컬럼) | employees.name / fieldKey=employeeName | 시스템 컬럼 |
| 4 | 팀 | Text (system) | • 소속 팀 (read-only 시스템 컬럼) | teams / fieldKey=team | 시스템 컬럼 |
| 5 | 사유 | Text | • 휴직 사유(육아/질병/개인 등) • 입력 시: reason 저장 | leave_of_absence_records.reason / fieldKey=reason | enum 아님(varchar) |
| 6 | 시작일 | DatePicker | • 휴직 시작일 (YYYY-MM-DD) • 선택 시: startDate 세팅 | leave_of_absence_records.startDate / fieldKey=startDate | — |
| 7 | 복귀예정 | DatePicker | • 복귀 예정일. nullable • 선택 시: expectedReturnDate 세팅 | leave_of_absence_records.expectedReturnDate / fieldKey=expectedReturnDate | 미정 시 공란 |
| 8 | 실제복귀 | DatePicker | • 실제 복귀일. 복귀 전 공란 • 선택 시: actualReturnDate 세팅 | leave_of_absence_records.actualReturnDate / fieldKey=actualReturnDate | nullable |
| 9 | 상태 | Badge | • 휴직 상태 표시(active 등). 편집/전이 액션 = TBU | leave_of_absence_records.status (default active) / fieldKey=status | TBU: enum 값 |
| 10 | 메모 | Text | • 비고 (processedBy 참고) • 입력 시: notes 저장 | leave_of_absence_records.notes / fieldKey=notes · processedBy | — |
섹션 B. 퇴사 내역 시트 (resignation_records)
컬럼 순서·명칭은 기본 템플릿 기준(# / 사번 / 성명 / 팀 / 퇴사일 / 사유 / 상태 / 처리일 / 메모). 내부 fieldKey: employeeNumber / employeeName / team / resignationDate / reason / status / processedAt / notes.
| # | 컬럼 | 타입 | 설명 (용도·형식) | 연관 (ERD/calculator/타 앱) | 비고 |
|---|---|---|---|---|---|
| 1 | # | Index | • 행 순번 (read-only) | sheet_rows.sortOrder | read-only |
| 2 | 사번 | Text (system) | • 직원 사번 (read-only 시스템 컬럼) | employees.employeeNumber / fieldKey=employeeNumber | 시스템 컬럼 |
| 3 | 성명 | Text (system) | • 직원 성명 (read-only 시스템 컬럼) | employees.name / fieldKey=employeeName | 시스템 컬럼 |
| 4 | 팀 | Text (system) | • 소속 팀 (read-only 시스템 컬럼) | teams / fieldKey=team | 시스템 컬럼 |
| 5 | 퇴사일 | DatePicker | • 퇴직금 정산 기준일 • 입력 시: resignationDate 세팅, 퇴사정산 calculator 입력 | resignation_records.resignationDate / fieldKey=resignationDate → 퇴사정산 calculator 입력 | — |
| 6 | 사유 | Text | • 퇴사 사유(자진/권고/계약만료 등). nullable • 입력 시: reason 저장 | resignation_records.reason / fieldKey=reason | varchar |
| 7 | 상태 | Badge | • 퇴사 처리 상태 표시(pending 등). 편집/전이 액션 = TBU | resignation_records.status (default pending) / fieldKey=status | TBU: enum 값 |
| 8 | 처리일 | DatePicker/Output | • 처리 완료일 (processedBy 기록). nullable • 선택 시: processedAt 세팅 | resignation_records.processedAt / fieldKey=processedAt · processedBy | nullable |
| 9 | 메모 | Text | • 비고 • 입력 시: notes 저장 | resignation_records.notes / fieldKey=notes | — |
공통 우측 컬럼군(재계산 diff + eCount)은 [[HBHR203_재계산 diff 뷰]] 참조 (양 섹션 공통).
연동·플로우
- 퇴사정산: resignation_records.resignationDate → 퇴사정산 calculator(severance_pay 산출) → 마지막 급여/정산 반영. 연말정산(year_end_settlements)과도 연계(중도 퇴사 정산).
- 재직상태 정합: 휴직/퇴사 상태가 계약급여내역([[HBHR210_계약급여내역 시트]]) 재직상태 및 급여대장 행 처리(회색/제외)에 반영.
- 버전 관리: resignation_records는 chainId/version/supersededAt 보유 — 정정 시 새 version(추정).
- 확정 경계: 정산액은
commitDeduction(시트 커밋)으로 DeductionRecord 정본화(음수 환급 허용). resignation_records/year_end_settlements는 원천만. AI는 preview/preflight까지만. (TC 확정: 08:8.3~8.6)
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
CASE01 [휴직 행] | 재직상태 = 휴직 (leave_of_absence_records) | 급여대장 행 회색 처리 (추정) | [[HBHR200_급여대장 시트]] |
CASE02 [퇴사 확정] | resignation_records 퇴사일 입력 | 퇴사정산 calculator 입력 → severance_pay 산출 | 산출식 TBU |
CASE03 [정산 확정] | 시트 커밋(commitDeduction) | 정산액 → DeductionRecord 정본화 (음수 환급 허용) | AI는 preflight까지 · (TC 확정: 08:8.3~8.6) |
Open Question
- leave_of_absence_records.status / resignation_records.status enum 전체 값. TBU.
- 퇴사정산 calculator의 severance_pay 산출식 및 입력 키(근속·평균임금). TBU.
퇴사 정산이 급여대장 전체 확정 경로인지 별도 정산 확정인지→commitDeduction(시트 커밋)으로 DeductionRecord 정본화 확정. resignation_records/year_end_settlements는 원천만. DeductionRecord 음수(환급) 허용. (TC 확정: 08:8.3~8.6)- 휴직 기간의 급여/4대보험 처리(무급/유급 구분) 정책. TBU.
- 휴직/퇴사 행의 급여대장 회색 처리·제외 규칙 확정. TBU.