Sindbad~EG File Manager

Current Path : /var/www/html/digiesfera.sumar.com.py/gamificacion-bk/app/Http/Livewire/
Upload File :
Current File : /var/www/html/digiesfera.sumar.com.py/gamificacion-bk/app/Http/Livewire/Catalogofront.php

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use App\Models\Catalogo;
use App\Models\Monedaparticipante;
use Livewire\WithPagination;
use App\Models\Canje;
use App\Models\Canjeproductos;
use DB;
use Cart;
use Auth;

class Catalogofront extends Component{

	use WithPagination;

	protected $queryString = ['buscar' => ['except' => '']];

    protected $paginationTheme = 'bootstrap';

	public $buscar='';

    public $producto_id,$monedass,$cantidades = [];

    public function render(){

        $user = Auth::user();

        $monedasusadas = DB::table('canjeproductos as cp')
            ->join('canjes as c','cp.canje_id','c.id')
            ->select('cp.monedas')
            ->where('c.usuario_id',Auth::user()->id)->get();

        $monedas = $user->monedas;

    	$catalogos=Catalogo::where('nombre','LIKE',"%{$this->buscar}%")
            ->where('estado',1)->where('stock','>',0)->paginate(20);

        return view('livewire.catalogofront',[
            "catalogos"=>$catalogos,
            "monedas"=>$monedas,
            "monedasusadas"=>$monedasusadas
        ]);
    }

    public function addcarrito($id){

    $producto = Catalogo::findOrFail($id);

    // Usamos la cantidad del input, por defecto 1 si no hay
    $cantidad = isset($this->cantidades[$id]) && $this->cantidades[$id] > 0
                ? $this->cantidades[$id]
                : 1;

    // Validar que no supere el stock
    if ($cantidad > $producto->stock) {
	$this->emit('alert', ['type' => 'error', 'message' => 'Cantidad supera el stock.']);

        return;
    }

    Cart::add([
        'id' => $producto->id,
        'name' => $producto->nombre,
        'price' => $producto->moneda,
        'quantity' => $cantidad,
        'attributes' => [
            'urlfoto' => $producto->foto,
        ]
    ]);

    // Opcional: limpiar cantidad para ese producto
    $this->cantidades[$id] = null;
	$this->emit('alert', ['type' => 'success', 'message' => 'Producto agregado correctamente.']);
    }

    public function mascarrito($id) {
        Cart::update($id, array(
            'quantity' => 1, 
        ));
    }

    public function menoscarrito($id) {
        Cart::update($id, array(
            'quantity' => -1, 
        ));
    }

    public function deletecarrito($id){ 
        Cart::remove([
            'id' => $id,
        ]);
        $this->emit('alert', ['type' => 'error', 'message' => 'Producto eliminado correctamente.']);
    }
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists