HBHR250_인센티브 세션 시트
(Hereby) HR 급여 관리 > 시트 워크스페이스 > 인센티브 세션 시트
| 앱 | HR 급여 관리 (hr-system, 포트 4000) |
| 대상 사용자 | 조건1 [HR_ADMIN] / 조건2 [SUPER_ADMIN] |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_급여정본경계]] · 인센티브 taxonomy(콸 결정) |
| Status | review |
| Owner | 카나 |
| 부모 | [[HBHR100_시트 워크스페이스 (공통 Shell)]] |
개요
- 인센티브 세션 시트는 직원별 세션(회차) 단위 인센티브(수량×단가=합계, 분배비율, 승인상태)를 한 행으로 표현하는 급여 입력 원천 시트다.
- 좌→우 13컬럼이며, fixed_incentives(unitCount·unitPrice·totalAmount·splitRatio·category·incentiveType·sessionId 등)를 근거로 한다.
- 승인상태 컬럼은 HBTM01 결재 결과를 소비하며, 값은 고정인센티브 calculator(17 output keys) 원천이다.
- 인센티브 taxonomy 결정(콸): HBTM 인센티브 카테고리 ↔ fixed_incentives category/incentiveType ↔ incentive_preset_categories/incentive_presets 정렬 = cross-app OQ ([[POL_인센티브taxonomy]]).
- 시트는 급여 작업공간이며, 승인 인센티브 합계가 확정 시에만 allowance_records로 정본화된다 ([[POL_급여정본경계]] — 시트=작업공간 vs 정본=commit 경계). 커밋 산출 record는 item-code FK가 아니라
targetSheetSlug+targetColumnKey페어로 급여대장 집계 컬럼에 앵커된다 (2026-06-19 모델, migration 1816 — TC 확정: 10:10.4). - 공통 우측 컬럼군(재계산 diff + eCount)은 **[[HBHR203_재계산 diff 뷰]]**을 참조한다.
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 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 크로스체크 확정분 반영 (🟡) |
| 2026-07-21 | 카나 | PM | 🔴 정정: record 타깃 페어 모델(item-code FK 폐기) (TC 정본, 콸 승인) |
Data I/O
Server → Client
| 변수 | DB 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
${sheet.rows} | 세션(sessionId) 단위 인센티브 행 (fixed_incentives[], year·month·employeeId) | 0건 시 빈 그리드 | sessionId 단위 |
${row.unitPrice} | fixed_incentives.unitPrice / incentive_presets.unitPrice | 미바인딩 시 공란 | 단가 |
${row.totalAmount} | fixed_incentives.totalAmount (= unitCount×unitPrice) | 미산출 시 공란 | 합계 |
${row.status} | fixed_incentives.status (default pending) — enum = pending·approved(·paid) | 기본 pending | HBTM 소비 · 집계 게이트 approved 이상 · (TC 확정: 10:10.4 incentive status gate) |
${row.category} | fixed_incentives.category (default other) / incentiveType | 기본 other | taxonomy 정렬 대상 |
Calculator 연동
- 컬럼(ƒ) ↔ 고정인센티브 calculator(17 output keys): 수량·단가·분배비율 기반 직원별 인센티브 지급액 산출 (17키 세부 = TBU).
원천 흐름
- 승인상태 소비 (HBTM01): HBTM01 인센티브(치료 인센티브 등록/결재) 처리 결과 = fixed_incentives.status 소비. status enum = pending·approved(·paid), 승인 procedure
fixedIncentive.approve(ids[])(PENDING→approved). 집계 게이트 = approved 이상만 집계, PENDING 제외 (computed = total_amount). (TC 확정: 10:10.4 incentive status gate / 02:2.5 approve) - preset 원천: incentive_preset_categories(applicableTeams·isAttendanceVerifiable) → incentive_presets(unitPrice·categoryId)가 구분/인센티브/단가 바인딩 원천.
화면 플로우 (Mermaid)
컬럼 사양표 (13컬럼, 좌→우 — 기본 템플릿 기준)
컬럼 순서·명칭은 기본 템플릿 기준이며, 시트별 실데이터는 사용자 컬럼 편집으로 변형될 수 있다. 내부 fieldKey 11종: workDate / employeeNumber / employeeName / category / incentiveType / unitCount / unitPrice / totalAmount / splitRatio / status / notes.
| # | 컬럼 | 타입 | 설명 (용도·형식) | 연관 (ERD/calculator/타 앱) | 비고 |
|---|---|---|---|---|---|
| 1 | # | Index | • 행 순번 (read-only) | sheet_rows.sortOrder | read-only |
| 2 | 근무일 | DatePicker | • 인센티브 발생일 (YYYY-MM-DD) | fixed_incentives.workDate / fieldKey=workDate | — |
| 3 | 사번 | Text (system) | • 직원 사번 (read-only 시스템 컬럼) | employees.employeeNumber / fieldKey=employeeNumber | 시스템 컬럼 |
| 4 | 성명 | Text (system) | • 직원 성명 (read-only 시스템 컬럼) | employees.name / fieldKey=employeeName | 시스템 컬럼 |
| 5 | 구분 | Badge/Dropdown | • 인센티브 구분, taxonomy 정렬 대상 • 선택 시: fixed_incentives.category 세팅 | fixed_incentives.category (fixed_incentives_category_enum, default other) / fieldKey=category | 콸 taxonomy OQ |
| 6 | 인센티브 | Text/Dropdown | • 인센티브 항목(preset 바인딩) • 선택 시: preset 바인딩(단가 자동), incentiveType 세팅 | fixed_incentives.incentiveType / fieldKey=incentiveType · incentive_presets.name | preset 바인딩 |
| 7 | 수량 | Number | • 인센티브 수량. 정수(건) • 입력 시: 합계(수량×단가) 재산출 | fixed_incentives.unitCount (default 1) / fieldKey=unitCount | 합계 입력 |
| 8 | 단가 | Number/Output | • 단위 단가 (원). preset 단가 바인딩 가능 | fixed_incentives.unitPrice / fieldKey=unitPrice · incentive_presets.unitPrice | — |
| 9 | 합계 | Output/Number | • 수량×단가 (원). 계산 컬럼 | fixed_incentives.totalAmount / fieldKey=totalAmount | 계산 컬럼 |
| 10 | 분배비율 | Number/Output | • 다인 분배 비율 (%). 직원 간 분배 | fixed_incentives.splitRatio (numeric(5,2)) / fieldKey=splitRatio | nullable |
| 11 | 승인상태 | Badge | • HBTM 결재 결과 소비. enum = pending·approved(·paid), 승인 = fixedIncentive.approve(ids[])(PENDING→approved). 집계 게이트 = approved 이상만 급여 반영, PENDING 제외 | fixed_incentives.status (default pending) / fieldKey=status ← HBTM01 인센티브 | (TC 확정: 10:10.4) |
| 12 | 메모 | Text | • 인센티브 비고 • 입력 시: fixed_incentives.notes 저장. 셀 메모(💬)는 payroll_cell_memos 별도 | fixed_incentives.notes / fieldKey=notes · payroll_cell_memos | — |
| 13 | (합계행) | Aggregate | • 하단 ∑ 합계 + "n명" 카운트 (read-only) | [[HBHR100_시트 워크스페이스 (공통 Shell)]] 합계행 공통 | read-only |
census 원문: # / 근무일 / 사번 / 성명 / 구분 / 인센티브 / 수량 / 단가 / 합계 / 분배비율 / 승인상태 / 메모 (+ 합계행). 공통 우측 컬럼군은 [[HBHR203_재계산 diff 뷰]] 참조.
연동·플로우
- taxonomy 정렬 OQ (콸 결정): HBTM01 인센티브 승인/지급 카테고리 ↔ Module Manager fixed_incentive output keys ↔ incentive_preset_categories/incentive_presets ↔ MD live enum 매핑 확정 필요.
- preset 원천: incentive_preset_categories(applicableTeams·isAttendanceVerifiable) → incentive_presets(unitPrice·categoryId)가 구분/인센티브/단가 바인딩 원천.
- 근태 검증: incentive_preset_categories.isAttendanceVerifiable=true 항목은 근태([[HBHR230_출퇴근 내역 시트]]) 대조 검증 대상(추정).
- 확정 경계: 승인 인센티브 합계 → 전체 확정([[HBHR201_전체 확정 (commit)]]) 시 allowance_records(sourceType=incentive)로 정본화.
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
CASE01 [승인상태 소비] | HBTM01 결재 결과 도착 | fixed_incentives.status 표시 (pending·approved·paid), approved 이상만 집계 | 편집 불가 여부 OQ |
CASE02 [자동 집계] | 수량×단가=합계 산출 | 합계 컬럼 read-only 계산값 | calculator 산출 |
CASE03 [preset 바인딩] | 구분/인센티브 선택 | incentive_presets 단가 자동 바인딩 | preset 원천 |
Open Question
- 인센티브 taxonomy 정렬(콸): fixed_incentives.category / incentiveType ↔ incentive_preset_categories 코드 ↔ HBTM live enum 확정 — 콸 promote 대기. TBU.
- 고정인센티브 calculator 17 output key 세부 및 컬럼 매핑. TBU.
- fixed_incentives_status_enum = pending·approved(·paid) 확정 (집계 게이트 approved 이상). 시트 커밋 산출 record는 status=approved로 확정. category_enum 전체 값 = TBU. (TC 확정: 10:10.4 / 03:3.2.5)
- 분배비율 산정 규칙 및 다인 세션(sessionId) 행 구조. TBU.
- 승인상태가 이 시트에서 편집 불가(HBTM 전용)인지 확정. TBU.