feat: [payroll] MNG 급여관리 계산 엔진 및 일괄 처리 API 구현

- IncomeTaxBracket 모델 추가 (2024 간이세액표 DB 조회)
- PayrollService 전면 개편: 4대보험 + 소득세 자동 계산 엔진
- 10,000천원 초과 고소득 구간 공식 계산 지원
- 과세표준 = 총지급액 - 식대(비과세), 10원 단위 절삭
- 일괄 생성(bulkGenerate), 전월 복사(copyFromPrevious) 기능
- 확정취소(unconfirm), 지급취소(unpay) 상태 관리
- 계산 미리보기(calculatePreview) 엔드포인트 추가
- 공제항목 수동 오버라이드(deduction_overrides) 지원
- Payroll 모델에 long_term_care, options 필드 추가
This commit is contained in:
김보곤
2026-03-11 19:18:27 +09:00
parent 18a6f3e7aa
commit 82621a6045
11 changed files with 850 additions and 249 deletions

View File

@@ -31,6 +31,14 @@ public function rules(): array
'deductions' => ['nullable', 'array'],
'deductions.*.name' => ['required_with:deductions', 'string', 'max:50'],
'deductions.*.amount' => ['required_with:deductions', 'numeric', 'min:0'],
'deduction_overrides' => ['nullable', 'array'],
'deduction_overrides.income_tax' => ['nullable', 'numeric', 'min:0'],
'deduction_overrides.resident_tax' => ['nullable', 'numeric', 'min:0'],
'deduction_overrides.health_insurance' => ['nullable', 'numeric', 'min:0'],
'deduction_overrides.long_term_care' => ['nullable', 'numeric', 'min:0'],
'deduction_overrides.pension' => ['nullable', 'numeric', 'min:0'],
'deduction_overrides.employment_insurance' => ['nullable', 'numeric', 'min:0'],
'_is_super_admin' => ['nullable', 'boolean'],
'note' => ['nullable', 'string', 'max:1000'],
];
}