- 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>
- 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>