SimpleHR project
근로정책-급여-연동-현황분석.md
sourceedited by Cairni · 방금 · AIv1
문서 개요
- 작성일: 2026-06-22
- 범위: 근무 정책(WorkPolicy) ↔ 급여정산(Payroll) 연동 현황 (4대보험·소득세 보정은 별도)
- 핵심 결론: 근태 데이터·만근수당·미사용 연차는 자동 연동되나, 소정근로시간·할증률·1일 통상임금은 모두 하드코딩되어 근로정책 설정이 급여 계산에 반영되지 않음
근로정책-급여-연동-현황분석.md
주요 섹션
1. 급여 계산 흐름 (generate_payslips())
payroll_service.py:833 기준 6단계 처리:
- 1.대상 직원 조회 → 일괄 데이터 로딩 (N+1 제거)
- 2.
EmployeePayBase에서hourly_wage,daily_wage(= hourly_wage × 8)산출 - 3.고정 수당/공제 항목 순회 (
ATTENDANCE카테고리 스킵) - 4.근태 연동 수당 자동 계산 (연장·야간·휴일·휴일초과)
- 5.연차수당 계산 (
daily_wage × 미사용연차일수) - 6.4대보험 자동 계산 →
Payslip+PayslipItemINSERT
2. 연동 현황 매트릭스
근로정책 ↔ 급여 연동 상태AI · 출처 클릭
연동됨3
근태 시간 (_attendance_data_map)
근로정책-급여-연동-현황분석.md
만근수당 판단 (has_absence_or_late)
근로정책-급여-연동-현황분석.md
미사용연차 (unused_leave_days)
근로정책-급여-연동-현황분석.md
미연동 (하드코딩)4
월 소정근로시간 → 209시간 고정
근로정책-급여-연동-현황분석.md
야간 할증률 → 0.5 고정 (가산분)
근로정책-급여-연동-현황분석.md
휴일 할증률 → 1.5 고정
근로정책-급여-연동-현황분석.md
1일 통상임금 → hourly_wage × 8 고정
근로정책-급여-연동-현황분석.md
잠재 이슈2
고정연장수당 + 실제연장수당 이중지급 가능
근로정책-급여-연동-현황분석.md
근로정책 변경 시 급여기초 미갱신
근로정책-급여-연동-현황분석.md
3. 미연동 상세 이슈 5건
| # | 이슈 | 위치 | 영향 |
|---|---|---|---|
| 3-1 | 소정근로시간 209시간 하드코딩 | payroll_service.py:604-605 | 시급·모든 수당 오계산 |
| 3-2 | 고정연장(FIXED_OVERTIME) + 실제연장(PAY_OVERTIME) 이중지급 | payroll_service.py:960-1018 | 이중 지급 리스크 |
| 3-3 | 할증률 하드코딩 (연장 1.5, 야간 0.5, 휴일 1.5, 휴일초과 2.0) | payroll_service.py:993-1001 | 회사 자체 규정 미반영 |
| 3-4 | 근로정책 변경 시 EmployeePayBase 미갱신 | policy_service.py:108-132 | 정책 변경 효과 미반영 |
| 3-5 | daily_wage = hourly_wage × 8 하드코딩 | payroll_service.py:941 | 단시간 근로자 연차수당 과다 지급 |
근로정책-급여-연동-현황분석.md
4. 개발자 질문사항 (미결 정책 결정)
| Q | 쟁점 | 선택지 요약 |
|---|---|---|
| Q1 | 고정연장 + 실제연장 처리 | A) 초과분만 지급 / B) 이중지급 허용 / C) 플래그 추가 |
| Q2 | 근로정책 변경 시 급여기초 처리 | A) 자동 갱신 / B) 알림 후 수동 / C) 명세서 생성 시 동적 조회 |
| Q3 | 야간수당 배율 해석 | night_surcharge_rate(1.5 전체) vs 가산분(0.5) 변환 필요 여부 |
| Q4 | 할증률 필드 직접 사용 여부 | 현재 UI 표시 전용 — 법정 고정이면 연동 실익 제한적, 회사 자체 규정 시 필요 |
근로정책-급여-연동-현황분석.md
관련 코드 위치 요약
| 파일 | 라인 | 내용 |
|---|---|---|
payroll_service.py | 604-605 | 시급 = standard_wage / monthly_work_hours |
payroll_service.py | 941 | daily_wage = hourly_wage × 8 |
payroll_service.py | 960-989 | 고정 수당 루프 (ATTENDANCE 스킵) |
payroll_service.py | 993-1001 | 근태 수당 할증률 하드코딩 |
payroll_service.py | 1020-1037 | 연차수당 계산 |
policy_service.py | 65-82 | _calc_monthly_standard_hours() |
policy_service.py | 108-132 | update_work_policy() — 후처리 없음 |
payroll_excel.py | 428-431 | 엑셀 다운로드에도 동일 하드코딩 존재 |
근로정책-급여-연동-현황분석.md