diff --git a/app/Http/Controllers/PembayaranController.php b/app/Http/Controllers/PembayaranController.php index 8f48d54..34fa78d 100644 --- a/app/Http/Controllers/PembayaranController.php +++ b/app/Http/Controllers/PembayaranController.php @@ -9,16 +9,9 @@ use Illuminate\Http\JsonResponse; use Modules\Lpj\Models\Permohonan; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; -use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Models\PenawaranTender; -use Illuminate\Support\Facades\Validator; use Modules\Lpj\Models\PersetujuanPenawaran; use Modules\Lpj\Http\Requests\PersetujuanPenawaranRequest; - -// use Modules\Lpj\Models\JenisPenilaian; - -// use Modules\Lpj\Models\Regions; - class PembayaranController extends Controller { public $user; @@ -28,6 +21,14 @@ class PembayaranController extends Controller return view('lpj::pembayaran.index'); } + public function kurang(){ + return view('lpj::pembayaran.kurang'); + } + + public function lebih(){ + return view('lpj::pembayaran.lebih'); + } + public function approval() { return view('lpj::pembayaran.approval'); @@ -36,13 +37,13 @@ class PembayaranController extends Controller 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.'); + //abort(403, 'Sorry! You are not allowed to view persetujuan penawaran.'); } - // Retrieve data from the database + // Retrieve data from the database $query = PersetujuanPenawaran::query(); - // Apply search filter if provided + // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { @@ -50,29 +51,29 @@ class PembayaranController extends Controller }); } - // Apply sorting if provided + // 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 + // Get the total count of records $totalRecords = $query->count(); - // Apply pagination if provided + // 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 + $offset = ($page - 1) * $size; // Calculate the offset $query->skip($offset)->take($size); } - // Get the filtered count of records + // Get the filtered count of records $filteredRecords = $query->count(); - // Get the data for the current page + // Get the data for the current page $data = $query ->with( [ @@ -90,13 +91,13 @@ class PembayaranController extends Controller )->get(); - // Calculate the page count + // Calculate the page count $pageCount = ceil($totalRecords / $request->get('size')); - // Calculate the current page number + // Calculate the current page number $currentPage = $request->get('page', 1); - // Return the response data as a JSON object + // Return the response data as a JSON object return response()->json([ 'draw' => $request->get('draw'), 'recordsTotal' => $totalRecords, @@ -123,19 +124,19 @@ class PembayaranController extends Controller $validated['status'] = '0'; $persetujuanPenawaran = PersetujuanPenawaran::where('permohonan_id', $validated['permohonan_id'] ?? null)->first(); - $permohonan = Permohonan::find(request()->get('permohonan_id')); + $permohonan = Permohonan::find(request()->get('permohonan_id')); if ($persetujuanPenawaran) { - // if (isset($validated['penawaran_id'])) { + // if (isset($validated['penawaran_id'])) { - // $persetujuanPenawaran = PersetujuanPenawaran::create( - // ['penawaran_id' => $validated['penawaran_id']], - // $validated, - // ); + // $persetujuanPenawaran = PersetujuanPenawaran::create( + // ['penawaran_id' => $validated['penawaran_id']], + // $validated, + // ); $persetujuanPenawaran->fill($validated); if ($request->hasFile('bukti_bayar')) { - $folderPath = 'persetujuan_penawaran/' . $validated['penawaran_id']; + $folderPath = 'persetujuan_penawaran/' . $validated['penawaran_id']; $persetujuanPenawaran->bukti_bayar = $request->file('bukti_bayar')->store($folderPath, 'public'); } @@ -143,7 +144,7 @@ class PembayaranController extends Controller $permohonan->approve_bayar_by = null; $permohonan->approve_bayar_at = null; - $permohonan->status = 'done'; + $permohonan->status = 'done'; $permohonan->save(); } else { $persetujuanPenawaran = PersetujuanPenawaran::create( @@ -154,7 +155,7 @@ class PembayaranController extends Controller $noc = Noc::where('nomor_tiket',$validated['nomor_tiket'])->first(); if($noc){ $noc->persetujuan_penawaran_id = $persetujuanPenawaran->id; - $noc->permohonan_id = $validated['permohonan_id']; + $noc->permohonan_id = $validated['permohonan_id']; $noc->save(); } } @@ -167,20 +168,20 @@ class PembayaranController extends Controller $persetujuanPenawaran->save(); } - // Update the status of the related permohonan to 'spk' + // Update the status of the related permohonan to 'spk' 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(); + // 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' + // andy add, update status penawaran.status='spk' } @@ -190,7 +191,7 @@ class PembayaranController extends Controller public function update(Request $request, $id): JsonResponse { - // init + // init $data = []; $output = []; $tindakan = null; @@ -206,22 +207,22 @@ class PembayaranController extends Controller } $output['data'] = $data; - // Update the status of the related permohonan to 'spk' + // Update the status of the related permohonan to 'spk' $permohonan = Permohonan::find($id); if ($permohonan) { if ($request->type === 'revisi') { - $data['status'] = 'revisi-pembayaran'; + $data['status'] = 'revisi-pembayaran'; $data['status_bayar'] = 'belum_bayar'; } else { $data['status_bayar'] = 'sudah_bayar'; - $data['status'] = 'proses-laporan'; + $data['status'] = 'proses-laporan'; } if ($permohonan->jenis_penilaian_id == 2) { $data['status_bayar'] = 'sudah_bayar'; - $data['status'] = 'spk'; + $data['status'] = 'spk'; } if ($permohonan->jenis_penilaian_id == 1) { @@ -261,7 +262,7 @@ class PembayaranController extends Controller 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.'); + // abort(403, 'Sorry! You are not allowed to view users.'); } $query = Permohonan::query()->where(function ($query) { @@ -277,7 +278,7 @@ class PembayaranController extends Controller }); - // Pencarian berdasarkan parameter search + // Pencarian berdasarkan parameter search if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { @@ -291,17 +292,17 @@ class PembayaranController extends Controller }); } - // Sorting berdasarkan sortField dan sortOrder + // 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 + // Hitung total records $totalRecords = $query->count(); - // Pagination (default page size 10) + // Pagination (default page size 10) $size = $request->get('size', 10); if ($size == 0) { $size = 10; @@ -314,20 +315,156 @@ class PembayaranController extends Controller $query->skip($offset)->take($size); } - // Filtered records + // Filtered records $filteredRecords = $query->count(); - // Ambil data dengan relasi + // Ambil data dengan relasi $data = $query->with(['user', 'debiture', 'branch', 'jenisPenilaian'])->get(); - // Hitung jumlah halaman + // Hitung jumlah halaman $pageCount = ceil($totalRecords / $size); - // Ambil current page + // Ambil current page $currentPage = max(1, $request->get('page', 1)); - // Return JSON response + // Return JSON response + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } + + public function dataForDatatablesKurang(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } + + $query = Noc::query()->where(function ($query) { + $query->where(['status_kurang_bayar' => '1']); + }); + + // 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->get(); + + $data = $data->map(function ($item) { + return [ + 'id' => $item->id, + 'permohonan' => $item->permohonan, + 'pemohon' => $item->permohonan->user, + 'branch' => $item->permohonan->branch, + 'debiture' => $item->permohonan->debiture, + 'nominal_kurang_bayar' => formatRupiah($item->nominal_kurang_bayar,2) + ]; + }); + + // 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, + ]); + } + + public function dataForDatatablesLebih(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } + + $query = Noc::query()->where(function ($query) { + $query->where(['status_lebih_bayar' => '1']); + }); + + // 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->get(); + + $data = $data->map(function ($item) { + return [ + 'id' => $item->id, + 'permohonan' => $item->permohonan, + 'pemohon' => $item->permohonan->user, + 'branch' => $item->permohonan->branch, + 'debiture' => $item->permohonan->debiture, + 'nominal_lebih_bayar' => formatRupiah($item->nominal_lebih_bayar,2) + ]; + }); + + // 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, diff --git a/module.json b/module.json index 98a93fe..2cad9d7 100644 --- a/module.json +++ b/module.json @@ -398,7 +398,7 @@ "permission": "", "roles": [ "administrator", - "admin" + "pemohon-ao" ] }, { @@ -409,7 +409,7 @@ "permission": "", "roles": [ "administrator", - "admin" + "pemohon-ao" ] }, { @@ -420,7 +420,7 @@ "permission": "", "roles": [ "administrator", - "admin" + "pemohon-ao" ] } ] @@ -459,6 +459,7 @@ "permission": "", "roles": [ "administrator", + "admin", "noc" ] }, @@ -471,6 +472,7 @@ "permission": "", "roles": [ "administrator", + "admin", "noc" ] } diff --git a/resources/views/pembayaran/kurang.blade.php b/resources/views/pembayaran/kurang.blade.php new file mode 100644 index 0000000..11c7b12 --- /dev/null +++ b/resources/views/pembayaran/kurang.blade.php @@ -0,0 +1,242 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('pembayaran') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Pembayaran Kurang Bayar +

