From 5022b40444a1df97474ebf917a73efad109e2597 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Thu, 10 Oct 2024 11:20:47 +0700 Subject: [PATCH 01/55] memperbaiki kesalahan parameter _data menjadi response --- resources/views/prosespenawaran/js/editextjs.blade.php | 5 ++--- resources/views/prosespenawaran/js/editjs.blade.php | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/resources/views/prosespenawaran/js/editextjs.blade.php b/resources/views/prosespenawaran/js/editextjs.blade.php index cc9580e..6489b51 100644 --- a/resources/views/prosespenawaran/js/editextjs.blade.php +++ b/resources/views/prosespenawaran/js/editextjs.blade.php @@ -55,7 +55,7 @@ function updateData(id, kjpp_id, kjppName){ var file_data = $("#{{$route[1]}}_dokumenPersetujuan_"+id).prop("files")[0]; let useURL = "{{ route($route[0].'.'.$route[1].'.update', '') }}/"+id; let formData = new FormData(); - let token = "{{ csrf_token() }}";alert(token); + let token = "{{ csrf_token() }}"; formData.append("dokumen_persetujuan", file_data); formData.append("biaya_penawaran", biaya); formData.append("kjpp_rekanan_id", kjpp_id); @@ -77,7 +77,7 @@ function updateData(id, kjpp_id, kjppName){ }, 2000); } else - toastr.error(_data.message); + toastr.error(response.message); }, error: function (response, textStatus, errorThrown) { @@ -108,7 +108,6 @@ function deleteData(data) { let token = "{{ csrf_token() }}"; let useURL = "{{ route($route[0].'.'.$route[1].'.updateStatusPenawaranKJPP','') }}/"+data; - alert(useURL); var input_data = new Object(); input_data._token = token; input_data.id =1; diff --git a/resources/views/prosespenawaran/js/editjs.blade.php b/resources/views/prosespenawaran/js/editjs.blade.php index fb460fd..a890d16 100644 --- a/resources/views/prosespenawaran/js/editjs.blade.php +++ b/resources/views/prosespenawaran/js/editjs.blade.php @@ -121,7 +121,7 @@ }, 2000); } else - toastr.error(_data.message); + toastr.error(response.message); }, error: function(response, textStatus, errorThrown) { From cba7b5ab6f1cbe857f4f341ed0aa5ff15bcd4b04 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Fri, 11 Oct 2024 17:35:47 +0700 Subject: [PATCH 02/55] coba konek ke branch andydev --- resources/views/prosespenawaran/index.blade.php | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/views/prosespenawaran/index.blade.php b/resources/views/prosespenawaran/index.blade.php index 1c86f53..530813f 100644 --- a/resources/views/prosespenawaran/index.blade.php +++ b/resources/views/prosespenawaran/index.blade.php @@ -78,6 +78,7 @@ @push('scripts') + - + + +@endpush + diff --git a/resources/views/spk/view.blade.php b/resources/views/spk/view.blade.php new file mode 100644 index 0000000..9145de1 --- /dev/null +++ b/resources/views/spk/view.blade.php @@ -0,0 +1,232 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('basicdata.tujuan-penilaian') }} +@endsection + +@section('content') +
+
+
+

+ SPK View +

