From bf0346dabf5843a2f02b524530478fa498d01657 Mon Sep 17 00:00:00 2001 From: Juan Felipe Zapata Moreno Date: Mon, 20 Oct 2025 21:47:44 -0600 Subject: [PATCH] =?UTF-8?q?ADD:=20Proceso=20de=20Cancelaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repuve/CancellationController.php | 319 ++++++++++++++++++ .../Controllers/Repuve/RepuveController.php | 8 +- .../Repuve/CancelConstanciaRequest.php | 64 ++++ .../Repuve/ConsultaVehiculoRequest.php | 52 +++ app/Models/VehicleTagLog.php | 15 + ..._140800_create_vehicle_tags_logs_table.php | 9 + resources/images/logo-seguridad.png | Bin 0 -> 60955 bytes resources/views/pdfs/record.blade.php | 7 +- routes/api.php | 9 +- 9 files changed, 478 insertions(+), 5 deletions(-) create mode 100644 app/Http/Controllers/Repuve/CancellationController.php create mode 100644 app/Http/Requests/Repuve/CancelConstanciaRequest.php create mode 100644 app/Http/Requests/Repuve/ConsultaVehiculoRequest.php create mode 100755 resources/images/logo-seguridad.png diff --git a/app/Http/Controllers/Repuve/CancellationController.php b/app/Http/Controllers/Repuve/CancellationController.php new file mode 100644 index 0000000..2cd27a9 --- /dev/null +++ b/app/Http/Controllers/Repuve/CancellationController.php @@ -0,0 +1,319 @@ +input('search_type'); + $searchValue = $request->input('search_value'); + + // Simulación: consulta a base de datos REPUVE hardcodeada + $vehicleData = $this->getVehicleDataFromRepuve($searchType, $searchValue); + + if (!$vehicleData) { + return ApiResponse::NOT_FOUND->response([ + 'message' => 'No se encontró ningún vehículo con los datos proporcionados en REPUVE.', + 'search_type' => $searchType, + 'search_value' => $searchValue, + ]); + } + + // Buscar vehículo en nuestra base de datos local + $vehicle = Vehicle::where('numero_serie', $vehicleData['NO_SERIE']) + ->with(['owner']) + ->first(); + + if (!$vehicle) { + return ApiResponse::NOT_FOUND->response([ + 'message' => 'El vehículo existe en REPUVE pero no está registrado localmente.', + 'repuve_data' => $vehicleData, + ]); + } + + // Buscar tag asignado al vehículo (solo assigned) + $tag = Tag::where('vehicle_id', $vehicle->id) + ->where('status', 'assigned') + ->first(); + + // Verificar si ya tiene cancelaciones previas + $cancelaciones = VehicleTagLog::where('vehicle_id', $vehicle->id) + ->whereNotNull('cancellation_at') + ->count(); + + $canCancel = !is_null($tag) && $tag->status === 'assigned'; + + return ApiResponse::OK->response([ + 'vehicle' => [ + 'id' => $vehicle->id, + 'estatus' => $tag ? $tag->status : 'sin_tag', + 'folio' => $vehicle->folio, + 'tag' => $tag ? $tag->folio : null, + 'niv' => $vehicle->numero_serie, + 'tipo' => $vehicle->tipo, + 'registro' => $vehicle->created_at->format('d/m/Y'), + 'placa' => $vehicle->placa, + 'marca' => $vehicle->marca, + 'modelo' => $vehicle->modelo, + 'color' => $vehicle->color, + ], + 'tag' => $tag ? [ + 'id' => $tag->id, + 'folio' => $tag->folio, + 'status' => $tag->status, + ] : null, + 'can_cancel' => $canCancel, + 'total_cancelaciones_previas' => $cancelaciones, + 'message' => $canCancel + ? 'Vehículo encontrado. Puede proceder con la cancelación.' + : 'Vehículo encontrado pero no tiene tag asignado o ya está cancelado.', + ]); + + } catch (\Exception $e) { + Log::error('Error en buscarVehiculoParaCancelar: ' . $e->getMessage(), [ + 'search_type' => $searchType ?? null, + 'search_value' => $searchValue ?? null, + 'trace' => $e->getTraceAsString() + ]); + + return ApiResponse::INTERNAL_SERVER_ERROR->response([ + 'message' => 'Error al buscar el vehículo', + 'error' => $e->getMessage(), + ]); + } + } + + /* =========================================================== + * Cancelar constancia + * =========================================================== + */ + public function cancelarConstancia(CancelConstanciaRequest $request) + { + // Iniciar transacción + DB::beginTransaction(); + + try { + $vehicleId = $request->input('vehicle_id'); + $tagId = $request->input('tag_id'); + $reason = $request->input('cancellation_reason'); + $observations = $request->input('cancellation_observations'); + + // Validar que el vehículo existe + $vehicle = Vehicle::findOrFail($vehicleId); + + // Validar que el tag existe + $tag = Tag::findOrFail($tagId); + + // Validar que el tag pertenece al vehículo + if ($tag->vehicle_id !== $vehicle->id) { + DB::rollBack(); + return ApiResponse::BAD_REQUEST->response([ + 'message' => 'El tag no está asignado al vehículo especificado', + ]); + } + + // Validar que el tag esté en estado 'assigned' + if ($tag->status !== 'assigned') { + DB::rollBack(); + return ApiResponse::BAD_REQUEST->response([ + 'message' => "El tag no puede ser cancelado. Estado actual: {$tag->status}", + 'current_status' => $tag->status, + ]); + } + + // Verificar que no exista ya un registro de cancelación para este tag + $existingCancellation = VehicleTagLog::where('tag_id', $tagId) + ->whereNotNull('cancellation_at') + ->first(); + + if ($existingCancellation) { + DB::rollBack(); + return ApiResponse::BAD_REQUEST->response([ + 'message' => 'Este tag ya tiene un registro de cancelación', + 'cancellation_date' => $existingCancellation->cancellation_at->toDateTimeString(), + ]); + } + + // Crear registro de cancelación en vehicle_tags_logs + $cancellationLog = VehicleTagLog::create([ + 'vehicle_id' => $vehicleId, + 'tag_id' => $tagId, + 'cancellation_at' => now(), + 'cancellation_reason' => $reason, + 'cancellation_observations' => $observations, + 'cancelled_by' => auth()->id(), + ]); + + // Actualizar estado del tag a 'cancelled' + $tag->update(['status' => 'cancelled']); + + // Confirmar transacción + DB::commit(); + + // Recargar vehículo con tag actualizado + $vehicle->load('owner'); + $tag->refresh(); + + return ApiResponse::OK->response([ + 'success' => true, + 'message' => 'Constancia de inscripción cancelada exitosamente', + 'vehicle' => [ + 'id' => $vehicle->id, + 'estatus' => 'cancelada', + 'folio' => $vehicle->folio, + 'tag' => $tag->folio, + 'niv' => $vehicle->numero_serie, + 'tipo' => $vehicle->tipo, + 'registro' => $vehicle->created_at->format('d/m/Y'), + ], + 'cancellation' => [ + 'id' => $cancellationLog->id, + 'motivo' => $cancellationLog->cancellation_reason, + 'observaciones' => $cancellationLog->cancellation_observations, + 'fecha_cancelacion' => $cancellationLog->cancellation_at->format('d/m/Y H:i:s'), + 'cancelado_por' => auth()->user()->name ?? 'Sistema', + ], + ]); + + } catch (\Exception $e) { + // Revertir transacción en caso de error + DB::rollBack(); + + Log::error('Error en cancelarConstancia: ' . $e->getMessage(), [ + 'vehicle_id' => $request->input('vehicle_id'), + 'tag_id' => $request->input('tag_id'), + 'trace' => $e->getTraceAsString() + ]); + + return ApiResponse::INTERNAL_SERVER_ERROR->response([ + 'message' => 'Error al cancelar la constancia de inscripción', + 'error' => $e->getMessage(), + ]); + } + } + + /** + * Obtiene historial de cancelaciones de un vehículo + */ + public function historialCancelaciones($vehicleId) + { + try { + $vehicle = Vehicle::findOrFail($vehicleId); + + $cancelaciones = VehicleTagLog::where('vehicle_id', $vehicleId) + ->whereNotNull('cancellation_at') + ->with(['tag', 'cancelledBy']) + ->orderBy('cancellation_at', 'desc') + ->get(); + + return ApiResponse::OK->response([ + 'vehicle' => [ + 'id' => $vehicle->id, + 'placa' => $vehicle->placa, + 'numero_serie' => $vehicle->numero_serie, + ], + 'total_cancelaciones' => $cancelaciones->count(), + 'cancelaciones' => $cancelaciones->map(function ($log) { + return [ + 'id' => $log->id, + 'tag_folio' => $log->tag->folio ?? 'N/A', + 'cancellation_at' => $log->cancellation_at->toDateTimeString(), + 'cancellation_reason' => $log->cancellation_reason, + 'cancellation_observations' => $log->cancellation_observations, + 'cancelled_by' => $log->cancelledBy ? [ + 'id' => $log->cancelledBy->id, + 'name' => $log->cancelledBy->name, + ] : null, + ]; + }), + ]); + + } catch (\Exception $e) { + Log::error('Error en historialCancelaciones: ' . $e->getMessage(), [ + 'vehicle_id' => $vehicleId ?? null, + 'trace' => $e->getTraceAsString() + ]); + + return ApiResponse::INTERNAL_SERVER_ERROR->response([ + 'message' => 'Error al obtener el historial de cancelaciones', + 'error' => $e->getMessage(), + ]); + } + } + + /** + * Simula consulta a base de datos REPUVE + * + */ + private function getVehicleDataFromRepuve(string $searchType, string $searchValue): ?array + { + // Datos hardcodeados del vehículo de ejemplo + $vehicleData = [ + "ANIO_PLACA" => "2020", + "PLACA" => "WNU700B", + "NO_SERIE" => "LSGHD52H0ND032457", + "RFC" => "GME111116GJA", + "FOLIO" => "3962243", + "VIGENCIA" => "2025", + "FECHA_IMPRESION" => "10-01-2025", + "QR_HASH" => "Vu5TF4kYsbbltzjDdGQyenKfZoIk2wro34a5Gkh9JVh0CFxfPlrd92YEWK21JF.nLjQNyzKmqRvWYuPiS.kU7A--", + "VALIDO" => true, + "FOLIOTEMP" => false, + "NOMBRE" => "GOLSYSTEMS DE MEXICO S DE RL DE CV", + "NOMBRE2" => "GOLS*MS DXICOE RL*CV", + "MUNICIPIO" => "CENTRO", + "LOCALIDAD" => "VILLAHERMOSA", + "CALLE" => "C BUGAMBILIAS 118 ", + "CALLE2" => "C BU*ILIA*18 ", + "TIPO" => "SEDAN", + "TIPO_SERVICIO" => "PARTICULAR", + "MARCA" => "CHEVROLET G.M.C.", + "LINEA" => "AVEO", + "SUBLINEA" => "PAQ. \"A\" LS", + "MODELO" => 2022, + "NUMERO_SERIE" => "LSGHD52H0ND032457", + "NUMERO_MOTOR" => "H. EN WUHANLL,SGM", + "DESCRIPCION_ORIGEN" => "IMPORTADO", + "COLOR" => "BLANCO", + "CODIGO_POSTAL" => "86179", + "SERIE_FOLIO" => "D3962243", + "SFOLIO" => "3962243" + ]; + + // Normalizar el valor de búsqueda (trim y uppercase) + $searchValue = trim(strtoupper($searchValue)); + + // Simular búsqueda por tipo + switch ($searchType) { + case 'folio': + return (strtoupper($vehicleData['FOLIO']) === $searchValue) ? $vehicleData : null; + + case 'vin': + return (strtoupper($vehicleData['NO_SERIE']) === $searchValue) ? $vehicleData : null; + + case 'fecha': + // Para fecha, comparar sin case sensitivity + return (strtoupper($vehicleData['FECHA_IMPRESION']) === $searchValue) ? $vehicleData : null; + + default: + return null; + } + } +} diff --git a/app/Http/Controllers/Repuve/RepuveController.php b/app/Http/Controllers/Repuve/RepuveController.php index 7308f59..d23cf3d 100644 --- a/app/Http/Controllers/Repuve/RepuveController.php +++ b/app/Http/Controllers/Repuve/RepuveController.php @@ -13,6 +13,12 @@ class RepuveController extends Controller { + + /* =========================================================== + * Inscripción de vehículo al REPUVE + * =========================================================== + */ + public function inscripcionVehiculo(VehicleStoreRequest $request) { try { @@ -98,7 +104,7 @@ public function inscripcionVehiculo(VehicleStoreRequest $request) $uploadedFiles = []; if ($request->hasFile('files')) { $files = $request->file('files'); - $fileNames = $request->input('file_names', []); + $fileNames = $request->input('names', []); foreach ($files as $index => $file) { // Generar nombre único diff --git a/app/Http/Requests/Repuve/CancelConstanciaRequest.php b/app/Http/Requests/Repuve/CancelConstanciaRequest.php new file mode 100644 index 0000000..9579d06 --- /dev/null +++ b/app/Http/Requests/Repuve/CancelConstanciaRequest.php @@ -0,0 +1,64 @@ + 'required|integer|exists:vehicle,id', + 'tag_id' => 'required|integer|exists:tags,id', + 'cancellation_reason' => 'required|in:fallo_lectura_handheld,cambio_parabrisas,roto_al_pegarlo,extravio,otro', + 'cancellation_observations' => 'nullable|string|max:1000', + ]; + } + + /** + * Get custom messages for validator errors. + */ + public function messages(): array + { + return [ + 'vehicle_id.required' => 'El id del vehículo es obligatorio.', + 'vehicle_id.integer' => 'El id del vehículo debe ser un número entero.', + 'vehicle_id.exists' => 'El vehículo especificado no existe.', + + 'tag_id.required' => 'El id del tag es obligatorio.', + 'tag_id.integer' => 'El id del tag debe ser un número entero.', + 'tag_id.exists' => 'El tag especificado no existe.', + + 'cancellation_reason.required' => 'El motivo de cancelación es obligatorio.', + 'cancellation_reason.in' => 'El motivo de cancelación no es válido. Opciones: fallo_lectura_handheld, cambio_parabrisas, roto_al_pegarlo, extravio, otro.', + + 'cancellation_observations.string' => 'Las observaciones deben ser texto.', + 'cancellation_observations.max' => 'Las observaciones no pueden exceder 1000 caracteres.', + ]; + } + + /** + * Get custom attributes for validator errors. + */ + public function attributes(): array + { + return [ + 'vehicle_id' => 'id del vehículo', + 'tag_id' => 'id del tag', + 'cancellation_reason' => 'motivo de cancelación', + 'cancellation_observations' => 'observaciones', + ]; + } +} diff --git a/app/Http/Requests/Repuve/ConsultaVehiculoRequest.php b/app/Http/Requests/Repuve/ConsultaVehiculoRequest.php new file mode 100644 index 0000000..f459586 --- /dev/null +++ b/app/Http/Requests/Repuve/ConsultaVehiculoRequest.php @@ -0,0 +1,52 @@ + 'required|in:folio,vin,fecha', + 'search_value' => 'required|string|max:255', + ]; + } + + /** + * Get custom messages for validator errors. + */ + public function messages(): array + { + return [ + 'search_type.required' => 'El tipo de búsqueda es obligatorio.', + 'search_type.in' => 'El tipo de búsqueda debe ser: folio, vin o fecha.', + 'search_value.required' => 'El valor de búsqueda es obligatorio.', + 'search_value.string' => 'El valor de búsqueda debe ser una cadena de texto.', + 'search_value.max' => 'El valor de búsqueda no puede exceder 255 caracteres.', + ]; + } + + /** + * Get custom attributes for validator errors. + */ + public function attributes(): array + { + return [ + 'search_type' => 'tipo de búsqueda', + 'search_value' => 'valor de búsqueda', + ]; + } +} diff --git a/app/Models/VehicleTagLog.php b/app/Models/VehicleTagLog.php index 3bb1562..bd8c775 100644 --- a/app/Models/VehicleTagLog.php +++ b/app/Models/VehicleTagLog.php @@ -14,7 +14,10 @@ class VehicleTagLog extends Model protected $fillable = [ 'vehicle_id', 'tag_id', + 'cancellation_reason', + 'cancellation_observations', 'cancellation_at', + 'cancelled_by', ]; protected function casts(): array @@ -24,4 +27,16 @@ protected function casts(): array ]; } + public function vehicle() { + return $this->belongsTo(Vehicle::class); + } + + public function tag() { + return $this->belongsTo(Tag::class); + } + + public function cancelledBy() { + return $this->belongsTo(User::class, 'cancelled_by'); + } + } diff --git a/database/migrations/2025_10_18_140800_create_vehicle_tags_logs_table.php b/database/migrations/2025_10_18_140800_create_vehicle_tags_logs_table.php index 3625ef0..4544c8f 100644 --- a/database/migrations/2025_10_18_140800_create_vehicle_tags_logs_table.php +++ b/database/migrations/2025_10_18_140800_create_vehicle_tags_logs_table.php @@ -16,6 +16,15 @@ public function up(): void $table->foreignId('vehicle_id')->constrained('vehicle')->cascadeOnDelete(); $table->foreignId('tag_id')->constrained('tags')->cascadeOnDelete(); $table->timestamp('cancellation_at')->nullable(); + $table->enum('cancellation_reason', [ + 'fallo_lectura_handheld', + 'cambio_parabrisas', + 'roto_al_pegarlo', + 'extravio', + 'otro' + ])->nullable(); + $table->text('cancellation_observations')->nullable(); + $table->foreignId('cancelled_by')->nullable()->constrained('users')->nullOnDelete(); $table->timestamps(); }); } diff --git a/resources/images/logo-seguridad.png b/resources/images/logo-seguridad.png new file mode 100755 index 0000000000000000000000000000000000000000..f98024920ef7c264be7c0b42b55dbfd4c2cfccb1 GIT binary patch literal 60955 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 literal 0 HcmV?d00001 diff --git a/resources/views/pdfs/record.blade.php b/resources/views/pdfs/record.blade.php index 469d2c7..2d237dc 100644 --- a/resources/views/pdfs/record.blade.php +++ b/resources/views/pdfs/record.blade.php @@ -174,11 +174,11 @@

