From ed353e04f150e386a515979b647f0b37827354d4 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Tue, 22 Oct 2024 19:02:10 +0700 Subject: [PATCH] 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'); }); });