66 lines
2.5 KiB
PHP
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']);
|
|
});
|