Skip to content

인센티브 등록과 치료 세션 ​

인센티브는 직원의 실적 등록, 팀장의 월별 확인, 치료 세션의 여러 참여자 배분을 거쳐 급여 원천으로 사용됩니다. **고정 인센티브 기록(FixedIncentive)**과 **치료 세션 신청(TreatmentSessionRequest)**은 별도 기록입니다. 세션 신청을 내는 것만으로 직원별 정산 기록이 생기지 않습니다.

인센티브의 등록·승인·급여 반영 흐름을 설명합니다. 실행한 조작과 미확인 항목은 아래 영상 기록에서 구분합니다.

역할·진입·지원 작업 ​

경로작업전제/범위
직원 앱 결재 → 내 신청·결재 현황의 인센티브 묶음당월 목록·상태(검토 중·예정·반려·전체)별 건수 확인본인 실적. 최신 조회 최대 200건
직원 앱 결재 → 신청·결재 → 인센티브 등록오늘 항목/건수 등록조직 자기 등록 사용 설정 ON, 본인 CREATE 권한, 역할/카테고리 프리셋
직원 앱 결재 → 신청·결재 → 주말 당직 치료 세션 신청세션 상신·상태/사유 확인·대기 취소본인을 포함한 당직 인원과 유효한 청구 내역
내부 결재 기본 주소 뒤 /incentives 직접 경로연월 조회·출근 비교·선택 승인·세션 승인/반려메뉴에서 숨겨진 일반 인센티브 경로. 관리 팀 범위, 관련 승인 권한
내부 결재 상단 인센티브 (/treatment)치료 종류별 직접 등록·월 합계·선택/일괄 승인조직 치료 항목 설정과 관리 팀 직원
관리자/HR 시트의 인센티브·치료 일일 정산원천 편집·월말 정정·마감해당 시트의 편집/마감 상태와 권한. 급여 시트 참조

기간 마감된 인센티브 시트는 생성·수정·승인 등 관련 쓰기를 차단합니다. 직원 자기 등록은 조직 스위치를 서버에서도 검사하며 기본 OFF입니다. 관리자·팀장 경로는 직원 당일 등록 마감과 별도이지만 시트 쓰기 잠금은 적용됩니다.

직원이 오늘 실적 등록하기 ​

  1. 결재 → 신청·결재를 엽니다. 자기 등록 설정 조회가 끝나 허용된 경우에만 결재 신청 목록에 인센티브 등록이 나타납니다. 조회 실패도 숨김으로 처리하므로 항목이 없으면 조직 설정과 조회 상태를 확인합니다.
  2. 인센티브 등록에서 카테고리별 항목을 고릅니다. 조직의 프리셋이 이름·단가·카테고리를 공급하고 최근 프리셋 수정일을 단가 기준으로 표시합니다. 직원이 여기서 새 단가를 입력하는 기능은 아닙니다.
  3. 건수에 양의 정수를 입력하고 선택 메모를 적습니다. 예: 항목 이브닝, 2건. 합계는 건수×단가로 표시됩니다. 서버는 건수 정수·금액 0 이상·유효한 범주를 검증합니다.
  4. 등록을 누릅니다. 근무일과 연월은 조회 중인 월과 관계없이 조직 시간대의 오늘로 정합니다. 과거 실적을 날짜 선택으로 소급 등록하는 UI는 없습니다.
  5. 성공하면 인센티브를 등록했어요. 토스트와 함께 창을 닫고 본인 목록을 갱신합니다. 제출 중에는 재제출을 막습니다. 실패하면 오류 토스트를 보고 같은 입력을 수정해 다시 시도합니다.

서버는 SELF 권한의 날짜 있는 등록에 당일 마감을 적용합니다. 조직 상수와 팀별 유예시간 중 허용되는 값을 사용하며, 지난 건은 관리자 정정이 필요합니다. 화면은 오늘만 보내므로 유예가 있다고 직원 폼에 과거 날짜 입력이 추가되지는 않습니다.

