feat(webstatement): tambahkan fitur proses data teller
- Menambahkan job baru `ProcessTellerDataJob` untuk memproses data teller dari file CSV. - Membuat controller method `ProcessTellerData` di `MigrasiController` untuk dispatch job `ProcessTellerDataJob`. - Menambahkan model baru `Teller` yang merepresentasikan data teller dengan kolom sesuai header map pada CSV. - Menambahkan migrasi `2025_05_21_144332_create_tellers_table.php` untuk membuat tabel database `tellers` dengan struktur data lengkap. - Menambahkan logika pada job untuk membaca, memproses, dan menyimpan data CSV ke dalam database. - Menyediakan mekanisme pemrosesan file CSV termasuk: - Validasi jumlah kolom pada CSV jika tidak sesuai dengan header. - Membuat dan menghapus file sementara selama pemrosesan. - Mapping data CSV ke atribut model `Teller`. - Penanganan error saat menyimpan data ke model `Teller`. - Logging proses meliputi jumlah data yang diproses dan error selama jalannya job. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
117
app/Models/Teller.php
Normal file
117
app/Models/Teller.php
Normal file
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Webstatement\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class Teller extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = [
|
||||
'id_teller',
|
||||
'account_1',
|
||||
'currency_1',
|
||||
'amount_local_1',
|
||||
'value_date_1',
|
||||
'account_2',
|
||||
'new_cust_bal',
|
||||
'term_type',
|
||||
'term_id',
|
||||
'trans_reff',
|
||||
'card_no',
|
||||
'recipt_no',
|
||||
'transaction_code',
|
||||
'date_time',
|
||||
'record_status',
|
||||
'amount_local_2',
|
||||
'co_code',
|
||||
'narrative_1',
|
||||
'wic_flag',
|
||||
'wic_cust_type',
|
||||
'wic_full_name',
|
||||
'wic_alias_name',
|
||||
'wic_acct_no',
|
||||
'wic_id_type',
|
||||
'wic_id_no',
|
||||
'wic_npwp',
|
||||
'wic_nationality',
|
||||
'wic_ind_birthpl',
|
||||
'wic_ind_birthdt',
|
||||
'wic_address_id',
|
||||
'wic_address_cur',
|
||||
'wic_city',
|
||||
'wic_province',
|
||||
'wic_post_code',
|
||||
'wic_phone',
|
||||
'wic_gender',
|
||||
'wic_marital_sts',
|
||||
'wic_occptn',
|
||||
'wic_occptn_dur',
|
||||
'wic_income_avg',
|
||||
'wic_cor_name',
|
||||
'wic_cor_address',
|
||||
'wic_cor_phone',
|
||||
'wic_cor_lgl_typ',
|
||||
'wic_cor_lic_no',
|
||||
'wic_cor_birthpl',
|
||||
'wic_cor_birthdt',
|
||||
'wic_cor_rel',
|
||||
'wic_party_rel',
|
||||
'wic_amount',
|
||||
'wic_amount_type',
|
||||
'wic_amtbnk_name',
|
||||
'wic_amtbnk_cunm',
|
||||
'wic_fund_source',
|
||||
'wic_fund_use',
|
||||
'dr_cr_marker',
|
||||
'charge_code',
|
||||
'chrg_amt_local',
|
||||
'charge_category',
|
||||
'charge_account',
|
||||
'amount_fcy_1',
|
||||
'rate_1',
|
||||
'deal_rate',
|
||||
'l_wic_id',
|
||||
'account_1_co_code',
|
||||
'account_2_co_code',
|
||||
'l_charge_amt',
|
||||
'bl_cust_no',
|
||||
'stmt_no',
|
||||
'bil_customer',
|
||||
'value_date_2',
|
||||
'cheq_type',
|
||||
'cheque_number',
|
||||
'inputter',
|
||||
'authoriser',
|
||||
'bil_product',
|
||||
'fx_document',
|
||||
'fx_purpose',
|
||||
'narrative_2',
|
||||
'customer_2',
|
||||
'l_sms_1',
|
||||
'l_phone_1',
|
||||
'kyc_incom_rng',
|
||||
'wic_rt',
|
||||
'wic_rw',
|
||||
'ktp_kelurahan',
|
||||
'ktp_kecamatan',
|
||||
'ktp_provinsi',
|
||||
'wic_jenis_kelam',
|
||||
'kyc_sumber_dana',
|
||||
'l_manual_risk',
|
||||
'l_slip_no',
|
||||
'dest_bank_id',
|
||||
'dr_narrative',
|
||||
'inter_type',
|
||||
'l_va_number',
|
||||
'inter_bank_id',
|
||||
'term_narr',
|
||||
'currency_2',
|
||||
'amount_fcy_2',
|
||||
'rate_2',
|
||||
'customer_1',
|
||||
'last_version'
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user