@extends('layouts.app', ['class' => 'g-sidenav-show']) @section('content') @include('layouts.navbars.auth.topnav', ['title' => ''])
{{-- Header Card --}}

Dashboard

Log Book Catering - MSJ Catering

{{-- Stats Cards --}}
@php $shift1 = $plan_today->whereIn('shift', ['1', 'Shift 1'])->sum('jumlah_porsi') ?: 0; $shift2 = $plan_today->whereIn('shift', ['2', 'Shift 2'])->sum('jumlah_porsi') ?: 0; $shift3 = $plan_today->whereIn('shift', ['3', 'Shift 3'])->sum('jumlah_porsi') ?: 0; $totalPorsi = $shift1 + $shift2 + $shift3; @endphp @foreach ([['label' => 'SHIFT 1', 'val' => $shift1, 'icon' => 'fa-sun', 'gradient' => 'linear-gradient(135deg, #FFA726 0%, #FB8C00 100%)'], ['label' => 'SHIFT 2', 'val' => $shift2, 'icon' => 'fa-cloud-sun', 'gradient' => 'linear-gradient(135deg, #42A5F5 0%, #1E88E5 100%)'], ['label' => 'SHIFT 3', 'val' => $shift3, 'icon' => 'fa-moon', 'gradient' => 'linear-gradient(135deg, #5C6BC0 0%, #3949AB 100%)'], ['label' => 'TOTAL PORSI', 'val' => $totalPorsi, 'icon' => 'fa-utensils', 'gradient' => 'linear-gradient(135deg, #005f5f 0%, #008080 100%)']] as $item)

{{ $item['label'] }}

{{ number_format($item['val']) }}

@endforeach
{{-- Main Content Section --}}
Checklist @if ($plan_today->isNotEmpty())
Lengkapi Data

Plan menu sudah tersedia. Silakan isi data porsi dan aktual.

@else
Plan Belum Tersedia ❌

Data Plan hari ini belum diinput oleh GA.

@if ($authorize->idroles == 'admins' || $authorize->idroles == 'genadv') Input Plan @endif @endif
Ringkasan Menu Hari Ini
@if ($plan_today->isNotEmpty())
@foreach ($plan_today as $index => $plan) @endforeach
Nama Catering Shift Menu Terencana & Rata-Rata Kkal Porsi
{{ $plan->nama_cateringg }} {{ $plan->shift }} @php $menuKalori = array_values( array_filter( [ [$plan->menu_1, $plan->rata_kkal_1], [$plan->menu_2, $plan->rata_kkal_2], [$plan->menu_3, $plan->rata_kkal_3], ], fn($item) => !empty($item[0]), ), ); @endphp @if (count($menuKalori) > 0)
@foreach ($menuKalori as $menuIndex => [$namaMenu, $nilai])
{{ $menuIndex + 1 }} {{ $namaMenu }}
@if ($nilai !== null) {{ number_format((float) $nilai, 2, ',', '.') }} kkal @else - @endif
@endforeach
@else - @endif
{{ $plan->jumlah_porsi ?? 0 }}
@else

Belum ada data plan untuk ditampilkan.

@endif
Top Menu 1 Tahun

Per catering dan shift

@if ($top_menus->isNotEmpty()) @foreach ($top_menus as $cateringData)
{{ $cateringData['nama_catering'] }}
@foreach (['1', '2', '3'] as $shift) @if ($cateringData['shifts']->has($shift))
Shift {{ $shift }}
@foreach ($cateringData['shifts']->get($shift) as $index => $topMenu)
{{ $index + 1 }} {{ $topMenu->menu_utama }} {{ number_format($topMenu->jumlah_digunakan) }} X
@endforeach @endif @endforeach @endforeach @else

Belum ada data menu actual dalam 1 tahun terakhir.

@endif
{{-- Notifications Section --}}
{{-- Notifikasi Jadwal Catering --}}
Notifikasi Jadwal Catering
@php $hasNotifications = (isset($notifikasiCaterings) && count($notifikasiCaterings) > 0) || (isset($notifikasiCateringsMcu) && count($notifikasiCateringsMcu) > 0) || (isset($notifikasiCateringsSurvei) && count($notifikasiCateringsSurvei) > 0); @endphp @if ($hasNotifications) {{-- Notifikasi Sidak --}} @if (isset($notifikasiCaterings)) @foreach ($notifikasiCaterings as $bulan => $notif)
{{ $notif['nama_catering'] }}

{{ $notif['nama_jadwal'] }} {{ $notif['bulan_jadwal'] }} {{ $notif['tahun'] }}

Segera lakukan {{ $notif['nama_jadwal'] }} pada catering "{{ $notif['nama_catering'] }}" sebelum bulan {{ $notif['bulan_jadwal'] }} berakhir.

@endforeach @endif {{-- Notifikasi MCU --}} @if (isset($notifikasiCateringsMcu)) @foreach ($notifikasiCateringsMcu as $bulan => $notif)
{{ $notif['nama_catering'] }}

