From ca5b1ad8ed670a0660d0feaf25c3f1a90dd29131 Mon Sep 17 00:00:00 2001 From: Juan Felipe Zapata Moreno Date: Sat, 6 Dec 2025 14:09:34 -0600 Subject: [PATCH] fix: error vehiculo robo --- .../Repuve/InscriptionController.php | 5 ++- app/Services/RepuveService.php | 31 ++++++++++++++++--- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Repuve/InscriptionController.php b/app/Http/Controllers/Repuve/InscriptionController.php index 22c6c8e..f876ca5 100644 --- a/app/Http/Controllers/Repuve/InscriptionController.php +++ b/app/Http/Controllers/Repuve/InscriptionController.php @@ -12,7 +12,6 @@ use App\Models\Owner; use App\Models\File; use App\Models\Tag; -use App\Models\Error; use App\Models\VehicleTagLog; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; @@ -99,7 +98,7 @@ public function vehicleInscription(VehicleStoreRequest $request) $niv = $vehicleData['niv']; // Verificar robo (API Repuve Nacional) - $resultadoRobo = $this->checkIfStolen($placa, $niv); + $resultadoRobo = $this->checkIfStolen($niv, $placa); $isStolen = $resultadoRobo; if ($isStolen) { @@ -282,7 +281,7 @@ public function vehicleInscription(VehicleStoreRequest $request) } } - private function checkIfStolen(?string $placa = null, ?string $niv = null) + private function checkIfStolen(?string $niv = null, ?string $placa = null) { return $this->repuveService->verificarRobo($niv, $placa); } diff --git a/app/Services/RepuveService.php b/app/Services/RepuveService.php index cc1b0ad..54566a3 100644 --- a/app/Services/RepuveService.php +++ b/app/Services/RepuveService.php @@ -167,14 +167,35 @@ private function parseVehicleResponse(string $soapResponse, string $niv) public function verificarRobo(?string $niv = null, ?string $placa = null): array { try { + + if (empty($niv) && empty($placa)) { + logger()->warning('REPUVE verificarRobo: No se proporcionó NIV ni PLACA'); + return [ + 'is_robado' => false, + 'has_error' => true, + 'error_message' => 'Debe proporcionar al menos NIV o PLACA para verificar robo', + ]; + } + $url = $this->baseUrl . $this->roboEndpoint; - $campo1 = $niv ?? ''; - $campo2 = ''; - $campo3 = $placa ?? ''; - $campo4_8 = str_repeat('|', 5); + // Construir arg2 según los parámetros enviados + if (!empty($niv) && !empty($placa)) { + $arg2 = $niv . '|' . $placa . str_repeat('|', 5); + } elseif (!empty($niv)) { + $arg2 = $niv . str_repeat('|', 7); + } else { + $arg2 = '||' . $placa . str_repeat('|', 5); + } + + logger()->info('REPUVE verificarRobo: Cadena construida', [ + 'niv' => $niv, + 'placa' => $placa, + 'arg2' => $arg2, + 'total_pipes' => substr_count($arg2, '|'), + 'ejemplo_visual' => str_replace('|', ' | ', $arg2), + ]); - $arg2 = $campo1 . '|' . $campo2 . '|' . $campo3 . '|' . $campo4_8; $soapBody = <<