diff --git a/app/Http/Controllers/WebstatementController.php b/app/Http/Controllers/WebstatementController.php index a13de51..25ffef1 100644 --- a/app/Http/Controllers/WebstatementController.php +++ b/app/Http/Controllers/WebstatementController.php @@ -140,4 +140,66 @@ return $accountBalance->actual_balance ?? 0; } + + + function printStatementRekening() { + $accountNumber = '1234567890'; + $period = '202505'; + $balance = AccountBalance::where('account_number', $accountNumber) + ->when($period === '202505', function($query) { + return $query->where('period', '>=', '20250512') + ->orderBy('period', 'asc'); + }, function($query) use ($period) { + // Get balance from last day of previous month + $firstDayOfMonth = Carbon::createFromFormat('Ym', $period)->startOfMonth(); + $lastDayPrevMonth = $firstDayOfMonth->copy()->subDay()->format('Ymd'); + return $query->where('period', $lastDayPrevMonth); + }) + ->first() + ->actual_balance ?? '0.00'; + $clientName = 'client1'; + + try { + \Log::info("Starting statement export for account: {$accountNumber}, period: {$period}, client: {$clientName}"); + + // Validate inputs + if (empty($accountNumber) || empty($period) || empty($clientName)) { + throw new \Exception('Required parameters missing'); + } + + // Dispatch the job + $job = ExportStatementPeriodJob::dispatch($accountNumber, $period, $balance, $clientName); + + \Log::info("Statement export job dispatched successfully", [ + 'job_id' => $job->job_id ?? null, + 'account' => $accountNumber, + 'period' => $period, + 'client' => $clientName + ]); + + return [ + 'success' => true, + 'message' => 'Statement export job queued successfully', + 'data' => [ + 'job_id' => $job->job_id ?? null, + 'account_number' => $accountNumber, + 'period' => $period, + 'client_name' => $clientName + ] + ]; + + } catch (\Exception $e) { + \Log::error("Failed to export statement", [ + 'error' => $e->getMessage(), + 'account' => $accountNumber, + 'period' => $period + ]); + + return [ + 'success' => false, + 'message' => 'Failed to queue statement export job', + 'error' => $e->getMessage() + ]; + } + } } diff --git a/routes/web.php b/routes/web.php index 7675725..8b83e31 100644 --- a/routes/web.php +++ b/routes/web.php @@ -97,7 +97,9 @@ Route::get('biaya-kartu', [SyncLogsController::class, 'index'])->name('biaya-kar Route::get('/stmt-entries/{accountNumber}', [MigrasiController::class, 'getStmtEntryByAccount']); Route::get('/stmt-export-csv', [WebstatementController::class, 'index'])->name('webstatement.index'); + Route::prefix('debug')->group(function () { + Route::get('/test-statement',[WebstatementController::class,'index'])->name('webstatement.test'); Route::post('/statement', [DebugStatementController::class, 'debugStatement'])->name('debug.statement'); Route::get('/statements', [DebugStatementController::class, 'listStatements'])->name('debug.statements.list'); });