HBEA530_급여명세서 모달
(Hereby) 직원 앱 > 더보기 > 급여명세서 모달
| 앱 | 직원 앱 (Employee App, 포트 4002) |
| 대상 사용자 | 조건1 [EMPLOYEE] (self scope) |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_급여정본경계]] · [[POL_임금명세서§48]] |
| Status | draft |
| Owner | 카나 |
개요
- 더보기 > 급여명세서 진입 시 뜨는 모달 리스트. 부모 화면은 [[HBEA500_더보기]]. 직원 본인(self) 급여명세서를 열람·전자서명하는 self-service 표면.
- 명세서가 없으면 Empty "급여명세서가 없어요." 명세서 본문은 근로기준법 §48 법정 7항목 요건을 충족해야 한다(아래 요건 보조표).
- 전자서명 동선은 HR 전자서명 발송([[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]] 교부 입증층)과 연계 — 발송·서명일시·상태가 교부 입증층으로 write-back. 명세서 §48 본문·서명 액션은 실직원 계정 필요로 TBU.
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 |
| 2026-07-21 | 카나 | PM | 셀 스타일 확정판 적용 (콸 승인) |
| 2026-08-26 | 카나 | PM | 법정공제 잠정 표시 반영(#581 머지) — 배지 원문은 실사 대기(명세서 0건). Empty "급여명세서가 없어요." 재실사 확인 |
Data I/O
Server → Client
| 변수 | DB 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
${payslips} | Payslip[] (self) | 빈 배열 → "급여명세서가 없어요." | 리스트 원천 |
${payslip.body} | Payslip.body (§48 7항목) | TBU (실직원 계정 필요) | 본문 미확인 |
${esign_status} | ESignRecord.status (미서명 / 서명 완료) | 미서명 기본 (추정) | 교부 입증층 연동 |
${payslip.period} | Payslip.period (지급 귀속월) | TBU | 리스트 행 라벨 |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 명세서 열람 | payslipId | sdk.payslip.getSelf() (추정) | payslip:read.self |
| 전자서명 | payslipId, signature | 서명일시 기록 → HR 교부 입증층 write-back (procedure TBU) | payslip:sign.self (추정) |
외부 통합 (cross-app)
| 외부 시스템 | 데이터 | 동기/비동기 | 비고 |
|---|---|---|---|
HR 급여시트 / PayrollLedger | 확정 급여 결과 → 명세서 원천 | 비동기 | 정본은 HR (POL_급여정본경계) |
| HR 전자서명 발송 ([[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]]) | 발송·서명일시·상태 교부 입증층 | 비동기 (write-back) | 서명 후 이력 반영 |
화면 플로우 (급여명세서 교부·서명 동선)
직원 앱은 명세서를 조회/열람/서명하는 self-service 표면. 급여 원장·명세서 본문·교부 이력의 정본 수정은 직원 앱에서 수행하지 않는다 ([[POL_급여정본경계]]).
급여명세서 모달 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | 조건1 [EMPLOYEE] 인증. 더보기 > 급여명세서 진입 시 모달 오픈 | [[HBEA500_더보기]] | |
| 01 | 초기 상태 | Output | 본인 명세서 리스트 로드. ${payslips} 없으면 Empty | self | |
| 10 | 모달 리스트 | Modal | • 본인 급여명세서 행 목록. 행 = 귀속월·상태(추정) • 클릭(행) → 명세서 상세 열람 | ${payslips} | 라이브: 계정 데이터 0건 |
| 10-E | ㄴ Empty | Text | 명세서 0건 시 "급여명세서가 없어요." | Empty 원문 (라이브 확인) | |
| ㄴ | 값 없음 처리 | Output | ${payslip.period} 등 행 필드 부재 시 표시 | TBU: 행 필드 (본문 실계정 대기) | |
| 20 | 명세서 본문 | - | 근로기준법 §48 법정 7항목 요건 충족(아래 요건 보조표) | HR 원천 | TBU: 본문 (실직원 계정 필요) |
| ㄴ21 | 법정공제 잠정 표시 | Badge | • 월 법정공제 항목(4대보험·소득세·지방소득세)에 잠정 표시 — 정산(건보 4월·연말정산·연금 7월 갱신)으로 확정되기 전임을 안내 (settlementState 기반, [[POL_공제_잠정·정산]] 참조) - CASE01 [정산 확정 항목]: 잠정 표시 없음 (추정) | payroll read path settlementState (#581) | 신규 (코드 반영: #581 머지 8/25) · 배지 문구·형태 원문 = 실사 대기(확정 명세서 데이터 전제 — 계정 명세서 0건) |
| 30 | 전자서명 | Button | • 본인 명세서에 전자서명, 서명일시 기록 → HR 교부 입증층 write-back (실직원 계정 필요) • 클릭 → TBU (서명 액션 미검증) - CASE01 [미서명]: 서명 버튼 활성 - CASE02 [서명 완료]: 서명일시·완료 배지 표시 (반영 형태 TBU) | [[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]] · ${esign_status} | TBU: 서명 액션 · 서명 실패/반려/만료 enum·재시도 |
| 40 | 권한 | - | 조건1 [EMPLOYEE] self scope. 타인 명세서 조회 불가 |
§48 법정 7항목 요건 보조표
| 항목 | 요건 (근로기준법 §48 임금명세서) |
|---|---|
| 1. 성명·식별정보 | 근로자 성명, 생년월일·사원번호 등 식별정보 |
| 2. 임금 지급일 | 임금 지급일자 |
| 3. 임금 총액 | 지급 임금 총액 |
| 4. 임금 구성항목별 금액 | 기본급·수당 등 구성항목별 금액 |
| 5. 계산 방법 | 연장·야간·휴일 근로 등 계산 방법 (계산식·시간 수) |
| 6. 공제 내역 | 공제 항목별 금액 (4대보험·세금 등) |
| 7. 실지급액 | 공제 후 실수령액 |
본문 렌더 실물은 실직원 계정 데이터 필요로 TBU. 정책 정의는 [[POL_임금명세서§48]] 참조.
급여명세서 교부 원천 경계 보조표
| 단계 | 원천/화면 | 확정 | TBU |
|---|---|---|---|
| 1. 명세서 생성 | HR 급여시트 / PayrollLedger | 확정 급여 결과가 명세서 원천 | PDF 생성 procedure |
| 2. 교부 발송 | [[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]] | 발송·서명일시·상태·수신 추적하는 교부 입증층 존재 | 발송 trigger / 재발송 정책 |
| 3. 직원 수신 | 직원 앱 | 더보기 > 급여명세서 모달 진입 존재 | 명세서 모달 vs 서류관리 라우팅 |
| 4. 열람/서명 | 직원 앱 | self 열람 표면 (Empty "급여명세서가 없어요." 확인) | §48 본문·서명 버튼·완료 상태 반영 |
| 5. 교부 이력 반영 | HBHR270 / Payroll audit | 교부 입증층으로 write-back | 서명일시 write-back·실패/반려/만료 enum |
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
CASE01 [명세서 0건] | 급여명세서 진입 (self 명세서 없음) | "급여명세서가 없어요." | 라이브 확인 |
CASE02 [미서명] | 명세서 열람 | 서명 버튼 활성 (액션 TBU) | |
CASE03 [서명 완료] | 전자서명 실행 후 | 서명일시 write-back → HR 교부 이력 | 반영 형태 TBU |
조건1 [EMPLOYEE] | self scope | 본인 명세서만 조회/서명 |
Open Question
| # | 항목 | 상태 |
|---|---|---|
| 1 | 급여명세서 §48 본문 렌더 (실직원 계정 필요) | TBU |
| 2 | 전자서명 서명 액션 UI·완료 후 상태 반영 | TBU |
| 3 | 발송 문서가 급여명세서 모달로 들어오는지 / 서류관리로 들어오는지 | TBU |
| 4 | 서명일시 write-back·실패/반려/만료 상태 enum | TBU |
| 5 | 모달 리스트 행 구성(귀속월·상태 배지 등) | TBU (계정 데이터 0건) |