Exemple #1
0
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));
    unset($_SESSION['Panier']);