Commit Graph

77 Commits

Author SHA1 Message Date
Daeng Deni Mardaeni
39e356e2ff refactor(webstatement): update data processing and migration logic
- Menonaktifkan pemanggilan fungsi-fungsi yang tidak diperlukan untuk data processing di `MigrasiController`:
  - `processTransactionData`, `processStmtNarrFormatData`, `processAccountData`, dan `ProcessCompanyData`.
- Mengubah argumen di beberapa pemanggilan fungsi untuk data processing agar lebih spesifik ke periode tertentu:
  - Mengganti `$periods` menjadi `['20250512']` untuk `processArrangementData`, `processBillDetailData`, `processFundsTransferData`, dan `processStmtEntryData`.
- Memodifikasi logika skipping folder `_parameter` pada `ProcessFtTxnTypeConditionJob` dengan mengomentari proses pengecekan.
- Mengubah delimiter `fgetcsv` pada `ProcessBillDetailDataJob` dari `;` menjadi `~`.
- Menambahkan file migrasi baru untuk mengubah tipe kolom pada tabel `temp_fund_transfer`:
  - Mengubah semua kolom pada tabel menjadi tipe `text` untuk mendukung data yang lebih besar.
  - Menyediakan metode `down` untuk rollback tipe data kembali ke `string`.

Perubahan ini bertujuan untuk meningkatkan efisiensi proses data, mendukung fleksibilitas data lebih besar pada migrasi database, serta membuka jalan untuk refaktor atau penghapusan fungsi yang tidak digunakan.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-21 08:17:47 +07:00
Daeng Deni Mardaeni
fb6fd534d5 feat(webstatement): tambah fitur pemrosesan data "Data Capture"
- Menambahkan fungsi baru `ProcessDataCaptureData` di `MigrasiController` untuk menjadwalkan pemrosesan data "Data Capture".
- Menambahkan job baru `ProcessDataCaptureDataJob`:
  - Mengambil data "Data Capture" dari file CSV melalui SFTP.
  - Memproses dan menyimpan data ke database dengan validasi dan logging.
  - Mendukung operasi pembaruan (update) atau pembuatan (insert) data menggunakan Eloquent `updateOrCreate`.
- Menambahkan model baru `DataCapture`:
  - Memetakan data ke tabel `data_captures` di database.
  - Mendukung properti `fillable` dan `casts` untuk format data yang valid, termasuk konversi nilai decimal dan tanggal.
- Menambahkan migrasi baru `create_data_captures_table` untuk membuat tabel `data_captures`:
  - Mendefinisikan semua kolom sesuai kebutuhan data "Data Capture".
  - Menetapkan tipe data yang relevan seperti decimal, date, dan datetime.
- Memperbarui metode `migrasiAll` di `MigrasiController` untuk memanggil fungsi pemrosesan baru `ProcessDataCaptureData`.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-20 22:15:44 +07:00
Daeng Deni Mardaeni
359cfea905 feat(webstatement): tambahkan proses data company
Menambahkan fungsi baru dan job baru untuk memproses data perusahaan (Company Data) dari file CSV.

Detail perubahan:
- Menambahkan import `ProcessCompanyDataJob` pada `MigrasiController`.
- Menambahkan fungsi `ProcessCompanyData` di `MigrasiController` untuk memanggil job pemrosesan data perusahaan.
- Mengintegrasikan pemrosesan data perusahaan ke dalam alur fungsi `processData()` di `MigrasiController`.
- Membuat job baru `ProcessCompanyDataJob` untuk membaca dan memproses file `ST.COMPANY.csv`.
  - Job memproses file dari SFTP `sftpStatement` berdasarkan folder `periods`.
  - Ditambahkan validasi file, mapping data CSV ke model `Branch`, dan menyimpan atau memperbarui data ke database.
  - Penanganan error untuk pencatatan log pada kasus file tidak ditemukan, kesalahan kolom, atau error saat menyimpan data.
- Melakukan perubahan nama file default untuk job `ProcessFtTxnTypeConditionJob` dari `TXN_TYPE_CONDITION.csv` menjadi `ST.FT.TXN.TYPE.CONDITION.csv`.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-20 22:06:25 +07:00
Daeng Deni Mardaeni
24700c5bd8 feat(webstatement): tambahkan proses pengolahan data FtTxnTypeCondition
- Menambahkan method `ProcessFtTxnTypeConditioData` pada `MigrasiController` untuk memproses data FtTxnTypeCondition melalui dispatching job baru.
- Menambahkan job baru `ProcessFtTxnTypeConditionJob` untuk mengelola dan memproses data TxnTypeCondition dari file `TXN_TYPE_CONDITION.csv`:
  - Membaca file CSV melalui SFTP dengan validasi header dan struktur kolom.
  - Menggunakan model `FtTxnTypeCondition` untuk menyimpan atau memperbarui data ke database.
  - Menambahkan logging untuk memberikan informasi dan menangani pengecualian/error selama proses.
- Menambahkan model `FtTxnTypeCondition` untuk representasi data `ft_txn_type_condition` di database:
  - Tabel memiliki atribut seperti `id`, `date_time`, `transaction_type`, `short_descr`, `txn_code_cr`, dan `txn_code_dr`.
  - Mengatur primary key pada atribut `id` dengan tipe string dan non-incremental.
- Menambahkan migrasi untuk tabel `ft_txn_type_condition`:
  - Menyediakan kolom utama yang diperlukan dengan tipe data sesuai kebutuhan, termasuk `softDelete`.
  - Kolom primary key `id` dengan tipe `string`.
- Memodifikasi proses migrasi utama untuk memanggil method `ProcessFtTxnTypeConditioData`.
- Menangani folder `_parameter` sebagai folder yang diabaikan dalam proses.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-20 21:38:27 +07:00
Daeng Deni Mardaeni
713c2b1e12 feat(webstatement): tambahkan fitur untuk mengelola saldo pembukaan akun
Menambahkan kolom `open_actual_bal` dan `open_cleared_bal` ke model Account untuk mendukung pencatatan saldo pembukaan.

