- **Penambahan Fitur**:
- Menambahkan metode baru `generateSingleAtmCardCsv` untuk membuat file CSV tunggal tanpa pemisahan cabang:
- Mencakup seluruh data kartu ATM yang memenuhi syarat.
- File diunggah ke SFTP tanpa direktori spesifik cabang.
- Implementasi command `UpdateAllAtmCardsCommand` untuk batch update:
- Dukungan konfigurasi parameter seperti batch size, ID log sinkronisasi, queue, filter, dan dry-run.
- **Optimasi Logging**:
- Logging rinci ditambahkan pada semua proses, termasuk:
- Generasi CSV tunggal.
- Proses upload CSV ke SFTP.
- Pembaruan atau pembuatan `KartuSyncLog` dalam batch processing.
- Progress dan status tiap batch.
- Error handling dengan detail informasi pada setiap exception.
- **Perbaikan dan Penyesuaian Job**:
- Penambahan `UpdateAllAtmCardsBatchJob` yang mengatur proses batch update:
- Mendukung operasi batch dengan pengaturan ukuran dan parameter filtering kartu.
- Pencatatan log progres secara dinamis dengan kalkulasi batch dan persentase.
- Menyusun delay antar job untuk performa yang lebih baik.
- Menyertakan validasi untuk sinkronisasi dan pembaruan data kartu ATM.
- **Refaktor Provider**:
- Pendaftaran command baru:
- `UpdateAllAtmCardsCommand` untuk batch update seluruh kartu ATM.
- Command disertakan dalam provider `WebstatementServiceProvider`.
- **Error Handling**:
- Peningkatan mekanisme rollback pada database saat error.
- Menambahkan notifikasi log `failure` apabila job gagal dijalankan.
- **Dokumentasi dan Komentar**:
- Menambahkan komentar mendetail pada setiap fungsi baru untuk penjelasan lebih baik.
- Mendokumentasikan seluruh proses dan perubahan pada job serta command baru terkait kartu ATM.
Perubahan ini meningkatkan efisiensi pengelolaan data kartu ATM, termasuk generasi CSV, proses batch, dan pengunggahan data ke SFTP.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan filter baru:
- Memastikan `product_code` tidak termasuk dalam daftar `6002`, `6004`, `6042`, dan `6031`.
- Menyaring data dengan kondisi branch tidak sama dengan `ID0019999`.
- Optimasi query:
- Filter tambahan bertujuan untuk mempersempit data hasil pengambilan sehingga lebih relevan dan efisien dalam pembuatan file CSV.
- Peningkatan validasi:
- Memastikan data yang diekspor sesuai dengan ketentuan baru guna meningkatkan akurasi laporan biaya kartu.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
Menambahkan parameter "branch" untuk mendukung upload file CSV ke direktori SFTP berdasarkan cabang. Perubahan ini mencakup:
- Memodifikasi fungsi `uploadToSftpKartu` agar menerima parameter cabang untuk menentukan direktori tujuan di SFTP.
- Membuat log upload yang lebih spesifik untuk setiap cabang berdasarkan parameter "branch".
- Memastikan direktori cabang pada SFTP dibuat jika belum ada.
- Menyesuaikan fungsi `updateSftpLogSuccess` untuk mencatat log keberhasilan berdasarkan cabang.
- Mengupdate log pembuatan dan upload CSV agar mencantumkan informasi cabang.
- Menyesuaikan format log `updateCsvLogSuccess` untuk menangani pembuatan file CSV untuk beberapa cabang.
Perubahan ini memastikan fleksibilitas dan akuntabilitas dalam mengelola file CSV biaya kartu per cabang.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan logika untuk membagi kartu ATM berdasarkan cabang menggunakan `groupBy`.
- Memperbarui pembuatan nama file CSV agar mencakup informasi cabang dan timestamp.
- Menyesuaikan proses pembuatan dan penulisan file CSV agar mendukung pemrosesan kartu per cabang.
- Menambahkan validasi untuk memastikan file CSV dapat dibuat sebelum proses penulisan.
- Memisahkan dan membersihkan file CSV untuk setiap cabang setelah selesai diproses.
- Memodifikasi proses pengunggahan file ke SFTP dengan parameter cabang.
- Mengganti struktur output fungsi `generateAtmCardCsv` menjadi array dengan rincian:
- Nama cabang (`branch`).
- Lokasi file CSV yang dihasilkan (`localFilePath`).
- Jumlah kartu yang diproses per cabang (`recordCount`).
- Status pengunggahan ke SFTP (`uploadToSftp`).
- Tanggal dan waktu proses (`timestamp`).
Perubahan ini bertujuan meningkatkan fleksibilitas dan efisiensi dalam pengelolaan file CSV berdasarkan cabang, serta memudahkan pelacakan hasil proses per cabang.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan kondisi filter `where('flag', '')` pada query di fungsi BiayaKartu untuk memastikan data yang diproses hanya kartu dengan flag kosong.
- Melakukan penyesuaian yang sama pada query terkait di fungsi GenerateBiayaKartuCsvJob untuk konsistensi logika filter.
- Perubahan ini bertujuan untuk menyaring data yang lebih spesifik sesuai kebutuhan, menghindari pengolahan kartu dengan flag yang tidak sesuai.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Mengubah konversi konstanta MAX_EXECUTION_TIME menjadi properti.
- Memindahkan dan merapikan fungsi-fungsi `updateCsvLogStart`, `updateCsvLogSuccess`, dan `updateCsvLogFailed` untuk meningkatkan keterbacaan.
- Mengubah format deklarasi fungsi untuk konsistensi dalam penggunaan tipe data return.
- Memperbaiki logika pengambilan file info pada proses pembuatan dan pengunggahan CSV.
- Menambahkan logging yang lebih terstruktur untuk setiap proses (mulai, sukses, gagal).
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
Penambahan dan perubahan:
- Tambah model `KartuSyncLog` untuk mencatat status sinkronisasi, pembuatan CSV, dan upload SFTP.
- Implementasi logging status sinkronisasi di `BiayaKartu`:
- Logging status saat sinkronisasi dimulai, berhasil, atau gagal.
- Statistik sinkronisasi mencakup jumlah data total, sukses, dan gagal.
- Catatan progres sinkronisasi secara periodik.
- Update proses CSV di `GenerateBiayaKartuCsvJob`:
- Pembuatan log untuk status pembuatan CSV dan upload ke SFTP.
- Kanalisasi dan pembaruan log saat pembuatan atau upload dimulai, berhasil, atau gagal.
- Random delay untuk job update branch dan currency dimodifikasi menggunakan ID log sinkronisasi.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- 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>
- 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>
- Mengubah referensi tabel database dari 'IST77.VW_CMS_VCARD' menjadi 'IST77.CMS_VCARD'.
- Menambahkan join dengan tabel 'IST77.CMS_VCARDTYP' berdasarkan kolom 'CRTYPE'.
- Memperbaiki urutan logika pengecekan 'getExistingCard' untuk menghindari konflik data.
- Mengubah nilai default pada GenerateBiayaKartuCsvJob dari 'AC' menjadi 'ACAT'.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Mengubah `CSV_FILENAME` dari konstanta menjadi properti untuk memungkinkan konfigurasi lebih fleksibel.
- Menambahkan `csvFilename` yang diinisialisasi melalui nilai environment `BIAYA_KARTU_CSV_FILENAME` dengan default `biaya_kartu_atm.csv`.
- Memperbarui referensi dari `self::CSV_FILENAME` menjadi `$this->csvFilename` pada proses penulisan file CSV.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambah fungsi `uploadToSftpKartu` untuk mengunggah file CSV ke server SFTP.
- Memperbarui fungsi `generateAtmCardCsv` agar mengembalikan informasi terkait file yang dihasilkan dan status upload.
- Log ditingkatkan untuk mencatat status upload dan error secara lebih rinci.
- Menambahkan mekanisme pengecekan dan logging jika upload ke SFTP gagal, file tetap tersedia secara lokal.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan job `GenerateBiayaKartuCsvJob` dengan kemampuan untuk membuat file CSV berisi data biaya kartu ATM.
- File CSV dihasilkan berdasarkan data kartu ATM yang memenuhi kriteria tertentu dari database.
- Penentuan biaya kartu berdasarkan jenis kartu atau nilai default jika tidak ada biaya spesifik.
- Melakukan pembersihan isi file CSV untuk menghapus tanda kutip ganda.
- Logging disertakan untuk mencatat keberhasilan atau kegagalan proses.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>