{{-- 급여 목록 테이블 (HTMX로 로드) --}} @php use App\Models\HR\Payroll; @endphp @forelse($payrolls as $payroll) @php $profile = $payroll->user?->tenantProfiles?->first(); $department = $profile?->department; $displayName = $profile?->display_name ?? $payroll->user?->name ?? '-'; $color = Payroll::STATUS_COLORS[$payroll->status] ?? 'gray'; $label = Payroll::STATUS_MAP[$payroll->status] ?? $payroll->status; $allowancesTotal = 0; if ($payroll->allowances) { foreach ($payroll->allowances as $a) { $allowancesTotal += ($a['amount'] ?? 0); } } $overtimeBonus = ($payroll->overtime_pay ?? 0) + ($payroll->bonus ?? 0) + $allowancesTotal; @endphp {{-- 사원 --}} {{-- 부서 --}} {{-- 기본급 --}} {{-- 수당 (고정연장근로+상여+기타) --}} {{-- 총지급액 --}} {{-- 공제액 --}} {{-- 실수령액 --}} {{-- 상태 --}} {{-- 작업 --}} @empty @endforelse
사원 부서 기본급 수당 총지급액 공제액 실수령액 상태 작업
{{ mb_substr($displayName, 0, 1) }}
{{ $displayName }}
{{ $department?->name ?? '-' }} {{ number_format($payroll->base_salary) }} {{ $overtimeBonus > 0 ? number_format($overtimeBonus) : '-' }} {{ number_format($payroll->gross_salary) }} {{ number_format($payroll->total_deductions) }} {{ number_format($payroll->net_salary) }} {{ $label }}
{{-- 수정 (draft만) --}} @if($payroll->isEditable()) @endif {{-- 확정 (draft만) --}} @if($payroll->isConfirmable()) @endif {{-- 확정 취소 (confirmed만) --}} @if($payroll->isUnconfirmable()) {{-- 슈퍼관리자: 수정 (confirmed 상태) --}} @if(auth()->user()?->isSuperAdmin()) @endif @endif {{-- 지급 (confirmed만) --}} @if($payroll->isPayable()) @endif {{-- 상세보기 (paid) --}} @if($payroll->status === 'paid') {{-- 슈퍼관리자: 수정 + 지급취소 (paid 상태) --}} @if(auth()->user()?->isSuperAdmin()) @endif @endif {{-- 이메일 발송 (확정 상태만) --}} @if($payroll->status === 'confirmed') @php $personalEmail = $profile?->json_extra['personal_email'] ?? null; $userEmail = $personalEmail ?: ($payroll->user?->email ?? ''); $hireDate = $profile?->hire_date ?? '-'; $positionLabel = $profile?->position_label ?? '-'; $emailData = [ 'user_name' => $displayName, 'user_email' => $userEmail, 'department' => $department?->name ?? '-', 'position' => $positionLabel, 'hire_date' => $hireDate, 'employee_code' => $payroll->user_id, 'pay_year' => $payroll->pay_year, 'pay_month' => $payroll->pay_month, 'base_salary' => intval($payroll->base_salary), 'overtime_pay' => intval($payroll->overtime_pay), 'bonus' => intval($payroll->bonus), 'allowances' => $payroll->allowances, 'gross_salary' => intval($payroll->gross_salary), 'pension' => intval($payroll->pension), 'health_insurance' => intval($payroll->health_insurance), 'employment_insurance' => intval($payroll->employment_insurance), 'long_term_care' => intval($payroll->long_term_care), 'income_tax' => intval($payroll->income_tax), 'resident_tax' => intval($payroll->resident_tax), 'deductions' => $payroll->deductions, 'total_deductions' => intval($payroll->total_deductions), 'net_salary' => intval($payroll->net_salary), ]; @endphp
@if(($payroll->options['email_sent_at'] ?? null)) 발송 @endif
@endif

급여 기록이 없습니다.

{{-- 페이지네이션 --}} @if($payrolls->hasPages())
{{ $payrolls->links() }}
@endif