diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index ed82be9..d9bf2fe 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -7,6 +7,7 @@ use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\Penilaian; use Modules\Lpj\Models\JenisDokumen; + use Modules\Usermanagement\Models\User; function formatTanggalIndonesia($date, $time = false) { @@ -131,10 +132,10 @@ $noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1)); } // jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001 - } - + } + } - + return 'NP' . Carbon::now()->format('y') . $noUrutAkhirString; } @@ -143,7 +144,7 @@ return ctype_digit($str); } - // generate last penawaran.no_spk + // generate last penawaran.no_spk function onLastnumberCodePenawaranSPK($jenis_laporan_code): string { @@ -311,3 +312,7 @@ return $maxSizeInKB; } + function getUser($userId){ + return User::find($userId); + } + diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index c06db93..3c4db49 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -4,6 +4,7 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use Modules\Lpj\Models\Permohonan; class LaporanController extends Controller { @@ -37,4 +38,75 @@ class LaporanController extends Controller public function store(Request $request) {} public function update(Request $request, $id) {} + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query = Permohonan::query()->whereIn('status',['proses-laporan','done']); + + $query = $query->orderBy('nomor_registrasi', 'desc'); + // Apply search filter if provided + 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 . '%'); + }); + } + + // Apply sorting if provided + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Get the total count of records + $totalRecords = $query->count(); + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the filtered count of records + $filteredRecords = $query->count(); + + // Get the data for the current page + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian','jenisFasilitasKredit'])->get(); + + // Calculate the page count + $pageCount = ceil($totalRecords / $size); + + // Calculate the current page number + $currentPage = max(1, $request->get('page', 1)); + + // Return the response data as a JSON object + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } } diff --git a/app/Http/Controllers/NocController.php b/app/Http/Controllers/NocController.php index b4dd9cc..0d06263 100644 --- a/app/Http/Controllers/NocController.php +++ b/app/Http/Controllers/NocController.php @@ -43,7 +43,6 @@ $status = "persetujuan-penawaran"; } - $persetujuanPenawaran = PersetujuanPenawaran::updateOrCreate( ['penawaran_id' => $validated['penawaran_id']], $validated, @@ -64,16 +63,20 @@ $permohonan = Permohonan::find(request()->get('permohonan_id')); if ($permohonan) { $permohonan->status_bayar = request()->get('status_bayar'); - $permohonan->status = $status; + if($permohonan->jenis_penilaian_id==2) { + $permohonan->status = $status; + } $permohonan->save(); // andy add, update status penawaran.status='spk' // $penawaran = PenawaranTender::where('nomor_registrasi',$permohonan->nomor_registrasi)->first(); - PenawaranTender::where('nomor_registrasi', $permohonan->nomor_registrasi)->update([ - 'status' => $status, - 'updated_by' => Auth::id(), - 'updated_at' => now(), - ]); + if($permohonan->jenis_penilaian_id==2) { + PenawaranTender::where('nomor_registrasi', $permohonan->nomor_registrasi)->update([ + 'status' => $status, + 'updated_by' => Auth::id(), + 'updated_at' => now(), + ]); + } // andy add, update status penawaran.status='spk' } @@ -114,7 +117,7 @@ public function edit($id) { $persetujuanPenawaran = PersetujuanPenawaran::where('id', $id)->with( - ['penawaran.detail', 'penawaran.permohonan.debiture'], + ['penawaran.detail', 'penawaran.permohonan.debiture','permohonan'], )->first(); return view('lpj::noc.form', compact('persetujuanPenawaran')); } @@ -175,6 +178,8 @@ [ 'penawaran.permohonan.debiture', 'penawaran.permohonan.branch', + 'permohonan.debiture', + 'permohonan.branch', 'penawaran.detail', 'penawaran.persetujuan', ], diff --git a/app/Http/Controllers/PembatalanController.php b/app/Http/Controllers/PembatalanController.php new file mode 100644 index 0000000..af65cde --- /dev/null +++ b/app/Http/Controllers/PembatalanController.php @@ -0,0 +1,147 @@ +historyService = $historyService; + } + + public function index() + { + return view('lpj::pembatalan.index'); + } + + public function edit($id) + { + $pembatalan = PermohonanPembatalan::with(['permohonan.debiture','permohonan.branch'])->find($id); + + return view( + 'lpj::pembatalan.form', + compact( + 'pembatalan' + ), + ); + } + + public function update(Request $request, $id) + { + $pembatalan = PermohonanPembatalan::findOrFail($id); + $permohonan = Permohonan::find($pembatalan->permohonan_id); + $beforeRequest = $permohonan->toArray(); + + try { + // Update Permohonan Pembatalan + if($request->status=='approved'){ + $pembatalan->status = 'approved'; + $pembatalan->save(); + + $permohonan->status = 'batal'; + $permohonan->save(); + } else{ + $pembatalan->status = 'rejected'; + $pembatalan->save(); + } + + return redirect() + ->route('pembatalan.index')->with('success', 'Permohonan Pembatalan updated successfully'); + } catch (Exception $e) { + return redirect() + ->route('pembatalan.edit', $id)->with('error', 'Failed to update permohonan Pembatalan'); + } + } + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query = PermohonanPembatalan::query(); + $query = $query->orderBy('created_at', 'desc'); + // Apply search filter if provided + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->orWhereRelation('permohonan', 'nomor_registrasi', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('permohonan.debiture', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhere('alasan_pembatalan', 'LIKE', '%' . $search . '%'); + $q->orWhere('status', 'LIKE', '%' . $search . '%'); + }); + } + + // Apply sorting if provided + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Get the total count of records + $totalRecords = $query->count(); + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the filtered count of records + $filteredRecords = $query->count(); + + // Get the data for the current page + $data = $query->with(['permohonan.debiture','permohonan.branch','creator'])->get(); + + // Calculate the page count + $pageCount = ceil($totalRecords / $size); + + // Calculate the current page number + $currentPage = max(1, $request->get('page', 1)); + + // Return the response data as a JSON object + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } + } diff --git a/app/Http/Controllers/PembayaranController.php b/app/Http/Controllers/PembayaranController.php new file mode 100644 index 0000000..729d0a3 --- /dev/null +++ b/app/Http/Controllers/PembayaranController.php @@ -0,0 +1,266 @@ +user) || !$this->user->can('noc.view')) { + //abort(403, 'Sorry! You are not allowed to view persetujuan penawaran.'); + } + + // Retrieve data from the database + $query = PersetujuanPenawaran::query(); + + // Apply search filter if provided + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('nomor_registrasi', 'LIKE', "%$search%"); + }); + } + + // Apply sorting if provided + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Get the total count of records + $totalRecords = $query->count(); + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the filtered count of records + $filteredRecords = $query->count(); + + // Get the data for the current page + $data = $query + ->with( + [ + 'penawaran.permohonan.user', + 'penawaran.permohonan.debiture', + 'penawaran.permohonan.branch', + 'permohonan.debiture', + 'permohonan.branch', + 'permohonan.user', + 'permohonan.approveBayar', + 'penawaran.permohonan.approveBayar', + 'penawaran.detail', + 'penawaran.persetujuan', + ], + )->get(); + + + // Calculate the page count + $pageCount = ceil($totalRecords / $request->get('size')); + + // Calculate the current page number + $currentPage = $request->get('page', 1); + + // Return the response data as a JSON object + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } + + function edit($id) + { + $permohonan = Permohonan::find($id); + return view('lpj::pembayaran.form', compact('permohonan')); + } + + public function store(PersetujuanPenawaranRequest $request) + { + $validated = $request->validated(); + $validated['created_by'] = Auth::id(); + $validated['status'] = '0'; + + if (isset($validated['penawaran_id'])) { + $persetujuanPenawaran = PersetujuanPenawaran::create( + ['penawaran_id' => $validated['penawaran_id']], + $validated, + ); + } else { + $persetujuanPenawaran = PersetujuanPenawaran::create( + $validated + ); + } + + $folderPath = 'persetujuan_penawaran/' . $validated['penawaran_id']; + + if ($request->hasFile('bukti_bayar')) { + $persetujuanPenawaran->bukti_bayar = $request->file('bukti_bayar')->store($folderPath, 'public'); + } + + $persetujuanPenawaran->save(); + + // Update the status of the related permohonan to 'spk' + $permohonan = Permohonan::find(request()->get('permohonan_id')); + if ($permohonan) { + $permohonan->status_bayar = request()->get('status_bayar'); + $permohonan->save(); + + // andy add, update status penawaran.status='spk' + // $penawaran = PenawaranTender::where('nomor_registrasi',$permohonan->nomor_registrasi)->first(); + PenawaranTender::where('nomor_registrasi', $permohonan->nomor_registrasi)->update([ + 'status' => 'noc', + 'updated_by' => Auth::id(), + 'updated_at' => now(), + ]); + // andy add, update status penawaran.status='spk' + + } + + return redirect() + ->route('pembayaran.index')->with('success', 'Pembayaran berhasil disimpan.'); + } + + public function update(Request $request, $id) + : JsonResponse { + // init + $data = []; + $output = []; + $tindakan = null; + if (request()->ajax()) { + try { + $data = [ + 'approve_bayar_by' => Auth::id(), + 'approve_bayar_at' => now(), + ]; + + if ($request->keterangan) { + $data['approve_keterangan_bayar'] = $request->keterangan; + } + + $output['data'] = $data; + + $modal = Permohonan::find($id); + $modal->update($data); + // + $output['status'] = 'success'; + $output['message'] = ['Otorisasi' . $modal->nomor_registrasi . 'berhasil di lakukan']; + } catch (Exception $e) { + $output['status'] = 'error'; + $output['message'] = ['Otorisasi gagal di lakukan.']; + } + } + return response()->json($output); + } + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } + + $query = Permohonan::query()->where(['status_bayar' => 'belum_bayar', 'jenis_penilaian_id' => 1]) + ->whereNotIn('id', function($subquery) { + $subquery->select('permohonan_id') + ->from('persetujuan_penawaran') + ->whereNotNull('permohonan_id'); + }); + + // 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('jenisPenilaian', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhere('status', 'LIKE', '%' . $search . '%'); + }); + } + + // 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', 'jenisPenilaian'])->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, + ]); + } + } diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index b7d4ed6..0013891 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -1,546 +1,561 @@ validated(); + /** + * Store a newly created resource in storage. + */ - if ($validatedData) { + public function store(PenilaianRequest $request) + { + $validatedData = $request->validated(); + + if ($validatedData) { + try { + DB::beginTransaction(); + + $penilaian = Penilaian::create($validatedData); + $validatedData['penilaian_id'] = $penilaian->id; + + $teams_ids = []; + $user_ids = []; + $roles = []; + + if ($validatedData['surveyor_id'] === 'pilih_dari_region') { + $surveyor_region_id = $validatedData['surveyor_region_id']; + + // Hapus team_id sebelumnya di Permohonan jika ada + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + if ($permohonan) { + $permohonan->update([ + 'region_id' => $surveyor_region_id, + ]); + } + + $teams_ids[] = $surveyor_region_id; + $user_ids[] = null; + $roles[] = 'surveyor'; + } else { + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + $teams_ids[] = $validatedData['teams_id']; + + if (isset($validatedData['penilai_surveyor_id'])) { + $user_ids[] = $validatedData['penilai_surveyor_id']; + } else { + $user_ids[] = $validatedData['surveyor_id']; + } + + $roles[] = 'surveyor'; + } + + if ($validatedData['penilai_id'] === 'pilih_dari_region') { + $penilaian_region_id = $validatedData['penilai_region_id']; + + // Hapus team_id sebelumnya di Permohonan jika ada + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + if ($permohonan) { + $permohonan->update([ + 'region_id' => $penilaian_region_id, + ]); + } + + $teams_ids[] = $penilaian_region_id; + $user_ids[] = null; + $roles[] = 'penilai'; + } else { + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + $teams_ids[] = $validatedData['teams_id']; + + if (isset($validatedData['penilai_surveyor_id'])) { + $user_ids[] = $validatedData['penilai_surveyor_id']; + } else { + $user_ids[] = $validatedData['penilai_id']; + } + + $roles[] = 'penilai'; + } + + foreach ($teams_ids as $key => $teams_id) { + PenilaianTeam::create([ + 'penilaian_id' => $validatedData['penilaian_id'], + 'team_id' => $teams_id, + 'user_id' => $user_ids[$key], + 'role' => $roles[$key], + ]); + } + + if ($validatedData['surveyor_id'] === 'pilih_dari_region' || $validatedData['penilai_id'] === 'pilih_dari_region') { + $status = $permohonan->status; + } else { + $status = 'assign'; + } + + $permohonan->update([ + 'status' => $status, + ]); + + DB::commit(); + return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200); + } catch (Exception $e) { + DB::rollBack(); + + return response()->json(['error' => $e->getMessage()]); + } + } + } + + /** + * Show the form for creating a new resource. + */ + public function create($id) + { + return view('lpj::penilaian.form'); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id) + { try { DB::beginTransaction(); + $penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->first(); - $penilaian = Penilaian::create($validatedData); - $validatedData['penilaian_id'] = $penilaian->id; + $penilaianId = $penilaian->id; - $teams_ids = []; - $user_ids = []; - $roles = []; + $penilainTeam = PenilaianTeam::where('penilaian_id', $penilaianId)->get(); - if ($validatedData['surveyor_id'] === 'pilih_dari_region') { - $surveyor_region_id = $validatedData['surveyor_region_id']; - // Hapus team_id sebelumnya di Permohonan jika ada - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); - if ($permohonan) { - $permohonan->update([ - 'region_id' => $surveyor_region_id, + foreach ($penilainTeam as $item) { + if ($item->role === 'surveyor' && $item->user_id === null) { + $item->update([ + 'user_id' => $request->surveyor_id, + 'role' => 'surveyor', ]); } - $teams_ids[] = $surveyor_region_id; - $user_ids[] = null; - $roles[] = 'surveyor'; - } else { - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); - $teams_ids[] = $validatedData['teams_id']; - - if (isset($validatedData['penilai_surveyor_id'])) { - $user_ids[] = $validatedData['penilai_surveyor_id']; - } else { - $user_ids[] = $validatedData['surveyor_id']; - } - - $roles[] = 'surveyor'; - - } - - if ($validatedData['penilai_id'] === 'pilih_dari_region') { - $penilaian_region_id = $validatedData['penilai_region_id']; - - // Hapus team_id sebelumnya di Permohonan jika ada - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); - if ($permohonan) { - $permohonan->update([ - 'region_id' => $penilaian_region_id, + if ($item->role === 'penilai' && $item->user_id === null) { + $item->update([ + 'user_id' => $request->penilai_id, + 'role' => 'penilai', ]); } - - $teams_ids[] = $penilaian_region_id; - $user_ids[] = null; - $roles[] = 'penilai'; - } else { - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); - $teams_ids[] = $validatedData['teams_id']; - - if (isset($validatedData['penilai_surveyor_id'])) { - $user_ids[] = $validatedData['penilai_surveyor_id']; - } else { - $user_ids[] = $validatedData['penilai_id']; - } - - $roles[] = 'penilai'; - - } - - foreach ($teams_ids as $key => $teams_id) { - PenilaianTeam::create([ - 'penilaian_id' => $validatedData['penilaian_id'], - 'team_id' => $teams_id, - 'user_id' => $user_ids[$key], - 'role' => $roles[$key], - ]); - } - - if ($validatedData['surveyor_id'] === 'pilih_dari_region' || $validatedData['penilai_id'] === 'pilih_dari_region') { - $status = $permohonan->status; - } else { - $status = 'assign'; } + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi); $permohonan->update([ - 'status' => $status, + 'status' => 'assign', ]); - DB::commit(); return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200); } catch (Exception $e) { DB::rollBack(); - - return response()->json(['error' => $e->getMessage()]); + return response()->json(['success' => false, 'error' => $e->getMessage()]); } } - } - /** - * Show the form for creating a new resource. - */ - public function create($id) - { - return view('lpj::penilaian.form'); - } + /** + * Show the form for editing the specified resource. + */ + public function assignment($id) + { + $permohonan = Permohonan::with([ + 'user', + 'debiture.province', + 'debiture.city', + 'debiture.district', + 'debiture.village', + 'branch', + 'tujuanPenilaian', + ])->findOrFail($id); - /** - * Update the specified resource in storage. - */ - public function update(Request $request, $id) - { - try { - DB::beginTransaction(); - $penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->first(); + $idPenilaian = $permohonan->jenis_penilaian_id; + $idRegion = $permohonan->region_id; - $penilaianId = $penilaian->id; + $jenisPenilaian = JenisPenilaian::find($idPenilaian); - $penilainTeam = PenilaianTeam::where('penilaian_id', $penilaianId)->get(); + $userTeam = Teams::with(['regions', 'teamsUsers.user'])->whereHas('regions', function ($q) use ($idRegion) { + $q->where('id', $idRegion); + })->get(); - - foreach ($penilainTeam as $item) { - if ($item->role === 'surveyor' && $item->user_id === null) { - $item->update([ - 'user_id' => $request->surveyor_id, - 'role' => 'surveyor', - ]); - } - - if ($item->role === 'penilai' && $item->user_id === null) { - $item->update([ - 'user_id' => $request->penilai_id, - 'role' => 'penilai', - ]); - } - - } - - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi); - $permohonan->update([ - 'status' => 'assign', - ]); - DB::commit(); - return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200); - } catch (Exception $e) { - DB::rollBack(); - return response()->json([ 'success' => false, 'error' => $e->getMessage()]); - } - } - - /** - * Show the form for editing the specified resource. - */ - public function assignment($id) - { - $permohonan = Permohonan::with([ - 'user', - 'debiture.province', - 'debiture.city', - 'debiture.district', - 'debiture.village', - 'branch', - 'tujuanPenilaian', - ])->findOrFail($id); - - $idPenilaian = $permohonan->jenis_penilaian_id; - $idRegion = $permohonan->region_id; - - $jenisPenilaian = JenisPenilaian::find($idPenilaian); - - $userTeam = Teams::with(['regions', 'teamsUsers.user']) - ->whereHas('regions', function ($q) use ($idRegion) { - $q->where('id', $idRegion); - }) - ->get(); - - $teamPenilai = $userTeam->flatMap(function ($team) { - return $team->teamsUsers->filter(function ($teamUser) { - return $teamUser->user->roles->contains(function ($role) { - return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'administrator'; + $teamPenilai = $userTeam->flatMap(function ($team) { + return $team->teamsUsers->filter(function ($teamUser) { + return $teamUser->user->roles->contains(function ($role) { + return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'administrator'; + }); + })->map(function ($teamUser) { + return $teamUser->user; }); - })->map(function ($teamUser) { - return $teamUser->user; - }); - })->unique('id'); + })->unique('id'); - $existingTeamIds = $userTeam->pluck('id')->toArray(); + $existingTeamIds = $userTeam->pluck('id')->toArray(); - $updateTeamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user']) - ->whereNotIn('id', $existingTeamIds) - ->get(); + $updateTeamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user'])->whereNotIn( + 'id', + $existingTeamIds, + )->get(); - $regionName = null; - foreach ($userTeam as $item) { - $regionName = $item->regions; + $regionName = null; + foreach ($userTeam as $item) { + $regionName = $item->regions; + } + + $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); + + $penilaianTeam = collect(); + if ($penilaian && $penilaian->id) { + $penilaianTeam = PenilaianTeam::where('penilaian_id', $penilaian->id)->get(); + } + + return view( + 'lpj::penilaian.form', + compact( + 'permohonan', + 'teamPenilai', + 'jenisPenilaian', + 'penilaian', + 'regionName', + 'updateTeamPenilai', + 'penilaianTeam', + ), + ); } - $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); + /** + * Remove the specified resource from storage. + */ - $penilaianTeam = collect(); - if ($penilaian && $penilaian->id) { - $penilaianTeam = PenilaianTeam::where('penilaian_id', $penilaian->id)->get(); - } + public function revisi(PenilaianRequest $request, $nomor_registrasi) + { + $validatedData = $request->validated(); + if ($validatedData) { + try { + if (isset($validatedData['dokumen']) && $request->hasFile('dokumen')) { + $file_name = $validatedData['dokumen']->getClientOriginalName(); + $validatedData['dokumen']->storeAs('public/dokumen_revisi', $file_name); + } - return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName', 'updateTeamPenilai', 'penilaianTeam')); - } - /** - * Remove the specified resource from storage. - */ + $dataToUpdate = [ + 'keterangan' => $validatedData['keterangan'], + 'dokumen' => 'dokumen_revisi/' . $file_name, + 'status' => 'revisi', + ]; - public function revisi(PenilaianRequest $request, $nomor_registrasi) - { - $validatedData = $request->validated(); - if ($validatedData) { - try { + $permohonan = Permohonan::where('nomor_registrasi', $nomor_registrasi)->first(); - if (isset($validatedData['dokumen']) && $request->hasFile('dokumen')) { - $file_name = $validatedData['dokumen']->getClientOriginalName(); - $validatedData['dokumen']->storeAs('public/dokumen_revisi', $file_name); + $permohonan->update($dataToUpdate); + return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil direvisi'); + } catch (Exception $e) { + return redirect()->route('penilaian.index')->with('error', $e->getMessage()); } - - $dataToUpdate = [ - 'keterangan' => $validatedData['keterangan'], - 'dokumen' => 'dokumen_revisi/' . $file_name, - 'status' => 'revisi', - ]; - - - $permohonan = Permohonan::where('nomor_registrasi', $nomor_registrasi)->first(); - - $permohonan->update($dataToUpdate); - return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil direvisi'); - } catch (Exception $e) { - return redirect()->route('penilaian.index')->with('error', $e->getMessage()); } } - } + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + } - public function dataForDatatables(Request $request) - { + $query = Permohonan::query(); - if (is_null($this->user) || !$this->user->can('debitur.view')) { + 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 . '%'); + }); + } - } + $query->whereIn('status', ['registered', 'registrasi-final']); - $query = Permohonan::query(); + // Filter berdasarkan role + if (Auth::user()->roles[0]->name !== 'administrator') { + $query->whereHas('region.teams.teamsUsers.user', function ($q) { + $q->where('id', Auth::user()->id); + }); + } - 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 ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } - $query->whereIn('status', ['registered', 'registrasi-final']); + $totalRecords = $query->count(); - // Filter berdasarkan role - if (Auth::user()->roles[0]->name !== 'administrator') { - $query->whereHas('region.teams.teamsUsers.user', function ($q) { - $q->where('id', Auth::user()->id); - }); - } + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } - if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { - $order = $request->get('sortOrder'); - $column = $request->get('sortField'); - $query->orderBy($column, $order); - } + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; - $totalRecords = $query->count(); + $query->skip($offset)->take($size); + } - $size = $request->get('size', 10); - if ($size == 0) { - $size = 10; - } + $filteredRecords = $query->count(); + $data = $query->with( + ['user', 'debiture', 'branch', 'tujuanPenilaian', 'region.teams.teamsUsers.user'], + )->get(); - if ($request->has('page') && $request->has('size')) { - $page = $request->get('page', 1); - $offset = ($page - 1) * $size; + $pageCount = ceil($totalRecords / $size); - $query->skip($offset)->take($size); - } - - $filteredRecords = $query->count(); - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'region.teams.teamsUsers.user'])->get(); - - $pageCount = ceil($totalRecords / $size); - - $currentPage = max(1, $request->get('page', 1)); - return response()->json([ - 'draw' => $request->get('draw'), - 'recordsTotal' => $totalRecords, - 'recordsFiltered' => $filteredRecords, - 'pageCount' => $pageCount, - 'page' => $currentPage, - 'totalCount' => $totalRecords, - 'data' => $data, - ]); - } - - - - - - public function otorisator(Request $request) - { - - $type = $request->route('type'); - $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, $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(Request $request, $id, $context) - { - - $permohonan = Permohonan::find($id); - if (!$permohonan) { + $currentPage = max(1, $request->get('page', 1)); return response()->json([ - 'message' => 'Data permohonan tidak ditemukan.' - ], 404); + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); } - switch (strtolower($context)) { - case 'pembayaran': - $newStatus = $permohonan->status_bayar === 'sudah_bayar' ? 'belum_bayar' : 'sudah_bayar'; + public function otorisator(Request $request) + { + $type = $request->route('type'); + $headers = [ + 'pelaporan' => 'Pelaporan', + 'pembayaran' => 'Pembayaran', + 'pembatalan' => 'Pembatalan', + 'sla' => 'SLA', + ]; - $permohonan->update([ - 'status_bayar' => $newStatus, - 'keterangan' => $request->message - ]); - break; + $header = $headers[$type] ?? 'Pelaporan'; - case 'pembatalan': - $permohonan->update([ - 'status' => 'batal', - 'keterangan' => $request->message - ]); - break; + return view('lpj::penilaian.otorisator.index', compact('header')); + } - case 'pelaporan': - $permohonan->update([ - 'status' => 'proses-laporan', - 'keterangan' => $request->message - ]); - break; + public function show($id, $type) + { + $headers = [ + 'Pelaporan' => 'Pelaporan', + 'Pembayaran' => 'Pembayaran', + 'Pembatalan' => 'Pembatalan', + 'SLA' => 'SLA', + ]; - case 'sla': + $header = $headers[$type] ?? 'Pelaporan'; + $permohonan = Permohonan::find($id); - $permohonan->update([ - 'status' => 'proses-sla', - 'keterangan' => $request->message - ]); - break; - - default: + return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header')); + } + public function otorisatorUpdate(Request $request, $id, $context) + { + $permohonan = Permohonan::find($id); + if (!$permohonan) { return response()->json([ - 'message' => 'Konteks otorisasi tidak valid.' - ], 400); - } - - - return response()->json([ - 'message' => 'Otorisasi berhasil dilakukan.', - 'data' => $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.'); - } - - - // Tentukan status berdasarkan otorisator - $status = match ($otorisator) { - 'Pelaporan' => 'proses-laporan', - 'Pembayaran' => 'proses', - 'Pembatalan' => 'batal', - 'SLA' => 'freeze', - default => '', - }; - - - $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)) { - if ($status == 'proses') { - $query->whereIn('status_bayar', ['sudah_bayar', 'belum_bayar']); - } elseif ($status == 'proses-laporan') { - $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); - } elseif ($status == 'batal') { - $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); - } elseif ($status == 'freeze') { - $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); + 'message' => 'Data permohonan tidak ditemukan.', + ], 404); } + + switch (strtolower($context)) { + case 'pembayaran': + + $newStatus = $permohonan->status_bayar === 'sudah_bayar' ? 'belum_bayar' : 'sudah_bayar'; + + $permohonan->update([ + 'status_bayar' => $newStatus, + 'keterangan' => $request->message, + ]); + break; + + case 'pembatalan': + $permohonan->update([ + 'status' => 'batal', + 'keterangan' => $request->message, + ]); + break; + + case 'pelaporan': + if(Auth::user()->roles[0]->name === 'senior-officer') { + $permohonan->update([ + 'status' => 'proses-laporan', + 'approval_so' => Auth::user()->id, + 'approval_so_at' => now(), + 'keterangan' => $request->message, + ]); + } elseif(Auth::user()->roles[0]->name === 'EO Appraisal') { + $permohonan->update([ + 'status' => 'proses-laporan', + 'approval_eo' => Auth::user()->id, + 'approval_eo_at' => now(), + 'keterangan' => $request->message, + ]); + } elseif(Auth::user()->roles[0]->name === 'DD Appraisal') { + $permohonan->update([ + 'status' => 'proses-laporan', + 'approval_dd' => Auth::user()->id, + 'approval_dd_at' => now(), + 'keterangan' => $request->message, + ]); + } + break; + + case 'sla': + + $permohonan->update([ + 'status' => 'proses-sla', + 'keterangan' => $request->message, + ]); + break; + + default: + + return response()->json([ + 'message' => 'Konteks otorisasi tidak valid.', + ], 400); + } + + + return response()->json([ + 'message' => 'Otorisasi berhasil dilakukan.', + 'data' => $permohonan, + ]); } - // Filter berdasarkan region user yang login - $query->whereHas('region.teams.teamsUsers', function ($q) { - $q->where('user_id', Auth::id()); - }); + + 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.'); + } - // 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); + // Tentukan status berdasarkan otorisator + $status = match ($otorisator) { + 'Pelaporan' => 'proses-laporan', + 'Pembayaran' => 'proses', + 'Pembatalan' => 'batal', + 'SLA' => 'freeze', + default => '', + }; + + + $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)) { + if ($status == 'proses') { + $query->whereIn('status_bayar', ['sudah_bayar', 'belum_bayar']); + } elseif ($status == 'proses-laporan') { + $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); + } elseif ($status == 'batal') { + $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); + } elseif ($status == 'freeze') { + $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); + } + } + + // Filter berdasarkan region user yang login + if(Auth::user()->hasRole('senior-officer')) { + $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'); + $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', 'region.teams.teamsUsers'])->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, + ]); } - // 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', 'region.teams.teamsUsers'])->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, - ]); } - - -} diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index 0d6ebb0..8774786 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -11,6 +11,7 @@ use Modules\Location\Models\District; use Modules\Location\Models\Province; use Modules\Location\Models\Village; + use Modules\Lpj\Models\PermohonanPembatalan; use Modules\Lpj\Exports\PermohonanExport; use Modules\Lpj\Http\Requests\PermohonanRequest; use Modules\Lpj\Models\Branch; @@ -25,7 +26,7 @@ class PermohonanController extends Controller { - public $user; + public $user; protected $historyService; public function __construct(PermohonanHistoryService $historyService) @@ -46,7 +47,7 @@ // Process file upload $filePath = null; if ($request->hasFile('attachment')) { - $file = $request->file('attachment'); + $file = $request->file('attachment'); $fileName = time() . '_' . $file->getClientOriginalName(); $filePath = $file->storeAs('permohonan_attachments', $fileName, 'public'); } @@ -65,7 +66,7 @@ $keterangan, [], // beforeRequest is empty for new permohonan $permohonan->toArray(), - $filePath + $filePath, ); return redirect() ->route('permohonan.index')->with('success', 'Permohonan created successfully'); @@ -136,7 +137,7 @@ public function update(PermohonanRequest $request, $id) { - $permohonan = Permohonan::findOrFail($id); + $permohonan = Permohonan::findOrFail($id); $beforeRequest = $permohonan->toArray(); $validate = $request->validated(); @@ -203,10 +204,10 @@ // Get the total count of records $totalRecords = $query->count(); - $size = $request->get('size', 10); - if ($size == 0) { - $size = 10; - } + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } // Apply pagination if provided if ($request->has('page') && $request->has('size')) { @@ -221,7 +222,7 @@ $filteredRecords = $query->count(); // Get the data for the current page - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian'])->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian'])->get(); // Calculate the page count $pageCount = ceil($totalRecords / $size); @@ -353,4 +354,38 @@ // $pdf = Pdf::loadView('lpj::permohonan.print', compact('permohonan')); // return $pdf->stream(); } + + public function showPembatalan($id) + { + $permohonan = Permohonan::with(['pembatalan','debiture'])->findOrFail($id); + return view('lpj::permohonan.pembatalan-form', compact('permohonan')); + } + + + public function pembatalan(Request $request) + { + // Validate the request + $validatedData = $request->validate([ + 'permohonan_id' => 'required|exists:permohonan,id', + 'alasan_pembatalan' => 'required|string', + 'file_pembatalan' => 'required|file|mimes:pdf,doc,docx|max:2048', + ]); + + // Handle file upload + if ($request->hasFile('file_pembatalan')) { + $file = $request->file('file_pembatalan'); + $filename = time() . '_' . $file->getClientOriginalName(); + $filePath = $file->storeAs('pembatalan', $filename, 'public'); + $validatedData['file_pembatalan'] = $filePath; + } + + // Add created_by + $validatedData['created_by'] = auth()->id(); + + // Create new PermohonanPembatalan + $pembatalan = PermohonanPembatalan::create($validatedData); + + return redirect()->route('permohonan.index')->with('success', 'Pembatalan Permohonan Menunggu Approval'); + } + } diff --git a/app/Http/Controllers/SpkController.php b/app/Http/Controllers/SpkController.php index d0bc5f6..828170e 100644 --- a/app/Http/Controllers/SpkController.php +++ b/app/Http/Controllers/SpkController.php @@ -36,15 +36,17 @@ use Illuminate\Support\Facades\Auth; // Retrieve data from the database // $query =Permohonan::query()->with(['penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk'); // $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian'])->get(); - $query =Permohonan::query()->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian','penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk'); + //$query =Permohonan::query()->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian','penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk'); + + $query = PenawaranTender::query()->with(['permohonan.user', 'permohonan.debiture', 'permohonan.branch', 'permohonan.tujuanPenilaian','permohonan.penilaian','tujuanPenilaianKjpp']); // Apply search filter if provided 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('penawaran.tanggal_permohonan', 'LIKE', '%' . $search . '%'); + $q->whereRelation('permohonan','nomor_registrasi', 'LIKE', '%' . $search . '%'); + $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); $q->orWhere('status', 'LIKE', '%' . $search . '%'); }); @@ -81,34 +83,34 @@ use Illuminate\Support\Facades\Auth; foreach($data as $obj) { // tanggal_permohonan - if ($obj->tanggal_permohonan) { - $data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y'); + if ($obj->permohonan->tanggal_permohonan) { + $data[$i]->permohonan->tanggal_permohonan = Carbon::parse($obj->permohonan->tanggal_permohonan)->format('d M Y'); } - if($obj->penawaran->tanggal_penilaian_sebelumnya) + if($obj->tanggal_penilaian_sebelumnya) { - $data[$i]->penawaran->tanggal_penilaian_sebelumnya = Carbon::parse($obj->penawaran->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); + $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); } - if($obj->penawaran->biaya_kjpp_sebelumnya) + if($obj->biaya_kjpp_sebelumnya) { - $data[$i]->penawaran->biaya_kjpp_sebelumnya = formatRupiah($obj->penawaran->biaya_kjpp_sebelumnya); + $data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya); } // date_range - if($obj->penawaran->start_date && $obj->penawaran->end_date) + if($obj->start_date && $obj->end_date) { - $data[$i]->date_range = Carbon::parse($obj->penawaran->start_date)->format('d M Y').' - '. - Carbon::parse($obj->penawaran->end_date)->format('d M Y'); + $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '. + Carbon::parse($obj->end_date)->format('d M Y'); } // data spk_dokumen_path - if($obj->penawaran->spk_dokumen_path) + if($obj->spk_dokumen_path) { - $spk_dokumen_path = Storage::url($obj->penawaran->spk_dokumen_path); - $data[$i]->penawaran->spk_dokumen_path = $spk_dokumen_path; + $spk_dokumen_path = Storage::url($obj->spk_dokumen_path); + $data[$i]->spk_dokumen_path = $spk_dokumen_path; } $i++; @@ -393,8 +395,7 @@ use Illuminate\Support\Facades\Auth; public function download($id) { // dokumen pdf diambil dari penawaran.spk_dokumen_path - $permohonan = Permohonan::find($id); - $document = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); + $document = PenawaranTender::find($id); return response()->download(storage_path('app/public/' .$document->spk_dokumen_path)); } diff --git a/app/Http/Requests/PersetujuanPenawaranRequest.php b/app/Http/Requests/PersetujuanPenawaranRequest.php index cc8a03d..32d9599 100644 --- a/app/Http/Requests/PersetujuanPenawaranRequest.php +++ b/app/Http/Requests/PersetujuanPenawaranRequest.php @@ -14,6 +14,7 @@ public function rules() { return [ + 'permohonan_id' => 'nullable|exists:permohonan,id', 'penawaran_id' => 'nullable|exists:penawaran,id', 'nomor_proposal_penawaran' => 'nullable|string|max:255', 'tanggal_proposal_penawaran' => 'nullable|date', diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php index f8d57da..eac4ad8 100644 --- a/app/Models/Permohonan.php +++ b/app/Models/Permohonan.php @@ -38,9 +38,31 @@ 'registrasi_catatan', 'registrasi_by', 'registrasi_at', - 'jenis_penilaian_id', 'region_id', - 'sla' + 'sla', + // andy add + 'approve_keterangan_bayar', + 'approve_bayar_by', + 'approve_bayar_at', + + 'approval_eo', + 'approval_eo_at', + 'approval_dd', + 'approval_dd_at', + 'approval_so', + 'approval_so_at', + ]; + + protected $dates = [ + 'tanggal_permohonan', + 'authorized_at', + 'created_at', + 'updated_at', + 'registrasi_at', + 'approve_bayar_at', + 'approval_eo_at', + 'approval_dd_at', + 'approval_so_at', ]; protected static function boot() @@ -130,6 +152,10 @@ return $this->belongsTo(JenisFasilitasKredit::class); } + public function jenisPenilaian(){ + return $this->belongsTo(JenisPenilaian::class); + } + public function penilaian() { return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi'); @@ -159,4 +185,12 @@ { return $this->hasMany(DokumenJaminan::class); } + + public function pembatalan(){ + return $this->hasMany(PermohonanPembatalan::class); + } + + public function approveBayar(){ + return $this->belongsTo(User::class, 'approve_bayar_by', 'id'); + } } diff --git a/app/Models/PermohonanPembatalan.php b/app/Models/PermohonanPembatalan.php new file mode 100644 index 0000000..1197b2f --- /dev/null +++ b/app/Models/PermohonanPembatalan.php @@ -0,0 +1,50 @@ + 'string', + ]; + + // Relationship with Permohonan + public function permohonan() + { + return $this->belongsTo(Permohonan::class, 'permohonan_id'); + } + + public function creator(){ + return $this->belongsTo(User::class, 'created_by'); + } + } diff --git a/app/Models/PersetujuanPenawaran.php b/app/Models/PersetujuanPenawaran.php index ebaf8af..014a5a3 100644 --- a/app/Models/PersetujuanPenawaran.php +++ b/app/Models/PersetujuanPenawaran.php @@ -10,6 +10,7 @@ protected $table = 'persetujuan_penawaran'; protected $fillable = [ + 'permohonan_id', 'penawaran_id', 'nomor_proposal_penawaran', 'tanggal_proposal_penawaran', @@ -42,6 +43,10 @@ return $this->belongsTo(PenawaranTender::class, 'penawaran_id'); } + public function permohonan(){ + return $this->belongsTo(Permohonan::class, 'permohonan_id'); + } + // Relationship with Region public function region() { diff --git a/database/migrations/2024_10_01_095350_update_permohonan_table.php b/database/migrations/2024_10_01_095350_update_permohonan_table.php index 98794df..2bc1272 100644 --- a/database/migrations/2024_10_01_095350_update_permohonan_table.php +++ b/database/migrations/2024_10_01_095350_update_permohonan_table.php @@ -26,7 +26,11 @@ return new class extends Migration public function down(): void { Schema::table('permohonan', function (Blueprint $table) { - + $table->dropColumn('registrasi_catatan'); + $table->dropColumn('registrasi_by'); + $table->dropColumn('registrasi_at'); + $table->dropColumn('jenis_penilaian_id'); + $table->dropColumn('region_id'); }); } }; diff --git a/database/migrations/2024_12_22_140000_create_permohonan_pembatalans_table.php b/database/migrations/2024_12_22_140000_create_permohonan_pembatalans_table.php new file mode 100644 index 0000000..0046d05 --- /dev/null +++ b/database/migrations/2024_12_22_140000_create_permohonan_pembatalans_table.php @@ -0,0 +1,35 @@ +id(); + $table->unsignedBigInteger('permohonan_id'); + $table->text('alasan_pembatalan'); + $table->string('file_pembatalan'); + $table->enum('status', ['pending', 'approved', 'rejected'])->default('pending'); + $table->text('keterangan')->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + + $table->foreign('permohonan_id')->references('id')->on('permohonan')->onDelete('cascade'); + }); + } + + public function down() + { + Schema::dropIfExists('permohonan_pembatalan'); + } +} diff --git a/database/migrations/2024_12_23_041954_update_permohonan_table.php b/database/migrations/2024_12_23_041954_update_permohonan_table.php new file mode 100644 index 0000000..b8166f4 --- /dev/null +++ b/database/migrations/2024_12_23_041954_update_permohonan_table.php @@ -0,0 +1,32 @@ +text('approve_keterangan_bayar')->nullable()->after('status_bayar')->comment('kebutuhan untuk feature Pembayaran di adminl lpj'); + $table->unsignedBigInteger('approve_bayar_by')->nullable()->after('approve_keterangan_bayar')->comment('kebutuhan untuk feature Pembayaran di adminl lpj'); + $table->timestamp('approve_bayar_at')->nullable()->after('approve_bayar_by')->comment('kebutuhan untuk feature Pembayaran di adminl lpj'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('permohonan', function (Blueprint $table) { + $table->dropColumn('approve_keterangan_bayar'); + $table->dropColumn('approve_bayar_by'); + $table->dropColumn('approve_bayar_at'); + }); + } +}; diff --git a/database/migrations/2024_12_23_131100_update_persetujuan_penawaran_table.php b/database/migrations/2024_12_23_131100_update_persetujuan_penawaran_table.php new file mode 100644 index 0000000..3c76d5d --- /dev/null +++ b/database/migrations/2024_12_23_131100_update_persetujuan_penawaran_table.php @@ -0,0 +1,33 @@ +unsignedBigInteger('penawaran_id')->change()->nullable(); + $table->unsignedBigInteger('permohonan_id')->nullable(); + + $table->foreign('permohonan_id')->references('id')->on('permohonan')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('persetujuan_penawaran', function (Blueprint $table) { + $table->unsignedBigInteger('penawaran_id')->change()->nullable(false); + $table->dropForeign('persetujuan_penawaran_permohonan_id_foreign'); + $table->dropColumn('permohonan_id'); + }); + } +}; diff --git a/database/migrations/2024_12_23_151733_add_approval_fields_to_permohonan_table.php b/database/migrations/2024_12_23_151733_add_approval_fields_to_permohonan_table.php new file mode 100644 index 0000000..f814764 --- /dev/null +++ b/database/migrations/2024_12_23_151733_add_approval_fields_to_permohonan_table.php @@ -0,0 +1,43 @@ +boolean('approval_eo')->default(false)->after('status'); + $table->timestamp('approval_eo_at')->nullable()->after('approval_eo'); + + $table->boolean('approval_dd')->default(false)->after('approval_eo_at'); + $table->timestamp('approval_dd_at')->nullable()->after('approval_dd'); + + $table->boolean('approval_so')->default(false)->after('approval_dd_at'); + $table->timestamp('approval_so_at')->nullable()->after('approval_so'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('permohonan', function (Blueprint $table) { + $table->dropColumn([ + 'approval_eo', 'approval_eo_at', + 'approval_dd', 'approval_dd_at', + 'approval_so', 'approval_so_at' + ]); + }); + } +} diff --git a/module.json b/module.json index 762ae31..dd16ad9 100644 --- a/module.json +++ b/module.json @@ -16,7 +16,7 @@ { "title": "Permohonan", "path": "permohonan", - "icon": "ki-filled ki-questionnaire-tablet text-lg", + "icon": "ki-filled ki-questionnaire-tablet text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -26,10 +26,22 @@ "pemohon-eo" ] }, + { + "title": "Pembatalan", + "path": "pembatalan", + "icon": "ki-filled ki-file-deleted text-lg text-danger", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "pemohon-eo" + ] + }, { "title": "Persetujuan Penawaran", "path": "persetujuan-penawaran", - "icon": "ki-filled ki-questionnaire-tablet text-lg", + "icon": "ki-filled ki-double-check text-lg text-info", "classes": "", "attributes": [], "permission": "", @@ -41,7 +53,7 @@ { "title": "NOC", "path": "noc", - "icon": "ki-filled ki-questionnaire-tablet text-lg", + "icon": "ki-filled ki-two-credit-cart text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -53,7 +65,7 @@ { "title": "Registrasi", "path": "registrasi", - "icon": "ki-filled ki-file-added text-lg", + "icon": "ki-filled ki-add-files text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -65,7 +77,7 @@ { "title": "Tender", "path": "tender", - "icon": "ki-filled ki-category text-lg", + "icon": "ki-filled ki-briefcase text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -101,7 +113,7 @@ { "title": "Otorisasi Tender", "path": "otorisasitender", - "icon": "ki-filled ki-category text-lg", + "icon": "ki-filled ki-brifecase-tick text-lg text-info", "classes": "", "attributes": [], "permission": "", @@ -130,7 +142,7 @@ { "title": "SPK", "path": "spk", - "icon": "ki-filled ki-file-added text-lg", + "icon": "ki-filled ki-document text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -142,7 +154,7 @@ { "title": "Registrasi Final", "path": "registrasifinal", - "icon": "ki-filled ki-file-added text-lg", + "icon": "ki-filled ki-file-added text-lg text-success", "classes": "", "attributes": [], "permission": "", @@ -152,22 +164,33 @@ ] }, { - "title": "Pembatalan", - "path": "", - "icon": "ki-filled ki-file-deleted text-lg text-danger", + "title": "Pembayaran", + "path": "pembayaran", + "icon": "ki-filled ki-credit-cart text-lg text-primary", "classes": "", "attributes": [], "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "pemohon-ao" + ] + }, + { + "title": "Approval Pembayaran", + "path": "pembayaran.approval", + "icon": "ki-filled ki-ensure text-lg text-info", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "admin" ] }, { "title": "Data Debitur", "path": "debitur", - "icon": "ki-filled ki-people text-lg", + "icon": "ki-filled ki-people text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -180,7 +203,7 @@ { "title": "Authorization", "path": "authorization", - "icon": "ki-filled ki-security-user text-lg", + "icon": "ki-filled ki-security-user text-lg text-info", "classes": "", "attributes": [], "permission": "", @@ -192,7 +215,7 @@ { "title": "Assignment", "path": "penilaian", - "icon": "ki-filled ki-badge text-lg", + "icon": "ki-filled ki-badge text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -204,7 +227,7 @@ { "title": "Team Activity", "path": "activity.progres", - "icon": "ki-filled ki-questionnaire-tablet text-lg", + "icon": "ki-filled ki-calendar-tick text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -216,7 +239,7 @@ { "title": "Otorisator", "path": "otorisator", - "icon": "ki-filled ki-security-user text-lg", + "icon": "ki-filled ki-security-user text-lg text-info", "classes": "", "attributes": [], "permission": "", @@ -233,18 +256,9 @@ "permission": "", "roles": [ "administrator", - "senior-officer" - ] - }, - { - "title": "Pembayaran", - "path": "otorisator.pembayaran", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator", - "senior-officer" + "senior-officer", + "EO Appraisal", + "DD Appraisal" ] }, { @@ -274,7 +288,7 @@ { "title": "Surveyor", "path": "surveyor", - "icon": "ki-filled ki-questionnaire-tablet text-lg", + "icon": "ki-filled ki-questionnaire-tablet text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -286,7 +300,7 @@ { "title": "Activity", "path": "activity", - "icon": "ki-filled ki-calendar-edit text-lg", + "icon": "ki-filled ki-calendar-edit text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -301,7 +315,7 @@ { "title": "Penilai", "path": "penilai", - "icon": "ki-filled ki-brush text-lg", + "icon": "ki-filled ki-brush text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -311,9 +325,9 @@ ] }, { - "title": "Laporan", + "title": "Resume dan Laporan", "path": "laporan", - "icon": "ki-filled ki-filter-tablet text-lg", + "icon": "ki-filled ki-filter-tablet text-lg text-primary", "classes": "", "attributes": [], "permission": "", @@ -324,26 +338,13 @@ "admin", "senior-officer" ] - }, - { - "title": "Resume", - "path": "resume", - "icon": "ki-filled ki-questionnaire-tablet text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator", - "pemohon-ao", - "pemohon-eo" - ] } ], "master": [ { "title": "Basic Data", "path": "basicdata", - "icon": "ki-filled ki-category text-lg", + "icon": "ki-filled ki-category text-lg text-primary", "classes": "", "attributes": [], "permission": "", diff --git a/resources/views/Ijin_usaha/index.blade.php b/resources/views/Ijin_usaha/index.blade.php index f3c7564..27f9d64 100644 --- a/resources/views/Ijin_usaha/index.blade.php +++ b/resources/views/Ijin_usaha/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-

