/** * 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; } }
/** * Gestion des stocks, ajout de quantite et modification. * */ public function gestionStocks() { session_start(); $meta['title'] = 'Gestion des stocks'; $meta['menu'] = 'gestion-stocks'; $userConnect = $this->userConnect(); $userConnectAdmin = $this->userConnectAdmin(); $msg['error'] = array(); $donneesParPiece = array(); $modifPiece = array(); $donneesStocks = new modeleStocks(); $formulaire = new controleurFonctions(); $select = $this->listeDetailsPieces(); // Gestion de la mise à jour de la quantité d'une pièce if (isset($_POST['upadateQuantite'])) { if (isset($_POST['quantite']) && isset($_POST['id_piece']) && !empty($_POST['id_piece']) && is_numeric($_POST['id_piece'])) { if (empty($_POST['quantite']) && !is_numeric($_POST['quantite'])) { $msg['error']['quantite'] = 'Veuillez saisir une <b>Quantité</b>.'; } if (empty($msg['error'])) { $donneesStocks->updateQuantitePiece($_POST['quantite'], $_POST['id_piece']); $msg['error']['confirm'] = 'Une quantité de <b>' . $_POST['quantite'] . '</b> a été ajouté à la piece <b>' . $_POST['id_piece'] . '</b>.'; } } else { $msg['error']['generale'] = self::ERREUR_POST; } } // Gestion de la mise à jour d'une pièce if (isset($_GET['update']) && !empty($_GET['update']) && is_numeric($_GET['update'])) { if ($donneesStocks->recupPieceID($_GET['update'])) { if (isset($_POST['update'])) { if (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['titre']) && isset($_POST['quantite']) && isset($_POST['poids']) && isset($_POST['prix']) && isset($_POST['description']) && isset($_FILES['img'])) { $msg = $this->verifFormPiece($_POST, $_POST['type_piece'], true); if (empty($msg['error'])) { foreach ($_POST as $key => $value) { $_POST[$key] = htmlspecialchars($value, ENT_QUOTES); } // Si modification image alors suppréssion de l'ancienne if (!empty($_FILES['img']['name'])) { $imgSuppModif = $donneesStocks->imagePath($_POST['id_piece']); $imagePathSupp = $_SERVER['DOCUMENT_ROOT'] . '/lepetitsaintbernard/www/' . $imgSuppModif['img']; if (!empty($imgSuppModif['img']) && file_exists($imagePathSupp)) { unlink($imagePathSupp); } } extract($_POST); if ($this->verifInsertPieces($_POST, $select, true)) { $msg['error']['confirm'] = "Votre pièce ref." . $_POST['id_piece'] . " à bien été modifié."; } } } else { $msg['error']['generale'] = self::ERREUR_POST; } } $modifPiece = $donneesStocks->recupPieceID($_GET['update']); } else { $msg['error']['generale'] = self::ERREUR_POST; } } // Gestion de la suppresion d'une pièce if (isset($_GET['delete']) && !empty($_GET['delete']) && is_numeric($_GET['delete'])) { if ($donneesStocks->recupPieceID($_GET['delete'])) { $donneesStocks->deletePieceID($_GET['delete']); $msg['error']['confirm'] = "Votre pièce ref." . $_GET['delete'] . " à bien été supprimé."; } else { $msg['error']['generale'] = self::ERREUR_POST; } } $donneesParPiece['cadre'] = $donneesStocks->recupPieces('cadre'); $donneesParPiece['roue'] = $donneesStocks->recupPieces('roue'); $donneesParPiece['selle'] = $donneesStocks->recupPieces('selle'); $donneesParPiece['guidon'] = $donneesStocks->recupPieces('guidon'); $donneesParPiece['groupe'] = $donneesStocks->recupPieces('groupe'); $this->Render('../vues/admin/gestion-stocks.php', array('meta' => $meta, 'msg' => $msg, 'userConnect' => $userConnect, 'userConnectAdmin' => $userConnectAdmin, 'donneesParPiece' => $donneesParPiece, 'modifPiece' => $modifPiece, 'select' => $select, 'formulaire' => $formulaire)); }