@foreach($fromDisposisi->instruksis as $instruksi)
{{ $instruksi->nama_instruksi }}
@endforeach
@endif
@endif
{{-- PAURMIN dengan type disposisi: Form Lengkapi Lembar Disposisi --}}
@if(auth()->user()->isPAURMIN() && $isDisposisi && isset($tujuanOptions) && $tujuanOptions->count() > 0)
Form Lengkapi Lembar Disposisi
- Teruskan ke KASMIN untuk verifikasi
@endif
{{-- PAURMIN dengan type teruskan: Form Teruskan Surat --}}
@if(auth()->user()->isPAURMIN() && $isTeruskan && isset($tujuanOptions) && $tujuanOptions->count() > 0)
Form Teruskan Surat
- Pimpinan Satuan/Staff
@endif
{{-- KASMIN / Operator SMIN dengan type disposisi: Form Lengkapi Lembar Disposisi (sama seperti PAURMIN) --}}
@if(auth()->user()->isKASMIN() && $isDisposisi && isset($tujuanOptions) && $tujuanOptions->count() > 0)
Form Lengkapi Lembar Disposisi
- Pimpinan Utama
@endif
{{-- KASMIN / Operator SMIN dengan type teruskan: Form Teruskan Surat (sama seperti PAURMIN) --}}
@if(auth()->user()->isKASMIN() && $isTeruskan && isset($tujuanOptions) && $tujuanOptions->count() > 0)
Form Teruskan Surat
- Pimpinan Satuan/Staff
@endif
{{-- KASMIN: Form Verifikasi Surat - Pilih tujuan Panglima/Wakil Panglima --}}
@if(auth()->user()->isKASMIN() && $suratMasuk->isMenungguVerifikasiKasmin() && !$isTeruskan && !$isDisposisi)
@php
$panglimaWakilOptions = \App\Models\User::where('is_active', true)
->whereIn('jabatan_role', ['panglima', 'wakil_panglima'])
->orderByRaw("CASE WHEN jabatan_role = 'panglima' THEN 1 WHEN jabatan_role = 'wakil_panglima' THEN 2 ELSE 3 END")
->get();
@endphp
@endif
{{-- OPERATOR TU: Form Teruskan Surat ke TU Atasan --}}
@if(auth()->user()->isOperatorTU() && !$suratMasuk->isSminPangwapangRoute() && isset($superiorTU) && $superiorTU)
Teruskan Surat ke Tata Usaha
@elseif(auth()->user()->isOperatorTU() && !$suratMasuk->isSminPangwapangRoute())
{{-- Operator TU tanpa atasan TU --}}
Tidak Dapat Meneruskan Surat
Atasan TU tidak ditemukan. Silakan hubungi administrator untuk mengkonfigurasi atasan TU Anda.
@endif
{{-- SES IT: Form Lengkapi Lembar Disposisi dan Pilih Pimpinan IT --}}
@if(auth()->user()->isSesIT() && isset($sesITOptions) && $sesITOptions->count() > 0)
Lengkapi Lembar Disposisi
- Satuan IT
@endif
{{-- TU (non-KASMIN, non-PAURMIN, non-OperatorTU): Form Teruskan Surat ke Pimpinan --}}
@if(!auth()->user()->isPAURMIN() && !auth()->user()->isKASMIN() && !auth()->user()->isOperatorSmin() && !auth()->user()->isOperatorTU() && !(auth()->user()->isSesIT() ?? false))
@php
$pimpinanTU = auth()->user()->superior;
$tuSatuan = auth()->user()->satuan;
$currentUser = auth()->user();
$isTUBagian = $currentUser->isTUBagian();
// Jika superior TU adalah wakil (jabatan_role dimulai 'wa' atau 'wakil'),
// maka cari Dan (pimpinan utama) dari superior wakil tersebut
$wakilPimpinan = null;
if ($pimpinanTU && !$isTUBagian) {
$pimpinanRole = strtolower($pimpinanTU->jabatan_role ?? '');
$isWakil = str_starts_with($pimpinanRole, 'wa') || str_starts_with($pimpinanRole, 'wakil');
if ($isWakil && $pimpinanTU->superior) {
// TU melapor ke Wakil, jadi Wakil = pimpinanTU, Dan = wakil's superior
$wakilPimpinan = $pimpinanTU;
$pimpinanTU = $pimpinanTU->superior; // Actual Dan
}
}
$pimpinanLabel = $pimpinanTU ? $pimpinanTU->jabatan_with_satuan : 'Pimpinan';
$pimpinanShort = $pimpinanTU ? $pimpinanTU->jabatan_short : 'Pimpinan';
// Find wakil pimpinan in same satuan (hanya untuk TU utama, bukan TU bagian)
if (!$isTUBagian && !$wakilPimpinan && $tuSatuan && $pimpinanTU) {
$wakilPimpinan = \App\Models\User::where('is_active', true)
->where('satuan', $tuSatuan)
->where(function($q) {
$q->where('jabatan_role', 'like', 'wa%') // wadandenma, wadangrup, etc.
->orWhere('jabatan_role', 'like', 'wakil%') // wakil_panglima, etc.
->orWhere('jabatan_role', 'like', '%waas%'); // waasren, waasintel, etc.
})
->whereIn('role', ['pimpinan_satuan', 'pimpinan_staf', 'pimpinan_2'])
->where('id', '!=', $pimpinanTU->id)
->first();
}
$wakilLabel = $wakilPimpinan ? $wakilPimpinan->jabatan_with_satuan : null;
$wakilShort = $wakilPimpinan ? $wakilPimpinan->jabatan_short : null;
$hasWakil = $wakilPimpinan !== null;
// Find Kepala Bagian/Kasi untuk satuan yang memiliki TU di sub-bagiannya
// Untuk TU utama satuan (Katuud/Paurtuud), bukan TU bagian
$kepalaBagianList = collect();
$isMainTU = !$isTUBagian && $currentUser->isTU() &&
(str_contains(strtolower($currentUser->jabatan_role), 'katuud') ||
str_contains(strtolower($currentUser->jabatan_role), 'kaurtuud') ||
str_contains(strtolower($currentUser->jabatan_role), 'paurtuud') ||
(str_contains(strtolower($currentUser->sub_unit ?? ''), 'tuud') &&
!str_contains(strtolower($currentUser->sub_unit ?? ''), 'urtuud')));
$isSatduklog = strtoupper($tuSatuan ?? '') === 'SATDUKLOG';
$isIT = strtoupper($tuSatuan ?? '') === 'IT';
if ($isMainTU && $tuSatuan && !$isSatduklog) {
// Cara 1: Cari kepala_bagian via TU bagian (superior dari TU bagian)
$bagianTUs = \App\Models\User::where('is_active', true)
->where('satuan', $tuSatuan)
->where('role', 'tata_usaha')
->where('id', '!=', $currentUser->id)
->whereNotNull('superior_id')
->get();
foreach ($bagianTUs as $bagianTU) {
$kepalaBagian = $bagianTU->superior;
if ($kepalaBagian &&
$kepalaBagian->role === 'kepala_bagian' &&
!$kepalaBagianList->contains('id', $kepalaBagian->id)) {
$kepalaBagianList->push($kepalaBagian);
}
}
// Urutkan berdasarkan sub_unit
$kepalaBagianList = $kepalaBagianList->sortBy('sub_unit');
}
// Untuk satuan IT: HANYA forward ke SES IT, tidak langsung ke pimpinan
// SES IT yang akan melengkapi lembar disposisi dan memilih pimpinan (IR, WAIR, IRUTUM, IRUTBEN)
$forceOnlySesIT = false;
if ($isIT && $pimpinanTU && $isMainTU) {
$sesIT = \App\Models\User::where('is_active', true)
->where('satuan', 'IT')
->where('jabatan_role', 'ses_it')
->first();
if ($sesIT) {
// Reset kepalaBagianList dan hanya masukkan SES IT
$kepalaBagianList = collect([$sesIT]);
$forceOnlySesIT = true;
}
}
$hasKepalaBagian = $kepalaBagianList->isNotEmpty();
@endphp