diff --git a/resources/views/activity/index.blade.php b/resources/views/activity/index.blade.php index 72e4efc..e80ec81 100644 --- a/resources/views/activity/index.blade.php +++ b/resources/views/activity/index.blade.php @@ -95,7 +95,7 @@

-
diff --git a/resources/views/arah_mata_angin/index.blade.php b/resources/views/arah_mata_angin/index.blade.php index 817ef1a..3e6f1b8 100644 --- a/resources/views/arah_mata_angin/index.blade.php +++ b/resources/views/arah_mata_angin/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Arah Mata Angin diff --git a/resources/views/authorization/index.blade.php b/resources/views/authorization/index.blade.php index 9c7a782..793892f 100644 --- a/resources/views/authorization/index.blade.php +++ b/resources/views/authorization/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Authorization diff --git a/resources/views/component/history-permohonan.blade.php b/resources/views/component/history-permohonan.blade.php index 85ed489..f0c1063 100644 --- a/resources/views/component/history-permohonan.blade.php +++ b/resources/views/component/history-permohonan.blade.php @@ -29,7 +29,6 @@ @case('order') @break - @case('revisi') @break @@ -59,7 +58,7 @@ @endswitch

- {{ $activity->status }} + {{ str_replace('-',' ',$activity->status) }}

