fix: employee self-service - open controller access and clock-in/out
- LeaveApplicationController: add employee branch to bypass can() check - AttendanceRecordController: add employee calendar view (own records only) + open clockIn/clockOut to employee type (no permission required) - PayslipController: add employee branch to show own payslips only - routes/web.php: remove permission:clock-in-out middleware from clock routes - employee-dashboard.tsx: always show clock in/out buttons for employees - Rebuild frontend assets
This commit is contained in:
@@ -14,6 +14,36 @@ class PayslipController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
// Employee self-service: show only their own payslips
|
||||
if ($user->type === 'employee') {
|
||||
$query = Payslip::with(['employee', 'payrollEntry.payrollRun', 'creator'])
|
||||
->where('employee_id', $user->id);
|
||||
|
||||
if ($request->has('search') && !empty($request->search)) {
|
||||
$query->where('payslip_number', 'like', '%'.$request->search.'%');
|
||||
}
|
||||
if ($request->has('status') && !empty($request->status) && $request->status !== 'all') {
|
||||
$query->where('status', $request->status);
|
||||
}
|
||||
if ($request->has('date_from') && !empty($request->date_from)) {
|
||||
$query->where('pay_period_start', '>=', $request->date_from);
|
||||
}
|
||||
if ($request->has('date_to') && !empty($request->date_to)) {
|
||||
$query->where('pay_period_end', '<=', $request->date_to);
|
||||
}
|
||||
$query->orderBy('pay_date', 'desc');
|
||||
|
||||
$payslips = $query->paginate($request->per_page ?? 10);
|
||||
|
||||
return Inertia::render('hr/payslips/index', [
|
||||
'payslips' => $payslips,
|
||||
'employees' => [],
|
||||
'filters' => $request->all(['search', 'status', 'date_from', 'date_to', 'sort_field', 'sort_direction', 'per_page']),
|
||||
]);
|
||||
}
|
||||
|
||||
if (Auth::user()->can('manage-payslips')) {
|
||||
$query = Payslip::with(['employee', 'payrollEntry.payrollRun', 'creator'])->where(function ($q) {
|
||||
if (Auth::user()->can('manage-any-payslips')) {
|
||||
|
||||
Reference in New Issue
Block a user