+ + + +
+
+
+ + + + + + + +
+ +
+
+
+@endsection + +@push('scripts') + + + +@endpush + diff --git a/routes/web.php b/routes/web.php index 45d3b7b..423ad0b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -27,6 +27,7 @@ use Modules\Lpj\Http\Controllers\TeamsController; use Modules\Lpj\Http\Controllers\TenderController; use Modules\Lpj\Http\Controllers\TujuanPenilaianController; use Modules\Lpj\Http\Controllers\TujuanPenilaianKJPPController; +use Modules\Lpj\Http\Controllers\SpkController; // use Modules\Lpj\Http\Controllers\ActivityController; use Modules\Lpj\Http\Controllers\SurveyorController; @@ -397,6 +398,20 @@ Route::middleware(['auth'])->group(function () { Route::get('export', [PermohonanController::class, 'export'])->name('export'); }); + Route::name('spk.')->prefix('spk')->group(function () { + // Route::get('download', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); + Route::get('view', [SpkController::class, 'viewSpk'])->name('spk.view'); + // Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); + // Route::get('download/{id}', [PermohonanController::class, 'download'])->name('download'); + // Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore'); + // Route::get('datatables', [PermohonanController::class, 'dataForDatatables'])->name('datatables'); + // Route::get('export', [PermohonanController::class, 'export'])->name('export'); + }); + + Route::resource('spk', SpkController::class); + + Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); + Route::resource('permohonan', PermohonanController::class); Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); From e11f42c2ca91e38db5da91eaca9d2b996ccce8cc Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Tue, 22 Oct 2024 11:59:51 +0700 Subject: [PATCH 07/55] adaptasi toastr dan delete showjs.blade.php --- app/Http/Controllers/RegistrasiController.php | 41 ++--- module.json | 2 +- resources/views/assetsku/includenya.blade.php | 95 ++++++++++- .../views/registrasi/js/editjs.blade.php | 35 +++-- .../views/registrasi/js/showjs.blade.php | 148 ------------------ resources/views/registrasi/show.blade.php | 1 - 6 files changed, 129 insertions(+), 193 deletions(-) delete mode 100644 resources/views/registrasi/js/showjs.blade.php diff --git a/app/Http/Controllers/RegistrasiController.php b/app/Http/Controllers/RegistrasiController.php index 6efb5a4..adc0f3e 100644 --- a/app/Http/Controllers/RegistrasiController.php +++ b/app/Http/Controllers/RegistrasiController.php @@ -114,25 +114,27 @@ if (request()->ajax()) { $id = $request->id; - $datas = Permohonan::findOrFail($id); - $data['status'] = 'success'; + $datas = Permohonan::find($id); + if ($datas) { $jenisPenilaians=null; $regions=null; $regions=Regions::pluck('name', 'id'); $jenisPenilaians=JenisPenilaian::pluck('name', 'id'); + $data['status'] = 'success'; $data['regions'] = $regions; $data['jenisPenilaians'] = $jenisPenilaians; $data['datas'] = $datas; - $data['message'] = 'data successfully found'; + $data['message'] ['message_success'] = array("data successfully found"); } else { + $data['status'] = 'error'; $data['datas'] = null; - $data['message'] = 'data not found'; + $data['message'] ['message_data'] = array("data not found"); } } else { $data['status'] = 'error'; - $data['message'] = 'no ajax request'; + $data['message'] ['message_ajax'] = array("no ajax request"); } return response()->json($data); @@ -179,17 +181,17 @@ $modal->update($dataku); // $data['status'] = 'success'; - $data['message'] = 'Regitrasi '.$modal->nomor_registrasi.' successfully'; + $data['message'] ['message_success'] = array('Regitrasi '.$modal->nomor_registrasi.' successfully'); } catch (Exception $e) { $data['status'] = 'error'; - $data['message'] = 'Jenis Fasilitas Kredit updated failed.'; + $data['message'] ['message_try_catch'] = array('Regitrasi updated failed.'); } } } else { $data['status'] = 'error'; - $data['message'] = 'no ajax request'; + $data['message'] ['message_ajax'] = array("no ajax request"); } return response()->json($data); @@ -245,27 +247,4 @@ return view('lpj::registrasi.show', compact('id','permohonan')); } - public function showData(Request $request): JsonResponse - { - $data = array(); - $datas = array(); - - if (request()->ajax()) { - $id = $request->id; - $datas = Permohonan::findOrFail($id); - $data['status'] = 'success'; - if ($datas) { - $data['datas'] = $datas; - $data['message'] = 'data successfully found'; - } else { - $data['datas'] = null; - $data['message'] = 'data not found'; - } - } else { - $data['status'] = 'error'; - $data['message'] = 'no ajax request'; - } - - return response()->json($data); - } } diff --git a/module.json b/module.json index 0687930..de218f6 100644 --- a/module.json +++ b/module.json @@ -325,7 +325,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["Administrator", "admin"] + "roles": ["administrator", "admin"] }, { "title": "Tujuan Penilaian KJPP", diff --git a/resources/views/assetsku/includenya.blade.php b/resources/views/assetsku/includenya.blade.php index f646e05..e386f39 100644 --- a/resources/views/assetsku/includenya.blade.php +++ b/resources/views/assetsku/includenya.blade.php @@ -1,4 +1,45 @@ - diff --git a/resources/views/registrasi/js/editjs.blade.php b/resources/views/registrasi/js/editjs.blade.php index b6b31e8..1863f78 100644 --- a/resources/views/registrasi/js/editjs.blade.php +++ b/resources/views/registrasi/js/editjs.blade.php @@ -38,11 +38,23 @@ // } }, success: function(response) { - console.log(response); + + if ('success' == response.status) + { + $("#textReg").text(response.datas.nomor_registrasi); + setJenisPenilaianList(response.jenisPenilaians,0); + setRegionList(response.regions,0); - $("#textReg").text(response.datas.nomor_registrasi); - setJenisPenilaianList(response.jenisPenilaians,0); - setRegionList(response.regions,0); + // success + // var message = response.message; + // toastrku("success", message); + + } + else if('error' == response.status) + { + var message = response.message; + toastrku("error", message); + } }, error: function(xhr) { }, @@ -152,8 +164,14 @@ else { //toastr.success(response.message); - var url = "{{ route('registrasi.index') }}"; - $(location).attr('href',url); + var message = response.message; + toastrku("success", message); + + setTimeout(function () { + var url = "{{ route('registrasi.index') }}"; + $(location).attr('href',url); + // window.location.href = "https://www.newurl.com"; + }, 2000); } }, @@ -189,10 +207,5 @@ } }); - /* - $('#{{$route[0]}}_jenis_penilaian').on('change', function() { - console.log( this.value ); - }); - */ @endpush diff --git a/resources/views/registrasi/js/showjs.blade.php b/resources/views/registrasi/js/showjs.blade.php deleted file mode 100644 index 5309d38..0000000 --- a/resources/views/registrasi/js/showjs.blade.php +++ /dev/null @@ -1,148 +0,0 @@ -@push('scripts') - -@endpush diff --git a/resources/views/registrasi/show.blade.php b/resources/views/registrasi/show.blade.php index d599468..0b92b7e 100644 --- a/resources/views/registrasi/show.blade.php +++ b/resources/views/registrasi/show.blade.php @@ -312,5 +312,4 @@ @endsection -@include('lpj::registrasi.js.showjs') @include('lpj::registrasi.js.editjs') From ed353e04f150e386a515979b647f0b37827354d4 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Tue, 22 Oct 2024 19:02:10 +0700 Subject: [PATCH 08/55] adaptasi toastr dan penggunaan helper --- app/Helpers/Lpj.php | 54 ++++ .../Controllers/ProsesPenawaranController.php | 291 ++++++++---------- .../prosespenawaran/js/editextjs.blade.php | 271 ++++++++-------- .../views/prosespenawaran/js/editjs.blade.php | 49 +-- routes/registrasi.php | 7 +- 5 files changed, 360 insertions(+), 312 deletions(-) diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index 6a4c032..10e296f 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -1,6 +1,7 @@ province) ? $alamat->province->name . ', ' : '') . ($alamat->postal_code ?? ''); } + +// andy add +function checkActiveDateRangePenawaran($start_date1, $end_date1) +{ + $start_date = strtotime($start_date1); + $end_date = strtotime($end_date1); + $todays_date = strtotime(now()); + + $allow = true; + if ($todays_date >= $start_date && $todays_date <= $end_date) { + //Penawaran dibuka + $allow = true; + } else { + if ($todays_date < $start_date) { + //Penawaran Belum dibuka + $allow = true; + } else { + //Penawaran sudah ditutup + $allow = false; + } + } + + return $allow; +} + +function checkKelengkapanDetailKJPP($id) +{ + $allow = true; + // DB::enableQueryLog(); + // detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap? + $query = PenawaranDetailTender::select('id') + ->where('penawaran_id', '=', $id) + ->where(function ($query) { + $query->orWhere('biaya_penawaran', '', ""); + $query->orWhereNull('biaya_penawaran'); + + $query->orWhere('attachment', '', ""); + $query->orWhereNull('attachment'); + + $query->orWhere('dokumen_persetujuan', '', ""); + $query->orWhereNull('dokumen_persetujuan'); + })->get(); + // $sql = DB::getQueryLog(); + + + if (sizeof($query) > 0) { + $allow = false; + } + + return $allow; +} +// andy add + diff --git a/app/Http/Controllers/ProsesPenawaranController.php b/app/Http/Controllers/ProsesPenawaranController.php index 9063533..9c16c9f 100644 --- a/app/Http/Controllers/ProsesPenawaranController.php +++ b/app/Http/Controllers/ProsesPenawaranController.php @@ -108,37 +108,39 @@ class ProsesPenawaranController extends Controller if (request()->ajax()) { $id = $request->id; - $penawaran = PenawaranTender::findOrFail($id); - $penawrandetails = PenawaranDetailTender::where('penawaran_id', '=', $id) - ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id') - ->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name') - ->where('detail_penawaran.status', '=', 1) - ->get(); - $data['status'] = 'success'; + $penawaran = PenawaranTender::find($id); + $penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id) + ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id') + ->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name') + ->where('detail_penawaran.status','=',1) + ->get(); + if ($penawaran) { - $i = 0; - foreach ($penawrandetails as $obj) { - // dd($obj->dokumen_persetujuan); - if ($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan)) { + + $i=0; + foreach($penawrandetails as $obj) + { + if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan)) + { $penawrandetails_path = Storage::url($obj->dokumen_persetujuan); - $penawrandetails[$i]->dokumen_persetujuan = $penawrandetails_path; - $i++; + $penawrandetails[$i]['dokumen_persetujuan']=$penawrandetails_path; } + $i++; } - $kjpp = null; - $kjpp = KJPP::pluck('name', 'id'); $data['penawaran'] = $penawaran; $data['penawrandetails'] = $penawrandetails; - $data['message'] = 'data successfully found'; + $data['status'] = 'success'; + $data['message'] ['message_success'] = array("data successfully found"); } else { $data['penawaran'] = null; $data['penawrandetails'] = null; - $data['message'] = 'data not found'; + $data['status'] = 'error'; + $data['message'] ['message_data'] = array("data not found"); } } else { $data['status'] = 'error'; - $data['message'] = 'no ajax request'; + $data['message'] ['message_ajax'] = array("no ajax request"); } return response()->json($data); @@ -151,62 +153,71 @@ class ProsesPenawaranController extends Controller { // init $data = array(); - $dataku = array(); - $tindakan = null; + $dataPenawaranDetail = array(); if (request()->ajax()) { $validator = ProsesPenawaranController::rulesEditnya($request, $id); - + if ($validator['fails']) { $data['message'] = $validator['errors']; $data['status'] = 'error'; - } else { + } + else + { try { - $dataku = [ - 'updated_by' => Auth::id(), - 'updated_at' => now(), - 'biaya_penawaran' => str_replace(".", "", $request->biaya_penawaran) - ]; + $dataPenawaranDetail = ['updated_by' => Auth::id(), + 'updated_at' => now(), + 'biaya_penawaran' => str_replace(".","",$request->biaya_penawaran) + ]; - if ($request->hasFile('dokumen_persetujuan')) { + if ($request->hasFile('dokumen_persetujuan')) + { $file_tmp = $request->file('dokumen_persetujuan'); $folderPath = 'uploads/penawaran/'; - if ($file_tmp->isValid()) { - $myFile = $file_tmp->getClientOriginalName(); // nama file with extension + if ($file_tmp->isValid()) + { + $myFile=$file_tmp->getClientOriginalName(); // nama file with extension $file_name = pathinfo($myFile, PATHINFO_FILENAME); // nama file without extension $extension = $file_tmp->getClientOriginalExtension(); // kjppID_penawaranID_namaFile_userID_time - $newFileName = $request->kjpp_rekanan_id . '_' . $id . '_' . $file_name . '_' . Auth::user()->id . "_" . time() . '.' . $extension; - Storage::disk('public')->put($folderPath . '/' . $newFileName, file_get_contents($file_tmp)); + $newFileName = $request->kjpp_rekanan_id.'_'.$id.'_'.$file_name.'_'.Auth::user()->id."_".time() .'.'. $extension; + Storage::disk('public')->put($folderPath.'/'.$newFileName,file_get_contents($file_tmp)); $newFileNameWithPath = $folderPath . $newFileName; - $dataku['attachment'] = $myFile; - $dataku['dokumen_persetujuan'] = $newFileNameWithPath; + $dataPenawaranDetail['attachment'] = $myFile; + $dataPenawaranDetail['dokumen_persetujuan'] = $newFileNameWithPath; - $model = PenawaranDetailTender::findOrFail($id); - $model->update($dataku); + $penawarandetail = PenawaranDetailTender::findOrFail($id); + $penawarandetail->update($dataPenawaranDetail); - $data['status'] = 'success'; $data['detailpenawaran_id'] = $id; - $data['message'] = 'Proses Penawarn KJPP successfully'; - } else { - $data['status'] = 'error'; - $data['message'] = 'Silahkan upload file pdf'; + $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Proses Penawarn KJPP successfully'); + } + else + { + $data['status'] = 'error'; + $data['message'] ['check_file_jenis'] = array("Silahkan upload file pdf"); } - } else { - $data['status'] = 'error'; - $data['message'] = 'Silahkan upload file'; } + else + { + $data['status'] = 'error'; + $data['message'] ['check_file'] = array("Silahkan upload file"); + + } + } catch (Exception $e) { - + $data['status'] = 'error'; - $data['message'] = 'Proses Penawarn KJPP failed.'; + $data['message'] ['message_error_try_catch'] = array('Proses Penawarn KJPP failed.'); } } + } else { $data['status'] = 'error'; - $data['message'] = 'no ajax request'; + $data['message'] ['message_ajax'] = array("no ajax request"); } return response()->json($data); @@ -240,134 +251,92 @@ class ProsesPenawaranController extends Controller */ public function updateAll(Request $request, $id): JsonResponse { + // init + $data = array(); + $dataPermohonan = array(); + $dataPenawaran = array(); + $penawaran = PenawaranTender::findOrFail($id); + $checkActiveDateRange = checkActiveDateRangePenawaran($penawaran->start_date, $penawaran->end_date); + + // cek masa aktif penawaran + if($checkActiveDateRange) + { + + $checkKelengkapanDetailKJPP = checkKelengkapanDetailKJPP($id); + if($checkKelengkapanDetailKJPP) + { + DB::beginTransaction(); + try { + $dataPenawaran = ['status' => 'persetujuan-penawaran', + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]; + + $dataPermohonan = ['status' => 'persetujuan-penawaran', + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]; + + $permohonan = Permohonan::where('nomor_registrasi','=', $penawaran->nomor_registrasi)->first(); + + $penawaran->update($dataPenawaran); + $permohonan->update($dataPermohonan); + + DB::commit(); + + $data['message'] ['message_success'] = array('Sukses melakukan Proses Penawaran'); + $data['status'] = 'success'; + + } catch (Exception $e) { + DB::rollBack(); + // dd($e); + $data['message'] ['message_error_try_catch'] = array("Gagal melakukan Proses Penawaran"); + $data['status'] = 'error'; + } + + } + else + { + $data['message'] ['cek_kelengkapan_data'] = array("Silahkan lengkapi data KJPP"); + $data['status'] = 'error'; + } + + } + else + { + $data['message'] ['active_date_range'] = array("Penawaran sudah di tutup"); + $data['status'] = 'error'; + } + + return response()->json($data); + } + + public function updateKJPPStatus(Request $request, $id): JsonResponse + { + // dd('updateKJPPStatus'); // init $data = array(); - $dataku = array(); - $model = PenawaranTender::findOrFail($id); - $checkActiveDateRange = $this->checkActiveDateRangePenawaran($model->start_date, $model->end_date); - - // cek masa aktif penawaran - if ($checkActiveDateRange) { - - $checkKelengkapanDetailKJPP = $this->checkKelengkapanDetailKJPP($id); - if ($checkKelengkapanDetailKJPP) { - DB::beginTransaction(); - try { - $dataku = [ - 'status' => 'tendered', - 'updated_by' => Auth::id(), - 'updated_at' => now() - ]; - - $dataPermohonan = [ - 'status' => 'tendered', - 'updated_by' => Auth::id(), - 'updated_at' => now() - ]; - - $permohonan = Permohonan::where('nomor_registrasi', '=', $model->nomor_registrasi)->first(); - - $model->update($dataku); - $permohonan->update($dataPermohonan); - - DB::commit(); - - $data['message'] = "Sukses melakukan Proses Penawaran"; - $data['status'] = 'success'; - } catch (Exception $e) { - DB::rollBack(); - // dd($e); - $data['message'] = "Gagal melakukan Proses Penawaran"; - $data['status'] = 'error'; - } - } else { - $data['message'] = "Silahkan lengkapi data KJPP"; - $data['status'] = 'error'; - } - } else { - $data['message'] = "Penawaran sudah di tutup"; - $data['status'] = 'error'; - } - - return response()->json($data); - } - - public function checkActiveDateRangePenawaran($start_date1, $end_date1) - { - $start_date = strtotime($start_date1); - $end_date = strtotime($end_date1); - $todays_date = strtotime(now()); - - $allow = true; - if ($todays_date >= $start_date && $todays_date <= $end_date) { - //Penawaran dibuka - $allow = true; - } else { - if ($todays_date < $start_date) { - //Penawaran Belum dibuka - $allow = true; - } else { - //Penawaran sudah ditutup - $allow = false; - } - } - - return $allow; - } - - public function checkKelengkapanDetailKJPP($id) - { - $allow = true; - // DB::enableQueryLog(); - // detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap? - $query = PenawaranDetailTender::select('id') - ->where('penawaran_id', '=', $id) - ->where(function ($query) { - $query->orWhere('biaya_penawaran', '', ""); - $query->orWhereNull('biaya_penawaran'); - - $query->orWhere('attachment', '', ""); - $query->orWhereNull('attachment'); - - $query->orWhere('dokumen_persetujuan', '', ""); - $query->orWhereNull('dokumen_persetujuan'); - })->get(); - // $sql = DB::getQueryLog(); - - - if (sizeof($query) > 0) { - $allow = false; - } - - return $allow; - } - - public function updateStatusPenawaranKJPP(Request $request, $id): JsonResponse - { - // init - $data = array(); - $dataku = array(); + $dataDetailPenawaran = array(); try { - $model = PenawaranDetailTender::findOrFail($id); - $data['id'] = $id; + $detailpenawaran = PenawaranDetailTender::findOrFail($id); + $data['id']=$id; - $dataku = [ - 'status' => '0', + $dataDetailPenawaran = ['status' => '0', 'updated_by' => Auth::id(), 'updated_at' => now() ]; - $model->update($dataku); + $detailpenawaran->update($dataDetailPenawaran); - $data['message'] = "Sukses delete Penawaran KJPP"; $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Sukses delete Penawaran KJPP '.$request->kjppName); } catch (Exception $e) { - - // dd($e); - $data['message'] = "Gagal delete Penawaran KJPP"; + $data['status'] = 'error'; + $data['message'] ['message_error_try_catch'] = array("Gagal delete Penawaran KJPP ".$request->kjppName); } + return response()->json($data); } diff --git a/resources/views/prosespenawaran/js/editextjs.blade.php b/resources/views/prosespenawaran/js/editextjs.blade.php index 90b5bb5..93f12e4 100644 --- a/resources/views/prosespenawaran/js/editextjs.blade.php +++ b/resources/views/prosespenawaran/js/editextjs.blade.php @@ -1,146 +1,155 @@ \ No newline at end of file + + } + + function deleteData(data, kjppName) { + Swal.fire({ + title: 'Are you sure?', + text: "You won't be able to revert KJPP "+kjppName+"!", + icon: 'warning', + showCancelButton: true, + confirmButtonColor: '#3085d6', + cancelButtonColor: '#d33', + confirmButtonText: 'Yes, delete it!' + }).then((result) => { + if (result.isConfirmed) { + + //define variable + let token = "{{ csrf_token() }}"; + let useURL = "{{ route($route[0].'.'.$route[1].'.updateKJPPStatus','') }}/"+data; + var input_data = new Object(); + input_data._token = token; + input_data.id =data; + input_data.kjppName =kjppName; + $.ajax({ + url: useURL, + type: "PUT", + cache: false, + data: input_data, + dataType: "json", + success: function(response) { + + if('success' == response.status) + { + swal.fire('Deleted!', response.message.message_success[0], 'success').then(() => { + window.location.reload(); + }); + } + else + { + Swal.fire('Error!', response.message.message_error_try_catch[0], 'error'); + } + + + }, + error: function(response, textStatus, errorThrown) { + // var errors = response.responseJSON.errors; + // console.log(errors); + console.log(response); + + } + }); + + } + }) + } + + + \ No newline at end of file diff --git a/resources/views/prosespenawaran/js/editjs.blade.php b/resources/views/prosespenawaran/js/editjs.blade.php index 36045ef..58dd528 100644 --- a/resources/views/prosespenawaran/js/editjs.blade.php +++ b/resources/views/prosespenawaran/js/editjs.blade.php @@ -33,11 +33,18 @@ // } }, success: function(response) { - console.log(response); - - $("#textReg").text(response.penawaran.nomor_registrasi); - $("#textCodePenawaran").text(response.penawaran.code); - setTablesKJPP1(response.penawrandetails); + + if ('success' == response.status) + { + $("#textReg").text(response.penawaran.nomor_registrasi); + $("#textCodePenawaran").text(response.penawaran.code); + setTablesKJPP1(response.penawrandetails); + } + else if('error' == response.status) + { + var message = response.message; + toastrku("error", message); + } }, error: function(xhr) { }, @@ -62,11 +69,11 @@ var markup = ''; markup +=''+i+''; markup +=''; - markup +='
Rp.
'; + markup +='
Rp.
'; markup +=''+htmlDokumenPersetujuanDownload+''; markup +='
'; markup +=''; - markup +=''; + markup +=''; markup +='
'; markup += ''; @@ -97,7 +104,7 @@ } }); - // update penawaran & permohonan status + // updateAll penawaran & permohonan status $("#{{$route[1]}}_toEdit").click(function(e) { e.preventDefault(); @@ -115,19 +122,24 @@ data: input_data, dataType: "json", success: function(response) { - console.log(response); - if('success' == response.status) - { - toastr.success(response.message); - setTimeout(function () { + + if ('success' == response.status) + { + // toastr.success(response.message); + // success + var message = response.message; + toastrku("success", message); + setTimeout(function () { var url = "{{ route('tender.prosespenawaran.index') }}"; $(location).attr('href',url); - // window.location.href = "https://www.newurl.com"; }, 2000); + + } + else if('error' == response.status) + { + var message = response.message; + toastrku("error", message); } - else - toastr.error(response.message); - }, error: function(response, textStatus, errorThrown) { // var errors = response.responseJSON.errors; @@ -136,6 +148,7 @@ } }); - }); + }); + @endpush \ No newline at end of file diff --git a/routes/registrasi.php b/routes/registrasi.php index e57bb56..311da52 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -39,9 +39,12 @@ Route::middleware(['auth'])->group(function () { Route::get('prosespenawaran/{prosespenawaran}/edit', 'edit')->name('prosespenawaran.edit'); + // update one Route::put('/prosespenawaran/{prosespenawaran}', 'update')->name('prosespenawaran.update'); - Route::put('/prosespenawaranAll/{prosespenawaran}', 'updateAll')->name('prosespenawaran.updateAll'); - Route::put('/prosespenawaranStatusKJPP/{prosespenawaran}', 'updateStatusPenawaranKJPP')->name('prosespenawaran.updateStatusPenawaranKJPP'); + // update all + Route::put('/prosespenawaranAll/{prosespenawaranAll}', 'updateAll')->name('prosespenawaran.updateAll'); + // delete KJPP, status set = 0 + Route::put('/prosespenawaranKJPPStatus/{prosespenawaranKJPPStatus}', 'updateKJPPStatus')->name('prosespenawaran.updateKJPPStatus'); }); }); From 5a4cff432ad91cb4cd17294f961bd889331a6beb Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Tue, 22 Oct 2024 19:10:31 +0700 Subject: [PATCH 09/55] perbaikan helper checkActiveDateRangePenawaran --- app/Helpers/Lpj.php | 9 ++++++--- app/Http/Controllers/ProsesPenawaranController.php | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index 10e296f..c49398e 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -2,6 +2,7 @@ use Carbon\Carbon; use Modules\Lpj\Models\PenawaranDetailTender; +use Modules\Lpj\Models\PenawaranTender; function formatTanggalIndonesia($date) { @@ -42,10 +43,12 @@ function formatAlamat($alamat) } // andy add -function checkActiveDateRangePenawaran($start_date1, $end_date1) +function checkActiveDateRangePenawaran($id) { - $start_date = strtotime($start_date1); - $end_date = strtotime($end_date1); + $penawaran = PenawaranTender::find($id); + + $start_date = strtotime($penawaran->start_date); + $end_date = strtotime($penawaran->end_date); $todays_date = strtotime(now()); $allow = true; diff --git a/app/Http/Controllers/ProsesPenawaranController.php b/app/Http/Controllers/ProsesPenawaranController.php index 9c16c9f..243fb9d 100644 --- a/app/Http/Controllers/ProsesPenawaranController.php +++ b/app/Http/Controllers/ProsesPenawaranController.php @@ -255,8 +255,8 @@ class ProsesPenawaranController extends Controller $data = array(); $dataPermohonan = array(); $dataPenawaran = array(); - $penawaran = PenawaranTender::findOrFail($id); - $checkActiveDateRange = checkActiveDateRangePenawaran($penawaran->start_date, $penawaran->end_date); + $penawaran = PenawaranTender::find($id); + $checkActiveDateRange = checkActiveDateRangePenawaran($id); // cek masa aktif penawaran if($checkActiveDateRange) From 617e6541fa34f8bff79130c59d2ca35ce1afa2a0 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Wed, 23 Oct 2024 14:25:53 +0700 Subject: [PATCH 10/55] add feature Proses Penawaran Ulang --- app/Helpers/Lpj.php | 12 + .../Controllers/ProsesPenawaranController.php | 1 - .../ProsesPenawaranUlangController.php | 373 ++++++++++++++++++ app/Models/PenawaranDetailTenderLog.php | 30 ++ ...204_create_detail_penawaran_logs_table.php | 41 ++ module.json | 8 + .../views/prosespenawaranulang/edit.blade.php | 92 +++++ .../prosespenawaranulang/index.blade.php | 152 +++++++ .../js/editextjs.blade.php | 152 +++++++ .../prosespenawaranulang/js/editjs.blade.php | 112 ++++++ .../views/prosespenawaranulang/show.blade.php | 43 ++ routes/breadcrumbs.php | 15 + routes/registrasi.php | 18 + 13 files changed, 1048 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/ProsesPenawaranUlangController.php create mode 100644 app/Models/PenawaranDetailTenderLog.php create mode 100644 database/migrations/2024_10_15_101204_create_detail_penawaran_logs_table.php create mode 100644 resources/views/prosespenawaranulang/edit.blade.php create mode 100644 resources/views/prosespenawaranulang/index.blade.php create mode 100644 resources/views/prosespenawaranulang/js/editextjs.blade.php create mode 100644 resources/views/prosespenawaranulang/js/editjs.blade.php create mode 100644 resources/views/prosespenawaranulang/show.blade.php diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index c49398e..c51457b 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -94,5 +94,17 @@ function checkKelengkapanDetailKJPP($id) return $allow; } + +// convert +function convertSlug($slug) { + + $words = explode('-', $slug); + + foreach ($words as $index => $word) { + $words[$index] = strtoupper($word); + } + + return implode(' ', $words); +} // andy add diff --git a/app/Http/Controllers/ProsesPenawaranController.php b/app/Http/Controllers/ProsesPenawaranController.php index 243fb9d..a37669b 100644 --- a/app/Http/Controllers/ProsesPenawaranController.php +++ b/app/Http/Controllers/ProsesPenawaranController.php @@ -313,7 +313,6 @@ class ProsesPenawaranController extends Controller public function updateKJPPStatus(Request $request, $id): JsonResponse { - // dd('updateKJPPStatus'); // init $data = array(); $dataDetailPenawaran = array(); diff --git a/app/Http/Controllers/ProsesPenawaranUlangController.php b/app/Http/Controllers/ProsesPenawaranUlangController.php new file mode 100644 index 0000000..4cf278d --- /dev/null +++ b/app/Http/Controllers/ProsesPenawaranUlangController.php @@ -0,0 +1,373 @@ +user) || !$this->user->can('debitur.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query =PenawaranTender::query() + ->select('penawaran.*',DB::raw("CONCAT(DATE_FORMAT(penawaran.start_date, '%d %M %Y'), ' - ', DATE_FORMAT(penawaran.end_date, '%d %M %Y')) AS date_range"), 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name') + ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') + ->where('penawaran.status','=','persetujuan-penawaran') + ->withCount('penawarandetails'); + + // 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->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(); + + // 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'])->get(); + $data = $query->get(); + + // Calculate the page count + $pageCount = ceil($totalRecords / $request->get('size')); + + // Calculate the current page number + $currentPage = 0 + 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 + ]); + } + + public function edit($id) + { + return view('lpj::prosespenawaranulang.edit', compact('id')); + } + + public function show($id) + { + $prosespenawaran = PenawaranTender::find($id); + return view('lpj::prosespenawaranulang.show', compact('id','prosespenawaran')); + } + + public function setData(Request $request): JsonResponse + { + $data = array(); + $penawaran = array(); + $penawrandetails = array(); + + if (request()->ajax()) { + $id = $request->id; + $penawaran = PenawaranTender::where('status','=','persetujuan-penawaran')->find($id); + + if ($penawaran) { + $penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id) + ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id') + ->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name') + ->where('detail_penawaran.status','=',1) + ->get(); + + $i=0; + foreach($penawrandetails as $obj) + { + if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan)) + { + $penawrandetails_path = Storage::url($obj->dokumen_persetujuan); + $penawrandetails[$i]['dokumen_persetujuan']=$penawrandetails_path; + } + $i++; + } + + $penawaranString = ""; + if($penawaran->status) + { + $penawaranString = convertSlug($penawaran->status); + $penawaran->status = $penawaranString; + } + + $data['penawaran'] = $penawaran; + $data['penawrandetails'] = $penawrandetails; + $data['status'] = 'success'; + $data['message'] ['message_success'] = array("data successfully found"); + } else { + $data['status'] = 'error'; + $data['penawaran'] = null; + $data['penawrandetails'] = null; + $data['message'] ['message_data'] = array("data not found"); + } + } else { + $data['status'] = 'error'; + $data['message'] ['message_ajax'] = array("no ajax request"); + } + + return response()->json($data); + } + + public function update(Request $request, $id): JsonResponse + { + // init + $data = array(); + $dataDetailPenawaranLog = array(); + $dataDetailPenawaran = array(); + $pleaseCommit= true; + if (request()->ajax()) { + $validator = ProsesPenawaranUlangController::rulesEditnya($request, $id); + + if ($validator['fails']) { + $data['message'] = $validator['errors']; + $data['status'] = 'error'; + } + else + { + // cek masa aktif penawaran + $detailpenawaran = PenawaranDetailTender::find($id); + $checkActiveDateRange = checkActiveDateRangePenawaran($detailpenawaran->penawaran_id); + // cek masa aktif penawaran + if($checkActiveDateRange) + { + DB::beginTransaction(); + try { + + $dataDetailPenawaranLog = [ + 'detail_penawaran_id' =>$detailpenawaran->id, + 'kjpp_rekanan_id' =>$detailpenawaran->kjpp_rekanan_id, + 'penawaran_id' =>$detailpenawaran->penawaran_id, + 'biaya_penawaran' =>$detailpenawaran->biaya_penawaran, + 'attachment' =>$detailpenawaran->attachment, + 'dokumen_persetujuan' =>$detailpenawaran->dokumen_persetujuan, + 'status' =>$detailpenawaran->status, + 'authorized_status' =>$detailpenawaran->authorized_status, + 'authorized_at' =>$detailpenawaran->authorized_at, + 'authorized_at' =>$detailpenawaran->authorized_at, + 'created_at' =>$detailpenawaran->created_at, + 'updated_at' =>$detailpenawaran->updated_at, + 'deleted_at' =>$detailpenawaran->deleted_at, + 'created_by' =>$detailpenawaran->created_by, + 'updated_by' =>$detailpenawaran->updated_by, + 'deleted_by' =>$detailpenawaran->deleted_by + + ]; + + PenawaranDetailTenderLog::create($dataDetailPenawaranLog); + + $biaya_penawaran=""; + if($request->biaya_penawaran) + $biaya_penawaran= str_replace(".","",$request->biaya_penawaran); + $dataDetailPenawaran = ['updated_by' => Auth::id(), + 'updated_at' => now(), + 'biaya_penawaran' => $biaya_penawaran + ]; + + if ($request->hasFile('dokumen_persetujuan')) + { + $file_tmp = $request->file('dokumen_persetujuan'); + $folderPath = 'uploads/penawaran/'; + if ($file_tmp->isValid()) + { + $myFile=$file_tmp->getClientOriginalName(); // nama file with extension + $file_name = pathinfo($myFile, PATHINFO_FILENAME); // nama file without extension + + $extension = $file_tmp->getClientOriginalExtension(); + // kjppID_penawaranID_namaFile_userID_time + $newFileName = $request->kjpp_rekanan_id.'_'.$id.'_'.$file_name.'_'.Auth::user()->id."_".time() .'.'. $extension; + Storage::disk('public')->put($folderPath.'/'.$newFileName,file_get_contents($file_tmp)); + + $newFileNameWithPath = $folderPath . $newFileName; + $dataDetailPenawaran['attachment'] = $myFile; + $dataDetailPenawaran['dokumen_persetujuan'] = $newFileNameWithPath; + } + else + { + $pleaseCommit=false; + $data['status'] = 'error'; + $data['message'] ['check_file_jenis'] = array("Silahkan upload file pdf"); + } + } + else + { + $data['status'] = 'error'; + $data['message'] ['check_file'] = array("Silahkan upload file"); + + } + + $detailpenawaran->update($dataDetailPenawaran); + + if($pleaseCommit) + { + DB::commit(); + + $data['id'] = $id; + $data['detailpenawaran'] = $detailpenawaran; + $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Proses Penawarn KJPP Ulang successfully'); + } + else + { + DB::rollBack(); + $data['status'] = 'error'; + $data['message'] ['message_error'] = array("Proses Penawarn KJPP Ulang failed.."); + } + + } catch (Exception $e) { + DB::rollBack(); + $data['status'] = 'error'; + $data['message'] ['message_error_try_catch'] = array('Proses Penawarn KJPP Ulang failed.'); + } + } + else + { + $data['status'] = 'error'; + $data['message'] ['active_date_range'] = array("Penawaran sudah di tutup"); + } + + } + + } else { + $data['status'] = 'error'; + $data['message'] ['message_ajax'] = array("no ajax request"); + } + + return response()->json($data); + } + + // delete KJPP di detail_penawaran (status di buat 0) + public function updateKJPPStatus(Request $request, $id): JsonResponse + { + // init + $data = array(); + $dataku = array(); + $dataDetailPenawaranLog = array(); + + DB::beginTransaction(); + try { + $model = PenawaranDetailTender::findOrFail($id); + + // log + $dataDetailPenawaranLog = [ + 'detail_penawaran_id' =>$model->id, + 'kjpp_rekanan_id' =>$model->kjpp_rekanan_id, + 'penawaran_id' =>$model->penawaran_id, + 'biaya_penawaran' =>$model->biaya_penawaran, + 'attachment' =>$model->attachment, + 'dokumen_persetujuan' =>$model->dokumen_persetujuan, + 'status' =>0, + 'authorized_status' =>$model->authorized_status, + 'authorized_at' =>$model->authorized_at, + 'authorized_at' =>$model->authorized_at, + 'created_at' =>$model->created_at, + 'updated_at' =>$model->updated_at, + 'deleted_at' =>$model->deleted_at, + 'created_by' =>$model->created_by, + 'updated_by' =>$model->updated_by, + 'deleted_by' =>$model->deleted_by + + ]; + + PenawaranDetailTenderLog::create($dataDetailPenawaranLog); + // log + + $data['id']=$id; + + $dataku = ['status' => '0', + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]; + + $model->update($dataku); + + DB::commit(); + $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Sukses delete Penawaran KJPP '.$request->kjppName); + } catch (Exception $e) { + DB::rollBack(); + // dd($e); + $data['status'] = 'error'; + $data['message'] ['message_error_try_catch'] = array("Gagal delete Penawaran KJPP ".$request->kjppName); + } + return response()->json($data); + } + + public function rulesEditnya($request, $id) + { + $validateIt = [ + // 'name' diambil dari definisi parameter yang di kirim pada POST Data + 'biaya_penawaran' => 'required', + 'dokumen_persetujuan' => 'required|file|mimes:pdf' + ]; + + $messageIt = [ + 'biaya_penawaran.required' => 'Silahkan isi Biaya Penawaran', + 'dokumen_persetujuan.required' => 'Silahkan isi dokumen', + 'dokumen_persetujuan.file' => 'Silahkan isi file', + 'dokumen_persetujuan.mimes' => 'Silahkan upload pdf' + ]; + + $validator = Validator::make($request->all(), $validateIt, $messageIt); + + $data['fails'] = $validator->fails(); + $data['errors'] = $validator->errors(); + + return $data; + } + +} diff --git a/app/Models/PenawaranDetailTenderLog.php b/app/Models/PenawaranDetailTenderLog.php new file mode 100644 index 0000000..d29ff58 --- /dev/null +++ b/app/Models/PenawaranDetailTenderLog.php @@ -0,0 +1,30 @@ +belongsTo(PenawaranTender::class, 'penawaran_id', 'id'); + } + + public function penawarandetail(): BelongsTo + { + return $this->belongsTo(PenawaranDetailTender::class, 'detail_penawaran_id', 'id'); + } +} diff --git a/database/migrations/2024_10_15_101204_create_detail_penawaran_logs_table.php b/database/migrations/2024_10_15_101204_create_detail_penawaran_logs_table.php new file mode 100644 index 0000000..730a0b1 --- /dev/null +++ b/database/migrations/2024_10_15_101204_create_detail_penawaran_logs_table.php @@ -0,0 +1,41 @@ +id(); + $table->unsignedBigInteger('detail_penawaran_id')->nullable(); + $table->unsignedBigInteger('kjpp_rekanan_id')->nullable(); + $table->unsignedBigInteger('penawaran_id')->nullable(); + $table->string('biaya_penawaran')->nullable(); + $table->string('attachment')->nullable(); + $table->string('dokumen_persetujuan')->nullable(); + $table->boolean('status')->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->timestamps(); + $table->timestamp('deleted_at')->nullable(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('detail_penawaran_logs'); + } +}; diff --git a/module.json b/module.json index 7977c0c..0390201 100644 --- a/module.json +++ b/module.json @@ -61,6 +61,14 @@ "attributes": [], "permission": "", "roles": ["administrator", "admin"] + }, + { + "title": "Data Proses Penawaran Ulang", + "path": "tender.prosespenawaranulang", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator", "admin"] } ] }, diff --git a/resources/views/prosespenawaranulang/edit.blade.php b/resources/views/prosespenawaranulang/edit.blade.php new file mode 100644 index 0000000..79e5e79 --- /dev/null +++ b/resources/views/prosespenawaranulang/edit.blade.php @@ -0,0 +1,92 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@php + // $route = Route::currentRouteName(); + // dd($route); + $route = explode('.', Route::currentRouteName()); +@endphp + +@section('content') +
+ +
+
+

