예제 #1
0
 /**
  * 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);
 }
예제 #2
0
 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');
 }
예제 #3
0
 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);
 }
예제 #4
0
 /**
  * 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);
 }