Files
webstatement/app/Models/Teller.php
Daeng Deni Mardaeni e511025307 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>
2025-05-21 22:01:31 +07:00

118 lines
3.0 KiB
PHP

<?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'
];
}