feat(payroll): DOLE compliant payroll automation
This commit is contained in:
@@ -149,6 +149,7 @@ class AttendanceRecordController extends Controller
|
||||
'hasSampleFile' => file_exists(storage_path('uploads/sample/sample-attendance-record.xlsx')),
|
||||
'filters' => $request->all(['search', 'employee_id', 'status', 'date_from', 'date_to', 'sort_field', 'sort_direction', 'per_page']),
|
||||
'todayStats' => $todayStats,
|
||||
'leaveTypes' => \App\Models\LeaveType::whereIn('created_by', getCompanyAndUsersId())->where('status', 'active')->get(['id', 'name']),
|
||||
]);
|
||||
} else {
|
||||
return redirect()->back()->with('error', __('Permission Denied.'));
|
||||
@@ -167,7 +168,7 @@ class AttendanceRecordController extends Controller
|
||||
}
|
||||
|
||||
$employees = User::emp()
|
||||
->with('employee')
|
||||
->with(['employee.shift'])
|
||||
->whereIn('created_by', getCompanyAndUsersId())
|
||||
->where('status', 'active')
|
||||
->whereIn('id', $employeeQuery->pluck('user_id'))
|
||||
@@ -178,6 +179,10 @@ class AttendanceRecordController extends Controller
|
||||
'id' => $user->id,
|
||||
'name' => $user->name,
|
||||
'employee_id' => $user->employee->employee_id ?? '',
|
||||
'shift' => $user->employee->shift ? [
|
||||
'start_time' => $user->employee->shift->start_time,
|
||||
'end_time' => $user->employee->shift->end_time,
|
||||
] : null,
|
||||
];
|
||||
});
|
||||
|
||||
@@ -824,7 +829,7 @@ class AttendanceRecordController extends Controller
|
||||
];
|
||||
}
|
||||
|
||||
$query = \App\Models\User::with(['employee.department'])
|
||||
$query = \App\Models\User::with(['employee.department', 'employee.shift'])
|
||||
->whereHas('employee', function($q) {
|
||||
$q->where('employee_status', 'active');
|
||||
});
|
||||
@@ -972,6 +977,10 @@ class AttendanceRecordController extends Controller
|
||||
'employee_code' => $user->employee->employee_code ?? '',
|
||||
'designation' => substr($user->employee->designation->name ?? 'Staff', 0, 15),
|
||||
'department' => $user->employee->department->name ?? 'General',
|
||||
'shift' => $user->employee->shift ? [
|
||||
'start_time' => $user->employee->shift->start_time,
|
||||
'end_time' => $user->employee->shift->end_time,
|
||||
] : null,
|
||||
'records' => $grid
|
||||
];
|
||||
});
|
||||
@@ -1023,7 +1032,9 @@ class AttendanceRecordController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
if ($balance->remaining_days < 1) {
|
||||
$leaveTypeObj = \App\Models\LeaveType::find($leaveTypeId);
|
||||
|
||||
if ($balance->remaining_days < 1 && $leaveTypeObj && $leaveTypeObj->is_paid) {
|
||||
return ['success' => false, 'message' => __('Insufficient leave balance. Remaining: ' . $balance->remaining_days)];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user