public function testDiminuerQuantite() { $this->article->diminuerQuantite(4); $this->assertEquals(1, $this->article->getQte(), '1 quantity expected'); $this->article->diminuerQuantite(5); $this->assertEquals(0, $this->article->getQte(), '0 quantity expected'); }
public function setUp() { $this->commande = new Commande(1, new Utilisateur(1, 'Kévin', 'Turmel', '26C Rue Pierre Brossolette', 53100, 'Mayenne', 'kdsjglkjdfklsjdfcgbnliuez', '*****@*****.**', 150), date('Y-m-d')); $articles = new Collection(); $article = new Article(); $article->setDescription('Bonjour')->setDesignation('ArticleTest 1')->setNumArt(2)->setPu(35)->setQte(5)->setQteStock(30)->setUrl('test'); $articles->ajouter($article); $article2 = new Article(); $article2->setDescription('Bo2')->setDesignation('ArticleTest 2')->setNumArt(1)->setPu(800)->setQte(8)->setQteStock(90)->setUrl('test'); $articles->ajouter($article2); $this->commande->setLesArticles($articles); }
/** * Met à jour le stock de l'article passé en paramètre * lorsqu'un client finalise sa commande * * @param Article $article * @param int $qteCommande * @throws ErrorSQLException */ public static function updateQteStock(Article $article, $qteCommande) { $conn = MConnexion::getBdd(); try { $conn->beginTransaction(); $req = $conn->prepare('UPDATE article SET qteStock = ? WHERE numArt = ?'); $qte = $article->getQteStock() - $qteCommande < 0 ? 0 : $article->getQteStock() - $qteCommande; $req->execute([$qte, $article->getNumArt()]); $conn->commit(); $conn = null; } catch (PDOException $e) { $conn->rollBack(); throw new ErrorSQLException($e->getMessage()); } }
/** * Ajoute un article au panier ou augmente de 1 sa quantité s'il est déjà dans le panier * * @param Article $unProduit * @param int $qte * * @throws InvalidArgumentException */ public function ajouterUnProduit(Article $unProduit, $qte) { if ($this->collProduit->cleExiste($unProduit->getNumArt())) { $produitPanier = $this->collProduit->getElement($unProduit->getNumArt()); if ($unProduit->getQte() + $produitPanier->getQte() > $unProduit->getQteStock()) { throw new InvalidArgumentException('Quantité en stock insuffisante'); } $this->augmenterQuantiteProduit($unProduit->getNumArt(), $qte); } else { $this->collProduit->ajouter($unProduit, $unProduit->getNumArt()); } }