Files
webstatement/module.json
Daeng Deni Mardaeni 9199a4d748 feat(webstatement): tambahkan fitur monitoring dan peningkatan pengiriman email statement
- **Perbaikan dan Penambahan Komando:**
  - Memberikan komando baru `webstatement:check-progress` untuk memantau progres pengiriman email statement.
    - Menampilkan informasi seperti `Log ID`, `Batch ID`, `Request Type`, status, hingga persentase progress.
    - Menangani secara detail jumlah akun yang diproses, sukses, gagal, dan kalkulasi tingkat keberhasilan.
    - Menyediakan penanganan error jika log tidak ditemukan atau terjadi kegagalan lainnya.
  - Memperluas komando `webstatement:send-email`:
    - Mendukung pengiriman berdasarkan `single account`, `branch`, atau `all branches`.
    - Menambahkan validasi parameter `type` (`single`, `branch`, `all`) dan input spesifik seperti `--account` atau `--branch` untuk mode tertentu.
    - Melakukan pencatatan log awal dengan metadata lengkap seperti `request_type`, `batch_id`, dan status.

- **Peningkatan Logika Proses Backend:**
  - Menambahkan fungsi `createLogEntry` untuk mencatat log pengiriman email statement secara dinamis berdasarkan tipe request.
  - Menyediakan reusable method seperti `validateParameters` dan `determineRequestTypeAndTarget` untuk mempermudah pengelolaan parameter pengiriman.
  - Memberikan feedback dan panduan kepada pengguna mengenai ID log dan komando monitoring (`webstatement:check-progress`).

- **Penambahan Controller dan Fitur UI:**
  - Menambahkan controller baru `EmailStatementLogController`:
    - Mendukung pengelolaan log seperti list, detail, dan retry untuk pengiriman ulang email statement.
    - Menyediakan fitur pencarian, filter, dan halaman data log yang responsif menggunakan datatable.
    - Menambahkan kemampuan resend email untuk log dengan status `completed` atau `failed`.
  - Mengimplementasikan UI untuk log pengiriman:
    - Halaman daftar monitoring dengan filter berdasarkan branch, account number, request type, status, dan tanggal.
    - Menampilkan kemajuan, tingkat keberhasilan, serta tombol aksi seperti detail dan pengiriman ulang.

- **Peningkatan Model dan Validasi:**
  - Menyesuaikan model `PrintStatementLog` untuk mendukung lebih banyak atribut seperti `processed_accounts`, `success_count`, `failed_count`, `request_type`, serta metode utilitas seperti `getProgressPercentage()` dan `getSuccessRate()`.
  - Memvalidasi parameter input lebih mendalam agar kesalahan dapat diminimalisasi di awal proses.

- **Peningkatan pada View dan Feedback Pengguna:**
  - Menambah daftar command berguna untuk user di interface log:
    - Status antrian dengan `php artisan queue:work`.
    - Monitoring menggunakan komando custom yang baru ditambahkan.

- **Perbaikan Logging dan Error Handling:**
  - Menambahkan logging komprehensif pada semua proses, termasuk batch pengiriman ulang.
  - Memastikan rollback pada database jika terjadi error melalui transaksi pada critical path.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-06-11 09:57:09 +07:00

154 lines
4.8 KiB
JSON

{
"name": "Webstatement",
"alias": "webstatement",
"database": "",
"description": "",
"keywords": [],
"priority": 0,
"providers": [
"Modules\\Webstatement\\Providers\\WebstatementServiceProvider"
],
"files": [],
"menu": {
"main": [
{
"title": "Create Periode",
"path": "periode-statements",
"icon": "ki-filled ki-calendar text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator"
]
},
{
"title": "Statement",
"path": "statements",
"icon": "ki-filled ki-printer text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator"
]
},
{
"title": "Kartu ATM",
"path": "kartu-atm",
"icon": "ki-filled ki-credit-cart text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator"
]
},
{
"title": "Nasabah",
"path": "customer",
"icon": "ki-filled ki-people text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": []
},
{
"title": "Email Blast",
"path": "emailblast",
"icon": "ki-filled ki-sms text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": []
}
],
"laporan": [
{
"title": "Laporan Transaksi ATM",
"path": "atm-reports",
"icon": "ki-filled ki-printer text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator"
]
}
],
"master": [
{
"title": "Basic Data",
"path": "basicdata",
"icon": "ki-filled ki-category text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin"
],
"sub": [
{
"title": "Jenis Kartu",
"path": "jenis-kartu",
"icon": "ki-filled ki-category text-lg",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator"
]
}
]
},
{
"title": "Pesan Sponsor",
"path": "migrasi",
"icon": "ki-filled ki-category text-lg",
"classes": "",
"attributes": [],
"permission": "",
"roles": []
}
],
"system": [
{
"title": "Logs",
"path": "logs",
"icon": "ki-filled ki-tablet-text-down text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator"
],
"sub": [
{
"title": "Log Biaya Kartu",
"path": "sync-logs",
"icon": "ki-filled ki-credit-cart text-lg",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator"
]
},
{
"title": "Log Email Statement",
"path": "email-statement-logs",
"icon": "ki-filled ki-message-text-2 text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator"
]
}
]
}
]
}
}