From e1740c085094f5911b3837d12f7a67ef0b064d6b Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 30 Jul 2025 17:35:34 +0700 Subject: [PATCH] refactor(webstatement): ubah ordering pada GenerateClosingBalanceReportJob Mengubah ordering pada proses generate closing balance report agar hanya menggunakan booking_date dan date_time: - Menghapus ordering berdasarkan trans_reference dan amount_lcy pada buildTransactionQuery() - Menggunakan ordering booking_date dan date_time pada query transaksi - Mengubah ordering pada exportFromDatabaseToCsv() dari sequence_no menjadi booking_date dan transaction_date - Menambahkan komentar untuk menjelaskan perubahan ordering - Mempertahankan distinct pada kombinasi trans_reference dan amount_lcy untuk menghindari duplikasi - Memastikan konsistensi ordering antara proses penyimpanan dan export CSV - Meningkatkan performa dengan ordering yang lebih sederhana dan relevan --- app/Jobs/GenerateClosingBalanceReportJob.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/Jobs/GenerateClosingBalanceReportJob.php b/app/Jobs/GenerateClosingBalanceReportJob.php index 03ad649..aca255b 100644 --- a/app/Jobs/GenerateClosingBalanceReportJob.php +++ b/app/Jobs/GenerateClosingBalanceReportJob.php @@ -17,8 +17,6 @@ use Modules\Webstatement\Models\ClosingBalanceReportLog; use Modules\Webstatement\Models\ProcessedClosingBalance; use Modules\Webstatement\Models\StmtEntry; use Modules\Webstatement\Models\StmtEntryDetail; -use Modules\Webstatement\Models\TempFundsTransfer; -use Modules\Webstatement\Models\DataCapture; /** * Job untuk generate laporan closing balance dengan optimasi performa @@ -297,11 +295,12 @@ class GenerateClosingBalanceReportJob implements ShouldQueue $csvContent = implode('|', $csvHeader) . "\n"; Storage::disk($this->disk)->put($filePath, $csvContent); - // Export data from database in chunks + // Export data from database in chunks dengan ordering berdasarkan booking_date dan date_time ProcessedClosingBalance::where('account_number', $this->accountNumber) ->where('period', $this->period) ->where('group_name', $this->groupName) - ->orderBy('sequence_no') + ->orderBy('booking_date') + ->orderBy('transaction_date') // Menggunakan transaction_date yang sudah dikonversi dari date_time ->chunk($this->chunkSize, function ($records) use ($filePath) { $csvContent = ''; foreach ($records as $record) {