{{ $notif['nama_jadwal'] }} {{ $notif['bulan_jadwal'] }} {{ $notif['tahun'] }}

Segera lakukan {{ $notif['nama_jadwal'] }} pada catering "{{ $notif['nama_catering'] }}" sebelum bulan {{ $notif['bulan_jadwal'] }} berakhir.

@endforeach @endif {{-- Notifikasi Survei --}} @if (isset($notifikasiCateringsSurvei)) @foreach ($notifikasiCateringsSurvei as $bulan => $notif)
{{ $notif['nama_catering'] }}

{{ $notif['nama_jadwal'] }} {{ $notif['bulan_jadwal'] }} {{ $notif['tahun'] }}

Segera lakukan {{ $notif['nama_jadwal'] }} pada catering "{{ $notif['nama_catering'] }}" sebelum bulan {{ $notif['bulan_jadwal'] }} berakhir.

@endforeach @endif @else
Tidak Ada Notifikasi

Semua catering telah melakukan jadwal untuk bulan ini.

@endif
{{-- Notifikasi Temuan & Sidak --}}
Notifikasi Temuan & Tindak Lanjut & Expired
@if ($temuanEntry->isNotEmpty() || $sidaktemuan->isNotEmpty() || $hargaExpired->isNotEmpty()) {{-- SECTION: TEMUAN --}} @foreach ($temuanEntry as $temuan) @php $statusLower = strtolower($temuan->status); $badgeClass = $statusLower == 'entry' ? 'bg-primary' : ($statusLower == 'proses' || $statusLower == 'proccess' ? 'bg-info' : 'bg-success'); // Encrypt ID untuk URL - gunakan encrypt() bukan Crypt::encryptString() $encryptedId = encrypt($temuan->id_temuan); @endphp
{{ $temuan->id_temuan }}
{{ strtoupper($temuan->status) }}

{{ $temuan->complain ?? 'Tidak ada deskripsi' }}

TEMUAN {{ \Carbon\Carbon::parse($temuan->tanggal_temuan)->format('d F Y') }}

Temuan ini perlu segera ditindaklanjuti.

@endforeach {{-- SECTION: SIDAK CATERING --}} @foreach ($sidaktemuan as $sidak) @php $statusSidak = strtolower($sidak->status_sidak); $badgeClassSidak = $statusSidak == 'draft' ? 'bg-secondary' : ($statusSidak == 'entry' ? 'bg-primary' : 'bg-success'); // Encrypt ID untuk URL - gunakan encrypt() bukan Crypt::encryptString() $encryptedIdSidak = encrypt($sidak->id_sidak_katering); @endphp
{{ $sidak->id_sidak_katering }}
{{ strtoupper($sidak->status_sidak) }}

{{ $sidak->nama_catering ?? 'Catering' }}

SIDAK CATERING {{ \Carbon\Carbon::parse($sidak->tanggal_sidak)->format('d F Y') }}
@if ($sidak->penilaian == 'temuan' && $sidak->status_tindak_lanjut == 'belum' && $sidak->status_sidak == 'entry')

Terdapat temuan yang perlu ditindaklanjuti.

@elseif( ($sidak->penilaian == 'temuan' && $sidak->status_sidak == 'entry' && $sidak->status_tindak_lanjut == 'done') || ($sidak->penilaian == 'tidak' && $sidak->status_sidak == 'entry'))

Sidak telah dilakukan. Mohon untuk segera diproses.

@endif
@endforeach {{-- SECTION: HARGA EXPIRED --}} @foreach ($hargaExpired as $harga) @php $endDate = \Carbon\Carbon::parse($harga->end_date); $kategoriText = ''; switch ($harga->kategori) { case 'mntama': $kategoriText = 'Lauk Utama'; break; case 'susu': $kategoriText = 'Susu'; break; case 'yakult': $kategoriText = 'Yakult'; break; case 'lain': $kategoriText = 'Lainnya'; break; case 'jus': $kategoriText = 'Jus'; break; case 'takjil': $kategoriText = 'Takjil'; break; default: $kategoriText = ucfirst($harga->kategori); } // Encrypt ID untuk URL - gunakan encrypt() bukan Crypt::encryptString() $encryptedIdHarga = encrypt($harga->id_harga); @endphp
ID Harga: {{ $harga->id_harga }}
EXPIRED

{{ $kategoriText }}

HARGA Expired: {{ $endDate->format('d F Y') }}
Mulai: {{ \Carbon\Carbon::parse($harga->start_date)->format('d F Y') }} Rp {{ number_format($harga->harga, 0, ',', '.') }}

Harga sudah expired. Segera diperbarui!

@endforeach @else
Tidak Ada Notifikasi

Semua temuan sudah ditindaklanjuti dan tidak ada harga yang expired.

@endif
@endsection