@php $mwsCalEventClassByStatus = [ 'draft' => 'mws-cal-event--draft', 'scheduled' => 'mws-cal-event--scheduled', 'confirmed' => 'mws-cal-event--confirmed', 'ongoing' => 'mws-cal-event--ongoing', 'completed' => 'mws-cal-event--completed', 'rescheduled' => 'mws-cal-event--rescheduled', 'missed' => 'mws-cal-event--missed', 'cancelled' => 'mws-cal-event--cancelled', ]; $mwsCalGridStart = $anchor->copy()->startOfMonth()->startOfWeek(\Carbon\Carbon::MONDAY); $mwsCalGridEnd = $anchor->copy()->endOfMonth()->endOfWeek(\Carbon\Carbon::SUNDAY); $mwsCalWeeks = []; $mwsCalCursor = $mwsCalGridStart->copy(); while ($mwsCalCursor->lte($mwsCalGridEnd)) { $mwsCalWeek = []; for ($mwsCalI = 0; $mwsCalI < 7; $mwsCalI++) { $mwsCalWeek[] = $mwsCalCursor->copy(); $mwsCalCursor->addDay(); } $mwsCalWeeks[] = $mwsCalWeek; } @endphp
@foreach (['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] as $mwsCalWd)
{{ $mwsCalWd }}
@endforeach
@foreach ($mwsCalWeeks as $mwsCalWeek) @foreach ($mwsCalWeek as $mwsCalDay) @php $mwsCalKey = $mwsCalDay->format('Y-m-d'); $mwsCalDayMeetings = $grouped[$mwsCalKey] ?? collect(); $mwsCalDayVisits = $mecPlannerEnabled ? ($mecVisitsGrouped[$mwsCalKey] ?? collect()) : collect(); $mwsCalDayEventCount = $mwsCalDayMeetings->count() + $mwsCalDayVisits->count(); $mwsCalInMonth = $mwsCalDay->month === $anchor->month && $mwsCalDay->year === $anchor->year; @endphp
{{ $mwsCalDay->format('j') }}
@if ($mecPlannerEnabled) @php $mwsCalPlanTypeOrder = ['RVP', 'CVP', 'SVP', 'DRP', 'ERP', 'PMP']; $mwsCalVisitTypeCounts = []; foreach ($mwsCalDayVisits as $_mecCalVisit) { $_pt = strtoupper(trim((string) ($_mecCalVisit['plan_type'] ?? ''))); if ($_pt === '' || $_pt === 'PLAN') { $_pt = 'PLAN'; } $mwsCalVisitTypeCounts[$_pt] = ($mwsCalVisitTypeCounts[$_pt] ?? 0) + 1; } $mwsCalSummaryTypesShown = []; @endphp @foreach ($mwsCalPlanTypeOrder as $_mwsCalPt) @php $_mwsCalCnt = (int) ($mwsCalVisitTypeCounts[$_mwsCalPt] ?? 0); @endphp @if ($_mwsCalCnt > 0) {{ $_mwsCalCnt }} x {{ $_mwsCalPt }} @php $mwsCalSummaryTypesShown[] = $_mwsCalPt; @endphp @endif @endforeach @foreach ($mwsCalVisitTypeCounts as $_mwsCalPt => $_mwsCalCnt) @if (! in_array($_mwsCalPt, $mwsCalSummaryTypesShown, true) && $_mwsCalCnt > 0) {{ $_mwsCalCnt }} x {{ $_mwsCalPt }} @endif @endforeach @if ($mwsCalDayMeetings->count() > 0) {{ $mwsCalDayMeetings->count() }} x Meeting @endif @else @php $mwsCalSlotsShown = 0; $mwsCalSlotsMax = 4; @endphp @foreach ($mwsCalDayVisits as $visit) @if ($mwsCalSlotsShown >= $mwsCalSlotsMax) @break @endif @php $mwsCalSlotsShown++; @endphp @endforeach @foreach ($mwsCalDayMeetings as $m) @if ($mwsCalSlotsShown >= $mwsCalSlotsMax) @break @endif @php $mwsCalEvClass = $mwsCalEventClassByStatus[$m->status->value] ?? 'mws-cal-event--draft'; $mwsCalTypeWf = \App\Services\PC\MwsSchemeMeetingWorkflowHelper::normalizeWorkflowType($m->meeting_type ?? null); $mwsCalTypeRaw = trim((string) ($m->meeting_type ?? '')); $mwsCalTypeLabel = match ($mwsCalTypeWf) { 'pre-pdwp' => 'Pre-PDWP', 'pdwp' => 'PDWP', 'ddwp' => 'DDWP', default => (strcasecmp($mwsCalTypeRaw, 'general') === 0 || (function_exists('is_general_mws_meeting_type') && is_general_mws_meeting_type($mwsCalTypeRaw) && ! is_rrc_mws_meeting_type($mwsCalTypeRaw)) ? 'General' : ($mwsCalTypeRaw !== '' ? $mwsCalTypeRaw : 'Meeting')), }; $mwsCalSubject = trim((string) ($m->title ?? '')); $mwsCalStart = \Illuminate\Support\Str::substr((string) $m->start_time, 0, 5); $mwsCalEnd = \Illuminate\Support\Str::substr((string) $m->end_time, 0, 5); $mwsCalRange = trim($mwsCalStart.($mwsCalEnd !== '' ? ' – '.$mwsCalEnd : '')); $mwsCalStatusLabel = trim((string) ($m->status?->label() ?? '')); $mwsCalPriorityLabel = trim((string) ($m->priority?->label() ?? '')); $mwsCalLocation = trim((string) ($m->location ?? '')); $mwsCalAria = $mwsCalSubject !== '' ? $mwsCalSubject : $mwsCalTypeLabel; @endphp {{ $mwsCalTypeLabel }} {{ $mwsCalSubject !== '' ? $mwsCalSubject : $mwsCalTypeLabel }} @if ($mwsCalRange !== '') Time {{ $mwsCalRange }} @endif @if ($mwsCalStatusLabel !== '') Status {{ $mwsCalStatusLabel }} @endif @if ($mwsCalPriorityLabel !== '') Priority {{ $mwsCalPriorityLabel }} @endif @if ($mwsCalLocation !== '') Location {{ $mwsCalLocation }} @endif @php $mwsCalSlotsShown++; @endphp @endforeach @if ($mwsCalDayEventCount > $mwsCalSlotsMax) +{{ $mwsCalDayEventCount - $mwsCalSlotsMax }} more @endif @endif
@endforeach @endforeach
@if (empty($mecPlannerEnabled))
Draft Scheduled Completed
@endif