SimpleHR project
만근 수당 스펙
conceptedited by Cairni · 방금 · AIv2
개요
만근 수당(Full-Attendance Allowance)은 직원이 해당 기간 동안 결근·지각 없이 개근하였을 때 지급하는 수당이다. 근로정책 ↔ 급여 연동 현황 분석에 따르면, 급여관리 스펙의 generate_payslips() 함수에서 has_absence_or_late 연동을 통해 만근 판정이 진행되고 있으나, 지급 기준이 아직 확정되지 않았다. 근태 관리 스펙 및 근무 정책 스펙과 밀접하게 연관된다.
⚠️ 주의: 이 페이지의 내용은 소스에서 명시적으로 정의된 스펙이 아니라, 미완료·미확정 상태의 이슈를 정리한 것입니다. 상세 기준은 추가 확인이 필요합니다.
현재 구현 상태
급여 계산에서의 만근 판정
근로정책-급여-연동-현황분석.md에 따르면, generate_payslips() 호출 시:
- 근태 데이터 연동:
_attendance_data_map()자동 연동 ✓ - 만근 수당 판정:
has_absence_or_late필드를 통해 결근·지각 여부 연동 ✓ - 지급 로직: EmployeePayDetail에 만근수당(FULL_ATTENDANCE, category=ALLOWANCE)이 등록된 경우 포함
알려진 이슈
| 항목 | 내용 |
|---|---|
| 버그 | 현재 결근 또는 지각이 있는 직원에게도 만근 수당이 지급되는 현상 보고됨 |
| 기대 동작 | 결근·지각이 없는 경우에만 만근 수당 지급 |
| 근본 원인 | 지급 기준이 명시되지 않아 필터링 로직이 미흡 |
| 영향 범위 | 급여 명세서 정확도 저하 |
미확정 사항
1. 지급 기준 미정의
근로정책-급여-연동-현황분석.md에서는 "기준이 있는가?"라는 질문만 제기된 상태로, 다음이 명시되지 않음:
- 기준 기간: 월 단위? 주 단위? 분기 단위?
- 허용 범위: 결근 0회만 지급? 지각 횟수 허용?
- 지각 정의: 5분 지각? 30분 이상만 카운트?
- 조건부 지급: 특정 일수 이상 근무한 경우에만 적용?
2. 근무 정책과의 연동 미설계
- 근무 정책 스펙에서 정의된 월 소정근로시간, 근무일 수 등이 만근 판정에 반영되는지 명확하지 않음
- 부서별·직급별로 만근 기준이 다를 수 있으나, 이를 구분하는 메커니즘 부재
- 교대(변형)근로 관리 스펙이 적용되는 직원의 만근 기준 검토 필요
3. 급여기초와의 연동 미확정
근로정책 ↔ 급여 연동 현황 분석에 따르면, EmployeePayDetail에 수동 등록된 만근수당(category=ALLOWANCE)과 근태 데이터 기반 자동 판정 사이에 일관성 메커니즘이 명확하지 않음.
급여 계산과의 관계
고정 수당으로의 처리
만근수당이 EmployeePayDetail에 ALLOWANCE로 등록된 경우, generate_payslips()에서:
- 1.고정 수당 루프 (payroll_service.py:960-989): FIXED_OVERTIME 등과 마찬가지로 고정 수당으로 처리
- 2.만근 판정 필터링:
has_absence_or_late플래그에 따라 선택적 포함 시도 - 3.근태 데이터 자동 연동: 명시적으로 근태 기반 수당 항목(PAY_* 계열)이 아니므로, 만근 판정은 별도 필터링 필요
현재 구현의 한계
근로정책-급여-연동-현황분석-md에 따르면:
만근 판정은 연동됨(✓)이나, 지급 기준이 명시되지 않아 필터링 로직 자체가 불완전할 수 있음.
관련 스펙 및 연계
- 근태 관리 스펙: 결근·지각 판정 로직의 정의 및 변경 통지 필요
- 근무 정책 스펙: 정책별 만근 기준 차이 반영 메커니즘
- 교대(변형)근로 관리 스펙: 교대 근무자의 만근 조건 별도 정의
- 급여관리 스펙: generate_payslips() 필터링 로직 개선
- 결재 관리 스펙: 수당 지급 승인 워크플로 연계 가능성
- 근로정책 ↔ 급여 연동 현황 분석: 전체 연동 현황 참조