Compare commits

..

No commits in common. "2ca6950751783e30e2db558cc5ed02496fe52431" and "e9fd55aa3b6c9f35bad1940a6a3553a8137a3ee4" have entirely different histories.

3 changed files with 39 additions and 64 deletions

View File

@ -403,38 +403,25 @@ public function searchRecord(Request $request)
$paginatedRecords->getCollection()->transform(function ($record) {
$latestLog = $record->vehicle->vehicleTagLogs->first();
// Construir historial completo de tags
$tagsHistory = [];
$order = 1;
$vehicleLogs = $record->vehicle->vehicleTagLogs->sortBy('created_at');
$processedTags = [];
// Detectar si hubo sustitución y obtener datos del tag anterior
$substitutionData = null;
foreach ($vehicleLogs as $log) {
$tagId = $log->tag_id;
if ($tagId && !in_array($tagId, $processedTags)) {
$processedTags[] = $tagId;
$tag = $log->tag;
// Buscar si existe ALGÚN log de sustitución (no solo el último)
$substitutionLogs = $record->vehicle->vehicleTagLogs
->where('action_type', 'sustitucion')
->sortBy('id')
->take(2);
// Buscar fecha de cancelación si existe
$cancelLog = $vehicleLogs
->where('tag_id', $tagId)
->whereIn('action_type', ['cancelacion', 'sustitucion'])
->whereNotNull('cancellation_at')
->first();
if ($substitutionLogs->count() >= 2) {
$oldTagLog = $substitutionLogs->first(); // Tag cancelado
$newTagLog = $substitutionLogs->last(); // Tag nuevo
$tagsHistory[] = [
'order' => $order++,
'tag_id' => $tagId,
'folio' => $tag?->folio,
'tag_number' => $tag?->tag_number,
'status' => $tag?->status?->code ?? 'unknown',
'assigned_at' => $vehicleLogs->where('tag_id', $tagId)
->whereIn('action_type', ['inscripcion', 'sustitucion'])
->first()?->created_at,
'cancelled_at' => $cancelLog?->cancellation_at,
'is_current' => $tag?->id === $record->vehicle->tag?->id,
];
}
$substitutionData = [
'old_folio' => $oldTagLog->tag?->folio ?? null,
'old_tag_number' => $oldTagLog->tag?->tag_number ?? null,
'new_folio' => $newTagLog->tag?->folio ?? $record->folio,
'new_tag_number' => $newTagLog->tag?->tag_number ?? null,
];
}
return [
@ -446,9 +433,8 @@ public function searchRecord(Request $request)
'action_type' => $latestLog?->action_type ?? 'inscripcion',
'action_date' => $latestLog?->created_at ?? $record->created_at,
// HISTORIAL DE TAGS
'tags_history' => $tagsHistory,
'total_tags' => count($tagsHistory),
// SUSTITUCIÓN
'substitution' => $substitutionData,
// MÓDULO
'module' => $record->module ? [

View File

@ -22,35 +22,24 @@ class CatalogNameImgSeeder extends Seeder
public function run(): void
{
$names = [
'INE ANVERSO',
'INE REVERSO',
'TARJETA DE CIRCULACIÓN ANVERSO',
'TARJETA DE CIRCULACIÓN REVERSO',
'FACTURA ORIGEN ANVERSO',
'FACTURA ORIGEN REVERSO',
'FACTURA ACTUAL ANVERSO',
'FACTURA ACTUAL REVERSO',
'FACTURA SIN VALOR ANVERSO',
'FACTURA SIN VALOR REVERSO',
'CARTA FACTURA ANVERSO',
'CARTA FACTURA REVERSO',
'TITULO ANVERSO',
'TITULO REVERSO',
'PEDIMENTO ANVERSO',
'PEDIMENTO REVERSO',
'FRENTE',
'TRASERA',
'LATERAL',
'RECEPCION',
'CONSTANCIA',
'VERIFICA',
'FACTURA/CERTIFICADO FRONTAL',
'FACTURA/CERTIFICADO TRASERA',
'PEDIMENTO FRONTAL',
'PEDIMENTO TRASERO',
'PODER NOTARIAL',
'CEDULA DE IDENTIFICACION FISCAL',
'CARTA PODER',
'REPORTE DE LA CONSULTA CIUDADANA',
'FORMATO SOLICITUD DE SUSTITUCIÓN DE CONSTANCIA DE INSCRIPCIÓN',
'HOJA DE RECEPCIÓN',
'HOJA DE VERIFICACIÓN',
'FOTO LADO FRONTAL DEL VEHÍCULO',
'FOTO LADO TRASERO DEL VEHÍCULO',
'FOTO LADO LATERAL DEL VEHÍCULO',
'FOTO UBICACIÓN DEL VIN',
'FOTO CONSTANCIA DE INSCRIPCIÓN PEGADA (CI MORADA O AZUL)',
'FORMATO DE CONSTANCIA DE SUSTITUCIÓN',
'ACTA CIRCUNSTANCIADA DE HECHOS',
'IDENTIFICACIÓN OFICIAL FRENTE',
'IDENTIFICACIÓN OFICIAL TRASERA',
'TARJETA DE CIRCULACIÓN',
'FOTO VIN',
'EVIDENCIA ADICIONAL',
];

View File

@ -17,7 +17,7 @@ public function run(): void
[
'name' => 'MODULO PARQUE LA CHOCA',
'municipality_id' => 4,
'address' => 'ESTACIONAMIENTO DEL PARQUE LA CHOCA, CENTRO, TABASCO',
'address' => 'CIRCUITO CARLOS PELLICER S/N JUNTO A PLAZA MALLORCA ESTACIONAMIENTO DEL PARQUE LA CHOCA',
'colony' => 'CENTRO',
'cp' => null,
'longitude' => -92.954605,
@ -27,7 +27,7 @@ public function run(): void
[
'name' => 'MODULO FINANZAS BASE 4',
'municipality_id' => 4,
'address' => 'ESTACIONAMIENTO DE FINANZAS BASE 4, CENTRO, TABASCO',
'address' => 'AV. RUIZ CORTINES S/N',
'colony' => 'CASA BLANCA',
'cp' => null,
'longitude' => -92.923486,
@ -37,7 +37,7 @@ public function run(): void
[
'name' => 'MODULO CARDENAS',
'municipality_id' => 2,
'address' => 'ESTACIONAMIENTO DE LA POLICIA ESTATAL DE CAMINOS, CARDENAS, TABASCO',
'address' => 'ANILLO PERIFERICO CARLOS MOLINA S/N',
'colony' => 'SANTA MARIA DE GUADALUPE',
'cp' => null,
'longitude' => -93.362824,
@ -47,7 +47,7 @@ public function run(): void
[
'name' => 'MODULO PASEO DE LA SIERRA',
'municipality_id' => 4,
'address' => 'ESTACIONAMIENTO PASEO DE LA SECRETARIA DE FINANZAS, CENTRO, TABASCO',
'address' => ' AV. PASEO DE LA SIERRA #435 COL. REFORMA, C.P. 86080 VILLAHERMOSA, TABASCO,',
'colony' => 'REFORMA',
'cp' => null,
'longitude' => -92.929378,
@ -57,8 +57,8 @@ public function run(): void
[
'name' => 'CENTRO DE ACTIVACION COMALCALCO',
'municipality_id' => 5,
'address' => '',
'colony' => 'ESTACIONAMIENTO DE LA POLICIA ESTATAL DE CAMINOS, COMALCALCO, TABASCO',
'address' => 'MONSERRAT #5',
'colony' => 'SANTO DOMINGO',
'cp' => null,
'longitude' => -93.218679,
'latitude' => 18.264577,