@extends('layouts.app') @section('content') @include('layouts.toolbar') @php use Carbon\Carbon; $weeksByOrder = $weeks->keyBy('order'); $weekRangeLabel = function ($startWeek, $endWeek) use ($weeksByOrder) { if (!$startWeek || !$endWeek) return '—'; $s = $weeksByOrder->get($startWeek); $e = $weeksByOrder->get($endWeek); if (!$s || !$e) return "Week $startWeek – Week $endWeek"; $count = (int)$endWeek - (int)$startWeek + 1; return [ 'label' => "Week $startWeek – Week $endWeek", 'dates' => Carbon::parse($s->start_date)->format('d M') . ' – ' . Carbon::parse($e->end_date)->format('d M'), 'count' => $count . ' ' . ($count == 1 ? 'week' : 'weeks'), ]; }; $statusBadge = function ($status) { if ($status === 'current') return 'Current'; if ($status === 'past') return 'Closed'; if ($status === 'upcoming') return 'Upcoming'; return 'Not set'; }; @endphp

Billing cycles

Enrollment year {{ $cycle->enrollment_year ?? session('enrollment_year') }}
Edit cycles
@foreach($cycles as $c) @php $range = $weekRangeLabel($c['start_week'], $c['end_week']); @endphp
Cycle {{ $c['number'] }}
{!! $statusBadge($c['status']) !!}
@if(!$c['start_week'] && !$c['end_week'])
No weeks assigned
@else
@if(is_array($range))
{{ $range['label'] }}
{{ $range['dates'] }}
{{ $range['count'] }} @else
{{ $range }}
@endif
@endif
Invoice opens {{ $c['invoice_start'] ? Carbon::parse($c['invoice_start'])->format('d M Y') : '—' }}
Invoice due {{ $c['invoice_end'] ? Carbon::parse($c['invoice_end'])->format('d M Y') : '—' }}
@endforeach
Transfer date
Last day enrollments can be transferred between cycles
{{ !empty($cycle->transfer_date) ? Carbon::parse($cycle->transfer_date)->format('d M Y') : '—' }}
@endsection