@extends('layouts.backend') @section('content')

{{ __('Loan Detail') }}

{{ __('Back') }}
@include('partials.flash') @php($paidTotal = (float) $loan->installments->sum('paid_amount')) @php($remainingTotal = max(0, (float) $loan->principal_amount - $paidTotal)) @php($hasPaidInstallments = $loan->installments->contains(fn($installment) => $installment->status === 'paid')) @php($authUser = auth()->user()) @php($canManageLoans = $authUser?->hasAnyPermission(['payroll.manage-loan', 'loan.update', 'employee_loan.update']) ?? false) @php($canSupervisorApprove = $authUser?->hasAnyPermission(['payroll.manage-loan', 'loan.approve-supervisor', 'employee_loan.approve-supervisor']) ?? false) @php($canFinalApprove = $authUser?->hasAnyPermission(['payroll.manage-loan', 'loan.approve-final', 'employee_loan.approve-final']) ?? false) @php($canReject = $authUser?->hasAnyPermission(['payroll.manage-loan', 'loan.reject', 'employee_loan.reject']) ?? false) @php($canMarkInstallmentPaid = $authUser?->hasAnyPermission(['payroll.manage-loan', 'loan_installment.mark-paid']) ?? false) @php($statusLabels = ['pending_supervisor' => 'Pending Supervisor', 'pending_final' => 'Pending Final', 'active' => 'Active', 'paused' => 'Paused', 'closed' => 'Closed', 'rejected' => 'Rejected'])
{{ __('Employee:') }}
{{ trim($loan->employee?->first_name.' '.$loan->employee?->last_name) }} ({{ $loan->employee?->employee_code }})
{{ __('Department:') }}
{{ $loan->employee?->department?->name ?: '-' }}
{{ __('Reference:') }}
{{ $loan->loan_reference }}
{{ __('Status:') }}
{{ isset($statusLabels[$loan->status]) ? __($statusLabels[$loan->status]) : __(ucfirst($loan->status)) }}
{{ __('Issued:') }}
{{ $loan->issued_date }}
{{ __('Principal Amount:') }}
{{ number_format((float) $loan->principal_amount, 2) }}
{{ __('Paid:') }}
{{ number_format($paidTotal, 2) }}
{{ __('Remaining:') }}
{{ number_format($remainingTotal, 2) }}
{{ __('Installment Amount:') }}
{{ $loan->installment_count }} x {{ number_format((float) $loan->installment_amount, 2) }}
@if(in_array($loan->status, ['pending_supervisor', 'pending_final'], true))
{{ __('Loan Approval') }}
@if($loan->status === 'pending_supervisor' && $canSupervisorApprove)
@csrf @method('PATCH')
@endif @if($canFinalApprove)
@csrf @method('PATCH')
@endif @if($canReject)
@csrf @method('PATCH')
@endif
@endif @if($canManageLoans && in_array($loan->status, ['active', 'paused', 'closed'], true))
{{ __('Update Loan Status') }}
@csrf @method('PATCH')
@endif @if($canManageLoans && in_array($loan->status, ['active', 'paused', 'closed'], true) && ! $hasPaidInstallments)
{{ __('Reschedule Loan') }}
@csrf @method('PUT')
@elseif($canManageLoans && in_array($loan->status, ['active', 'paused', 'closed'], true) && $hasPaidInstallments)
{{ __('This loan has paid installments. Rescheduling is locked to protect payroll history.') }}
@endif
{{ __('Installment Schedule') }}
@forelse($loan->installments as $installment) @empty @endforelse
# {{ __('Due Date') }} {{ __('Amount') }} {{ __('Paid Amount') }} {{ __('Paid Date') }} {{ __('Paid By') }} {{ __('Status') }} {{ __('Actions') }}
{{ $installment->installment_no }} {{ $installment->due_date }} {{ number_format((float) $installment->amount, 2) }} {{ number_format((float) $installment->paid_amount, 2) }} {{ $installment->paid_date ?: '-' }} @if($installment->payrollItem?->payrollRun) Payroll: {{ $installment->payrollItem->payrollRun->period_label ?: $installment->payrollItem->payrollRun->period_start.' to '.$installment->payrollItem->payrollRun->period_end }} @elseif($installment->status === 'paid') Manual @else - @endif {{ __(ucfirst($installment->status)) }} @if($canMarkInstallmentPaid && $installment->status !== 'paid')
@csrf @method('PATCH')
@else - @endif
{{ __('No installments found.') }}
@endsection @push('scripts') @endpush