Skip to content

HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)

(Hereby) HR 급여 관리 > 시트 워크스페이스 > 전자서명 발송·eCount 연동 시트

HR 급여 관리 (hr-system, 포트 4000)
대상 사용자조건1 [HR_ADMIN] / 조건2 [SUPER_ADMIN]
프로토타입TBU
관련 정책[[POL_급여정본경계]]
Statusreview
Owner카나
부모[[HBHR100_시트 워크스페이스 (공통 Shell)]]

개요

  • 이 문서는 문서·서명 및 eCount 연동의 두 시트 유형을 한 문서에 2개 섹션으로 정의한다.
  • 전자서명 발송 시트(🔒잠금)는 명세서 문서의 발송·서명·수신 상태를 기록하는 교부 입증층으로, 근로기준법 §48(임금대장·명세서 교부) 입증 근거이며 e_sign_records를 근거로 한다.
  • eCount 코드 시트는 수당/공제 항목을 이카운트 회계 코드에 매핑하는 export 마스터로, allowance_item_codes / deduction_item_codes를 근거로 한다.
  • 전자서명 발송은 급여 확정 후 명세서 생성에서 시작하는 정본 후행 교부층이며, 시트=작업공간 vs 정본=commit 경계를 따른다 ([[POL_급여정본경계]]).

문서 히스토리