+ Tambah Data Proses Penawaran Ulang +

+ +
+
+
+

+ Nomor Register Permohonan: +

+ + + +
+ +
+

+ Kode Penawaran: +

+ + + +
+ +
+

+ Status Penawaran: +

+ + + +
+ +
+
+ +
+
+
+

Data KJPP

+
+
+ + + + + + + + + + + + +
NoKJPPBiaya PenawaranUpload PenawaranAction
+
+
+
+ +
+   +
+
+
+
+@endsection +@include('lpj::prosespenawaranulang.js.editjs') \ No newline at end of file diff --git a/resources/views/prosespenawaranulang/index.blade.php b/resources/views/prosespenawaranulang/index.blade.php new file mode 100644 index 0000000..86b7c77 --- /dev/null +++ b/resources/views/prosespenawaranulang/index.blade.php @@ -0,0 +1,152 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('tender.prosespenawaranulang') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Proses Penawaran Ulang +

+
+
+ +
+ +
+
+
+
+ + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Kode Penawaran + + + Tanggal Penawaran + + + Tujuan Penilaian + + + Total KJPP + + + Status + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + +@endpush diff --git a/resources/views/prosespenawaranulang/js/editextjs.blade.php b/resources/views/prosespenawaranulang/js/editextjs.blade.php new file mode 100644 index 0000000..1e17943 --- /dev/null +++ b/resources/views/prosespenawaranulang/js/editextjs.blade.php @@ -0,0 +1,152 @@ + \ No newline at end of file diff --git a/resources/views/prosespenawaranulang/js/editjs.blade.php b/resources/views/prosespenawaranulang/js/editjs.blade.php new file mode 100644 index 0000000..7d8d9da --- /dev/null +++ b/resources/views/prosespenawaranulang/js/editjs.blade.php @@ -0,0 +1,112 @@ +@push('scripts') + @include('lpj::assetsku.includenya') + @include('lpj::prosespenawaranulang.js.editextjs') + +@endpush \ No newline at end of file diff --git a/resources/views/prosespenawaranulang/show.blade.php b/resources/views/prosespenawaranulang/show.blade.php new file mode 100644 index 0000000..74a361e --- /dev/null +++ b/resources/views/prosespenawaranulang/show.blade.php @@ -0,0 +1,43 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@php + $route = explode('.', Route::currentRouteName()); +@endphp +@section('content') +
+
+
+

