docs: [esign] 근로계약서 최신 연봉정보 반영 문서화
- features/esign/README.md: 근로계약서 사원 연동 섹션 추가 - projects/e-sign/changelog.md: v1.1.1 변경 이력 추가 - rules/employee-api.md: 전자계약 연동 참조 추가 - dev/changes/20260311: esign 연봉정보 개선 내용 추가
This commit is contained in:
@@ -54,7 +54,33 @@ async deleteHistory(originalIndex) {
|
||||
- [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 추가
|
||||
|
||||
@@ -91,11 +91,63 @@ draft → pending → partially_signed → completed
|
||||
|
||||
---
|
||||
|
||||
## 5. 근로계약서 사원 연동
|
||||
|
||||
### 사원불러오기 API
|
||||
|
||||
근로계약서 작성 시 사원 정보를 검색하여 계약 변수를 자동 채운다.
|
||||
|
||||
| HTTP | URI | 설명 |
|
||||
|------|-----|------|
|
||||
| GET | `/esign/contracts/search-employees?q=검색어` | 사원 검색 (MNG 내부 API) |
|
||||
|
||||
**반환 데이터:**
|
||||
|
||||
| 필드 | 설명 | 매핑 대상 |
|
||||
|------|------|----------|
|
||||
| `name` | 사원명 | 근로자 이름/성명 |
|
||||
| `phone`, `email` | 연락처 | 서명자 정보 자동 채움 |
|
||||
| `department`, `position` | 부서/직위 | 부서, 직책 필드 |
|
||||
| `address` | 주소 | 직원 주소 |
|
||||
| `hire_date` | 입사일 | 근로계약 시작일 |
|
||||
| `birth_year/month/day` | 생년월일 (주민번호 파싱) | 출생 년/월/일 |
|
||||
| `annual_salary` | 최신 연봉 | 연봉 금액, 월급 자동 계산 |
|
||||
| `salary_effective_date` | 연봉 적용일 | 연봉계약 시작/종료일 기준 |
|
||||
|
||||
### 최신 연봉 탐색 로직 (2026-03-11)
|
||||
|
||||
연봉 이력이 많을 때 최신 연봉을 정확히 반환하기 위한 fallback 로직:
|
||||
|
||||
1. `salary_info.annual_salary` 확인 (현재 연봉)
|
||||
2. null이면 `salary_info.history`에서 `effective_date` 기준 최신 이력 탐색
|
||||
3. `salary_effective_date`도 함께 반환
|
||||
|
||||
### 계약 기간 자동 계산
|
||||
|
||||
| 계약 유형 | 시작일 기준 | 종료일 |
|
||||
|----------|-----------|--------|
|
||||
| 연봉계약 | `salary_effective_date` (최신 연봉 적용일) | 시작일 + 1년 |
|
||||
| 근로계약 | `hire_date` (입사일) | 입사일 + 1년 |
|
||||
| 일반 계약 | 연봉 적용일 우선, 없으면 입사일 | 시작일 + 1년 |
|
||||
|
||||
> 매년 연봉을 갱신하면 연봉계약 기간이 자동으로 최신 적용일 기준으로 계산된다.
|
||||
|
||||
### 관련 파일
|
||||
|
||||
| 파일 | 역할 |
|
||||
|------|------|
|
||||
| `mng/app/Http/Controllers/ESign/EsignApiController.php` | `searchEmployees()` — 사원 검색 + 최신 연봉 반환 |
|
||||
| `mng/resources/views/esign/create.blade.php` | `handleEmployeeSelect()` — 변수 자동 매핑 |
|
||||
| `mng/app/Models/HR/Employee.php` | `getSalaryInfo()` — 연봉 데이터 조회 |
|
||||
|
||||
---
|
||||
|
||||
## 관련 문서
|
||||
|
||||
- [DB 스키마 — 문서/전자서명](../../system/database/documents.md)
|
||||
- [Employee API 규칙 — 연봉 정보](../../rules/employee-api.md#연봉-정보-관리-mng-내부-api)
|
||||
- Swagger: `/api-docs` → ESign 섹션
|
||||
|
||||
---
|
||||
|
||||
**최종 업데이트**: 2026-02-27
|
||||
**최종 업데이트**: 2026-03-11
|
||||
|
||||
@@ -19,12 +19,31 @@
|
||||
|
||||
| 버전 | 날짜 | 유형 | 요약 |
|
||||
|------|------|------|------|
|
||||
| 1.1.1 | 2026-03-11 | 기능 개선 | 근로계약서 최신 연봉정보 반영 |
|
||||
| 1.0.0 | 2026-02-12 | 초기 릴리스 | 전자계약 서명 솔루션 전체 구현 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 릴리스 상세
|
||||
|
||||
### [1.1.1] - 2026-03-11 (근로계약서 연봉정보 개선)
|
||||
|
||||
근로계약서 사원불러오기에서 최신 연봉정보를 정확히 반영하도록 개선했다. 매년 연봉 갱신 시 연봉계약 기간이 자동으로 최신 적용일 기준으로 계산된다.
|
||||
|
||||
#### Added (추가)
|
||||
|
||||
- `searchEmployees()` 응답에 `salary_effective_date` 필드 추가
|
||||
- 연봉 이력 fallback 로직: 현재 연봉이 null이면 이력에서 `effective_date` 기준 최신 탐색
|
||||
- 연봉계약 시작/종료일을 연봉 적용일 기준으로 계산 (기존: 입사일 기준)
|
||||
- 근로계약/연봉계약 기간 분리: 근로계약은 입사일, 연봉계약은 연봉 적용일
|
||||
|
||||
#### Changed (변경)
|
||||
|
||||
- `EsignApiController::searchEmployees()` — 최신 연봉 탐색 로직 추가
|
||||
- `create.blade.php::handleEmployeeSelect()` — 연봉계약/근로계약 날짜 매핑 분리
|
||||
|
||||
---
|
||||
|
||||
### [1.0.0] - 2026-02-12 (초기 릴리스)
|
||||
|
||||
E-Sign 전자계약 서명 솔루션의 첫 번째 릴리스입니다. 모두싸인과 유사한 간편 전자계약 서명 기능을 SAM 시스템에 구축했습니다.
|
||||
|
||||
@@ -215,13 +215,26 @@ $profile->emergency_contact; // json_extra['emergency_contact']
|
||||
- R3: 일반 API 응답(`toArray()`)에서 `salary_info`는 자동 제거된다 (민감 데이터 보호)
|
||||
- R4: 연봉 정보는 MNG 사원관리 페이지의 조회/수정 화면에서만 표시된다
|
||||
|
||||
### 전자계약(E-Sign) 연동
|
||||
|
||||
근로계약서 사원불러오기에서 연봉 정보를 활용한다:
|
||||
|
||||
- `EsignApiController::searchEmployees()` → `getSalaryInfo()`로 최신 연봉 조회
|
||||
- `annual_salary` + `salary_effective_date` 반환
|
||||
- 현재 연봉이 null이면 이력에서 `effective_date` 기준 최신 탐색 (fallback)
|
||||
- 연봉 적용일 기준으로 연봉계약 시작/종료일 자동 계산
|
||||
|
||||
> 상세: [E-Sign 기능 문서 — 근로계약서 사원 연동](../features/esign/README.md#5-근로계약서-사원-연동)
|
||||
|
||||
### 관련 파일
|
||||
|
||||
| 파일 | 역할 |
|
||||
|------|------|
|
||||
| `mng/app/Http/Controllers/Api/Admin/HR/EmployeeSalaryController.php` | API 컨트롤러 |
|
||||
| `mng/app/Http/Controllers/Api/Admin/HR/EmployeeSalaryController.php` | 연봉 CRUD API 컨트롤러 |
|
||||
| `mng/app/Http/Controllers/ESign/EsignApiController.php` | `searchEmployees()` — 전자계약 사원 검색 |
|
||||
| `mng/app/Models/HR/Employee.php` | `getSalaryInfo()`, `setSalaryInfo()` 메서드 |
|
||||
| `mng/resources/views/hr/employees/partials/salary-info.blade.php` | 연봉 정보 UI (Alpine.js) |
|
||||
| `mng/resources/views/esign/create.blade.php` | 근로계약서 변수 자동 매핑 |
|
||||
| `mng/routes/api.php` | 라우트 정의 (라인 1185-1188) |
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user