refactor(webstatement): split generateReportData dan dukung closing balance per group akun

- Refactor generateReportData jadi fungsi kecil (query builder, selector, row builder)
- Tambah dukungan multi group akun (DEFAULT, QRIS) pada closing balance job
- Pisahkan akun QRIS dan sesuaikan struktur dispatch dan account list
- Tingkatkan maintainability, scalability, dan clarity proses
This commit is contained in:
Daeng Deni Mardaeni
2025-07-24 09:30:13 +07:00
parent 80c866f646
commit eb89916b1c
2 changed files with 122 additions and 76 deletions

View File

@@ -64,16 +64,6 @@ class GenerateClosingBalanceReportBulkCommand extends Command
'IDR1354400010001',
'IDR1728500010001',
'IDR1728600010001',
'IDR1354500010001',
'IDR1354500020001',
'IDR1354500030001',
'IDR1354500040001',
'IDR1354500050001',
'IDR1354500060001',
'IDR1354500070001',
'IDR1354500080001',
'IDR1354500090001',
'IDR1354500100001',
'IDR1720500010001',
'1078333878',
'1081647484',
@@ -89,6 +79,19 @@ class GenerateClosingBalanceReportBulkCommand extends Command
'IDR1354200010001'
];
private $qrisAccount = [
'IDR1354500010001',
'IDR1354500020001',
'IDR1354500030001',
'IDR1354500040001',
'IDR1354500050001',
'IDR1354500060001',
'IDR1354500070001',
'IDR1354500080001',
'IDR1354500090001',
'IDR1354500100001',
];
/**
* Execute the console command.
* Menjalankan proses generate laporan closing balance untuk banyak rekening dengan periode range
@@ -281,7 +284,7 @@ class GenerateClosingBalanceReportBulkCommand extends Command
}
// Jika tidak ada parameter accounts, gunakan default list
$accountList = ['DEFAULT' => $this->defaultAccounts];
$accountList = ['DEFAULT' => $this->defaultAccounts, 'QRIS' => $this->qrisAccount];
// Filter by client jika ada (untuk backward compatibility)
if ($clientFilter) {
@@ -378,7 +381,7 @@ class GenerateClosingBalanceReportBulkCommand extends Command
}
// Dispatch the job
GenerateClosingBalanceReportJob::dispatch($accountNumber, $period, $reportLog->id);
GenerateClosingBalanceReportJob::dispatch($accountNumber, $period, $reportLog->id, $groupName);
DB::commit();