<?php
/********************************************************************************
// Fonctions de gestion du panier (cart) 										*
// V-0.0.0 2013/03/09 - (c) Francois Kieffer									*
********************************************************************************/
// =============================================================================*
// Pré-requis : la connexion avec le serveur est établie. l'identifiant du panier est déterminé.
//
// cart_getCartCount($cartId)			retourne le nombre d'article du panier
// cart_getCart($cartId)				retourne tout l'enregistrement d'entête du panier (dont l'heure, la date, ...)
// cart_getCartItem($cartId, $itemId)	retourne un article du panier
// cart_newCart($cartId)				Ajoute un panier s'il nexiste pas encore, on retourne l'enregistrement complet
// cart_addItem($cartId, $itemId, $itemQty) Ajoute un article au panier ou incrémente sa quantité. Si besoin, crée le panier
// cart_previewCart($cartId){				Affiche le panier sous forme d'une liste. Utilisé dans les pages sauf celle de validation du panier.
// =============================================================================*
// -------------------------------------------------------------------
function CART_getCartRandomId($long=40) { // retourne une chaîne  de caractères aléatoires, longueur 40 /dft.
	$result = ""; $chaineCle = "rSaHbNAZAVByvIGcXTGeEKiRMQtjPRTqufYEgLhUYUDWwJd0ICkpxOmPOZsn";
	srand((double)microtime()*time());
	for($i=0; $i<$long; $i++) $result .= $chaineCle[rand()%strlen($chaineCle)];
	return $result;
}
// -------------------------------------------------------------------
function CART_getCartCount($cartId){
global $connexion;
	$requete="SELECT count(*) FROM panierArticle WHERE panierId='$cartId' ;";
	$t_record=DB_chercherEnreg($requete, $connexion);
	//echo " countCart=".mysql_error();
	return $t_record[0];
}
// -------------------------------------------------------------------
function CART_getCart($cartId){ // tout l'enregistrement 
global $connexion;
	$requete="SELECT panierNum FROM panier WHERE panierId='$cartId' ;";
	$t_record=DB_chercherEnreg($requete, $connexion);
	//echo " getCart=".mysql_error();
	return $t_record;
}
// -------------------------------------------------------------------
function CART_getCartItem($cartId, $itemId){
global $connexion;
	$requete="SELECT * FROM panierArticle WHERE panierId='$cartId' AND artCode='$itemId' ;";
	$t_record=DB_chercherEnreg($requete, $connexion);
	//echo " getCartItem=".mysql_error();
	return $t_record[0];
}
// -------------------------------------------------------------------
function CART_newCart($cartId){ // ajouter un panier (attention, à ne faire qu'une seule fois !), on retourne l'enregistrement complet
global $connexion;
	$t_record="";
	$t_panier=CART_getCart($cartId);
	if (!$t_panier) { // si le panier n'existe pas, l'insérer
		$requete="insert into panier (panierId) VALUE('$cartId') ;";
		$t_panier=DB_executerRequete($requete, $connexion);
		//echo " newCart=".mysql_error();
	}
	return $t_panier;// retourner le résultat ou l'enregistrement complet (ou une erreur)
}
// -------------------------------------------------------------------
function CART_addItem($cartId, $itemId, $itemQty){ // ajouter un item dans le panier. créer le panier, si besoin
global $connexion;
	$t_panier=CART_newCart($cartId); // créer le panier, si besoin
	if ($t_panierArticle=CART_getCartItem($cartId, $itemId)){ // l'article est déjà commandé, ajouter la quantité
		$requete="UPDATE panierArticle SET panierQty=panierQty+$itemQty WHERE panierId='$cartId' and artCode='$itemId' ;";
	}else{	// nouvel article, insérer une ligne.
		$requete="INSERT INTO panierArticle (panierId, artCode, panierQty) VALUE('$cartId', '$itemId', '$itemQty') ;";
	}
	$t_record=DB_executerRequete($requete, $connexion);
	//echo " addItem=".mysql_error();
	return $t_record;
}
// -------------------------------------------------------------------
function CART_previewCart($cartId, $returnUrl="", $btnDsp="y"){
global $connexion;
	// préparer la requête pour la liste des articles
	$requete_sql="SELECT panierArticle.artCode, panierQty, artDesc FROM panierArticle, article 
		WHERE panierArticle.artCode=article.artCode 
		AND panierId='$cartId'  ;";
	
	// affichage du Panier
	echo "<div width='100%' id=cartPreview align=center >\n";
	echo "<div width='100%' style='margin:0; padding:3px;' class=panier_Titre>Votre panier</div>\n";
	$cartCount=CART_getCartCount($cartId);
	if($cartCount && $cartCount>0) {
		echo "<div style='margin:0;padding:0;' class=panier_Desc >Le panier contient $cartCount article(s)</div>";
		$requete_id=DB_ouvrirRequete($requete_sql, $connexion);
		$t_record=DB_lireLigne($requete_id);
		if ($t_record){ // si un enregistrement est trouvé :
			echo "<table style='margin:0;padding:0;font-size:10px;' id=panier_PrevList border=1>\n";
			echo "<tr><th>Ref</th><th>Designation</th><th>qty</th></tr>\n";
			while ($t_record){
				echo "<tr><td>".$t_record['artCode']."</td><td>".$t_record['artDesc']."</td><td>".$t_record['panierQty']."</td></tr>\n";
					$t_record=DB_lireLigne($requete_id);
			}
			echo "</table>";
			if ($btnDsp=="y"){
				echo "<div id='panier_ValiderBtn'>";
					echo "<form action='cdeCartDsp.php'>";
					echo "<input type=hidden name=id value=$cartId />";
					echo "<input type=hidden name=returnUrl value='$returnUrl' />";
					echo "<input type=button name=panierValider value='Valider le panier' class='panier_BtnValider' onclick='this.form.submit();' />";
					echo "</form>";
				echo "</div>";
			}
			
		}
	}else echo "<div style='margin:0;padding:0;' class=panier_Desc >Votre panier est vide.<br></div>";
	echo "</div>";
}
// =============================================================================*
?>