+ Detail Data Proses Penawaran Ulang +

+ +
+
+
+

+ Nomor Register Permohonan: +

+ + {{ $prosespenawaran->nomor_registrasi }} + +
+
+

+ Kode Penawaran: +

+ + {{ $prosespenawaran->code }} + +
+
+
+
+ + +@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 8e753e1..5ae30ec 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -482,7 +482,22 @@ Breadcrumbs::for('tender.prosespenawaran.show', function (BreadcrumbTrail $trail $trail->push('Detail Data Proses Penawaran'); }); // andy add 20241009 +// andy add Proses Penawaran Ulang +Breadcrumbs::for('tender.prosespenawaranulang', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Proses Penawaran Ulang', route('tender.prosespenawaranulang.index')); +}); +Breadcrumbs::for('tender.prosespenawaranulang.edit', function (BreadcrumbTrail $trail) { + $trail->parent('tender.prosespenawaranulang'); + $trail->push('Tambah Data Proses Penawaran Ulang'); +}); + +Breadcrumbs::for('tender.prosespenawaranulang.show', function (BreadcrumbTrail $trail) { + $trail->parent('tender.prosespenawaranulang'); + $trail->push('Detail Data Proses Penawaran Ulang'); +}); +// andy add Proses Penawaran Ulang Breadcrumbs::for('otorisator.pelaporan.index', function (BreadcrumbTrail $trail) { diff --git a/routes/registrasi.php b/routes/registrasi.php index 311da52..dd14aa5 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -2,6 +2,7 @@ use Modules\Lpj\Http\Controllers\RegistrasiController; use Modules\Lpj\Http\Controllers\ProsesPenawaranController; +use Modules\Lpj\Http\Controllers\ProsesPenawaranUlangController; Route::middleware(['auth'])->group(function () { @@ -47,6 +48,23 @@ Route::middleware(['auth'])->group(function () { Route::put('/prosespenawaranKJPPStatus/{prosespenawaranKJPPStatus}', 'updateKJPPStatus')->name('prosespenawaran.updateKJPPStatus'); }); + + // Proses Penawaran Ulang + Route::controller(ProsesPenawaranUlangController::class)->group(function(){ + Route::get('prosespenawaranulang', 'index')->name('prosespenawaranulang.index'); + Route::get('prosespenawaranulang/datatables', 'dataForDatatables')->name('prosespenawaranulang.datatables'); + Route::get('prosespenawaranulang/{prosespenawaranulang}/edit', 'edit')->name('prosespenawaranulang.edit'); + + // show data + Route::get('/prosespenawaranulang/{prosespenawaranulang}', 'show')->name('prosespenawaranulang.show'); + Route::post('prosespenawaranulang/setData', 'setData')->name('prosespenawaranulang.setData'); + + // update KJPP data, detail penawaran + Route::put('/prosespenawaranulang/{prosespenawaranulang}', 'update')->name('prosespenawaranulang.update'); + // delete KJPP, status set = 0 + Route::put('/prosespenawaranulangKJPPStatus/{prosespenawaranulangKJPPStatus}', 'updateKJPPStatus')->name('prosespenawaranulang.updateKJPPStatus'); + + }); }); }); From 3e1ecc8031dd78db02019fdc022cfbdd29015a8c Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Wed, 23 Oct 2024 17:46:39 +0700 Subject: [PATCH 11/55] add feature Otorisasi Penawaran --- .../OtorisasiPenawaranController.php | 290 ++++++++++++++++++ .../ProsesPenawaranUlangController.php | 24 +- module.json | 19 ++ .../views/otorisasipenawaran/edit.blade.php | 121 ++++++++ .../views/otorisasipenawaran/index.blade.php | 151 +++++++++ .../otorisasipenawaran/js/editextjs.blade.php | 94 ++++++ .../otorisasipenawaran/js/editjs.blade.php | 188 ++++++++++++ .../views/otorisasipenawaran/show.blade.php | 43 +++ routes/breadcrumbs.php | 17 + routes/registrasi.php | 19 +- 10 files changed, 953 insertions(+), 13 deletions(-) create mode 100644 app/Http/Controllers/OtorisasiPenawaranController.php create mode 100644 resources/views/otorisasipenawaran/edit.blade.php create mode 100644 resources/views/otorisasipenawaran/index.blade.php create mode 100644 resources/views/otorisasipenawaran/js/editextjs.blade.php create mode 100644 resources/views/otorisasipenawaran/js/editjs.blade.php create mode 100644 resources/views/otorisasipenawaran/show.blade.php diff --git a/app/Http/Controllers/OtorisasiPenawaranController.php b/app/Http/Controllers/OtorisasiPenawaranController.php new file mode 100644 index 0000000..91762f2 --- /dev/null +++ b/app/Http/Controllers/OtorisasiPenawaranController.php @@ -0,0 +1,290 @@ +user) || !$this->user->can('debitur.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query =PenawaranTender::query() + ->select('penawaran.*',DB::raw("CONCAT(DATE_FORMAT(penawaran.start_date, '%d %M %Y'), ' - ', DATE_FORMAT(penawaran.end_date, '%d %M %Y')) AS date_range"), 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name') + ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') + ->where('penawaran.status','=','persetujuan-penawaran') + ->withCount('penawarandetails'); + + // 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->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(); + + // 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'])->get(); + $data = $query->get(); + + // Calculate the page count + $pageCount = ceil($totalRecords / $request->get('size')); + + // Calculate the current page number + $currentPage = 0 + 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 + ]); + } + + public function edit($id) + { + return view('lpj::otorisasipenawaran.edit', compact('id')); + } + + public function setData(Request $request): JsonResponse + { + $data = array(); + $penawaran = array(); + $penawrandetails = array(); + $penawarandetailLogs = array(); + + if (request()->ajax()) { + $id = $request->id; + $penawaran = PenawaranTender::where('status','=','persetujuan-penawaran')->find($id); + + if ($penawaran) { + $penawarandetailLogs = PenawaranDetailTenderLog::where('penawaran_id',$id) + ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran_logs.kjpp_rekanan_id') + ->select('detail_penawaran_logs.*', DB::raw("DATE_FORMAT(detail_penawaran_logs.created_at, '%d-%m-%Y %H:%i') AS created_at2"),'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name') + ->get(); + $penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id) + ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id') + ->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name') + ->where('detail_penawaran.status','=',1) + ->get(); + + if(sizeof($penawarandetailLogs)>0) + { + $h=0; + foreach($penawarandetailLogs as $obj1) + { + if($obj1->dokumen_persetujuan && Storage::disk('public')->exists($obj1->dokumen_persetujuan)) + { + $penawarandetailLogs_path = Storage::url($obj1->dokumen_persetujuan); + $penawarandetailLogs[$h]->dokumen_persetujuan = $penawarandetailLogs_path; + } + $h++; + } + + } + + $i=0; + foreach($penawrandetails as $obj) + { + if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan)) + { + $penawrandetails_path = Storage::url($obj->dokumen_persetujuan); + $penawrandetails[$i]->dokumen_persetujuan = $penawrandetails_path; + + } + $i++; + } + + $penawaranString = ""; + if($penawaran->status) + { + $penawaranString = convertSlug($penawaran->status); + $penawaran->status = $penawaranString; + } + + $kjpp=null; + $kjpp = KJPP::pluck('name', 'id'); + $data['penawaran'] = $penawaran; + $data['penawrandetails'] = $penawrandetails; + $data['penawarandetailLogs'] = $penawarandetailLogs; + $data['status'] = 'success'; + $data['message']['message_success'] = array("data successfully found"); + } else { + $data['status'] = 'error'; + $data['penawaran'] = null; + $data['penawrandetails'] = null; + $data['message']['message_data'] = array("data not found"); + } + } else { + $data['status'] = 'error'; + $data['message']['message_ajax'] = array("no ajax request"); + } + + return response()->json($data); + } + + public function otorisasiPenawaranKJPP(Request $request, $id): JsonResponse + { + $data = array(); + $dataDetailPenawaranLog=[]; + if (request()->ajax()) { + + // cek masa aktif penawaran + $detailpenawaran = PenawaranDetailTender::find($id); + $penawaran = PenawaranTender::findOrFail($detailpenawaran->penawaran_id); + $checkActiveDateRange = checkActiveDateRangePenawaran($detailpenawaran->penawaran_id); + // cek masa aktif penawaran + if($checkActiveDateRange) + { + DB::beginTransaction(); + try { + + // update status KJPP yg tidak terpilih menjadi 2 -> kalah + // update status Penawaran menjadi SPK + // update status Permohonan menjadi SPK + // insert detail_permohonan_log + + PenawaranDetailTender::where('status', 1) + ->where('penawaran_id', $request->penawaran_id) + ->whereNotIn('id', [$id]) + ->update(['status' => 2, + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]); + + PenawaranTender::where('id', $request->penawaran_id) + ->update(['status'=>'spk', + 'nama_kjpp_sebelumnya'=>$request->kjppName, + 'biaya_kjpp_sebelumnya'=>$request->biaya_penawaran, + 'tanggal_penilaian_sebelumnya'=>now(), + 'authorized_status'=>1, + 'authorized_at'=>now(), + 'authorized_by'=>Auth::id(), + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]); + + Permohonan::where('nomor_registrasi',$request->noReg) + ->update(['status'=>'spk', + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]); + + // log + $detailPenawaran = PenawaranDetailTender::where('penawaran_id', $request->penawaran_id)->get(); + if(sizeof($detailPenawaran)>0) + { + + foreach ($detailPenawaran as $model) { + array_push($dataDetailPenawaranLog, [ + 'detail_penawaran_id' =>$model->id, + 'kjpp_rekanan_id' =>$model->kjpp_rekanan_id, + 'penawaran_id' =>$model->penawaran_id, + 'biaya_penawaran' =>$model->biaya_penawaran, + 'attachment' =>$model->attachment, + 'dokumen_persetujuan' =>$model->dokumen_persetujuan, + 'status' =>$model->status, + 'authorized_status' =>$model->authorized_status, + 'authorized_at' =>$model->authorized_at, + 'authorized_at' =>$model->authorized_at, + 'created_at' =>$model->created_at, + 'updated_at' =>$model->updated_at, + 'deleted_at' =>$model->deleted_at, + 'created_by' =>$model->created_by, + 'updated_by' =>$model->updated_by, + 'deleted_by' =>$model->deleted_by + ]); + + } + + PenawaranDetailTenderLog::insert($dataDetailPenawaranLog); + } + // log + + DB::commit(); + $data['status'] = 'success'; + $data['message']['message_success'] = array('Otorisasi Penawaran KJPP '.$request->kjppName.' successfully'); + } catch (Exception $e) { + DB::rollBack(); + $data['status'] = 'error'; + $data['message']['message_error'] = array("Otorisasi Penawaran KJPP failed.."); + } + } + else + { + $data['status'] = 'error'; + $data['message'] ['active_date_range'] = array("Penawaran sudah di tutup"); + } + + } else { + $data['status'] = 'error'; + $data['message']['message_ajax'] = array("no ajax request"); + } + return response()->json($data); + } + + public function show($id) + { + $prosespenawaran = PenawaranTender::find($id); + return view('lpj::otorisasipenawaran.show', compact('id','prosespenawaran')); + } +} diff --git a/app/Http/Controllers/ProsesPenawaranUlangController.php b/app/Http/Controllers/ProsesPenawaranUlangController.php index 4cf278d..f34ee70 100644 --- a/app/Http/Controllers/ProsesPenawaranUlangController.php +++ b/app/Http/Controllers/ProsesPenawaranUlangController.php @@ -148,16 +148,16 @@ class ProsesPenawaranUlangController extends Controller $data['penawaran'] = $penawaran; $data['penawrandetails'] = $penawrandetails; $data['status'] = 'success'; - $data['message'] ['message_success'] = array("data successfully found"); + $data['message']['message_success'] = array("data successfully found"); } else { $data['status'] = 'error'; $data['penawaran'] = null; $data['penawrandetails'] = null; - $data['message'] ['message_data'] = array("data not found"); + $data['message']['message_data'] = array("data not found"); } } else { $data['status'] = 'error'; - $data['message'] ['message_ajax'] = array("no ajax request"); + $data['message']['message_ajax'] = array("no ajax request"); } return response()->json($data); @@ -240,13 +240,13 @@ class ProsesPenawaranUlangController extends Controller { $pleaseCommit=false; $data['status'] = 'error'; - $data['message'] ['check_file_jenis'] = array("Silahkan upload file pdf"); + $data['message']['check_file_jenis'] = array("Silahkan upload file pdf"); } } else { $data['status'] = 'error'; - $data['message'] ['check_file'] = array("Silahkan upload file"); + $data['message']['check_file'] = array("Silahkan upload file"); } @@ -259,32 +259,32 @@ class ProsesPenawaranUlangController extends Controller $data['id'] = $id; $data['detailpenawaran'] = $detailpenawaran; $data['status'] = 'success'; - $data['message'] ['message_success'] = array('Proses Penawarn KJPP Ulang successfully'); + $data['message']['message_success'] = array('Proses Penawarn KJPP Ulang successfully'); } else { DB::rollBack(); $data['status'] = 'error'; - $data['message'] ['message_error'] = array("Proses Penawarn KJPP Ulang failed.."); + $data['message']['message_error'] = array("Proses Penawarn KJPP Ulang failed.."); } } catch (Exception $e) { DB::rollBack(); $data['status'] = 'error'; - $data['message'] ['message_error_try_catch'] = array('Proses Penawarn KJPP Ulang failed.'); + $data['message']['message_error_try_catch'] = array('Proses Penawarn KJPP Ulang failed.'); } } else { $data['status'] = 'error'; - $data['message'] ['active_date_range'] = array("Penawaran sudah di tutup"); + $data['message']['active_date_range'] = array("Penawaran sudah di tutup"); } } } else { $data['status'] = 'error'; - $data['message'] ['message_ajax'] = array("no ajax request"); + $data['message']['message_ajax'] = array("no ajax request"); } return response()->json($data); @@ -337,12 +337,12 @@ class ProsesPenawaranUlangController extends Controller DB::commit(); $data['status'] = 'success'; - $data['message'] ['message_success'] = array('Sukses delete Penawaran KJPP '.$request->kjppName); + $data['message']['message_success'] = array('Sukses delete Penawaran KJPP '.$request->kjppName); } catch (Exception $e) { DB::rollBack(); // dd($e); $data['status'] = 'error'; - $data['message'] ['message_error_try_catch'] = array("Gagal delete Penawaran KJPP ".$request->kjppName); + $data['message']['message_error_try_catch'] = array("Gagal delete Penawaran KJPP ".$request->kjppName); } return response()->json($data); } diff --git a/module.json b/module.json index 0390201..625e542 100644 --- a/module.json +++ b/module.json @@ -72,6 +72,25 @@ } ] }, + { + "title": "Otorisasi Tender", + "path": "otorisasitender", + "icon": "ki-filled ki-category text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator", "admin"], + "sub": [ + { + "title": "Otorisasi Penawaran", + "path": "otorisasitender.penawaran", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator", "admin"] + } + ] + }, { "title": "Pembatalan", "path": "", diff --git a/resources/views/otorisasipenawaran/edit.blade.php b/resources/views/otorisasipenawaran/edit.blade.php new file mode 100644 index 0000000..2940e0c --- /dev/null +++ b/resources/views/otorisasipenawaran/edit.blade.php @@ -0,0 +1,121 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@php + // $route = Route::currentRouteName(); + // dd($route); + $route = explode('.', Route::currentRouteName()); +@endphp + +@section('content') +
+ +
+
+