직원 인센티브 목록은 내 신청·결재 현황의 「검토 중 / 예정 / 반려 / 전체」 칸으로 거르며, 인센티브 묶음에 당월 건과 주말 당직 세션 신청이 함께 나옵니다. 빈 목록은 실제 없음과 조회 실패가 같아 보일 수 있습니다. 현재 통합 결재 카드에는 일반 인센티브 수정·삭제 CTA가 없으므로 프리셋 변경/과거 건 정정은 관리 경로를 사용합니다. 별도 컴포넌트나 SDK에 삭제 함수가 있다는 사실을 현재 직원 메뉴의 삭제 기능으로 설명하지 않습니다.

직원 주말 당직 치료 세션 신청 ​

  1. 결재 → 신청·결재 맨 아래 주말 당직 치료 세션 신청을 누릅니다. 날짜는 조직의 오늘, 치료 내역 한 행, 당직 인원에 본인이 기본 선택됩니다.
  2. 근무일을 고릅니다. 날짜를 바꾸면 해당 날짜 출근기록이 있는 같은 팀 동료를 다시 조회해 당직 인원을 채웁니다. 본인은 항상 포함되어 해제할 수 없습니다. 자동 선택 결과를 확인한 뒤 동료를 추가/제외합니다. 출근기록이 전혀 없으면 기존 선택을 유지하는 경로가 있습니다.
  3. 치료 항목마다 항목명 / 단가 / 건수를 입력합니다. 이름과 양의 건수가 있는 행만 제출 대상으로 묶습니다. 건수는 정수, 단가는 0 이상이며 서버가 청구 합계 0 이하를 거부합니다. 추가/삭제로 행을 관리하되 최소 한 행은 유지합니다.
  4. 선택 메모(서버 최대 1,000자)를 적습니다. 예: 물리치료 30,000원×3건, 당직 2명. 요청 기본 유형은 주말 당직 치료, 병원 비율 기본 0.5입니다. 직원 폼에서 이 비율을 편집하는 절차는 없습니다.
  5. 신청하면 승인 후 정산에 반영돼요. 결과와 함께 창이 닫힙니다. 내 신청·결재 현황의 인센티브 묶음에서 유형·근무일과 상태 라벨을 확인합니다. 세션 신청 카드는 상세 화면이 없고 인원·건수·반려 사유를 표시하지 않으므로, 반려 사유는 알림이나 승인자에게 확인합니다.
  6. 대기 건의 신청 취소를 누르고 확인하면 취소됩니다. 확인창 취소는 유지합니다. 이미 승인·반려된 건은 대기 취소가 불가하며, 기존 신청의 내용을 수정하는 CTA는 없습니다. 필요한 정정은 승인자와 원본 상태를 확인한 뒤 새 신청/관리자 정정을 사용합니다.

세션 날짜 자동 선택은 출근자료를 참고하는 편의 기능이며, 참여 사실이 검증됐다는 뜻은 아닙니다. 출퇴근과의 관계는 실제 당직 명단을 확인할 때 사용합니다.

