update data pemanding dan otorisator, pembuatan seeder kjpp mengunakan exel

This commit is contained in:
majid
2024-12-11 17:34:51 +07:00
parent 5dc95d3339
commit bb1ad785a5
14 changed files with 1136 additions and 766 deletions

View File

@@ -353,39 +353,92 @@ class PenilaianController extends Controller
{
$type = $request->route('type');
$header = '';
switch ($type) {
case 'pelaporan':
$header = 'Pelaporan';
break;
case 'pembayaran':
$header = 'Pembayaran';
break;
case 'pembatalan':
$header = 'Pembatalan';
break;
case 'sla':
$header = 'SLA';
break;
default:
$header = 'Pelaporan';
break;
}
$headers = [
'pelaporan' => 'Pelaporan',
'pembayaran' => 'Pembayaran',
'pembatalan' => 'Pembatalan',
'sla' => 'SLA',
];
$header = $headers[$type] ?? 'Pelaporan';
return view('lpj::penilaian.otorisator.index', compact('header'));
}
public function show($id)
public function show($id, $type)
{
$headers = [
'Pelaporan' => 'Pelaporan',
'Pembayaran' => 'Pembayaran',
'Pembatalan' => 'Pembatalan',
'SLA' => 'SLA',
];
$header = $headers[$type] ?? 'Pelaporan';
$permohonan = Permohonan::find($id);
return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header'));
}
public function otorisatorUpdate($id, $context)
{
$permohonan = Permohonan::find($id);
if (!$permohonan) {
return response()->json([
'message' => 'Data permohonan tidak ditemukan.'
], 404);
}
return view('lpj::penilaian.otorisator.show', compact('permohonan'));
switch (strtolower($context)) {
case 'pembayaran':
$newStatus = $permohonan->status_bayar === 'sudah_bayar' ? 'belum_bayar' : 'sudah_bayar';
$permohonan->update([
'status_bayar' => $newStatus
]);
break;
case 'pembatalan':
$permohonan->update([
'authorized_status' => 1,
]);
break;
case 'pelaporan':
$permohonan->update([
'status' => 'disetujui',
]);
break;
case 'sla':
$permohonan->update([
'status' => 'order',
]);
break;
default:
return response()->json([
'message' => 'Konteks otorisasi tidak valid.'
], 400);
}
return response()->json([
'message' => 'Otorisasi berhasil dilakukan.',
'data' => $permohonan
]);
}
public function dataForAuthorization(Request $request, $otorisator)
{
@@ -394,22 +447,14 @@ class PenilaianController extends Controller
}
$status = '';
switch ($otorisator) {
case 'Pelaporan':
$status = 'proses paparan';
break;
case 'Pembayaran':
$status = 'proses';
break;
case 'Pembatalan':
$status = 'order';
break;
default:
$status = '';
break;
}
// Tentukan status berdasarkan otorisator
$status = match ($otorisator) {
'Pelaporan' => 'proses laporan',
'Pembayaran' => 'proses',
'Pembatalan' => 'proses',
'SLA' => 'proses',
default => '',
};
$query = Permohonan::query();
@@ -432,11 +477,18 @@ class PenilaianController extends Controller
if (!empty($otorisator)) {
if ($status == 'proses') {
$query->whereIn('status_bayar', ['sudah_bayar', 'belum_bayar']);
} else {
$query->whereRaw('LOWER(status) = ?', [strtolower($status)]);
}
// else {
// $query->whereRaw('LOWER(status) = ?', [strtolower($status)]);
// }
}
// Filter berdasarkan region user yang login
$query->whereHas('region.teams.teamsUsers', function ($q) {
$q->where('user_id', Auth::id());
});
// Sorting berdasarkan sortField dan sortOrder
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
@@ -464,7 +516,8 @@ class PenilaianController extends Controller
$filteredRecords = $query->count();
// Ambil data dengan relasi
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'region.teams.teamsUsers'])->get();
// Hitung jumlah halaman
$pageCount = ceil($totalRecords / $size);