@php
$currentTujuan = old('tujuan_akhir_id', $suratMasuk->tujuan_akhir_id);
// Group SMIN (KASMIN & PAURMIN) - tampil sebagai KASMIN tapi value PAURMIN
$sminUsers = $assignableUsers->filter(function($user) {
return in_array($user->role, ['kasmin', 'paurmin', 'paurmin_smin']) ||
$user->satuan === 'SMIN' ||
in_array($user->jabatan_role, ['kasmin', 'paurmin', 'paurmin_smin']);
});
// Cari PAURMIN untuk dijadikan value (cek role terlebih dahulu)
$paurminUser = $sminUsers->firstWhere('role', 'paurmin', 'paurmin_smin')
?? $sminUsers->firstWhere('jabatan_role', 'paurmin', 'paurmin_smin');
// Tata Usaha (selain SMIN) dengan urutan custom
$satuanOrder = [
'IT' => 1,
'SINTEL' => 2,
'SOPS' => 3,
'SLOG' => 4,
'SPERS' => 5,
'SREN' => 6,
'PAMEN AHLI' => 7,
'SATDUKLOG' => 8,
'SATDUKMIN' => 9,
'PUSKODALOPS' => 10,
'DENMA' => 11,
'PEN' => 12,
'SAT SIBER' => 13,
'DENPOM' => 14,
'PUSDIKLATPASSUS' => 15,
'GRUP 1' => 16,
'GRUP 2' => 17,
'GRUP 3' => 18,
'GRUP 4' => 19,
'GRUP 5' => 20,
'GRUP 6' => 21,
'SAT 71' => 22,
'SAT 81' => 23,
'DEN INTEL' => 24,
'RUMKIT TK III' => 25,
'SETUM' => 26,
];
// Ambil semua TU users (termasuk bagian SATDUKLOG/SATDUKMIN)
$tuUsers = $assignableUsers->filter(function($user) {
return $user->role === 'tata_usaha' &&
!in_array($user->satuan, ['SMIN', 'KASMIN']) &&
!in_array($user->jabatan_role, ['kasmin', 'paurmin', 'paurmin_smin']);
})
->groupBy(function($user) {
if (in_array($user->satuan, ['SATDUKLOG', 'SATDUKMIN']) && $user->sub_unit) {
return $user->satuan . '|' . $user->sub_unit;
}
return $user->satuan;
})
->map(function($group) {
return $group->first();
})
->sortBy(function($user) use ($satuanOrder) {
$order = $satuanOrder[$user->satuan] ?? 999;
if (in_array($user->satuan, ['SATDUKLOG', 'SATDUKMIN']) && $user->sub_unit) {
$subCode = preg_replace('/[^0-9]/', '', substr($user->sub_unit, 0, 4));
$isMainTuud = str_contains(strtoupper($user->sub_unit), 'TUUD') && !str_contains(strtoupper($user->sub_unit), 'URTUUD');
if ($isMainTuud) {
return $order + 0.0;
}
return $order + 0.1 + (intval($subCode) * 0.001);
}
return $order;
});
@endphp
{{-- KASMIN Section (untuk SMIN) --}}
@if($paurminUser)
Panglima dan Wakil Panglima
@endif
{{-- Tata Usaha Section --}}
@if($tuUsers->count() > 0)
@php
$tuUsersArray = $tuUsers->values();
$colCount = 3;
$perColumn = (int) ceil($tuUsersArray->count() / $colCount);
$tuCol1 = $tuUsersArray->slice(0, $perColumn);
$tuCol2 = $tuUsersArray->slice($perColumn, $perColumn);
$tuCol3 = $tuUsersArray->slice($perColumn * 2);
@endphp
Tata Usaha
@foreach([$tuCol1, $tuCol2, $tuCol3] as $column)
@foreach($column as $assignUser)
@php
$isBagian = in_array($assignUser->satuan, ['SATDUKLOG', 'SATDUKMIN']) && $assignUser->sub_unit;
$isMainTuud = $isBagian && str_contains(strtoupper($assignUser->sub_unit), 'TUUD') && !str_contains(strtoupper($assignUser->sub_unit), 'URTUUD');
if ($isBagian && !$isMainTuud) {
$displayLabel = preg_replace('/^.*?URTUUD\s*/i', '', $assignUser->sub_unit);
if (empty(trim($displayLabel))) {
$displayLabel = trim(preg_replace('/^[A-Z0-9]+\s+/i', '', $assignUser->sub_unit));
}
$displayLabel = strtoupper(trim($displayLabel));
} else {
$displayLabel = $assignUser->satuan;
}
@endphp
@endforeach
@endforeach
@endif