query('barcode'); // Validar que el código tenga 13 dígitos if (strlen($barcode) !== 13) { abort(400, 'El código de barras debe tener exactamente 13 dígitos.'); } // Buscar el nombre del producto por código de barras directamente en `productos` $nombreProducto = Producto::where('codigo_barras', $barcode)->value('nombre'); if (empty($nombreProducto)) { // Si no se encontró en productos, buscar en ProductVariant y acceder al producto relacionado $variant = ProductVariant::where('barcode', $barcode)->with(['producto', 'color', 'size'])->first(); if ($variant && $variant->producto) { $nombreProducto = $variant->producto->nombre; } $color = ($variant && $variant->color && $variant->color->name !== 'N/A') ? $variant->color->name : null; $size = ($variant && $variant->size && $variant->size->name !== 'N/A') ? $variant->size->name : null; // Concatenar solo si color y size no son nulos $nombreProducto = $nombreProducto . ($color ? ' ' . $color : '') . ($size ? ' ' . $size : ''); } $logo = Setting::first()->logo; // dd($logo); // Generar el código de barras en formato PNG $generator = new BarcodeGeneratorPNG(); $barcodeImage = base64_encode($generator->getBarcode($barcode, $generator::TYPE_EAN_13)); return view('imprimir_barcode', compact('barcode', 'barcodeImage','nombreProducto','logo')); })->name('imprimir.barcode'); Route::get('/imprimir-recibo/{venta}', [VentaController::class, 'imprimirRecibo'])->name('imprimir-recibo'); Route::middleware(['auth'])->group(function () { Route::post('/filament/traslados/{traslado}/mark-received', [\App\Http\Controllers\Filament\TrasladoPrendaController::class, 'markReceived'])->name('filament.traslados.mark-received'); // Routes for Kanban actions Route::post('/filament/ordenes/{orden}/change-state', [\App\Http\Controllers\Filament\OrdenProduccionController::class, 'changeState']); Route::post('/filament/ordenes/{orden}/advance', [\App\Http\Controllers\Filament\OrdenProduccionController::class, 'advance']); });