시행일을 정한 계약·시트 변경
기능 마스터 · 급여 시트 · 직원·근로계약 · 시트 AI
역할·진입·조건
| 항목 | 내용 |
|---|---|
| 사용자 | 조직 전체 급여 조회 권한을 가진 담당자. 생성·승인·실행에는 대상 직원·계약·시트의 수정 권한도 필요합니다. |
| 계약 변경 | 계약급여내역·직원 마스터·급여대장의 직원과 연결된 단일 행에서 우클릭 「계약 시행일 변경…」 |
| 셀 변경 | 시트 키가 있는 시트의 데이터 칸에서 우클릭 「예약 변경…」 |
| 전체 관리 | 관리자 「급여 관리 > 예약된 변경」. 종류·상태·시행월·소유자·직원/사번/내용으로 범위를 줄입니다. |
| 실행 기준 | 시행일에 예약 소유자의 현재 권한으로 다시 검사합니다. 등록 당시 권한만으로 실행을 보장하지 않습니다. |
근로계약을 특정 일부터 바꾸기
- 직원을 확인하고 단일 행의 「계약 시행일 변경…」을 엽니다. 날짜 기준 시트나 여러 행 선택은 지원 대상이 아닙니다.
- 시행일을 현재 계약 시작일보다 뒤로 정합니다. 오늘 또는 과거의 유효한 시행일이면 즉시 적용될 수 있으므로 예약 버튼을 누르기 전에 날짜를 확인합니다.
- 바꿀 값만 입력합니다. 계약 기본급·호봉인상분·장기근속 단가·통상시급은 0 이상의 숫자이고, 계약유형·임금유형을 선택할 수 있습니다. 빈칸은 기존 값 유지이며 최소 한 가지 변경이 있어야 합니다. 메모는 선택이며 200자까지입니다.
- 「예약」을 누르고 목록의 시행일·내용·소유자·상태를 확인합니다. 미래 시행일이면 대기하고, 적용되면 옛 계약은 시행일 전날까지 유지되며 새 계약이 시행일부터 시작합니다. 기존 계약 자체를 정정하는 셀 편집과 구분합니다.
- 창을 다시 열어 예약을 확인합니다. 입력 후 닫으면 저장 여부 확인을 따르며, 창을 닫는 것과 이미 저장된 예약을 취소하는 것은 다릅니다.
호봉 배정을 바꾸는 입력은 이 창에 없습니다. 호봉이 배정된 계약은 시행 시점의 호봉표 값이 기본급·호봉인상분보다 우선합니다. 겹치는 계약·대상 부재·소유자 권한 변경은 실패 사유를 확인하고 보완한 뒤 다시 실행합니다. 적용된 계약을 예약 취소로 원복하지 않습니다.
직원 추가의 「수습 종료 후」에 종료일과 이후 조건을 넣으면 종료일 다음 날부터의 계약 변경을 함께 예약합니다. 기존 계약과 미래 조건을 함께 확인하고, 직원 등록 결과와 예약 목록을 각각 확인합니다.
시트 값을 시행월부터 바꾸기
- 대상 칸의 「예약 변경…」을 열어 시트·행·열을 확인합니다. 기본급 등 계약에서 읽는 값은 계약 변경 절차를 사용합니다.
- 시행월·새 값·선택 메모를 입력하고 「예약」합니다. 월별 시트는 같은 시트 키와 대상 직원 또는 행을 기준으로 찾아 적용합니다. 대상 월의 시트가 아직 없으면 생성될 때까지 기다립니다.
- 조직 설정이 「확인 뒤 적용」이면 예약이 곧바로 셀을 덮지 않습니다. 관리자 「예약된 변경」이나 셀 예약 목록의 「승인」, 시트 「히스토리 > 변경 세트」의 「적용」에서 변경 전후를 확인하고 반영합니다.
- 예약 뒤 누군가 그 칸을 수정했다면 자동 적용을 멈추고 확인을 요청합니다. 「취소」와 「적용」을 구분하고 반영 뒤 실제 칸과 이력을 다시 확인합니다.
- 「이전 월에서 가져오기」의 「대기 예약 N건」은 새 월 시트를 만들 때 확인할 예약입니다. 값 이월과 예약 적용은 별개이므로 생성 결과를 대조합니다.
AI가 만든 예약 제안도 확인을 거칩니다. 답변이나 제안 생성만으로 예약·셀 변경이 완료됐다고 보지 않습니다.
검사·실행·취소·소유자 이관
| 작업 | 조작과 확인 |
|---|---|
| 검사 | 대상 행의 「검사」로 지금 실행 가능한지와 예상 결과를 확인합니다. 실제 값을 쓰지 않으며 이후 상황이 바뀌면 실행 결과도 달라질 수 있습니다. |
| 승인 | 확인 대기 제안을 예약으로 바꿉니다. 이미 변경 내역이 준비된 셀 예약은 승인 시 바로 적용될 수 있습니다. |
| 지금 실행·다시 실행 | 날짜와 대상·실패 사유를 확인한 뒤 누릅니다. 실행 후 상태와 실제 계약/셀을 다시 조회합니다. 같은 예약을 새로 만드는 것으로 재시도를 대신하지 않습니다. |
| 취소 | 아직 실행되지 않은 예약의 취소 확인을 완료합니다. 이미 적용된 업무를 되돌리는 버튼이 아닙니다. |
| 소유자 이관 | 직원 이름·사번으로 새 소유자를 찾아 선택합니다. 새 소유자의 권한 검사에 통과해야 저장되며 실패 시 기존 소유자가 유지됩니다. |
| 새로고침 | 처리 후 상태를 다시 읽습니다. 실패·확인 대기·적용·건너뜀·취소 상태와 사유를 구분합니다. |
「이 달에 시행되는 원천 변경」은 조직 기준값·상시 시트 버전·고정 수당 시작/종료를 함께 보는 읽기 전용 목록입니다. 이 목록에서 원천 값을 수정하지 않습니다. 인사 처리·연차 기준 전환·근로시간 자동 마감·연차 촉진·신규 직원 행 같은 기존 자동 작업은 실행 결과를 기록하며, 수동 재실행 가능한 계약·셀 예약과 구분합니다.
구현·유지보수와 검증
입력은 packages/core/src/schemas/scheduled-action.schema.ts, 관리 화면은 apps/admin/src/scheduled-changes.ts, 계약·셀 창은 apps/hr-system/src/sheets/workbook/scheduled-contract.ts와 scheduled-cell.ts입니다. packages/api/src/routers/scheduled-action.router.ts와 실행 서비스가 조직·소유자·대상을 다시 검사합니다. 계약 기간 분할은 인사 기록에, 셀 적용·되돌리기는 시트 변경 이력에 연결됩니다.
PR #960·#962·#965·#974·#976·#980·#983·#985·#989·#1021의 병합 코드·입력 스키마·화면을 대조했습니다. 실제 시행일 도래, 작업 실행기의 주기 실행, 알림 발송, 권한 회수·이관 실패, 여러 계약의 금액 비교는 별도 실행 확인이 필요합니다. 새 영상은 최종 업로드 주소 확인 전까지 로컬로 보관합니다.