4 Commits

Author SHA1 Message Date
Daeng Deni Mardaeni
55313fb0b0 feat(webstatement): tambahkan fitur retry dengan handling timeout pada laporan transaksi ATM
- Memperbarui logika retry pada `AtmTransactionReportController`:
  - Memperbolehkan retry jika status laporan adalah `failed`, `pending`, atau laporan dengan status `processing` yang telah melebihi batas waktu (1 jam).
  - Menambahkan atribut baru seperti `processing_hours` dan `is_processing_timeout` pada data untuk menampilkan informasi durasi proses dan flag timeout.
  - Mengubah status laporan menjadi `failed` jika melebihi batas waktu sebelum dilakukan retry.
  - Memperbarui error message untuk mencatat alasan timeout.

- Menambahkan metode baru `canRetry` pada controller:
  - Mengembalikan boolean jika laporan dapat di-retry berdasarkan status dan kondisi laporan.

- Memperbarui tampilan untuk bagian daftar laporan (`atm-reports/index.blade.php`):
  - Menambahkan tombol retry dengan warna yang disesuaikan (kuning/oranye untuk `failed`/`pending`, merah untuk timeout).
  - Memperbarui tampilan status laporan menjadi lebih informatif, termasuk keterangan durasi proses jika timeout.

- Memperbarui tampilan detail laporan (`atm-reports/show.blade.php`):
  - Menambahkan tombol retry dengan label tambahan "Retry (Timeout)" jika melebihi batas waktu proses.
  - Menampilkan informasi tambahan seperti waktu proses jika laporan dalam status `processing`.

- Menyediakan fungsi JavaScript baru `retryReport` untuk handling retry via AJAX:
  - Menyertakan konfirmasi sebelum retry.
  - Memperbarui tombol retry agar lebih reaktif terhadap perubahan status laporan.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-06-10 11:17:17 +07:00
Daeng Deni Mardaeni
8a7d4f351c feat(webstatement): tambahkan fitur retry laporan transaksi ATM
- Menambahkan method baru `retry` pada `AtmTransactionReportController` untuk memproses ulang laporan transaksi ATM:
  - Mengizinkan retry untuk laporan dengan status `failed` atau `pending`.
  - Mereset status laporan menjadi `processing` dan membersihkan informasi error sebelumnya.
  - Dispatch ulang job `GenerateAtmTransactionReportJob`.
  - Menambahkan mekanisme error handling dengan memperbarui status laporan jika terjadi kegagalan.

- Memperbarui view `atm-reports/index.blade.php`:
  - Menambahkan tombol `Retry Job` pada baris laporan dengan status `failed` atau `pending`.
  - Menyediakan fungsi JavaScript untuk memproses retry dengan AJAX:
    - Menampilkan konfirmasi sebelum retry.
    - Reload halaman setelah retry selesai.

- Memperbarui view `atm-reports/show.blade.php`:
  - Menambahkan tombol `Retry Job` untuk laporan dengan status `failed`, `pending`, atau `completed` yang kehilangan file.
  - Menampilkan form retry dalam pesan error jika file laporan tidak tersedia.

- Memperbarui routing pada `web.php`:
  - Menambahkan route baru `atm-reports.retry` untuk endpoint retry dengan HTTP POST.

- Mendaftarkan ulang command `GenerateAtmTransactionReport` pada provider:
  - Memastikan job untuk retry sudah terdaftar pada sistem.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-06-09 01:53:20 +07:00
Daeng Deni Mardaeni
f800c97a40 feat(webstatement): tambahkan halaman detail laporan transaksi ATM
- Menambahkan view `atm-reports/show.blade.php` untuk menampilkan detail laporan transaksi ATM:
  - Menampilkan informasi laporan seperti periode, tanggal laporan, status, dan status otorisasi.
  - Menyediakan informasi file laporan jika status selesai, seperti path, ukuran file, dan jumlah data.
  - Menampilkan pesan error jika status laporan gagal, termasuk pesan kesalahan detail.
  - Menampilkan status unduhan laporan beserta waktu unduhan jika sudah diunduh.

- Menambahkan informasi pengguna terkait:
  - Pihak yang membuat, memodifikasi, dan memberikan otorisasi laporan.
  - Metadata tambahan seperti IP address dan user agent.

- Menambahkan form otorisasi untuk laporan dengan status `pending authorization`:
  - Menyediakan opsi untuk `approve` atau `reject` laporan.
  - Menyertakan field remarks sebagai catatan keputusan otorisasi.

- Memasukkan elemen navigasi:
  - Tombol kembali ke daftar laporan.
  - Tombol unduh file laporan (jika tersedia).

- Menyertakan scripting tambahan untuk inisialisasi dinamika halaman menggunakan JavaScript.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-06-09 01:46:18 +07:00
Daeng Deni Mardaeni
8fa4b2ea9e feat(webstatement): tambahkan menu dan halaman untuk laporan transaksi ATM
- Menambahkan menu baru "Laporan Transaksi ATM" di file `module.json`:
  - Pengaturan path: `atm-reports`.
  - Ikon: `ki-filled ki-printer text-lg text-primary`.
  - Role akses hanya untuk `administrator`.

- Menambahkan breadcrumb untuk laporan transaksi ATM di file `breadcrumbs.php`:
  - Nama breadcrumb: `atm-reports.index`.
  - Nama tampilan: `Laporan Transaksi ATM`.
  - Mengarah ke route `atm-reports.index`.

- Menambahkan view halaman `atm-reports/index.blade.php`:
  - Form permintaan laporan transaksi ATM:
    - Input tanggal laporan.
    - Tombol submit laporan.
  - Tabel daftar laporan yang mendukung:
    - Pagination, filter, dan search.
    - Status laporan (`completed`, `processing`, `pending`, `failed`).
    - Status otorisasi (`approved`, `rejected`, `pending`).
    - Aksi: Lihat detail, unduh (jika selesai), dan hapus laporan (jika pending/failed).

- Menambahkan script handling untuk:
  - Delete laporan transaksi dengan modal konfirmasi menggunakan Swal.
  - Konfigurasi data datatable dengan sorting, pagination, dan API.

- Tujuan pembaruan:
  - Memberikan akses pengguna untuk mengelola laporan transaksi ATM melalui UI.
  - Memungkinkan permintaan, pelacakan, dan penghapusan laporan transaksi ATM secara mudah.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-06-08 23:45:05 +07:00