@extends('layouts.app') @section('title', 'Detail Usulan SHS') @section('content') @php // Deteksi role user login $isUkpd = auth()->user()->role === 'staff_ukpd'; // Route Dynamic Mapping $routeIndex = $isUkpd ? route('ukpd.staf.usulan.index') : route('skpd.staf.usulan-shs.index'); $routeEdit = $isUkpd ? route('ukpd.staf.usulan.edit', $usulan->id) : route('skpd.staf.usulan-shs.edit', $usulan->id); // Kuncian status edit dinamis $lockedStatuses = $isUkpd ? [ 'menunggu_konfirmasi_skpd', 'menunggu_verifikasi', 'proses_verifikasi', 'menunggu_validasi', 'validasi_success', 'disetujui', ] : ['menunggu_verifikasi', 'proses_verifikasi', 'menunggu_validasi', 'validasi_success', 'disetujui']; $canEdit = !in_array(strtolower($usulan->status ?? ''), $lockedStatuses); // Track Verifikasi Dua Pintu $bpadSudahVerif = (bool) $usulan->is_verifikasi_bpad; $bpkdSudahVerif = (bool) $usulan->is_verifikasi_bpkd; // Ambil catatan dari semua kemungkinan nama kolom di database $pesanPenolakan = $usulan->catatan_penolakan ?? ($usulan->catatan_bpad ?? ($usulan->catatan_bpkd ?? ($usulan->alasan_penolakan ?? ($usulan->catatan_verifikasi ?? null)))); // Cek status tertolak $statusStr = strtolower($usulan->status ?? ''); $isStatusTertolak = str_contains($statusStr, 'tertolak') || str_contains($statusStr, 'ditolak') || str_contains($statusStr, 'revisi'); // Audit Trail Penolak $penolakName = $usulan->rejectedByUser->name ?? null; $roleLabels = [ 'staff_bpkd' => 'Staff BPKD', 'staff_bpad' => 'Staff BPAD', 'staff_skpd' => 'Staff SKPD', 'ka_skpd' => 'Kepala SKPD', ]; $penolakRole = $roleLabels[$usulan->rejected_by_role ?? ''] ?? 'Verifikator'; @endphp
{{-- Header & Action Button --}}

Detail Rincian Usulan SHS

{{ $usulan->status_info['label'] ?? str_replace('_', ' ', $usulan->status) }}

Uraian Barang: {{ $usulan->uraian_barang }}

@if ($canEdit) Edit Usulan @endif Kembali
{{-- KOTAK ALASAN PENOLAKAN DARI BPAD / BPKD / SKPD --}} @if ($isStatusTertolak)

Catatan Penolakan:

@if ($penolakName)

Ditolak Oleh: {{ $penolakName }} ({{ $penolakRole }})

@endif

"{{ $pesanPenolakan ?: 'Pemeriksa tidak meninggalkan catatan tertulis.' }}"

@endif {{-- Indikator Verifikasi Dua Pintu (BPAD & BPKD) --}}
Progres Verifikasi Dua Pintu
{{-- Status BPAD --}}

Verifikasi Staff BPAD

@if ($bpadSudahVerif)

Oleh: {{ $usulan->verifikatorBpad->name ?? 'Staff BPAD' }}

@endif
@if ($bpadSudahVerif) Disetujui @else Menunggu @endif
{{-- Status BPKD --}}

Verifikasi Staff BPKD

@if ($bpkdSudahVerif)

Oleh: {{ $usulan->verifikatorBpkd->name ?? 'Staff BPKD' }}

@endif
@if ($bpkdSudahVerif) Disetujui @else Menunggu @endif
{{-- 1. Klasifikasi & Pengelompokan --}}

1. Klasifikasi & Pengelompokan

Kategori : {{ $usulan->kategori_id ?? '-' }}
Detail Pengajuan : {{ $usulan->detail_pengajuan_id ?? '-' }}
{{-- 2. Informasi Barang & Rekening --}}

2. Informasi Barang & Rekening

Kode Barang : {{ $usulan->kode_barang ?? '-' }}
Nama Kelompok Barang/Jasa: {{ $usulan->nama_kelompok ?? '-' }}
Kode Rekening Anggaran: {{ $usulan->kode_rekening ?? '-' }}
Uraian Barang/Jasa: {{ $usulan->uraian_barang }}
Spesifikasi Detail: {{ $usulan->spesifikasi ?? '-' }}
Satuan: {{ $usulan->satuan }}
{{-- 3. Rincian Harga & TKDN --}}

3. Rincian Harga & TKDN

Harga Tahun Berjalan

Rp {{ number_format($usulan->harga_2025 ?? 0, 0, ',', '.') }}

TKDN

{{ $usulan->tkdn ?? '0' }}%

Usulan Harga Baru

Rp {{ number_format($usulan->usulan_harga_2026 ?? 0, 0, ',', '.') }}

{{-- 4. Dokumen Lampiran --}}

4. Dokumen Lampiran Referensi

@for ($i = 1; $i <= 3; $i++) @php $field = 'lampiran_' . $i; @endphp

Lampiran {{ $i }}

@if ($usulan->$field) Buka File @else Tidak Ada File @endif
@endfor
{{-- 5. Pengaturan & Catatan Pengusulan --}}

5. Pengaturan & Catatan Pengusulan

@if ($usulan->is_khusus_skpd)
Status Khusus: Usulan ini khusus diperuntukkan bagi internal {{ $isUkpd ? 'UKPD' : 'SKPD' }}.
@endif

Keterangan / Alasan Pengusulan:

{{ $usulan->keterangan ?? 'Tidak ada catatan keterangan.' }}

@endsection