package ressources;
import java.util.HashMap;
import java.util.Iterator;
import base.Produit;
public class Panier {
/* La liste des produits du panier */
private HashMap<String,Produit> produits;
private HashMap<String,Integer> quantites;
private double montant;
private int maxDelai;
public Panier(){
produits = new HashMap<String,Produit>();
quantites = new HashMap<String,Integer>();
}
public int getQuantite(String idProduit){
return ((Integer)quantites.get(idProduit).intValue());
}
public int getQuantite(Produit produit){
return ((Integer)quantites.get(produit.getReference())).intValue();
}
public void ajouterProduit(Produit produit,int qte){
/*Integer oldValue = (Integer)produits.get(idProduit);
Integer newValue = (oldValue==null?new Integer(qte):new Integer(qte+oldValue.intValue()));*/
produits.put(produit.getReference(),produit);
quantites.put(produit.getReference(),qte);
//On recalcule le montant
calculerMontant();
}
public Produit getProduit(String idProduit){
return produits.get(idProduit);
}
public void modifierQuantite(String idProduit,int qte){
if(qte < 0) return;
quantites.put(idProduit, new Integer(qte));
calculerMontant();
}
public void ajouterQuantite(String idProduit){
Integer oldValue = quantites.get(idProduit);
quantites.put(idProduit, oldValue + 1);
calculerMontant();
}
public void diminuerQuantite(String idProduit){
Integer oldValue = quantites.get(idProduit);
if(oldValue == 0) return;
quantites.put(idProduit, oldValue - 1);
calculerMontant();
}
public void retirerProduit(String idProduit){
produits.remove(idProduit);
quantites.remove(idProduit);
// On recalcule le montant
calculerMontant();
}
/*public void ajouterQte(String idProduit,int qte){
Integer oldValue = (Integer)produits.get(idProduit);
Integer newValue = (oldValue==null?new Integer(qte):new Integer(qte+oldValue.intValue()));
produits.put(idProduit,newValue);
}*/
public void calculerMontant(){
//double montant = 0;
montant = 0;
Iterator itPdts = produits.values().iterator();
while(itPdts.hasNext()){
Produit p = (Produit)itPdts.next();
montant+=p.getPrix()*getQuantite(p);
}
//return montant;
}
public void viderPanier(){
produits = new HashMap<String,Produit>();
quantites = new HashMap<String,Integer>();
montant = 0;
/*Iterator keys = produits.keySet().iterator();
while(keys.hasNext()){
produits.remove(keys.next());
}*/
}
public boolean estVide(){
return produits.isEmpty();
}
public int getNbProduits(){
return produits.size();
}
public HashMap<String, Produit> getProduits() {
return produits;
}
public void setProduits(HashMap<String, Produit> produits) {
this.produits = produits;
}
public double getMontant() {
return montant;
}
public void setMontant(double montant) {
this.montant = montant;
}
}