@if(Auth::user()->role == 'Super Admin')
@if(($mode ?? '') == 'PIC' && isset($allPics))
@endif @if(($mode ?? '') == 'SUPERVISOR' && isset($allSpvs))
@endif
@endif
@if($mode == 'PIC')

Kinerja Saya

Laporan pencapaian tugas Anda Tahun {{ $selectedYear }}

@elseif($mode == 'EXECUTIVE')

Divisi Pengawasan

Overview kinerja divisi Pengawasan {{ date('F Y') }}

@else

Dashboard Supervisor

Monitoring Project & Tim Tahun {{ $selectedYear }}

@endif
@if($mode == 'PIC' || $mode == 'SUPERVISOR')
@if(request('view_mode')) @endif @if(request('target_id')) @endif
@endif @if(Auth::user()->role == 'Executive') @endif
@csrf
@if(session('success'))
{{ session('success') }}
@endif @if($mode == 'SUPERVISOR')
Total Project Strategis

{{ $projectsStrategis->count() }}

Progress Kinerja Strategis

{{ $statsStrategis['avg'] }}%

Realisasi Anggaran Strategis
@php // Default awal (Strategis) $plan = $statsStrategis['plan'] > 0 ? $statsStrategis['plan'] : 1; $real = $statsStrategis['real']; $persen = round(($real / $plan) * 100); $warna = $persen > 100 ? 'text-danger' : 'text-success'; @endphp

{{ $persen }}%

Rp {{ number_format($real, 0, ',', '.') }} / {{ number_format($plan, 0, ',', '.') }}
Daftar Project Tim
Buat Project Baru
@forelse($projectsStrategis as $project) @include('components.project-row', ['project' => $project]) @empty @endforelse
Informasi Project & Tim Progress Budget Aksi

Tidak ada project Strategis saat ini.
@forelse($projectsRutin as $project) @include('components.project-row', ['project' => $project]) @empty @endforelse
Informasi Project & Tim Progress Budget Aksi

Tidak ada project Rutin saat ini.
@forelse($projectsSurveillance as $project) @include('components.project-row', ['project' => $project]) @empty @endforelse
Informasi Project & Tim Progress Budget Aksi

Tidak ada project Surveillance saat ini.
@elseif($mode == 'PIC')
{{ substr($user->name, 0, 1) }}

{{ $user->name }}

NPP: {{ $user->npp }}

{{ $user->position }} - {{ $user->department->name ?? 'Divisi Pengawasan' }}

Status Akun: Aktif
Pencapaian Bulan Ini

{{ $myScore }}%

