From 4c1163fa05239d4af8730b98d71c6cba2a172ee2 Mon Sep 17 00:00:00 2001 From: daengdeni Date: Tue, 27 May 2025 15:52:24 +0700 Subject: [PATCH] refactor(export-statement): improve narrative generation logic - Mengubah tipe variable `$narr` dari string menjadi array untuk mempermudah pengelolaan elemen-elemen narasi. - Menambahkan elemen narasi ke dalam array menggunakan metode `array_push` alih-alih concatenation dengan string. - Menggunakan `array_filter` untuk memastikan semua elemen yang bernilai kosong tidak ikut ke dalam hasil akhir. - Mengganti `trim` dengan `implode` untuk menggabungkan elemen narasi menjadi string dengan separator spasi. - Memperbaiki fallback logic saat properti transaksional tidak ada, lebih rapi dan terstruktur pada skenario `else if ($item->narrativ)`. - Penggunaan logika baru memastikan bahwa narasi lebih fleksibel dan tidak menghasilkan karakter-karakter string kosong yang tidak diperlukan di output akhir. --- app/Jobs/ExportStatementJob.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/Jobs/ExportStatementJob.php b/app/Jobs/ExportStatementJob.php index 013d800..9601616 100644 --- a/app/Jobs/ExportStatementJob.php +++ b/app/Jobs/ExportStatementJob.php @@ -197,26 +197,27 @@ */ private function generateNarrative($item) { - $narr = ''; + $narr = []; - // Check if transaction exists before accessing its properties if ($item->transaction) { - if ($item->transaction->narr_type) { - $narr .= $item->transaction->stmt_narr . ' '; - $narr .= $this->getFormatNarrative($item->transaction->narr_type, $item); - } else { - $narr .= $item->transaction->stmt_narr . ' '; + if ($item->transaction->stmt_narr) { + $narr[] = $item->transaction->stmt_narr; } - } else { - // Fallback description if transaction is null - $narr .= ''; + if ($item->narrativ) { + $narr[] = $item->narrativ; + } + if ($item->transaction->narr_type) { + $narr[] = $this->getFormatNarrative($item->transaction->narr_type, $item); + } + } else if ($item->narrativ) { + $narr[] = $item->narrativ; } if ($item->ft?->recipt_no) { - $narr .= 'Receipt No: ' . $item->ft->recipt_no; + $narr[] = 'Receipt No: ' . $item->ft->recipt_no; } - return trim($narr); + return implode(' ', array_filter($narr)); } /**