Ejemplo n.º 1
0
 public function see($idRestaurant)
 {
     //Get the restaurant by its id
     $restaurant = Restaurant::getOneBy(array('_id' => new \MongoId($idRestaurant)));
     //If User is not logged in
     if (!Session::isConnected() || Session::getUser()->getType() != USER_CLIENT) {
         Session::addFlashMessage("Non connecté", "error", "Veuillez vous connecter avant de continuer.");
         return Redirect::to('/restaurant');
     }
     //If it doesn't exist, return to the list
     if (!$restaurant) {
         return Redirect::to('/restaurant');
     }
     $client = Session::getUser();
     $addresses = Address::getBy(array('user' => $client->getId()));
     if (Form::exists('order_form')) {
         $commande = new Commande();
         $menus = $restaurant->getMenus();
         $total = 0;
         foreach ($menus as $menu) {
             $menuItems = $menu->getMenuItems();
             foreach ($menuItems as $menuItem) {
                 $quantity = Form::get($menuItem->getId()->__toString());
                 if ($quantity > 0) {
                     $commande->setItem($menuItem, $quantity);
                 }
                 $total += $menuItem->getPrice() * $quantity;
             }
         }
         //If we didn't choose any item
         if ($total == 0) {
             return Redirect::to('/restaurant/see/' . $idRestaurant);
         }
         $commande->setPrice($total);
         $commande->setClient($client);
         $addressId = Form::get('address');
         $address = null;
         if ($addressId == 'altAddress') {
             //Then we take in accout the altAdress field
             $address = new Address();
             $address->setAddress(Form::get('altAdress'));
             $address->setUser($client);
         } else {
             $address = Address::getOneBy(array('_id' => new \MongoId($addressId)));
             if (!$address) {
                 die("Erreur à gérer.");
             }
         }
         $address->setByDefault();
         $address->save();
         $commande->setAddress($address);
         $commande->setStatus(Commande::COMMAND_STATUS_TEMPORARY);
         $commande->save();
         return Redirect::to("/restaurant/validateCommand/" . $commande->getId());
     }
     return View::render("restaurant/see.php", array('restaurant' => $restaurant, 'client' => Session::getUser(), 'addresses' => $addresses));
 }
Ejemplo n.º 2
0
 /**
  * Takes all the Adresses linked to the
  */
 function setByDefault()
 {
     $addresses = Address::getBy(array('user' => $this->user));
     //Need to get User
     foreach ($addresses as $address) {
         $address->removeByDefault();
         $address->save();
     }
     $this->defaultAddress = TRUE;
 }