- Menambahkan job `ProcessAtmTransactionJob` untuk memproses data transaksi ATM dari file CSV.
- Implementasi pemrosesan file CSV termasuk pembacaan, pemetaan header, dan simpan data ke model.
- Menyediakan logging untuk pemantauan jumlah data yang diproses dan jumlah error.
- Menambahkan mekanisme penanganan error pada setiap proses baris dan file.
- Menambahkan model `AtmTransaction`:
- Mendeklarasikan atribut yang bisa diisi (`fillable`) seperti `transaction_id`, `txn_amount`, dan lainnya.
- Mendefinisikan tipe data casting untuk beberapa atribut seperti `txn_amount` dalam tipe decimal dan `booking_date` dalam tipe datetime.
- Menambahkan migration `2025_05_21_150736_create_atm_transactions_table` untuk tabel `atm_transactions`:
- Tabel memiliki kolom seperti `transaction_id`, `txn_amount`, `booking_date`, dan indeks untuk kolom tertentu.
- Meng-handle struktur kolom untuk mendukung atribut yang diperlukan di model.
- Memperbarui `MigrasiController`:
- Menambahkan fungsi `ProcessAtmTransaction` untuk menjadwalkan `ProcessAtmTransactionJob`.
- Memperbaiki pesan response pada beberapa fungsi agar lebih deskriptif dan konsisten.
- Memperbarui pemanggilan fungsi dari `__invoke` di bagian pemrosesan data (`ProcessAtmTransaction`) untuk period tertentu.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- 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>
- Menambahkan `ProcessCategoryDataJob` untuk memproses data kategori dari file CSV yang diambil melalui SFTP.
- Membuat model `Category` dengan atribut-atribut:
- `id_category`
- `date_time`
- `description`
- `short_name`
- `system_ind`
- `record_status`
- `co_code`
- `curr_no`
- `l_db_cr_ind`
- `category_code`
- Menambahkan endpoint baru `ProcessCategoryData` di `MigrasiController` untuk memanggil job pemrosesan data kategori.
- Menambahkan migrasi untuk membuat tabel `categories` dengan kolom-kolom yang relevan.
- Memperbaiki bug pada `ProcessStmtEntryDataJob` dengan menambahkan validasi khusus untuk menghindari pemrosesan baris header yang tidak valid.
- Menghapus pemanggilan job yang tidak diperlukan di `MigrasiController`.
- Mengupdate logika pemrosesan file untuk memastikan integritas data dalam job kategori.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- 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>
- 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>
- Menghapus duplikasi `Schema::create` dalam fungsi `up()` di file migrasi.
- Memastikan struktur tabel `ft_txn_type_condition` dihasilkan dengan benar tanpa deklarasi berulang.
- Tidak ada perubahan struktur tabel selain penghapusan kode yang redundan.
- Peningkatan keterbacaan dan pengurangan kemungkinan error karena kode yang berulang.
- Tidak ada dampak pada data atau fungsionalitas yang telah ada.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
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>
- 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>
- 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>
- 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.
- Tambahkan kolom province, city, district, village, dan postal_code pada tabel customers.
- Ganti nama kolom customer_no menjadi customer_code pada tabel accounts.
- Menambahkan model EmailBlastHistory untuk menyimpan informasi riwayat email blast.
- Membuat migrasi untuk tabel email_blast_histories dengan kolom subject, content, recipients_count, dan status.
- Menambahkan model StmtEntry untuk mengelola data entri pernyataan.
- Membuat migrasi untuk tabel stmt_entry dengan kolom yang diperlukan.
- Menyediakan relasi dengan model Account melalui kolom account_number.
- Menambahkan kelas ProcessStmtEntryDataJob untuk memproses file CSV yang berisi data entry statement.
- Membuat model TempStmtEntry untuk menyimpan data entry statement ke dalam database.
- Menambahkan migrasi untuk membuat tabel temp_stmt_entry dengan kolom yang sesuai.
- Menambahkan kelas ProcessStmtNarrFormatDataJob untuk memproses file CSV.
- Menambahkan model TempStmtNarrFormat untuk menyimpan data format narasi.
- Membuat migrasi untuk tabel temp_stmt_narr_format dengan atribut yang diperlukan.
- Menambahkan kelas ProcessStmtNarrParamDataJob untuk memproses file CSV.
- Membuat model TempStmtNarrParam untuk menyimpan data parameter narasi.
- Menambahkan migrasi untuk membuat tabel temp_stmt_narr_param di database.
- Menambahkan kelas ProcessFundsTransferDataJob untuk memproses file CSV transfer dana.
- Membuat migrasi untuk tabel temp_funds_transfer dengan berbagai field yang diperlukan.
- Menangani kesalahan saat membaca file dan mencatat kesalahan ke log.
- Menambahkan job `ProcessTransactionDataJob` untuk memproses file CSV transaksi.
- Membuat model `TempTransaction` untuk menyimpan data transaksi sementara.
- Menambahkan migrasi untuk tabel `temp_transactions` dengan atribut yang diperlukan.
- Menambahkan kelas ProcessAccountDataJob untuk memproses data akun dari file CSV.
- Mengimplementasikan logika untuk membaca file dan memperbarui atau membuat entri di tabel TempAccount.
- Menangani kesalahan dan mencatat log jika terjadi masalah saat memproses data.
- Menambahkan migrasi untuk membuat tabel temp_accounts dengan kolom yang diperlukan.
- Menambahkan kelas ProcessCustomerDataJob untuk memproses file CSV cusromer.
- Menggunakan metode updateOrCreate untuk menyimpan atau memperbarui data customer.
- Menangani pengecualian jika file tidak ditemukan atau tidak dapat dibuka.
- Mengatur batas waktu eksekusi job menjadi 24 jam.
- Menambahkan file migrasi untuk tabel temp_accounts.
- Menggunakan array untuk mendefinisikan field tabel.
- Menyediakan fungsi untuk membuat dan menghapus tabel.
- Menambahkan tabel 'temp_bill_details' ke dalam database.
- Tabel ini mencakup kolom untuk menyimpan informasi terkait tagihan, termasuk ID, referensi pembayaran, jumlah pembayaran, dan status tagihan.
- Menyediakan fungsi untuk membuat dan menghapus tabel melalui migrasi.
- Menambahkan file migrasi untuk tabel temp_customers.
- Menggunakan array field untuk mendefinisikan kolom tabel.
- Menyediakan fungsi untuk membuat dan menghapus tabel.