+ Tambah Data Otorisasi Penawaran +

+ +
+
+
+

+ Nomor Register Permohonan: +

+ + + +
+ +
+

+ Kode Penawaran: +

+ + + +
+ +
+

+ Status Penawaran: +

+ + + +
+ +
+
+ +
+
+
+

Data KJPP

+
+
+ + + + + + + + + + + + +
NoKJPPBiaya PenawaranDokumen PenawaranAction
+
+
+
+ +
+   +
+
+
+ +
+
+
+

Data KJPP Sebelumnya

+
+
+ + + + + + + + + + + + +
NoKJPPBiaya PenawaranDokumen Penawarancreated_at
+
+
+
+ +
+   +
+
+
+
+@endsection +@include('lpj::otorisasipenawaran.js.editjs') \ No newline at end of file diff --git a/resources/views/otorisasipenawaran/index.blade.php b/resources/views/otorisasipenawaran/index.blade.php new file mode 100644 index 0000000..5156678 --- /dev/null +++ b/resources/views/otorisasipenawaran/index.blade.php @@ -0,0 +1,151 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('otorisasitender.penawaran') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Otorisasi Penawaran +

+
+
+ +
+ +
+
+
+
+ + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Kode Penawaran + + + Tanggal Penawaran + + + Tujuan Penilaian + + + Total KJPP + + + Status + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + +@endpush diff --git a/resources/views/otorisasipenawaran/js/editextjs.blade.php b/resources/views/otorisasipenawaran/js/editextjs.blade.php new file mode 100644 index 0000000..cbf9ffa --- /dev/null +++ b/resources/views/otorisasipenawaran/js/editextjs.blade.php @@ -0,0 +1,94 @@ + \ No newline at end of file diff --git a/resources/views/otorisasipenawaran/js/editjs.blade.php b/resources/views/otorisasipenawaran/js/editjs.blade.php new file mode 100644 index 0000000..cc67d20 --- /dev/null +++ b/resources/views/otorisasipenawaran/js/editjs.blade.php @@ -0,0 +1,188 @@ +@push('scripts') + @include('lpj::assetsku.includenya') + @include('lpj::otorisasipenawaran.js.editextjs') + +@endpush \ No newline at end of file diff --git a/resources/views/otorisasipenawaran/show.blade.php b/resources/views/otorisasipenawaran/show.blade.php new file mode 100644 index 0000000..0e6d2e1 --- /dev/null +++ b/resources/views/otorisasipenawaran/show.blade.php @@ -0,0 +1,43 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@php + $route = explode('.', Route::currentRouteName()); +@endphp +@section('content') +
+
+
+