- Logo Seguridad + Logo Seguridad
@@ -258,7 +258,8 @@

Propietario

-
{{ $record->user->full_name }}
+
+

{{ $record->user->full_name }}

Operador

diff --git a/routes/api.php b/routes/api.php index 3a4ea49..92e54a9 100644 --- a/routes/api.php +++ b/routes/api.php @@ -2,6 +2,7 @@ use Illuminate\Support\Facades\Route; use App\Http\Controllers\Repuve\RepuveController; use App\Http\Controllers\Repuve\RecordController; +use App\Http\Controllers\Repuve\CancellationController; /** * Rutas del núcleo de la aplicación. @@ -19,14 +20,20 @@ /** Rutas protegidas (requieren autenticación) */ Route::middleware('auth:api')->group(function() { - // Tus rutas protegidas + // Rutas de inscripción de vehículos Route::post('inscripcion', [RepuveController::class, 'inscripcionVehiculo']); Route::post('consulta', [RepuveController::class, 'consultaExpediente']); + // Rutas de expedientes y documentos Route::get('expediente/{id}/pdf', [RecordController::class, 'generatePdf']); Route::get('expediente/{recordId}/documentos', [RecordController::class, 'getFile']); Route::post('expediente/documentos', [RecordController::class, 'uploadFile']); Route::delete('expediente/documentos/{fileId}', [RecordController::class, 'deleteFile']); + + // Rutas de cancelación de constancias + Route::post('cancelacion/buscar', [CancellationController::class, 'searchToCancel']); + Route::post('cancelacion/cancelar', [CancellationController::class, 'cancelarConstancia']); + Route::get('cancelacion/historial/{vehicleId}', [CancellationController::class, 'historialCancelaciones']); }); /** Rutas públicas */