Detail perubahan:
- Menambahkan properti `open_actual_bal` ke dalam array `$fillable` pada model Account.
- Menambahkan properti `open_cleared_bal` ke dalam array `$fillable` pada model Account.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-20 21:20:06 +07:00
daengdeni
fb47064dd4 refactor(data-processing): adjust data processing logic and update file handling
- Nonaktifkan pengecekan folder `_parameter` di berbagai job untuk memungkinkan pemrosesan file pada folder ini.
- Ubah logika konstruksi nama file di job `ProcessTransactionDataJob` agar tidak lagi menyertakan nama folder periode.
- Sesuaikan pola nama file pada job `ProcessStmtNarrParamDataJob` dan `ProcessStmtNarrFormatDataJob` untuk menghapus ketergantungan pada nama folder periode.
- Tambahkan pemanggilan fungsi `processTransactionData`, `processStmtNarrParamData`, dan `processStmtNarrFormatData` secara eksplisit dengan argumen folder `_parameter` di `MigrasiController`.
- Batasi pemrosesan data customer dan akun hanya pada periode tertentu (`20250519`) di `MigrasiController`.
- Hapus pemanggilan beberapa fungsi proses data lain di `MigrasiController` untuk periode umum.
- Perubahan ini bertujuan untuk meningkatkan fleksibilitas dan mengakomodasi kebutuhan pemrosesan data secara spesifik.
2025-05-20 17:18:20 +07:00
Daeng Deni Mardaeni
c442b27dad feat(webstatement): optimalkan proses migrasi data SFTP
- Menambahkan parameter `$periods` untuk mendukung proses dinamis berdasarkan folder periode dalam SFTP.
- Memperkenalkan penggunaan `Storage::disk('sftpStatement')` untuk membaca file dari SFTP.
- Menyortir folder periode secara menurun berdasarkan tanggal.
- Memproses tiap entitas data (Customer, Account, Arrangement, Bill Details, dll.) berdasarkan file dalam folder periode.
- Menambah log untuk mencatat jumlah proses yang berhasil, baris error, dan peringatan tentang ketidaksesuaian jumlah kolom.
- Menyisipkan mekanisme untuk mengabaikan folder `_parameter`.
- Mengubah pendekatan dari membaca file lokal menjadi menggunakan file sementara (temp).
- Memperbaiki bug pada metode yang sebelumnya menggunakan jalur file statis.
- Memastikan penanganan file CSV yang lebih fleksibel, termasuk kasus di mana jumlah kolom dalam baris melebihi ekspektasi.
- Menambah error handling untuk mencatat baris-baris bermasalah dan menghindari interupsi proses.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-20 16:44:59 +07:00
Daeng Deni Mardaeni
7bb320d718 feat(webstatement): tambah dukungan upload SFTP per cabang
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>
2025-05-17 16:48:57 +07:00
Daeng Deni Mardaeni
795c90a229 feat(webstatement): perbarui proses pembuatan dan pengunggahan file CSV per cabang
- 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>
2025-05-17 16:47:57 +07:00
Daeng Deni Mardaeni
c35731c92f fix(webstatement): tambahkan filter where 'flag' pada query Atmcard di BiayaKartu dan GenerateBiayaKartuCsvJob
- 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>
2025-05-15 20:55:17 +07:00
Daeng Deni Mardaeni
427d1291f8 feat(webstatement): tambah fitur pengiriman statement ke email
- Menambahkan kolom `email` dan `email_sent_at` pada tabel `print_statement_logs`.
- Menambah endpoint baru untuk mengirim statement via email (`/send-email`).
- Mengupdate form request untuk validasi email pada `PrintStatementRequest`.
- Menambah logika pengiriman email dengan menggunakan `Mailable` (`StatementEmail`).
- Memvalidasi ketersediaan file statement sebelum dikirimkan via email.
- Menambahkan tombol baru pada tampilan frontend untuk opsi `Send to Email`.
- Mengupdate file zip untuk pengiriman email ketika ada statement dalam rentang waktu.
- Refaktor dan perbaikan minor pada kode terkait check statement availability.
- Menyesuaikan title menu pada `module.json` dari "Periode Statement" ke "Create Periode" dan "Print Statement" ke "Statement".

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-13 16:44:22 +07:00
Daeng Deni Mardaeni
8e5c2ce79e feat(webstatement): update print statement functionalities
- Menambahkan kolom `remarks` pada tabel print_statement_logs untuk menyimpan catatan tambahan.
- Mengubah validasi periode pada `PrintStatementRequest` untuk mencegah request duplikasi periode.
- Memperbaiki tampilan di `statements.index` dan `statements.show` agar lebih responsif dan informatif.
- Mengubah logika download statement untuk mendukung file range periode dalam format zip.
- Menambahkan logika cek file statement berdasarkan ketersediaan file di storage SFTP.
- Menghapus file legacy `create.blade.php` yang tidak lagi digunakan.
- Menyesuaikan ikon menu dari `calendar` ke `printer` agar lebih relevan.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-13 14:01:41 +07:00
Daeng Deni Mardaeni
823ccf0fe7 refactor(webstatement): improve ATM card sync logic and error handling
- Update filter untuk query dengan kondisi tambahan pada `crsts` dan pengecualian jenis kartu tertentu.
- Refactor metode `scheduleUpdateBranchCurrencyJobs`:
  - Tambahkan batch process untuk penghematan memori.
  - Log tambahan untuk melacak progres yang lebih jelas.
  - Perbaikan logika penjadwalan job dengan penundaan (delay) dinamis.
  - Penanganan error yang lebih detail dan log pendukung untuk debugging.
- Perbaikan pada controller `KartuAtmController`:
  - Amankan akses properti menggunakan null-safe operator pada data biaya kartu.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-12 18:28:34 +07:00
