Ainda continuando com a mesma app....
No carrinho de compras o que queria fazer é o seguinte, na lista de produtos selecciona-se um produto e faz-se adicionar. Até aqui tudo bem, quando tento adicionar mais que um produto da mesma coisa deveria ser incrementado, mas não é.
atualmente é isto que tenho
Código (PHP):
No carrinho de compras o que queria fazer é o seguinte, na lista de produtos selecciona-se um produto e faz-se adicionar. Até aqui tudo bem, quando tento adicionar mais que um produto da mesma coisa deveria ser incrementado, mas não é.
atualmente é isto que tenho
Código (PHP):
<?php
namespace Cart\Basket;
use Cart\Models\Product;
use Cart\Support\Storage\Contracts\StorageInterface;
use Cart\Basket\Exceptions\QuantityExceededException;
class Basket {
protected $storage;
protected $product;
public function __construct(StorageInterface $storage, Product $product) {
$this->storage = $storage;
$this->product = $product;
}
public function add(Product $product, $quantity) {
if ($this->has($product)) {
$quantity = $this->get($product)['quantity'] + $quantity;
}
$this->update($product, $quantity);
}
public function update(Product $product, $quantity) {
if (!$this->product->find($product->id)->hasStock($quantity)) {
throw new QuantityExceededException;
}
if ($quantity === 0) {
$this->remove($product);
return;
}
$this->storage->set($product->id, [
'product_id' => (int) $product->id,
'quantity' => (int) $quantity,
]);
}
namespace Cart\Basket;
use Cart\Models\Product;
use Cart\Support\Storage\Contracts\StorageInterface;
use Cart\Basket\Exceptions\QuantityExceededException;
class Basket {
protected $storage;
protected $product;
public function __construct(StorageInterface $storage, Product $product) {
$this->storage = $storage;
$this->product = $product;
}
public function add(Product $product, $quantity) {
if ($this->has($product)) {
$quantity = $this->get($product)['quantity'] + $quantity;
}
$this->update($product, $quantity);
}
public function update(Product $product, $quantity) {
if (!$this->product->find($product->id)->hasStock($quantity)) {
throw new QuantityExceededException;
}
if ($quantity === 0) {
$this->remove($product);
return;
}
$this->storage->set($product->id, [
'product_id' => (int) $product->id,
'quantity' => (int) $quantity,
]);
}