1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| if(isset($_POST['payer']) && $_POST['payer'])
{
//boucle qui tourne autant de fois qu'il y a d'articles différents dans le panier :
for($i = 0; $i < count($_SESSION['panier']['id_article']) ; $i++)
//cf. count() équivalent du sizeof() => http://php.net/manual/fr/function.sizeof.php
{
$resultat = informationSurUnArticle($_SESSION['panier']['id_article'][$i]);
$article = $resultat->fetch_assoc();
#verification du stock : (on est toujours dans la boucle dont le but est de nous retourner le contenu du panier)
if($article['stock'] < $_SESSION['panier']['quantite'][$i]) //si le stock actuel est strictement inférieur à la quantité que l'on souhaite commander...=>PROBLEME !!!
{
echo '<hr><div class="erreur">Stock restant : ' . $article['stock'] . '</div>';
echo '<div class="erreur">Quantité demandée : ' .$_SESSION['panier']['quantite'][$i] . '</div>';
if($article['stock'] > 0)
{
echo '<div class="erreur">la quantité de l\'article ' . $_SESSION['panier']['id_article'][$i] . ' a été réduite car notre stock était insuffisant. Veuillez vérifier vos achats</div>';
$_SESSION['panier']['quantite'][$i] = $article['stock'];
}
else //rupture de stock : on retire carrément les articles du panier.
{
echo '<div class="erreur">l\'article ' . $_SESSION['panier']['id_article'][$i] . ' a été retiré de votre panier car nous sommes en rupture de stock, veuilliez vérifier vos achats.</div>';
retirerArticleDuPanier($_SESSION['panier']['id_article'][$i]); //on retire l'article.
$i--; //on décrémente pour retirer un article. Lorsque l'on souhaite rajouter une valeur à notre variable on incrémente, ici on souhaite enlever une valeur du coup on décrémente.
}
$erreur = TRUE;
}
}
if(!isset($erreur)) //si $erreur = FALSE => on enregistre le panier.
{
executeRequete("INSERT INTO commande(id_membre,montant,date) VALUES (" . $_SESSION['utilisateur']['id_membre'] . "," . montantTotal() . ", NOW())" );
//récupération du dernier identifiant auto-généré par l'auto-increment de la BDD
$id_commande = $mysqli->insert_id;
//pour tous les articles dans le panier, on observe l'id, la quantité, le prix : on récupère tout pour les placer dans la table details_commande :
for($j = 0 ; $j < count($_SESSION['panier']['id_article'][$j]); $j++)
{
//ajout des informations dans la table details_commande :
executeRequete("INSERT INTO details_commande (id_commande,id_article,quantite,prix) VALUES ($id_commande, ". $_SESSION['panier']['id_article'][$j] . "," . $_SESSION['panier']['quantite'][$j] . ",". $_SESSION['panier']['prix'][$j]. " )" );
//on va faire un update de notre stock : on attribue le nouveau stock
executeRequete("UPDATE article SET stock=stock-".$_SESSION['panier']['quantite'][$j] . " WHERE id_article=" . $_SESSION['panier']['id_article'][$j]);
}
//paiement par chèque du coup on vide le panier :
unset($_SESSION['panier']);
//envoi mail confirmation achat au client :
// mail($_SESSION['utilisateur']['email'],"Confirmation de la commande", "Votre suivi de commande est le suivante : $id_commande","From:confirmation@hus.com" );
echo "<div class='validation'>Merci pour votre commande. Votre n° de suivi est le $id_commande</div>";
}
} |
Partager