feat(webstatement): tambahkan fitur debugging untuk entri pernyataan

- Menambahkan **`DebugStatementController`** untuk mendukung fitur debugging entri pernyataan:
  - Fungsi `debugStatement` untuk menganalisis satu entri pernyataan berdasarkan `account_number`, `trans_reference`, dan `period` (opsional).
    - Melakukan validasi masukan dari permintaan.
    - Mengambil detail entri berdasarkan kriteria yang diberikan.
    - Menghasilkan `narrative`, informasi tanggal terformat, dan detail debug.
    - Memberikan detail data terkait seperti `ft` dan `transaction`.
    - Melakukan penanganan dan log error jika terjadi kegagalan proses.
  - Fungsi `listStatements` untuk mendapatkan daftar entri pernyataan berdasarkan kriteria tertentu.
    - Validasi dan dukungan parameter `account_number`, `period`, dan `limit`.
    - Pengurutan hasil berdasarkan `date_time` secara menurun.
    - Menampilkan hasil dalam format JSON termasuk jumlah total data.

- Menambahkan logika tambahan untuk:
  - Format tanggal transaksi dan tanggal aktual secara konsisten menggunakan `Carbon`.
  - Mendukung pembuatan `narrative` dengan data dari entri pernyataan.
  - Mengambil parameter narasi dan formatting berdasarkan tipe narasi melalui model `TempStmtNarrParam` dan `TempStmtNarrFormat`.

- Memperbarui routing dalam file `web.php` dengan menambahkan prefix `debug`:
  - **`POST /debug/statement`** -> debug satu entri pernyataan.
  - **`GET /debug/statements`** -> daftar semua entri untuk debugging.

- Tujuan pembaruan ini:
  - Mempermudah proses analisis dan troubleshooting pada entri pernyataan.
  - Memberikan informasi detail terkait kesalahan atau ketidaksesuaian data.
  - Membantu pengembang dan pengguna menganalisis informasi transaksi secara mendalam.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-06-03 20:29:44 +07:00
parent 66f84600eb
commit 2d07783c46
2 changed files with 367 additions and 2 deletions

View File

@@ -7,9 +7,11 @@ use Illuminate\Support\Facades\Route;
use Modules\Webstatement\Http\Controllers\JenisKartuController;
use Modules\Webstatement\Http\Controllers\KartuAtmController;
use Modules\Webstatement\Http\Controllers\MigrasiController;
use Modules\Webstatement\Http\Controllers\WebstatementController;
use Modules\Webstatement\Http\Controllers\CustomerController;
use Modules\Webstatement\Http\Controllers\DebugStatementController;
use Modules\Webstatement\Http\Controllers\EmailBlastController;
use Modules\Webstatement\Http\Controllers\WebstatementController;
/*
@@ -93,4 +95,9 @@ Route::get('migrasi', [MigrasiController::class, 'index'])->name('migrasi.index'
Route::get('biaya-kartu', [SyncLogsController::class, 'index'])->name('biaya-kartu.index');
Route::get('/stmt-entries/{accountNumber}', [MigrasiController::class, 'getStmtEntryByAccount']);
Route::get('/', [WebstatementController::class, 'index'])->name('webstatement.index');
Route::get('/stmt-export-csv', [WebstatementController::class, 'index'])->name('webstatement.index');
Route::prefix('debug')->group(function () {
Route::post('/statement', [DebugStatementController::class, 'debugStatement'])->name('debug.statement');
Route::get('/statements', [DebugStatementController::class, 'listStatements'])->name('debug.statements.list');
});