feat(payroll): DOLE compliant payroll automation

This commit is contained in:
2026-04-28 09:50:44 +08:00
parent 03fb170b01
commit fc916244c6
778 changed files with 4360 additions and 20271 deletions

View File

@@ -192,8 +192,9 @@ class LeaveApplicationController extends Controller
]);
}
// Check if enough balance available
if ($leaveBalance->remaining_days < $validated['total_days']) {
// Check if enough balance available (only for paid leaves)
$leaveTypeObj = \App\Models\LeaveType::find($validated['leave_type_id']);
if ($leaveTypeObj && $leaveTypeObj->is_paid && $leaveBalance->remaining_days < $validated['total_days']) {
return redirect()->back()->with(
'error',
__('Insufficient leave balance. Available: :available days, Requested: :requested days', [
@@ -320,13 +321,16 @@ class LeaveApplicationController extends Controller
->first();
if ($leaveBalance && $leaveBalance->remaining_days < $leaveApplication->total_days) {
return redirect()->back()->with(
'error',
__('Cannot approve: Insufficient leave balance. Available: :available days, Required: :required days', [
'available' => $leaveBalance->remaining_days,
'required' => $leaveApplication->total_days,
])
);
$leaveTypeObj = \App\Models\LeaveType::find($leaveApplication->leave_type_id);
if ($leaveTypeObj && $leaveTypeObj->is_paid) {
return redirect()->back()->with(
'error',
__('Cannot approve: Insufficient leave balance. Available: :available days, Required: :required days', [
'available' => $leaveBalance->remaining_days,
'required' => $leaveApplication->total_days,
])
);
}
}
$leaveApplication->createAttendanceRecords();