diff --git a/app/Jobs/GenerateBiayaKartuCsvJob.php b/app/Jobs/GenerateBiayaKartuCsvJob.php index 5413bf1..9650d18 100644 --- a/app/Jobs/GenerateBiayaKartuCsvJob.php +++ b/app/Jobs/GenerateBiayaKartuCsvJob.php @@ -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; } /** diff --git a/app/Models/JenisKartu.php b/app/Models/JenisKartu.php index d37382c..96c7732 100644 --- a/app/Models/JenisKartu.php +++ b/app/Models/JenisKartu.php @@ -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; + } + }