팀장 확인·승인·반려 ​

  1. 내부 결재 /incentives 직접 경로에서 연월과 관리 팀을 고릅니다. 이 일반 인센티브 화면은 현재 상단 탭 목록에서 숨겨져 있으며 상단 인센티브는 /treatment로 이동합니다. 출근 확인 가능 목록은 출근일수와 인센티브 건수를 비교하고 초과 표시를 보여 줍니다. 이 비교는 주어진 단위의 교차 확인이지 자동 승인 조건이 아닙니다.
  2. 대기 기록을 직원별/항목별로 선택하고 승인합니다. 선택 건수와 월 합계를 확인합니다. 일반 실적의 개별/일괄 승인과 항목 합산 승인 API의 집계 범위는 다르므로 급여 시트의 항목별 정산 경로를 함께 확인합니다.
  3. 같은 탭의 주말 당직 세션 신청에서 신청자·근무일·인원·항목 건수·청구 합계·메모를 읽습니다. 승인 시 확인을 거쳐 서버가 세션과 참여자별 실적을 만든 뒤 신청을 승인으로 변경합니다.
  4. 반려는 사유를 필수로 입력합니다(서버 최대 500자). 대기 상태만 승인/반려할 수 있고, 이미 다른 담당자가 처리했으면 서버 오류 후 재조회합니다.
  5. 성공하면 목록과 대시보드를 새로 읽습니다. 요청에 sessionId가 연결되어 정산 원본을 추적할 수 있습니다. 생성된 금액 기록의 승인·시트 마감·급여 계산은 이어서 확인해야 하며 세션 승인 배지 하나를 명세서 발송 완료로 해석하지 않습니다.

현재 일반 추가 기능의 제한: 직접 경로 /incentives의 + 추가는 표시되지만, 폼/호출이 서버 필수 category·totalAmount를 보내지 않습니다. 직원·연월·유형·직위·메모를 채워 등록해도 현재 코드상 스키마 거부로 등록 실패가 발생하는 경로입니다. 입력 실수로 오인해 반복하지 말고 관리자/HR 시트 정정을 사용합니다. 이 문서 작업에서는 제품 코드를 수정하지 않았습니다.

팀장이 치료 실적 직접 등록하기 ​

  1. 상단 인센티브(/treatment)를 열고 조회 연월을 맞춥니다. 치료 항목이 없으면 HR 시스템의 수당/인센티브 설정에서 치료 항목을 추가해주세요. 안내가 표시됩니다. 먼저 마스터를 준비합니다.
  2. 치료 유형을 선택하고 날짜, 직원 검색으로 참여자(이 화면은 최대 2명)를 고릅니다. 선택 칩으로 해제할 수 있습니다.
  3. 치료 항목별 건수 입력에서 건수를 입력하거나 +/-로 조절합니다. 등록일, 참여자 1명 이상, 양의 청구 합계가 있어야 등록할 수 있습니다. 항목의 단가·병원/치료사 몫은 조직 치료 설정에서 공급됩니다.
  4. 총 청구금액·병원 몫·치료사 몫·등록 인원을 대조하고 선택 메모를 입력한 뒤 치료 인센티브 등록을 누릅니다.
  5. 서버 upsertTreatmentSession 한 경로가 세션 ID와 참여자별 FixedIncentive를 생성합니다. 성공하면 폼을 비우고 치료 내역·대시보드를 갱신합니다. 실패 시 입력과 오류를 확인하고 재시도합니다.
  6. 월간/종류별 상세에서 합계와 대기 건을 확인하고 일괄 승인합니다. 시트에서 같은 세션을 수정하면 같은 서비스가 참여자별 행을 생성/수정/제거하므로 양쪽에 별도 원본을 중복 입력하지 않습니다.

치료사 몫의 원화 배분은 합계를 보존합니다. 기본은 각자 몫을 정수로 나눈 뒤 남은 1원을 입력 명단 앞 순서부터 지급합니다. 조직 설정이 hospital이면 잔여를 병원 몫에 더합니다. 예: 치료사 총액 100,000원을 3명에게 나누면 기본 33,334/33,333/33,333원입니다. 이 예는 분배 계산 예시이며 팀 관리자 직접 등록 화면의 최대 인원이 3명이라는 뜻이 아닙니다.

근거·실패 경계·남은 자료 ​

날짜가 없는 기존 실적의 표시 제한 ​

