Skip to content

Commit

Permalink
là c'est vraiment fini
Browse files Browse the repository at this point in the history
  • Loading branch information
IUT BLAGNAC committed Jan 8, 2025
1 parent 041392e commit f0bbd6b
Show file tree
Hide file tree
Showing 5 changed files with 187 additions and 130 deletions.
4 changes: 2 additions & 2 deletions WEB/BD/SCRIPT PROCEDURES.sql
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ BEGIN
END IF;

-- Vérifier le stock disponible
SELECT STOCK INTO v_stockProduit
SELECT STOCKDISPONIBLE INTO v_stockProduit
FROM PRODUIT
WHERE IDPRODUIT = v_idProduit;

Expand All @@ -138,7 +138,7 @@ BEGIN

-- Mise à jour du stock après la commande
UPDATE PRODUIT
SET STOCK = STOCK - v_quantitePanier
SET STOCKDISPONIBLE = STOCKDISPONIBLE - v_quantitePanier
WHERE IDPRODUIT = v_idProduit;
ELSE
-- Si le stock est insuffisant, gérer l'erreur (par exemple, on peut lever une exception ou stopper la procédure)
Expand Down
253 changes: 130 additions & 123 deletions WEB/PHP/commander.php
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
<?php
ob_start();
$pageTitle = "Informations de commande";
require_once "./include/head.php";
?>
<body>
<?php
require_once "./include/header.php";
require_once "./include/header.php";
require_once "./include/menu.php";
require_once "./include/isLogin.php";
?>

