docs: [esign] 연봉계약종료연도 정규식 버그 수정 변경이력 추가

This commit is contained in:
김보곤
2026-03-19 17:24:10 +09:00
parent ba0f231813
commit 02566e8728
2 changed files with 60 additions and 0 deletions

View File

@@ -283,6 +283,7 @@ DB 도메인별:
| [20260319_account_code_migration_and_income_statement.md](changes/20260319_account_code_migration_and_income_statement.md) | 계정코드 3→5자리 마이그레이션 + 손익계산서 월별/토글 개선 |
| [20260319_account_ledger_keyboard_navigation.md](changes/20260319_account_ledger_keyboard_navigation.md) | 계정별원장 계정과목 검색 키보드 방향키 네비게이션 추가 |
| [20260319_condolence_dashboard_integration.md](changes/20260319_condolence_dashboard_integration.md) | 경조사비 대시보드 연동 (condolence_summary 필드 추가) |
| [20260319_esign_salary_year_regex_fix.md](changes/20260319_esign_salary_year_regex_fix.md) | 전자계약 근로계약서 연봉계약종료연도 정규식 버그 수정 (두음법칙 불일치) |
---

View File

@@ -0,0 +1,59 @@
# 전자계약 근로계약서 연봉계약종료연도 버그 수정
**날짜:** 2026-03-19
**작업자:** Claude Code
## 변경 개요
전자계약 → 새 계약 생성 → 근로계약서 작성 시 "사원 불러오기"로 사원 정보를 로드하면, **연봉계약종료연도**가 시작연도 + 1년으로 반영되지 않고 시작연도와 동일하게 표시되는 버그 수정.
## 원인 분석
템플릿 필드 라벨과 JavaScript 정규식 패턴 간 **두음법칙 불일치**:
| 구분 | 값 | 유니코드 |
|------|-----|---------|
| 템플릿 라벨 | "연봉계약종료**연**도" | 연 = U+C5F0 (ㅇ+ㅕ+ㄴ) |
| 정규식 패턴 | `연봉계약.*종료.*년도` | 년 = U+B144 (ㄴ+ㅕ+ㄴ) |
"연도"와 "년도"는 한국어 두음법칙으로 동일한 뜻이나 유니코드가 달라 정규식 매칭 실패. 이로 인해 종료연도 필드가 폴백 패턴 `계약.*연도`에 매칭되어 **시작연도** 값이 할당됨.
```
정상: "연봉계약종료연도" → '연봉계약.*종료.*년도' 매칭 → salaryEndYear (2026)
실제: "연봉계약종료연도" → '연봉계약.*종료.*년도' 실패 → '계약.*연도' 매칭 → salaryStartYear (2025)
```
## 수정된 파일
| 파일 | 변경 내용 |
|------|----------|
| `mng/resources/views/esign/create.blade.php` | labelMap의 "년도" 정규식을 `[년연]도`로 변경 (7곳) |
## 상세 변경 사항
`handleEmployeeSelect()` 함수의 `labelMap` 객체에서 "년도"를 포함하는 모든 정규식 패턴을 `[년연]도`로 변경하여 양쪽 표기 모두 매칭되도록 수정:
| 수정 전 | 수정 후 |
|---------|---------|
| `출생.*년도` | `출생.*[년연]도` |
| `연봉계약.*종료.*년도` | `연봉계약.*종료.*[년연]도` |
| `연봉계약.*시작.*년도` | `연봉계약.*시작.*[년연]도` |
| `근로계약.*종료.*년도` | `근로계약.*종료.*[년연]도` |
| `근로계약.*시작.*년도` | `근로계약.*시작.*[년연]도` |
| `계약.*종료.*년도` | `계약.*종료.*[년연]도` |
| `계약.*연도` | `계약.*[년연]도` |
## 테스트 체크리스트
- [x] 연봉계약종료연도가 시작연도 + 1년으로 표시되는지 확인
- [x] 연봉계약시작연도/월/일이 정상 반영되는지 확인
- [ ] 근로계약 시작/종료 연도 정상 반영 확인
- [ ] 출생년도 정상 반영 확인
## 관련 문서
- `mng/resources/views/esign/create.blade.php` — 전자계약 생성 화면 (React + JSX)
---
**최종 업데이트**: 2026-03-19