Exemplo n.º 1
0
 public function resDetails($resid, $baseurl)
 {
     try {
         $detailsMapper = new Restaurant_Model_RestaurantMapper();
         $restaurantdata = $detailsMapper->getRestaurant($resid);
         $cusineMapper = new Restaurant_Model_RestaurantCusineDataMapper();
         $cusineArray = $cusineMapper->getCusineNamesByResid($resid);
         $tagDetails = array();
         foreach ($restaurantdata as $rest) {
             $tagConditions = array("city_name" => $rest->getRescity_name(), "location_name" => $rest->getReslocation_name(), "cusines" => $cusineArray);
             $tagDetails = $this->generateTags($tagConditions);
             $rest->setRescusine_data($cusineArray);
         }
         $menudetailsMapper = new Restaurant_Model_MenuItemsDataMapper();
         $menudata = $menudetailsMapper->getRestaurantMenuItems($resid);
         $popularMenudata = $menudetailsMapper->getRestaurantMenuItemsPopular($resid);
         $resreviewMapper = new Restaurant_Model_ResReviewMapper();
         $resreviewdata = $resreviewMapper->getResReviews($resid);
         if (is_array($resreviewdata)) {
             foreach ($resreviewdata as $key => $value) {
                 $resreviewdata[$key]->setGallery($this->getGalleryByReviewId($resid, $resreviewdata[$key]->getRrid(), $baseurl));
             }
         }
         $output = array();
         if (is_array($menudata)) {
             $data = array();
             $itemReviewMapper = new Restaurant_Model_ItemReviewMapper();
             $getItemReviews = array();
             foreach ($menudata as $value) {
                 if (!isset($data[$value['menu_name']])) {
                     $data[$value['menu_name']] = array();
                 }
                 if (!isset($data[$value['menu_name']][$value['category_name']])) {
                     $data[$value['menu_name']][$value['category_name']] = array();
                 }
                 $itemreviewData = $itemReviewMapper->fetchItemReview($value['miid']);
                 foreach ($itemreviewData as $key => $itemreview) {
                     $itemreviewData[$key]['gallery'] = $this->getGalleryByItemReviewId($resid, $itemreview['irid'], $baseurl);
                 }
                 $temp = array('item_id' => $value['miid'], 'item_categoryid' => $value['mi_fk_mcid'], 'item_name' => $value['mi_name'], 'item_description' => $value['mi_description'], 'item_price' => $value['mi_price'], 'item_review' => $itemreviewData, 'item_status' => $value['mi_status'], 'item_reviews' => $value['mi_reviews'], 'item_likes' => $value['mi_likes'], 'item_dislikes' => $value['mi_dislikes']);
                 array_push($data[$value['menu_name']][$value['category_name']], $temp);
             }
             //echo json_encode($data);die();
             $output['menu_data'] = $data;
         }
         if (is_array($popularMenudata)) {
             $data = array();
             $itemReviewMapper = new Restaurant_Model_ItemReviewMapper();
             $getItemReviews = array();
             //print_r($popularMenudata);die();
             foreach ($popularMenudata as $value) {
                 if (!isset($data[$value['miid']])) {
                     $data[$value['miid']] = array();
                 }
                 $itemreviewData = $itemReviewMapper->fetchItemReview($value['miid']);
                 foreach ($itemreviewData as $key => $itemreview) {
                     $itemreviewData[$key]['gallery'] = $this->getGalleryByItemReviewId($resid, $itemreview['irid'], $baseurl);
                 }
                 $temp = array('item_id' => $value['miid'], 'item_name' => $value['mi_name'], 'item_description' => $value['mi_description'], 'item_price' => $value['mi_price'], 'item_review' => $itemreviewData, 'item_status' => $value['mi_status'], 'item_reviews' => $value['mi_reviews'], 'item_likes' => $value['mi_likes'], 'item_dislikes' => $value['mi_dislikes']);
                 array_push($data[$value['miid']], $temp);
             }
             $output['popularmenu_data'] = $data;
         }
         $output['restaurant_data'] = $restaurantdata;
         $customerMapper = new User_Model_CustomerMapper();
         $cusnames = array();
         if (is_array($resreviewdata)) {
             foreach ($resreviewdata as $reviewdata) {
                 $cname = $customerMapper->getcusdata($reviewdata->getRrcreatedby());
                 if (array_key_exists(0, $cname)) {
                     $reviewdata->setUsername($cname[0]['cusfirst_name']);
                 } else {
                     $reviewdata->setUsername("User");
                 }
             }
         }
         $output['resreview_data'] = $resreviewdata;
         $output['working_timings'] = array();
         $rwtMapper = new Restaurant_Model_RestaurantWorkingTimingsMapper();
         $weekday = date('l');
         $output["dining_type"] = array("lunch" => $rwtMapper->isMealExits($resid, $weekday, "Lunch"), "breakfast" => $rwtMapper->isMealExits($resid, $weekday, "Breakfast"), "dinner" => $rwtMapper->isMealExits($resid, $weekday, "Dinner"), "brunch" => $rwtMapper->isMealExits($resid, $weekday, "Brunch"));
         $rwtdata = $rwtMapper->getByRestaurantId($resid);
         foreach ($rwtdata as $value) {
             if (!isset($output['working_timings'][$value['rwt_week_day']])) {
                 $output['working_timings'][$value['rwt_week_day']] = array();
             }
             $start = $value['rwt_start_time'];
             $start = date('h:i A', strtotime(substr($start, 0, strlen($start) - 3)));
             $end = $value['rwt_end_time'];
             $end = date('h:i A', strtotime(substr($end, 0, strlen($end) - 3)));
             array_push($output['working_timings'][$value['rwt_week_day']], array('rwt_id' => $value['rwt_id'], 'rwt_sch_type' => $value['rwt_sch_type'], 'rwt_start_time' => $start, 'rwt_end_time' => $end));
         }
         $this->visitorManagement($resid, "visit");
         $output['tagDetails'] = $tagDetails;
         return $output;
     } catch (Exception $ex) {
         Rdine_Logger_FileLogger::info($ex->getMessage());
         throw new Exception($ex->getMessage());
     }
 }