diff --git a/app/Http/Controllers/NocController.php b/app/Http/Controllers/NocController.php index e0b3cd3..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')); } diff --git a/app/Http/Controllers/PembayaranController.php b/app/Http/Controllers/PembayaranController.php index a5eccb5..729d0a3 100644 --- a/app/Http/Controllers/PembayaranController.php +++ b/app/Http/Controllers/PembayaranController.php @@ -27,9 +27,83 @@ return view('lpj::pembayaran.index'); } - public function approval() {} + public function approval() { + return view('lpj::pembayaran.approval'); + } - public function dataApprovalForDatatables(Request $request) {} + public function dataApprovalForDatatables(Request $request) { + if (is_null($this->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) { @@ -66,7 +140,6 @@ $permohonan = Permohonan::find(request()->get('permohonan_id')); if ($permohonan) { $permohonan->status_bayar = request()->get('status_bayar'); - $permohonan->status = 'noc'; $permohonan->save(); // andy add, update status penawaran.status='spk' @@ -88,32 +161,32 @@ : JsonResponse { // init $data = []; - $dataku = []; + $output = []; $tindakan = null; if (request()->ajax()) { try { - $dataku = [ + $data = [ 'approve_bayar_by' => Auth::id(), 'approve_bayar_at' => now(), ]; if ($request->keterangan) { - $dataku['approve_keterangan_bayar'] = $request->keterangan; + $data['approve_keterangan_bayar'] = $request->keterangan; } - $data['dataku'] = $dataku; + $output['data'] = $data; $modal = Permohonan::find($id); - $modal->update($dataku); + $modal->update($data); // - $data['status'] = 'success'; - $data['message'] = ['Otorisasi' . $modal->nomor_registrasi . 'berhasil di lakukan']; + $output['status'] = 'success'; + $output['message'] = ['Otorisasi' . $modal->nomor_registrasi . 'berhasil di lakukan']; } catch (Exception $e) { - $data['status'] = 'error'; - $data['message'] = ['Otorisasi gagal di lakukan.']; + $output['status'] = 'error'; + $output['message'] = ['Otorisasi gagal di lakukan.']; } } - return response()->json($data); + return response()->json($output); } public function dataForDatatables(Request $request) diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php index 055fc38..5d086b5 100644 --- a/app/Models/Permohonan.php +++ b/app/Models/Permohonan.php @@ -170,4 +170,8 @@ public function pembatalan(){ return $this->hasMany(PermohonanPembatalan::class); } + + public function approveBayar(){ + return $this->belongsTo(User::class, 'approve_bayar_by', 'id'); + } } 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 @@