Example #1
0
 /**
  * Enregistre les articles d'une commande du client en cours
  *
  * @param Commander $unCommander
  *
  * @throws ErrorSQLException
  */
 public static function ajouterArticleCommande(Commander $unCommander)
 {
     try {
         $conn = MConnexion::getBdd();
         $conn->beginTransaction();
         $reqPrepare = $conn->prepare('INSERT INTO commander
             (numArt, numCde, qte)
             VALUES (?,?,?)');
         $reqPrepare->execute([$unCommander->getUnArticle()->getNumArt(), $unCommander->getUneCommande()->getId(), $unCommander->getQte()]);
         $conn->commit();
         $conn = null;
     } catch (PDOException $ex) {
         $conn->rollBack();
         throw new ErrorSQLException('Impossible de continuer la validation de la commande. Détails : ' . $ex->getMessage());
     }
 }
Example #2
0
 case 'enregistrerPanier':
     try {
         if (!array_key_exists('numCarte', $_POST)) {
             throw new \UnexpectedValueException('Les données saisies sont invalides. pas de post');
         }
         if (strlen($_POST['numCarte']) !== 16) {
             throw new \UnexpectedValueException('Les données saisies sont invalides. 16 numéros carte');
         }
         $datePost = new \DateTime($_POST['CBYear'] . '-' . $_POST['CBMonth'] . '-01');
         if (new \DateTime() > $datePost) {
             throw new \UnexpectedValueException('Votre carte a expirée.');
         }
         $uneCommande = new Commande(Connexion::getLastIdCommande(), $_SESSION['Utilisateur'], date('Y-m-d H:i:s'));
         $lesCommander = new Collection();
         foreach ($_SESSION['Panier']->getProduitsPanier() as $unArticle) {
             $unCommander = new Commander();
             $unCommander->setUnArticle($unArticle);
             $unCommander->setQte($unArticle->getQte());
             $unCommander->setUneCommande($uneCommande);
             $lesCommander->ajouter($unCommander);
         }
         $uneCommande->setLesArticles($lesCommander);
         if ($_SESSION['Panier']->getPointsUtilise() > 0) {
             $uneCommande->setPointsUtilise($_SESSION['Panier']->getPointsUtilise());
         }
         MCommande::ajouterCommande($uneCommande);
         foreach ($uneCommande->getLesArticles()->getCollection() as $unCommander) {
             MCommander::ajouterArticleCommande($unCommander);
             MArticle::updateQteStock($unCommander->getUnArticle(), $unCommander->getQte());
         }
         MUtilisateur::setPoints($_SESSION['Utilisateur'], $_SESSION['Utilisateur']->getPoints() + Build::newPoints($_SESSION['Panier']->getPrixTotal(), Build::TYPE_COMMANDE));