feat: add getTotalAmount method to Cart and refactor Purchase model to utilize it

This commit is contained in:
2026-07-06 15:26:41 -03:00
parent c19e00987e
commit 3703ae9bcf
3 changed files with 36 additions and 33 deletions

View File

@@ -11,6 +11,7 @@ use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Domains\Purchase\Services\CheckoutService;
use Illuminate\Support\Facades\Log;
use Illuminate\Validation\ValidationException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
@@ -74,28 +75,25 @@ class PurchaseController extends Controller
}
if ($method === 'qr') {
$telepagosQr = $compra->telepagosQr;
$telepagosService = new \App\Domains\Integration\Services\TelepagosIntegrationService();
$telepagosService->forTenant($tenant->codigo);
if (!$telepagosQr) {
$telepagosService = new \App\Domains\Integration\Services\TelepagosIntegrationService();
$telepagosService->forTenant($tenant->codigo);
try {
$qrResponse = $telepagosService->generateQr(
$compra->getTotalAmount(),
'Compra',
"Compra #{$compra->id}"
);
try {
Log::info("Generating QR for purchase ID: {$compra->id}, amount: {$compra->getTotalAmount()}");
$qrResponse = $telepagosService->generateQr(
$compra->getTotalAmount(),
'Compra',
"Compra #{$compra->id}"
);
$telepagosQr = $compra->telepagosQr()->create([
'qr_order_id' => (string) ($qrResponse['id'] ?? $qrResponse['order_id'] ?? $qrResponse['cashin_id'] ?? ''),
'qr_code' => $qrResponse['qr'] ?? $qrResponse['qr_code'] ?? $qrResponse['qr_data'] ?? '',
]);
} catch (\Exception $e) {
return response()->json([
'message' => 'Error generating QR: ' . $e->getMessage()
], 500);
}
$telepagosQr = $compra->telepagosQr()->create([
'qr_order_id' => (string) ($qrResponse['id'] ?? $qrResponse['order_id'] ?? $qrResponse['cashin_id'] ?? ''),
'qr_code' => $qrResponse['qr'] ?? $qrResponse['qr_code'] ?? $qrResponse['qr_data'] ?? '',
]);
} catch (\Exception $e) {
return response()->json([
'message' => 'Error generating QR: ' . $e->getMessage()
], 500);
}
return response()->json([