Skip to content

Commit

Permalink
add dynamic category in personel cabang
Browse files Browse the repository at this point in the history
  • Loading branch information
punkestu committed Jan 3, 2025
1 parent 7793267 commit 90bc0df
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 21 deletions.
32 changes: 23 additions & 9 deletions app/Http/Controllers/PersonelController.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ public function cabang(Request $request, $id)
$jabatan = $jabatan->map(function ($jabatan) {
return $jabatan->pluck('jabatan')->toArray();
})->toArray();
$categories = array_keys($jabatan);
$jabatans = PersonelJabatanCategory::all()->select('jabatan');
if ($request->tab === 'ACO') {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page, $jabatan) {
$query->with(['kompetensis', 'pengajuan_pindah' => [
Expand Down Expand Up @@ -145,15 +147,26 @@ public function cabang(Request $request, $id)
})->limit($limit)->offset($page * $limit);
}])->find($id);
} else {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page, $jabatan) {
$query->with(['kompetensis', 'pengajuan_pindah' => [
'lokasiAwal',
'lokasiTujuan',
]])->where(function ($query) use ($jabatan) {
//$query->whereNotIn('posisi', ['ATC (APS)', 'ACO', 'AIS', 'ATFM', 'TAPOR', 'ATSSystem', 'AERONAUTICAL COMMUNICATION OFFICER', 'AERONAUTICAL INFORMATION SERVICE', 'AIR TRAFFIC FLOW MANAGEMENT', 'TOWER APPROACH', 'STAF PELAPORAN DATA', 'AIR TRAFFIC SERVICES SYSTEM', 'AIR TRAFFIC CONTROLLER'])->whereNot('posisi', 'LIKE', 'ATC%')->whereNot('posisi', 'LIKE', 'AIS%');
$query->whereNotIn('posisi', $jabatan['ACO'] ?? [])->whereNotIn('posisi', $jabatan['AIS'] ?? [])->whereNotIn('posisi', $jabatan['ATFM'] ?? [])->whereNotIn('posisi', $jabatan['TAPOR'] ?? [])->whereNotIn('posisi', $jabatan['ATSSystem'] ?? [])->whereNotIn('posisi', $jabatan['ATC'] ?? [])->whereNot('posisi', 'LIKE', 'ATC%')->whereNot('posisi', 'LIKE', 'AIS%')->whereNot('posisi', 'LIKE', 'ATFM%')->whereNot('posisi', 'LIKE', 'TAPOR%')->whereNot('posisi', 'LIKE', 'ATSSystem%')->whereNot('posisi', 'LIKE', 'ACO%');
})->limit($limit)->offset($page * $limit);
}])->find($id);
if ($request->tab && array_key_exists($request->tab, $jabatan)) {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page, $jabatan, $request) {
$query->with(['kompetensis', 'pengajuan_pindah' => [
'lokasiAwal',
'lokasiTujuan',
]])->where(function ($query) use ($jabatan, $request) {
$query->whereIn('posisi', $jabatan[$request->tab] ?? []);
})->limit($limit)->offset($page * $limit);
}])->find($id);
} else {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page, $jabatans) {
$query->with(['kompetensis', 'pengajuan_pindah' => [
'lokasiAwal',
'lokasiTujuan',
]])->where(function ($query) use ($jabatans) {
//$query->whereNotIn('posisi', ['ATC (APS)', 'ACO', 'AIS', 'ATFM', 'TAPOR', 'ATSSystem', 'AERONAUTICAL COMMUNICATION OFFICER', 'AERONAUTICAL INFORMATION SERVICE', 'AIR TRAFFIC FLOW MANAGEMENT', 'TOWER APPROACH', 'STAF PELAPORAN DATA', 'AIR TRAFFIC SERVICES SYSTEM', 'AIR TRAFFIC CONTROLLER'])->whereNot('posisi', 'LIKE', 'ATC%')->whereNot('posisi', 'LIKE', 'AIS%');
$query->whereNotIn('posisi', $jabatans)->whereNot('posisi', 'LIKE', 'ATC%')->whereNot('posisi', 'LIKE', 'AIS%')->whereNot('posisi', 'LIKE', 'ATFM%')->whereNot('posisi', 'LIKE', 'TAPOR%')->whereNot('posisi', 'LIKE', 'ATSSystem%')->whereNot('posisi', 'LIKE', 'ACO%');
})->limit($limit)->offset($page * $limit);
}])->find($id);
}
}
if (!$cabang) abort(404);
if ($cabang->nama === 'PUSAT INFORMASI AERONAUTIKA') {
Expand All @@ -171,6 +184,7 @@ public function cabang(Request $request, $id)
'cabang' => $cabang,
'tab' => $request->tab ?? 'ATC',
'page' => $page ?? 0,
'categories' => $categories,
]);
}

Expand Down
16 changes: 4 additions & 12 deletions resources/views/personel/cabang.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,10 @@ class="text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounde
<div class="bg-white rounded-lg border-2 border-[#293676]">
<div class="grid grid-cols-12 gap-4 items-center p-4 border-b-2 border-[#293676] text-[#293676]">
<aside class="flex gap-4 col-span-12 overflow-x-auto">
<a class="flex-grow {{ $tab == 'ATC' ? 'font-semibold underline' : '' }}"
href="/personel/cabang/{{ $cabang->id }}?tab=ATC">Personel ATC</a>
<a class="flex-grow {{ $tab == 'ACO' ? 'font-semibold underline' : '' }}"
href="/personel/cabang/{{ $cabang->id }}?tab=ACO">Personel ACO</a>
<a class="flex-grow {{ $tab == 'AIS' ? 'font-semibold underline' : '' }}"
href="/personel/cabang/{{ $cabang->id }}?tab=AIS">Personel AIS</a>
<a class="flex-grow {{ $tab == 'ATFM' ? 'font-semibold underline' : '' }}"
href="/personel/cabang/{{ $cabang->id }}?tab=ATFM">Personel ATFM</a>
<a class="flex-grow {{ $tab == 'TAPOR' ? 'font-semibold underline' : '' }}"
href="/personel/cabang/{{ $cabang->id }}?tab=TAPOR">Personel TAPOR</a>
<a class="flex-grow {{ $tab == 'ATSSystem' ? 'font-semibold underline' : '' }}"
href="/personel/cabang/{{ $cabang->id }}?tab=ATSSystem">Personel ATS System</a>
@foreach ($categories as $category)
<a class="flex-grow {{ $tab == $category ? 'font-semibold underline' : '' }}"
href="/personel/cabang/{{ $cabang->id }}?tab={{ $category }}">Personel {{ $category }}</a>
@endforeach
<a class="flex-grow {{ $tab == 'lainnya' ? 'font-semibold underline' : '' }}"
href="/personel/cabang/{{ $cabang->id }}?tab=lainnya">Lainnya</a>
</aside>
Expand Down

0 comments on commit 90bc0df

Please sign in to comment.