0 AND NumUtilisateur_Client='".NUM_UTILISATEUR."'"; $Requete=mysql_query($SQL,CONNECTION); if ($Requete) { for ($i=0;$i0) { $SQL="SELECT SUM(PlusPoints)- SUM(MoinsPoints) As TotalCredit FROM Points WHERE NumUtilisateurPoints='".NUM_UTILISATEUR."' AND NumClientPoints='".$NumClient."' "; $DateAu=mysql_date(); $DateAu=TransformeDate2(mysql_jour($DateAu),mysql_mois($DateAu),mysql_annee($DateAu)-1); $SQL.=" AND DatePoints>'".$DateAu."'"; $Requete=mysql_query($SQL,CONNECTION); if ($Requete) {$T=mysql_fetch_object($Requete); $TotalCredit=$T->TotalCredit; mysql_free_result($Requete); } else {$TotalCredit=0;} } else {$TotalCredit=0;} return $TotalCredit; } /* ------------------------------------------------------------------------------------------------------- Calcule le total ee points de moins d'un an pour le client en cours, points non temporaires -------------------------------------------------------------------------------------------------------*/ function CalculeTotalPoints_Valides($NumClient) { if ($NumClient>0) { $SQL="SELECT SUM(PlusPoints)- SUM(MoinsPoints) As TotalCredit FROM Points WHERE NumUtilisateurPoints='".NUM_UTILISATEUR."' AND NumClientPoints='".$NumClient."' "; $SQL.=" AND TempoPoints NOT LIKE 'Oui'"; $DateAu=mysql_date(); $DateAu=TransformeDate2(mysql_jour($DateAu),mysql_mois($DateAu),mysql_annee($DateAu)-1); $SQL.=" AND DatePoints>'".$DateAu."'"; $Requete=mysql_query($SQL,CONNECTION); if ($Requete) {$T=mysql_fetch_object($Requete); $TotalCredit=$T->TotalCredit; mysql_free_result($Requete); } else {$TotalCredit=0;} } else {$TotalCredit=0;} return $TotalCredit; } /*---------------------------------------------------------------------------------------------------------- Retire une ligne de points du panier, suite à l'achat d'un produit ------------------------------------------------------------------------------------------------------------*/ function Retire_Points_Produit($Session,$NumProd,$NumClient,$NumLignePanier) { $SQL="SELECT Fidelite_Produit FROM Produits WHERE NumProd='$NumProd'"; $Requete=mysql_query($SQL,CONNECTION); if ($Requete) {$T=mysql_fetch_object($Requete); $CreditProduit=$T->Fidelite_Produit; mysql_free_result($Requete); $TotalCreditRestant=CalculeTotalPoints($NumClient); if ($TotalCreditRestant>0) {// le crdéit n'est pas nul if ($TotalCreditRestant<$CreditProduit) {//s'il reste des cedit fidelite à utiliser et s'ils sont supérieurs au produit $CreditProduit=$TotalCreditRestant; } $SQL="INSERT INTO Points VALUES ('', NOW(''),'$NumClient','".NUM_UTILISATEUR."','','$CreditProduit','".FIDELITE_RETRAIT_ACHAT."','Oui','$Session','$NumLignePanier')"; $Requete=mysql_query($SQL,CONNECTION); } } } /*--------------------------------------------------------------------------------------------------------------- efface les points fidelité temporaires lorsqu'on efface un produit du panier ---------------------------------------------------------------------------------------------------------------*/ function Efface_Points_Produit ($NumLigneAEffacer,$Session) { $SQL="DELETE FROM Points WHERE NumLigneFidelite='$NumLigneAEffacer' AND SessionPoints='$Session'"; $Requete=mysql_query($SQL,CONNECTION); } /*---------------------------------------------------------------------------------------------------------------- change les points lorsqu'on change les quantités ----------------------------------------------------------------------------------------------------------------*/ function Change_Points_Produit($NouvelleQuantite,$LigneAEffacer,$NumClient) {//1. On cherche la valeur en points du produit $SQL="SELECT Fidelite_Produit, MoinsPoints FROM Panier, Produits,Points WHERE Panier.ProduitPanier=NumProd AND NumLigneFidelite=NumLignePanier AND NumLignePanier='$LigneAEffacer'"; $TotalCreditPossible=CalculeTotalPoints($NumClient); $Requete=mysql_query($SQL,CONNECTION); if ($Requete) {$T=mysql_fetch_object($Requete); //print "le crédit max avant calcul est de : ".$TotalCreditPossible; $TotalCreditSimule=($TotalCreditPossible+$T->MoinsPoints)-$NouvelleQuantite*$T->Fidelite_Produit; //print "le credit maximum après calcul est de : $TotalCreditSimule"; if ($TotalCreditSimule>0) {//on peut retirer $Nouvellequantite foids le poids fidelite $Points_Retires=$NouvelleQuantite*$T->Fidelite_Produit; } else {//on atteint le maximum possible, $Points_Retires=$TotalCreditPossible+$T->MoinsPoints; } mysql_free_result($Requete); //maintenant la mise à jour $SQL="UPDATE Points SET MoinsPoints='$Points_Retires' WHERE NumLigneFidelite='$LigneAEffacer'"; $Requete=mysql_query($SQL,CONNECTION); } } /*---------------------------------------------------------------------------------------------------------------- Calcule la réduction obtenue grace aux points bonus ----------------------------------------------------------------------------------------------------------------*/ function Gain_Fidelite($Session) {$SQL="SELECT (SUM(PrixHTPanier)+ SUM(PrixValeur))*(SUM(MoinsPoints)/SUM(Fidelite_Produit))"; if (TVAAffichee=="Oui") {$SQL.="*(1+(TVAPanier/100))";} $SQL.=" AS TotalGain, SUM(MoinsPoints),Fidelite_Produit FROM Panier LEFT JOIN PanierOptions ON (PanierOptions.NumLignePanier=Panier.NumLignePanier), Points,Produits WHERE Produits.NumProd=Panier.ProduitPanier AND MoinsPoints<>0 AND Panier.NumLignePanier=NumLigneFidelite AND Panier.SessionPanier='$Session' GROUP BY Panier.SessionPanier"; $Requete=mysql_query($SQL,CONNECTION); if ($Requete) {$T=mysql_fetch_object($Requete); $TotalGain=$T->TotalGain; mysql_free_result($Requete); } else {$TotalGain=0;} return $TotalGain; } /* ------------------------------------------------------------------------------------------------------------------ crée un tableau petit écusson qui contient le nombre de points fidelite valides ------------------------------------------------------------------------------------------------------------------*/ function Affiche_Ecusson_Points($PseudoSession, $Compte_PointsFidelite) {$Texte_Tableau="
$Compte_PointsFidelite
"; $Texte_Tableau.=AfficheNombre(CalculeTotalPoints_Valides($PseudoSession)); $Texte_Tableau.="
"; return $Texte_Tableau; } //fin include des foncton des points fidelite ?>