/** * Requête AJAX pour trouver le nombre de BD * dans le panier actuel de l'utilisateur */ public function ajaxMainCountBooksInCart() { $this->lock(); $user = $this->getUser(); $userId = $user['id']; $cartManager = new CartManager(); $cartId = $cartManager->findCart($userId); if (empty($cartId)) { die('0'); } // $remainingTime = $cartManager->findCartDelay($cartId); // if($remainingTime < 0){ // // Augmenter la quantité disponible des livres ... // // ... en récupérant les livres du panier ... // $booksIds = $cartManager->findAllBooksIdsInCart($cartId); // // ... pour ajouter un à la quantité disponible // $bookManager = new BookManager(); // foreach ($booksIds as $bookId) { // $bookManager->increaseQuantityAvailable($bookId['book_id']); // } // // Une fois les lignes du cart_to_books détruites, détruire le cart en cours // if ($cartManager->removeBooks($cartId)) { // if ($cartManager->removeCart($cartId)) { // } // } // die('0'); // } $cartBookManager = new CartBookManager(); $number = $cartBookManager->countBooksInCart($cartId); die($number); }
public function AddbooktoCart($book_id) { $books = ""; $cm = new \Manager\CartManager(); $cbm = new \Manager\Book_cartManager(); $user = $this->getUser(); $user_id = $user['id']; $cart_id = $cm->findCart($user_id); if (empty($cart_id)) { $cart_id = $cm->AddbooktoCart($user_id); } $cbm->AddbooktoCart($cart_id, $book_id); $this->redirectToRoute('catalogue'); }
public function submitOrder() { $this->lock(); $cartEmpty = ""; $orderError = ""; $orderSuccess = ""; $showMap = 0; $cartManager = new CartManager(); $bookManager = new BookManager(); $deliveryPlaceManager = new deliveryPlaceManager(); // Vérifier le nombre de livres déjà empruntés // Récupérer l'id des carts où le statut est égal à 1 (livres en cours) $status = 1; $cartsAlreadyOrdered = $cartManager->findOrder($_SESSION['user']['id'], $status); $cartIdToOrder = $cartManager->findCart($_SESSION['user']['id']); $cartsIdsAlreadyOrdered = []; foreach ($cartsAlreadyOrdered as $cartAlreadyOrdered) { $cartsIdsAlreadyOrdered[] = $cartAlreadyOrdered['id']; } // Compter le nombre de livres dans le cart_to_books avec les ids récupérés $countBooksAlreadyOrdered = 0; if (!empty($cartsIdsAlreadyOrdered)) { $countBooksAlreadyOrdered = $cartManager->countBooksInCarts($cartsIdsAlreadyOrdered); } // Compter le nombre de livre à emprunter $countBooksToOrder = $cartManager->countBooksInCart($cartIdToOrder); $countOrderedAndToOrder = $countBooksAlreadyOrdered + $countBooksToOrder; // Si le nombre de livres à louer ajouté au nombre de livres déjà loués est supérieur à 10, on affiche un message d'erreur if ($countOrderedAndToOrder > 10) { $orderError = "Vous avez dépassé le nombre de bd autorisées en location (10), merci de réduire la taille de votre panier !"; $data = ['orderSuccess' => $orderSuccess, 'orderError' => $orderError, 'cartEmpty' => $cartEmpty, 'showMap' => $showMap]; $this->show('cart/submit_order', $data); } // On vérifie que les coordonnées de l'utilisateur existent $user = $this->getUser(); $lat = $user['lat']; $lng = $user['lng']; if (!empty($lat) && !empty($lng)) { $showMap = 1; } // On affiche la liste de tous les points de livraisons existants $deliveryPlaces = $deliveryPlaceManager->findAll(); // Récupérer les codes postaux $codesAndCities = []; foreach ($deliveryPlaces as $deliveryPlace) { $codesAndCities[] = substr($deliveryPlace['address'], -11); } for ($i = 0; $i < count($deliveryPlaces); $i++) { $deliveryPlaces[$i]['code'] = substr($codesAndCities[$i], 0, 5); } // debug($deliveryPlaces); $orderSuccess = "Commande prête à être envoyée !"; $data = ['orderError' => $orderError, 'cartEmpty' => $cartEmpty, 'orderSuccess' => $orderSuccess, 'deliveryPlaces' => $deliveryPlaces, 'cartIdToOrder' => $cartIdToOrder, 'showMap' => $showMap]; $this->show('cart/submit_order', $data); }
/** * Requête AJAX pour trouver les informations sur la BD * à faire apparaître dans la fenêtre modale */ public function ajaxCatalogDetail() { $bookId = $_GET['id']; $bookManager = new BookManager(); $book = $bookManager->extendedFind($bookId); $cartManager = new CartManager(); // Récupère le panier de l'utilisateur $cartId = $cartManager->findCart($this->getUser()['id']); // Récupère les id des livres qui sont déjà dans le panier $booksInCartIds = []; if (!empty($cartId)) { $booksInCartIds = $cartManager->findAllBooksIdsInCart($cartId); } $bookInCartIds = []; foreach ($booksInCartIds as $array) { $bookInCartIds[] = $array['book_id']; } // Vérifie si les livres affichés dans le catalogue sont dans le panier $isBookInCart = 0; if (in_array($book['id'], $bookInCartIds)) { $isBookInCart = 1; } $book['isBookInCart'] = $isBookInCart; // livres de la meme serie $booksCarousel = $bookManager->bookCarousel($bookId); // titre de la série dont est issue la bd $serieTitle = $bookManager->getSerieTitle($bookId); $numberBooksInSerie = count($booksCarousel); $data = array('book' => $book, 'booksCarousel' => $booksCarousel, 'serieTitle' => $serieTitle, 'numberBooksInSerie' => $numberBooksInSerie); $this->show('book/ajax_catalog_showDetail', $data); }