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.
This commit is contained in:
Daeng Deni Mardaeni
2025-07-11 09:08:40 +07:00
parent efabba4c39
commit 6bd8b77d87

View File

@@ -293,7 +293,7 @@ ini_set('max_execution_time', 300000);
} }
if($statement->is_generated){ if($statement->is_generated){
return $this->generated($statement->id); return $this->downloadFromStorage($statement->account_number,$statement->period_from);
} }
DB::beginTransaction(); DB::beginTransaction();
@@ -887,6 +887,7 @@ ini_set('max_execution_time', 300000);
public function generated($id){ public function generated($id){
try { try {
$statement = PrintStatementLog::find($id); $statement = PrintStatementLog::find($id);
$account = Account::where('account_number',$statement->account_number)->first();
DB::beginTransaction(); DB::beginTransaction();
@@ -898,7 +899,7 @@ ini_set('max_execution_time', 300000);
$filename = $this->generatePdfFileName($norek, $period); $filename = $this->generatePdfFileName($norek, $period);
// Tentukan path storage // Tentukan path storage
$storagePath = "statements/{$period}/{$norek}"; $storagePath = "statements/{$period}/{$statement->branch_code}";
$fullStoragePath = "{$storagePath}/{$filename}"; $fullStoragePath = "{$storagePath}/{$filename}";
// Pastikan direktori storage ada // Pastikan direktori storage ada
@@ -1095,7 +1096,7 @@ ini_set('max_execution_time', 300000);
protected function generatePdfFileName($norek, $period) protected function generatePdfFileName($norek, $period)
{ {
try { try {
$filename = "statement_{$norek}_{$period}.pdf"; $filename = "{$norek}_{$period}.pdf";
Log::info('Generated PDF filename', [ Log::info('Generated PDF filename', [
'account_number' => $norek, 'account_number' => $norek,
@@ -1200,7 +1201,9 @@ ini_set('max_execution_time', 300000);
$filename = $this->generatePdfFileName($norek, $period); $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 // Cek apakah file ada di storage
if (!Storage::disk('local')->exists($storagePath)) { if (!Storage::disk('local')->exists($storagePath)) {