コード例 #1
0
ファイル: CartController.php プロジェクト: seboccis/bdloc
 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);
 }