Daeng Deni Mardaeni
eaa847e7e7 feat(webstatement): tambah fitur request dan pengelolaan print statement
- Tambah menu baru untuk "Print Statement" di konfigurasi module.
- Tambah route baru untuk pengelolaan statement seperti list, download, otorisasi, dan datatables.
- Implementasi `PrintStatementController` untuk operasi terkait request dan manajemen statement.
- Implementasi model `PrintStatementLog` untuk mencatat log request statement, termasuk validasi dan relasi yang dibutuhkan.
- Tambah form request `PrintStatementRequest` untuk validasi input.
- Tambah migration untuk tabel `print_statement_logs` yang menyimpan rekaman log statement.
- Tambah halaman blade untuk index dan form request statement.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-11 18:15:21 +07:00
Daeng Deni Mardaeni
012d1629c9 refactor(webstatement): perbaikan struktur dan penyempurnaan kode pada GenerateBiayaKartuCsvJob
- 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>
2025-05-11 17:14:08 +07:00
Daeng Deni Mardaeni
7df50b5141 feat(webstatement): implement periode statement management feature
- Menambahkan menu "Periode Statement" pada module.json dengan akses untuk role administrator.
- Menambahkan model `PeriodeStatement` dengan fitur tracking user dan scoped query.
- Menyediakan controller `PeriodeStatementController` dengan fungsi CRUD, otorisasi, proses, ekspor data ke Excel, dan datatables.
- Menambahkan request validation melalui `PeriodeStatementRequest`.
- Menyediakan view untuk list, create, edit, dan otorisasi periode statement.
- Menambahkan routing termasuk resource routes dan breadcrumbs untuk mendukung fitur ini.
- Menambahkan migrasi database `periode_statements` dengan kolom untuk menyimpan data periode, status, otorisasi, serta metadata.
- Fitur ini memungkinkan pengelolaan dan pemrosesan periode statement secara terstruktur dan aman.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-11 15:58:49 +07:00
Daeng Deni Mardaeni
204675716b feat(webstatement): refactor job sinkronisasi BiayaKartu
- Mengubah pelaksanaan scheduling delayed job untuk UpdateAtmCardBranchCurrencyJob.
- Memperbarui logging untuk proses sinkronisasi kartu ATM.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-11 14:46:16 +07:00
Daeng Deni Mardaeni
f899fed8a7 refactor(webstatement): perbarui logika filter dan pencarian untuk SyncLogs
- Mengubah logika pengambilan nilai filter pencarian dari `request` menjadi format JSON terstruktur.
- Menambahkan validasi untuk memastikan hanya filter yang memiliki nilai diterapkan.
- Memperbaiki logika filter di frontend dengan menggabungkan parameter pencarian dan filter lainnya sebelum mengirimkannya.
- Mengganti metode `setRequestParams` di frontend menjadi `search` untuk pengiriman parameter pencarian yang lebih terstruktur.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-10 16:26:10 +07:00
Daeng Deni Mardaeni
404085f2e7 feat(sync-log): tambahkan integrasi log sinkronisasi untuk BiayaKartu dan GenerateBiayaKartuCsvJob
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>
2025-05-10 15:59:21 +07:00
Daeng Deni Mardaeni
e1a0167c78 feat(sync-logs): tambahkan fitur download file CSV
- Tambahkan tombol download file di modal detail sinkronisasi.
- Implementasikan pengecekan dan mekanisme download file di `SyncLogsController`.
- Tambahkan route baru untuk mendukung proses download file.
- Perbarui tampilan dan logika modal untuk mendukung fitur download.
- Pastikan validasi file sebelum proses download dan berikan pesan error jika file tidak ditemukan.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-10 15:36:16 +07:00
Daeng Deni Mardaeni
e1e52f78fb ```
feat(sync-logs): tambah fitur sinkronisasi log biaya kartu

- Menambahkan route, controller, model, dan migration untuk fitur baru `sync-logs`.
- Mengganti referensi `BiayaKartuController` menjadi `SyncLogsController`.
- Menyediakan halaman untuk menampilkan data log sinkronisasi dengan filter, pencarian, dan pagination.
- Menambahkan kemampuan melihat detail proses sinkronisasi langsung dari modal.
- Memperbarui `module.json` dengan item menu baru untuk fitur log sinkronisasi.
- Menghapus `BiayaKartuController` yang sudah tidak digunakan lagi.
```

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-10 15:12:56 +07:00
Daeng Deni Mardaeni
1a62bda959 feat(webstatement): improve CSV generation and database handling
- 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>
2025-05-10 13:19:39 +07:00
Daeng Deni Mardaeni
68cfb9fb2c feat(webstatement): tambahkan fitur pengelolaan kartu ATM
- Tambahkan menu "Kartu ATM" pada konfigurasi menu module.
- Implementasi controller `KartuAtmController` dengan fungsi `index` dan `dataForDatatables`.
- Tambahkan route untuk pengelolaan "Kartu ATM" termasuk datatables.
- Tambahkan model relasi `biaya` pada model `Atmcard`.
- Tambahkan view halaman daftar kartu ATM dengan fitur datatables.
- Tambahkan breadcrumbs untuk halaman "Kartu ATM".

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-10 13:18:46 +07:00
Daeng Deni Mardaeni
ec99361833 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>
2025-05-10 10:51:28 +07:00
Daeng Deni Mardaeni
496d7f58c7 feat(webstatement): tambah fitur manajemen Jenis Kartu
- Menambahkan model, migrasi, seed, controller, request, dan tampilan untuk fitur Jenis Kartu.
- Menambahkan routing dan breadcrumbs untuk Jenis Kartu.
- Mengimplementasikan fungsi CRUD, ekspor data ke Excel, dan penghapusan multiple records pada Jenis Kartu.
- Memperbarui `module.json` untuk menampilkan menu Jenis Kartu di bagian Master.
- Menambah seeder untuk data awal Jenis Kartu.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-10 10:47:10 +07:00
Daeng Deni Mardaeni
df097a279f refactor(webstatement): optimalkan sinkronisasi dan pembaruan data kartu ATM
- Menghapus dependensi yang tidak digunakan untuk memperingkas kode.
- Memisahkan logika pembaruan branch dan currency menjadi job terpisah `UpdateAtmCardBranchCurrencyJob`.
- Menambahkan penjadwalan job untuk pembaruan branch dan currency setelah sinkronisasi kartu selesai.
- Mengubah query database untuk sinkronisasi kartu menjadi lebih sederhana.
- Menambahkan binding `UpdateAtmCardBranchCurrencyJob` di service provider.

