<?php 
include "Produit.php" ;
include 
"LignePanier.php";

class 
Panier {
       public 
$lignes ;
       public 
$nbProduits ;
    
       function 
__construct() {
         
$this->nbProduits 
       }
       
       
       
/* on ajoute un produit au panier */
       
function ajouterProduit($code$nom$prix) {
          
// echo "<p>ajouter $code $nom $prix </p> ";
                   
           /* on verifie si le panier n'est pas vide */ 
           
if ( $this->nbProduits == 0) {
              
//  echo "<p>premier produit </p> ";
                 
               /* le panier etait vide - on y ajoute un nouvel produit */
               
$prod = new Produit($code$nom$prix);
               
               
/* le produit dans la ligne de panier */ 
               
$lp = new LignePanier($prod);
               
               
/* on garde chaque ligne dans un tableau associatif, avec le code produit en clĂ© */
               
$this->lignes[$code] = $lp;
               
             
//  echo "<p>" . $lp->prod->code . " " . $lp->qte . "</p>" ;
               
               
$this->nbProduits 1;
           }
           else {
               
/* il y a deja des produits dans le panier */
               /* on verifie alors si $code n'y est pas deja */
               
               
if ( isset ($this->lignes[$code]) ) {
                   
/* le produit y figure deja, on augmente la quantite */
                   
$lp =  $this->lignes[$code] ; //on recupere la ligne du panier
                   
$qte $lp->qte
                   
$lp->qte $qte 1;
                   
                  
// echo "<p> nouvelle qte ($qte) : " . $lp->qte ."</p>" ;
                   
               
}
               else { 
                   
/* le produit n'etait pas encore dans le panier, on n'y ajoute */
                   
$prod = new Produit($code$nom$prix);
                   
$lp = new LignePanier($prod);
                   
                   
$this->lignes[$code] = $lp;
                   
$this->nbProduits $this->nbProduits 1;
                   
                  
// echo "<p>" . $this->lignes[$code]->prod->code . " " . $this->lignes[$code]->qte . "</p>" ;

               
}   
                
           }           
           
       } 
//fin ajouter
       
       
      /* on supprime un produit du panier */
      
function supprimerProduit($code) {
         
// echo "<p> supprimer $code </p>";
          
          /* on verifie si le produit est dans le panier */
          
if ( isset($this->lignes[$code]) ) {
              
/* il y est, donc on retrouve la ligne de panier */
              
$lp $this->lignes[$code] ;
              
              
/* on supprime 1 de la quantite */
              
$lp->qte $lp->qte ;  
              
             
// echo "<p> nouvelle qte : " . $lp->qte . "</p>" ;
              
              /* si qte<1, on supprime toute la ligne du tableau */
              
if (  $lp->qte 1) {
                  unset(
$this->lignes[$code]);
                
//  echo "<p> produit $code supprime " . count($this->lignes) . "</p>";
                
                /* on enleve un produit de nbProduits */
                
$this->nbProduits $this->nbProduits 1;
              }
          }     
      }
       
     
/* on calcule le montant du panier */
     
function calculerTotal () {
          
$total 0;
          
          foreach (
$this->lignes as $lp) {
              
$prod $lp->prod;
              
$prixLigne $prod->prix $lp->qte ;
              
$total $total $prixLigne ;
          }
          
          return 
$total;
     }  
     
     
/* on obtient combien de produits on a dans le panier */
     
function getNbProduits() {
        return 
$this->nbProduits;
     }
       
    }

?>