d88f4a242e9a374d7a4beaccda746f76e6cd2d31
Perubahan yang dilakukan: - Menambahkan model `ProcessedClosingBalance` untuk menyimpan data sementara laporan closing balance - Membuat migration `processed_closing_balances` dengan 26 kolom dan index komposit untuk query optimal - Mengganti proses langsung ekspor ke CSV menjadi dua tahap: * Tahap 1: Proses dan simpan data ke DB secara bertahap melalui `processAndSaveClosingBalanceData()` * Tahap 2: Ekspor data dari DB ke CSV via `exportFromDatabaseToCsv()` - Menambahkan method: * `deleteExistingProcessedData()` untuk membersihkan data lama * `prepareProcessedClosingBalanceData()` untuk batch insert ke DB * `getProcessedRecordCount()` untuk monitoring progres - Mengoptimalkan memori dengan menghindari akumulasi data dalam array - Menambahkan DB transaction untuk menjamin konsistensi data selama proses - Logging diperluas agar progres lebih mudah dipantau - Menambahkan error handling untuk menangani kegagalan proses dengan aman Keuntungan: - Waktu proses menurun drastis dari 1+ jam menjadi beberapa menit - Skalabilitas meningkat — mampu menangani jutaan record tanpa memory overload - Data hasil olahan dapat diekspor ulang tanpa harus re-process - Pola kerja selaras dengan `ExportStatementJob` untuk konsistensi antar modul - Monitoring dan debugging lebih mudah melalui database dan log Catatan tambahan: - Tabel `processed_closing_balances` mendukung kolom `group_name` untuk segmentasi (QRIS/NON_QRIS) - Menggunakan tipe data numerik dengan presisi untuk nilai keuangan (`amount_lcy`, `balance`, dsb)
Description
No description provided
Languages
PHP
77.4%
Blade
22.6%