{{ $activity->keterangan }}

{{ $activity->created_by ? $activity->creator->name : 'System' }} diff --git a/resources/views/debitur/index.blade.php b/resources/views/debitur/index.blade.php index 9416e04..81341eb 100644 --- a/resources/views/debitur/index.blade.php +++ b/resources/views/debitur/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Debitur diff --git a/resources/views/hubungan_pemilik_jaminan/index.blade.php b/resources/views/hubungan_pemilik_jaminan/index.blade.php index 620ee12..ce6db3f 100644 --- a/resources/views/hubungan_pemilik_jaminan/index.blade.php +++ b/resources/views/hubungan_pemilik_jaminan/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Hubungan Pemilik Jaminan diff --git a/resources/views/hubungan_penghuni_jaminan/index.blade.php b/resources/views/hubungan_penghuni_jaminan/index.blade.php index cc14530..297974b 100644 --- a/resources/views/hubungan_penghuni_jaminan/index.blade.php +++ b/resources/views/hubungan_penghuni_jaminan/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Hubungan Penghuni Jaminan diff --git a/resources/views/jenis_aset/index.blade.php b/resources/views/jenis_aset/index.blade.php index b77bf5b..64da628 100644 --- a/resources/views/jenis_aset/index.blade.php +++ b/resources/views/jenis_aset/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Jenis Aset diff --git a/resources/views/jenis_dokumen/index.blade.php b/resources/views/jenis_dokumen/index.blade.php index d905119..d99757b 100644 --- a/resources/views/jenis_dokumen/index.blade.php +++ b/resources/views/jenis_dokumen/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Jenis Dokumen diff --git a/resources/views/jenis_fasilitas_kredit/index.blade.php b/resources/views/jenis_fasilitas_kredit/index.blade.php index eb525ae..88fa5ac 100644 --- a/resources/views/jenis_fasilitas_kredit/index.blade.php +++ b/resources/views/jenis_fasilitas_kredit/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Jenis Fasilitas Kredit diff --git a/resources/views/jenis_jaminan/index.blade.php b/resources/views/jenis_jaminan/index.blade.php index 4863579..a4b6e6f 100644 --- a/resources/views/jenis_jaminan/index.blade.php +++ b/resources/views/jenis_jaminan/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Jenis Jaminan diff --git a/resources/views/jenis_laporan/index.blade.php b/resources/views/jenis_laporan/index.blade.php index 9d3e280..f922dd6 100644 --- a/resources/views/jenis_laporan/index.blade.php +++ b/resources/views/jenis_laporan/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
diff --git a/resources/views/jenis_legalitas_jaminan/index.blade.php b/resources/views/jenis_legalitas_jaminan/index.blade.php index c3f128d..08b8616 100644 --- a/resources/views/jenis_legalitas_jaminan/index.blade.php +++ b/resources/views/jenis_legalitas_jaminan/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Jenis Legalitas Jaminan diff --git a/resources/views/jenis_penilaian/index.blade.php b/resources/views/jenis_penilaian/index.blade.php index d6de67c..640f4b3 100644 --- a/resources/views/jenis_penilaian/index.blade.php +++ b/resources/views/jenis_penilaian/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
diff --git a/resources/views/kjpp/index.blade.php b/resources/views/kjpp/index.blade.php index 4496fa4..b3f7ee1 100644 --- a/resources/views/kjpp/index.blade.php +++ b/resources/views/kjpp/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-

diff --git a/resources/views/laporan/index.blade.php b/resources/views/laporan/index.blade.php index 46f3aff..efbad1e 100644 --- a/resources/views/laporan/index.blade.php +++ b/resources/views/laporan/index.blade.php @@ -7,10 +7,8 @@ @section('content')
- - -
+

Laporan @@ -69,7 +67,8 @@ Due Date SLA - Action + Status + Actions @@ -88,9 +87,124 @@

- -

@endsection + +@push('scripts') + +@endpush diff --git a/resources/views/nilai_plafond/index.blade.php b/resources/views/nilai_plafond/index.blade.php index 3384172..e5cfc60 100644 --- a/resources/views/nilai_plafond/index.blade.php +++ b/resources/views/nilai_plafond/index.blade.php @@ -6,7 +6,7 @@ @section('content')
-
+

Daftar Nilai Plafond diff --git a/resources/views/noc/form.blade.php b/resources/views/noc/form.blade.php index 0fc649e..41c84fd 100644 --- a/resources/views/noc/form.blade.php +++ b/resources/views/noc/form.blade.php @@ -19,7 +19,7 @@
@csrf - +