@extends('layouts.app') @section('title','Leave & balances') @section('content')

Leave requests

@php($listrequests=\App\Support\ListView::rows($requests,'leave_requests'))@forelse($listrequests as $leave)

{{ $leave->employee->full_name }} · {{ $leave->type->name }} {{ str_replace('_',' ',$leave->status) }}

{{ $leave->starts_on->toDateString() }}–{{ $leave->ends_on->toDateString() }} · {{ \App\Domain\Payroll\Money::format($leave->units) }} working days · {{ $leave->reason }}

@can('leave.approve')@if(app(\App\Domain\Employees\RequestRouting::class)->canHandle($leave) && ($leave->status==='pending_hr' || (auth()->user()->roleName()==='Company Admin' && $leave->status==='pending_manager')))@include('operations.decision',['action'=>$base.'/leave/'.$leave->id.'/decide'])@endif @endcan @can('leave.manage')@if(in_array($leave->status,['pending_manager','pending_hr','approved']))
@csrf
@endif @endcan@if($leave->routing_snapshot['fallback_reason'] ?? null)

{{ $leave->routing_snapshot['fallback_reason'] }}

@endif@include('employees.approval-reassign',['routingRecord'=>$leave,'routingType'=>'leave'])
@empty
No leave requests yet.
@endforelse
@can('leave.manage')

Submit a leave request

@include('operations.leave-request')

Company leave rules & balance operations

Create a leave type
@csrf

Rules are company configuration, not statutory defaults. An unpaid type with zero annual days has no balance cap.

@csrf
@csrf
@csrf

Accrual and carry-forward source keys prevent duplicate credits. Requests reserve pending balance and protect future approved leave from being overdrawn.

@endcan

Current balances

@php($uiRows1=\App\Support\ListView::rows($employees,'leave_balances', ['employee_number','first_name','last_name']))
@foreach($types as $type)@endforeach@foreach($uiRows1 as $e)@foreach($types as $type)@endforeach@endforeach
Employee{{ $type->name }}
{{ $e->employee_number }} · {{ $e->full_name }}{{ !$type->paid && !$type->annual_units?'Uncapped':\App\Domain\Payroll\Money::format(app(\App\Domain\Operations\LeaveService::class)->balance($e->id,$type->id,\App\Domain\Operations\Operations::today())) }}

Balance ledger

@php($uiRows2=\App\Support\ListView::rows($ledger,'leave_ledger_entries'))
@foreach($uiRows2 as $l)@endforeach
EmployeeTypeEffectiveDaysSource
{{ $l->employee->employee_number }}{{ $l->type->name }}{{ $l->effective_on->toDateString() }}{{ \App\Domain\Payroll\Money::format($l->units) }}{{ $l->source_key }}
@endsection