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); }