<!-- Contenu principal -->
<main role="main" class="container my-5">
<?php
Expand Down Expand Up @@ -38,149 +39,154 @@ function calculerTotalPanier($panier) {
$livraisonDomicile = ceil($totalPanier / 1000); // Arrondi sup du total par 1000
$livraisonPointRelais = 0; // Gratuit
?>
<div class="row gx-3 gx-lg-5">
<div class="col-lg-8">
<!-- Choix de la livraison -->
<h2><?= htmlspecialchars($user['PRENOM']) ?>, choisissez votre livraison</h2>

<!-- Bouton radio domicile -->
<div class="card mt-4">
<div class="card-header">
<div class="ms-4">
<input class="form-check-input" type="radio" name="livraison" id="livraisonDomicile" value="domicile" checked>
<label class="form-check-label fw-bold" for="livraisonDomicile">
Livraison à domicile (<?= $livraisonDomicile ?> €)
</label>
</div>
</div>
<div class="card-body">
<div class="ms-2 mt-2">
<?php
if ($adresse) {
list($numRue, $libelleVoie, $codePostal, $ville) = explode(", ", $adresse);
echo "
<div class=\"d-flex justify-content-between align-items-center\">
<span><strong>Adresse :</strong> $numRue $libelleVoie, $codePostal $ville</span>
<a href=\"consultCompte.php\" class=\"btn btn-sm btn-outline-secondary rounded-pill\">Modifier</a>
</div>";
} else {
echo "
<div class=\"d-flex justify-content-between align-items-center text-muted adresse-non-renseignee\">
<span>Adresse non renseignée</span>
<a href=\"consultCompte.php\" class=\"btn btn-sm btn-outline-secondary rounded-pill\">Modifier</a>
</div>";
}
?>
<form method="POST" action="commander.php">
<div class="row gx-3 gx-lg-5">
<div class="col-lg-8">
<!-- Choix de la livraison -->
<h2><?= htmlspecialchars($user['PRENOM']) ?>, choisissez votre livraison</h2>
<!-- Bouton radio domicile -->
<div class="card mt-4">
<div class="card-header">
<div class="ms-4">
<input class="form-check-input" type="radio" name="livraison" id="livraisonDomicile" value="domicile" checked>
<label class="form-check-label fw-bold" for="livraisonDomicile">
Livraison à domicile (<?= $livraisonDomicile ?> €)
</label>
</div>
</div>
</div>
</div>
<!-- Bouton radio point relais -->
<div class="card mt-4">
<div class="card-header">
<div class="ms-4">
<input class="form-check-input" type="radio" name="livraison" id="livraisonRelais" value="relais">
<label class="form-check-label fw-bold" for="livraisonRelais">
Livraison en point relais (Gratuit)
</label>
<div class="card-body">
<div class="ms-2 mt-2">
<?php
if ($adresse) {
list($numRue, $libelleVoie, $codePostal, $ville) = explode(", ", $adresse);
echo "
<div class=\"d-flex justify-content-between align-items-center\">
<span><strong>Adresse :</strong> $numRue $libelleVoie, $codePostal $ville</span>
<a href=\"consultCompte.php\" class=\"btn btn-sm btn-outline-secondary rounded-pill\">Modifier</a>
</div>";
} else {
echo "
<div class=\"d-flex justify-content-between align-items-center text-muted adresse-non-renseignee\">
<span>Adresse non renseignée</span>
<a href=\"consultCompte.php\" class=\"btn btn-sm btn-outline-secondary rounded-pill\">Modifier</a>
</div>";
}
?>
</div>
</div>
</div>
<div class="card-body">
<?php
$reqPointRelais = $conn->prepare("SELECT * FROM POINTRELAIS;");
$reqPointRelais->execute();

foreach ($reqPointRelais as $pointRelais):
$idPointRelais = htmlspecialchars($pointRelais['IDPOINTRELAIS']);
$adressePointRelais = htmlspecialchars($pointRelais['ADRESSEPOINTRELAIS']);
?>
<div class="d-flex align-items-center ms-3">
<!-- Bouton radio pour chaque point relais (désactivé par défaut) -->
<input class="form-check-input" type="radio" name="pointRelais" id="<?= $idPointRelais ?>" value="<?= $idPointRelais ?>">
<label class="form-check-label" for="<?= $idPointRelais ?>">
<?= $adressePointRelais ?>
<!-- Bouton radio point relais -->
<div class="card mt-4">
<div class="card-header">
<div class="ms-4">
<input class="form-check-input" type="radio" name="livraison" id="livraisonRelais" value="relais">
<label class="form-check-label fw-bold" for="livraisonRelais">
Livraison en point relais (Gratuit)
</label>
</div>
<div class="w-100" style="border-top: 1px solid #ccc; margin: 20px 0;"></div>
<?php endforeach; ?>
</div>
<div class="card-body">
<?php
$reqPointRelais = $conn->prepare("SELECT * FROM POINTRELAIS;");
$reqPointRelais->execute();

foreach ($reqPointRelais as $pointRelais):
$idPointRelais = htmlspecialchars($pointRelais['IDPOINTRELAIS']);
$adressePointRelais = htmlspecialchars($pointRelais['ADRESSEPOINTRELAIS']);
?>
<div class="d-flex align-items-center ms-3">
<!-- Bouton radio pour chaque point relais (désactivé par défaut) -->
<input class="form-check-input" type="radio" name="pointRelais" id="<?= $idPointRelais ?>" value="<?= $idPointRelais ?>">
<label class="form-check-label" for="<?= $idPointRelais ?>">
<?= $adressePointRelais ?>
</label>
</div>
<div class="w-100" style="border-top: 1px solid #ccc; margin: 20px 0;"></div>
<?php endforeach; ?>
</div>
</div>
</div>

<div class="w-100" style="border-top: 1px solid #ccc; margin: 20px 0;"></div>
<div class="w-100" style="border-top: 1px solid #ccc; margin: 20px 0;"></div>

<!-- Choix du paiement -->
<h2 class="mt-5"><?= htmlspecialchars($user['PRENOM']) ?>, choisissez votre mode de paiement</h2>
<!-- Carte bancaire -->
<div class="card mt-4">
<div class="card-header">
<div class="ms-4">
<input class="form-check-input me-2" type="radio" name="paiement" id="paiementCB" value="carteBancaire" checked>
<label class="form-check-label fw-bold" for="paiementCB">Carte bancaire</label>
<!-- Choix du paiement -->
<h2 class="mt-5"><?= htmlspecialchars($user['PRENOM']) ?>, choisissez votre mode de paiement</h2>
<!-- Carte bancaire -->
<div class="card mt-4">
<div class="card-header">
<div class="ms-4">
<input class="form-check-input me-2" type="radio" name="paiement" id="paiementCB" value="carteBancaire" checked>
<label class="form-check-label fw-bold" for="paiementCB">Carte bancaire</label>
</div>
</div>
</div>
<div class="card-body">
<div id="formCarteBancaire">
<input type="text" id="numCarte" class="form-control mb-2 w-75" placeholder="Numéro de carte (16 chiffres)">
<div class="d-flex gap-2 w-50">
<input type="text" id="dateExpiration" class="form-control mb-2 rounded-pill" placeholder="MM/AA">
<input type="text" id="cryptogramme" class="form-control mb-2" placeholder="Cryptogramme">
<div class="card-body">
<div id="formCarteBancaire">
<input type="text" id="numCarte" class="form-control mb-2 w-75" placeholder="Numéro de carte (16 chiffres)" maxlength="16">
<div class="d-flex gap-2 w-50">
<div>
<input type="text" id="dateExpiration" class="form-control mb-2 rounded-pill" placeholder="MM/AA" maxlength="5">
<small class="text-danger d-none" id="dateExpirationError">Date invalide</small>
</div>
<input type="text" id="cryptogramme" class="form-control mb-2" placeholder="Cryptogramme" maxlength="3">
</div>

</div>
</div>
</div>
</div>

<!-- PayPal -->
<div class="card mt-4">
<div class="card-header">
<div class="ms-4">
<input class="form-check-input me-2" type="radio" name="paiement" id="paiementPaypal" value="paypal">
<label class="form-check-label fw-bold" for="paiementPaypal">PayPal</label>
<!-- PayPal -->
<div class="card mt-4">
<div class="card-header">
<div class="ms-4">
<input class="form-check-input me-2" type="radio" name="paiement" id="paiementPaypal" value="paypal">
<label class="form-check-label fw-bold" for="paiementPaypal">PayPal</label>
</div>
</div>
<div class="card-body d-none" id="formPaypal">
<input type="email" id="emailPaypal" class="form-control" placeholder="Adresse e-mail PayPal" maxlength="50">
</div>
</div>
<div class="card-body d-none" id="formPaypal">
<input type="email" id="emailPaypal" class="form-control" placeholder="Adresse e-mail PayPal">
</div>
</div>
</div>

<!-- Récapitulatif -->
<div class="col-lg-4">
<h2>Récapitulatif</h2>
<div class="card mb-4">
<div class="card-body">
<!-- Liste des produits -->
<h5 class="card-title"><strong>Articles</strong></h5>
<?php foreach ($panier as $produit): ?>
<!-- Récapitulatif -->
<div class="col-lg-4">
<h2>Récapitulatif</h2>
<div class="card mb-4">
<div class="card-body">
<!-- Liste des produits -->
<h5 class="card-title"><strong>Articles</strong></h5>
<?php foreach ($panier as $produit): ?>
<p class="card-text my-0">
<?php
if ($produit['QUANTITEPANIER'] > 1) {
echo "x".$produit['QUANTITEPANIER']." ";
}
echo "<strong>".htmlspecialchars($produit['NOMPRODUIT'])."</strong> - ".number_format($produit['PRIX'] * $produit['QUANTITEPANIER'], 2)."";
?>
</p>
<?php endforeach; ?>

<!-- Livraison -->
<h5 class="card-title mt-4"><strong>Livraison</strong></h5>
<p class="card-text my-0">
<?php
if ($produit['QUANTITEPANIER'] > 1) {
echo "x".$produit['QUANTITEPANIER']." ";
}
echo "<strong>".htmlspecialchars($produit['NOMPRODUIT'])."</strong> - ".number_format($produit['PRIX'] * $produit['QUANTITEPANIER'], 2)."";
?>
<span id="livraisonPrix"><?= number_format($livraisonDomicile, 2) ?> €</span>
</p>
<?php endforeach; ?>

<!-- Livraison -->
<h5 class="card-title mt-4"><strong>Livraison</strong></h5>
<p class="card-text my-0">
<span id="livraisonPrix"><?= number_format($livraisonDomicile, 2) ?> €</span>
</p>

<!-- Total commande -->
<h4 class="card-title mt-4"><strong>Total commande</strong></h4>
<p class="card-text my-0">
<span id="totalPrix"><?= number_format($totalPanier + $livraisonDomicile, 2) ?> €</span>
</p>
<script>
const prixLivraisonDomicile = <?= $livraisonDomicile ?>;
const prixLivraisonRelais = <?= $livraisonPointRelais ?>;
const totalPanier = <?= $totalPanier ?>;
</script>
<!-- Total commande -->
<h4 class="card-title mt-4"><strong>Total commande</strong></h4>
<p class="card-text my-0">
<span id="totalPrix"><?= number_format($totalPanier + $livraisonDomicile, 2) ?> €</span>
</p>
<script>
const prixLivraisonDomicile = <?= $livraisonDomicile ?>;
const prixLivraisonRelais = <?= $livraisonPointRelais ?>;
const totalPanier = <?= $totalPanier ?>;
</script>
</div>
</div>
<button type="submit" name="submit" class="btn btn-primary rounded-pill w-100">Passez votre comande</button>
</div>
<button type="submit" name="submit" class="btn btn-primary rounded-pill w-100">Passez votre comande</button>
</div>
</div>
</form>
<?php
if (isset($_POST['submit'])) {
// Récupération des données
Expand All @@ -189,7 +195,7 @@ function calculerTotalPanier($panier) {
$idUtilisateur = $_SESSION['user'];
$adresseLivraison = null;
$idPointRelais = null;
$prixCommande = number_format($totalPanier + $adresseLivraison, 2);
$prixCommande = number_format($totalPanier + ($modeLivraison === 'domicile' ? $livraisonDomicile : $livraisonPointRelais), 2, '.', '');

// Gestion de l'adresse ou du point relais en fonction du mode de livraison
if ($modeLivraison === 'domicile') {
Expand Down Expand Up @@ -225,3 +231,4 @@ function calculerTotalPanier($panier) {
<script src="javascript/script.js"></script>
</body>
</html>
<?php ob_end_flush(); ?>
Loading

0 comments on commit f0bbd6b

Please sign in to comment.