@php $d = $this->getComputedData(); $fmtUsd = fn($n) => '$' . number_format($n, 2, '.', ','); $inputClass = 'rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-white px-3 py-2 text-sm shadow-sm focus:ring-2 focus:ring-primary-500'; $achColor = fn($v) => match(true) { $v === null => 'text-gray-400', $v >= 100 => 'text-green-600 dark:text-green-400 font-semibold', $v >= 75 => 'text-yellow-600 dark:text-yellow-400 font-semibold', default => 'text-red-600 dark:text-red-400 font-semibold', }; $statusLabel = fn($s) => match($s) { 'in_progress' => 'In Progress', 'in_review' => 'In Review', 'completed' => 'Completed', 'hold' => 'Hold', 'pending' => 'Pending', default => $s, }; $statusBadge = fn($s) => match($s) { 'in_progress' => 'bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300', 'in_review' => 'bg-lime-100 text-lime-700 dark:bg-lime-900/40 dark:text-lime-300', 'completed' => 'bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300', 'hold' => 'bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300', 'pending' => 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/40 dark:text-yellow-300', default => 'bg-gray-100 text-gray-700', }; @endphp
{{-- FILTERS --}}
{{-- CONTRIBUTION TABLES --}} @if(isset($d['devContrib']) && ($d['devContrib']->isNotEmpty() || $d['pmContrib']->isNotEmpty()))
{{-- Developer --}}
@foreach($d['devContrib'] as $name => $amount) @endforeach
Developer Amount ($) Kontribusi (%)
{{ $name }} {{ $fmtUsd($amount) }} {{ $d['grandTotalUsd'] > 0 ? number_format(($amount / $d['grandTotalUsd']) * 100, 2) . '%' : '0.00%' }}
Grand Total {{ $fmtUsd($d['grandTotalUsd']) }} 100.00%
{{-- Project Manager --}}
@foreach($d['pmContrib'] as $name => $amount) @endforeach
Project Manager Amount ($) Kontribusi (%)
{{ $name === '-' ? '(None)' : $name }} {{ $fmtUsd($amount) }} {{ $d['grandTotalUsd'] > 0 ? number_format(($amount / $d['grandTotalUsd']) * 100, 2) . '%' : '0.00%' }}
Grand Total {{ $fmtUsd($d['grandTotalUsd']) }} 100.00%
@endif {{-- PIVOT TABLE --}}
{{-- Row 1: Week number spans --}} @foreach($d['weeks'] as $w) @endforeach {{-- Row 2: Realization / Target sub-headers --}} @foreach($d['weeks'] as $w) @endforeach @forelse($d['pivot'] as $row) @foreach($d['weeks'] as $w) @endforeach @empty @endforelse @foreach($d['weeks'] as $w) @endforeach
Project Name Status Week {{ $w }} Grand Total
Realization TargetRealization Target Achievement
{{ $row['project'] }} {{ $statusLabel($row['status']) }} {{ $row[$w]['real'] > 0 ? $fmtUsd($row[$w]['real']) : '' }} {{ $row[$w]['target'] > 0 ? $fmtUsd($row[$w]['target']) : '0' }} {{ $fmtUsd($row['total_real']) }} {{ $fmtUsd($row['total_target']) }} {{ $row['achievement'] !== null ? $row['achievement'] . '%' : '-' }}
No projects found for this period.
Grand Total {{ $fmtUsd($d['weekTotals'][$w]['real']) }} {{ $fmtUsd($d['weekTotals'][$w]['target']) }} {{ $fmtUsd($d['grandReal']) }} {{ $fmtUsd($d['grandTarget']) }} {{ $d['grandAch'] !== null ? $d['grandAch'] . '%' : '-' }}