Refactor ini meningkatkan readability dan modularitas kode dengan memisahkan tanggung jawab tiap proses.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-09 15:42:18 +07:00
Daeng Deni Mardaeni
cfde23457f fix(webstatement): update database table references and join logic
- 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>
2025-05-09 15:04:42 +07:00
Daeng Deni Mardaeni
7bbf8b64d7 feat(webstatement): tambah scheduler untuk GenerateBiayaKartuCsvCommand
- Menambahkan command `GenerateBiayaKartuCsvCommand` ke dalam ServiceProvider.
- Memperbaiki typo pada pemanggilan job `GenerateBiayaKartuCsvJob`.
- Menambahkan konfigurasi scheduler untuk `GenerateBiayaKartuCsvCommand` dengan nilai default dari file `.env`.
- Menyesuaikan log output file scheduler pada perintah yang baru.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-09 11:26:24 +07:00
Daeng Deni Mardaeni
94847b704e refactor(webstatement): ubah konstanta CSV_FILENAME menjadi properti dinamis
- 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>
2025-05-09 09:50:25 +07:00
Daeng Deni Mardaeni
47ad46f664 feat(webstatement): tambahkan fitur upload CSV biaya kartu ATM ke SFTP
- 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>
2025-05-09 09:48:38 +07:00
Daeng Deni Mardaeni
d4ef7280ce feat(webstatement): tambahkan command dan job untuk generate CSV biaya kartu ATM
- Tambahkan `GenerateBiayaKartuCsvCommand` untuk membuat file CSV biaya kartu ATM melalui console command.
- Implementasikan job `GenerateBiayaKartuCsvJob` sebagai pengganti proses manual pembuatan CSV di controller.
- Hapus logika pembuatan CSV manual di `BiayaKartuController`.
- Update scheduler untuk menjalankan command baru (`webstatement:generate-biaya-kartu-csv`) setiap tanggal 15 pukul 00:00.
- Perbarui waktu schedule command `webstatement:generate-biaya-kartu` menjadi pukul 22:00 setiap tanggal 14.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-09 09:07:39 +07:00
Daeng Deni Mardaeni
de93c0d072 feat(webstatement): tambahkan job untuk generate file CSV biaya kartu ATM
- 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>
2025-05-09 09:02:15 +07:00
Daeng Deni Mardaeni
4a3c7085ce feat(webstatement): tambahkan command dan scheduler untuk generate biaya kartu ATM
- Menambahkan `GenerateBiayakartuCommand` untuk memproses biaya kartu ATM.
- Mendaftarkan command baru di `WebstatementServiceProvider`.
- Menjadwalkan command `webstatement:generate-biaya-kartu` pada tanggal 14 setiap bulan pukul 18:00.
- Menambahkan log output untuk scheduler ke file `biaya-kartu-scheduler.log`.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-09 08:53:52 +07:00
Daeng Deni Mardaeni
24a3c0c960 feat(webstatement): tambahkan validasi pada query BiayaKartuController
- Menambahkan validasi untuk memastikan field accflag, branch, dan currency tidak kosong pada query di BiayaKartuController.
- Memperbaiki pengaturan route dengan menambahkan BiayaKartuController ke dalam daftar import.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-08 17:37:46 +07:00
Daeng Deni Mardaeni
e3d92582e0 feat(webstatement): tambahkan fitur ekspor data kartu ATM ke CSV
- Menambahkan `BiayaKartuController` untuk mengelola data kartu ATM.
- Menyediakan endpoint baru `biaya-kartu.index` untuk mengunduh data kartu ATM dalam format CSV.
- Implementasi fungsi untuk:
  - Mengambil data kartu ATM yang memenuhi syarat dari database.
  - Menentukan biaya kartu berdasarkan tipe kartu.
  - Membuat file CSV dengan format khusus dan membersihkan konten dari tanda kutip ganda.
