diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index c51457b..6c9d611 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -75,7 +75,16 @@ function checkKelengkapanDetailKJPP($id) // detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap? $query = PenawaranDetailTender::select('id') ->where('penawaran_id', '=', $id) + ->where('status','=',1) ->where(function ($query) { + // no_proposal + $query->orWhere('no_proposal', '', ""); + $query->orWhereNull('no_proposal'); + + // tgl_proposal + $query->orWhere('tgl_proposal', '', ""); + $query->orWhereNull('tgl_proposal'); + $query->orWhere('biaya_penawaran', '', ""); $query->orWhereNull('biaya_penawaran'); diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index 60ff7a8..b3cfe8a 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -4,6 +4,8 @@ use App\Http\Controllers\Controller; use Exception; + use Illuminate\Http\JsonResponse; + use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; use Modules\Location\Models\City; @@ -18,8 +20,6 @@ use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\JenisLegalitasJaminan; use Modules\Lpj\Models\PemilikJaminan; - use Illuminate\Http\JsonResponse; - use Illuminate\Support\Collection; use ZipArchive; class DokumenJaminanController extends Controller @@ -72,45 +72,41 @@ $document = DokumenJaminan::create($validate); - try { - foreach ($request->dokumen_jaminan as $key => $value) { - $file_name = $value->getClientOriginalName(); + if ($request->jenis_legalitas_jaminan_id) { + foreach ($request->jenis_legalitas_jaminan_id as $key => $value) { + $detailData = [ + 'dokumen_jaminan_id' => $document->id, + 'jenis_legalitas_jaminan_id' => $value, + 'name' => $request->name[$key], + 'keterangan' => $request->keterangan[$key], + ]; - if ($file_name) { - try { - $file_name = $value->getClientOriginalName(); - $value->storeAs( - 'public/jaminan/' . $debitur->id . '/' . $document->id . '/', - $file_name, - ); - - $detail = [ - 'dokumen_jaminan_id' => $document->id, - 'jenis_legalitas_jaminan_id' => $request->jenis_legalitas_jaminan_id[$key], - 'dokumen_jaminan' => 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name, - 'name' => $request->name[$key], - 'keterangan' => $request->keterangan[$key], - 'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : '', - ]; - DetailDokumenJaminan::create($detail); - } catch (Exception $e) { - DB::rollBack(); - return redirect()->route('debitur.jaminan.index', $id)->with( - 'error', - 'Gagal upload file dokumen jaminan ' . $key . ': ' . $e->getMessage(), - ); + $dokumenJaminan = []; + $dokumenNomor = []; + if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) { + foreach ($request->dokumen_jaminan[$key] as $index => $file) { + if ($file) { + $file_name = $file->getClientOriginalName(); + $file->storeAs( + 'public/jaminan/' . $debitur->id . '/' . $document->id . '/', + $file_name, + ); + $dokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name; + $dokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? ''; + } } } + + if (!empty($dokumenJaminan)) { + $detailData['dokumen_jaminan'] = json_encode($dokumenJaminan); + $detailData['dokumen_nomor'] = json_encode($dokumenNomor); + } + + DetailDokumenJaminan::create($detailData); } - DB::commit(); - } catch (Exception $e) { - DB::rollBack(); - return redirect()->route('debitur.jaminan.index', $id)->with( - 'error', - 'gg' . $e->getMessage(), - ); } + DB::commit(); return redirect()->route('debitur.jaminan.index', $id)->with( 'success', 'Dokumen Jaminan berhasil ditambahkan', @@ -149,6 +145,7 @@ $debitur = Debiture::find($id); $validate = $request->validated(); + if ($validate) { try { DB::beginTransaction(); @@ -226,44 +223,59 @@ $document->update($validate); // Get existing detail documents - $existingDetails = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get()->keyBy('id'); + $existingDetails = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get()->keyBy( + 'id', + ); - if($request->jenis_legalitas_jaminan_id){ - foreach($request->jenis_legalitas_jaminan_id as $key => $value){ + if ($request->jenis_legalitas_jaminan_id) { + foreach ($request->jenis_legalitas_jaminan_id as $key => $value) { $detailData = [ - 'dokumen_jaminan_id' => $document->id, + 'dokumen_jaminan_id' => $document->id, 'jenis_legalitas_jaminan_id' => $value, - 'name' => $request->name[$key], - 'keterangan' => $request->keterangan[$key], + 'name' => $request->name[$key], + 'keterangan' => $request->keterangan[$key], ]; $dokumenJaminan = []; + $dokumenNomor=[]; + if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) { - foreach($request->dokumen_jaminan[$key] as $file) { + foreach ($request->dokumen_jaminan[$key] as $index => $file) { if ($file) { $file_name = $file->getClientOriginalName(); $file->storeAs( 'public/jaminan/' . $debitur->id . '/' . $document->id . '/', - $file_name + $file_name, ); $dokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name; + $dokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? ''; } } } if (!empty($dokumenJaminan)) { $detailData['dokumen_jaminan'] = json_encode($dokumenJaminan); + $detailData['dokumen_nomor'] = json_encode($dokumenNomor); } if (isset($request->detail_dokumen_jaminan_id[$key])) { - $detailId = $request->detail_dokumen_jaminan_id[$key]; + $detailId = $request->detail_dokumen_jaminan_id[$key]; $detailDocument = $existingDetails->get($detailId); if ($detailDocument) { // Merge new files with existing ones if (!empty($dokumenJaminan)) { - $existingFiles = json_decode($detailDocument->dokumen_jaminan, true) ?: []; - $mergedFiles = array_merge($existingFiles, $dokumenJaminan); + $existingFiles = json_decode( + $detailDocument->dokumen_jaminan, + true, + ) ?: []; + $existingNomor = json_decode( + $detailDocument->dokumen_nomor, + true, + ) ?: []; + $mergedFiles = array_merge($existingFiles, $dokumenJaminan); + $mergedNomor = array_merge($existingNomor, $dokumenNomor); $detailData['dokumen_jaminan'] = json_encode($mergedFiles); + $detailData['dokumen_nomor'] = json_encode($mergedNomor); } $detailDocument->update($detailData); $existingDetails->forget($detailId); @@ -299,24 +311,26 @@ $id, $jaminan, ) { - $document = DokumenJaminan::find($jaminan); - $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get(); + $document = DokumenJaminan::find($jaminan); + $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get(); - $debitur = Debiture::find($document->debiture_id); - $provinces = Province::all(); - $cities = City::where('province_code', $document->province_code)->get(); - $districts = District::where('city_code', $document->city_code)->get(); - $villages = Village::where('district_code', $document->district_code)->get(); + $debitur = Debiture::find($document->debiture_id); + $provinces = Province::all(); + $cities = City::where('province_code', $document->province_code)->get(); + $districts = District::where('city_code', $document->city_code)->get(); + $villages = Village::where('district_code', $document->district_code)->get(); $jenisJaminan = JenisJaminan::all(); $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); - $_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id); + $_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id); $legalitasJaminan = json_decode($_jenisJaminan->jenis_legalitas_jaminan_id, true); - $currentLegalitasJaminan = JenisLegalitasJaminan::whereIn('id',$document->detail->pluck('jenis_legalitas_jaminan_id')->toArray())->get(); - + $currentLegalitasJaminan = JenisLegalitasJaminan::whereIn( + 'id', + $document->detail->pluck('jenis_legalitas_jaminan_id')->toArray(), + )->get(); // Remove values from $legalitasJaminan that are in $currentLegalitasJaminan @@ -324,8 +338,8 @@ $legalitas = JenisLegalitasJaminan::whereIn('code', $legalitasJaminan)->get(); - $pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get(); - $hubunganPemilik = HubunganPemilikJaminan::all(); + $pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get(); + $hubunganPemilik = HubunganPemilikJaminan::all(); return view( 'lpj::debitur.jaminan', @@ -341,7 +355,7 @@ 'villages', 'pemilikJaminan', 'hubunganPemilik', - 'legalitas' + 'legalitas', ), ); } @@ -378,7 +392,9 @@ if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) { foreach ($documents as $document) { - $files = is_array(json_decode($document->dokumen_jaminan)) ? json_decode($document->dokumen_jaminan) : [$document->dokumen_jaminan]; + $files = is_array(json_decode($document->dokumen_jaminan)) ? json_decode( + $document->dokumen_jaminan, + ) : [$document->dokumen_jaminan]; foreach ($files as $file) { $filePath = storage_path('app/public/' . $file); @@ -411,7 +427,9 @@ { $dokumen = request()->get('dokumen'); $document = DetailDokumenJaminan::find($dokumen); - $file = is_array(json_decode($document->dokumen_jaminan)) ? json_decode($document->dokumen_jaminan) : [$document->dokumen_jaminan]; + $file = is_array(json_decode($document->dokumen_jaminan)) ? json_decode( + $document->dokumen_jaminan, + ) : [$document->dokumen_jaminan]; return response()->download(storage_path('app/public/' . $file[request()->get('index')])); } @@ -425,20 +443,19 @@ } - public function getLegalitasJaminan($id = 10, $jenisJaminanId = 1) : JsonResponse - { - - $jenisJaminan = JenisJaminan::findOrFail($jenisJaminanId); - $legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id; + public function getLegalitasJaminan($id = 10, $jenisJaminanId = 1) + : JsonResponse { + $jenisJaminan = JenisJaminan::findOrFail($jenisJaminanId); + $legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id; $newLegalitasJaminan = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get(); $existingLegalitas = []; - $newLegalitas = []; + $newLegalitas = []; // Create a set of new jenis_legalitas_jaminan_ids for quick lookup $newLegalitasIds = $newLegalitasJaminan->pluck('id')->toArray(); - if($id>0) { + if ($id > 0) { $document = DokumenJaminan::findOrFail($id); if ($document && $document->detail) { foreach ($document->detail as $detail) { @@ -448,12 +465,14 @@ 'id' => $detail->id, 'jenis_legalitas_jaminan_id' => $detail->jenis_legalitas_jaminan_id, 'name' => $detail->jenisLegalitasJaminan->name, - 'dokumen_jaminan' => json_decode($detail->dokumen_jaminan) ?? $detail->dokumen_jaminan, + 'dokumen_jaminan' => json_decode( + $detail->dokumen_jaminan, + ) ?? $detail->dokumen_jaminan, 'custom_field' => $detail->jenisLegalitasJaminan->custom_field, 'custom_field_type' => $detail->jenisLegalitasJaminan->custom_field_type, 'details' => $detail->details, 'keterangan' => $detail->keterangan, - 'is_existing' => true + 'is_existing' => true, ]; } } @@ -463,15 +482,15 @@ foreach ($newLegalitasJaminan as $legalitas) { if (!Collection::make($existingLegalitas)->contains('jenis_legalitas_jaminan_id', $legalitas->id)) { $newLegalitas[] = [ - 'id' => null, + 'id' => null, 'jenis_legalitas_jaminan_id' => $legalitas->id, - 'name' => $legalitas->name, - 'dokumen_jaminan' => null, - 'custom_field' => $legalitas->custom_field, - 'custom_field_type' => $legalitas->custom_field_type, - 'details' => null, - 'keterangan' => null, - 'is_existing' => false + 'name' => $legalitas->name, + 'dokumen_jaminan' => null, + 'custom_field' => $legalitas->custom_field, + 'custom_field_type' => $legalitas->custom_field_type, + 'details' => null, + 'keterangan' => null, + 'is_existing' => false, ]; } } diff --git a/app/Http/Controllers/ProsesPenawaranController.php b/app/Http/Controllers/ProsesPenawaranController.php index d8a5e9b..05b199c 100644 --- a/app/Http/Controllers/ProsesPenawaranController.php +++ b/app/Http/Controllers/ProsesPenawaranController.php @@ -5,6 +5,7 @@ namespace Modules\Lpj\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; use App\Http\Controllers\Controller; +use Carbon\Carbon; use Exception; use Maatwebsite\Excel\Facades\Excel; use Illuminate\Http\JsonResponse; @@ -14,6 +15,7 @@ use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\DB; use Modules\Lpj\Models\KJPP; use Modules\Lpj\Models\PenawaranDetailTender; +use Modules\Lpj\Models\PenawaranDetailTenderLog; use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\Permohonan; @@ -38,7 +40,7 @@ class ProsesPenawaranController extends Controller } // Retrieve data from the database - $query = PenawaranTender::query()->where('status', '=', 'tender')->withCount('penawarandetails'); + $query = PenawaranTender::query()->whereIn('status', ['tender', 'proposal-tender'])->withCount('penawarandetails'); // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { @@ -75,7 +77,7 @@ class ProsesPenawaranController extends Controller // Get the data for the current page //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - $data = $query->with(['tujuanPenilaianKJPP','permohonan','permohonan.debiture'])->get(); + $data = $query->with(['tujuanPenilaianKjpp','permohonan','permohonan.debiture'])->get(); // Calculate the page count $pageCount = ceil($totalRecords / $request->get('size')); @@ -116,7 +118,6 @@ class ProsesPenawaranController extends Controller ->get(); if ($penawaran) { - $i=0; foreach($penawrandetails as $obj) { @@ -127,7 +128,18 @@ class ProsesPenawaranController extends Controller } $i++; } - + DB::enableQueryLog(); + $kjpps = KJPP::whereNotIn('id', function($query) use ($id) { + $query->select('kjpp_rekanan_id') + ->from('detail_penawaran') + ->where('penawaran_id', '=', $id) + ->where('status','=',1); // status=1 (masih aktif) + }) + ->select('id', 'name', 'code') // Pilih beberapa kolom sekaligus + ->get(); + $sql=DB::getQueryLog(); + $data['sql'] = $sql; + $data['kjpps'] = $kjpps; $data['penawaran'] = $penawaran; $data['penawrandetails'] = $penawrandetails; $data['status'] = 'success'; @@ -155,65 +167,52 @@ class ProsesPenawaranController extends Controller $data = array(); $dataPenawaranDetail = array(); if (request()->ajax()) { - $validator = ProsesPenawaranController::rulesEditnya($request, $id); + + try { - if ($validator['fails']) { - $data['message'] = $validator['errors']; - $data['status'] = 'error'; - } - else - { - try { + $dataPenawaranDetail = ['updated_by' => Auth::id(), + 'updated_at' => now(), + 'no_proposal' => $request->no_proposal, + 'tgl_proposal' => $request->tgl_proposal, + '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()) { - $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 + $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)); + $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; - $dataPenawaranDetail['attachment'] = $myFile; - $dataPenawaranDetail['dokumen_persetujuan'] = $newFileNameWithPath; - - $penawarandetail = PenawaranDetailTender::findOrFail($id); - $penawarandetail->update($dataPenawaranDetail); - - $data['detailpenawaran_id'] = $id; - $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"); - } + $newFileNameWithPath = $folderPath . $newFileName; + $dataPenawaranDetail['attachment'] = $myFile; + $dataPenawaranDetail['dokumen_persetujuan'] = $newFileNameWithPath; } else { $data['status'] = 'error'; - $data['message'] ['check_file'] = array("Silahkan upload file"); - + $data['message'] ['check_file_jenis'] = array("Silahkan upload file pdf"); } - - } catch (Exception $e) { - - $data['status'] = 'error'; - $data['message'] ['message_error_try_catch'] = array('Proses Penawarn KJPP failed.'); } - } + + $penawarandetail = PenawaranDetailTender::findOrFail($id); + $penawarandetail->update($dataPenawaranDetail); + + $data['detailpenawaran_id'] = $id; + $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Proses Penawarn KJPP successfully'); + } catch (Exception $e) { + + $data['status'] = 'error'; + $data['message'] ['message_error_try_catch'] = array('Proses Penawarn KJPP failed.'); + } } else { $data['status'] = 'error'; @@ -339,4 +338,492 @@ class ProsesPenawaranController extends Controller $prosespenawaran = PenawaranTender::find($id); return view('lpj::prosespenawaran.show', compact('id', 'prosespenawaran')); } + + public function updateDraft(Request $request, $id): JsonResponse + { + // $id = penawaran.id + // init + $data = array(); + $dataPenawaranDetail = array(); + $failed = 0; + + DB::beginTransaction(); + try + { + // update detail_penawaran + $detail_penawaran_ids = $request->input('prosespenawaran_penawarandetail_id', []); + $no_proposals = $request->input('prosespenawaran_no_proposal', []); + $tgl_proposals = $request->input('prosespenawaran_tgl_proposal', []); + $biaya_penawarans = $request->input('prosespenawaran_biayaPenawaran', []); + $dokumen_penawarans = $request->file('prosespenawaran_dokumenPersetujuan'); + + $tot_kjpp = sizeof($detail_penawaran_ids); + if($tot_kjpp>0) + { + // loop + for($i=0;$i<$tot_kjpp;$i++) + { + $detail_penawaran_id= $detail_penawaran_ids[$i]; + $dataPenawaranDetail = [ + 'no_proposal' => $no_proposals[$i], + 'tgl_proposal' => $tgl_proposals[$i], + 'biaya_penawaran' => str_replace(".","",$biaya_penawarans[$i]), // 'biaya_penawaran' => str_replace(".","",$request->biaya_penawaran) + 'updated_by' => Auth::id(), + 'updated_at' => now(), + ]; + + $penawarandetail = PenawaranDetailTender::find($detail_penawaran_id); + if ($dokumen_penawarans) + { + if (is_array($dokumen_penawarans) && array_key_exists($i, $dokumen_penawarans)) + { + $file_tmp = $dokumen_penawarans[$i]; + if($file_tmp->isValid()) + { + $folderPath = 'uploads/penawaran/'; + + $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 = $penawarandetail->kjpp_rekanan_id.'_'.$penawarandetail->penawaran_id.'_'.$file_name.'_'.Auth::user()->id."_".time() .'.'. $extension; + Storage::disk('public')->put($folderPath.'/'.$newFileName,file_get_contents($file_tmp)); + + $newFileNameWithPath = $folderPath . $newFileName; + $dataPenawaranDetail['attachment'] = $myFile; + $dataPenawaranDetail['dokumen_persetujuan'] = $newFileNameWithPath; + } + + } + + } + + $checkStatus = $penawarandetail->update($dataPenawaranDetail); + if(!$checkStatus) + $failed++; + } + + if($failed>0) + { + DB::rollBack(); + $data['status'] = 'error'; + $data['message'] ['message_error'] = array('Proses Draft Penawaran KJPP failed'); + } + else + { + DB::commit(); + $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Proses Draft Penawaran KJPP successfully'); + } + + } + else + { + $data['status'] = 'error'; + $data['message'] ['message_error'] = array('Data inti tidak ada.'); + } + + } + catch (Exception $e) + { + // dd($e); + DB::rollBack(); + $data['status'] = 'error'; + $data['message'] ['message_error_try_catch'] = array('Proses Draft Penawaran KJPP failed.'); + } + + return response()->json($data); + } + + public function store(Request $request): JsonResponse + { + // init + $data = array(); + // $data['request']=$request->all(); + $dataPenawaranDetail = array(); + try + { + $dataPenawaranDetail = [ + 'penawaran_id' => $request->penawaran_id, + 'kjpp_rekanan_id' => $request->kjpp_id, + 'created_by' => Auth::id(), + 'created_at' => Carbon::now() + ]; + + PenawaranDetailTender::create($dataPenawaranDetail); + + $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Proses Tambah KJPP successfully'); + } + catch (Exception $e) + { + // dd($e); + $data['status'] = 'error'; + $data['message'] ['message_error_try_catch'] = array('Proses Tambah KJPP failed.'); + } + + return response()->json($data); + } + + public function editulang($id) + { + // id ==> penawaran.id + return view('lpj::prosespenawaran.editulang', compact('id')); + } + + public function setDataUlang(Request $request): JsonResponse + { + $data = array(); + $penawaran = array(); + $penawrandetails = array(); + + if (request()->ajax()) { + $id = $request->id; + $penawaran = PenawaranTender::where('status','=','proposal-tender')->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; + } + + $kjpps = KJPP::whereNotIn('id', function($query) use ($id) { + $query->select('kjpp_rekanan_id') + ->from('detail_penawaran') + ->where('penawaran_id', '=', $id) + ->where('status','=',1); // status=1 (masih aktif) + }) + ->select('id', 'name', 'code') // Pilih beberapa kolom sekaligus + ->get(); + + $data['kjpps'] = $kjpps; + $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 updateKJPPStatusUlang(Request $request, $id): JsonResponse + { + // message menggunakan SweetAlert2 + // init + $data = array(); + $dataDetailPenawaran = array(); + // cek masa aktif penawaran + $detailpenawaran = PenawaranDetailTender::find($id); + $checkActiveDateRange = checkActiveDateRangePenawaran($detailpenawaran->penawaran_id); + // cek masa aktif penawaran + + // cek apakah blm di approve (penawaran.status = proposal-tender) + $penawaran = PenawaranTender::find($detailpenawaran->penawaran_id); + // cek apakah blm di approve (penawaran.status = proposal-tender) + if($checkActiveDateRange && ('proposal-tender'==$penawaran->status)) + { + try { + + $data['id']=$id; + + $dataDetailPenawaran = ['status' => '0', + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]; + + $detailpenawaran->update($dataDetailPenawaran); + + $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Sukses delete Penawaran KJPP '.$request->kjppName); + } catch (Exception $e) { + + $data['status'] = 'error'; + $data['message'] ['message_error_try_catch'] = array("Gagal delete Penawaran KJPP ".$request->kjppName); + // $data['message']['message_error'] = array("Gagal delete Penawaran KJPP ".$request->kjppName); + } + } + else + { + $data['status'] = 'error'; + $data['message']['active_date_range'] = array("Penawaran sudah di tutup"); + // $data['message']['message_error'] = array("Penawaran sudah di tutup"); + } + + return response()->json($data); + } + + public function updateulang(Request $request, $id): JsonResponse + { + // id ==> detail_penawaran.id + // init + $data = array(); + $dataDetailPenawaranLog = array(); + $dataDetailPenawaran = array(); + $pleaseCommit= true; + if (request()->ajax()) { + + $validator = ProsesPenawaranController::rulesEditUlangnya($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 + + // cek apakah blm di approve (penawaran.status = proposal-tender) + $penawaran = PenawaranTender::find($detailpenawaran->penawaran_id); + // cek apakah blm di approve (penawaran.status = proposal-tender) + if($checkActiveDateRange && ('proposal-tender'==$penawaran->status)) + { + 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, + 'no_proposal' =>$detailpenawaran->no_proposal, + 'tgl_proposal' =>$detailpenawaran->tgl_proposal, + '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(), + 'no_proposal' => $request->no_proposal, + 'tgl_proposal' => $request->tgl_proposal, + '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); + } + + public function rulesEditUlangnya($request, $id) + { + $validateIt = [ + // 'name' diambil dari definisi parameter yang di kirim pada POST Data + 'no_proposal' => 'required', + 'tgl_proposal' => 'required', + 'biaya_penawaran' => 'required', + 'dokumen_persetujuan' => 'required|file|mimes:pdf' + ]; + + $messageIt = [ + 'no_proposal.required' => 'Silahkan isi No Proposal', + 'tgl_proposal.required' => 'Silahkan isi Tanggal Penawaran', + '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; + } + + public function storeUlang(Request $request): JsonResponse + { + // init + $data = array(); + // $data['request']=$request->all(); + $dataDetailPenawaran = array(); + // cek masa aktif penawaran + $checkActiveDateRange = checkActiveDateRangePenawaran($request->penawaran_id); + // cek masa aktif penawaran + + // cek apakah blm di approve (penawaran.status = proposal-tender) + $penawaran = PenawaranTender::find($request->penawaran_id); + // cek apakah blm di approve (penawaran.status = proposal-tender) + if($checkActiveDateRange && ('proposal-tender'==$penawaran->status)) + { + try + { + $biaya_penawaran=""; + if($request->biaya_penawaran) + $biaya_penawaran= str_replace(".","",$request->biaya_penawaran); + $dataDetailPenawaran = [ + 'kjpp_rekanan_id' => $request->kjpp_rekanan_id, + 'no_proposal' => $request->no_proposal, + 'tgl_proposal' => $request->tgl_proposal, + 'biaya_penawaran' => $biaya_penawaran, + 'penawaran_id' => $request->penawaran_id, + 'created_by' => Auth::id(), + 'created_at' => Carbon::now() + ]; + + 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.'_'.$request->penawaran_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"); + + } + PenawaranDetailTender::create($dataDetailPenawaran); + + $data['status'] = 'success'; + $data['message'] ['message_success'] = array('Proses Tambah KJPP Ulang successfully'); + } + catch (Exception $e) + { + dd($e); + $data['status'] = 'error'; + $data['message'] ['message_error_try_catch'] = array('Proses Tambah KJPP Ulang failed.'); + } + } + else + { + $data['status'] = 'error'; + $data['message']['active_date_range'] = array("Penawaran sudah di tutup"); + } + + return response()->json($data); + } } diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index bf08eb1..4ee203e 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -3,10 +3,19 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; -use Carbon\Carbon; -use Exception; + use Carbon\Carbon; + use Exception; + use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; + use Illuminate\Support\Facades\Auth; + use Illuminate\Support\Facades\DB; + use Illuminate\Support\Facades\Storage; + use Illuminate\Support\Facades\Validator; use Maatwebsite\Excel\Facades\Excel; + use Modules\Lpj\Models\PenawaranTender; + use Modules\Lpj\Models\Permohonan; + use Modules\Lpj\Models\Regions; + // use Modules\Location\Models\City; // use Modules\Location\Models\District; // use Modules\Location\Models\Province; @@ -20,15 +29,6 @@ use Exception; // use Modules\Lpj\Models\JenisJaminan; // use Modules\Lpj\Models\JenisLegalitasJaminan; // use Modules\Lpj\Models\PemilikJaminan; - use Modules\Lpj\Models\Permohonan; - use Modules\Lpj\Models\JenisPenilaian; - use Modules\Lpj\Models\Regions; - use Illuminate\Http\JsonResponse; - use Illuminate\Support\Facades\Validator; - use Illuminate\Support\Facades\Auth; - use Illuminate\Support\Facades\DB; - use Illuminate\Support\Facades\Storage; -use Modules\Lpj\Models\PenawaranTender; class RegistrasiFinalController extends Controller { @@ -46,12 +46,12 @@ use Modules\Lpj\Models\PenawaranTender; } // Retrieve data from the database - // data.id => penawaran.id - $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'); + $query = PenawaranTender::with(['permohonan', 'tujuanPenilaianKjpp'])->whereHas( + 'permohonan', + function ($q) { + $q->where('status', '=', 'spk'); + }, + )->withCount('penawarandetails'); // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { @@ -90,25 +90,23 @@ use Modules\Lpj\Models\PenawaranTender; //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); $data = $query->with(['permohonan'])->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'); + $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) - { + 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'); - + 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++; @@ -129,24 +127,20 @@ use Modules\Lpj\Models\PenawaranTender; 'pageCount' => $pageCount, 'page' => $currentPage, 'totalCount' => $totalRecords, - 'data' => $data + 'data' => $data, ]); } public function show($id) { - // $id => penawaran.id - $penawaran = PenawaranTender::find($id); - $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); - - if($permohonan->dokumen) - { - $pdfSPK_path = Storage::url($permohonan->dokumen); + $permohonan = Permohonan::find($id); + if ($permohonan->dokumen) { + $pdfSPK_path = Storage::url($permohonan->dokumen); $permohonan->dokumen = $pdfSPK_path; - $permohonan->dokumen = '| Dokumen SPK.pdf   '; - } + $permohonan->dokumen = '| Dokumen SPK.pdf   '; + } - return view('lpj::registrasifinal.show', compact('id','permohonan')); + return view('lpj::registrasifinal.show', compact('id', 'permohonan')); } public function edit($id) @@ -155,130 +149,123 @@ use Modules\Lpj\Models\PenawaranTender; return view('lpj::registrasifinal.edit', compact('id')); } - public function setData(Request $request): JsonResponse - { - $data = array(); - $datas = array(); - $penawaran=null; - $regions=null; + public function setData(Request $request) + : JsonResponse { + $data = []; + $datas = []; if (request()->ajax()) { - // $id => penawaran.id - $id = $request->id; - $penawaran = PenawaranTender::find($id); - $datas = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); + $id = $request->id; + $datas = Permohonan::find($id); + if ($datas) { - - $regions=Regions::pluck('name', 'id'); + $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); + if ($penawaran->status) { + $penawaranString = convertSlug($penawaran->status); $penawaran->status = $penawaranString; - } - - if($datas->dokumen) - { - $pdfSPK_path = Storage::url($datas->dokumen); + } + + if ($datas->dokumen) { + $pdfSPK_path = Storage::url($datas->dokumen); $datas->dokumen = $pdfSPK_path; } - $data['status'] = 'success'; - $data['regions'] = $regions; - $data['penawaran'] = $penawaran; - $data['datas'] = $datas; - $data['message']['message_success'] = array("data successfully found"); + $data['status'] = 'success'; + $data['regions'] = $regions; + $data['penawaran'] = $penawaran; + $data['datas'] = $datas; + $data['message']['message_success'] = ["data successfully found"]; } else { - $data['status'] = 'error'; - $data['datas'] = null; - $data['message']['message_data'] = array("data not found"); + $data['status'] = 'error'; + $data['datas'] = null; + $data['message']['message_data'] = ["data not found"]; } } else { - $data['status'] = 'error'; - $data['message']['message_ajax'] = array("no ajax request"); + $data['status'] = 'error'; + $data['message']['message_ajax'] = ["no ajax request"]; } return response()->json($data); } - public function update(Request $request, $id): JsonResponse - { + public function update(Request $request, $id) + : JsonResponse { // init - $data = array(); - $dataPermohonan = array(); - $dataPenawaran = array(); + $data = []; + $dataPermohonan = []; + $dataPenawaran = []; if (request()->ajax()) { $validator = RegistrasiFinalController::rulesEditnya($request, $id); if ($validator['fails']) { $data['message'] = $validator['errors']; - $data['status'] = 'error'; - } - else - { + $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() - ]; + 'status' => 'registrasi-final', + 'region_id' => $request->region, + 'keterangan' => $request->catatan, + 'authorized_at' => now(), + 'authorized_status' => 1, + 'authorized_by' => Auth::id(), + ]; $dataPenawaran = ['status' => 'registrasi-final']; - // $id => penawaran.id - $penawaran = PenawaranTender::find($id); - $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); + + $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'); + $data['status'] = 'success'; + $data['message']['message_success'] = ['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.'); + $data['status'] = 'error'; + $data['message']['message_try_catch'] = ['Regitrasi Final ' . $permohonan->nomor_registrasi . ' failed.']; } } - } else { - $data['status'] = 'error'; - $data['message']['message_ajax'] = array("no ajax request"); + $data['status'] = 'error'; + $data['message']['message_ajax'] = ["no ajax request"]; } return response()->json($data); - } public function rulesEditnya($request, $id) { - $validate_catatan=''; + $validate_catatan = ''; $validateIt = [ // 'name' diambil dari definisi parameter yang di kirim pada POST Data - 'region' => 'required', + 'region' => 'required', 'catatan' => 'required', ]; $messageIt = [ - 'region.required' => 'Silahkan pilih Region', - 'catatan.required' => 'Silahkan isi Catatan' + 'region.required' => 'Silahkan pilih Region', + 'catatan.required' => 'Silahkan isi Catatan', ]; $validator = Validator::make($request->all(), $validateIt, $messageIt); - $data['fails'] = $validator->fails(); + $data['fails'] = $validator->fails(); $data['errors'] = $validator->errors(); return $data; diff --git a/app/Models/DetailDokumenJaminan.php b/app/Models/DetailDokumenJaminan.php index 487cf75..ad76f13 100644 --- a/app/Models/DetailDokumenJaminan.php +++ b/app/Models/DetailDokumenJaminan.php @@ -16,6 +16,7 @@ 'jenis_legalitas_jaminan_id', 'name', 'dokumen_jaminan', + 'dokumen_nomor', 'keterangan', 'details', 'status', diff --git a/database/migrations/2024_10_16_153558_create_analisa_tanah_bangunan_table.php b/database/migrations/2024_10_16_153558_create_analisa_tanah_bangunan_table.php index 585dbf4..2c0cf23 100644 --- a/database/migrations/2024_10_16_153558_create_analisa_tanah_bangunan_table.php +++ b/database/migrations/2024_10_16_153558_create_analisa_tanah_bangunan_table.php @@ -20,7 +20,7 @@ return new class extends Migration $table->string('kontur_tanah'); $table->string('ketinggian_jalan'); $table->string('kontur_jalan'); - $table->string('posis_kavling'); + $table->string('posisi_kavling'); $table->enum('tusuk_sate', ['yes', 'no']); $table->enum('lockland', ['yes', 'no']); $table->string('kondisi_fisik_tanah'); diff --git a/database/migrations/2024_11_01_081201_create_kategori_form_analisa_inspeksi_table.php b/database/migrations/2024_11_01_081201_create_kategori_form_analisa_inspeksi_table.php index 7b14758..87c765e 100644 --- a/database/migrations/2024_11_01_081201_create_kategori_form_analisa_inspeksi_table.php +++ b/database/migrations/2024_11_01_081201_create_kategori_form_analisa_inspeksi_table.php @@ -15,6 +15,7 @@ return new class extends Migration $table->id(); $table->string('name'); $table->string('code'); + $table->unsignedBigInteger('kategori_jenis_aset_id'); // Add this line $table->foreign('kategori_jenis_aset_id')->references('id')->on('kategori_jenis_aset'); $table->boolean('status')->default(true); $table->char('authorized_status', 1)->nullable(); diff --git a/database/migrations/2024_11_07_044004_update_detail_dokumen_jaminan_table.php b/database/migrations/2024_11_07_044004_update_detail_dokumen_jaminan_table.php new file mode 100644 index 0000000..c8b10ee --- /dev/null +++ b/database/migrations/2024_11_07_044004_update_detail_dokumen_jaminan_table.php @@ -0,0 +1,28 @@ +string('dokumen_nomor')->nullable()->after('dokumen_jaminan'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_dokumen_jaminan', function (Blueprint $table) { + $table->dropColumn('dokumen_nomor'); + }); + } +}; diff --git a/database/migrations/2024_11_08_085002_update_detail_penawaran_table.php b/database/migrations/2024_11_08_085002_update_detail_penawaran_table.php new file mode 100644 index 0000000..5a788a1 --- /dev/null +++ b/database/migrations/2024_11_08_085002_update_detail_penawaran_table.php @@ -0,0 +1,30 @@ +string('no_proposal')->nullable()->after('penawaran_id'); + $table->date('tgl_proposal')->nullable()->after('no_proposal'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_penawaran', function (Blueprint $table) { + $table->dropColumn('no_proposal'); + $table->dropColumn('tgl_proposal'); + }); + } +}; diff --git a/database/migrations/2024_11_12_191108_update_detail_penawaran_log_table.php b/database/migrations/2024_11_12_191108_update_detail_penawaran_log_table.php new file mode 100644 index 0000000..345fd9f --- /dev/null +++ b/database/migrations/2024_11_12_191108_update_detail_penawaran_log_table.php @@ -0,0 +1,30 @@ +string('no_proposal')->nullable()->after('penawaran_id'); + $table->date('tgl_proposal')->nullable()->after('no_proposal'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_penawaran_logs', function (Blueprint $table) { + $table->dropColumn('no_proposal'); + $table->dropColumn('tgl_proposal'); + }); + } +}; diff --git a/module.json b/module.json index 572fe59..be26736 100644 --- a/module.json +++ b/module.json @@ -59,15 +59,7 @@ "attributes": [], "permission": "", "roles": ["administrator", "admin"] - }, - { - "title": "Data Proses Penawaran Ulang", - "path": "tender.prosespenawaranulang", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator", "admin"] - } + } ] }, { diff --git a/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php index cc5a114..3435775 100644 --- a/resources/views/component/detail-jaminan.blade.php +++ b/resources/views/component/detail-jaminan.blade.php @@ -69,7 +69,7 @@ - + Dokumen Jaminan @@ -77,16 +77,22 @@ @if(isset($detail->dokumen_jaminan)) @php $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan]; + $dokumen_nomor = is_array(json_decode($detail->dokumen_nomor)) ? json_decode($detail->dokumen_nomor) : ($detail->dokumen_nomor ? [$detail->dokumen_nomor] : []); @endphp @foreach($dokumen_jaminan as $index => $dokumen) - @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo'])) - - {{ basename($dokumen) }} - - - @endif - Preview +
+ @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo'])) + @if(!empty($dokumen_nomor)) + Nomor Dokumen : {{ $dokumen_nomor[$index] }} + @endif + + {{ basename($dokumen) }} + + + @endif + Preview +