Target: 100%
Indikator Rutin
@forelse($rutin as $log) @php // --- 1. SIAPKAN SEMUA DATA DI AWAL BIAR RAPI --- $start = $log->indicator->start_date ?? null; $deadline = $log->indicator->deadline ?? null; $finishedAt = $log->updated_at; $isOverdue = false; $daysLeft = 0; $lateDays = 0; // Cek Deadline if ($deadline) { $end = \Carbon\Carbon::parse($deadline)->endOfDay(); // Hitung Sisa Hari (Untuk yang belum selesai) $daysLeft = now()->diffInDays($end, false); // Cek Overdue (Belum selesai & lewat tanggal) if (now()->gt($end) && $log->status != 'Selesai') { $isOverdue = true; } // Hitung Telat (Kalau sudah selesai tapi telat) if ($log->status == 'Selesai' && \Carbon\Carbon::parse($finishedAt)->gt($end)) { $lateDays = \Carbon\Carbon::parse($end)->diffInDays(\Carbon\Carbon::parse($finishedAt)); } } @endphp @empty @endforelse
Nama Indikator & Sub-Tugas Jadwal Pelaksanaan Status Progress
{{ $log->indicator->name ?? '-' }}
@if(isset($log->indicator->budget) && $log->indicator->budget > 0) @php $pagu = $log->indicator->budget; $realisasi = $log->indicator->actual_cost ?? 0; $persenBudget = ($pagu > 0) ? round(($realisasi / $pagu) * 100) : 0; // Logika Warna: Merah kalau Overbudget, Hijau kalau Aman $warnaBudget = ($realisasi > $pagu) ? 'text-danger border-danger' : 'text-success border-success'; @endphp
{{-- 1. PAGU ANGGARAN (ABU-ABU) --}} Pagu: Rp {{ number_format($pagu, 0, ',', '.') }} {{-- 2. REALISASI (HIJAU/MERAH) --}} Real: Rp {{ number_format($realisasi, 0, ',', '.') }} ({{ $persenBudget }}%)
@endif @if($log->subTasks->count() > 0)
Checklist Tugas: @foreach($log->subTasks as $sub)
{{ $sub->title }}
@endforeach
@endif
@if($deadline)
@if($start) {{ date('d M', strtotime($start)) }} - {{ date('d M Y', strtotime($deadline)) }} @else Deadline: {{ date('d M Y', strtotime($deadline)) }} @endif
@if($log->status == 'Selesai') Selesai pada: {{ date('d M Y', strtotime($finishedAt)) }} @elseif($isOverdue) LEWAT DEADLINE @elseif($daysLeft >= 0) Sisa: {{ round($daysLeft) }} Hari @endif
@else - @endif
@if($log->status == 'Selesai') @if($lateDays > 0) Selesai (Telat)
Telat {{ round($lateDays) }} hari
@else Selesai @endif @elseif($isOverdue) Overdue @else On Progress @endif
@php // LOGIKA WARNA PROGRESS BAR $deadline = $log->indicator->deadline ?? null; $finishedAt = $log->updated_at; $isDone = $log->actual_percentage >= 100; // Default Warna (Biru) $barColor = 'bg-primary'; if ($isDone) { // Cek: Apakah Selesai tapi Telat? if ($deadline && \Carbon\Carbon::parse($finishedAt)->gt(\Carbon\Carbon::parse($deadline)->endOfDay())) { $barColor = 'bg-warning text-dark'; // KUNING (Selesai Telat) } else { $barColor = 'bg-success'; // HIJAU (Selesai Tepat Waktu) } } elseif ($deadline && now()->gt(\Carbon\Carbon::parse($deadline)->endOfDay())) { $barColor = 'bg-danger'; // MERAH (Overdue/Lewat Deadline) } @endphp
{{ $log->actual_percentage }}%
Tidak ada data.
Indikator Surveillance
@forelse($surveillance as $log) @php // --- 1. SIAPKAN SEMUA DATA DI AWAL BIAR RAPI --- $start = $log->indicator->start_date ?? null; $deadline = $log->indicator->deadline ?? null; $finishedAt = $log->updated_at; $isOverdue = false; $daysLeft = 0; $lateDays = 0; // Cek Deadline if ($deadline) { $end = \Carbon\Carbon::parse($deadline)->endOfDay(); // Hitung Sisa Hari (Untuk yang belum selesai) $daysLeft = now()->diffInDays($end, false); // Cek Overdue (Belum selesai & lewat tanggal) if (now()->gt($end) && $log->status != 'Selesai') { $isOverdue = true; } // Hitung Telat (Kalau sudah selesai tapi telat) if ($log->status == 'Selesai' && \Carbon\Carbon::parse($finishedAt)->gt($end)) { $lateDays = \Carbon\Carbon::parse($end)->diffInDays(\Carbon\Carbon::parse($finishedAt)); } } @endphp @empty @endforelse
Nama Indikator & Sub-Tugas Jadwal Pelaksanaan Status Progress
{{ $log->indicator->name ?? '-' }}
@if(isset($log->indicator->budget) && $log->indicator->budget > 0) @php $pagu = $log->indicator->budget; $realisasi = $log->indicator->actual_cost ?? 0; $persenBudget = ($pagu > 0) ? round(($realisasi / $pagu) * 100) : 0; // Logika Warna: Merah kalau Overbudget, Hijau kalau Aman $warnaBudget = ($realisasi > $pagu) ? 'text-danger border-danger' : 'text-success border-success'; @endphp
{{-- 1. PAGU ANGGARAN (ABU-ABU) --}} Pagu: Rp {{ number_format($pagu, 0, ',', '.') }} {{-- 2. REALISASI (HIJAU/MERAH) --}} Real: Rp {{ number_format($realisasi, 0, ',', '.') }} ({{ $persenBudget }}%)
@endif @if($log->subTasks->count() > 0)
Checklist Tugas: @foreach($log->subTasks as $sub)
{{ $sub->title }}
@endforeach
@endif
@if($deadline)
@if($start) {{ date('d M', strtotime($start)) }} - {{ date('d M Y', strtotime($deadline)) }} @else Deadline: {{ date('d M Y', strtotime($deadline)) }} @endif
@if($log->status == 'Selesai') Selesai pada: {{ date('d M Y', strtotime($finishedAt)) }} @elseif($isOverdue) LEWAT DEADLINE @elseif($daysLeft >= 0) Sisa: {{ round($daysLeft) }} Hari @endif
@else - @endif
@if($log->status == 'Selesai') @if($lateDays > 0) Selesai (Telat)
Telat {{ round($lateDays) }} hari
@else Selesai @endif @elseif($isOverdue) Overdue @else On Progress @endif
@php // LOGIKA WARNA PROGRESS BAR $deadline = $log->indicator->deadline ?? null; $finishedAt = $log->updated_at; $isDone = $log->actual_percentage >= 100; // Default Warna (Biru) $barColor = 'bg-primary'; if ($isDone) { // Cek: Apakah Selesai tapi Telat? if ($deadline && \Carbon\Carbon::parse($finishedAt)->gt(\Carbon\Carbon::parse($deadline)->endOfDay())) { $barColor = 'bg-warning text-dark'; // KUNING (Selesai Telat) } else { $barColor = 'bg-success'; // HIJAU (Selesai Tepat Waktu) } } elseif ($deadline && now()->gt(\Carbon\Carbon::parse($deadline)->endOfDay())) { $barColor = 'bg-danger'; // MERAH (Overdue/Lewat Deadline) } @endphp
{{ $log->actual_percentage }}%
Tidak ada data.
Indikator Strategis
@forelse($strategis as $log) @php // --- 1. SIAPKAN SEMUA DATA DI AWAL BIAR RAPI --- $start = $log->indicator->start_date ?? null; $deadline = $log->indicator->deadline ?? null; $finishedAt = $log->updated_at; $isOverdue = false; $daysLeft = 0; $lateDays = 0; // Cek Deadline if ($deadline) { $end = \Carbon\Carbon::parse($deadline)->endOfDay(); // Hitung Sisa Hari (Untuk yang belum selesai) $daysLeft = now()->diffInDays($end, false); // Cek Overdue (Belum selesai & lewat tanggal) if (now()->gt($end) && $log->status != 'Selesai') { $isOverdue = true; } // Hitung Telat (Kalau sudah selesai tapi telat) if ($log->status == 'Selesai' && \Carbon\Carbon::parse($finishedAt)->gt($end)) { $lateDays = \Carbon\Carbon::parse($end)->diffInDays(\Carbon\Carbon::parse($finishedAt)); } } @endphp @empty @endforelse
Nama Indikator & Sub-Tugas Jadwal Pelaksanaan Status Progress
{{ $log->indicator->name ?? '-' }}
@if(isset($log->indicator->budget) && $log->indicator->budget > 0) @php $pagu = $log->indicator->budget; $realisasi = $log->indicator->actual_cost ?? 0; $persenBudget = ($pagu > 0) ? round(($realisasi / $pagu) * 100) : 0; // Logika Warna: Merah kalau Overbudget, Hijau kalau Aman $warnaBudget = ($realisasi > $pagu) ? 'text-danger border-danger' : 'text-success border-success'; @endphp
{{-- 1. PAGU ANGGARAN (ABU-ABU) --}} Pagu: Rp {{ number_format($pagu, 0, ',', '.') }} {{-- 2. REALISASI (HIJAU/MERAH) --}} Real: Rp {{ number_format($realisasi, 0, ',', '.') }} ({{ $persenBudget }}%)
@endif @if($log->subTasks->count() > 0)
Checklist Tugas: @foreach($log->subTasks as $sub)
{{ $sub->title }}
@endforeach
@endif
@if($deadline)
@if($start) {{ date('d M', strtotime($start)) }} - {{ date('d M Y', strtotime($deadline)) }} @else Deadline: {{ date('d M Y', strtotime($deadline)) }} @endif
@if($log->status == 'Selesai') Selesai pada: {{ date('d M Y', strtotime($finishedAt)) }} @elseif($isOverdue) LEWAT DEADLINE @elseif($daysLeft >= 0) Sisa: {{ round($daysLeft) }} Hari @endif
@else - @endif
@if($log->status == 'Selesai') @if($lateDays > 0) Selesai (Telat)
Telat {{ round($lateDays) }} hari
@else Selesai @endif @elseif($isOverdue) Overdue @else On Progress @endif
@php // LOGIKA WARNA PROGRESS BAR $deadline = $log->indicator->deadline ?? null; $finishedAt = $log->updated_at; $isDone = $log->actual_percentage >= 100; // Default Warna (Biru) $barColor = 'bg-primary'; if ($isDone) { // Cek: Apakah Selesai tapi Telat? if ($deadline && \Carbon\Carbon::parse($finishedAt)->gt(\Carbon\Carbon::parse($deadline)->endOfDay())) { $barColor = 'bg-warning text-dark'; // KUNING (Selesai Telat) } else { $barColor = 'bg-success'; // HIJAU (Selesai Tepat Waktu) } } elseif ($deadline && now()->gt(\Carbon\Carbon::parse($deadline)->endOfDay())) { $barColor = 'bg-danger'; // MERAH (Overdue/Lewat Deadline) } @endphp
{{ $log->actual_percentage }}%
Tidak ada data.
@elseif($mode == 'EXECUTIVE') @php // 1. Pastikan variabel array tidak Null $statsStrategis = $statsStrategis ?? ['avg'=>0, 'plan'=>0, 'real'=>0]; $statsRutin = $statsRutin ?? ['avg'=>0, 'plan'=>0, 'real'=>0]; // 2. Pastikan variabel Data Grafik tidak Null (Penyebab Error Utama) if(!isset($dataStrategis)) { $dataStrategis = [ 'total_count' => isset($projectsStrategis) ? $projectsStrategis->count() : 0, 'avg' => $statsStrategis['avg'], 'plan' => $statsStrategis['plan'], 'real' => $statsStrategis['real'], 'chart' => [0,0,0] ]; } if(!isset($dataRutin)) { $dataRutin = [ 'total_count' => isset($projectsRutin) ? $projectsRutin->count() : 0, 'avg' => $statsRutin['avg'], 'plan' => $statsRutin['plan'], 'real' => $statsRutin['real'], 'chart' => [0,0,0] ]; } // 3. Pastikan koleksi data tidak Null $projectsStrategis = $projectsStrategis ?? collect([]); $projectsRutin = $projectsRutin ?? collect([]); $supervisors = $supervisors ?? collect([]); @endphp
Executive Dashboard
Total Project Strategis

