diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index dc4ac6e..5d838d0 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -18,6 +18,8 @@ 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 @@ -223,55 +225,64 @@ $document = DokumenJaminan::find($jaminan); $document->update($validate); + // Get existing detail documents + $existingDetails = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get()->keyBy('id'); - if ($request->detail_dokumen_jaminan_id) { - foreach ($request->detail_dokumen_jaminan_id as $key => $value) { - if (isset($request->dokumen_jaminan[$key])) { - $file = $request->dokumen_jaminan[$key]; - if ($file) { - $file_name = $file->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 (isset($file_name)) { - $file->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], - ]; - if (isset($request->detail_dokumen_jaminan_id[$key])) { - $detailDocument = DetailDokumenJaminan::find( - $request->detail_dokumen_jaminan_id[$key], + $dokumenJaminan = []; + if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) { + foreach($request->dokumen_jaminan[$key] as $file) { + if ($file) { + $file_name = $file->getClientOriginalName(); + $file->storeAs( + 'public/jaminan/' . $debitur->id . '/' . $document->id . '/', + $file_name ); - - $detailDocument->update($detail); - $detailDocument->save(); + $dokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name; } } - } else { - $detail = [ - 'dokumen_jaminan_id' => $document->id, - 'jenis_legalitas_jaminan_id' => $request->jenis_legalitas_jaminan_id[$key], - 'name' => $request->name[$key], - 'keterangan' => $request->keterangan[$key], - ]; + } - if (isset($request->detail_dokumen_jaminan_id[$key])) { - $detailDocument = DetailDokumenJaminan::find( - $request->detail_dokumen_jaminan_id[$key], - ); - $detailDocument->update($detail); + if (!empty($dokumenJaminan)) { + $detailData['dokumen_jaminan'] = json_encode($dokumenJaminan); + } + + if (isset($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); + $detailData['dokumen_jaminan'] = json_encode($mergedFiles); + } + $detailDocument->update($detailData); + $existingDetails->forget($detailId); } + } else { + DetailDokumenJaminan::create($detailData); } } } + // Delete any remaining existing details that weren't updated + foreach ($existingDetails as $detail) { + $files = json_decode($detail->dokumen_jaminan, true) ?: []; + foreach ($files as $file) { + Storage::delete('public/' . $file); + } + $detail->delete(); + } + DB::commit(); return redirect()->route('debitur.jaminan.index', $id)->with( 'success', @@ -290,13 +301,29 @@ ) { $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(); + + $jenisJaminan = JenisJaminan::all(); $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); + + $_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(); + + + + // Remove values from $legalitasJaminan that are in $currentLegalitasJaminan + $legalitasJaminan = array_diff($legalitasJaminan, $currentLegalitasJaminan->pluck('code')->toArray()); + + $legalitas = JenisLegalitasJaminan::whereIn('code', $legalitasJaminan)->get(); + $pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get(); $hubunganPemilik = HubunganPemilikJaminan::all(); @@ -314,6 +341,7 @@ 'villages', 'pemilikJaminan', 'hubunganPemilik', + 'legalitas' ), ); } @@ -379,10 +407,11 @@ { $dokumen = request()->get('dokumen'); $document = DetailDokumenJaminan::find($dokumen); - return response()->download(storage_path('app/public/' . $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')])); } - public function legalitasJaminan($id, $jaminan) + public function legalitasJaminan($id) { $jenisJaminan = JenisJaminan::find($id); $legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id; @@ -390,4 +419,60 @@ $legalitas = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get(); echo json_encode($legalitas); } + + + 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 = []; + + // Create a set of new jenis_legalitas_jaminan_ids for quick lookup + $newLegalitasIds = $newLegalitasJaminan->pluck('id')->toArray(); + + if($id>0) { + $document = DokumenJaminan::findOrFail($id); + if ($document && $document->detail) { + foreach ($document->detail as $detail) { + // Only include existing legalitas if its id is in the new set + if (in_array($detail->jenis_legalitas_jaminan_id, $newLegalitasIds)) { + $existingLegalitas[] = [ + '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, + 'custom_field' => $detail->jenisLegalitasJaminan->custom_field, + 'custom_field_type' => $detail->jenisLegalitasJaminan->custom_field_type, + 'details' => $detail->details, + 'keterangan' => $detail->keterangan, + 'is_existing' => true + ]; + } + } + } + } + + foreach ($newLegalitasJaminan as $legalitas) { + if (!Collection::make($existingLegalitas)->contains('jenis_legalitas_jaminan_id', $legalitas->id)) { + $newLegalitas[] = [ + '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 + ]; + } + } + + $combinedLegalitas = array_merge($existingLegalitas, $newLegalitas); + return response()->json($combinedLegalitas); + } } diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index e2a3da4..b6a43f6 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -33,25 +33,20 @@ public function store(PermohonanRequest $request) { - $validate = $request->validated(); if ($validate) { try { // Save to database Permohonan::create($validate); return redirect() - ->route('permohonan.index') - ->with('success', 'Permohonan created successfully'); + ->route('permohonan.index')->with('success', 'Permohonan created successfully'); } catch (Exception $e) { return redirect() - ->route('permohonan.create') - ->with('error', 'Failed to create permohonan' . $e->getMessage()); + ->route('permohonan.create')->with('error', 'Failed to create permohonan' . $e->getMessage()); } } else { return redirect() - ->route('permohonan.create') - ->with('success', 'error naon iye') - ->withInput(); + ->route('permohonan.create')->with('success', 'error naon iye')->withInput(); } } @@ -118,14 +113,15 @@ try { // Update in database $permohonan = Permohonan::find($id); + if ($permohonan->status == 'revisi') { + $validate['status'] = 'order'; + } $permohonan->update($validate); return redirect() - ->route('permohonan.index') - ->with('success', 'Permohonan updated successfully'); + ->route('permohonan.index')->with('success', 'Permohonan updated successfully'); } catch (Exception $e) { return redirect() - ->route('permohonan.edit', $id) - ->with('error', 'Failed to update permohonan'); + ->route('permohonan.edit', $id)->with('error', 'Failed to update permohonan'); } } } @@ -313,11 +309,12 @@ return view('lpj::permohonan.show', compact('permohonan')); } - public function print($id){ + public function print($id) + { $permohonan = Permohonan::find($id); return view('lpj::permohonan.print', compact('permohonan')); -// $pdf = Pdf::loadView('lpj::permohonan.print', compact('permohonan')); - // return $pdf->stream(); + // $pdf = Pdf::loadView('lpj::permohonan.print', compact('permohonan')); + // return $pdf->stream(); } } diff --git a/app/Http/Controllers/SpkController.php b/app/Http/Controllers/SpkController.php index 5b4d9de..ec96a62 100644 --- a/app/Http/Controllers/SpkController.php +++ b/app/Http/Controllers/SpkController.php @@ -1,14 +1,22 @@ user) || !$this->user->can('debitur.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query =Permohonan::query() + ->leftJoin('penawaran', 'penawaran.nomor_registrasi','=','permohonan.nomor_registrasi') + ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') + ->where('permohonan.status','=','spk') + ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name', 'permohonan.dokumen as dokumenSPK'); + + // 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(); + + $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 viewSpk() { // return Excel::download(new TujuanPenilaianExport, 'tujuan_penilaian.xlsx'); return view('lpj::spk.view'); } + + public function show($id) + { + $penawaran = PenawaranTender::find($id); + // return view('lpj::spk.show', compact('id','permohonan')); + } + + public function edit($id) + { + $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->where('detail_penawaran.status','=',1) + ->where('penawaran.id','=', $id) + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + 'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', + 'kjpp.name as kjpp_name', + 'kjpp.address as kjpp_address', + 'jenis_laporan.name as jenis_laporan_name' + )->first(); + + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) + ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') + ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', + 'dokumen_jaminan.address as dokumen_jaminan_address'); + + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); + + return view('lpj::spk.edit', compact('data', 'penawaran')); + } + + public function update(Request $request, $id): JsonResponse + { + // init + $data1 = array(); + $dataPermohonan = array(); + // data + + $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->where('detail_penawaran.status','=',1) + ->where('penawaran.id','=', $id) + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + 'kjpp.name as kjpp_name', + 'kjpp.address as kjpp_address', + 'jenis_laporan.name as jenis_laporan_name' + )->first(); + + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) + ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') + ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name'); + + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); + + $folderPath = 'uploads/spk/'; + $extension = '.pdf'; + $newFileName = "SPK_".$penawaran->nomor_registrasi."_".Auth::user()->id."_".time(). $extension; + $newFileNameWithPath = $folderPath . $newFileName; + + // update table permohonan + $dataPermohonan=['dokumen' => $newFileNameWithPath]; + $data->update($dataPermohonan); + // update table permohonan + + // pdf path + $spkpenawaran_path = Storage::url($newFileNameWithPath); + + $pdf =Pdf::loadView('lpj::spk.documentSPK', compact('data', 'penawaran')); + + $content = $pdf->download()->getOriginalContent(); + Storage::put('public/'.$newFileNameWithPath,$content); + + $data1['status'] = 'success'; + $data1['spkpenawaran_path'] = $spkpenawaran_path; + $data1['message']['message_success'] = array('Generate SPK PDF successfully'); + + return response()->json($data1); + } + + public function dokumennya() + { + // return view('lpj::spk.dokumennya'); + $id="3"; + $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->where('detail_penawaran.status','=',1) + ->where('penawaran.id','=', $id) + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + 'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', + 'kjpp.name as kjpp_name', + 'kjpp.address as kjpp_address', + 'jenis_laporan.name as jenis_laporan_name' + )->first(); + + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) + ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') + ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', + 'dokumen_jaminan.address as dokumen_jaminan_address'); + + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); + + return view('lpj::spk.dokumennya', compact('data', 'penawaran')); + } } diff --git a/app/Http/Requests/PermohonanRequest.php b/app/Http/Requests/PermohonanRequest.php index 8d6ef20..1919029 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' => 'nullable|string', '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/app/Models/KondisiBangunan.php b/app/Models/KondisiBangunan.php index c480283..0fa0f86 100644 --- a/app/Models/KondisiBangunan.php +++ b/app/Models/KondisiBangunan.php @@ -14,7 +14,7 @@ class KondisiBangunan extends Model /** * The attributes that are mass assignable. */ - protected $fillable = ['code', 'name']; + protected $fillable = ['code','name']; protected static function newFactory(): KondisiBangunanFactory { diff --git a/app/Models/Teams.php b/app/Models/Teams.php index 1348a6c..57c0775 100644 --- a/app/Models/Teams.php +++ b/app/Models/Teams.php @@ -31,7 +31,7 @@ class Teams extends Model } public function penilaianTeam(){ - return $this->hasMany(penilaianTeam::class, 'team_id', 'id'); + return $this->hasMany(PenilaianTeam::class, 'team_id', 'id'); } diff --git a/module.json b/module.json index fd40dc1..572fe59 100644 --- a/module.json +++ b/module.json @@ -89,6 +89,15 @@ } ] }, + { + "title": "SPK", + "path": "spk", + "icon": "ki-filled ki-file-added text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator", "admin"] + }, { "title": "Registrasi Final", "path": "registrasifinal", @@ -141,7 +150,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["senior-officer"] + "roles": ["administrator","senior-officer"] }, { "title": "Otorisator", @@ -150,7 +159,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["senior-officer"], + "roles": ["administrator","senior-officer"], "sub": [ { "title": "Pelaporan", @@ -158,7 +167,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["senior-officer"] + "roles": ["administrator","senior-officer"] }, { "title": "Pembayaran", @@ -166,7 +175,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["senior-officer"] + "roles": ["administrator","senior-officer"] }, { "title": "Pembatalan", @@ -174,7 +183,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["senior-officer"] + "roles": ["administrator","senior-officer"] }, { "title": "SLA", @@ -182,7 +191,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["senior-officer"] + "roles": ["administrator","senior-officer"] } ] }, @@ -193,7 +202,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { @@ -218,7 +227,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Laporan", @@ -435,7 +444,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Kontur Tanah", @@ -443,7 +452,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Posisi Kavling", @@ -451,7 +460,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Ketinggian Tanah", @@ -459,7 +468,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Kondisi Fisik Tanah", @@ -467,7 +476,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Jenis Bangunan", @@ -475,7 +484,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Kondisi Bangunan", @@ -483,7 +492,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Sifat Bangunan", @@ -491,7 +500,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { @@ -500,7 +509,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { @@ -509,7 +518,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Tingkat Keramaian", @@ -517,7 +526,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Masyarakat Sekitar", @@ -525,7 +534,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Lantai Unit", @@ -533,7 +542,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "View unit", @@ -541,7 +550,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Spesifikasi Bangunan", @@ -549,7 +558,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] }, { "title": "Kategori Speksikasi Bangunan", @@ -557,7 +566,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator","surveyor"] } diff --git a/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php index bc2ee80..cc5a114 100644 --- a/resources/views/component/detail-jaminan.blade.php +++ b/resources/views/component/detail-jaminan.blade.php @@ -69,16 +69,28 @@ - + Dokumen Jaminan + @if(isset($detail->dokumen_jaminan)) - @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo'])) - Download - ) @endif - Preview + @php + $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan]; + @endphp + @foreach($dokumen_jaminan as $index => $dokumen) + @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo'])) + + {{ 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 b3038ed..7e649a0 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -132,41 +132,57 @@ @enderror - - @if(isset($document->id)) - @foreach($document->detail as $detail) - -
- - -
- -
- -
- +
+ @if(isset($document->id)) + @php $n = 0; @endphp + @foreach($document->detail as $detail) + +
+ +
-
-
- -
- - @if(isset($detail->dokumen_jaminan)) - {{ basename($detail->dokumen_jaminan) }} - - @endif +
+ +
+ +
-
- @if($detail->details) - @php $custom_field = json_decode($detail->details,true) @endphp +
+ +
+
+
+ + +
+
+
+ + @if(isset($detail->dokumen_jaminan)) + @php + $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan]; + @endphp + @foreach($dokumen_jaminan as $index => $dokumen) + + {{ basename($dokumen) }} + + + @endforeach + @endif +
+
+ + @if($detail->details) + @php $custom_field = json_decode($detail->details,true) @endphp
- @endif + @else + @if($detail->jenisLegalitasJaminan->custom_field) +
+ +
+ @if($detail->jenisLegalitasJaminan->custom_field_type === "text") + + @elseif($detail->jenisLegalitasJaminan->custom_field_type === "number") + + @elseif($detail->jenisLegalitasJaminan->custom_field_type === "date") + + @elseif($detail->jenisLegalitasJaminan->custom_field_type === "textarea") + + @else + + @endif +
+
+ @endif + @endif -
- -
- +
+ +
+ +
+
+ @php $n++; @endphp + @endforeach + @foreach($legalitas as $item) +
+ +
-
- @endforeach - @else -
-
+
+ +
+ +
+
+ +
+ +
+ +
+
+ + @if($item->custom_field) +
+ +
+ @if($item->custom_field_type === "text") + + @elseif($item->custom_field_type === "number") + + @elseif($item->custom_field_type === "date") + + @elseif($item->custom_field_type === "textarea") + + @else + + @endif +
+
+ @endif + +
+ +
+ +
+
+ @php $n++; @endphp + @endforeach +
@endif
@@ -311,13 +403,13 @@ @push('scripts') {{--Pemilik Jaminan--}} @endpush diff --git a/resources/views/spk/documentSPK.blade.php b/resources/views/spk/documentSPK.blade.php new file mode 100644 index 0000000..8bf42c3 --- /dev/null +++ b/resources/views/spk/documentSPK.blade.php @@ -0,0 +1,189 @@ + + + + + + + +
+
+ +
+
\ No newline at end of file diff --git a/resources/views/spk/dokumennya.blade.php b/resources/views/spk/dokumennya.blade.php new file mode 100644 index 0000000..3bfbd22 --- /dev/null +++ b/resources/views/spk/dokumennya.blade.php @@ -0,0 +1,185 @@ +@php + use Nwidart\Modules\Module; +@endphp +@vite(Module::getAssets()) + @stack('styles') +
+
+ +
+
\ No newline at end of file diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php new file mode 100644 index 0000000..03edfae --- /dev/null +++ b/resources/views/spk/edit.blade.php @@ -0,0 +1,211 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@php + // $route = Route::currentRouteName(); + // dd($route); + $route = explode('.', Route::currentRouteName()); +@endphp + +@section('content') +
+
+
+

