/** * 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; } }
/** * Fonction controlant l'insertion d'une piece * * @param $dataGet, $donneesStocks (array) * @return $msg (array) */ public function verifInsertPieces($dataGet, $select, $update = false) { $donneesStocks = new modeleStocks(); $imgBDD = !empty($_FILES['img']['name']) ? $this->insertPhoto($dataGet['type_piece']) : null; extract($_POST); switch ($dataGet['type_piece']) { case 'cadre': case 'guidon': if (isset($_POST['matiere']) && array_key_exists($_POST['matiere'], $select['matiere']) != false && isset($_POST['sexe']) && array_key_exists($_POST['sexe'], $select['sexe']) != false && isset($_POST['id_taille']) && array_key_exists($_POST['id_taille'], $select['taille']) != false) { if (!$update) { $donneesStocks->insertPieces($type_piece, $type_velo, $titre, $poids, $prix, $quantite, $description, $imgBDD, $matiere, $sexe, $id_taille); } else { $donneesStocks->updatePieces($type_velo, $titre, $poids, $prix, $quantite, $description, $imgBDD, $matiere, $sexe, $id_taille, null, null, $id_piece); } return true; } else { $msg['error']['generale'] = self::ERREUR_POST; } break; case 'roue': if (isset($_POST['matiere']) && array_key_exists($_POST['matiere'], $select['matiere']) != false && isset($_POST['id_taille']) && array_key_exists($_POST['id_taille'], $select['taille']) != false) { if (!$update) { $donneesStocks->insertPieces($type_piece, $type_velo, $titre, $poids, $prix, $quantite, $description, $imgBDD, $matiere, null, $id_taille); } else { $donneesStocks->updatePieces($type_velo, $titre, $poids, $prix, $quantite, $description, $imgBDD, $matiere, null, $id_taille, null, null, $id_piece); } return true; } else { $msg['error']['generale'] = self::ERREUR_POST; } break; case 'selle': if (isset($_POST['sexe']) && array_key_exists($_POST['sexe'], $select['sexe']) != false && isset($_POST['matiere']) && array_key_exists($_POST['matiere'], $select['matiere']) != false) { if (!$update) { $donneesStocks->insertPieces($type_piece, $type_velo, $titre, $poids, $prix, $quantite, $description, $imgBDD, $matiere, $sexe); } else { $donneesStocks->updatePieces($type_velo, $titre, $poids, $prix, $quantite, $description, $imgBDD, $matiere, $sexe, null, null, null, $id_piece); } return true; } else { $msg['error']['generale'] = self::ERREUR_POST; } break; case 'groupe': if (isset($_POST['pignon']) && array_key_exists($_POST['pignon'], $select['pignon']) != false && isset($_POST['plateau']) && array_key_exists($_POST['plateau'], $select['plateau']) != false) { if (!$update) { $donneesStocks->insertPieces($type_piece, $type_velo, $titre, $poids, $prix, $quantite, $description, $imgBDD, null, null, null, $pignon, $plateau); } else { $donneesStocks->updatePieces($type_velo, $titre, $poids, $prix, $quantite, $description, $imgBDD, null, null, null, $pignon, $plateau, $id_piece); } return true; } else { return $msg['error']['generale'] = self::ERREUR_POST; } break; } }