diff --git a/app/Http/Controllers/Repuve/InscriptionController.php b/app/Http/Controllers/Repuve/InscriptionController.php index a687000..1b713b0 100644 --- a/app/Http/Controllers/Repuve/InscriptionController.php +++ b/app/Http/Controllers/Repuve/InscriptionController.php @@ -370,6 +370,13 @@ public function searchRecord(Request $request) // Paginación $paginatedRecords = $records->paginate(config('app.pagination')); + if ($paginatedRecords->isEmpty()) { + return ApiResponse::NOT_FOUND->response([ + 'message' => 'No se encontraron registros con los criterios de búsqueda proporcionados.', + 'filters_applied' => array_filter($request->only(['folio', 'placa', 'vin', 'module_id', 'action_type', 'status'])) + ]); + } + // Transformación de datos $paginatedRecords->getCollection()->transform(function ($record) { $latestLog = $record->vehicle->vehicleTagLogs->first(); diff --git a/app/Http/Controllers/Repuve/PackageController.php b/app/Http/Controllers/Repuve/PackageController.php index 0bb12be..3668101 100644 --- a/app/Http/Controllers/Repuve/PackageController.php +++ b/app/Http/Controllers/Repuve/PackageController.php @@ -29,8 +29,18 @@ public function index(Request $request) $packages->where('box_number', 'LIKE', '%' . $request->caja . '%'); } + $paginatedPackages = $packages->paginate(config('app.pagination')); + + // Validación si no hay resultados + if ($paginatedPackages->isEmpty()) { + return ApiResponse::NOT_FOUND->response([ + 'message' => 'No se encontraron tags con los criterios de búsqueda proporcionados.', + 'filters_applied' => array_filter($request->only(['lot', 'box_number'])) + ]); + } + return ApiResponse::OK->response([ - 'packages' => $packages->paginate(config('app.pagination')) + 'Paquetes' => $paginatedPackages, ]); } catch (\Exception $e) { return ApiResponse::INTERNAL_ERROR->response([ diff --git a/app/Http/Controllers/Repuve/TagsController.php b/app/Http/Controllers/Repuve/TagsController.php index b1edcf0..72ffe90 100644 --- a/app/Http/Controllers/Repuve/TagsController.php +++ b/app/Http/Controllers/Repuve/TagsController.php @@ -45,8 +45,18 @@ public function index(Request $request) $tags->where('module_id', $request->module_id); } + $paginatedTags = $tags->paginate(config('app.pagination')); + + // Validación si no hay resultados + if ($paginatedTags->isEmpty()) { + return ApiResponse::NOT_FOUND->response([ + 'message' => 'No se encontraron tags con los criterios de búsqueda proporcionados.', + 'filters_applied' => array_filter($request->only(['status', 'lot', 'package_id', 'module_id'])) + ]); + } + return ApiResponse::OK->response([ - 'tag' => $tags->paginate(config('app.pagination')), + 'tag' => $paginatedTags, ]); } catch (\Exception $e) { return ApiResponse::INTERNAL_ERROR->response([ diff --git a/resources/views/pdfs/constancia.blade.php b/resources/views/pdfs/constancia.blade.php index 573a093..2b94b81 100644 --- a/resources/views/pdfs/constancia.blade.php +++ b/resources/views/pdfs/constancia.blade.php @@ -26,32 +26,32 @@ /* COLUMNA IZQUIERDA */ .left-col-vin { position: absolute; - left: 20mm; - top: 40mm; + left: 5mm; + top: 15mm; } .left-col-placa { position: absolute; - left: 20mm; - top: 65mm; + left: 5mm; + top: 28mm; } .left-col-marca { position: absolute; - left: 20mm; - top: 72mm; + left: 5mm; + top: 35mm; } .left-col-linea-modelo { position: absolute; - left: 20mm; - top: 79mm; - width: 70mm; + left: 5mm; + top: 41mm; + width: 75mm; } .left-col-linea { display: inline-block; - width: 40mm; + width: 10mm; } .left-col-modelo { @@ -62,52 +62,52 @@ .left-col-propietario { position: absolute; - left: 20mm; - top: 86mm; + left: 5mm; + top: 45mm; } .left-col-direccion { position: absolute; - left: 20mm; - top: 93mm; + left: 5mm; + top: 55mm; font-size: 8pt; } .left-col-municipio { position: absolute; - left: 20mm; - top: 100mm; + left: 5mm; + top: 50mm; } /* COLUMNA DERECHA */ .right-col-vin { position: absolute; - left: 115mm; - top: 40mm; + left: 90mm; + top: 15mm; } .right-col-placa { position: absolute; - left: 115mm; - top: 65mm; + left: 90mm; + top: 28mm; } .right-col-marca { position: absolute; - left: 115mm; - top: 72mm; + left: 90mm; + top: 33mm; } .right-col-linea-modelo { position: absolute; - left: 115mm; - top: 79mm; - width: 70mm; + left: 90mm; + top: 38mm; + width: 75mm; } .right-col-linea { display: inline-block; - width: 40mm; + width: 10mm; } .right-col-modelo { @@ -118,8 +118,8 @@ .right-col-particular { position: absolute; - left: 115mm; - top: 86mm; + left: 90mm; + top: 42mm; } diff --git a/resources/views/pdfs/delivery.blade.php b/resources/views/pdfs/delivery.blade.php index c20e2b4..51a469f 100644 --- a/resources/views/pdfs/delivery.blade.php +++ b/resources/views/pdfs/delivery.blade.php @@ -91,31 +91,23 @@ .tag-list { margin: 10px 0; font-size: 9pt; + width: 100%; } - .tag-columns { - column-gap: 15px; + .tag-table { + width: 100%; + border-collapse: collapse; } - .tag-columns-1 { - column-count: 1; - } - - .tag-columns-2 { - column-count: 2; - } - - .tag-columns-3 { - column-count: 3; - } - - .tag-columns-4 { - column-count: 4; + .tag-table td { + width: 25%; + vertical-align: top; + padding: 0 10px 0 0; } .tag-item { margin: 2px 0; - break-inside: avoid; + line-height: 1.5; } /* --- ZONA DE FIRMAS (CSS IMPORTANTE AQUÍ) --- */ @@ -246,25 +238,56 @@