init(); } function init() { /* Initialise (ou réinitialise) un caddie */ $this->articles = array(array(array())); $this->total = 0; $this->cout_transport = 0; $this->transport = ""; $this->paiement = ""; } function ajout(&$produitid, &$taillechoisie, &$couleurchoisie, $quantite) { /* Ajoute un article au caddie et met à jour le montant total */ if (isset($produitid)) { if (isset($taillechoisie)) { if (isset($couleurchoisie)) { if (! isset($this->articles[$produitid])) { $calc = array(); $calc2 = array(); $calc2 [$couleurchoisie] = 'O'; $calc [$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } $calc = array(); $calc = $this->articles[$produitid]; if (! isset($calc [$taillechoisie])) { $calc2 = array(); $calc2 [$couleurchoisie] = 'O'; $calc [$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } $calc2 = array(); $calc = $this->articles[$produitid]; $calc2 = $calc[$taillechoisie]; if (! isset($calc2 [$couleurchoisie])) { $calc2 [$couleurchoisie] = 'O'; $calc [$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } $calc = $this->articles[$produitid]; $calc2 = $calc[$taillechoisie]; $calc2[$couleurchoisie] += $quantite; $calc[$taillechoisie]= $calc2; $this->articles[$produitid] = $calc; $nouvelleq = $calc2[$couleurchoisie]; $idarticle1 = $produitid; $requetelot = "SELECT lot FROM table_produits WHERE id = $idarticle1"; $resultlot=mysql_query($requetelot); if (mysql_num_rows($resultlot) != 0) { $lectlot1=mysql_fetch_array($resultlot); if ($lectlot1['lot'] == 1) { $multiple = floor($nouvelleq / 12); $quantite12 = $multiple * 12; $quantite13 = ($multiple + 1) * 12; if ($nouvelleq != $quantite12) { $nouvelleq = $quantite13; $calc2 [$couleurchoisie] = $nouvelleq; $calc [$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } if ($nouvelleq > 24) { $nouvelleq = 24; $calc2 [$couleurchoisie] = $nouvelleq; $calc [$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } } else { if ($nouvelleq > 10) { $nouvelleq = 10; $calc2 [$couleurchoisie] = $nouvelleq; $calc [$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } } } } } } } function place(&$produitid, $taillechoisie, $couleurchoisie, $quantite) { /* Met la quantité spécifiée du produit spécifié dans le caddie */ if (isset($produitid)) { if (isset($taillechoisie)) { if (isset($couleurchoisie)) { $calc = array(); $calc = $this->articles[$produitid]; $calc2 = array(); $calc2 = $calc[$taillechoisie]; $calc2 [$couleurchoisie] = (int) $quantite; $calc[$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } } } } function paiement(&$paiement) { /* Met la quantité spécifiée du produit spécifié dans le caddie */ if (isset($paiement)) { $this->paiement = $paiement; } } function transport(&$transport) { /* Met la quantité spécifiée du produit spécifié dans le caddie */ if (isset($transport)) { $this->transport = $transport; } } function cout_transport(&$cout_transport) { /* Met la quantité spécifiée du produit spécifié dans le caddie */ if (isset($cout_transport)) { $this->cout_transport = $cout_transport; } } function enleve(&$produitid, $taillechoisie, $couleurchoisie) { /* Enlève un produit du caddie */ if (isset($produitid)) { if (isset($taillechoisie)) { if (isset($couleurchoisie)) { $calc = array(); $calc = $this->articles[$produitid]; $calc2 = array(); $calc2 = $calc[$taillechoisie]; unset ($calc2 [$couleurchoisie]); $calc[$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } } } } function nettoie() { /* Cette fonction nettoie le caddie, en enlevant tous les produits non valides * c'est à dire ceux dont l'identifiant n'est pas numérique ou dont la quantité est < 1 */ foreach ($this->articles as $produitid => $tableau2) { foreach ($tableau2 as $taillechoisie => $tableau3) { foreach ($tableau3 as $couleurchoisie => $quantite) { if ($quantite < 1) { $calc = array(); $calc = $this->articles[$produitid]; $calc2 = array(); $calc2 = $calc[$taillechoisie]; unset ($calc2 [$couleurchoisie]); $calc[$taillechoisie] = $calc2; $this->articles[$produitid] = $calc; } } } } } function compte_elements() { /* Renvoie le nombre d'articles dans le caddie */ $total = 0; foreach ($this->articles as $produitid => $tableau2) { foreach ($tableau2 as $taillechoisie => $tableau3) { foreach ($tableau3 as $couleurchoisie => $quantite) { $total += $quantite; } } } return $total; } function recupere_produitid_list() { /* Renvoie la liste des produits délimités par des virgules */ $produitid_list = ""; foreach ($this->articles as $produitid => $tableau2) { $produitid_list .= ",'" . $produitid . "'"; } /* Enlève la virgule du début */ return substr($produitid_list, 1); } function recalc_total() { /* Recalcule le prix total des articles du caddie */ $this->total = 0; $in_clause = $this->recupere_produitid_list(); if (empty($in_clause)) { return; } $qid = mysql_query("SELECT id, promotion, prix FROM table_produits WHERE id IN ($in_clause)"); if ($qid) { if (mysql_num_rows($qid) > 0) { while ($produit = mysql_fetch_array($qid)) { $idart = $produit['id']; $tableau2 = array(); $tableau2 = $this->articles[$idart]; $tableau3 = array(); foreach ($tableau2 as $lataille => $tableau3) { foreach ($tableau3 as $lacouleur => $quant) { $this->total += $quant * $produit['prix'] * (1-$produit['promotion']/100); } } } } } } } ?>