- Memodifikasi logika pembaruan data di `BiayaKartu.php` untuk memperbaiki penempatan pemanggilan fungsi `updateOrCreate`.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-08 17:20:52 +07:00
Daeng Deni Mardaeni
81157ee682 fix(webstatement): perbaiki validasi dan pembaruan data kartu
- Tambahkan validasi responseCode saat memperbarui branch dan currency kartu.
- Pastikan nilai branch dan currency tidak null sebelum pembaruan.
- Tambahkan field crdate saat membuat atau memperbarui data kartu.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-08 16:38:18 +07:00
Daeng Deni Mardaeni
0235f17b01 refactor(webstatement): optimalkan logika pembaruan kartu ATM
- Menambahkan metode untuk mendapatkan data dasar kartu (getCardBaseData).
- Menambahkan metode untuk memeriksa apakah pembaruan branch dan currency diperlukan (needBranchAndCurrencyUpdate).
- Menambahkan metode untuk memperbarui branch dan currency (updateBranchAndCurrency).
- Memisahkan logika menjadi fungsi-fungsi modular untuk meningkatkan keterbacaan dan pemeliharaan kode.
- Mengganti logika pembaruan kartu ATM untuk mendukung pembaruan selektif berdasarkan kebutuhan.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-08 16:23:43 +07:00
Daeng Deni Mardaeni
697966471a feat(webstatement): tambahkan kolom baru dan perbaiki kode job sinkronisasi ATM card
- Menambahkan kolom `crdate` pada tabel `atmcards` di database.
- Memperbaiki struktur dan penyesuaian format kode pada file `BiayaKartu.php`.
- Menyelaraskan alignment konstanta, parameter, dan body fungsi untuk meningkatkan keterbacaan.
- Menambahkan pengelolaan data `crdate` dalam proses sinkronisasi kartu ATM.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-08 16:13:09 +07:00
Daeng Deni Mardaeni
3c792429d4 refactor(webstatement): optimalkan proses sinkronisasi data kartu ATM
- Pisahkan logika sinkronisasi ke dalam metode-metode terpisah untuk meningkatkan keterbacaan kode.
- Tambahkan konstanta untuk API dan database guna mengurangi duplikasi kode.
- Ganti metode sinkronisasi kartu menjadi batch processing untuk efisiensi.
- Implementasikan logging pada berbagai titik untuk mempermudah debugging.
- Tambahkan penanganan error untuk proses batch sinkronisasi dan update data kartu.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-08 14:40:38 +07:00
daengdeni
ae520e406c feat(job): tambahkan fungsi untuk mendapatkan informasi akun
- Menambahkan metode getAccountInfo untuk mengambil informasi saldo akun dari layanan eksternal.
- Memperbarui metode syncAtmCards untuk menyertakan informasi cabang dan mata uang dari akun yang disinkronkan.
2025-05-08 11:54:08 +07:00
daengdeni
bd810389cd feat(atmcard): tambahkan model dan migrasi untuk tabel atmcards
- Menambahkan model Atmcard untuk mengelola data kartu ATM.
- Membuat migrasi untuk tabel atmcards dengan atribut yang diperlukan.
- Menambahkan job BiayaKartu untuk menyinkronkan data kartu dari database Oracle.
2025-05-08 11:20:06 +07:00
Daeng Deni Mardaeni
ca2619be9e feat(job): perbarui jalur file dan pemisah CSV pada ProcessArrangementDataJob
- Mengganti pemisah CSV dari ';' menjadi '~'.
- Menghapus pemeriksaan keberadaan data yang redundan.
2025-04-09 14:03:23 +07:00
Daeng Deni Mardaeni
0b7931b145 feat(job): perbarui jalur file dan pemisah CSV pada ProcessTransactionDataJob
- Memperbarui pemisah CSV dari ';' menjadi '~'.
- Menambahkan pengecekan untuk memastikan '_id' tidak sama dengan 'id' sebelum memperbarui atau membuat entri baru.
2025-04-09 13:56:11 +07:00
Daeng Deni Mardaeni
225ec85bad feat(job): perbarui jalur file dan pemisah CSV pada ProcessStmtNarrFormatDataJob
- Memperbarui pemisah CSV dari ';' menjadi '~'.
- Menambahkan pengecekan untuk memastikan '_id' tidak sama dengan 'id' sebelum melakukan update atau create.
2025-04-09 13:50:56 +07:00
Daeng Deni Mardaeni
8d3e6a21f2 feat(job): perbarui jalur file dan pemisah CSV pada ProcessStmtNarrParamDataJob
- Mengubah pemisah CSV dari ';' menjadi '~'.
- Menambahkan pengecekan untuk memastikan '_id' tidak sama dengan 'id' sebelum melakukan update atau create.
2025-04-09 13:48:47 +07:00
Daeng Deni Mardaeni
1924b7b6ab feat(customer): perbarui atribut yang dapat diisi pada model Customer
- Menambahkan atribut 'province', 'city', 'district', 'village', dan 'postal_code' ke dalam daftar $fillable.
- Memastikan model Customer dapat mengelola data tambahan yang relevan.
2025-04-09 13:39:23 +07:00
Daeng Deni Mardaeni
500cf2b26a feat(account): perbarui logika pemrosesan data akun
- Tambahkan pengecekan untuk memastikan 'account_number' tidak sama dengan string 'account_number' sebelum menyimpan data akun.
- Perbarui atribut yang dapat diisi pada model Account dengan mengganti 'customer_no' menjadi 'customer_code' dan 'co_code' menjadi 'branch_code'.
2025-04-09 13:39:16 +07:00
Daeng Deni Mardaeni
79c4aa1d39 feat(job): perbarui logika pemrosesan data customer
- Ganti model dari TempCustomer ke Customer untuk pemrosesan data.
- Perbarui jalur file CSV yang digunakan untuk pemrosesan.
- Tambahkan penanganan kesalahan untuk mencatat kesalahan saat memproses customer.
2025-04-08 18:56:57 +07:00
Daeng Deni Mardaeni
21fd3f1b99 feat(account): perbarui logika pemrosesan data akun
- Ganti penggunaan model TempAccount dengan Account.
- Perbarui jalur file CSV yang digunakan untuk pemrosesan.
- Tambahkan logika untuk mengatur nilai default untuk 'start_year_bal' dan 'closure_date'.
- Gunakan firstOrNew untuk menyimpan data akun.
2025-04-08 16:34:42 +07:00
Daeng Deni Mardaeni
ec56dcbc75 feat(email-blast): perbarui tampilan dan logika pengiriman email blast
- Tambahkan pengambilan data penerima dari model Customer.
- Modifikasi konstruktor EmailBlastMail untuk menerima objek penerima.
- Perbarui tampilan email blast untuk menampilkan subjek dan nama penerima.
- Tambahkan styling baru untuk tampilan email agar lebih menarik.
2025-02-18 21:35:51 +07:00