+ Detail Data Otorisasi Penawaran +

+ +
+
+
+

+ Nomor Register Permohonan: +

+ + {{ $prosespenawaran->nomor_registrasi }} + +
+
+

+ Kode Penawaran: +

+ + {{ $prosespenawaran->code }} + +
+
+
+
+ + +@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 5ae30ec..562b021 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -498,6 +498,23 @@ Breadcrumbs::for('tender.prosespenawaranulang.show', function (BreadcrumbTrail $ $trail->push('Detail Data Proses Penawaran Ulang'); }); // andy add Proses Penawaran Ulang +// andy add Otorisasi Tender +Breadcrumbs::for('otorisasitender', function (BreadcrumbTrail $trail) { + $trail->push('Otorisasi Tender'); +}); +Breadcrumbs::for('otorisasitender.penawaran', function (BreadcrumbTrail $trail) { + $trail->parent('otorisasitender'); + $trail->push('Data Otorisasi Penawaran', route('otorisasitender.penawaran.index')); +}); +Breadcrumbs::for('otorisasitender.penawaran.edit', function (BreadcrumbTrail $trail) { + $trail->parent('otorisasitender.penawaran'); + $trail->push('Tambah Data Otorisasi Penawaran '); +}); +Breadcrumbs::for('otorisasitender.penawaran.show', function (BreadcrumbTrail $trail) { + $trail->parent('otorisasitender.penawaran'); + $trail->push('Detail Data Otorisasi Penawaran'); +}); +// andy add Otorisasi Tender Breadcrumbs::for('otorisator.pelaporan.index', function (BreadcrumbTrail $trail) { diff --git a/routes/registrasi.php b/routes/registrasi.php index dd14aa5..b205ce1 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -3,6 +3,7 @@ use Modules\Lpj\Http\Controllers\RegistrasiController; use Modules\Lpj\Http\Controllers\ProsesPenawaranController; use Modules\Lpj\Http\Controllers\ProsesPenawaranUlangController; +use Modules\Lpj\Http\Controllers\OtorisasiPenawaranController; Route::middleware(['auth'])->group(function () { @@ -65,6 +66,22 @@ Route::middleware(['auth'])->group(function () { Route::put('/prosespenawaranulangKJPPStatus/{prosespenawaranulangKJPPStatus}', 'updateKJPPStatus')->name('prosespenawaranulang.updateKJPPStatus'); }); - }); + }); + + Route::name('otorisasitender.')->prefix('otorisasitender')->group(function () { + Route::controller(OtorisasiPenawaranController::class)->group(function(){ + Route::get('penawaran', 'index')->name('penawaran.index'); + Route::get('penawaran/datatables', 'dataForDatatables')->name('penawaran.datatables'); + Route::get('penawaran/{penawaran}/edit', 'edit')->name('penawaran.edit'); + + // show data + Route::get('/penawaran/{penawaran}', 'show')->name('penawaran.show'); + Route::post('penawaran/setData', 'setData')->name('penawaran.setData'); + + // update KJPP data, detail penawaran + Route::put('/otorisasiPenawaranKJPP/{penawaran}', 'otorisasiPenawaranKJPP')->name('penawaran.otorisasiPenawaranKJPP'); + + }); + }); }); From ebf0a934ea06060566a0f8a1cafe2168f9d7f062 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Thu, 24 Oct 2024 12:34:00 +0700 Subject: [PATCH 12/55] add feature Registrasi Final tanpa SPK permohonan.dokumen --- .../Controllers/RegistrasiFinalController.php | 268 ++++++++++++++++++ module.json | 9 + .../views/registrasifinal/edit.blade.php | 106 +++++++ .../views/registrasifinal/index.blade.php | 158 +++++++++++ .../views/registrasifinal/js/editjs.blade.php | 153 ++++++++++ .../views/registrasifinal/show.blade.php | 242 ++++++++++++++++ routes/breadcrumbs.php | 13 + routes/registrasi.php | 12 + 8 files changed, 961 insertions(+) create mode 100644 app/Http/Controllers/RegistrasiFinalController.php create mode 100644 resources/views/registrasifinal/edit.blade.php create mode 100644 resources/views/registrasifinal/index.blade.php create mode 100644 resources/views/registrasifinal/js/editjs.blade.php create mode 100644 resources/views/registrasifinal/show.blade.php diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php new file mode 100644 index 0000000..2561079 --- /dev/null +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -0,0 +1,268 @@ +user) || !$this->user->can('debitur.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query =PenawaranTender::query() + ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name') + ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') + ->where('penawaran.status','=','spk') + ->withCount('penawarandetails'); + + // 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->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(); + + // 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'])->get(); + $data = $query->get(); + // dd($data); + $i=0; + foreach($data as $obj) + { + if($obj->tanggal_penilaian_sebelumnya) + { + $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); + } + + if($obj->biaya_kjpp_sebelumnya) + { + $data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya); + + } + + // date_range + if($obj->start_date && $obj->end_date) + { + $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y'); + + } + + $i++; + } + + + // Calculate the page count + $pageCount = ceil($totalRecords / $request->get('size')); + + // Calculate the current page number + $currentPage = 0 + 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 + ]); + } + + public function show($id) + { + $permohonan = Permohonan::find($id); + return view('lpj::registrasifinal.show', compact('id','permohonan')); + } + + public function edit($id) + { + return view('lpj::registrasifinal.edit', compact('id')); + } + + public function setData(Request $request): JsonResponse + { + $data = array(); + $datas = array(); + + if (request()->ajax()) { + $id = $request->id; + $datas = Permohonan::find($id); + + if ($datas) { + $penawaran=null; + $regions=null; + $regions=Regions::pluck('name', 'id'); + $penawaran = PenawaranTender::where('nomor_registrasi','=',$datas->nomor_registrasi)->first(); + + $penawaranString = ""; + if($penawaran->status) + { + $penawaranString = convertSlug($penawaran->status); + $penawaran->status = $penawaranString; + } + + $data['status'] = 'success'; + $data['regions'] = $regions; + $data['penawaran'] = $penawaran; + $data['datas'] = $datas; + $data['message']['message_success'] = array("data successfully found"); + } else { + $data['status'] = 'error'; + $data['datas'] = null; + $data['message']['message_data'] = array("data not found"); + } + } else { + $data['status'] = 'error'; + $data['message']['message_ajax'] = array("no ajax request"); + } + + return response()->json($data); + } + + public function update(Request $request, $id): JsonResponse + { + // init + $data = array(); + $dataPermohonan = array(); + $dataPenawaran = array(); + + if (request()->ajax()) { + $validator = RegistrasiFinalController::rulesEditnya($request, $id); + + if ($validator['fails']) { + $data['message'] = $validator['errors']; + $data['status'] = 'error'; + } + else + { + DB::beginTransaction(); + try { + + // update table permohonan => status (registrasi-final), region_id, keterangan, authorized_at, authorized_status, authorized_by + // update table penawaran => status (registrasi-final) + $dataPermohonan = [ + 'status' => 'registrasi-final', + 'region_id' => $request->region, + 'keterangan' => $request->catatan, + 'authorized_at' => now(), + 'authorized_status' =>1, + 'authorized_by' => Auth::id() + ]; + + $dataPenawaran = ['status' => 'registrasi-final']; + + + $permohonan = Permohonan::find($id); + $penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); + + $permohonan->update($dataPermohonan); + $penawaran->update($dataPenawaran); + // + DB::commit(); + + $data['status'] = 'success'; + $data['message']['message_success'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' successfully'); + } catch (Exception $e) { + DB::rollBack(); + $data['status'] = 'error'; + $data['message']['message_try_catch'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' failed.'); + } + } + + } else { + $data['status'] = 'error'; + $data['message']['message_ajax'] = array("no ajax request"); + } + + return response()->json($data); + + } + + public function rulesEditnya($request, $id) + { + $validate_catatan=''; + + $validateIt = [ + // 'name' diambil dari definisi parameter yang di kirim pada POST Data + 'region' => 'required', + 'catatan' => 'required', + ]; + + $messageIt = [ + 'region.required' => 'Silahkan pilih Region', + 'catatan.required' => 'Silahkan isi Catatan' + ]; + + $validator = Validator::make($request->all(), $validateIt, $messageIt); + + $data['fails'] = $validator->fails(); + $data['errors'] = $validator->errors(); + + return $data; + } + + } diff --git a/module.json b/module.json index 5e17b0d..6ab8ec6 100644 --- a/module.json +++ b/module.json @@ -91,6 +91,15 @@ } ] }, + { + "title": "Registrasi Final", + "path": "registrasifinal", + "icon": "ki-filled ki-file-added text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator", "admin"] + }, { "title": "Pembatalan", "path": "", diff --git a/resources/views/registrasifinal/edit.blade.php b/resources/views/registrasifinal/edit.blade.php new file mode 100644 index 0000000..ddaead8 --- /dev/null +++ b/resources/views/registrasifinal/edit.blade.php @@ -0,0 +1,106 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@php + // $route = Route::currentRouteName(); + // dd($route); + $route = explode('.', Route::currentRouteName()); +@endphp + +@section('content') +
+ +
+ + @method('PUT') + @csrf +
+
+

