Esempio n. 1
0
 /**
 * Get the Profile details of the user in web requrest
 *
 * @static  true
 * @access  public
 * @param   array $id
 * @since   1.0.0
 */
 public static function getUserProfileWeb($id)
 {
     $queryProfileResult = DB::table('users as u')->leftjoin('user_attributes_date as uad', 'u.id', '=', 'uad.user_id')->leftjoin('user_attributes as ua', function ($join) {
         $join->on('uad.user_attribute_id', '=', 'ua.id')->where('ua.alias', '=', 'date_of_birth');
     })->leftjoin('locations as l', 'l.id', '=', 'u.location_id')->leftjoin('user_attributes_singleselect as uas', 'u.id', '=', 'uas.user_id')->leftjoin('user_attributes_select_options as uaso', 'uas.user_attributes_select_option_id', '=', 'uaso.id')->leftjoin('user_attributes as ua2', function ($join) {
         $join->on('uaso.user_attribute_id', '=', 'ua2.id')->where('ua2.alias', '=', 'gender');
     })->leftjoin('user_attributes_integer as uai', 'uai.user_id', '=', 'u.id')->leftjoin('user_attributes_varchar as uav', 'uav.user_id', '=', 'u.id')->leftjoin('user_attributes as ua3', 'ua3.id', '=', 'uai.user_attribute_id')->leftjoin('user_attributes as ua4', 'ua4.id', '=', 'uad.user_attribute_id')->leftjoin('user_attributes as ua5', 'ua5.id', '=', 'uav.user_attribute_id')->leftjoin('user_devices as ud', 'u.id', '=', 'ud.user_id')->where('u.id', $id)->select('u.id as user_id', 'u.full_name', 'u.email', 'phone_number', 'u.zip_code', 'u.newsletter_frequency', 'uaso.option as gender', 'l.id as location_id', 'l.name as location', 'ud.access_token', 'u.points_earned as points_earned', 'u.points_spent as points_spent', DB::raw('MAX(IF(ua3.alias = "bookings_made", uai.attribute_value, 0)) AS bookings_made'), DB::raw('MAX(IF(ua5.alias = "membership_number", uav.attribute_value, 0)) AS membership_number'), DB::raw('MAX(IF(ua3.alias = "a_la_carte_reservation", uai.attribute_value, 0)) AS a_la_carte_reservation'), DB::raw('MAX(IF(ua4.alias = "date_of_birth", date(uad.attribute_value), 0)) AS dob'), DB::raw('MAX(IF(ua4.alias = "anniversary_date", date(uad.attribute_value), 0)) AS anniversary_date'))->groupby('u.id')->first();
     //Read all the preferred locations
     //$preferredLocations=Profile::getUserPreferences($id);
     //Read all the AREAS related to user's location
     $cityAreas = Locations::readCityArea($queryProfileResult->location_id);
     //array to contain the response to be sent back to client
     $arrResponse = array();
     $lastReservationDetail = ReservationDetails::getUserLastReservation($queryProfileResult->user_id);
     //print_r($lastReservationDetail);
     if ($queryProfileResult) {
         $arrResponse['status'] = Config::get('constants.API_SUCCESS');
         $arrResponse['data'] = array('user_id' => $queryProfileResult->user_id, 'full_name' => $queryProfileResult->full_name, 'email' => $queryProfileResult->email, 'phone_number' => $queryProfileResult->phone_number == 0 ? "" : $queryProfileResult->phone_number, 'zip_code' => $queryProfileResult->zip_code, 'gender' => $queryProfileResult->gender, 'location_id' => $queryProfileResult->location_id, 'location' => $queryProfileResult->location, 'points_earned' => $queryProfileResult->points_earned, 'points_spent' => $queryProfileResult->points_spent, 'points_remaining' => $queryProfileResult->points_earned - $queryProfileResult->points_spent, 'bookings_made' => $queryProfileResult->bookings_made, 'membership_number' => $queryProfileResult->membership_number, 'a_la_carte_reservation' => $queryProfileResult->a_la_carte_reservation, 'dob' => $queryProfileResult->dob, 'anniversary_date' => $queryProfileResult->anniversary_date, 'newsletter_frequency' => $queryProfileResult->newsletter_frequency, 'areas' => $cityAreas['data'], 'last_reservation_date' => empty($lastReservationDetail->reservation_date) ? "" : $lastReservationDetail->reservation_date, 'last_reservation_time' => empty($lastReservationDetail->reservation_time) ? "" : $lastReservationDetail->reservation_time);
     } else {
         $arrResponse['status'] = Config::get('constants.API_SUCCESS');
         $arrResponse['data'] = array();
     }
     return $arrResponse;
 }
 /**
  * Displays the City Areas
  *
  * @access	public
  * @param	string	$cityID
  * @return	json
  * @since	1.0.0
  */
 public function showCityAreas($cityID)
 {
     return response()->json(Locations::readCityArea($cityID), 200);
 }
 /**
  * Create the options for the select locations input based on type
  *
  * @Get("/selectParents", as="AdminLocationsSelectParents")
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function selectParents(Request $request, Locations $locations)
 {
     $parent_type = trim($request->input('location_type'));
     if (!empty($parent_type)) {
         $options = $locations->getParents($parent_type);
         if (!empty($locations)) {
             return view('admin.locations.selectLocation', ['locations' => $options]);
         } else {
             return response('');
         }
     } else {
         return response('');
     }
     //return response()->json();
 }