SimpleHR project

fix-task-0611.md

sourceedited by Cairni · 방금 · AIv1

개요

날짜: 2026년 6월 11일 | 플랫폼: PC fix-task-0611.md

PC 영역의 우선수정 항목, 직원관리, 근로계약서, 이용요금(과금), 추가 관리 요청, 홍보 관련, 기타 기능 개선 작업을 포함한다.


완료 항목 요약

cairni:kanban {"title":"수정 현황 (0611)","columns":[{"name":"완료","color":"green","items":[{"text":"최고관리자 권한 배포 후 강등 버그 수정 (organization_service.py)","ref":"[[src:fix-task-0611.md]]"},{"text":"같은 브라우저 동시접속 차단","ref":"[[src:fix-task-0611.md]]"},{"text":"근로계약서 상세보기 리스트 클릭 시 미리보기 모달","ref":"[[src:fix-task-0611.md]]"},{"text":"직원 부서 변경 기능 — 수정 모달에 드롭다운 추가 (employees/page.tsx)","ref":"[[src:fix-task-0611.md]]"},{"text":"출퇴근관리 날짜별 재직인원 headcount 3종 버그 수정","ref":"[[src:fix-task-0611.md]]"},{"text":"직원관리 저장 후 스크롤 잠금 버그 수정 (simple-select.tsx 등)","ref":"[[src:fix-task-0611.md]]"},{"text":"계약형태 미설정 뱃지 색상 버그 수정","ref":"[[src:fix-task-0611.md]]"},{"text":"계약만료 7일 전 알림 발송 및 배지 표시 (contract_service.py)","ref":"[[src:fix-task-0611.md]]"},{"text":"탄력근로제 서면합의서 탭 표시명 수정 (contracts/page.tsx)","ref":"[[src:fix-task-0611.md]]"},{"text":"관리자 계약서 미리보기 직인 우선순위 수정 (context_snapshot→context→previewContext)","ref":"[[src:fix-task-0611.md]]"}]},{"name":"진행 중","color":"yellow","items":[{"text":"직인 교체 후 이전 계약서 직인 유지 — 분석·코드 수정 완료, 테스트 미완료","ref":"[[src:fix-task-0611.md]]"}]},{"name":"미완료","color":"red","items":[{"text":"첫 기업 가입 → 최고관리자 생성 → 권한 설정 실패","ref":"[[src:fix-task-0611.md]]"},{"text":"직원 신규 등록 시 필수서류 th 표시 버그","ref":"[[src:fix-task-0611.md]]"},{"text":"직원 근무 일정 + 실제 출퇴근 시간 표시 개선 (옵션 A/B 미결정)","ref":"[[src:fix-task-0611.md]]"},{"text":"직원 일괄등록 UI 개선","ref":"[[src:fix-task-0611.md]]"},{"text":"페이징 처리 통일","ref":"[[src:fix-task-0611.md]]"},{"text":"이용요금 자동계산 적용 (10명 초과 시 기본+추가 자동 계산)","ref":"[[src:fix-task-0611.md]]"},{"text":"월 단가(원가) 서버·유지관리비용 책정","ref":"[[src:fix-task-0611.md]]"},{"text":"업체별 판매금액 정산 페이지","ref":"[[src:fix-task-0611.md]]"},{"text":"홈페이지 업데이트 (이용요금·제품·회사·약관 등)","ref":"[[src:fix-task-0611.md]]"},{"text":"사용신청 → 즉시 승인 → 관리자 메일 발송 → 로그인 플로우","ref":"[[src:fix-task-0611.md]]"},{"text":"기본회사소개서 홈페이지 다운로드","ref":"[[src:fix-task-0611.md]]"},{"text":"직인 없는 계약서 승인 전 직인 등록 후 직인 반영 확인","ref":"[[src:fix-task-0611.md]]"},{"text":"서류유형 붙여넣기 제거 및 관리자 양식 표시 유지","ref":"[[src:fix-task-0611.md]]"},{"text":"기업사용자 신청결재 UI 개선 (user/approval)","ref":"[[src:fix-task-0611.md]]"}]}]}```

---

## 주요 버그 원인 및 해결 상세

### [[admin-role-management-spec|관리자 권한]] 강등 버그
- **원인**: 배포(서버 재시작)마다 `admin_status_realign_migration`이 실행되어 수동 부여된 최고관리자도 강등 [[src:fix-task-0611.md]]
- **해결**: `_recompute_admin_status_for_user`에서 `admin_role_id`가 조직관리자(부서장 자동부여) 역할이 아닌 경우 강등 차단

### [[attendance-management-spec|출퇴근관리]] headcount 불일치 (3개 원인)

| 원인 | 파일 | 해결 방법 |
|------|------|-----------|
| `EMP_RETIRED` 전환 시 `resignation_date` 미설정 | `employee_service.py` | 전환 시 오늘 날짜 자동 설정 |
| `hire_date` 시간 포함으로 당일 비교 누락 | `attendance_service.py` | `func.date()` 날짜 비교로 변경 |
| `_build_unpresent_rows` 필터가 headcount 기준과 불일치 | `attendance_service.py` | 오늘 퇴사자·EMP_ONBOARDING 제외 기준 통일 |

[[src:fix-task-0611.md]]

### 스크롤 잠금 버그
- 직접 구현한 스크롤 잠금과 드롭다운 라이브러리 내장 잠금이 충돌 → 직접 구현 코드 제거 (`simple-select.tsx`, `date-picker.tsx`, `period-picker.tsx`) [[src:fix-task-0611.md]]

### [[work-contract-spec|근로계약서]] 직인 우선순위
- `context_snapshot → context → previewContext` 순으로 직인 적용, 6/8 이전 계약서(직인 정보 없음)는 해결 불가 [[src:fix-task-0611.md]]

---

## 이용요금(과금) 정책 현황

[[pricing-policy|이용요금 정책]] 적용 자동계산이 미완료 상태. [[src:fix-task-0611.md]]

| 구간 | 요금 |
|------|------|
| 5명 이하 | 무료 |
| 5~10명 | 20,000원 (기본비용) |
| 10명 초과 | 플랜별 1인당 요금 추가 적용 |

- **무료**: 급여관리·이러닝 제외
- **베이직**: 2,000원/인, 이러닝 제외
- **스탠다드**: 3,000원/인, 전체 메뉴
- **스페셜**: 10,000원/인, 페이롤 연동

---

## 직원 근무 일정 표시 개선 (미결정)

- **현재**: '근무' 탭에 근무 일정만 표시
- **요구**: 실제 출퇴근 시간도 함께 노출
- **검토 옵션**: A(별도 탭 분리) vs B(기존 근무표에 병기) — **방향 미결정, 레이아웃 설계 진행 중** [[src:fix-task-0611.md]]

---

## 관련 페이지

- [[admin-role-management-spec|관리자 등급 및 권한 관리 스펙]]
- [[attendance-management-spec|근태 관리 스펙]]
- [[work-contract-spec|근로계약서 스펙]]
- [[employment-status-workflow|직원 재직 상태 변경 워크플로]]
- [[pricing-policy|이용요금 및 과금 정책]]
- [[employee-registration-flow|직원 등록 플로우]]
Made with CairniExplore public wikis →