+
+
+ +
+ +
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Nomor Tiket + + + Tanggal Permohonan + + + User Pemohon + + + Cabang Pemohon + + + Debitur + + + Status Bayar + + + Nominal + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + +@endpush diff --git a/resources/views/pembayaran/lebih.blade.php b/resources/views/pembayaran/lebih.blade.php new file mode 100644 index 0000000..8700a12 --- /dev/null +++ b/resources/views/pembayaran/lebih.blade.php @@ -0,0 +1,242 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('pembayaran') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Pembayaran Lebih Bayar +

+
+
+ +
+ +
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Nomor Tiket + + + Tanggal Permohonan + + + User Pemohon + + + Cabang Pemohon + + + Debitur + + + Status Bayar + + + Nominal + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + +@endpush diff --git a/routes/registrasi.php b/routes/registrasi.php index 7d580ac..6528d5a 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -136,6 +136,8 @@ Route::middleware(['auth'])->group(function () { Route::get('/pembayaran/{pembayaran}/edit', 'edit')->name('pembayaran.edit'); Route::post('pembayaran','store')->name('pembayaran.store'); Route::get('/pembayaran/datatables', 'dataForDatatables')->name('pembayaran.datatables'); + Route::get('/pembayaran/datatables-kurang','dataForDatatablesKurang')->name('pembayaran.kurang.datatables'); + Route::get('/pembayaran/datatables-lebih','dataForDatatablesLebih')->name('pembayaran.lebih.datatables'); Route::put('/pembayaran/{pembayaran}', 'update')->name('pembayaran.update');