@php // ── Multi-assignee helpers (shared by all tabs) ─────────────────── // Rows carry `assignee_names` (GROUP_CONCAT "A, B") and `assignee_ids` // ("3,7") from the pivot; render up to 2 chips + a "+N" overflow. $assigneeList = function ($row) { return array_values(array_filter(array_map('trim', explode(',', (string) ($row->assignee_names ?? ''))))); }; $assigneeIdList = function ($row) { return array_filter(array_map('intval', explode(',', (string) ($row->assignee_ids ?? ''))), fn ($v) => $v > 0); }; $isMineRow = function ($row) use ($assigneeIdList) { return in_array((int) auth()->id(), $assigneeIdList($row), true); }; // ── Carrier status → badge class (single source of truth) ───────── $carrierBadgeCls = [ 'label_created' => 'badge-carrier-label_created', 'in_transit' => 'badge-carrier-in_transit', 'out_for_delivery' => 'badge-carrier-out_for_delivery', 'delivered' => 'badge-carrier-delivered', 'exception' => 'badge-carrier-exception', 'returned' => 'badge-carrier-returned', ]; $carrierBadgeDefault = 'badge-carrier-default'; // ── Monitor status → badge class (single source of truth) ───────── $monitorBadgeCls = [ 'monitoring' => 'badge-monitor-monitoring', 'flagged' => 'badge-monitor-flagged', 'action_needed' => 'badge-monitor-action_needed', 'escalated' => 'badge-monitor-escalated', 'resolved' => 'badge-monitor-resolved', 'closed' => 'badge-monitor-closed', ]; $monitorBadgeDefault = 'badge-monitor-default'; // ── Tracking URL helper ──────────────────────────────────────────── $trackingUrl = function (string $tracking, ?string $carrier): string { $c = strtolower($carrier ?? ''); if (str_contains($c, 'fedex')) return 'https://www.fedex.com/fedextrack/?trknbr=' . urlencode($tracking); if (str_contains($c, 'ups')) return 'https://www.ups.com/track?tracknum=' . urlencode($tracking); if (str_contains($c, 'usps')) return 'https://tools.usps.com/go/TrackConfirmAction?tLabels=' . urlencode($tracking); if (str_contains($c, 'gls')) return 'https://gls-group.com/US/en/home/?tracking_number=' . urlencode($tracking); return 'https://parcelsapp.com/en/tracking/' . urlencode($tracking); }; // ── Order table columns ────────────────────────────────────── $queueCols = ['Order','Customer','Supplier','Total','Shipping','Status','Assigned','Assignee','Reason','Notes','Actions']; $allOrderCols = ['Order','Customer','Product','Part #s','Supplier','Total','Shipping','Status','Assigned','Remarks','Actions']; @endphp {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- Page header --}} {{-- ═══════════════════════════════════════════════════════════════ --}}

Last updated: {{ now()->format('g:i A') }}

