diff --git a/app/Http/Controllers/Repuve/ExcelController.php b/app/Http/Controllers/Repuve/ExcelController.php index 279b7f3..5a63c01 100644 --- a/app/Http/Controllers/Repuve/ExcelController.php +++ b/app/Http/Controllers/Repuve/ExcelController.php @@ -7,6 +7,7 @@ */ use App\Http\Controllers\Controller; +use App\Services\RepuveService; use Illuminate\Http\Request; use App\Models\VehicleTagLog; use App\Models\Module; @@ -29,6 +30,13 @@ */ class ExcelController extends Controller implements HasMiddleware { + private RepuveService $repuveService; + + public function __construct(RepuveService $repuveService) + { + $this->repuveService = $repuveService; + } + /** * Middleware */ @@ -373,13 +381,17 @@ public function constanciasSustituidas(Request $request) ->orderBy('created_at', 'asc') ->first(); + // Consultar REPUVE Nacional para obtener el folio_CI que se sustituyó + $repuveData = $this->repuveService->consultarVehiculo($log->vehicle->niv, $log->vehicle->placa); + $folioCi = $repuveData['folio_CI'] ?? ''; + return [ 'niv' => $log->vehicle->niv ?? '', 'nrpv' => $log->vehicle->nrpv ?? '', 'marca' => $log->vehicle->marca ?? '', 'placa' => $log->vehicle->placa ?? '', 'modelo' => $log->vehicle->modelo ?? '', - 'folio_ant' => $log->tag->folio ?? '', + 'folio_ant' => $folioCi, 'folio_act' => $newTagLog?->tag?->folio ?? '', 'chip' => substr($newTagLog?->tag?->rfid ?? $newTagLog?->tag?->tag_number ?? '', 0, 24), 'fecha' => $log->cancellation_at?->format('d/m/Y') ?? $log->created_at->format('d/m/Y'), diff --git a/app/Http/Controllers/Repuve/RecordController.php b/app/Http/Controllers/Repuve/RecordController.php index 3e6f893..c7c06b0 100644 --- a/app/Http/Controllers/Repuve/RecordController.php +++ b/app/Http/Controllers/Repuve/RecordController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers\Repuve; use App\Http\Controllers\Controller; +use App\Services\RepuveService; +use App\Services\PadronEstatalService; use Barryvdh\DomPDF\Facade\Pdf; use App\Models\Record; use App\Models\Tag; @@ -18,6 +20,15 @@ class RecordController extends Controller implements HasMiddleware { + private RepuveService $repuveService; + private PadronEstatalService $padronEstatalService; + + public function __construct(RepuveService $repuveService, PadronEstatalService $padronEstatalService) + { + $this->repuveService = $repuveService; + $this->padronEstatalService = $padronEstatalService; + } + /** * Middleware */ @@ -240,7 +251,6 @@ public function generatePdfForm($id) $record = Record::with([ 'vehicle', 'vehicle.owner', - 'vehicle.tag', ])->findOrFail($id); if (!$record->vehicle) { @@ -252,19 +262,23 @@ public function generatePdfForm($id) $vehicle = $record->vehicle; $owner = $vehicle->owner; - $tag = $vehicle->tag; + + // Consultar REPUVE Nacional y Padrón Estatal para obtener datos oficiales del vehículo + $repuveData = $this->repuveService->consultarVehiculo($vehicle->niv, $vehicle->placa); + $padronRaw = $this->padronEstatalService->getVehiculoByNiv($vehicle->niv); + $padronData = $this->padronEstatalService->extraerDatosVehiculo($padronRaw); $now = Carbon::now()->locale('es_MX'); $data = [ - // Datos del vehículo - 'marca' => strtoupper($vehicle->marca ?? ''), - 'linea' => strtoupper($vehicle->linea ?? ''), - 'modelo' => $vehicle->modelo ?? '', - 'niv' => strtoupper($vehicle->niv ?? ''), - 'numero_motor' => strtoupper($vehicle->numero_motor ?? ''), - 'placa' => strtoupper($vehicle->placa ?? ''), - 'folio' => $tag?->folio ?? $record->folio ?? '', + // Datos del vehículo desde REPUVE Nacional y Padrón Estatal + 'marca' => strtoupper($repuveData['marca'] ?? ''), + 'linea' => strtoupper($repuveData['linea'] ?? ''), + 'modelo' => $repuveData['modelo'] ?? '', + 'niv' => strtoupper($repuveData['niv'] ?? ''), + 'numero_motor' => strtoupper($padronData['numero_motor'] ?? ''), + 'placa' => strtoupper($padronData['placa'] ?? ''), + 'folio' => $repuveData['folio_CI'] ?? '', // Datos del propietario 'telefono' => $owner?->telefono ?? '',