diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index e33d1c4..2ae5384 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -17,6 +17,7 @@ use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\JenisLegalitasJaminan; use Modules\Lpj\Models\PemilikJaminan; + use ZipArchive; class DokumenJaminanController extends Controller { @@ -274,6 +275,45 @@ } } + public function bulkDownload() + { + $dokumenIds = request()->get('jaminan'); // Expecting an array of dokumen_jaminan_id + $documents = DetailDokumenJaminan::where('dokumen_jaminan_id', $dokumenIds)->get(); + if ($documents->isEmpty()) { + return redirect()->back()->with('error', 'No documents found for the provided IDs.'); + } + + $zip = new ZipArchive; + $zipFileName = 'documents_jaminan_' . $dokumenIds . '.zip'; + $zipFilePath = storage_path('app/public/' . $zipFileName); + + if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) { + foreach ($documents as $document) { + $filePath = storage_path('app/public/' . $document->dokumen_jaminan); + if (file_exists($filePath)) { + $zip->addFile($filePath, basename($filePath)); + } else { + // Log or display an error message for missing files + return redirect()->back()->with('error', 'File not found: ' . $filePath); + } + } + $zip->close(); + + if (!file_exists($zipFilePath)) { + return redirect()->back()->with('error', 'Failed to create ZIP file.'); + } + } else { + return redirect()->back()->with('error', 'Failed to create ZIP file.'); + } + + return response()->download($zipFilePath, $zipFileName, [ + 'Content-Type' => 'application/zip', + 'Content-Disposition' => 'attachment; filename="' . $zipFileName . '"', + 'Content-Length' => filesize($zipFilePath), + ])->deleteFileAfterSend(false); + } + + public function download() { $dokumen = request()->get('dokumen'); diff --git a/app/Http/Requests/PermohonanRequest.php b/app/Http/Requests/PermohonanRequest.php index 868498f..8d6ef20 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|default:order', + 'status' => 'required|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/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php new file mode 100644 index 0000000..66005fb --- /dev/null +++ b/resources/views/component/detail-jaminan.blade.php @@ -0,0 +1,123 @@ +