refactor(webstatement): ubah pengelolaan default biaya kartu

- Pindahkan pengelolaan default biaya kartu dari konstanta dalam job ke metode `JenisKartu::getDefaultFees`.
- Tambahkan metode `getDefaultFees` pada model `JenisKartu` untuk mengambil data biaya kartu dari database.
- Sesuaikan job `GenerateBiayaKartuCsvJob` agar menggunakan data biaya kartu dari metode `getDefaultFees`.
- Hapus konstanta `DEFAULT_FEES` dan ganti penggunaannya dengan data dari database.
- Tingkatkan fleksibilitas pengambilan data biaya kartu untuk mendukung perubahan data secara dinamis.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-05-10 10:51:28 +07:00
parent 496d7f58c7
commit ec99361833
2 changed files with 30 additions and 10 deletions

View File

@@ -11,19 +11,12 @@
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Modules\Webstatement\Models\Atmcard;
use Modules\Webstatement\Models\JenisKartu;
use RuntimeException;
class GenerateBiayaKartuCsvJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private const DEFAULT_FEES = [
'CLASSIC' => 3000,
'CLAS' => 3000,
'SILVER' => 5000,
'SILV' => 5000,
'GOLD' => 10000
];
// Changed from const to property
private $csvFilename;
@@ -35,6 +28,17 @@
$this->csvFilename = env('BIAYA_KARTU_CSV_FILENAME', 'biaya_kartu_atm.csv');
}
/**
* Get default fees from JenisKartu table
*
* @return array
*/
private function getDefaultFees(): array
{
return JenisKartu::getDefaultFees();
}
/**
* Execute the job.
*/
@@ -109,6 +113,8 @@
*/
private function getEligibleAtmCards()
{
$cardTypes = array_keys($this->getDefaultFees());
return Atmcard::where('crsts', 1)
->whereNotNull('accflag')
->where('accflag', '!=', '')
@@ -116,7 +122,7 @@
->where('branch', '!=', '')
->whereNotNull('currency')
->where('currency', '!=', '')
->whereIn('ctdesc', array_keys(self::DEFAULT_FEES))
->whereIn('ctdesc', $cardTypes)
->get();
}
@@ -134,7 +140,8 @@
return $card->fee;
}
return self::DEFAULT_FEES[$card->ctdesc] ?? 0;
$defaultFees = $this->getDefaultFees();
return $defaultFees[$card->ctdesc] ?? 0;
}
/**

View File

@@ -19,4 +19,17 @@ class JenisKartu extends Base
'deleted_by',
'authorized_by',
];
public static function getDefaultFees(): array
{
$fees = [];
$jenisKartu = self::all();
foreach ($jenisKartu as $kartu) {
$fees[$kartu->code] = $kartu->biaya;
}
return $fees;
}
}