@php use App\Support\Fmt; use App\Models\WorkOrder; use App\Models\ServiceRequest; use App\Filament\Resources\WorkOrders\WorkOrderResource as WO; use App\Filament\Resources\ServiceRequests\ServiceRequestResource as SR; use App\Filament\Resources\Assets\AssetResource as AR; $t = $tasks; $prio = fn ($p) => ''.$p.''; @endphp

Sampurasun, {{ $user->name }}

{{ $user->job_title }} · {{ $roles ?: 'tanpa peran' }}
{{ $property?->name }} · diperbarui {{ Fmt::dt(now(), 'd M Y H:i') }} WIB ·
Scan QR @if ($user->hasPermission('request.create'))Lapor kerusakan@endif
@if ($kpi)
Work order terbuka{{ $kpi['open_wo'] }} {{ $kpi['overdue_wo'] }} lewat target · {{ $kpi['p1p2_open'] }} P1/P2
Respons sesuai SLA (30 hari){{ Fmt::pct($kpi['sla_response']['value']) }}{{ $kpi['sla_response']['note'] }}
MTTR (bruto){{ $kpi['mttr']['value'] === null ? 'N/A' : Fmt::minutes($kpi['mttr']['value']) }}{{ $kpi['mttr']['value'] === null ? $kpi['mttr']['note'] : 'bersih '.Fmt::minutes($kpi['mttr']['net']).' · '.$kpi['mttr']['note'] }}
Laporan belum ditriase{{ $kpi['requests_untriaged'] }}dari {{ $kpi['requests_open'] }} laporan terbuka
Aset terdaftar{{ Fmt::num($kpi['assets_total']) }}{{ Fmt::num($kpi['assets_active']) }} aktif · {{ Fmt::num($kpi['assets_draft']) }} draft
Belum terverifikasi{{ Fmt::num($kpi['assets_unverified']) }}lihat daftar
Label belum terpasang{{ Fmt::num($kpi['labels_pending']) }}termasuk perlu label ulang
Downtime · room days{{ Fmt::num($kpi['downtime_hours'], 1) }} j{{ Fmt::num($kpi['room_days'], 2) }} room days terdampak · {{ $kpi['repeat_failures'] }} kegagalan berulang
@endif

Pekerjaan saya

@if ($user->hasPermission('wo.execute') || $t['assigned']->isNotEmpty())

Tugas work order ditugaskan kepada saya

    @forelse ($t['assigned'] as $w)
  • {!! $prio($w->priority) !!} {{ $w->number }} {{ \Illuminate\Support\Str::limit($w->title, 50) }}
    {{ $w->location?->full_path ?? $w->asset?->location?->full_path }}
    {{ WorkOrder::STATUSES[$w->status] }}
    @if ($w->due_at)target {{ Fmt::dt($w->due_at, 'd M H:i') }}@endif
  • @empty
  • Tidak ada tugas aktif.
  • @endforelse
@endif @if ($user->hasPermission('request.triage'))

Laporan menunggu triase urut prioritas & waktu terima

    @forelse ($t['to_triage'] as $r)
  • {!! $prio($r->priority) !!} {{ $r->number }} {{ \Illuminate\Support\Str::limit($r->symptom, 48) }}
    {{ $r->location?->full_path }}{{ $r->asset ? ' · '.$r->asset->asset_code : '' }}
    respons s.d.
    {{ Fmt::dt($r->response_due_at, 'd M H:i') }}
  • @empty
  • Semua laporan sudah ditriase.
  • @endforelse
@endif @if ($t['to_verify']->isNotEmpty() || $t['to_approve']->isNotEmpty() || $t['transfers']->isNotEmpty() || $t['room_blocks']->isNotEmpty())

Persetujuan & verifikasi tertunda

    @foreach ($t['to_approve'] as $w)
  • Setujui biaya {{ $w->number }} {{ \Illuminate\Support\Str::limit($w->title, 40) }}{{ $user->canSeeFinancials() ? Fmt::rp($w->estimated_cost) : '' }}
  • @endforeach @foreach ($t['to_verify'] as $w)
  • Verifikasi hasil {{ $w->number }} {{ \Illuminate\Support\Str::limit($w->title, 40) }}selesai {{ Fmt::dt($w->completed_at, 'd M H:i') }}
  • @endforeach @foreach ($t['transfers'] as $m)
  • Mutasi {{ $m->number }} {{ \Illuminate\Support\Str::limit($m->reason, 40) }}diajukan
  • @endforeach @foreach ($t['room_blocks'] as $b)
  • Blokir kamar {{ $b->room?->room_ref ?: $b->room?->name }} — {{ $b->workOrder?->number }}konfirmasi FO
  • @endforeach
@endif

Laporan saya masih terbuka

    @forelse ($t['my_requests'] as $r)
  • {{ $r->number }} {{ \Illuminate\Support\Str::limit($r->symptom, 50) }}
    {{ $r->location?->full_path }}
    {{ ServiceRequest::STATUSES[$r->status] }}
  • @empty
  • Tidak ada laporan terbuka. Temukan kerusakan? Tekan Scan lalu Lapor kerusakan.
  • @endforelse
@if ($kpi)

Backlog work order umur sejak dibuat

@php $maxAging = max(1, max($kpi['aging'])); @endphp @foreach ($kpi['aging'] as $label => $n)
{{ $label }}{{ $n }}
@endforeach
PM tepat waktu: {{ $kpi['pm_on_time']['note'] }}

Kondisi fisik aset A baik … E tidak layak

@php $condTotal = max(1, array_sum($kpi['conditions'])); $condColor = ['A' => '#2F7A3F', 'B' => '#6E9A4A', 'C' => '#C08A1E', 'D' => '#C0662A', 'E' => '#A8432A', '?' => '#9A8F80']; @endphp @foreach (['A', 'B', 'C', 'D', 'E', '?'] as $g) @php $n = $kpi['conditions'][$g] ?? 0; @endphp
{{ $g === '?' ? 'Belum dinilai' : \App\Models\Asset::CONDITIONS[$g] }}{{ $n }}
@endforeach
{{ $kpi['assets_de'] }} aset kondisi D/E perlu kajian · {{ $kpi['assets_out'] }} aset aktif tidak beroperasi/dalam perbaikan · {{ $kpi['warranty_90'] }} garansi berakhir ≤ 90 hari
@isset($kpi['cost'])
Biaya perawatan 30 hari: {{ Fmt::rp($kpi['cost']['cash_out']) }} cash out + {{ Fmt::rp($kpi['cost']['internal']) }} alokasi tenaga internal · provisional {{ Fmt::rp($kpi['cost']['provisional']) }}, final {{ Fmt::rp($kpi['cost']['final']) }}
@endisset
@endif