+ Tambah Registrasi Final +

+ +
+
+
+

+ Nomor Register Permohonan: +

+ + + +
+ +
+

+ Kode Penawaran: +

+ + + +
+ +
+

+ Status Penawaran: +

+ + + +
+ +
+
+ +
+ + +
+
+ +
+ + +
+
+
+ +
+ + +
+
+ +
+ +
+
+
+
+
+@endsection +@include('lpj::registrasifinal.js.editjs') diff --git a/resources/views/registrasifinal/index.blade.php b/resources/views/registrasifinal/index.blade.php new file mode 100644 index 0000000..4e50882 --- /dev/null +++ b/resources/views/registrasifinal/index.blade.php @@ -0,0 +1,158 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('registrasifinal') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Registrasi Final +

+
+
+ +
+ +
+
+
+
+ + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Kode Penawaran + + + Tanggal Penawaran + + + Tujuan Penilaian + + + KJPP Data + + + Status + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + +@endpush + diff --git a/resources/views/registrasifinal/js/editjs.blade.php b/resources/views/registrasifinal/js/editjs.blade.php new file mode 100644 index 0000000..9464649 --- /dev/null +++ b/resources/views/registrasifinal/js/editjs.blade.php @@ -0,0 +1,153 @@ +@push('scripts') + @include('lpj::assetsku.includenya') + +@endpush diff --git a/resources/views/registrasifinal/show.blade.php b/resources/views/registrasifinal/show.blade.php new file mode 100644 index 0000000..040d1e4 --- /dev/null +++ b/resources/views/registrasifinal/show.blade.php @@ -0,0 +1,242 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@php + // $route = Route::currentRouteName(); + // dd($route); registrasi.show + $route = explode('.', Route::currentRouteName()); +@endphp +@section('content') +
+
+
+

+ Data Permohonan +

+ + +
+
+
+

+ Nomor Register Permohonan: +

+ + {{ $permohonan->nomor_registrasi }} + +
+ +
+

+ Pemohon: +

+ + {{ $permohonan->user->nik }} | {{ $permohonan->user->name }} | {{ $permohonan->user->branch->name }} + +
+ +
+

+ Tujan Permohonan: +

+ + {{ $permohonan->tujuanPenilaian->name }} + +
+ +
+
+ +
+
+

+ Detail Debutur +

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ Name + + {{ $permohonan->debiture->name ?? "" }} +
+ Email + + {{ $permohonan->debiture->email ?? "" }} +
+ Phone + + {{ $permohonan->debiture->phone ?? "" }} +
+ Address + + {{ $permohonan->debiture->address ?? "" }} +
+   + + {{ $permohonan->debiture->village->name ?? "" }}, {{ $permohonan->debiture->district->name ?? "" }}, {{ $permohonan->debiture->city->name ?? "" }}, {{ $permohonan->debiture->province->name ?? "" }} - {{ $permohonan->debiture->village->postal_code ?? "" }} +
+
+
+ + + + + + + + + + + + + + + + + +
+ Cabang + + {{ $permohonan->debiture->branch->name ?? "" }} +
+ CIF + + {{ $permohonan->debiture->cif ?? "" }} +
+ Nomor Rekening + + {{ $permohonan->debiture->nomor_rekening ?? "" }} +
+ NPWP + + {{ $permohonan->debiture->npwp ?? "" }} +
+
+
+
+
+ +
+
+

+ Data Jaminan +