@endforeach @endif diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 4278656..35fc4d0 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -146,10 +146,10 @@
- +
@@ -158,10 +158,11 @@ Dokumen Jaminan
-
+
- - + + +
@@ -234,10 +235,10 @@
- +
@@ -246,10 +247,11 @@ Dokumen Jaminan
-
+
- - + + +
@@ -287,8 +289,8 @@
@php $n++; @endphp @endforeach + @endif
- @endif
@@ -565,8 +568,9 @@ const newInput = document.createElement('div'); newInput.className = 'flex items-center gap-2 mb-2 w-full'; newInput.innerHTML = ` - - + + + `; container.appendChild(newInput); } diff --git a/resources/views/prosespenawaran/edit.blade.php b/resources/views/prosespenawaran/edit.blade.php index 53c318a..e757972 100644 --- a/resources/views/prosespenawaran/edit.blade.php +++ b/resources/views/prosespenawaran/edit.blade.php @@ -12,7 +12,7 @@ @section('content')
- +
@@ -46,18 +46,34 @@
+
+ +
+    + +
+
-
+
+

Data KJPP

-
+
- + + + @@ -65,14 +81,18 @@ -
NoKJPPKJPPNo ProposalTanggal Proposal Biaya Penawaran Upload Penawaran Action
+
+   
diff --git a/resources/views/prosespenawaran/editulang.blade.php b/resources/views/prosespenawaran/editulang.blade.php new file mode 100644 index 0000000..66f2125 --- /dev/null +++ b/resources/views/prosespenawaran/editulang.blade.php @@ -0,0 +1,159 @@ +@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: +

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

