- features/esign/README.md: 근로계약서 사원 연동 섹션 추가 - projects/e-sign/changelog.md: v1.1.1 변경 이력 추가 - rules/employee-api.md: 전자계약 연동 참조 추가 - dev/changes/20260311: esign 연봉정보 개선 내용 추가
87 lines
3.2 KiB
Markdown
87 lines
3.2 KiB
Markdown
# 연봉이력 삭제 기능 추가
|
|
|
|
**날짜:** 2026-03-11
|
|
**작업자:** Claude Code
|
|
|
|
## 변경 개요
|
|
|
|
사원관리 연봉 정보에서 잘못 입력된 연봉 이력을 삭제할 수 있는 기능을 추가했다.
|
|
기존에는 연봉 이력이 자동 누적만 되고 삭제가 불가능하여, 잘못 입력한 경우 수정할 수 없었다.
|
|
|
|
## 수정된 파일
|
|
|
|
| 파일 | 변경 내용 |
|
|
|------|----------|
|
|
| `mng/resources/views/hr/employees/partials/salary-info.blade.php` | 이력 테이블에 삭제 버튼 추가, `deleteHistory()` Alpine.js 메서드 추가 |
|
|
|
|
## 상세 변경 사항
|
|
|
|
### 1. 이력 테이블 삭제 컬럼 추가
|
|
|
|
- 연봉 변경 이력 테이블에 "삭제" 컬럼 추가
|
|
- 각 이력 행에 휴지통 아이콘 버튼 배치
|
|
- 클릭 시 `confirm()` 확인 다이얼로그 표시 후 API 호출
|
|
|
|
### 2. Alpine.js `deleteHistory()` 메서드 추가
|
|
|
|
```javascript
|
|
async deleteHistory(originalIndex) {
|
|
// DELETE /api/admin/hr/employees/{id}/salary/history/{historyIndex}
|
|
}
|
|
```
|
|
|
|
- 프론트엔드에서 역순(reverse) 표시 인덱스를 원본 배열 인덱스로 변환하여 API 전달
|
|
- 변환 공식: `salaryData.history.length - 1 - idx`
|
|
- 삭제 성공 시 `salaryData` 즉시 갱신 (페이지 새로고침 불필요)
|
|
|
|
### 3. 기존 API 활용
|
|
|
|
- `EmployeeSalaryController@deleteHistory` 메서드는 이미 구현되어 있었음
|
|
- `DELETE /api/admin/hr/employees/{id}/salary/history/{historyIndex}` 라우트도 이미 등록됨
|
|
- 프론트엔드 UI만 누락되어 있었으므로 뷰 파일만 수정
|
|
|
|
## 접근 권한
|
|
|
|
연봉 정보 접근은 다음 사용자만 허용 (hardcoded):
|
|
|
|
- 이의찬, 전진선, 김보곤
|
|
|
|
## 테스트 체크리스트
|
|
|
|
- [x] 연봉 이력 삭제 버튼 표시 확인
|
|
- [x] 삭제 확인 다이얼로그 동작
|
|
- [x] API 호출 후 이력 목록 즉시 갱신
|
|
- [x] 권한 없는 사용자 접근 차단 (기존 로직)
|
|
- [x] 개발/운영 서버 배포 완료
|
|
|
|
---
|
|
|
|
## 추가: 전자계약 근로계약서 최신 연봉정보 반영
|
|
|
|
### 변경 개요
|
|
|
|
근로계약서 사원불러오기에서 연봉 이력이 많을 때 최신 연봉정보를 정확히 반환하도록 개선했다.
|
|
매년 연봉 갱신 시 연봉계약 기간이 자동으로 최신 적용일 기준으로 계산된다.
|
|
|
|
### 수정된 파일
|
|
|
|
| 파일 | 변경 내용 |
|
|
|------|----------|
|
|
| `mng/app/Http/Controllers/ESign/EsignApiController.php` | `salary_effective_date` 추가 반환, 이력 fallback 로직 |
|
|
| `mng/resources/views/esign/create.blade.php` | 연봉계약/근로계약 날짜 분리 계산 |
|
|
|
|
### 상세
|
|
|
|
1. **백엔드**: `annual_salary`가 null이면 history에서 `effective_date` 기준 최신 탐색
|
|
2. **프론트엔드**: 연봉계약 시작/종료일 = 연봉 적용일 기준, 근로계약 = 입사일 기준
|
|
3. 일반 `계약.*` 패턴은 연봉 적용일 우선, 없으면 입사일 fallback
|
|
|
|
---
|
|
|
|
## 관련 문서
|
|
|
|
- [Employee API 규칙](../../rules/employee-api.md) — 연봉 정보 관리 섹션 추가
|
|
- [HR 데이터베이스](../../system/database/hr.md) — salary_info JSON 구조 추가
|
|
- [E-Sign 기능 문서](../../features/esign/README.md) — 근로계약서 사원 연동 섹션 추가
|
|
- [E-Sign Changelog](../../projects/e-sign/changelog.md) — v1.1.1 추가
|