feat(webstatement): improve CSV generation and database handling

- Tambahkan date-time pada penamaan file CSV untuk meningkatkan traceability.
- Perubahan konstanta nama tabel database dari 'IST77.VW_CMS_VCARD' menjadi 'IST77.CMS_VCARD'.
- Ubah nilai batch size dari 100 menjadi 1000 untuk meningkatkan efisiensi proses.
- Tambahkan join dengan tabel 'IST77.CMS_VCARDTYP' untuk mendapatkan data tambahan pada query database.
- Tambahkan select fields yang lebih lengkap pada query database untuk kebutuhan data yang lebih spesifik.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-05-10 13:19:39 +07:00
parent 68cfb9fb2c
commit 1a62bda959
2 changed files with 13 additions and 3 deletions

View File

@@ -19,8 +19,8 @@ class BiayaKartu implements ShouldQueue
/**
* Database constants
*/
private const DB_TABLE = 'IST77.VW_CMS_VCARD';
private const BATCH_SIZE = 100;
private const DB_TABLE = 'IST77.CMS_VCARD';
private const BATCH_SIZE = 1000;
private const MAX_EXECUTION_TIME = 86400; // 24 jam dalam detik
/**
@@ -74,6 +74,8 @@ class BiayaKartu implements ShouldQueue
{
return DB::connection('oracle')
->table(self::DB_TABLE)
->select('CRDNO', 'ACCFLAG', 'CRACC1', 'CRACC2', 'CRACC3', 'CRACC4', 'CRACC5', 'CRACCNAM1', 'CRACCNAM2', 'CRACCNAM3', 'CRACCNAM4', 'CRACCNAM5', 'CRSTS','CTTYPE','CTDESC','CRDATE','LAST_UPDATE')
->join('IST77.CMS_VCARDTYP', 'IST77.CMS_VCARD.CRTYPE', '=','IST77.CMS_VCARD.CTTYPE')
->where('crsts', 1)
->whereNotNull('ACCFLAG')
->where('ACCFLAG', '>', 0)

View File

@@ -76,7 +76,15 @@
: array
{
$cards = $this->getEligibleAtmCards();
$filename = storage_path('app/' . $this->csvFilename);
//$filename = storage_path('app/' . $this->csvFilename);
// Add date-time to filename
$dateTime = now()->format('Ymd_Hi');
$filenameWithDate = pathinfo($this->csvFilename, PATHINFO_FILENAME) .
'_' . $dateTime . '.' .
pathinfo($this->csvFilename, PATHINFO_EXTENSION);
$filename = storage_path('app/' . $filenameWithDate);
$handle = fopen($filename, 'w+');
if (!$handle) {