Tambah KJPP

+
+
+ + + + + + + + + + + + + + + + + + + + + +
KJPPNo ProposalTanggal ProposalBiaya PenawaranUpload PenawaranAction
+ + + + + + + + + +
+ Rp. + +
+ +
+ + + +
+ +
+
+
+
+
+ +
+   +
+
+ +
+ +
+
+
+

Data KJPP

+
+
+ + + + + + + + + + + + + + +
NoKJPPNo ProposalTanggal ProposalBiaya PenawaranUpload PenawaranAction
+
+
+
+ +
+   +
+
+
+
+@endsection +@include('lpj::prosespenawaran.js.editulangjs') \ No newline at end of file diff --git a/resources/views/prosespenawaran/index.blade.php b/resources/views/prosespenawaran/index.blade.php index 5bcddb9..ca0f017 100644 --- a/resources/views/prosespenawaran/index.blade.php +++ b/resources/views/prosespenawaran/index.blade.php @@ -149,10 +149,10 @@ return `${formatDate(new Date(data.start_date))} - ${formatDate(new Date(data.end_date))}` } }, - tujuan_penilaian_k_j_p_p: { + tujuan_penilaian_kjpp: { title: 'Tujuan Penilaian KJPP', render: (item, data) => { - return data.tujuan_penilaian_k_j_p_p.name + return data.tujuan_penilaian_kjpp.name } }, penawarandetails_count: { @@ -170,13 +170,25 @@ actions: { title: 'Status', render: (item, data) => { + // data.id ==> penawaran.id + var iconProses =''; + if('tender'==data.status) + { + iconProses=` + + `; + } + else if('proposal-tender'==data.status) + { + iconProses=` + + `; + } + return `
- - - - + `+iconProses+`
`; }, } diff --git a/resources/views/prosespenawaran/js/editeulangxtjs.blade.php b/resources/views/prosespenawaran/js/editeulangxtjs.blade.php new file mode 100644 index 0000000..1994b43 --- /dev/null +++ b/resources/views/prosespenawaran/js/editeulangxtjs.blade.php @@ -0,0 +1,337 @@ + \ No newline at end of file diff --git a/resources/views/prosespenawaran/js/editextjs.blade.php b/resources/views/prosespenawaran/js/editextjs.blade.php index 93f12e4..05d583f 100644 --- a/resources/views/prosespenawaran/js/editextjs.blade.php +++ b/resources/views/prosespenawaran/js/editextjs.blade.php @@ -35,21 +35,11 @@ function updateData(id, kjpp_id, kjppName){ removeErrorCssMsg(); + let no_proposal = $("#{{$route[1]}}_no_proposal_"+id).val(); + let tgl_proposal = $("#{{$route[1]}}_tgl_proposal_"+id).val(); let biaya = $("#{{$route[1]}}_biayaPenawaran_"+id).val(); let filepdf = $("#{{$route[1]}}_dokumenPersetujuan_"+id).val(); let passednih = true; - if(!biaya){ - $("#{{$route[1]}}_rp_"+id).addClass(" border-danger"); - $("#{{$route[1]}}_biayaPenawaran_"+id).addClass(" border-danger"); - $("#{{$route[1]}}_biayaPenawaran_msg_"+id).text("Silahkan isi Biaya Penawaran nya"); - passednih = false; - } - if(!filepdf){ - $("#{{$route[1]}}_dokumenPersetujuan_"+id).addClass(" border-danger"); - $("#{{$route[1]}}_dokumenPersetujuan_msg_"+id).text("Silahkan isi dokumen nya"); - $("#{{$route[1]}}_dokumenPersetujuan_"+id).val(""); - passednih = false; - } if(passednih) { @@ -58,7 +48,9 @@ let formData = new FormData(); let token = "{{ csrf_token() }}"; formData.append("dokumen_persetujuan", file_data ?? ""); - formData.append("biaya_penawaran", biaya); + formData.append("no_proposal", no_proposal); + formData.append("tgl_proposal", tgl_proposal); + formData.append("biaya_penawaran", biaya); formData.append("kjpp_rekanan_id", kjpp_id); formData.append("_method", "PUT"); formData.append("_token", token); @@ -149,7 +141,5 @@ } }) - } - - + } \ 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 34a98c6..8adaa2f 100644 --- a/resources/views/prosespenawaran/js/editjs.blade.php +++ b/resources/views/prosespenawaran/js/editjs.blade.php @@ -39,6 +39,7 @@ $("#textReg").text(response.penawaran.nomor_registrasi); $("#textCodePenawaran").text(response.penawaran.code); setTablesKJPP1(response.penawrandetails); + setKJPPList(response.kjpps); } else if('error' == response.status) { @@ -53,28 +54,64 @@ }); } + function setKJPPList(datas) + { + $('#{{$route[1]}}_kjpps').empty().append(''); + + $.each(datas, function(key, value){ + var stringVal = value.code+' - '+value.name; + $('#{{$route[1]}}_kjpps').append(new Option(stringVal, value.id)); + }); + } + function setTablesKJPP1(datas) { let i=1; $.each(datas, function(key, value){ var kjppName = value.kjpp_code+' - '+value.kjpp_name; var biaya_penawaran = value.biaya_penawaran;// alert(biaya_penawaran); + var no_proposal = (value.no_proposal)??'';// alert(no_proposal); + var tgl_proposal = (value.tgl_proposal)??'';// alert(tgl_proposal); var htmlDokumenPersetujuanDownload=''; var dokumenPersetujuanDownload = value.dokumen_persetujuan; if(dokumenPersetujuanDownload) { - htmlDokumenPersetujuanDownload=''; + htmlDokumenPersetujuanDownload=''; } - + var markup = ''; markup +=''+i+''; markup +=''; - markup +='
Rp.
'; - markup +=''+htmlDokumenPersetujuanDownload+''; - markup +='
'; - markup +=''; - markup +=''; - markup +='
'; + // No Proposal + markup +=''; + markup +=''; + markup +=''; + markup +=''; + markup +=''; + // No Proposal + // Tanggal Proposal + markup +=''; + markup +=''; + markup +=''; + markup +=''; + // Tanggal Proposal + + // Biaya Penawaran + markup +=''; + markup +='
Rp.
'; + markup +=''; + markup +=''; + // Biaya Penawaran + // Upload Penawaran + markup +=''; + markup +=''; + markup +=''+htmlDokumenPersetujuanDownload; + markup +=''; + // Upload Penawaran + markup +='
'; + markup +=''; + markup +=''; + markup +='
'; markup += ''; $('#tbodyKJPP1').append(markup); @@ -84,10 +121,11 @@ if(biaya_penawaran) biaya_penawaran_format=tandaPemisahTitik(biaya_penawaran); $("#{{$route[1]}}_biayaPenawaran_"+value.id).val(biaya_penawaran_format); + i++; }); } - + $(document).on("input", "input:file", function(e) { let fileName = e.target.files[0].name; let inputFile = e.target.id; @@ -107,7 +145,7 @@ // updateAll penawaran & permohonan status $("#{{$route[1]}}_toEdit").click(function(e) { e.preventDefault(); - + // $id = penawaran.id //define variable let token = "{{ csrf_token() }}"; let useURL = "{{ route($route[0].'.'.$route[1].'.updateAll',$id) }}"; @@ -150,5 +188,106 @@ }); }); + $('#form_{{$route[1]}}').submit(function(e) { + e.preventDefault(); + + var formData = new FormData(this); + //define variable + let token = "{{ csrf_token() }}"; + let useURL = "{{ route($route[0].'.'.$route[1].'.updateDraft',$id) }}"; + formData.append('_token', token); + formData.append('_method', 'PUT'); + + $.ajax({ + url: useURL, + type: "POST", + data: formData, + cache: false, + processData: false, + contentType: false, + success: function(response) { + console.log(response); + + if ('success' == response.status) + { + // toastr.success(response.message); + // success + var message = response.message; + toastrku("success", message); + setTimeout(function () { + location.reload(true); + }, 2000); +// + } + else if('error' == response.status) + { + var message = response.message; + toastrku("error", message); + } + + }, + error: function(response, textStatus, errorThrown) { + // var errors = response.responseJSON.errors; + // console.log(errors); + console.log(response); + + } + }); + }); + + $("#{{$route[1]}}_toAddKJPP").click(function(e) { + e.preventDefault(); + + let kjpp_id = $("#{{$route[1]}}_kjpps").val(); + let id = $("#id").val(); + let token = "{{ csrf_token() }}"; + let useURL = "{{ route($route[0].'.'.$route[1].'.store') }}"; + + var input_data = new Object(); + input_data._token= token; + input_data.kjpp_id= kjpp_id; + input_data.penawaran_id= id; + + if(kjpp_id>0) + { + $.ajax({ + url: useURL, + type: "POST", + cache: false, + data: input_data, + success:function(response){ + + if ('success' == response.status) + { + // toastr.success(response.message); + // success + var message = response.message; + toastrku("success", message); + setTimeout(function () { + location.reload(true); + }, 2000); + } + else if('error' == response.status) + { + var message = response.message; + toastrku("error", message); + } + }, + error: function (response, textStatus, errorThrown) { + console.log(response); + } + + }); + } + else + { + swal.fire({ + title: "Perhatikan", + text: "Silahkan pilih KJPP terlebih dahulu", + icon: "error" + }); + } + + }); -@endpush +@endpush \ No newline at end of file diff --git a/resources/views/prosespenawaran/js/editulangjs.blade.php b/resources/views/prosespenawaran/js/editulangjs.blade.php new file mode 100644 index 0000000..53de74b --- /dev/null +++ b/resources/views/prosespenawaran/js/editulangjs.blade.php @@ -0,0 +1,151 @@ +@push('scripts') + @include('lpj::assetsku.includenya') + @include('lpj::prosespenawaran.js.editeulangxtjs') + +@endpush diff --git a/resources/views/prosespenawaran/show.blade.php b/resources/views/prosespenawaran/show.blade.php index 1ef200f..2629eb2 100644 --- a/resources/views/prosespenawaran/show.blade.php +++ b/resources/views/prosespenawaran/show.blade.php @@ -14,7 +14,18 @@ Detail Data Proses Penawaran
- Proses Penawaran + @php + $buttonProses=''; + if('tender'==$prosespenawaran->status) + { + $buttonProses=' Proses Penawaran'; + } + elseif ('proposal-tender'==$prosespenawaran->status) + { + $buttonProses=' Proses Penawaran Ulang'; + } + @endphp + {!! $buttonProses !!} Back
diff --git a/resources/views/registrasifinal/index.blade.php b/resources/views/registrasifinal/index.blade.php index 4e50882..df6bdce 100644 --- a/resources/views/registrasifinal/index.blade.php +++ b/resources/views/registrasifinal/index.blade.php @@ -114,6 +114,9 @@ }, tujuan_penilaian_kjpp_name: { title: 'Tujuan Penilaian', + render: (item, data) => { + return `${data.tujuan_penilaian_kjpp.name || ''}`; + }, }, nama_kjpp_sebelumnya: { title: 'Nama KJPP Terpilih', diff --git a/resources/views/spk/documentSPK.blade.php b/resources/views/spk/documentSPK.blade.php index 2329853..0f9f78a 100644 --- a/resources/views/spk/documentSPK.blade.php +++ b/resources/views/spk/documentSPK.blade.php @@ -1,5 +1,14 @@ - - +@php + $manifest = json_decode(file_get_contents(public_path('build/manifest.json')), true); + $cssFiles = array_filter($manifest, function($value) { + return strpos($value['file'], '.css') !== false; + }); + +@endphp + +@foreach($cssFiles as $file) + +@endforeach
@@ -80,7 +89,7 @@ Jangka Waktu : - {{ $penawaran->date_range }} + {{ formatTanggalIndonesia($penawaran->start_date) }} - {{ formatTanggalIndonesia($penawaran->end_date) }} i @@ -180,4 +189,4 @@
-
\ No newline at end of file +
diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php index bb2fea0..171d57a 100644 --- a/resources/views/spk/edit.blade.php +++ b/resources/views/spk/edit.blade.php @@ -104,7 +104,7 @@ Jangka Waktu : - {{ $penawaran->date_range }} + {{ formatTanggalIndonesia($penawaran->start_date) }} - {{ formatTanggalIndonesia($penawaran->end_date) }} i diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index f88c30e..4d80059 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -434,94 +434,6 @@ Breadcrumbs::for('surveyor.data-pembanding', function (BreadcrumbTrail $trail) { $trail->push('Form Pembanding'); }); - -Breadcrumbs::for('registrasi', function (BreadcrumbTrail $trail) { - $trail->push('Registrasi', route('registrasi.index')); -}); - -Breadcrumbs::for('registrasi.edit', function (BreadcrumbTrail $trail) { - $trail->parent('registrasi'); - $trail->push('Tambah Registrasi'); -}); - -Breadcrumbs::for('registrasi.show', function (BreadcrumbTrail $trail) { - $trail->parent('registrasi'); - $trail->push('Detail Permohona'); -}); -// andy add -// andy add 20241009 -Breadcrumbs::for('tender.prosespenawaran', function (BreadcrumbTrail $trail) { - $trail->parent('tender'); - $trail->push('Data Proses Penawaran', route('tender.prosespenawaran.index')); -}); - -Breadcrumbs::for('tender.prosespenawaran.edit', function (BreadcrumbTrail $trail) { - $trail->parent('tender.prosespenawaran'); - $trail->push('Tambah Data Proses Penawaran'); -}); - -Breadcrumbs::for('tender.prosespenawaran.show', function (BreadcrumbTrail $trail) { - $trail->parent('tender.prosespenawaran'); - $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 -// 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 -// spk -Breadcrumbs::for('spk', function (BreadcrumbTrail $trail) { - $trail->push('SPK', route('spk.index')); -}); -Breadcrumbs::for('spk.edit', function (BreadcrumbTrail $trail) { - $trail->parent('spk'); - $trail->push('Buat SPK'); -}); -// spk -// 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) { $trail->parent('otorisator'); $trail->push('Otorisator', route('otorisator.pelaporan.index')); @@ -636,3 +548,6 @@ Breadcrumbs::for('sla', function (BreadcrumbTrail $trail) { $trail->parent('basicdata'); $trail->push('SLA', route('basicdata.sla.index')); }); + +// add andy +require __DIR__ . '/breadcrumbs_registrasi.php'; diff --git a/routes/breadcrumbs_registrasi.php b/routes/breadcrumbs_registrasi.php new file mode 100644 index 0000000..cd89248 --- /dev/null +++ b/routes/breadcrumbs_registrasi.php @@ -0,0 +1,95 @@ +push('Registrasi', route('registrasi.index')); +}); + +Breadcrumbs::for('registrasi.edit', function (BreadcrumbTrail $trail) { + $trail->parent('registrasi'); + $trail->push('Tambah Registrasi'); +}); + +Breadcrumbs::for('registrasi.show', function (BreadcrumbTrail $trail) { + $trail->parent('registrasi'); + $trail->push('Detail Permohona'); +}); +// registrasi +// prosespenawaran +Breadcrumbs::for('tender.prosespenawaran', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Proses Penawaran', route('tender.prosespenawaran.index')); +}); + +Breadcrumbs::for('tender.prosespenawaran.edit', function (BreadcrumbTrail $trail) { + $trail->parent('tender.prosespenawaran'); + $trail->push('Tambah Data Proses Penawaran'); +}); + +Breadcrumbs::for('tender.prosespenawaran.show', function (BreadcrumbTrail $trail) { + $trail->parent('tender.prosespenawaran'); + $trail->push('Detail Data Proses Penawaran'); +}); + +Breadcrumbs::for('tender.prosespenawaran.editulang', function (BreadcrumbTrail $trail) { + $trail->parent('tender.prosespenawaran'); + $trail->push('Tambah Data Proses Penawaran Ulang'); +}); +// prosespenawaran +// 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'); +}); +// Proses Penawaran Ulang +// 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'); +}); +// Otorisasi Tender +// spk +Breadcrumbs::for('spk', function (BreadcrumbTrail $trail) { + $trail->push('SPK', route('spk.index')); +}); +Breadcrumbs::for('spk.edit', function (BreadcrumbTrail $trail) { + $trail->parent('spk'); + $trail->push('Buat SPK'); +}); +// spk +// 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'); +}); +// registrasi final diff --git a/routes/registrasi.php b/routes/registrasi.php index 2183a94..c12a598 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -47,9 +47,21 @@ Route::middleware(['auth'])->group(function () { Route::put('/prosespenawaran/{prosespenawaran}', 'update')->name('prosespenawaran.update'); // update all Route::put('/prosespenawaranAll/{prosespenawaranAll}', 'updateAll')->name('prosespenawaran.updateAll'); + // update draft + Route::put('/prosespenawaranDraft/{prosespenawaranDraft}', 'updateDraft')->name('prosespenawaran.updateDraft'); // delete KJPP, status set = 0 Route::put('/prosespenawaranKJPPStatus/{prosespenawaranKJPPStatus}', 'updateKJPPStatus')->name('prosespenawaran.updateKJPPStatus'); + // add KJPP to detail_penawaran + Route::post('prosespenawaran/store', 'store')->name('prosespenawaran.store'); + Route::post('prosespenawaran/storeUlang', 'storeUlang')->name('prosespenawaran.storeUlang'); + + // edit proses penawaran ulang + Route::get('prosespenawaran/{prosespenawaran}/editulang', 'editulang')->name('prosespenawaran.editulang'); + Route::post('prosespenawaran/setDataUlang', 'setDataUlang')->name('prosespenawaran.setDataUlang'); + Route::put('/prosespenawaran2/{prosespenawaran2}', 'updateulang')->name('prosespenawaran.updateulang'); + Route::put('/prosespenawaranKJPPStatusUlang/{prosespenawaranKJPPStatusUlang}', 'updateKJPPStatusUlang')->name('prosespenawaran.updateKJPPStatusUlang'); + }); // Proses Penawaran Ulang