diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index 0011df5..78a11c2 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -8,6 +8,7 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; + use Log; use Modules\Location\Models\City; use Modules\Location\Models\District; use Modules\Location\Models\Province; @@ -20,6 +21,7 @@ use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\JenisLegalitasJaminan; use Modules\Lpj\Models\PemilikJaminan; + use Modules\Lpj\Models\Permohonan; use ZipArchive; class DokumenJaminanController extends Controller @@ -31,6 +33,13 @@ { $debitur = Debiture::find($id); $documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get(); + if (request()->get('permohonan_id') !== null) { + $permohonan_id = request()->get('permohonan_id'); + $documents = DokumenJaminan::with('pemilik', 'detail') + ->where('debiture_id', $id) + ->where('permohonan_id', $permohonan_id) + ->get(); + } return view( 'lpj::debitur.edit', @@ -127,7 +136,10 @@ $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); $pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get(); $hubunganPemilik = HubunganPemilikJaminan::all(); - + $permohonan = null; + if(request()->get('permohonan_id')) { + $permohonan = Permohonan::where('id', request()->get('permohonan_id'))->first(); + } return view( 'lpj::debitur.jaminan', compact( @@ -137,6 +149,7 @@ 'jenisLegalitasJaminan', 'pemilikJaminan', 'hubunganPemilik', + 'permohonan' ), ); } @@ -238,7 +251,7 @@ ]; $dokumenJaminan = []; - $dokumenNomor=[]; + $dokumenNomor = []; if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) { foreach ($request->dokumen_jaminan[$key] as $index => $file) { @@ -311,7 +324,8 @@ public function edit( $id, $jaminan, - ) { + ) + { $document = DokumenJaminan::find($jaminan); $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get(); @@ -325,9 +339,9 @@ $jenisJaminan = JenisJaminan::all(); $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); - $_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id); - $legalitas=''; - if($_jenisJaminan) { + $_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id); + $legalitas = ''; + if ($_jenisJaminan) { $legalitasJaminan = json_decode($_jenisJaminan->jenis_legalitas_jaminan_id, true); $currentLegalitasJaminan = JenisLegalitasJaminan::whereIn( @@ -367,7 +381,8 @@ public function destroy( $id, $jaminan_id, - ) { + ) + { try { $jaminan = DokumenJaminan::find($jaminan_id); $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get(); @@ -385,7 +400,7 @@ public function bulkDownload() { $dokumenIds = request()->get('jaminan'); // Expecting an array of dokumen_jaminan_id - $documents = DokumenJaminan::where('id', $dokumenIds)->with(['jenisJaminan', 'detail','debiture'])->get(); + $documents = DokumenJaminan::where('id', $dokumenIds)->with(['jenisJaminan', 'detail', 'debiture'])->get(); if ($documents->isEmpty()) { return redirect()->back()->with('error', 'No documents found for the provided IDs.'); @@ -397,23 +412,23 @@ if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) { foreach ($documents as $document) { - $jenisJaminan = $document->debiture->permohonan->nomor_registrasi ?? 'Uncategorized'; - $folderName = $this->sanitizeFolderName($jenisJaminan); + $jenisJaminan = $document->debiture->permohonan->nomor_registrasi ?? 'Uncategorized'; + $folderName = $this->sanitizeFolderName($jenisJaminan); foreach ($document->detail as $detail) { - if($detail->dokumen_jaminan) { - $folderJaminanName = $this->sanitizeFolderName($detail->jenisLegalitasJaminan->name?? 'Uncategorized'); - $files = is_array(json_decode($detail->dokumen_jaminan)) + if ($detail->dokumen_jaminan) { + $folderJaminanName = $this->sanitizeFolderName($detail->jenisLegalitasJaminan->name ?? 'Uncategorized'); + $files = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan]; foreach ($files as $file) { $filePath = storage_path('app/public/' . $file); if (file_exists($filePath)) { - $zip->addFile($filePath, $folderName . '/' .$folderJaminanName.'/'.basename($filePath)); + $zip->addFile($filePath, $folderName . '/' . $folderJaminanName . '/' . basename($filePath)); } else { // Log or display an error message for missing files - \Log::warning('File not found: ' . $filePath); + Log::warning('File not found: ' . $filePath); } } } @@ -463,7 +478,8 @@ public function getLegalitasJaminan($id = 10, $jenisJaminanId = 1) - : JsonResponse { + : JsonResponse + { $jenisJaminan = JenisJaminan::findOrFail($jenisJaminanId); $legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id; $newLegalitasJaminan = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get(); @@ -487,7 +503,7 @@ 'dokumen_jaminan' => json_decode( $detail->dokumen_jaminan, ) ?? $detail->dokumen_jaminan, - 'dokumen_nomor' => json_decode( + 'dokumen_nomor' => json_decode( $detail->dokumen_nomor, ) ?? $detail->dokumen_nomor, 'custom_field' => $detail->jenisLegalitasJaminan->custom_field, @@ -508,7 +524,7 @@ 'jenis_legalitas_jaminan_id' => $legalitas->id, 'name' => $legalitas->name, 'dokumen_jaminan' => null, - 'dokumen_nomor' => null, + 'dokumen_nomor' => null, 'custom_field' => $legalitas->custom_field, 'custom_field_type' => $legalitas->custom_field_type, 'details' => null, diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index 45ce083..10cec96 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -69,6 +69,11 @@ $permohonan->toArray(), $filePath, ); + + $documents = DokumenJaminan::where('permohonan_id', $permohonan->id)->get(); + if(count($documents)<1){ + return redirect()->route('debitur.jaminan.create', array_merge(['permohonan_id'=>$permohonan->id],['id'=> $permohonan->debiture->id]))->with('success', 'Permohonan created successfully, Lengkapi data jaminan terlebih dahulu'); + } return redirect() ->route('permohonan.index')->with('success', 'Permohonan created successfully'); } catch (Exception $e) { @@ -151,6 +156,11 @@ } $permohonan->update($validate); + $documents = DokumenJaminan::where('permohonan_id', $permohonan->id)->get(); + if(count($documents)<1){ + return redirect()->route('debitur.jaminan.create', array_merge(['permohonan_id'=>$permohonan->id],['id'=> $permohonan->debiture->id]))->with('success', 'Permohonan created successfully, Lengkapi data jaminan terlebih dahulu'); + } + return redirect() ->route('permohonan.index')->with('success', 'Permohonan updated successfully'); } catch (Exception $e) { @@ -265,7 +275,7 @@ } // Retrieve data from the database - $query = Permohonan::query(); + $query = Permohonan::query()->with('documents')->has('documents', '>', 0)->where('status', '=', 'order'); // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { @@ -304,7 +314,7 @@ $filteredRecords = $query->count(); // Get the data for the current page - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->where('status', '=', 'order')->get( + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get( ); // Calculate the page count diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 3f85357..f3a4db8 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -16,6 +16,16 @@

+
+ +
+

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

+
+