/**
  * 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;
     }
 }