SimpleHR project
fix-task-0626 (26년 06월 26일 수정사항)
sourceedited by Cairni · 방금 · AIv1
개요
2026년 6월 26일 기준 수정사항 로그. 완료(✅)·미완료(⬜) 항목이 혼재하며, 우선 수정·출퇴근·급여관리·근로정책 급여 연동·배포 전 데이터 보정·사용자 교대일정 API 연동 등 총 6개 섹션으로 구성된다.
섹션별 핵심 내용
1. 우선 수정
| 항목 | 상태 | 비고 |
|---|---|---|
| 회계·급여 정책 비즈니스 로직 연동 | ⬜ 미완 | UI/CRUD는 완비, 대부분 로직 미연동 (fiscal_year_start_month 등) |
| 근로계약서 CONTRACT_FULL_TIME 표시 | ✅ | 레거시 enum → "정규직" 매핑 추가 (백엔드 + 프론트 5파일) |
| 직원 서류 보관함 구현 확인 | ✅ | 7가지 문서유형, 만료일 추적, 관리자·사용자 UI 모두 완료 |
| 급여 기초 음수 차단 | ✅ | 드로어·스프레드시트 모달에 min=0 + Math.max(0) 적용 |
| 중소기업 감면 구현 | ✅(부분) | 대상·감면율 end-to-end 동작, 감면기간 UI·연간 한도 200만원 누적 체크 미구현 |
| 직원 입사일·계약일 수정 불가 버그 | ✅ | 계약 시작일·만료일 드로어 수정 가능, 캐시 동기화 추가 |
회계·급여 정책 미연동 필드:fiscal_year_start_month,salary_calc_start_day/end_day,holiday_rules— 저장만 되고 급여·근태 로직에 미반영. 부서별 정책 분기(DEPARTMENT 모드)도 미구현.
2. 출퇴근
- 출근 요청 미승인 시 다음 날 출근 버튼 차단 버그 ✅ 수정
원인: myCheckinRequests("PENDING") 날짜 필터 없이 전체 반환 → work_date 파라미터 추가, 오늘 날짜만 조회. PC·모바일 동일 적용.
3. 사직서 관련 처리
- ⬜ 사직서 제출 → 관리자 승인 → 퇴사 처리 흐름 미정의, 구현 필요
4. 급여관리
| 항목 | 상태 |
|---|---|
| 급여기초 스프레드시트 모달 필터(이름/사번·부서·미설정) | ✅ |
급여항목 관리 UI(/admin/payroll/items) 신규 생성 | ✅ |
| PayItem soft delete + 삭제된 코드 재사용 partial unique index | ✅ |
PayItem.is_standard_wage 변경 시 EmployeePayDetail 자동 동기화 | ✅ |
| 급여명세서 상태변경·일괄처리·삭제 후 목록 미갱신 수정 | ✅ |
| 연차수당(PAY_ANNUAL_LEAVE) 지급 시점 정책 | ⬜ 현재 비활성, 재구현 필요 |
| 4대보험 요율 관리자 설정 (현재 하드코딩) | ⬜ DB 기반 전환 필요 |
| 급여대장 엑셀 다운로드 / 나야넷 양식 다운로드 | ⬜ 미구현 |
5. 근로정책 급여 연동
| 항목 | 상태 |
|---|---|
| 모바일 대시보드에 연장근로 바로가기 버튼 추가 | ✅ |
대체휴일/대체근무(substitution_enabled) SubstitutionLeave 모델 | ✅ (수동 테스트 필요) |
근무일 변경 기준시간(shift_day_boundary) 적용 + 야간 배치 | ✅ |
출장 일정(business_trip_enabled) BusinessTripRequest 모델·API | ✅ (수동 테스트 필요) |
법정근로 내 연장 구분(legal_overtime_split) | ✅ |
탄력근로 시작 날짜(flexible_start_date) 컬럼·스키마 반영 | ✅ (수동 테스트 필요) |
shift_day_boundaryvsnight_end_time역할 분리: boundary는 출근work_date배정·배치 스케줄러 실행 시각(운영 기준),night_end_time은 야간수당 계산 구간 22:00~06:00(법정·급여 전용).
6. 배포 전 데이터 보정 (계약일 이중저장 불일치)
Employee.contract_end_date와 EmployeeContract.end_date가 이중 저장되어 불일치 발생. 배포 직전 4단계 절차 필요:
- 1.불일치 현황 SQL 재조회
- 2.
EmployeeContract없는 직원 → 관리자 UI 또는 INSERT로 계약 레코드 생성 - 3.불일치 직원 →
EmployeeContract.end_date를Employee.contract_end_date로 UPDATE - 4.불일치 0건 검증
Employee 쪽 값이 관리자가 드로어에서 수정한 최신 의도값으로 간주.
7. 사용자 교대일정 (/user/shift-schedule) — mock→실 API 연동
모두 ⬜ 미완료: 캘린더(월/주간) mock 제거, 다가오는 교대 사이드바, 교대변경 이력·요청 모달, 교대 희망 신청 — 일부는 백엔드 모델·API 자체가 미구현.