{{-- ═══════════════════════════════════════════════════════════════ --}} {{-- Tab Bar --}} {{-- ═══════════════════════════════════════════════════════════════ --}}
{{-- ═══════════════════════════════════════════════════════════════ --}} {{-- TAB 1: My Queue --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($activeTab === 'queue')
{{-- Header --}}

My Queue

Orders assigned to you, followed by unassigned orders in your supplier group.

{{-- Preset bar --}} @include('filament.pages.partials.monitoring-preset-bar')
@foreach ($queueCols as $col) @endforeach @forelse ($this->myQueue as $row) @php $isAssignedToMe = $isMineRow($row); $monitorClass = 'row-status-' . ($row->monitor_status ?? 'monitoring'); @endphp {{-- Assignee column (Keith/Eric req 1 Jul 2026) — who ASSIGNED this PO (order_assignments.assigned_by) --}} {{-- Reason dropdown (Keith req 6 Jul 2026) — replaces Remarks; stored in queue_reason (own column, not carrier-synced remarks) --}} {{-- Notes column (Keith req 6 Jul 2026) — reuses global openNotesModal + note_count badge, like All Orders --}} @empty @endforelse
{{ $col }}
{{ $row->external_order_id }} {{ \Carbon\Carbon::parse($row->date_placed)->format('m/d/Y') }} {{ \Carbon\Carbon::parse($row->date_placed)->diffForHumans() }} @if ($row->shipping_company && trim($row->shipping_company) !== '') {{ $row->shipping_company }} {{ trim($row->shipping_first_name . ' ' . $row->shipping_last_name) }} @else {{ trim($row->shipping_first_name . ' ' . $row->shipping_last_name) }} @endif @if ($row->shipping_state){{ $row->shipping_state }}@endif {{ $row->supplier_code }} ${{ number_format($row->item_total, 2) }}
@if ($row->shipment_carrier){{ $row->shipment_carrier }}@endif @if ($row->tracking_number) {{ $row->tracking_number }} @else @endif
@if ($row->item_status_label)
Item {{ $row->item_status_label }}
@endif @if ($row->carrier_status)
Carrier {{ \App\Models\OrderMonitoring::CARRIER_LABELS[$row->carrier_status] ?? $row->carrier_status }}
@endif
Monitor {{ \App\Models\OrderMonitoring::STATUS_LABELS[$row->monitor_status] ?? $row->monitor_status }}
@php $names = $assigneeList($row); @endphp @if (!empty($names)) @foreach (array_slice($names, 0, 2) as $nm) {{ $nm }} @endforeach @if (count($names) > 2) +{{ count($names) - 2 }} @endif @else @endif @if (!empty($row->assigned_by_name)) {{ $row->assigned_by_name }} @else @endif @php $qNotesParams = $row->order_id . ', ' . ($row->order_item_id ?? 'null') . ", '" . addslashes($row->external_order_id) . "', ''"; @endphp @if ($row->monitor_id)
{{-- My Queue resolve = clear from THIS CSR's queue (3 Jul 2026, CSR req). resolveFromQueue() stamps queue_cleared_at so only the owner clearing from here removes it — All Orders/Issues resolve no longer clears the queue. Always shown for queue rows (every row here is un-cleared for this user, even if globally resolved elsewhere). --}}
@else @endif

Your queue is clear

No orders are assigned to you. Check to find items to work on.

{{ $this->myQueue->links() }}
@endif {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- TAB 2: All Orders --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($activeTab === 'live')
{{-- Preset bar --}}
@include('filament.pages.partials.monitoring-preset-bar')
{{-- ── Filter Options Card ────────────────────────────────── --}}
Filter Options
{{-- Date row --}}
@foreach (['today' => 'Today', 'yesterday' => 'Yesterday', 'this_week' => 'This Week', 'this_month' => 'This Month', 'last_month' => 'Last Month'] as $preset => $presetLabel) @endforeach
{{-- Filter row --}}
{{-- Selected tags --}}
{{-- Search input (always present, like Choices.js) --}}
{{-- Dropdown --}}
{{-- Table — grouped by order, expandable rows --}}
@php $grouped = collect($this->liveOrders->items())->groupBy('order_id'); // Selection tokens for every order on this page ("orderId:orderItemId:monitorId"). $pageOrderTokens = $grouped->map(function ($items) { $f = $items->first(); return $f->order_id . ':' . ($f->order_item_id ?? 0) . ':' . ($f->monitor_id ?? 0); })->values()->all(); @endphp @if (!empty($selectedOrders))
{{ count($selectedOrders) }} selected
@endif @if ($grouped->isEmpty())

No orders found

Try adjusting the date range or clearing filters.

@else @foreach ($grouped as $orderId => $orderItems) @php $first = $orderItems->first(); $rowToken = $first->order_id . ':' . ($first->order_item_id ?? 0) . ':' . ($first->monitor_id ?? 0); $orderTotal = $orderItems->sum('item_total'); $trackings = $orderItems->pluck('tracking_number')->filter()->unique()->values(); $carrierList = $orderItems->pluck('shipment_carrier')->filter()->unique()->values(); $supplierCodes = $orderItems->pluck('supplier_code')->filter()->unique()->values(); $monitorClass = 'row-status-' . ($first->monitor_status ?? 'monitoring'); @endphp {{-- Notes column (Keith request, 30 Jun 2026) — own column after Shipping, like the Issues tab; reuses the existing openNotesModal() + global Notes modal. Order-level (grouped order). --}} {{-- Expanded item details --}} @endforeach
Order Customer Items Shipping Notes Status Actions
{{ $first->external_order_id }} {{ \Carbon\Carbon::parse($first->date_placed)->format('m/d/Y') }} ${{ number_format($orderTotal, 2) }}
@php $custName = trim($first->shipping_first_name . ' ' . $first->shipping_last_name); @endphp {{ $custName ?: ($first->shipping_company ?? '—') }} @if ($first->shipping_company && trim($first->shipping_company) !== '' && trim($first->shipping_company) !== $custName) {{ $first->shipping_company }} @endif @if ($first->shipping_state){{ $first->shipping_state }}@endif {{ $orderItems->count() }} {{ $orderItems->count() === 1 ? 'item' : 'items' }}
@foreach ($supplierCodes->take(3) as $code) {{ $code }} @endforeach @if ($supplierCodes->count() > 3) +{{ $supplierCodes->count() - 3 }} @endif
@if ($trackings->isNotEmpty()) @php $primaryTracking = $trackings->first(); $primaryCarrier = $carrierList->first(); @endphp @if ($primaryCarrier){{ $primaryCarrier }}@endif {{ $primaryTracking }} @if ($trackings->count() > 1) +{{ $trackings->count() - 1 }} more @endif @else No tracking @endif @php $aoNotesParams = $first->order_id . ', ' . ($first->order_item_id ?? 'null') . ", '" . addslashes($first->external_order_id) . "', ''"; @endphp {{ \App\Models\OrderMonitoring::STATUS_LABELS[$first->monitor_status] ?? $first->monitor_status }} @php $names = $assigneeList($first); @endphp @if (!empty($names)) @foreach (array_slice($names, 0, 2) as $nm) {{ $nm }} @endforeach @if (count($names) > 2) +{{ count($names) - 2 }} @endif @endif @php $hasMonitor = (bool) $first->monitor_id; $mId = $first->monitor_id; $oId = $first->order_id; $oiId = $first->order_item_id ?? null; @endphp
@if (!in_array($first->monitor_status, ['resolved','closed'])) @endif
@if ($first->remarks || $first->follow_up_date)
@if ($first->remarks)
Remarks: {{ $first->remarks }}
@endif @if ($first->follow_up_date)
Follow-up: {{ \Carbon\Carbon::parse($first->follow_up_date)->format('m/d/Y') }}
@endif
@endif @foreach ($orderItems as $item) @endforeach
Product Part # Supplier Qty Price Tracking Item Status
{{ $item->product_name ?? '—' }}
@if ($item->supplier_part) SP {{ $item->supplier_part }} @endif @if ($item->partslink) PL {{ $item->partslink }} @endif @if (!$item->supplier_part && !$item->partslink) @endif
{{ $item->supplier_code }} {{ $item->qty }} ${{ number_format($item->item_total, 2) }} @if ($item->tracking_number) @if ($item->shipment_carrier){{ $item->shipment_carrier }}@endif {{ $item->tracking_number }} @else @endif @if ($item->item_status_label) {{ $item->item_status_label }} @else @endif
@endif
{{ $this->liveOrders->links() }}
@endif {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- TAB 2: Issues (merged Flagged + Issues Log) --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($activeTab === 'issues')

Issues

Auto-flagged tracking anomalies and manually categorised issues — all in one view.

{{-- ── Issues Filter Bar ────────────────────────────────── --}}
Filter Options
{{-- Row 1: Date + Presets --}}
@foreach (['today' => 'Today', 'yesterday' => 'Yesterday', 'this_week' => 'This Week', 'this_month' => 'This Month', 'last_month' => 'Last Month'] as $preset => $presetLabel) @endforeach
{{-- Row 2: Carrier, Supplier, Source, Issue Type, Flag Reason --}}
{{-- Row 3: Assignment, Search --}}
{{-- Monitor Status filter (Keith req / Umesh 1 Jul 2026) — view Open, Resolved, or All issues. 'open' is the default (resolved auto-hidden, as before); 'resolved' lists everything marked Resolved/Closed. --}}
@php // Selection tokens for every issue on this page ("orderId:orderItemId:monitorId"). // De-duplicated by order so the header select-all count matches whole-order semantics. $pageIssueTokens = collect($this->issues->items())->map(function ($r) { return $r->order_id . ':' . ($r->order_item_id ?? 0) . ':' . ($r->monitor_id ?? 0); })->unique()->values()->all(); @endphp @if (!empty($selectedIssues))
{{ count($selectedIssues) }} selected
@endif
@php $iSort = $this->issueSortCol; $iDir = $this->issueSortDir; $iArrow = fn($col) => $iSort === $col ? ($iDir === 'asc' ? ' ▲' : ' ▼') : ''; $iThCls = fn($col) => 'sortable-th' . ($iSort === $col ? ' sorted' : ''); @endphp @forelse ($this->issues as $row) @php $flagColors = [ 'Not Processed' => 'badge-danger', 'Lost in Transit' => 'badge-danger', 'Return to Sender' => 'badge-danger', 'Delayed' => 'badge-warning', ]; $trackingBadges = [ 'label_created' => 'badge-warning', 'pre_transit' => 'badge-warning', 'in_transit' => 'badge-info', 'exception' => 'badge-danger', 'delivery_attempt' => 'badge-info', 'unknown' => 'badge-secondary', ]; $actionParams = $row->monitor_id ? $row->monitor_id : "null, {$row->order_id}, {$row->order_item_id}"; $issueToken = $row->order_id . ':' . ($row->order_item_id ?? 0) . ':' . ($row->monitor_id ?? 0); @endphp {{-- Column 1: Order + Carrier + Supplier (chevron toggles the detail row) --}} {{-- Column 2: Issue Type + Flag Reason --}} {{-- Column 4: Tracking Status + Days + Last Event --}} {{-- Column 5: Notes --}} {{-- Status column (Keith req / Umesh 1 Jul 2026) — monitor status badge, same as the All Orders table --}} {{-- Column 6: Actions --}} {{-- Expanded item detail (Keith req / Umesh 1 Jul 2026) — click the row (or the Status badge) to show this issue item's full detail, same panel style as the All Orders tab --}} @empty @endforelse
Order {!! $iArrow('date_placed') !!} Issue / Flag {!! $iArrow('sub_status') !!} Tracking {!! $iArrow('tracking_status') !!} Notes Status Actions
{{ $row->external_order_id }} @php $names = $assigneeList($row); @endphp @foreach (array_slice($names, 0, 2) as $nm) {{ $nm }} @endforeach @if (count($names) > 2) +{{ count($names) - 2 }} @endif
{{ \Carbon\Carbon::parse($row->date_placed)->format('m/d/Y') }} @if ($row->shipment_carrier) | {{ strtoupper($row->shipment_carrier) }} @endif @if ($row->supplier_code) | {{ $row->supplier_code }} @endif
@if ($row->tracking_number) {{ $row->tracking_number }} @endif
@if ($row->issue_type_label) {{ $row->issue_type_label }} @endif @if ($row->flag_reason) {{ $row->flag_reason }} @endif @if ($row->follow_up_date)
Follow-up: {{ \Carbon\Carbon::parse($row->follow_up_date)->format('m/d') }}
@endif
@if ($row->tracking_status)
{{ \App\Models\TrackingUpdate::STATUS_LABELS[$row->tracking_status] ?? ucfirst($row->tracking_status) }}
@if ($row->days_in_transit !== null) {{ $row->days_in_transit }}d in transit @endif @if ($row->last_tracking_event) | {{ \Carbon\Carbon::parse($row->last_tracking_event)->diffForHumans() }} @endif
@if ($row->tracking_detail)
{{ $row->tracking_detail }}
@endif
@else @if ($row->item_status_label) {{ $row->item_status_label }} @endif @if ($row->sub_status_label)
{{ $row->sub_status_label }}
@endif @endif
@php $notesParams = "{$row->order_id}, {$row->order_item_id}, '" . addslashes($row->external_order_id) . "', '" . addslashes($row->part_identifier) . "'"; @endphp {{ \App\Models\OrderMonitoring::STATUS_LABELS[$row->monitor_status] ?? $row->monitor_status }}
{{-- 30 Jun 2026 (Keith) — Resolve was dead for issues with NO monitor record: the shared $actionParams ("null, order_id, order_item_id") is built for the 3-arg methods (assign/follow-up), but markResolved()'s 2nd arg is $resolution — so order_id/item_id landed in the wrong params and ensureMonitoring() got a bogus order_id → silent no-op. Pass all 4 args explicitly (like the All Orders tab) so monitor_id-null issues resolve too (e.g. 35663-0020 item 1035742). --}}
@if ($row->follow_up_date)
Follow-up: {{ \Carbon\Carbon::parse($row->follow_up_date)->format('m/d/Y') }}
@endif
Product Part # Supplier Qty Price Tracking Item Status
{{ $row->product_name ?? '—' }}
@if ($row->supplier_part) SP {{ $row->supplier_part }} @endif @if ($row->partslink) PL {{ $row->partslink }} @endif @if (!$row->supplier_part && !$row->partslink) @endif
{{ $row->supplier_code }} {{ $row->qty }} ${{ number_format($row->item_total, 2) }} @if ($row->tracking_number) @if ($row->shipment_carrier){{ $row->shipment_carrier }}@endif {{ $row->tracking_number }} @else @endif @if ($row->item_status_label) {{ $row->item_status_label }} @else @endif

No issues found

No flagged or issue-type orders found for the selected filters.

{{ $this->issues->links() }}
@endif {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- TAB: Follow up — all open monitors with a follow-up date set --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($activeTab === 'followup')
@php $fuStats = $this->followUpStats; @endphp {{-- Summary chips: overdue / due today / upcoming --}}
Overdue: {{ $fuStats['overdue'] }} Due today: {{ $fuStats['due_today'] }} Upcoming: {{ $fuStats['upcoming'] }}
@forelse ($this->followUps as $row) @php $fuDate = \Carbon\Carbon::parse($row->follow_up_date)->startOfDay(); $fuToday = \Carbon\Carbon::today(); $isOverdue = $fuDate->lt($fuToday); $isDueNow = $fuDate->eq($fuToday); @endphp {{-- Order + assignees + date | carrier | supplier + tracking --}} {{-- Product + part + item status --}} {{-- Follow-up date + overdue/due-today marker --}} {{-- Notes --}} {{-- Monitor status --}} {{-- Actions: assign / reschedule / clear reminder / resolve --}} @empty @endforelse
Order Product Follow-up Notes Status Actions
{{ $row->external_order_id }} @php $names = $assigneeList($row); @endphp @foreach (array_slice($names, 0, 2) as $nm) {{ $nm }} @endforeach @if (count($names) > 2) +{{ count($names) - 2 }} @endif
{{ \Carbon\Carbon::parse($row->date_placed)->format('m/d/Y') }} @if ($row->shipment_carrier) | {{ strtoupper($row->shipment_carrier) }} @endif @if ($row->supplier_code) | {{ $row->supplier_code }} @endif
@if ($row->tracking_number) {{ $row->tracking_number }} @endif
{{ $row->product_name ?? '—' }}
@if ($row->part_identifier)
{{ $row->part_identifier }}
@endif @if ($row->item_status_label)
{{ $row->item_status_label }}
@endif
{{ $fuDate->format('m/d/Y') }}
@if ($isOverdue) {{ $fuDate->diffInDays($fuToday) }}d overdue @elseif ($isDueNow) Due today @else in {{ $fuToday->diffInDays($fuDate) }}d @endif
@php $notesParams = "{$row->order_id}, " . ($row->order_item_id ?: 'null') . ", '" . addslashes($row->external_order_id) . "', '" . addslashes($row->part_identifier) . "'"; @endphp {{ \App\Models\OrderMonitoring::STATUS_LABELS[$row->monitor_status] ?? $row->monitor_status }}

No follow-ups set

Use the clock button on any order to set a follow-up reminder — it will show up here.

{{ $this->followUps->links() }}
@endif {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- TAB 5: Director View --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($activeTab === 'director') @php $stats = $this->reportStats; @endphp
{{-- Stats widgets --}}
@php $widgets = [ ['value' => number_format($stats['total']), 'label' => 'Total Orders', 'cls' => ''], ['value' => number_format($stats['on_time']), 'label' => 'On-Time (' . $stats['on_time_pct'] . '%)', 'cls' => 'widget-green'], ['value' => number_format($stats['delayed']), 'label' => 'Delayed (' . $stats['delayed_pct'] . '%)', 'cls' => 'widget-red'], ['value' => number_format($stats['issues']), 'label' => 'Open Issues', 'cls' => 'widget-orange'], ['value' => number_format($stats['unshipped']),'label'=> 'Unshipped', 'cls' => 'widget-yellow'], ]; @endphp @foreach ($widgets as $w)

{{ $w['value'] }}

{{ $w['label'] }}

@endforeach
{{-- Supplier Scorecard --}}

Supplier Scorecard

* Delayed = shipped >7 days ago, unconfirmed delivery. Accurate once carrier tracking is live.
@foreach (['Supplier','Total Orders','Shipped','Unshipped','Delayed*','Issues','On-Time %','Avg Transit Days'] as $col) @endforeach @forelse ($this->supplierScorecard as $row) @empty @endforelse
{{ $col }}
{{ $row->supplier_category }} {{ number_format($row->total_orders) }} {{ number_format($row->shipped) }} {{ number_format($row->unshipped) }} {{ number_format($row->delayed_cnt) }} {{ number_format($row->issues) }} @if ($row->on_time_pct !== null) {{ $row->on_time_pct }}% @else @endif {{ $row->avg_days_in_transit ?? '—' }}
No data for the selected period.
{{-- Daily Breakdown --}}

Daily Breakdown by Supplier Category

@foreach (['Date','In Stock','EXPRS-MI','DEPO','TYC','PBI','CP','Total'] as $col) @endforeach @forelse ($this->dailyBreakdown as $day) @empty @endforelse
{{ $col }}
{{ \Carbon\Carbon::parse($day->order_date)->format('m/d') }} {{ $day->in_stock }} {{ $day->exprs_mi }} {{ $day->depo }} {{ $day->tyc }} {{ $day->pbi }} {{ $day->cp }} {{ $day->total }}
No data for this period.
@endif {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- Save Preset Modal --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($showSavePresetModal)

Save Filter Preset

Saves your current All Orders filters so you can reload them in one click.

@endif {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- Assignment Modal --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($showAssignModal) @php $bulkSelCount = $bulkAssignContext ? count($bulkAssignTab === 'issues' ? $selectedIssues : $selectedOrders) : 0; @endphp

{{ $bulkAssignContext ? 'Bulk Assign Orders' : 'Assign Order' }}

@if ($bulkAssignContext) Add the selected users to {{ $bulkSelCount }} selected order{{ $bulkSelCount === 1 ? '' : 's' }} (existing assignees are kept). @else Manage the team members assigned to Order {{ $assignOrderId }}. Checked = assigned; save applies the exact set. @endif

@foreach ($this->usersList as $user) @endforeach
@if ($bulkAssignContext) @else @endif
@endif {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- Follow-up Modal --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($showFollowUpModal)

Set Follow-up Date

When should this order be followed up on?

@endif {{-- ═══════════════════════════════════════════════════════════════ --}} {{-- Notes Modal --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @if ($showNotesModal)

Notes

Order {{ $notesExternalOrderId }} @if ($notesPartIdentifier) [{{ $notesPartIdentifier }}] @endif

{{-- Add new note --}}
{{-- Existing notes list --}} @if (count($notesList) > 0)
@foreach ($notesList as $note)
{{ $note->author ?: 'System' }} {{ \Carbon\Carbon::parse($note->date)->format('m/d/Y g:ia') }}
{!! strip_tags($note->note, '
') !!}
@endforeach
@else

No notes yet.

@endif
@endif