{{ isset($dataStrategis) ? $dataStrategis['total_count'] : 0 }}

All Progress

{{ isset($dataStrategis) ? $dataStrategis['avg'] : 0 }}%

Average
Overall Progress Strategis

{{ $statsStrategis['avg'] }}%

@php $plan = $statsStrategis['plan'] > 0 ? $statsStrategis['plan'] : 1; $real = $statsStrategis['real']; $persenB = ($real / $plan) * 100; $persenBar = $persenB > 100 ? 100 : $persenB; @endphp
REALISASI ANGGARAN
{{ number_format($persenB, 1) }}%
Rp {{ number_format($real, 0, ',', '.') }}
Pagu: Rp {{ number_format($plan, 0, ',', '.') }}
Daftar Project Divisi
@forelse($projectsStrategis as $project) @include('components.project-row', ['project' => $project, 'number' => $loop->iteration]) @empty @endforelse
Informasi Project & Tim Progress Budget Aksi

Tidak ada project Strategis.
@forelse($projectsRutin as $project) @include('components.project-row', ['project' => $project, 'number' => $loop->iteration]) @empty @endforelse
Informasi Project & Tim Progress Budget Aksi

Tidak ada project Rutin.
@forelse($projectsSurveillance as $project) @include('components.project-row', ['project' => $project, 'number' => $loop->iteration]) @empty @endforelse
Informasi Project & Tim Progress Budget Aksi

Tidak ada project Surveillance.
@endif
{{-- --- COPY DARI SINI SAMPAI BAWAH --- --}} @if($mode == 'SUPERVISOR' || $mode == 'EXECUTIVE') @endif