up
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
<?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');
|
||||
Reference in New Issue
Block a user