/** * Affichage de la page cattalogue * */ public function pageCatalogue() { session_start(); $meta['title'] = 'Catalogue'; $meta['menu'] = 'catalogue'; $userConnect = $this->userConnect(); $userConnectAdmin = $this->userConnectAdmin(); $msg['error'] = []; $pieces = null; $select['type_piece'] = ['disabled' => 'Quel type de pièce recherchez-vous ?', 'null' => 'Toutes les pièces', 'cadre' => 'Cadre', 'roue' => 'Roue', 'selle' => 'Selle', 'guidon' => 'Guidon', 'groupe' => 'Groupe']; $select['type_velo'] = ['disabled' => 'Choisissez votre type de vélo', 'both' => 'Les deux', 'route' => 'Route', 'vtt' => 'VTT']; $select['taille'] = ['disabled' => 'Rechercher par taille', 'null' => 'Toutes les tailles', 1 => '150/161 cm', 2 => '162/174 cm', 3 => '175/187 cm', 4 => '188/200 cm']; $select['sexe'] = ['disabled' => 'Votre piece pour Femme ou Homme', 'null' => 'Femme et Homme', 'homme' => 'Homme', 'femme' => 'Femme']; $select['order'] = ['disabled' => 'Classer du plus grand au plus petit', 'null' => 'Aucun classement', 'prix' => 'Prix', 'poids' => 'Poids']; $formulaire = new controleurFonctions(); $stock = new modeleAssemblage(); if ($_POST) { if (isset($_POST['key']) && isset($_POST['type_piece']) && array_key_exists($_POST['type_piece'], $select['type_piece']) != false && isset($_POST['type_velo']) && array_key_exists($_POST['type_velo'], $select['type_velo']) != false && isset($_POST['taille']) && array_key_exists($_POST['taille'], $select['taille']) != false && isset($_POST['sexe']) && array_key_exists($_POST['sexe'], $select['sexe']) != false && isset($_POST['order']) && array_key_exists($_POST['order'], $select['order']) != false) { $search = !empty($_POST['key']) ? htmlentities($_POST['key'], ENT_QUOTES) : null; $type_piece = $_POST['type_piece'] === 'null' ? null : $_POST['type_piece']; $type_velo = $_POST['type_velo'] === 'both' ? null : $_POST['type_velo']; $taille = $_POST['taille'] === 'null' ? null : $_POST['taille']; $sexe = $_POST['sexe'] === 'null' ? null : $_POST['sexe']; $order = $_POST['order'] === 'null' ? null : $_POST['order']; $pieces = $stock->toutesPieces($search, $type_piece, $type_velo, $taille, $sexe, $order); } else { $msg['error']['generale'] = "Une erreur est survenue lors de votre demande."; } } else { $pieces = $stock->toutesPieces(); } $this->Render('../vues/velo/catalogue.php', array('meta' => $meta, 'userConnect' => $userConnect, 'userConnectAdmin' => $userConnectAdmin, 'msg' => $msg, 'formulaire' => $formulaire, 'select' => $select, 'pieces' => $pieces)); }
/** * Vérification de l'état $_GET et concordance piece/type * * @param (string) $etapeVerif * * @return (array) $donnees * @return (bool) false */ public function verifEtapeSuivante($etapeVerif, $sexe = null, $id_taille = null) { $pieces = new modeleAssemblage(); if (isset($_GET[$etapeVerif]) && !empty($_GET[$etapeVerif]) && is_numeric($_GET[$etapeVerif])) { $donnees = $pieces->concordancePieceTypeDonnees($etapeVerif, $_GET[$etapeVerif], $_GET['type'], $sexe, $id_taille); return $donnees; } else { return false; } }
/** * Vérificatin de stock modif quantite * * @param (int) $id_velo * @param (int) $quantite * @return bool */ public function verifQuantiteAvantMaj($id_velo = null, $quantite = null) { $assemblage = new modeleAssemblage(); $newQuantite = !$quantite ? 1 : $quantite - $_SESSION['panier'][$id_velo]['quantite']; $piecesQuantite = []; $verifQuantite = []; foreach ($_SESSION['panier'] as $key => $value) { foreach ($_SESSION['panier'][$key]['pieces'] as $piecesKey => $piecesValue) { if (array_key_exists($piecesValue, $piecesQuantite)) { $piecesQuantite[$piecesValue] += (int) $_SESSION['panier'][$key]['quantite']; } else { $piecesQuantite[$piecesValue] = (int) $_SESSION['panier'][$key]['quantite']; } if ($key == $id_velo) { $piecesQuantite[$piecesValue] += $newQuantite; } } } foreach ($piecesQuantite as $key => $value) { $verifQuantite[] = $assemblage->verifQuantiteMaj($key) < $value ? null : $key; } if (array_search(null, $verifQuantite) === false) { // Si un id_velo est présent alors MAJ session if ($id_velo) { $_SESSION['panier'][$id_velo]['quantite'] += $newQuantite; // Sinon MAJ BDD } else { $stock = new modeleStocks(); foreach ($piecesQuantite as $key => $value) { $stock->updateQuantitePiece(-$value, $key); } } return true; } else { return false; } }