integarasi admin ke so dan penambahan menu otorisator so

This commit is contained in:
majid
2024-10-08 14:35:59 +07:00
parent 0b5820375b
commit 0fbbb8f081
8 changed files with 619 additions and 96 deletions

View File

@@ -30,10 +30,11 @@ class PenilaianController extends Controller
/**
* Store a newly created resource in storage.
*/
public function store(PenilaianRequest $request)
{
//print_r($request->all());exit;
$validatedData = $request->validated();
if ($validatedData) {
try {
$penilaian = Penilaian::create($validatedData);
@@ -98,12 +99,28 @@ class PenilaianController extends Controller
],
)->findOrFail($id);
$jenisPenilaian = JenisPenilaian::all();
$teamPenilai = Teams::with(['regions', 'teamsUsers'])->get();
$idPenilaian = $permohonan->jenis_penilaian_id;
$idRegion = $permohonan->region_id;
$jenisPenilaian = JenisPenilaian::find($idPenilaian);
$teamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user', ])
->whereHas('regions', function ($q) use ($idRegion) {
$q->where('id', $idRegion);
})->get();
$regionName = null;
foreach ($teamPenilai as $item) {
$regionName = $item->regions;
}
// dd($teamPenilai);
$penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first();
return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian'));
return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName'));
}
/**
@@ -128,15 +145,13 @@ class PenilaianController extends Controller
'status' => 'revisi',
];
// dump($dataToUpdate);
$permohonan = Permohonan::where('nomor_registrasi', $nomor_registrasi)->first();
$permohonan->update($dataToUpdate);
return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil direvisi');
} catch (Exception $e) {
dump($e->getMessage());
// return redirect()->route('penilaian.index')->with('error', $e->getMessage());
return redirect()->route('penilaian.index')->with('error', $e->getMessage());
}
}
}
@@ -164,7 +179,7 @@ class PenilaianController extends Controller
});
}
$query->whereRaw('LOWER(status) = ?', ['register']);
$query->whereRaw('LOWER(status) = ?', ['registered']);
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
@@ -205,20 +220,132 @@ class PenilaianController extends Controller
public function getUserTeams($id)
{
$teamsUser = TeamsUsers::where('teams_id', $id)->get();
$userIds = $teamsUser->pluck('user_id');
$users = User::whereIn('id', $userIds)
->with('roles')
->get();
if ($users->isNotEmpty()) {
return response()->json($users, 200);
public function otorisator(Request $request){
$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;
}
return response()->json([], 200);
return view('lpj::penilaian.otorisator.index', compact('header'));
}
public function show($id){
$permohonan = Permohonan::find($id);
return view('lpj::penilaian.otorisator.show', compact('permohonan'));
}
public function dataForAuthorization(Request $request, $otorisator)
{
if (is_null($this->user) || !$this->user->can('debitur.view')) {
// abort(403, 'Sorry! You are not allowed to view users.');
}
$status = '';
switch ($otorisator) {
case 'Pelaporan':
$status = 'proses paparan';
break;
case 'Pembayaran':
$status = 'proses pembayaran';
break;
default:
$status = '';
break;
}
$query = Permohonan::query();
// Pencarian berdasarkan parameter search
if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
$q->orWhere('status', 'LIKE', '%' . $search . '%');
});
}
if (!empty($otorisator)) {
$query->whereRaw('LOWER(status) = ?', [strtolower($status)]);
}
// Sorting berdasarkan sortField dan sortOrder
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
}
// Hitung total records
$totalRecords = $query->count();
// Pagination (default page size 10)
$size = $request->get('size', 10);
if ($size == 0) {
$size = 10;
}
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page', 1);
$offset = ($page - 1) * $size;
$query->skip($offset)->take($size);
}
// Filtered records
$filteredRecords = $query->count();
// Ambil data dengan relasi
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
// Hitung jumlah halaman
$pageCount = ceil($totalRecords / $size);
// Ambil current page
$currentPage = max(1, $request->get('page', 1));
// Return JSON response
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
}