Commit Graph

5 Commits

Author SHA1 Message Date
daengdeni
a3f2244fee refactor(webstatement): simplify and enhance statement export process
- Menghapus logika dan kode terkait pengunduhan, pembuatan, dan pengelolaan file statement yang berlebihan.
- Menambahkan fungsi `listAccount` untuk mendapatkan daftar nomor akun secara langsung.
- Menambahkan fungsi `listPeriod` untuk mengatur daftar periode yang digunakan dalam proses.
- Menambahkan fungsi `getAccountBalance` untuk mengakses saldo akun berdasarkan nomor akun dan periode.
- Mengubah metode `index` menjadi lebih modular, menggunakan fungsi tambahan untuk menyederhanakan pembuatan data dan queue statement.
- Menyederhanakan tanggapan JSON untuk pesan keberhasilan pengajuan job export.
- Mengimpor model `AccountBalance` yang diperlukan untuk fungsi baru.
2025-05-24 08:59:20 +07:00
daengdeni
eab14ff1e1 feat(webstatement): support batch processing for export statement jobs
- Ubah data menjadi array untuk memungkinkan pemrosesan batch.
- Tambahkan loop untuk memproses setiap data entry dan mendispatch job secara individual.
- Simpan job id dari setiap job yang didispatch ke array `jobIds`.
- Update respons JSON untuk mencantumkan daftar job yang telah didispatch:
  - Tambahkan informasi `job_id`, `account_number`, `period`, dan `file_name` untuk setiap job.
- Memperbaiki pesan respons agar sesuai dengan perubahan proses yang mendukung banyak job.
2025-05-22 11:55:32 +07:00
Daeng Deni Mardaeni
04f6f02702 feat(webstatement): tambahkan fitur eksport dan download statement
Penambahan fitur untuk mendukung proses eksport dan download statement secara dinamis. Fitur ini mencakup:
- Penambahan `ExportStatementJob` untuk menjadwalkan proses eksport statement dalam bentuk file CSV ke dalam queue.
- Penambahan endpoint untuk:
  1. `index`: Menjadwalkan pekerjaan eksport ke dalam queue.
  2. `generateAndDownload`: Proses pembuatan statement secara langsung dan mengunduh hasilnya.
  3. `downloadStatement`: Mendukung pengunduhan file statement yang telah dibuat sebelumnya.
  4. `queueExport`: Menambahkan job eksport ke queue dengan ID job yang dirilis.
  5. `checkExportStatus`: Memastikan status job apakah sedang berjalan, selesai, atau tidak ditemukan.
- Refactoring fitur narrative generator untuk mendukung format dinamis berdasarkan konfigurasi database dengan parsing format.
- Refactoring data transformation untuk memastikan urutan dan perhitungan running balance sebelum dieksport.
- Penggunaan storage lokal untuk menyimpan hasil file CSV, dan implementasi header respons yang benar untuk file unduhan.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-22 09:03:34 +07:00
daengdeni
3c061f40f7 feat(webstatement): enhance statement generation and add narrative formatting logic
- Menambahkan logika baru untuk menghasilkan data statement dalam format JSON dan CSV.
- Memuat data transaksi statement menggunakan model `StmtEntry` dengan relasi `ft` dan `transaction`.
- Mengimplementasikan proses mapping data untuk:
  - Penambahan urutan nomor (sequential numbering).
  - Format tanggal transaksi menggunakan properti `booking_date` dan `date_time`.
  - Klasifikasi jenis transaksi (debit atau kredit).
  - Perhitungan running balance.
  - Pembangkitan narrative deskripsi transaksi.
- Menambahkan fungsi `generateNarrative` untuk menghasilkan deskripsi transaksi berdasarkan logika parameter dinamis.
- Menggunakan model `TempStmtNarrFormat` dan `TempStmtNarrParam` untuk format dan parameter narrative.
- Menambahkan fungsi `getFormatNarrative` untuk mem-parsing format narrative dan memasukkan placeholder value sesuai data transaksi.
- Fungsi `getTransaction` ditambahkan sebagai fallback untuk mengambil field secara spesifik dari transaksi.
- Menyediakan opsi data dalam format CSV menggunakan stream response dengan pemisah data berupa pipe (`|`).
- Menambahkan route baru pada `/` untuk mengakses controller `WebstatementController` dan fungsionalitas ini di route `webstatement.index`.
2025-05-21 21:18:40 +07:00
Daeng Deni Mardaeni
a7ec87c995 initial commits 2024-10-28 10:24:57 +07:00