fix(webstatement): optimalkan proses pembersihan data dan update balance

Melakukan perbaikan serta optimisasi pada proses pembersihan data dan pengolahan saldo akun.

Perubahan utama:
- **ProcessStmtEntryDataJob**:
    - Mengganti `str_replace` dengan `preg_replace` untuk pembersihan `trans_reference`, sehingga lebih fleksibel dalam menghapus karakter setelah `\` (termasuk keseluruhan pattern yang lebih kompleks).
    - Mengevaluasi penghapusan potensi substring logic yang tidak digunakan, memperkuat pembersihan menjadi lebih konsisten.
- **ProcessAccountDataJob**:
    - Mengganti penggunaan `firstOrNew` dan `save` dengan `updateOrInsert` untuk mengurangi jumlah query ke database.
    - Menambahkan pembuatan data `created_at` dan `updated_at` untuk memastikan data yang di-update memiliki timestamp konsisten.
    - Menjamin default value pada `actual_balance` dan `cleared_balance` apabila data masukan kosong agar sistem tetap dapat berjalan tanpa error.

Perubahan ini dilakukan untuk meningkatkan efisiensi proses pengolahan data, mengurangi overhead query, serta memastikan data yang diproses tetap konsisten dan lebih aman.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-05-26 08:28:28 +07:00
parent e531193c06
commit 429df7035c
2 changed files with 23 additions and 10 deletions

View File

@@ -73,7 +73,13 @@
if ($data['stmt_entry_id'] !== 'stmt_entry_id') {
// Bersihkan trans_reference dari \\BNK jika ada
if (isset($data['trans_reference'])) {
$data['trans_reference'] = str_replace('\\BNK', '', $data['trans_reference']);
$cleanedRef = preg_replace('/\\\\.*$/', '', $data['trans_reference']);
//$firstTwoChars = substr($cleanedRef, 0, 2);
/*$data['trans_reference'] = (in_array($firstTwoChars, ['FT', 'TT','AA']))
? substr($cleanedRef, 0, 12)
: $cleanedRef;*/
$data['trans_reference'] = $cleanedRef;
}
StmtEntry::updateOrCreate(