示例#1
0
 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');
 }
示例#2
0
 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);
 }
示例#3
0
 /**
  * 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());
     }
 }
示例#4
0
 /**
  * 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());
     }
 }