Skip to content

HBHR260_휴직·퇴사 내역 시트 (2섹션) ​

(Hereby) HR 급여 관리 > 시트 워크스페이스 > 휴직·퇴사 내역 시트

앱HR 급여 관리 (hr-system, 포트 4000)
대상 사용자조건1 [HR_ADMIN] / 조건2 [SUPER_ADMIN]
프로토타입TBU
관련 정책[[POL_급여정본경계]]
Statusreview
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카나PMGC700 깊이 재작성
2026-07-21카나PM가독성 패스 + 액션 표기 (GUIDE §7·§8)
2026-07-21카나PM셀 스타일 확정판 적용 (콸 승인)
2026-07-21카나PMTC 크로스체크 확정분 반영 (🟡)
2026-09-17카나PM최종 근무일(resignationDate) = 급여대장 퇴직자 제외 판정 축임을 명시. 직원 마스터 시트에서 「퇴사일」 열이 「계약 종료일」(contractEndDate)로 개명되고 실제 퇴사일은 별도 「최종 근무일」 열에 기록되도록 분리됨(10ae783) — 커밋 근거, 라이브 실사 이월(TBU)
2026-09-18카나PM재입사 가드 판정 확대(재직기 시작일 = 입사일·최신 근로계약 시작일 중 늦은 날) + 복귀 시 유효 퇴사 기록 자동 마감 반영(dc9821a, #789) — 커밋 근거, 라이브 실사 이월(TBU)

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, reasonresignation.create (TC 라이브 확인)payroll:write (추정)
연말정산 원천 등록employeeId, year, 금액yearEndSettlement.create (TC 라이브 확인)payroll:write (추정)
정산액 커밋시트 커밋 대상 셀 → DeductionRecordcommitDeduction (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.sortOrderread-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=reasonenum 아님(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=actualReturnDatenullable
9상태Badge• 휴직 상태 표시(active 등). 편집/전이 액션 = TBUleave_of_absence_records.status (default active) / fieldKey=statusTBU: 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.sortOrderread-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=reasonvarchar
7상태Badge• 퇴사 처리 상태 표시(pending 등). 편집/전이 액션 = TBUresignation_records.status (default pending) / fieldKey=statusTBU: enum 값
8처리일DatePicker/Output• 처리 완료일 (processedBy 기록). nullable
• 선택 시: processedAt 세팅
resignation_records.processedAt / fieldKey=processedAt · processedBynullable
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)
  • 최종 근무일(퇴사일) ↔ 급여대장 제외 판정 (코드 반영: 10ae783, 라이브 실사 이월 TBU): 직원 마스터 시트에서 실제 그만둔 날을 「최종 근무일」 열(refField resignationDate)에 적으면 append-only 퇴사 기록으로 저장되고, 급여대장([[HBHR200_급여대장 시트]] ㄴ36/ㄴ51)에 「최종 근무일」이 표시되며 그 다음 달부터 대장에서 자동 제외된다. 기존 「퇴사일」 열은 근로계약 만료일을 뜻하는 「계약 종료일」(refField contractEndDate)로 개명되어 실퇴사일과 구분된다. 빈 셀 = 변경 없음(지워도 퇴사 취소 아님).
  • 재입사 가드 판정 확대 (코드 반영: dc9821a, #789, 라이브 실사 이월 TBU): 유효 퇴사 기록 판정이 resignationDate ≥ hireDate(입사일만 비교)에서 「지금 재직기」 기준으로 확대 — 재직기 시작일 = 입사일과 최신 근로계약 시작일(마스터 시트 「계약 시작일(변동일)」) 중 늦은 날이며, 그보다 앞선 퇴사 기록은 이전 재직기의 것으로 무효. 운영(okbest)은 재입사·재계약 때 최초입사일을 갱신하지 않고 근로계약만 새로 시작해 기존 가드가 0건 동작, 재직자 23명이 9·10월 급여대장에서 누락된 것이 수정 배경(9/18). 마스터 시트에서 퇴사자를 재직으로 되돌리면 지금 재직기의 유효 퇴사 기록이 자동으로 닫히고(옛 재직기 이력은 보존), 「퇴직」 배지·급여대장 제외가 함께 풀린다. 같은 판정을 급여대장 행 포함·제외 / 「퇴직」 배지·「최종 근무일」 열 / 마스터 시트 읽기·쓰기 / 급여 생성이 공유한다.

권한·상태 분기 요약 ​

시나리오트리거결과비고
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.