diff --git a/app/Http/Controllers/Repuve/UpdateController.php b/app/Http/Controllers/Repuve/UpdateController.php index e2253af..1c38940 100644 --- a/app/Http/Controllers/Repuve/UpdateController.php +++ b/app/Http/Controllers/Repuve/UpdateController.php @@ -549,25 +549,11 @@ private function getOwner(string $niv): array /* --------------------------------------------------------- */ - public function updateData(VehicleUpdateRequest $request) + public function updateData(VehicleUpdateRequest $request, $id) { try { - $request->validate([ - 'folio' => 'required|string|exists:records,folio', - ]); - - $folio = $request->input('folio'); - $record = Record::with(['vehicle.owner', 'vehicle.tag', 'files', 'error']) - ->where('folio', $folio) - ->first(); - - if (!$record) { - return ApiResponse::NOT_FOUND->response([ - 'message' => 'No se encontró el expediente', - 'folio' => $folio, - ]); - } + ->findOrFail($id); $vehicle = $record->vehicle; $owner = $vehicle->owner; @@ -831,4 +817,69 @@ public function updateData(VehicleUpdateRequest $request) ]); } } + + public function resendToRepuve($id) + { + try { + $record = Record::with('vehicle.owner') + ->where('id', $id) + ->first(); + + $vehicle = $record->vehicle; + $owner = $vehicle->owner; + + // Preparar datos actuales de la BD + $datosCompletos = [ + 'ent_fed' => $owner->ent_fed ?? '', + 'ofcexp' => $vehicle->ofcexpedicion ?? '', + 'fechaexp' => $vehicle->fechaexpedicion ?? '', + 'placa' => $vehicle->placa ?? '', + 'tarjetacir' => $vehicle->rfv ?? '', + 'marca' => $vehicle->marca ?? '', + 'submarca' => $vehicle->linea ?? '', + 'version' => $vehicle->sublinea ?? '', + 'clase_veh' => $vehicle->clase_veh ?? '', + 'tipo_veh' => $vehicle->tipo_veh ?? '', + 'tipo_uso' => $vehicle->tipo_servicio ?? '', + 'modelo' => $vehicle->modelo ?? '', + 'color' => $vehicle->color ?? '', + 'motor' => $vehicle->numero_motor ?? '', + 'niv' => $vehicle->niv ?? '', + 'rfv' => $vehicle->rfv ?? '', + 'numptas' => $vehicle->numptas ?? '', + 'observac' => $vehicle->observac ?? '', + 'tipopers' => $owner->tipopers ?? '', + 'curp' => $owner->curp ?? '', + 'rfc' => $owner->rfc ?? '', + 'pasaporte' => $owner->pasaporte ?? '', + 'licencia' => $owner->licencia ?? '', + 'nombre' => $owner->name ?? '', + 'ap_paterno' => $owner->paternal ?? '', + 'ap_materno' => $owner->maternal ?? '', + 'munic' => $owner->munic ?? '', + 'callep' => $owner->callep ?? '', + 'num_ext' => $owner->num_ext ?? '', + 'num_int' => $owner->num_int ?? '', + 'colonia' => $owner->colonia ?? '', + 'cp' => $owner->cp ?? '', + 'cve_vehi' => $vehicle->cve_vehi ?? '', + 'nrpv' => $vehicle->nrpv ?? '', + 'tipo_mov' => $vehicle->tipo_mov ?? '', + ]; + + // reenviar a REPUVE Nacional + ProcessRepuveResponse::dispatch($record->id, $datosCompletos); + + return ApiResponse::OK->response([ + 'message' => 'Solicitud de reenvío a REPUVE Nacional procesada exitosamente', + 'folio' => $record->folio, + 'record_id' => $record->id, + ]); + } catch (Exception $e) { + return ApiResponse::INTERNAL_ERROR->response([ + 'message' => 'Error al procesar el reenvío', + 'error' => $e->getMessage(), + ]); + } + } } diff --git a/routes/api.php b/routes/api.php index 643740a..c4e26f6 100644 --- a/routes/api.php +++ b/routes/api.php @@ -47,7 +47,8 @@ //Rutas de Actualización Route::get('consulta', [UpdateController::class, 'vehicleData']); Route::post('actualizar', [UpdateController::class, 'vehicleUpdate']); - Route::post('actualizar-expediente', [UpdateController::class, 'updateData']); + Route::post('actualizar-expediente/{id}', [UpdateController::class, 'updateData']); + Route::post('/repuve/resend/{id}', [UpdateController::class, 'resendToRepuve']); // Rutas de cancelación de constancias Route::resource('/razones-cancelacion', CatalogController::class);