From 6bd8b77d87b0196c95d35541c042abd346224bf4 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 11 Jul 2025 09:08:40 +0700 Subject: [PATCH] feat(webstatement): optimasi struktur penyimpanan PDF statement Perubahan yang dilakukan: - Mengubah logika penyimpanan file ke dalam struktur direktori berdasarkan branch_code. - Memperbarui metode downloadFromStorage untuk menyesuaikan perubahan struktur direktori. - Menyederhanakan nama file PDF dengan menghapus prefix "statement". - Menambahkan relasi branch dalam proses account_number untuk mengambil branch_code. - Menghilangkan potensi inkonsistensi struktur penyimpanan yang sebelumnya bergantung pada account_number. Tujuan perubahan: - Meningkatkan keteraturan struktur direktori file untuk mempermudah pengelolaan storage. - Memastikan file statement tersimpan secara konsisten berdasarkan cabang dan periode. - Menyederhanakan penamaan file agar lebih bersih tanpa mengorbankan informasi penting. --- app/Http/Controllers/PrintStatementController.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/PrintStatementController.php b/app/Http/Controllers/PrintStatementController.php index 0cba913..dbc89cd 100644 --- a/app/Http/Controllers/PrintStatementController.php +++ b/app/Http/Controllers/PrintStatementController.php @@ -293,7 +293,7 @@ ini_set('max_execution_time', 300000); } if($statement->is_generated){ - return $this->generated($statement->id); + return $this->downloadFromStorage($statement->account_number,$statement->period_from); } DB::beginTransaction(); @@ -887,6 +887,7 @@ ini_set('max_execution_time', 300000); public function generated($id){ try { $statement = PrintStatementLog::find($id); + $account = Account::where('account_number',$statement->account_number)->first(); DB::beginTransaction(); @@ -898,7 +899,7 @@ ini_set('max_execution_time', 300000); $filename = $this->generatePdfFileName($norek, $period); // Tentukan path storage - $storagePath = "statements/{$period}/{$norek}"; + $storagePath = "statements/{$period}/{$statement->branch_code}"; $fullStoragePath = "{$storagePath}/{$filename}"; // Pastikan direktori storage ada @@ -1095,7 +1096,7 @@ ini_set('max_execution_time', 300000); protected function generatePdfFileName($norek, $period) { try { - $filename = "statement_{$norek}_{$period}.pdf"; + $filename = "{$norek}_{$period}.pdf"; Log::info('Generated PDF filename', [ 'account_number' => $norek, @@ -1200,7 +1201,9 @@ ini_set('max_execution_time', 300000); $filename = $this->generatePdfFileName($norek, $period); } - $storagePath = "statements/{$period}/{$norek}/{$filename}"; + $account = Account::where('account_number',$norek)->first(); + + $storagePath = "statements/{$period}/{$account->branch_code}/{$filename}"; // Cek apakah file ada di storage if (!Storage::disk('local')->exists($storagePath)) {