+
+
+ @foreach($permohonan->debiture->documents as $dokumen) +
+ + +
+ @endforeach +
+
+
+ +@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 562b021..39a97be 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -515,6 +515,19 @@ Breadcrumbs::for('otorisasitender.penawaran.show', function (BreadcrumbTrail $tr $trail->push('Detail Data Otorisasi Penawaran'); }); // andy add Otorisasi Tender +// andy add registrasi final +Breadcrumbs::for('registrasifinal', function (BreadcrumbTrail $trail) { + $trail->push('Registrasi Final', route('registrasifinal.index')); +}); +Breadcrumbs::for('registrasifinal.show', function (BreadcrumbTrail $trail) { + $trail->parent('registrasifinal'); + $trail->push('Detail Registrasi Final'); +}); +Breadcrumbs::for('registrasifinal.edit', function (BreadcrumbTrail $trail) { + $trail->parent('registrasifinal'); + $trail->push('Tambah registrasifinal'); +}); +// andy add registrasi final Breadcrumbs::for('otorisator.pelaporan.index', function (BreadcrumbTrail $trail) { diff --git a/routes/registrasi.php b/routes/registrasi.php index b205ce1..f8b3893 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -4,6 +4,7 @@ use Modules\Lpj\Http\Controllers\RegistrasiController; use Modules\Lpj\Http\Controllers\ProsesPenawaranController; use Modules\Lpj\Http\Controllers\ProsesPenawaranUlangController; use Modules\Lpj\Http\Controllers\OtorisasiPenawaranController; +use Modules\Lpj\Http\Controllers\RegistrasiFinalController; Route::middleware(['auth'])->group(function () { @@ -83,5 +84,16 @@ Route::middleware(['auth'])->group(function () { }); }); + + Route::controller(RegistrasiFinalController::class)->group(function(){ + Route::get('/registrasifinal', 'index')->name('registrasifinal.index'); + Route::get('/registrasifinal/datatables', 'dataForDatatables')->name('registrasifinal.datatables'); + Route::get('/registrasifinal/{registrasifinal}', 'show')->name('registrasifinal.show'); + + Route::post('registrasifinal/setData', 'setData')->name('registrasifinal.setData'); + + Route::get('/registrasifinal/{registrasifinal}/edit', 'edit')->name('registrasifinal.edit'); + Route::put('/registrasifinal/{registrasifinal}', 'update')->name('registrasifinal.update'); + }); }); From e73e41c7dbbb1281b32dfaaed3df363e58b1ef53 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 24 Oct 2024 14:37:27 +0700 Subject: [PATCH 13/55] Change unique Zero CIF from 6 digit to 10 --- app/Rules/UniqueCifExceptZero.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Rules/UniqueCifExceptZero.php b/app/Rules/UniqueCifExceptZero.php index e7236ce..c8173d1 100644 --- a/app/Rules/UniqueCifExceptZero.php +++ b/app/Rules/UniqueCifExceptZero.php @@ -17,7 +17,7 @@ class UniqueCifExceptZero implements ValidationRule { if (Debiture::where($attribute, $value) ->where('id', '!=', $this->id) - ->where($attribute, '!=', '000000') + ->where($attribute, '!=', '0000000000') ->exists()) { $fail('The :attribute field must be uniquse.'.$this->id); } From a3964dc3d6229a5b2062a964879131dc8252c21f Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 25 Oct 2024 14:58:14 +0700 Subject: [PATCH 14/55] Fix Download Data Jaminan - Fix Download File Data Jaminan tidak sama dengan file yang di pilih - Recompile web route --- .../Controllers/DokumenJaminanController.php | 33 +++--- app/Http/Library/LpjHelpers.php | 27 ----- app/Http/Requests/PermohonanRequest.php | 2 +- .../debitur/components/dokumen.blade.php | 1 - routes/web.php | 105 +++++------------- 5 files changed, 49 insertions(+), 119 deletions(-) delete mode 100644 app/Http/Library/LpjHelpers.php diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index dca91a5..e33d1c4 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -217,16 +217,14 @@ 'success', 'Dokumen Jaminan berhasil diubah', ); - } catch - (Exception $e) { + } catch (Exception $e) { DB::rollBack(); return redirect()->route('debitur.jaminan.index', $id)->with('error', $e->getMessage()); } } } - public - function edit( + public function edit( $id, $jaminan, ) { @@ -258,16 +256,15 @@ ); } - public - function destroy( + public function destroy( $id, $jaminan_id, ) { try { $jaminan = DokumenJaminan::find($jaminan_id); - $details = DetailDokumenJaminan::where('dokumen_jaminan_id',$jaminan->id)->get(); - foreach ($details as $detail){ - Storage::delete('public/'. $detail->dokumen_jaminan); + $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get(); + foreach ($details as $detail) { + Storage::delete('public/' . $detail->dokumen_jaminan); $detail->delete(); } $jaminan->delete(); @@ -277,11 +274,19 @@ } } - public - function download( - $id, - ) { - $document = DetailDokumenJaminan::find($id); + public function download() + { + $dokumen = request()->get('dokumen'); + $document = DetailDokumenJaminan::find($dokumen); return response()->download(storage_path('app/public/' . $document->dokumen_jaminan)); } + + public function legalitasJaminan($id, $jaminan) + { + $jenisJaminan = JenisJaminan::find($id); + $legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id; + + $legalitas = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get(); + echo json_encode($legalitas); + } } diff --git a/app/Http/Library/LpjHelpers.php b/app/Http/Library/LpjHelpers.php deleted file mode 100644 index f40380d..0000000 --- a/app/Http/Library/LpjHelpers.php +++ /dev/null @@ -1,27 +0,0 @@ -max('code'); - - $noUrutAkhir=sprintf("%06s", 1); - $noUrutAwal = 'JFK'; - $noUrutAkhirString = $noUrutAkhir; - if($noUrutAkhir2){ - $noUrutAkhir = substr($noUrutAkhir2, 3, 6); - // $noUrutAwal = substr($noUrutAkhir2, 0, 3); - $noUrutAkhirString = sprintf("%06s", abs($noUrutAkhir + 1)); - } - - return $noUrutAwal . $noUrutAkhirString; - } -} diff --git a/app/Http/Requests/PermohonanRequest.php b/app/Http/Requests/PermohonanRequest.php index 8d6ef20..868498f 100644 --- a/app/Http/Requests/PermohonanRequest.php +++ b/app/Http/Requests/PermohonanRequest.php @@ -20,7 +20,7 @@ 'branch_id' => 'required|exists:branches,id', 'tujuan_penilaian_id' => 'required|exists:tujuan_penilaian,id', 'debiture_id' => 'required|exists:debitures,id', - 'status' => 'required|string', + 'status' => 'required|string|default:order', 'jenis_fasilitas_kredit_id' => 'required|exists:jenis_fasilitas_kredit,id', 'nilai_plafond_id' => 'required|exists:nilai_plafond,id', 'status_bayar' => 'required|string', diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index c8055b5..1e5eed3 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -261,7 +261,6 @@ return response.json(); }) .then(data => { - console.log(data); var doctainer = document.getElementById('doctainer'); doctainer.innerHTML = ''; data.forEach((item, index) => { diff --git a/routes/web.php b/routes/web.php index 7648b24..8292c9b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -99,34 +99,6 @@ Route::middleware(['auth'])->group(function () { Route::get('export', [CurrencyController::class, 'export'])->name('export'); }); - Route::name('debitur.')->prefix('debitur')->group(function () { - Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); - Route::get('datatables', [DebitureController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [DebitureController::class, 'export'])->name('export'); - - - Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { - Route::get('download/{dokumen}', [DokumenJaminanController::class, 'download'])->name('download'); - Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); - Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); - Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); - Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); - Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); - Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); - }); - - Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { - Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); - Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); - Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); - Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); - Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); - Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); - }); - }); - - Route::resource('debitur', DebitureController::class); - Route::name('branch.')->prefix('cabang')->group(function () { Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); Route::get('datatables', [BranchController::class, 'dataForDatatables'])->name('datatables'); @@ -304,25 +276,7 @@ Route::middleware(['auth'])->group(function () { Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); }); Route::resource('arah-mata-angin', ArahMataAnginController::class); - - Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { - Route::get('download/{dokumen}', [DokumenJaminanController::class, 'download'])->name('download'); - Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); - Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); - Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); - Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); - Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); - Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); - }); - - Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { - Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); - Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); - Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); - Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); - Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); - Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); - }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); @@ -387,9 +341,36 @@ Route::middleware(['auth'])->group(function () { } }); + Route::name('debitur.')->prefix('debitur')->group(function () { + Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); + Route::get('datatables', [DebitureController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [DebitureController::class, 'export'])->name('export'); + + + Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { + Route::get('download', [DokumenJaminanController::class, 'download'])->name('download'); + Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); + Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); + Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); + Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); + Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); + Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); + }); + + Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { + Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); + Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); + Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); + Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); + Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); + Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); + }); + }); + + Route::resource('debitur', DebitureController::class); + Route::name('permohonan.')->prefix('permohonan')->group(function () { Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); - Route::get('download/{id}', [PermohonanController::class, 'download'])->name('download'); Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore'); Route::get('datatables', [PermohonanController::class, 'dataForDatatables'])->name('datatables'); Route::get('export', [PermohonanController::class, 'export'])->name('export'); @@ -422,34 +403,6 @@ Route::middleware(['auth'])->group(function () { 'authorization.update', ); - Route::name('debitur.')->prefix('debitur')->group(function () { - Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); - Route::get('datatables', [DebitureController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [DebitureController::class, 'export'])->name('export'); - - - Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { - Route::get('download/{dokumen}', [DokumenJaminanController::class, 'download'])->name('download'); - Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); - Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); - Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); - Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); - Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); - Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); - }); - - Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { - Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); - Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); - Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); - Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); - Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); - Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); - }); - }); - - Route::resource('debitur', DebitureController::class); - Route::name('tender.')->prefix('tender')->group(function () { // Penawaran Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); From b9947a5e398a2264ddf245f006dfbd77bd422160 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 28 Oct 2024 09:48:01 +0700 Subject: [PATCH 15/55] Fix Accoordion Detail Jaminan --- .../views/component/detail-jaminan.blade.php | 92 ++++++++++++++++ resources/views/penilaian/form.blade.php | 99 +---------------- .../permohonan/authorization/show.blade.php | 93 +--------------- resources/views/registrasi/show.blade.php | 93 +--------------- .../views/registrasifinal/show.blade.php | 93 +--------------- .../views/surveyor/components/denah.blade.php | 4 +- .../views/surveyor/components/foto.blade.php | 4 +- .../surveyor/components/inspeksi.blade.php | 4 +- resources/views/surveyor/detail.blade.php | 104 +----------------- 9 files changed, 103 insertions(+), 483 deletions(-) create mode 100644 resources/views/component/detail-jaminan.blade.php diff --git a/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php new file mode 100644 index 0000000..716ab06 --- /dev/null +++ b/resources/views/component/detail-jaminan.blade.php @@ -0,0 +1,92 @@ +
+
+

+ Data Jaminan +

+
+
+ @foreach($permohonan->debiture->documents as $dokumen) +
+ + +
+ @endforeach +
+
diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index 07e7061..8d39097 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -160,104 +160,7 @@ -
-
-

- Laporan -

-
-
- @foreach ($permohonan->debiture->documents as $dokumen) -
- - -
- @endforeach -
-
+ @include('lpj::component.detail-jaminan')
diff --git a/resources/views/permohonan/authorization/show.blade.php b/resources/views/permohonan/authorization/show.blade.php index af77b06..41b247c 100644 --- a/resources/views/permohonan/authorization/show.blade.php +++ b/resources/views/permohonan/authorization/show.blade.php @@ -136,98 +136,7 @@
-
-
-

- Data Jaminan -

-
-
- @foreach($permohonan->debiture->documents as $dokumen) -
- - -
- @endforeach -
-
+ @include('lpj::component.detail-jaminan')
diff --git a/resources/views/registrasi/show.blade.php b/resources/views/registrasi/show.blade.php index 0b92b7e..9ff7791 100644 --- a/resources/views/registrasi/show.blade.php +++ b/resources/views/registrasi/show.blade.php @@ -145,98 +145,7 @@
-
-
-

- Data Jaminan -

-
-
- @foreach($permohonan->debiture->documents as $dokumen) -
- - -
- @endforeach -
-
+ @include('lpj::component.detail-jaminan')
diff --git a/resources/views/registrasifinal/show.blade.php b/resources/views/registrasifinal/show.blade.php index 040d1e4..7592d0d 100644 --- a/resources/views/registrasifinal/show.blade.php +++ b/resources/views/registrasifinal/show.blade.php @@ -145,98 +145,7 @@
-
-
-

- Data Jaminan -

-
-
- @foreach($permohonan->debiture->documents as $dokumen) -
- - -
- @endforeach -
-
+ @include('lpj::component.detail-jaminan') @endsection diff --git a/resources/views/surveyor/components/denah.blade.php b/resources/views/surveyor/components/denah.blade.php index e922fa5..46f11d9 100644 --- a/resources/views/surveyor/components/denah.blade.php +++ b/resources/views/surveyor/components/denah.blade.php @@ -23,7 +23,7 @@ @foreach ($permohonan->debiture->documents as $dokumen)
- -