Files
2026-01-19 11:03:25 -05:00

66 lines
2.5 KiB
PHP

<?php
use App\Http\Controllers\VentaController;
use Illuminate\Support\Facades\Route;
use Picqer\Barcode\BarcodeGeneratorPNG;
use App\Models\Producto;
use App\Models\ProductVariant;
use App\Models\Setting;
Route::get('/', function () {
return redirect('/admin');
});
Route::get('/imprimir-barcode', function (Illuminate\Http\Request $request) {
$barcode = $request->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']);
});