HBTM230_인센티브 (치료 인센티브 등록)
(Hereby) 내부 결재 > 인센티브 (치료 인센티브 등록)
| 앱 | 내부 결재 (HBTM) |
| 대상 사용자 | 조건1 [TEAM_LEADER] / 조건2 [SUPER_ADMIN] |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_결재워크플로우]] |
| Status | review |
| Owner | 카나 (PM) |
개요
- 인센티브 탭(/team-manager/treatment)은 라이브 기준 치료 인센티브 등록 화면이다.
- 상단 등록 폼(기간·치료 유형·날짜·직원·항목별 건수·설명·등록) + 하단 월간 요약 / 상세 내역으로 구성된다.
- 등록은 TreatmentIncentiveRecord(추정)를 생성하는 mutation이며 "치료 인센티브 등록" 버튼으로 사람이 제출한다. 치료 유형은 프리셋 버튼 그룹이다.
- 직원 검색은 "(최대 2명)" 분배 대상 선택이며, 선택 인원은 HR 급여시트 인센티브 세션 분배비율(splitRatio, [[HBHR250_인센티브 세션 시트]])로 연동된다.
- 승인된 치료 인센티브는 HR 급여시트 인센티브 세션으로 반영된다(write-back 경로 TBU). 일반 인센티브 승인 큐의 위치는 OQ — 현재 이 탭은 치료 인센티브 등록만 확인된다.
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-10 | 카나 | PM | 라이브 기능 검토 반영 |
| 2026-07-13 | 카나 | PM | 버튼 행동 명세 보강 |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 + 확정 스타일 |
| 2026-07-21 | 카나 | PM | TC 크로스체크 확정분 반영 (🟡) |
Data I/O
Server → Client
| 변수 | 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
| $ | 조회 기간 (예 "2026년" / "6월") | 기본 현재 월 (추정) | 등록·요약 기준 월 |
| $ | IncentivePreset (추정) | - | 치료 유형 프리셋 4종 |
| $ | employees[] | - | 직원 검색 대상. 최대 2명 선택 |
| $ | 월간 요약·상세 내역 | "등록된 내역이 없습니다" / "내역이 없습니다" | Empty 문구 2종 |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 치료 인센티브 등록 | month, type, date, employees, itemCounts, note | sdk.teamManager.treatment.create() (추정) | treatment:write (추정) |
| 일반 인센티브 생성 | category(IncentiveCategory.OTHER), incentiveType, … | teamManager.createIncentive({…}) (TC 확정: 02:2.4) | treatment:write (추정) |
| 일반 인센티브 승인 | ids[] | fixedIncentive.approve(ids[]) (PENDING→approved) (TC 확정: 02:2.5) | treatment:write (추정) |
| 기간 선택 | month | sdk.teamManager.treatment.list() (추정, read-only) | treatment:read (추정) |
| 유형 필터 | presetType | (client-side 필터, 추정) | - |
외부 통합 (cross-app)
| 외부 시스템 | 데이터 | 방향 | 비고 |
|---|---|---|---|
| HR 급여시트 [[HBHR250_인센티브 세션 시트]] | 치료 인센티브 → 급여 인센티브 (선택 직원 splitRatio 분배) | TM → HR | write-back 경로 TBU |
화면 플로우
치료 인센티브 등록 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 노출 조건 | - | 조건1 [TEAM_LEADER] 이상 인증 세션 · "인센티브" 탭 클릭 시 /team-manager/treatment 진입 | 인증 세션 | 치료 인센티브 화면 |
| 01 | 초기 상태 | - | 등록 폼(기간·유형·날짜·직원·건수·설명·등록) 상단 + 월간 요약/상세 내역 하단 렌더 | 90 / 100 | |
| 10 | 기간 선택 | Dropdown | • 등록·요약 기준 월을 선택하는 기능 원문 "2026년" / "6월" • 선택 시: 요약·상세 내역 기준 월 재조회 | period · 90 요약 | |
| 20 | 치료 유형 | Button group | • 등록 대상 치료 유형을 지정하는 프리셋 카드 원문 4종 ",,," / "일요일 도수치료" / "토/일 FES·기구치료 (PT)" / "토/일 작업치료 (OT)" (첫 항목 ",,,"는 더미로 보임) • 클릭 시: 해당 유형 선택(등록 대상 지정) | IncentivePreset | ",,," 더미 정리 = OQ |
| 30 | 날짜 | DatePicker | • 치료 실시일을 지정하는 기능 원문 "날짜" • 선택 시: 등록 대상 날짜 설정 | date | 토/일 가드 여부 TBU |
| 40 | 직원 검색 | Search/MultiSelect | • 인센티브 분배 대상 직원을 선택하는 기능 원문 "직원 검색 (최대 2명)". 선택 인원은 HR 급여시트 인센티브 세션 splitRatio로 연동 • 입력 시: 후보 목록 필터 - STEP1 검색어 입력 → 후보 필터 - STEP2 항목 선택 → 대상 추가(최대 2명) | employees · [[HBHR250_인센티브 세션 시트]] | 최대 2명 · splitRatio |
| 50 | 치료 항목별 건수 | Table/Input | • 치료 항목별 건수를 입력하는 표 컬럼: 항목 / 치료형태 / 건수 • 입력 시: 70 총 건수 집계 갱신 | TreatmentItemCount | |
| 60 | 설명 | Input Box | • 선택 입력 메모 원문 "설명 (선택사항)" • 입력 시: note 값 반영 | note | 선택사항 |
| 70 | 총 건수 | Output | • 입력된 항목별 건수를 합산해 표시하는 출력 원문 "총 건수 0건" • 표시 전용 (50 입력 시 갱신) | aggregate | |
| 80 | 등록 | Button | • 입력 폼을 제출해 치료 인센티브 record를 생성하는 기능. 사람 제출 필요 • 클릭 시: 즉시 실행(컨펌 없음), 성공: "등록 중..." 상태 표시 후 record 생성 - STEP1 TreatmentIncentiveRecord 생성(추정) - STEP2 월간 요약·상세 내역 갱신 | mutation · 90 / 100 | 사람 확정 |
| 90 | 월간 요약 | List | • 선택 월의 치료 인센티브 집계 요약 원문 "월간 요약 (2026년 6월)" • 표시 전용 - CASE01 [내역 없음]: Empty "등록된 내역이 없습니다" | monthly_summary | |
| 100 | 상세 내역 | List/Filter | • 등록 내역을 치료 유형별로 필터·표시하는 목록. 필터 카운트 ",,, (0)" / "일요일 도수치료 (0)" / "토/일 FES·기구치료 (PT) (0)" / "토/일 작업치료 (OT) (0)" • 유형 필터 클릭 시: 목록 필터 적용 - CASE01 [내역 없음]: Empty "내역이 없습니다" | TreatmentIncentiveRecord |
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
CASE01 [등록] | 폼 작성 → "치료 인센티브 등록" | 치료 인센티브 record 생성 | 사람 제출, mutation |
CASE02 [요약 조회] | 기간 선택 | 월간 요약 / 상세 내역 노출 | read-only |
CASE03 [내역 없음] | 등록 내역 0건 | "등록된 내역이 없습니다" / "내역이 없습니다" | Empty 상태 |
조건1 [TEAM_LEADER] | 인센티브 탭 진입 | 치료 인센티브 등록 화면 노출 | token 내부 key TBU |
Open Question
일반 인센티브 승인 큐 위치→ 팀장 일반 인센티브 생성teamManager.createIncentive({category:IncentiveCategory.OTHER, incentiveType, …})+ 승인fixedIncentive.approve(ids[])(PENDING→approved) 확정. UI 큐 화면 위치 = TBU. (TC 확정: 02:2.4/2.5)- 치료 인센티브 → HR 급여시트 인센티브 폴더/PayrollSheet write-back 정확한 경로 = TBU
- 치료 인센티브 승인 상태(등록 후 승인 단계) 존재 여부 = TBU
- 인센티브 taxonomy 정렬: HBTM 카테고리 ↔ HBMM fixed_incentive output keys ↔ HBMD live enum 매핑 = TBU
- 날짜 토/일 가드 및 ",,," 더미 프리셋 정리 = TBU