Buat SPK

+
+ +
+ +
+
+
+ +
+
+
+
+@endsection +@include('lpj::spk.js.editjs') diff --git a/resources/views/spk/index.blade.php b/resources/views/spk/index.blade.php index fb973a3..65d6e92 100644 --- a/resources/views/spk/index.blade.php +++ b/resources/views/spk/index.blade.php @@ -1,27 +1,26 @@ @extends('layouts.main') @section('breadcrumbs') - {{ Breadcrumbs::render('basicdata.tujuan-penilaian') }} + {{ Breadcrumbs::render('spk') }} @endsection @section('content')
-
+

- SPK Menu + Daftar SPK

@@ -32,12 +31,28 @@ - - No SPK + + Nomor Registrasi - - Perihal + + Kode Penawaran + + + + Tanggal Penawaran + + + + Tujuan Penilaian + + + + KJPP Data + + + + Status Action @@ -62,87 +77,103 @@ @endsection @push('scripts') - - - + + let dataTable = new KTDataTable(element, dataTableOptions); + // Custom search functionality + searchInput.addEventListener('input', function () { + const searchValue = this.value.trim(); + dataTable.search(searchValue, true); + + }); + + @endpush diff --git a/resources/views/spk/js/editjs.blade.php b/resources/views/spk/js/editjs.blade.php new file mode 100644 index 0000000..813e378 --- /dev/null +++ b/resources/views/spk/js/editjs.blade.php @@ -0,0 +1,39 @@ +@push('scripts') + @include('lpj::assetsku.includenya') + +@endpush \ No newline at end of file diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 632476d..f88c30e 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -498,6 +498,15 @@ Breadcrumbs::for('otorisasitender.penawaran.show', function (BreadcrumbTrail $tr $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')); diff --git a/routes/registrasi.php b/routes/registrasi.php index f8b3893..a9334bd 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\SpkController; use Modules\Lpj\Http\Controllers\RegistrasiFinalController; Route::middleware(['auth'])->group(function () { @@ -85,6 +86,15 @@ Route::middleware(['auth'])->group(function () { }); }); + Route::controller(SpkController::class)->group(function(){ + Route::get('/spk/dokumennya', 'dokumennya')->name('spk.dokumennya'); + Route::get('/spk', 'index')->name('spk.index'); + Route::get('/spk/datatables', 'dataForDatatables')->name('spk.datatables'); + Route::get('/spk/{spk}', 'show')->name('spk.show'); + Route::get('/spk/{spk}/edit', 'edit')->name('spk.edit'); + Route::put('/spk/{spk}', 'update')->name('spk.update'); + }); + Route::controller(RegistrasiFinalController::class)->group(function(){ Route::get('/registrasifinal', 'index')->name('registrasifinal.index'); Route::get('/registrasifinal/datatables', 'dataForDatatables')->name('registrasifinal.datatables'); diff --git a/routes/web.php b/routes/web.php index 0ec7f55..97e53a4 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,7 +2,6 @@ use Illuminate\Support\Facades\Route; use Modules\Lpj\Http\Controllers\SLAController; -use Modules\Lpj\Http\Controllers\SpkController; use Modules\Lpj\Http\Controllers\KJPPController; use Modules\Lpj\Http\Controllers\TeamsController; use Modules\Lpj\Http\Controllers\RegionController; @@ -67,7 +66,7 @@ Route::middleware(['auth'])->group(function () { Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () { - Route::get('legalitas/{id}', [JenisJaminanController::class, 'legalitasJaminan'])->name('legalitas'); + Route::get('legalitas/{id}/{jenisJaminanId}', [DokumenJaminanController::class, 'getLegalitasJaminan'])->name('legalitas'); Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore'); Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables'])->name('datatables'); Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); @@ -353,18 +352,6 @@ Route::middleware(['auth'])->group(function () { Route::get('print/{id}', [PermohonanController::class, 'print'])->name('print'); }); - 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);