Skip to content

Commit

Permalink
revisi
Browse files Browse the repository at this point in the history
  • Loading branch information
punkestu committed Nov 5, 2024
1 parent 2ef6c67 commit 7764110
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 91 deletions.
28 changes: 21 additions & 7 deletions app/Http/Controllers/PersonelController.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,31 +73,45 @@ public function cabang(Request $request, $id)
$limit = 100;
if ($request->tab === 'ACO') {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page) {
$query->with(['kompetensis'])->where('posisi', 'ACO')->orWhere('posisi', 'AERONAUTICAL COMMUNICATION OFFICER')->limit($limit)->offset($page * $limit);
$query->with(['kompetensis'])->where(function ($query) {
$query->where('posisi', 'AERONAUTICAL COMMUNICATION OFFICER')->orWhere('posisi', 'ACO');
})->limit($limit)->offset($page * $limit);
}])->find($id);
} else if ($request->tab === 'AIS') {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page) {
$query->with(['kompetensis'])->where('posisi', 'AIS')->orWhere('posisi', 'AERONAUTICAL INFORMATION SERVICE')->orWhere('posisi', 'LIKE', 'AIS%')->limit($limit)->offset($page * $limit);
$query->with(['kompetensis'])->where(function ($query) {
$query->where('posisi', 'AIS')->orWhere('posisi', 'AERONAUTICAL INFORMATION SERVICE')->orWhere('posisi', 'LIKE', 'AIS%');
})->limit($limit)->offset($page * $limit);
}])->find($id);
} else if ($request->tab === 'ATFM') {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page) {
$query->with(['kompetensis'])->where('posisi', 'ATFM')->orWhere('posisi', 'AIR TRAFFIC FLOW MANAGEMENT')->orWhere('posisi', 'STAF ATFM')->limit($limit)->offset($page * $limit);
$query->with(['kompetensis'])->where(function ($query) {
$query->where('posisi', 'ATFM')->orWhere('posisi', 'AIR TRAFFIC FLOW MANAGEMENT')->orWhere('posisi', 'STAF ATFM');
})->limit($limit)->offset($page * $limit);
}])->find($id);
} else if ($request->tab === 'TAPOR') {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page) {
$query->with(['kompetensis'])->where('posisi', 'TAPOR')->orWhere('posisi', 'STAF PELAPORAN DATA')->limit($limit)->offset($page * $limit);
$query->with(['kompetensis'])->where(function ($query) {
$query->where('posisi', 'TAPOR')->orWhere('posisi', 'STAF PELAPORAN DATA');
})->limit($limit)->offset($page * $limit);
}])->find($id);
} else if ($request->tab === 'ATSSystem') {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page) {
$query->with(['kompetensis'])->where('posisi', 'ATSSystem')->orWhere('posisi', 'AIR TRAFFIC SERVICES SYSTEM')->orWhere('posisi', 'SPESIALIS ATS SYSTEM')->limit($limit)->offset($page * $limit);
$query->with(['kompetensis'])->where(function ($query) {
$query->where('posisi', 'ATSSystem')->orWhere('posisi', 'AIR TRAFFIC SERVICES SYSTEM')->orWhere('posisi', 'SPESIALIS ATS SYSTEM');
})->limit($limit)->offset($page * $limit);
}])->find($id);
} else if ($request->tab === 'ATC') {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page) {
$query->with(['kompetensis'])->where('posisi', 'LIKE', 'ATC%')->orWhere('posisi', 'AIR TRAFFIC CONTROLLER')->limit($limit)->offset($page * $limit);
$query->with(['kompetensis'])->where(function ($query) {
$query->where('posisi', 'LIKE', 'ATC%')->orWhere('posisi', 'AIR TRAFFIC CONTROLLER');
})->limit($limit)->offset($page * $limit);
}])->find($id);
} else {
$cabang = Cabang::with(['personels' => function ($query) use ($limit, $page) {
$query->with(['kompetensis'])->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%')->limit($limit)->offset($page * $limit);
$query->with(['kompetensis'])->where(function ($query) {
$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%');
})->limit($limit)->offset($page * $limit);
}])->find($id);
}
if (!$cabang) abort(404);
Expand Down
4 changes: 2 additions & 2 deletions resources/views/rotasi/cabang/detail.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ class="{{ $skalaPersonelATC >= 10 ? 'w-12 h-12' : 'w-8 h-8' }} aspect-square bg-
<h2 class="font-bold text-xl text-center">ATC</h2>
<hr class="border-[1px] my-1">
<p class="font-medium ms-4">Jumlah Eksisting {{ $cabang->jumlah_personel }} Orang</p>
<p class="font-medium ms-4">Jumlah FRMS Maksimal {{ $cabang->formasi }} Orang</p>
<p class="font-medium ms-4">Jumlah FRMS Optimal {{ $cabang->formasi }} Orang</p>
<p class="font-medium ms-4">Jumlah FRMS Minimal {{ $cabang->frms }} Orang</p>
</div>
<div class="col-span-2 sm:col-span-1 border-4 border-[#003285] rounded-lg p-2 grid">
Expand Down Expand Up @@ -207,7 +207,7 @@ class="font-medium px-4 py-2 {{ $loop->index % 2 === 0 ? 'bg-slate-200' : '' }}
{{ $cabang->jumlah_personel_ats_system }},
],
}, {
name: 'Maksimal',
name: 'Optimal',
data: [
{{ $cabang->formasi }},
{{ $cabang->formasi_aco }},
Expand Down
146 changes: 72 additions & 74 deletions resources/views/rotasi/pengajuan/input.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -401,86 +401,84 @@ function kompetensiBindDeleteBtn(id) {
});
}
});
@can('admin')
abnormalCheckbox.addEventListener('change', function() {
const lokasiAwalID = lokasiAwal.value;
if (!this.checked) {
const cabangTujuan = fetch('/api/rotasi/cabang-same-kelas/' + lokasiAwalID)
.then(response => response.json())
.then(data => {
const lokasiTujuan = document.getElementById('lokasi_tujuan');
const lokasiTujuanAlt = document.getElementById('lokasi_tujuan_alt');
const lokasiTujuanAlt2 = document.getElementById('lokasi_tujuan_alt2');
lokasiTujuan.innerHTML = '<option value>--- Pilih Lokasi Tujuan ---</option>';
lokasiTujuanAlt.innerHTML =
'<option value>--- Pilih Lokasi Tujuan Alternatif ---</option>';
lokasiTujuanAlt2.innerHTML =
'<option value>--- Pilih Lokasi Tujuan Alternatif 2 ---</option>';
data.forEach(cabang => {
const option = document.createElement('option');
option.id = 'lokasi-tujuan-' + cabang.id;
option.value = cabang.id;
option.innerText = cabang.nama;
option.selected = cabang.id == {{ old('lokasi_tujuan_id') ?? -1 }};
lokasiTujuan.appendChild(option);
abnormalCheckbox.addEventListener('change', function() {
const lokasiAwalID = lokasiAwal.value;
if (!this.checked) {
const cabangTujuan = fetch('/api/rotasi/cabang-same-kelas/' + lokasiAwalID)
.then(response => response.json())
.then(data => {
const lokasiTujuan = document.getElementById('lokasi_tujuan');
const lokasiTujuanAlt = document.getElementById('lokasi_tujuan_alt');
const lokasiTujuanAlt2 = document.getElementById('lokasi_tujuan_alt2');
lokasiTujuan.innerHTML = '<option value>--- Pilih Lokasi Tujuan ---</option>';
lokasiTujuanAlt.innerHTML =
'<option value>--- Pilih Lokasi Tujuan Alternatif ---</option>';
lokasiTujuanAlt2.innerHTML =
'<option value>--- Pilih Lokasi Tujuan Alternatif 2 ---</option>';
data.forEach(cabang => {
const option = document.createElement('option');
option.id = 'lokasi-tujuan-' + cabang.id;
option.value = cabang.id;
option.innerText = cabang.nama;
option.selected = cabang.id == {{ old('lokasi_tujuan_id') ?? -1 }};
lokasiTujuan.appendChild(option);
const optionAlt = document.createElement('option');
optionAlt.id = 'lokasi-tujuan-alt-' + cabang.id;
optionAlt.value = cabang.id;
optionAlt.innerText = cabang.nama;
optionAlt.selected = cabang.id ==
{{ old('lokasi_tujuan_alt_id') ?? -1 }};
lokasiTujuanAlt.appendChild(optionAlt);
const optionAlt = document.createElement('option');
optionAlt.id = 'lokasi-tujuan-alt-' + cabang.id;
optionAlt.value = cabang.id;
optionAlt.innerText = cabang.nama;
optionAlt.selected = cabang.id ==
{{ old('lokasi_tujuan_alt_id') ?? -1 }};
lokasiTujuanAlt.appendChild(optionAlt);
const optionAlt2 = document.createElement('option');
optionAlt2.id = 'lokasi-tujuan-alt2-' + cabang.id;
optionAlt2.value = cabang.id;
optionAlt2.innerText = cabang.nama;
optionAlt2.selected = cabang.id ==
{{ old('lokasi_tujuan_alt2_id') ?? -1 }};
lokasiTujuanAlt2.appendChild(optionAlt2);
});
const optionAlt2 = document.createElement('option');
optionAlt2.id = 'lokasi-tujuan-alt2-' + cabang.id;
optionAlt2.value = cabang.id;
optionAlt2.innerText = cabang.nama;
optionAlt2.selected = cabang.id ==
{{ old('lokasi_tujuan_alt2_id') ?? -1 }};
lokasiTujuanAlt2.appendChild(optionAlt2);
});
} else {
const cabangTujuan = fetch('/api/rotasi/cabang')
.then(response => response.json())
.then(data => {
const lokasiTujuan = document.getElementById('lokasi_tujuan');
const lokasiTujuanAlt = document.getElementById('lokasi_tujuan_alt');
const lokasiTujuanAlt2 = document.getElementById('lokasi_tujuan_alt2');
lokasiTujuan.innerHTML = '<option value>--- Pilih Lokasi Tujuan ---</option>';
lokasiTujuanAlt.innerHTML =
'<option value>--- Pilih Lokasi Tujuan Alternatif ---</option>';
lokasiTujuanAlt2.innerHTML =
'<option value>--- Pilih Lokasi Tujuan Alternatif 2 ---</option>';
data.forEach(cabang => {
const option = document.createElement('option');
option.id = 'lokasi-tujuan-' + cabang.id;
option.value = cabang.id;
option.innerText = cabang.nama;
option.selected = cabang.id == {{ old('lokasi_tujuan_id') ?? -1 }};
lokasiTujuan.appendChild(option);
});
} else {
const cabangTujuan = fetch('/api/rotasi/cabang')
.then(response => response.json())
.then(data => {
const lokasiTujuan = document.getElementById('lokasi_tujuan');
const lokasiTujuanAlt = document.getElementById('lokasi_tujuan_alt');
const lokasiTujuanAlt2 = document.getElementById('lokasi_tujuan_alt2');
lokasiTujuan.innerHTML = '<option value>--- Pilih Lokasi Tujuan ---</option>';
lokasiTujuanAlt.innerHTML =
'<option value>--- Pilih Lokasi Tujuan Alternatif ---</option>';
lokasiTujuanAlt2.innerHTML =
'<option value>--- Pilih Lokasi Tujuan Alternatif 2 ---</option>';
data.forEach(cabang => {
const option = document.createElement('option');
option.id = 'lokasi-tujuan-' + cabang.id;
option.value = cabang.id;
option.innerText = cabang.nama;
option.selected = cabang.id == {{ old('lokasi_tujuan_id') ?? -1 }};
lokasiTujuan.appendChild(option);
const optionAlt = document.createElement('option');
optionAlt.id = 'lokasi-tujuan-alt-' + cabang.id;
optionAlt.value = cabang.id;
optionAlt.innerText = cabang.nama;
optionAlt.selected = cabang.id ==
{{ old('lokasi_tujuan_alt_id') ?? -1 }};
lokasiTujuanAlt.appendChild(optionAlt);
const optionAlt = document.createElement('option');
optionAlt.id = 'lokasi-tujuan-alt-' + cabang.id;
optionAlt.value = cabang.id;
optionAlt.innerText = cabang.nama;
optionAlt.selected = cabang.id ==
{{ old('lokasi_tujuan_alt_id') ?? -1 }};
lokasiTujuanAlt.appendChild(optionAlt);
const optionAlt2 = document.createElement('option');
optionAlt2.id = 'lokasi-tujuan-alt2-' + cabang.id;
optionAlt2.value = cabang.id;
optionAlt2.innerText = cabang.nama;
optionAlt2.selected = cabang.id ==
{{ old('lokasi_tujuan_alt2_id') ?? -1 }};
lokasiTujuanAlt2.appendChild(optionAlt2);
});
const optionAlt2 = document.createElement('option');
optionAlt2.id = 'lokasi-tujuan-alt2-' + cabang.id;
optionAlt2.value = cabang.id;
optionAlt2.innerText = cabang.nama;
optionAlt2.selected = cabang.id ==
{{ old('lokasi_tujuan_alt2_id') ?? -1 }};
lokasiTujuanAlt2.appendChild(optionAlt2);
});
}
});
@endcan
});
}
});
</script>
<script>
// counter for kompetensi id
Expand Down
16 changes: 8 additions & 8 deletions resources/views/welcome.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
<div class="grid md:grid-cols-2 gap-4 mt-4">
<div class="bg-[#003285] text-white p-4 rounded-md">
<p class="font-semibold text-2xl text-center">{{ $cabangs->count() }}+</p>
<p class="opacity-60 text-center">Branch Offices</p>
<p class="opacity-60 text-center">KANTOR CABANG</p>
</div>
<a href="/personel" class="bg-[#003285] text-white p-4 rounded-md">
<p class="font-semibold text-2xl text-center">{{ $personel }}+</p>
<p class="opacity-60 text-center">Employees</p>
<p class="opacity-60 text-center">SDM OPERASI</p>
</a>
</div>
</aside>
Expand All @@ -41,14 +41,14 @@
</section>
<div class="grid md:grid-cols-3 gap-4">
<a href="/rotasi/cabang"
class="bg-[#003285] text-white font-semibold text-lg 2xl:text-xl flex flex-col justify-center items-center gap-3 p-8 rounded-md 2xl:rounded-2xl opacity-90 hover:opacity-100 duration-300"><img
src="/images/icons/rotasi.svg" alt="rotasi" />Rotasi</a>
class="bg-[#003285] text-white font-semibold text-lg 2xl:text-xl flex flex-col justify-center items-center p-8 rounded-md 2xl:rounded-2xl opacity-90 hover:opacity-100 duration-300"><img
src="/images/icons/rotasi.svg" alt="rotasi" class="w-28" />Rotasi</a>
<a href="/promosi"
class="bg-[#003285] text-white font-semibold text-lg 2xl:text-xl flex flex-col justify-center items-center gap-3 p-8 rounded-md 2xl:rounded-2xl opacity-90 hover:opacity-100 duration-300">
<img src="/images/icons/promosi.svg" alt="promosi" />Promosi</a>
class="bg-[#003285] text-white font-semibold text-lg 2xl:text-xl flex flex-col justify-center items-center p-8 rounded-md 2xl:rounded-2xl opacity-90 hover:opacity-100 duration-300">
<img src="/images/icons/promosi.svg" alt="promosi" class="w-28" />Promosi</a>
<a href="/demosi"
class="bg-[#003285] text-white font-semibold text-lg 2xl:text-xl flex flex-col justify-center items-center gap-3 p-8 rounded-md 2xl:rounded-2xl opacity-90 hover:opacity-100 duration-300">
<img src="/images/icons/demosi.svg" alt="demosi" />Demosi</a>
class="bg-[#003285] text-white font-semibold text-lg 2xl:text-xl flex flex-col justify-center items-center p-8 rounded-md 2xl:rounded-2xl opacity-90 hover:opacity-100 duration-300">
<img src="/images/icons/demosi.svg" alt="demosi" class="w-28" />Demosi</a>
</div>
</main>
@include('components.footer')
Expand Down

0 comments on commit 7764110

Please sign in to comment.