날짜작성자변경 내용
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-05카나PM발송 리스트 새로고침 시 Sign 상태 동기화·최신순 정렬 반영(#614 머지 9/4) — 세부 UI 실사 대기

Data I/O

Server → Client

변수DB 엔티티.컬럼값 없을 때비고
${sign.rows}e_sign_records[]0건 시 빈 그리드시트 🔒잠금(sheet_views.lockedAt/lockedBy)
${sign.status}서명 상태 (발송/서명완료/미서명 등)미발송 시 공란enum = TBU
${allowCode.rows}allowance_item_codes[] (code(4)·name·displayOrder·isActive)0건 시 빈 그리드수당 코드
${dedCode.rows}deduction_item_codes[] (code(4)·name·displayOrder·isActive)0건 시 빈 그리드공제 코드

Client → Server

액션전달 값tRPC procedure권한 토큰
이카운트 exportyear, monthpayroll.exportEcount(year, month) (TC 라이브 확인) → { filename(~"ecount"), data, employeeCount≥N, excludedRecords:{allowance, deduction} }payroll:confirm (추정)

payroll.exportEcount(year,month)는 성공 시 filename·data·employeeCount(대상 직원 수)를 반환한다. 급여대장 집계 컬럼에 앵커되지 않은(self-target) record는 export에서 제외되고 excludedRecords.{allowance, deduction} 카운트로 보고된다 — 커밋 target 페어가 실 급여대장 슬러그가 아니면 export 대상에서 빠진다. (TC 확정: 03:3.5 exports to eCount / 10:10.6 excludedRecords)

연동 방향

흐름계산·경로산출비고
전자서명급여 확정([[HBHR201_전체 확정 (commit)]]) → 명세서 생성(payroll_records.sentBy/sentAt) → 전자서명 발송 → 서명 상태 기록교부 입증(§48)🔒잠금
eCount확정 급여 항목(allowance_records/deduction_records) → 항목 코드 매핑 → 이카운트 export코드/부서코드/사원명/금액export 실 데이터 [[HBHR203_재계산 diff 뷰]]
코드 활성isActive=false(미사용) 코드export 대상 제외(추정)boolean

화면 플로우 (Mermaid)

전자서명 발송 시트는 🔒잠금 교부 입증층으로 편집 불가. eCount export 실 데이터는 [[HBHR203_재계산 diff 뷰]] 공통 컬럼군에서 정의.

섹션 A. 전자서명 발송 시트 (🔒잠금, e_sign_records)

컬럼 순서·명칭은 기본 템플릿 기준(# / 사번 / 성명 / 팀 / 문서 / 발송일시 / 서명일시 / 상태 / 수신 이메일 / 수신 휴대전화, 행 이동 탭: 기본/인사). 내부 fieldKey: employeeNumber / employeeName / team / templateName / sentAt / signedAt / status / recipientEmail / recipientPhone.

#컬럼타입설명 (용도·형식)연관 (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시스템 컬럼
4Text (system)• 소속 팀 (read-only 시스템 컬럼)teams / fieldKey=team시스템 컬럼
5문서Text/Link• 발송 문서명(예: 급여명세서 YYYY-MM) · 시트 🔒잠금
• 클릭 시: TBU (발송 문서 열람 링크, 목적지 미확인)
e_sign_records.documentName(추정) / fieldKey=templateName · payroll_records
6발송일시Output/DateTime• 문서 발송 일시. §48 교부 시점 입증 (read-only 잠금)e_sign_records.sentAt(추정) / fieldKey=sentAt · payroll_records.sentAtread-only(잠금)
7서명일시Output/DateTime• 수신자 서명 완료 일시. 미서명 시 공란 (read-only 잠금)e_sign_records.signedAt(추정) / fieldKey=signedAtread-only(잠금)
8상태Badge• 발송/서명완료/미서명/실패 등e_sign_records.status(추정) / fieldKey=statusTBU: enum 값
9수신 이메일Text• 수신자 이메일 주소e_sign_records.recipientEmail(추정) / fieldKey=recipientEmail
10수신 휴대전화Text• 수신자 휴대전화 번호e_sign_records.recipientPhone(추정) / fieldKey=recipientPhone

시트는 🔒잠금 — 발송·서명 이력은 교부 입증층으로 편집 불가(read-only). 행 이동 탭: 기본/인사.

섹션 B. eCount 수당/공제 코드 시트 (allowance/deduction_item_codes)

컬럼 순서·명칭은 기본 템플릿 기준(# / 코드 / 항목명 / 표시 순서 / 사용). 내부 fieldKey 4종: code / name / displayOrder / isActive.

#컬럼타입설명 (용도·형식)연관 (ERD/calculator/타 앱)비고
1#Index• 행 순번 (read-only)sheet_rows.sortOrderread-only
2코드Text• 이카운트 매핑 코드(4자리), 수당/공제 구분
• 입력 시: code 저장(4자리)
allowance_item_codes.code(4) / deduction_item_codes.code(4) / fieldKey=codevarchar(4)
3항목명Text• 수당/공제 항목 명칭
• 입력 시: name 저장
allowance_item_codes.name / deduction_item_codes.name / fieldKey=name
4표시 순서Number• 정렬 순서
• 입력 시: displayOrder 세팅
allowance_item_codes.displayOrder / deduction_item_codes.displayOrder / fieldKey=displayOrder정렬 순서
5사용Badge/Checkbox• 코드 활성 여부(boolean)
• 입력 시: isActive 토글. 미사용(false) 시 export 대상 제외(추정)
allowance_item_codes.isActive / deduction_item_codes.isActive / fieldKey=isActiveboolean

공통 우측 컬럼군(재계산 diff + eCount 매핑: 코드/부서코드/사원명/금액)은 [[HBHR203_재계산 diff 뷰]] 참조 — export 실 데이터는 [[HBHR203_재계산 diff 뷰]]에서 정의.

연동·플로우

  • 전자서명 흐름: 급여 확정([[HBHR201_전체 확정 (commit)]]) → 명세서 생성 → 전자서명 발송(e_sign_records) → 서명/수신 상태 기록 → §48 교부 입증층으로 보존(🔒잠금).
  • eCount 흐름: 확정 allowance_records/deduction_records → 항목 코드(allowance/deduction_item_codes) 매핑 → 이카운트 export(payroll.exportEcount(year,month), 반환 filename·data·employeeCount, [[HBHR203_재계산 diff 뷰]] 공통 컬럼군). 급여대장 aggregate 컬럼 미앵커(self-target) record는 excludedRecords.{allowance,deduction} 카운트로 제외 보고. (TC 확정: 03:3.5 / 10:10.6)
  • 코드 마스터는 isActive=false(미사용) 시 export 대상 제외(추정).

권한·상태 분기 요약

시나리오트리거결과비고
CASE01 [전자서명 시트]발송·서명 이력 셀 편집 시도차단 (🔒잠금, read-only 교부 입증층)편집 불가
CASE02 [미사용 코드]isActive=false 코드이카운트 export 대상 제외 (추정)boolean
CASE03 [명세서 발송]급여 확정 후 명세서 생성·발송e_sign_records에 sentAt 기록 (§48 교부 시점)payroll_records.sentAt

Open Question

  • e_sign_records 엔티티/컬럼명 확정 — 02·03 ERD 미노출, 문서·서명 도메인 ERD 필요. TBU.
  • 전자서명 상태 enum 전체 값(발송/서명완료/미서명/만료/실패 등). TBU.
  • 행 이동 탭 "기본/인사"의 의미(문서 분류 vs 대상 구분). TBU.
  • eCount export procedure = payroll.exportEcount(year,month) 확정 (반환 filename·data·employeeCount·excludedRecords). 트리거 UI(수동/자동)·부서코드 원천 = TBU. (TC 확정: 03:3.5 / 10:10.6)
  • 수당/공제 코드가 단일 시트 2탭인지 별도 시트인지(census는 "eCount 수당/공제 코드" 단일 언급). TBU.