@php use App\Support\LoanServiceCharge; $paidCount = $loan->installments->where('status', 'paid')->count(); $totalInst = $loan->installments->count(); $today = \Carbon\Carbon::today(); $yearlyChargePct = (float) (app(\App\Services\PfLoanService::class)->yearlyServiceChargePercent()); @endphp
{{ __('Employee') }}: {{ $loan->account?->staff?->user?->name }}
{{ __('Outstanding') }}: {{ number_format((float) $loan->outstanding, 2) }}
{{ __('Progress') }}: @if($totalInst > 0) {{ $paidCount }}/{{ $totalInst }} {{ __('paid') }} @else — @endif
@if($totalInst > 0)
@foreach($loan->installments as $inst) @php $dueDate = \Carbon\Carbon::create($inst->due_year, $inst->due_month, 1)->endOfMonth(); $dueLabel = \Carbon\Carbon::create($inst->due_year, $inst->due_month, 1)->format('M Y'); if ($inst->status === 'paid') { $instStatus = __('Paid'); $instBadge = 'badge-success'; } elseif ($dueDate->lt($today)) { $instStatus = __('Overdue'); $instBadge = 'badge-danger'; } else { $instStatus = __('Due'); $instBadge = 'badge-warning'; } @endphp @php $svcAmt = $inst->status === 'paid' ? (float) $inst->service_charge : LoanServiceCharge::monthlyChargeAmount((float) $inst->amount, $yearlyChargePct); $totalDue = (float) $inst->amount + ($inst->status === 'paid' ? (float) $inst->service_charge : 0); @endphp @endforeach
# {{ __('Due') }} {{ __('Principal') }} {{ __('S/Charge') }} {{ __('Total') }} {{ __('Status') }} {{ __('Paid on') }} {{ __('Action') }}
{{ $inst->installment_no }} {{ $dueLabel }} {{ number_format((float) $inst->amount, 2) }} {{ number_format($svcAmt, 2) }} {{ number_format($totalDue, 2) }} {{ $instStatus }} {{ $inst->paid_at?->format('Y-m-d') ?? '—' }} @if($inst->status === 'pending' && (float) $loan->outstanding > 0)
@csrf
@else @endif
@else

{{ __('No installment schedule on this loan. Post a manual amount below.') }}

@csrf
@endif