@extends('layout.layout') @section('content')
@include('components.alert')
Course Payments

Review your enrolled courses and complete pending payments.

@php $paidCount = $courses->filter(fn ($course) => data_get($course, 'invoice.payment_status') === 'paid')->count(); $pendingCount = $courses->filter(fn ($course) => data_get($course, 'invoice.id') && data_get($course, 'invoice.payment_status') !== 'paid')->count(); $unpaidCount = $courses->filter(fn ($course) => ! data_get($course, 'invoice.id'))->count(); @endphp
{{ $courses->count() }} Total courses
{{ $paidCount }} Paid
{{ $pendingCount + $unpaidCount }} Needs attention
Course Payment Records

Course name, schedule, invoice, payment status, and payment actions.

{{ $courses->count() }} Course(s)
@if ($courses->isEmpty())
No courses found.
@else
@if(isset($hasMultipleChildren) && $hasMultipleChildren) @endif @foreach ($courses as $course) @php $invoice = $course['invoice']; $transaction = $course['transaction']; $status = $invoice['payment_status'] ?? null; $paymentType = $transaction['payment_type'] ?? null; $pricing = $course['pricing'] ?? []; $amountDue = (float) data_get($invoice, 'amount_due', data_get($pricing, 'amount_due', 0)); $invoiceTotal = (float) data_get($invoice, 'net_price', data_get($pricing, 'net_price', 0)); $paidAmount = max(0, round($invoiceTotal - $amountDue, 2)); $isPaid = ($invoice['payment_status'] ?? null) === 'paid' || $amountDue <= 0; $isDepositInvoice = in_array($status, ['deposite', 'paid_deposite'], true); $hasPendingOnlinePayment = $paymentType === 'online' && in_array($transaction['status'] ?? null, ['pending', 'created'], true) && filled($transaction['payment_url'] ?? null); $hasPendingManualReceipt = $paymentType === 'instapay' && in_array($transaction['status'] ?? null, ['pending', 'created'], true) && ! empty($transaction['has_receipt']); $placement = $course['placement_test'] ?? []; @endphp @if(isset($hasMultipleChildren) && $hasMultipleChildren) @endif @endforeach
StudentCourse Schedule Invoice Payment Action
@if(isset($course['student_name'])) {{ $course['student_name'] }} @else - @endif
{{ $course['course_name'] ?? '-' }} {{ ucfirst($course['course_type'] ?? 'course') }} @if (!empty($course['covered_levels'])) - {{ implode(', ', $course['covered_levels']) }} @elseif ($course['level_name']) - {{ $course['level_name'] }} @endif @if ($course['package_name']) {{ $course['package_name'] }} @endif @if ($course['teacher_name']) {{ $course['teacher_name'] }} {{ $course['teacher_type_label'] ?? 'Native-like' }} @endif
@forelse (($course['schedule_items'] ?? []) as $scheduleItem) {{ $scheduleItem['level_name'] ?? $scheduleItem['course_name'] ?? 'Schedule' }}: {{ $scheduleItem['start_date'] ?? '-' }} to {{ $scheduleItem['end_date'] ?? '-' }} @empty {{ $course['start_date'] ?? '-' }} to {{ $course['end_date'] ?? '-' }} Next: {{ $course['next_session_at'] ?? 'No upcoming session' }} @endforelse @if ($invoice['id'])
{{ $invoice['invoice_number'] }} Total {{ number_format((float) $invoice['net_price'], 2) }} {{ $pricing['currency'] ?? $invoice['currency'] ?? '' }} @if ($isDepositInvoice) Deposit invoice - Due {{ number_format($amountDue, 2) }} {{ $pricing['currency'] ?? $invoice['currency'] ?? '' }} @endif @if ($invoice['package_name']) {{ $invoice['package_name'] }} package @endif
@else No invoice @endif
@if ($isPaid) Paid @elseif ($status)
{{ $isDepositInvoice ? 'Deposit' : str_replace('_', ' ', ucfirst($status)) }} @if ($isDepositInvoice) Remaining {{ number_format($amountDue, 2) }} {{ $pricing['currency'] ?? $invoice['currency'] ?? '' }} @endif {{ $paymentType ? ucfirst($paymentType) : 'No method' }} @if ($transaction['status']) - {{ ucfirst($transaction['status']) }} @endif
@else Unpaid @endif
@if ($isPaid) @if(data_get($placement, 'show_pending_action')) Pending Placement Test @elseif(data_get($placement, 'waiting_report')) Waiting report @else {{ data_get($placement, 'assessment_type') === 'demo' ? 'Placement demo booked' : (data_get($placement, 'assessment_type') === 'ai' ? 'AI placement booked' : 'No action needed') }} @endif @elseif ($invoice['id'] && $hasPendingOnlinePayment) Continue payment @elseif ($invoice['id'] && $paymentType === 'online') @elseif ($invoice['id'] && $hasPendingManualReceipt) Receipt pending approval @elseif ($invoice['id'] && $isDepositInvoice) @elseif ($invoice['id'] && $paymentType === 'instapay')
@csrf @if (!empty($treasuries) && $treasuries->isNotEmpty()) @endif
@elseif ($invoice['id']) @else @endif
@endif
@endsection @push('styles') @endpush @push('scripts') @endpush