촬영용 seed의 월 단위 기존 실적에서 workDate가 비어 있을 때 직원 인센티브 카드가 Invalid Date를 표시하는 것을 확인했습니다. 카드의 formatDate(rec.workDate) 호출에는 빈 날짜 표시 처리가 없습니다. 이번 문서 작업에서 제품 코드는 수정하지 않았습니다. 촬영용 격리 DB의 해당 예제 6건에만 월의 8일을 실적일로 지정했으며, 이 날짜는 운영 자료나 과거 실적일 복원 근거가 아닙니다. 운영 자료의 실제 날짜를 임의로 채우는 절차로 안내하지 않습니다. 월만 있는 기록과 일 단위 실적의 표시 규칙을 정한 뒤 UI와 관련 테스트를 보완해야 합니다.

직원 기능 영상 촬영 ​

인센티브 조회는 결재 → 인센티브에서 당월 실적 2건의 날짜·상태·건수를 확인하고 승인 필터의 빈 결과와 전체 목록 복귀를 촬영했습니다. 일반 인센티브의 상태 필터는 위쪽 주말 당직 세션 목록에 적용되지 않습니다. 날짜가 비어 있던 예제 자료의 변경 범위는 표시 제한에 기록했습니다.

주말 당직 세션 신청은 근무일 2026-09-13, 게이트 12,000원×10건과 FES 8,000원×2건, 본인 포함 3명을 선택했습니다. 청구 합계 136,000원을 확인해 신청하고 목록의 대기중·3명·12건을 확인했습니다. 현재 회차에는 승인·세션 생성·인당 배분과 시트 반영은 실행하지 않았습니다. 이름·항목·금액은 격리 DB의 예제 자료입니다.

직원 직접 등록 영상 ​

병원 설정에서 자기 등록을 허용한 뒤 직원 직접 등록으로 이어지는 영상을 추가했습니다. 직원은 결재 → 새 신청 → 인센티브 등록 → 항목 선택 → 오늘 날짜 확인 → 건수·메모 입력 → 예상 금액 확인 → 등록하기 → 인센티브 내역 확인 순서로 사용합니다.

예제 조직에 촬영용 프리셋 DOCS_EDUCATION(영상 실습 교육지원, 단가 12,000원) 하나를 준비했습니다. 2건 입력 시 예상 24,000원을 확인했고 저장 후 같은 이름·9월 11일·2건·대기 상태를 확인했습니다. 현재 목록에는 금액이 표시되지 않습니다. 운영 병원은 실제 단가·항목·대상 팀을 먼저 설정해야 하며, 프리셋이 없으면 선택지가 없어 등록할 수 없습니다.

프리셋의 카테고리와 적용 대상(팀)은 인센티브 프리셋 시트에서 정합니다(2026-10, 마이그레이션 1975). 「카테고리」 열은 조직의 카테고리 목록에서 하나를 고르는 칸이고, 맨 아래 「새 카테고리 만들기」로 새 이름을 넣을 수 있습니다. 「적용 대상(팀)」 열은 팀 목록에서 여러 팀을 고르는 칸이며, 같은 이름의 팀은 「상위 팀 › 팀」으로 구분해 보입니다. 두 칸 모두 ⚙️ 마스터에 적용을 눌러야 원본에 기록되고, 새 카테고리는 그때 만들어집니다. 적용 대상은 프리셋이 아니라 카테고리에 저장되므로 같은 카테고리의 프리셋은 모두 같은 팀 목록을 가지며 프리셋마다 다른 팀을 지정할 수 없습니다. 팀을 나누려면 카테고리를 나눕니다. 비워 두면 전체 노출입니다.

근무일은 오늘 고정, 건수는 양수이며 지난 날짜 실적은 관리자에게 요청합니다. incentive.self_registration은 진입점과 서버 허용 조건, listPresets는 항목·단가와 직원 팀에 따른 범위, FixedIncentive는 등록 결과에 연결됩니다. 미리보기 합계와 실제 승인·분배·급여 지급을 구분합니다. 관리자 예제 계정의 직원 본인 화면에서 촬영했으며 다른 직종별 노출·당일 마감 경계·중복 입력 정책은 별도 검증 대상입니다.