feat: 급여 관리 API 구현 (Phase 2: 3.2)

- 마이그레이션: payrolls, payroll_settings 테이블 생성
- 모델: Payroll (상태관리 draft→confirmed→paid), PayrollSetting
- 서비스: PayrollService (4대보험 계산, 급여명세서)
- 컨트롤러: PayrollController + FormRequest 5개
- API 엔드포인트 13개:
  - 급여 CRUD + confirm/pay/payslip
  - 일괄 계산/확정 (calculate, bulk-confirm)
  - 설정 관리 (settings/payroll)
- Swagger 문서: PayrollApi.php
- i18n: error.php, message.php, validation.php 키 추가
This commit is contained in:
2025-12-18 10:56:16 +09:00
parent b43796a558
commit 7089dd1e46
16 changed files with 2350 additions and 0 deletions

View File

@@ -215,4 +215,17 @@
'invalid_longitude' => '경도는 -180 ~ 180 사이여야 합니다.',
'has_dependencies' => '연관된 데이터가 있어 삭제할 수 없습니다.',
],
// 급여 관리 관련
'payroll' => [
'not_found' => '급여 정보를 찾을 수 없습니다.',
'already_exists' => '해당 연월에 이미 급여가 등록되어 있습니다.',
'not_editable' => '작성중 상태의 급여만 수정할 수 있습니다.',
'not_deletable' => '작성중 상태의 급여만 삭제할 수 있습니다.',
'not_confirmable' => '작성중 상태의 급여만 확정할 수 있습니다.',
'not_payable' => '확정된 급여만 지급 처리할 수 있습니다.',
'invalid_withdrawal' => '유효하지 않은 출금 내역입니다.',
'user_not_found' => '직원 정보를 찾을 수 없습니다.',
'no_base_salary' => '기본급이 설정되지 않았습니다.',
],
];

View File

@@ -269,4 +269,23 @@
'withdrawal' => '출금',
'purchase' => '매입',
],
// 급여 관리
'payroll' => [
'fetched' => '급여를 조회했습니다.',
'created' => '급여가 등록되었습니다.',
'updated' => '급여가 수정되었습니다.',
'deleted' => '급여가 삭제되었습니다.',
'confirmed' => '급여가 확정되었습니다.',
'paid' => '급여가 지급 처리되었습니다.',
'bulk_confirmed' => '급여가 일괄 확정되었습니다.',
'calculated' => '급여가 일괄 계산되었습니다.',
'payslip_fetched' => '급여명세서를 조회했습니다.',
],
// 급여 설정 관리
'payroll_setting' => [
'fetched' => '급여 설정을 조회했습니다.',
'updated' => '급여 설정이 수정되었습니다.',
],
];

View File

@@ -182,6 +182,37 @@
'sort_order' => '정렬 순서',
'parent_id' => '상위 항목',
'tenant_id' => '테넌트',
// 급여 관련
'pay_year' => '지급 연도',
'pay_month' => '지급 월',
'base_salary' => '기본급',
'overtime_pay' => '연장근무수당',
'bonus' => '상여금',
'allowances' => '수당 목록',
'income_tax' => '소득세',
'resident_tax' => '주민세',
'health_insurance' => '건강보험료',
'pension' => '국민연금',
'employment_insurance' => '고용보험료',
'deductions' => '공제 목록',
'note' => '비고',
'withdrawal_id' => '출금 내역',
'user_ids' => '직원 목록',
// 급여 설정 관련
'income_tax_rate' => '소득세율',
'resident_tax_rate' => '주민세율',
'health_insurance_rate' => '건강보험요율',
'long_term_care_rate' => '장기요양보험요율',
'pension_rate' => '국민연금요율',
'employment_insurance_rate' => '고용보험요율',
'pension_max_salary' => '국민연금 상한기준',
'pension_min_salary' => '국민연금 하한기준',
'pay_day' => '급여 지급일',
'auto_calculate' => '자동계산 여부',
'allowance_types' => '수당 유형',
'deduction_types' => '공제 유형',
],
];