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)); unset($_SESSION['Panier']); header('Location:?page=monCompte&action=voirCommandes');