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
This commit is contained in:
@@ -17,8 +17,6 @@ use Modules\Webstatement\Models\ClosingBalanceReportLog;
|
|||||||
use Modules\Webstatement\Models\ProcessedClosingBalance;
|
use Modules\Webstatement\Models\ProcessedClosingBalance;
|
||||||
use Modules\Webstatement\Models\StmtEntry;
|
use Modules\Webstatement\Models\StmtEntry;
|
||||||
use Modules\Webstatement\Models\StmtEntryDetail;
|
use Modules\Webstatement\Models\StmtEntryDetail;
|
||||||
use Modules\Webstatement\Models\TempFundsTransfer;
|
|
||||||
use Modules\Webstatement\Models\DataCapture;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Job untuk generate laporan closing balance dengan optimasi performa
|
* Job untuk generate laporan closing balance dengan optimasi performa
|
||||||
@@ -297,11 +295,12 @@ class GenerateClosingBalanceReportJob implements ShouldQueue
|
|||||||
$csvContent = implode('|', $csvHeader) . "\n";
|
$csvContent = implode('|', $csvHeader) . "\n";
|
||||||
Storage::disk($this->disk)->put($filePath, $csvContent);
|
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)
|
ProcessedClosingBalance::where('account_number', $this->accountNumber)
|
||||||
->where('period', $this->period)
|
->where('period', $this->period)
|
||||||
->where('group_name', $this->groupName)
|
->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) {
|
->chunk($this->chunkSize, function ($records) use ($filePath) {
|
||||||
$csvContent = '';
|
$csvContent = '';
|
||||||
foreach ($records as $record) {
|
foreach ($records as $record) {
|
||||||
|
|||||||
Reference in New Issue
Block a user