Commit 0f8dd2d8 by Tobin

daily commit

parent e2e2bf05
...@@ -214,7 +214,7 @@ class Api extends CI_Controller { ...@@ -214,7 +214,7 @@ class Api extends CI_Controller {
$data = $_POST; $data = $_POST;
if(isset($_FILES['profile_picture'])) { if(isset($_FILES['profile_picture'])) {
$data['file'] = $_FILES['profile_picture']; $data['file'] = $_FILES['profile_picture'];
} }
$data['auth_token'] = $this->auth_token; $data['auth_token'] = $this->auth_token;
$res = $this->Api_model->update_profile($data); $res = $this->Api_model->update_profile($data);
if($res['status']!=0){ if($res['status']!=0){
...@@ -287,6 +287,19 @@ class Api extends CI_Controller { ...@@ -287,6 +287,19 @@ class Api extends CI_Controller {
} }
} }
public function searchEvent($str = null) {
$data['str'] = $str;
$res = $this->Api_model->searchEvent($data);
if($res['status']!=0){
$this->response($res['data']);
}
else{
$this->errorResponse($res['code'],$res['message']);
}
}
} }
\ No newline at end of file
...@@ -28,6 +28,7 @@ class Venue extends CI_Controller { ...@@ -28,6 +28,7 @@ class Venue extends CI_Controller {
function addVenues(){ function addVenues(){
$this->load->model('Host_model'); $this->load->model('Host_model');
$this->load->model('Region_model'); $this->load->model('Region_model');
$template['host_data'] = $this->Host_model->getHostCategories('','1'); $template['host_data'] = $this->Host_model->getHostCategories('','1');
$template['regionData'] = $this->Region_model->getRegionData('','1'); $template['regionData'] = $this->Region_model->getRegionData('','1');
...@@ -73,7 +74,6 @@ class Venue extends CI_Controller { ...@@ -73,7 +74,6 @@ class Venue extends CI_Controller {
$err = 1; $err = 1;
$errMsg = 'Provide Proper Layout details'; $errMsg = 'Provide Proper Layout details';
} }
if(isset($_POST['has_layout']) && $_POST['has_layout'] == 1){ if(isset($_POST['has_layout']) && $_POST['has_layout'] == 1){
$config = set_upload_service("assets/uploads/services"); $config = set_upload_service("assets/uploads/services");
$this->load->library('upload'); $this->load->library('upload');
...@@ -115,9 +115,14 @@ class Venue extends CI_Controller { ...@@ -115,9 +115,14 @@ class Venue extends CI_Controller {
$_POST['location_lat'] = $locData['lat']; $_POST['location_lat'] = $locData['lat'];
$_POST['location_lng'] = $locData['lng']; $_POST['location_lng'] = $locData['lng'];
unset($_POST['has_layout'],$_POST['seat_color'],$_POST['seat_price'],$_POST['seat_capacity']); $locality = '';
if(isset($_POST['locality']) && !empty($_POST['locality'])){
$locality = $_POST['locality'];
}
unset($_POST['locality'],$_POST['locality_type'],$_POST['has_layout'],$_POST['seat_color'],
$_POST['seat_price'],$_POST['seat_capacity']);
$status = $this->Venue_model->createVenue($_POST); $status = $this->Venue_model->createVenue($_POST,$locality);
if($status == 1){ if($status == 1){
$flashMsg['class'] = 'success'; $flashMsg['class'] = 'success';
$flashMsg['message'] = 'Venue Created'; $flashMsg['message'] = 'Venue Created';
...@@ -264,5 +269,20 @@ class Venue extends CI_Controller { ...@@ -264,5 +269,20 @@ class Venue extends CI_Controller {
} }
echo json_encode($resArr);exit; echo json_encode($resArr);exit;
} }
function getLocalityData(){
$resArr = array('status'=>0);
if(!isset($_POST) || empty($_POST) || !isset($_POST['region_id']) || empty($_POST['region_id'])){
echo json_encode($resArr);exit;
}
$this->load->model('Region_model');
$localityData = $this->Region_model->getlocalityData($_POST['region_id'],'','1');
if(!empty($localityData)){
$resArr['status'] = 1;
$resArr['data'] = $localityData;
}
echo json_encode($resArr);exit;
}
} }
?> ?>
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400');
}
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
class Webservice extends CI_Controller {
var $auth_token;
public function __construct() {
parent::__construct();
$this->load->model('Webservice_model');
$this->load->model('Validation_app_model');
$method = $this->router->fetch_method();
$data = (array) json_decode(file_get_contents('php://input'));
if($method == 'profile') {
$data = $_POST;
}
if (isset(apache_request_headers()['Auth'])) {
$this->auth_token = apache_request_headers()['Auth'];
$data['auth_token'] = $this->auth_token;
}
$res = $this->Validation_app_model->validation_check($method, $data);
if($res['state'] == 1) {
$this->errorResponse($res['response']['code'], $res['response']['message']);
die;
}
}
public function login() {
$data = (array) json_decode(file_get_contents('php://input'));
$res = $this->Webservice_model->login($data);
if($res['status']!=0){
$this->response($res['data']);
}
else{
$this->errorResponse($res['code'],$res['message']);
}
}
public function check_email_availability() {
$data = (array) json_decode(file_get_contents('php://input'));
$res = $this->Webservice_model->availability($data);
if($res['status']!=0){
$this->response($res['data']);
}
else{
$this->errorResponse($res['code'],$res['message']);
}
}
public function registration(){
$data = (array) json_decode(file_get_contents('php://input'));
$res = $this->Webservice_model->register($data);
if($res['status']!=0){
$this->response($res['data']);
}
else{
$this->errorResponse($res['code'],$res['message']);
}
}
public function get_places_list($cat_id = null) {
$data['cat_id'] = $cat_id;
$data['auth_token'] = $this->auth_token;
$res = $this->Webservice_model->discover($data);
if($res['status']!=0){
$this->response($res['data']);
}
else{
$this->errorResponse($res['code'],$res['message']);
}
}
public function place_details($event_id = null) {
if($event_id == null) {
$this->errorResponse("ER16","Event id is null or empty");
die;
}
$data['event_id'] = $event_id;
$data['auth_token'] = $this->auth_token;
$res = $this->Webservice_model->event($data);
if($res['status']!=0){
$this->response($res['data']);
}
else{
$this->errorResponse($res['code'],$res['message']);
}
}
public function response($data) {
$result = array(
'status' => 'Success',
'data' =>$data
);
print json_encode($result);
}
public function errorResponse($errorCode, $errorDesc) {
$result = array(
'status' => 'error',
'error'=> $errorCode,
'message'=> $errorDesc
);
print json_encode($result);
}
}
\ No newline at end of file
...@@ -8,7 +8,7 @@ class Api_model extends CI_Model { ...@@ -8,7 +8,7 @@ class Api_model extends CI_Model {
public function login($data){ public function login($data){
try{ try{
$this->db->select('customer.name,customer.phone,customer.email,customer.profile_image AS image,customer.gender,users.id AS userId, customer.city'); $this->db->select('customer.name,customer.dob,customer.phone,customer.email,customer.profile_image AS image,customer.gender,users.id AS userId, customer.city,customer.dob');
$this->db->where('users.status',1); $this->db->where('users.status',1);
$this->db->where('users.password',md5($data['password'])); $this->db->where('users.password',md5($data['password']));
$this->db->where('customer.email',$data['email_id']); $this->db->where('customer.email',$data['email_id']);
...@@ -66,7 +66,7 @@ class Api_model extends CI_Model { ...@@ -66,7 +66,7 @@ class Api_model extends CI_Model {
$email_id = $data['email_id']; $email_id = $data['email_id'];
$message = "Hi,\n\r Welcome to TimeOut.\r\n Please use username: ".$email_id." and Password: ".$temp_password." for access your account"; $message = "Hi,\n\r Welcome to TimeOut.\r\n Please use username: ".$email_id." and Password: ".$temp_password." for access your account";
$this->send_mail($subject,$email_id,$message); $this->send_mail($subject,$email_id,$message);
$this->db->select('customer.name,customer.phone,customer.email,customer.profile_image AS image,customer.gender,users.id AS userId, customer.city'); $this->db->select('customer.name,customer.dob,customer.phone,customer.email,customer.profile_image AS image,customer.gender,users.id AS userId, customer.city,customer.dob');
$this->db->where('users.id',$id); $this->db->where('users.id',$id);
$this->db->from('users'); $this->db->from('users');
$this->db->join('customer','customer.customer_id = users.id'); $this->db->join('customer','customer.customer_id = users.id');
...@@ -294,7 +294,7 @@ class Api_model extends CI_Model { ...@@ -294,7 +294,7 @@ class Api_model extends CI_Model {
$page_limit = ($page - 1) * $per_page; $page_limit = ($page - 1) * $per_page;
if($count > $page_limit) { if($count > $page_limit) {
$result = $this->db->select('booking.id AS book_id,booking.event_id,booking.bookId AS bookingCode,booking.qrcode,booking.no_of_ticket,booking.amount,booking.status AS book_status,events.event_name,events.event_discription,event_gallery.media_url,venue.location')->where('customer_id',$user_id)->where('booking.status!=',3)->from('booking')->join('events','booking.event_id = events.event_id')->join('event_date_time','booking.event_date_id = event_date_time.id')->join('venue', 'venue.id = events.venue_id')->join('event_gallery', 'events.event_id = event_gallery.event_id AND event_gallery.media_type = 0', 'LEFT')->limit($per_page,$page_limit)->get()->result(); $result = $this->db->select('booking.id AS book_id,booking.event_id,booking.bookId AS bookingCode,booking.qrcode,booking.no_of_ticket,booking.amount,booking.status AS book_status,events.event_name,events.event_discription,event_gallery.media_url,venue.location')->where('customer_id',$user_id)->where('booking.status!=',3)->from('booking')->join('events','booking.event_id = events.event_id')->join('event_date_time','booking.event_date_id = event_date_time.id')->join('venue', 'venue.id = events.venue_id')->join('event_gallery', 'events.event_id = event_gallery.event_id AND event_gallery.media_type = 0', 'LEFT')->group_by('booking.id')->limit($per_page,$page_limit)->get()->result();
$meta = array('total_pages'=>ceil($count/$per_page), $meta = array('total_pages'=>ceil($count/$per_page),
'total'=>$count, 'total'=>$count,
'current_page'=>$page, 'current_page'=>$page,
...@@ -453,7 +453,7 @@ class Api_model extends CI_Model { ...@@ -453,7 +453,7 @@ class Api_model extends CI_Model {
} }
if($img_error == 1) { if($img_error == 1) {
$this->db->select('customer.name,customer.phone,customer.email,customer.profile_image AS image,customer.gender,users.id AS userId, customer.city'); $this->db->select('customer.name,customer.dob,customer.phone,customer.email,customer.profile_image AS image,customer.gender,users.id AS userId, customer.city');
$this->db->where('users.id',$user_id); $this->db->where('users.id',$user_id);
$this->db->from('users'); $this->db->from('users');
$this->db->join('customer','customer.customer_id = users.id'); $this->db->join('customer','customer.customer_id = users.id');
...@@ -593,8 +593,9 @@ class Api_model extends CI_Model { ...@@ -593,8 +593,9 @@ class Api_model extends CI_Model {
$user_id = $this->auth_token_get($data['auth_token']); $user_id = $this->auth_token_get($data['auth_token']);
if($user_id > 0) { if($user_id > 0) {
$cat_id = $data['cat_id']; $cat_id = $data['cat_id'];
$city_id = $data['city'];
$category = $this->db->where('cat_id',$cat_id)->get('event_category')->row(); $category = $this->db->where('cat_id',$cat_id)->get('event_category')->row();
$result = $this->db->query("SELECT events.event_id, events.event_name,events.event_discription AS event_description,events.seat_pricing, events.custom_seat_layout, venue.layout, venue.layout_details,`event_gallery`.`media_url` FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id AND event_date_time.date >= DATE_FORMAT(NOW(),'%Y-%m-%d') INNER JOIN venue ON venue.id = events.venue_id LEFT JOIN `event_gallery` ON `events`.`event_id` = `event_gallery`.`event_id` AND `event_gallery`.`media_type` = 0 WHERE events.status = 1 AND events.category_id = ".$cat_id." GROUP BY events.event_id")->result(); $result = $this->db->query("SELECT events.event_id, events.event_name,events.event_discription AS event_description,events.seat_pricing, events.custom_seat_layout, venue.layout, venue.layout_details,`event_gallery`.`media_url` FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id AND event_date_time.date >= DATE_FORMAT(NOW(),'%Y-%m-%d') INNER JOIN venue ON venue.id = events.venue_id LEFT JOIN `event_gallery` ON `events`.`event_id` = `event_gallery`.`event_id` AND `event_gallery`.`media_type` = 0 WHERE events.status = 1 AND events.category_id = ".$cat_id." AND venue.region_id = ".$city_id." GROUP BY events.event_id")->result();
if(count($result)>0){ if(count($result)>0){
$resultData = array(); $resultData = array();
foreach ($result as $rs) { foreach ($result as $rs) {
...@@ -642,7 +643,8 @@ class Api_model extends CI_Model { ...@@ -642,7 +643,8 @@ class Api_model extends CI_Model {
$user_id = $this->auth_token_get($data['auth_token']); $user_id = $this->auth_token_get($data['auth_token']);
if($user_id > 0) { if($user_id > 0) {
$event_id = $data['event_id']; $event_id = $data['event_id'];
$result = $this->db->query("SELECT events.event_id, AVG(review.rate) AS rate, MAX(booking.id) AS attendees, events.event_name,events.event_discription AS event_description,events.seat_pricing, events.custom_seat_layout, venue.layout, venue.layout_details,venue.venue_name,venue.venue_details,venue.location,venue.location_lat AS lat,venue.location_lng AS lng, GROUP_CONCAT(DISTINCT `event_gallery`.`media_url`) AS media_url,favourite.status AS fav_status, GROUP_CONCAT(DISTINCT tags.tag_name) AS tag, GROUP_CONCAT(DISTINCT CONCAT_WS('#',event_date_time.date,event_date_time.time)) AS date_time FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id INNER JOIN venue ON venue.id = events.venue_id LEFT JOIN `event_gallery` ON `events`.`event_id` = `event_gallery`.`event_id` AND `event_gallery`.`status` != 0 LEFT JOIN booking on booking.event_id = events.event_id LEFT JOIN favourite ON favourite.event_id = events.event_id AND favourite.user_id = ".$user_id." AND favourite.status = 1 LEFT JOIN event_tags ON events.event_id = event_tags.event_id LEFT JOIN tags on tags.tag_id = event_tags.tag_id LEFT JOIN review ON events.event_id = review.event_id WHERE events.event_id = ".$event_id." GROUP BY events.event_id, event_date_time.event_id")->result(); $this->db->query("SET SESSION group_concat_max_len = 20000");
$result = $this->db->query("SELECT events.event_id, AVG(review.rate) AS rate, MAX(booking.id) AS attendees, events.event_name,events.event_discription AS event_description,events.seat_pricing, events.custom_seat_layout, events.seat_pricing, venue.layout, venue.layout_details,venue.venue_name,venue.venue_details,venue.location,venue.location_lat AS lat,venue.location_lng AS lng, GROUP_CONCAT(DISTINCT `event_gallery`.`media_url`) AS media_url,favourite.status AS fav_status, events.max_booking, host_categories.show_layout, GROUP_CONCAT(DISTINCT tags.tag_name) AS tag, GROUP_CONCAT(DISTINCT CONCAT_WS('#',event_date_time.id,event_date_time.date,event_date_time.time)) AS date_time FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id INNER JOIN venue ON venue.id = events.venue_id LEFT JOIN `event_gallery` ON `events`.`event_id` = `event_gallery`.`event_id` AND `event_gallery`.`status` != 0 LEFT JOIN booking on booking.event_id = events.event_id LEFT JOIN favourite ON favourite.event_id = events.event_id AND favourite.user_id = ".$user_id." AND favourite.status = 1 LEFT JOIN event_tags ON events.event_id = event_tags.event_id LEFT JOIN tags on tags.tag_id = event_tags.tag_id LEFT JOIN review ON events.event_id = review.event_id INNER JOIN host_categories ON venue.host_cat_id = host_categories.host_cat_id WHERE events.event_id = ".$event_id." GROUP BY events.event_id, event_date_time.event_id")->result();
if(count($result)>0){ if(count($result)>0){
$resultData = array(); $resultData = array();
$event_layout = ''; $event_layout = '';
...@@ -667,8 +669,8 @@ class Api_model extends CI_Model { ...@@ -667,8 +669,8 @@ class Api_model extends CI_Model {
$time_spec = array(); $time_spec = array();
$latlng = array('lat'=>$rs->lat, 'lng'=>$rs->lng); $latlng = array('lat'=>$rs->lat, 'lng'=>$rs->lng);
foreach ($dates as $rss) { foreach ($dates as $rss) {
list($date,$time) = explode('#', $rss); $timeArray = explode('#', $rss);
$time_spec[$date][] = $time; $time_spec[$timeArray[1]][] = array("id"=>$timeArray[0],"time"=>$timeArray[2]);
} }
$tags = explode(',', $rs->tag); $tags = explode(',', $rs->tag);
$media_url = explode(',', $rs->media_url); $media_url = explode(',', $rs->media_url);
...@@ -684,12 +686,15 @@ class Api_model extends CI_Model { ...@@ -684,12 +686,15 @@ class Api_model extends CI_Model {
'event_tags'=>$tags, 'event_tags'=>$tags,
'event_layout_url'=>$rs->layout, 'event_layout_url'=>$rs->layout,
'event_price_layout'=>$event_layout, 'event_price_layout'=>$event_layout,
'seat_pricing'=>$rs->seat_pricing,
'event_times'=>$time_spec, 'event_times'=>$time_spec,
'fav_status'=>$rs->fav_status, 'fav_status'=>$rs->fav_status,
'event_id'=>$rs->event_id, 'event_id'=>$rs->event_id,
'venue_name'=>$rs->venue_name, 'venue_name'=>$rs->venue_name,
'venue_details'=>$rs->venue_details, 'venue_details'=>$rs->venue_details,
'venue_location'=>$rs->location, 'venue_location'=>$rs->location,
'max_booking'=>$rs->max_booking,
'show_layout'=>$rs->show_layout,
'latlng'=>$latlng 'latlng'=>$latlng
); );
array_push($resultData, $resData); array_push($resultData, $resData);
...@@ -838,6 +843,16 @@ class Api_model extends CI_Model { ...@@ -838,6 +843,16 @@ class Api_model extends CI_Model {
} }
return $res; return $res;
} }
function searchEvent($data) {
$str = strtolower($data['str']);
$event = $this->db->select('event_name,event_id')->from('events')->where("event_name LIKE '%$str%'")->where('status',1)->limit(5)->get();
$region = $this->db->select('id,name')->from('region')->where("name LIKE '%$str%'")->where('status',1)->limit(5)->get();
$response = array('events'=>$event->result(), 'cityList'=>$region->result());
$res = array('status'=>1,'data'=>$response);
return $res;
}
} }
?> ?>
\ No newline at end of file
...@@ -40,5 +40,17 @@ class Region_model extends CI_Model { ...@@ -40,5 +40,17 @@ class Region_model extends CI_Model {
array('id'=>$region_id)); array('id'=>$region_id));
return $status; return $status;
} }
public function getlocalityData($region_id = '',$locality_id = '', $status = '0'){
$where = array('status'=>$status);
if(!empty($region_id)){
$where['region_id'] = $region_id;
}
if(!empty($locality_id)){
$where['id'] = $locality_id;
}
$data = $this->db->get_where('locality',$where);
return $data->result();
}
} }
?> ?>
\ No newline at end of file
<?php
class Validation_app_model extends CI_Model {
public $validation_array = array(
'login'=> array('email'=>array('required'=>array('code'=>'ER02', 'message'=>'Email id is null or empty'),
'email'=>array('code'=>'ER03', 'message'=>'Invalid Email id')
),
'password'=>array('required'=>array('code'=>'ER04', 'message'=>'Password is null or empty'),
)
),
'check_email_availability'=> array('email'=>array('required'=>array('code'=>'ER02', 'message'=>'Email id is null or empty'),
'email'=>array('code'=>'ER03', 'message'=>'Invalid Email id')
),
'phone'=>array('required'=>array('code'=>'ER07', 'message'=>'Phone no is null or empty'),
'phone'=>array('code'=>'ER08', 'message'=>'Invalid Phone no')
),
),
'registration'=> array('email'=>array('required'=>array('code'=>'ER02', 'message'=>'Email id is null or empty'),
'email'=>array('code'=>'ER03', 'message'=>'Invalid Email id')
),
'phone'=>array('required'=>array('code'=>'ER07', 'message'=>'Phone no is null or empty'),
'phone'=>array('code'=>'ER08', 'message'=>'Invalid Phone no'),
),
'password'=>array('required'=>array('code'=>'ER04', 'message'=>'Password is null or empty'),
)
),
'get_places_list'=>array('auth_token'=>array('required'=>array('code'=>'ER17', 'message'=>'User Id is null or empty'),
)
),
'place_details'=>array('auth_token'=>array('required'=>array('code'=>'ER17', 'message'=>'User Id is null or empty'),
)
),
);
public function validation_check($method_name, $parms) {
$state = 0;
$rules = $this->validation_array[$method_name];
$error_key = '';
foreach ($rules as $key => $value) {
foreach ($value as $keys => $values) {
switch ($keys) {
case 'required':
if(!isset($parms[$key]) || $parms[$key]=='' || $parms[$key]== null){
$state = 1;
$error_key = $values;
}
break;
case 'email':
if (isset($parms[$key]) && !filter_var($parms[$key], FILTER_VALIDATE_EMAIL)) {
$state = 1;
$error_key = $values;
}
break;
case 'phone':
if(isset($parms[$key])){
$phone = preg_replace('/[^0-9]/', '', $parms[$key]);
if (strlen($phone) !== 10) {
$state = 1;
$error_key = $values;
}
}
break;
default:
# code...
break;
}
if($state==1){
break;
}
}
if($state==1){
break;
}
}
return array('state'=>$state,'response'=>$error_key);
}
}
\ No newline at end of file
...@@ -96,6 +96,7 @@ class Validation_model extends CI_Model { ...@@ -96,6 +96,7 @@ class Validation_model extends CI_Model {
'event_id'=>array('required'=>array('code'=>'ER16', 'message'=>'Event id is null or empty') 'event_id'=>array('required'=>array('code'=>'ER16', 'message'=>'Event id is null or empty')
), ),
), ),
'searchEvent'=>array()
); );
......
...@@ -22,11 +22,20 @@ class Venue_model extends CI_Model { ...@@ -22,11 +22,20 @@ class Venue_model extends CI_Model {
return 0; return 0;
} }
public function createVenue($venueData = array()){ public function createVenue($venueData = array(),$locality = ''){
if(empty($venueData)){ if(empty($venueData)){
return 0; return 0;
} }
if(!empty($locality)){
$status = $this->db->insert('locality',
array('locality'=>$locality,'region_id'=>$venueData['region_id']));
if($status){
$venueData['locality_id'] = $this->db->insert_id();
}
}
$status = $this->db->insert('venue',$venueData); $status = $this->db->insert('venue',$venueData);
return $status; return $status;
} }
......
<?php
class Webservice_model extends CI_Model {
public function _consruct(){
parent::_construct();
}
function login($data){
try{
$this->db->select("customer.name AS user_name,customer.phone,customer.email,customer.profile_image AS profile_photo,users.id AS user_id, IF(customer.phone_verified = 0,'false','true') AS is_phone_verified");
$this->db->where('users.status',1);
$this->db->where('users.password',md5($data['password']));
$this->db->where('customer.email',$data['email']);
$this->db->from('users');
$this->db->join('customer','customer.customer_id = users.id');
$result = $this->db->get()->row();
if($result){
$auth_token = md5(microtime().rand());
$response = array('user'=>$result,'auth_token'=>$auth_token);
$this->generateAuth($result->user_id,$auth_token);
$res = array('status'=>1,'data'=>$response);
} else {
$res = array('status'=>0,'message'=>'Invalid username / Password','code'=>'ER05');
}
} catch(Exception $e) {
$res = array('status'=>0,'message'=>'Ohh No!! Something went South!!','code'=>'ER06');
}
return $res;
}
function availability($data) {
try{
$is_email_available = "true";
$is_phone_available = "true";
$res_count = $this->db->where('email',$data['email'])->or_where('phone',$data['phone'])->get('customer')->result();
if(count($res_count) > 0) {
foreach ($res_count as $rs) {
if($rs->email == $data['email']) {
$is_email_available = "false";
}
if($rs->phone == $data['phone']) {
$is_phone_available = "false";
}
}
}
$data = array(
'is_email_available'=>$is_email_available,
'is_phone_available'=>$is_phone_available
);
$res = array('status'=>1,'data'=>$data);
} catch(Exception $e) {
$res = array('status'=>0,'message'=>'Ohh No!! Something went South!!','code'=>'ER06');
}
return $res;
}
function register($data) {
try{
$res_count = $this->db->where('email',$data['email'])->or_where('phone',$data['phone'])->get('customer')->row();
if(count($res_count) > 0) {
if($res_count->email == $data['email'] && $res_count->phone == $data['phone']){
$res = array('status'=>0,'message'=>'Already have an account with email id and phone no. Please login','code'=>'ER12');
} else if($res_count->email == $data['email']){
$res = array('status'=>0,'message'=>'Email id already exists','code'=>'ER09');
} else if($res_count->phone == $data['phone']) {
$res = array('status'=>0,'message'=>'Phone no already exists','code'=>'ER10');
}
} else {
$temp_password = $data['password'];
$data['password'] = md5($data['password']);
$user_data = array(
'password'=>$data['password'],
'display_name'=>'Customer',
'user_type'=> 3
);
$this->db->insert('users',$user_data);
$id = $this->db->insert_id();
if($id) {
$customer_data = array(
'customer_id'=>$id,
'phone'=>$data['phone'],
'email'=>$data['email']
);
$this->db->insert('customer', $customer_data);
$subject = "New account created successfully";
$email_id = $data['email'];
$message = "Hi,\n\r Welcome to TimeOut.\r\n Please use username: ".$email_id." and Password: ".$temp_password." for access your account";
$this->send_mail($subject,$email_id,$message);
$this->db->select("customer.name AS user_name,customer.phone,customer.email,customer.profile_image AS profile_photo,users.id AS user_id, IF(customer.phone_verified = 0,'false','true') AS is_phone_verified");
$this->db->where('users.id',$id);
$this->db->from('users');
$this->db->join('customer','customer.customer_id = users.id');
$result = $this->db->get()->row();
if($result){
$auth_token = md5(microtime().rand());
$this->generateAuth($result->user_id,$auth_token);
$response = array('user'=>$result,'auth_token'=>$auth_token);
$res = array('status'=>1,'data'=>$response);
} else {
$res = array('status'=>0,'message'=>'No record found','code'=>'ER13');
}
} else {
$res = array('status'=>0,'message'=>'Registration failed please try again','code'=>'ER11');
}
}
} catch(Exception $e) {
$res = array('status'=>0,'message'=>'Ohh No!! Something went South!!','code'=>'ER06');
}
return $res;
}
function discover($data) {
try {
if($data['auth_token']) {
$user_id = $this->auth_token_get($data['auth_token']);
} else {
$user_id = 0;
}
if(isset($data['cat_id'])) {
$where = ' AND events.category_id = '.$data['cat_id'];
} else {
$where = '';
}
$result = $this->db->query("SELECT events.event_id AS event_id, events.event_name AS name,`event_gallery`.`media_url` AS image, COUNT(booking.id) AS attendees, event_category.category, AVG(review.rate) AS rating, venue.location, IF(favourite.status = 1, 'true','false') AS is_favorite, IF(events.provider_id = 1,'true','false') AS is_editors_choice, events.avg_price AS rate FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id AND event_date_time.date >= DATE_FORMAT(NOW(),'%Y-%m-%d') LEFT JOIN `event_gallery` ON `events`.`event_id` = `event_gallery`.`event_id` AND `event_gallery`.`media_type` = 0 LEFT JOIN booking ON booking.event_id = events.event_id LEFT JOIN event_category ON events.category_id = event_category.cat_id LEFT JOIN review ON review.event_id = events.event_id LEFT JOIN venue ON venue.id = events.venue_id LEFT JOIN favourite ON favourite.event_id = events.event_id AND favourite.user_id = ".$user_id." AND favourite.status = 1 WHERE events.status = 1 ".$where." GROUP BY events.event_id")->result();
if(count($result)>0){
$resultData = array();
$resultData['events'] = $result;
$res = array('status'=>1,'data'=>$resultData);
} else {
$res = array('status'=>0,'message'=>'No records found','code'=>'ER13');
}
} catch(Exception $e) {
$res = array('status'=>0,'message'=>'Ohh No!! Something went South!!','code'=>'ER06');
}
return $res;
}
function event($data) {
try {
$user_id = $this->auth_token_get($data['auth_token']);
if($user_id > 0) {
$event_id = $data['event_id'];
$this->db->query("SET SESSION group_concat_max_len = 20000");
$rs = $this->db->query("SELECT events.event_id, AVG(review.rate) AS rate, MAX(booking.id) AS attendees, events.event_name,events.event_discription AS event_description,events.seat_pricing, events.custom_seat_layout, venue.layout, venue.layout_details,venue.venue_name,venue.venue_details,venue.location,venue.location_lat AS lat,venue.location_lng AS lng, GROUP_CONCAT(DISTINCT `event_gallery`.`media_url`) AS media_url,IF(favourite.status = 1,'true','false') AS fav_status, GROUP_CONCAT(DISTINCT tags.tag_name) AS tag, GROUP_CONCAT(DISTINCT CONCAT_WS('#',event_date_time.id,event_date_time.date,event_date_time.time)) AS date_time, events.max_booking FROM events INNER JOIN event_date_time ON events.event_id = event_date_time.event_id INNER JOIN venue ON venue.id = events.venue_id LEFT JOIN `event_gallery` ON `events`.`event_id` = `event_gallery`.`event_id` AND `event_gallery`.`status` != 0 LEFT JOIN booking on booking.event_id = events.event_id LEFT JOIN favourite ON favourite.event_id = events.event_id AND favourite.user_id = ".$user_id." AND favourite.status = 1 LEFT JOIN event_tags ON events.event_id = event_tags.event_id LEFT JOIN tags on tags.tag_id = event_tags.tag_id LEFT JOIN review ON events.event_id = review.event_id WHERE events.event_id = ".$event_id." GROUP BY events.event_id, event_date_time.event_id")->row();
if(count($rs)>0){
$resultData = array();
$event_layout = '';
$colorData = array();
$booking = $this->db->where('event_id',$event_id)->select('ticket_details')->get('booking')->result();
if(count($booking) > 0){
foreach ($booking as $row) {
$priceData = json_decode($row->ticket_details);
if(count($priceData) > 0){
foreach ($priceData as $value) {
$colorData[$value->color] = isset($colorData[$value->color]) ? + $colorData[$value->color] + $value->no_ticket: $value->no_ticket;
}
}
}
}
//foreach ($result as $rs) {
if($rs->layout!=''){
if($rs->custom_seat_layout!=''){
$pricelist = json_decode($rs->custom_seat_layout, TRUE);
$price = min(array_column($pricelist, 'price'));
$event_layout = $rs->custom_seat_layout;
} else {
$pricelist = json_decode($rs->layout_details, TRUE);
$price = min(array_column($pricelist, 'price'));
$event_layout = $rs->layout_details;
}
} else {
$pricelist = json_decode($rs->seat_pricing, TRUE);
$price = $pricelist['price'];
$event_layout = $rs->seat_pricing;
}
$event_layout = json_decode($event_layout);
$event_layouts = array();
foreach ($event_layout as $value) {
if(isset($colorData[$value->color])) {
$avaliable = $value->capacity - $colorData[$value->color];
} else {
$avaliable = $value->capacity;
}
$priceLayout = array('class_name' => $value->color,
'rate'=>$value->price,
'total_tickets'=>$value->capacity,
'available_tickets'=>$avaliable,
"max_ticket"=>$rs->max_booking
);
array_push($event_layouts, $priceLayout);
}
$dates = explode(',', $rs->date_time);
$time_spec = array();
foreach ($dates as $rss) {
list($id,$date,$time) = explode('#', $rss);
$time_spec[] = array('id'=>$id, 'date'=>$date, 'time'=>$time);
}
$tags = explode(',', $rs->tag);
$media_url = explode(',', $rs->media_url);
$resData = array(
'event_id'=>$rs->event_id,
'name'=>$rs->event_name,
'description'=>$rs->event_description,
'rating'=>$rs->rate,
'total_attendees'=>$rs->attendees,
'layout_image'=>$rs->layout,
'is_favorite'=>$rs->fav_status,
'photos'=>$media_url,
'time'=>$time_spec[0]['time'],
'date'=>$time_spec[0]['date'],
'date_list'=>$time_spec,
'classes'=>$event_layouts,
'latitude'=>$rs->lat,
'longitude'=>$rs->lng
);
/*array_push($resultData, $resData);
}*/
$res = array('status'=>1,'data'=>$resData);
} else {
$res = array('status'=>0,'message'=>'No records found','code'=>'ER13');
}
} else {
$res = array('status'=>0,'message'=>'Invalid user','code'=>'ER19');
}
} catch(Exception $e) {
$res = array('status'=>0,'message'=>'Ohh No!! Something went South!!','code'=>'ER06');
}
return $res;
}
function generateAuth($userId,$auth_token) {
$this->db->insert('customer_auth',array('user_id'=>$userId, 'auth_token'=>$auth_token));
}
function auth_token_get($token) {
$rs = $this->db->select('user_id')->where('auth_token', $token)->get('customer_auth')->row();
if(count($rs) > 0) {
return $rs->user_id;
} else {
return 0;
}
}
function send_mail($subject,$email,$message,$attach=null) {
$ci =& get_instance();
$ci->load->library('email');
$ci->email->initialize(array(
'protocol' => 'smtp',
'smtp_host' => 'smtp.sendgrid.net',
'smtp_user' => '[email protected]',
'smtp_pass' => 'Golden_123',
'smtp_port' => 587,
'crlf' => "\r\n",
'newline' => "\r\n"
));
$ci->email->from('[email protected]', 'TimeOut');
$ci->email->to($email);
$ci->email->cc('[email protected]');
$ci->email->subject($subject);
$ci->email->message($message);
if($attach!=null) {
$ci->email->attach($attach);
}
return $ci->email->send();
}
}
\ No newline at end of file
...@@ -224,7 +224,7 @@ ...@@ -224,7 +224,7 @@
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label>Event Description</label> <label>Event Description</label>
<textarea type="text" class="ip_reg_form_input form-control reset-form-custom required" placeholder="Venue Description" name="event_discription" required <textarea id="rich_editor" type="text" class="ip_reg_form_input form-control reset-form-custom required" placeholder="Venue Description" name="event_discription" required
style="height:108px;" data-parsley-trigger="change" data-parsley-minlength="2"></textarea> style="height:108px;" data-parsley-trigger="change" data-parsley-minlength="2"></textarea>
</div> </div>
</div> </div>
......
...@@ -217,7 +217,7 @@ ...@@ -217,7 +217,7 @@
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label>Event Description</label> <label>Event Description</label>
<textarea type="text" class="ip_reg_form_input form-control reset-form-custom required" placeholder="Venue Description" name="event_discription" required <textarea id="rich_editor" type="text" class="ip_reg_form_input form-control reset-form-custom required" placeholder="Venue Description" name="event_discription" required
style="height:108px;" data-parsley-trigger="change" data-parsley-minlength="2"><?= $event_data->event_discription ?></textarea> style="height:108px;" data-parsley-trigger="change" data-parsley-minlength="2"><?= $event_data->event_discription ?></textarea>
</div> </div>
</div> </div>
......
...@@ -34,8 +34,7 @@ ...@@ -34,8 +34,7 @@
<?php if(!empty($regionData)){ ?> <?php if(!empty($regionData)){ ?>
<div class="form-group"> <div class="form-group">
<label>Region</label> <label>Region</label>
<select name="region_id" class="form-control required" <select name="region_id" class="form-control required" placeholder="Select Region" required>
placeholder="Select Region" required>
<option selected disabled>Choose a Region</option> <option selected disabled>Choose a Region</option>
<?php <?php
foreach ($regionData as $region) { foreach ($regionData as $region) {
...@@ -51,15 +50,13 @@ ...@@ -51,15 +50,13 @@
<div class="form-group"> <div class="form-group">
<label>Venue Title</label> <label>Venue Title</label>
<input type="text" class="form-control required" data-parsley-trigger="change" <input type="text" class="form-control required" data-parsley-trigger="change"
data-parsley-minlength="1" name="venue_name" required="" data-parsley-minlength="1" name="venue_name" required="" placeholder="Enter Venue Title"
placeholder="Enter Venue Title" value="<?= (isset($venue_data->venue_name))?$venue_data->venue_name:'' ?>"> value="<?= (isset($venue_data->venue_name))?$venue_data->venue_name:'' ?>">
<span class="glyphicon form-control-feedback"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Venue Address</label> <label>Venue Address</label>
<input type="text" class="form-control required" data-parsley-trigger="change" <input type="text" class="form-control required" data-parsley-trigger="change"
id="loc_search_1" name="location" placeholder="Venue Address" value="<?= (isset($venue_data->location))?$venue_data->location:'' ?>" required> id="loc_search_1" name="location" placeholder="Venue Address" value="<?= (isset($venue_data->location))?$venue_data->location:'' ?>" required>
<span class="glyphicon form-control-feedback"></span>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
...@@ -83,9 +80,30 @@ ...@@ -83,9 +80,30 @@
<?php } ?> <?php } ?>
<div class="form-group"> <div class="form-group">
<label>Venue Details</label> <label>Venue Details</label>
<textarea type="text" class="ip_reg_form_input form-control reset-form-custom required" placeholder="Venue Details" name="venue_details" data-parsley-trigger="change" data-parsley-minlength="1" required="" style="height:108px;"><?= (isset($venue_data->venue_details))?$venue_data->venue_details:'' ?></textarea> <textarea type="text" class="ip_reg_form_input form-control reset-form-custom required" placeholder="Venue Details" name="venue_details" data-parsley-trigger="change" data-parsley-minlength="1" required="" style="height:34px;"><?= (isset($venue_data->venue_details))?$venue_data->venue_details:'' ?></textarea>
<span class="glyphicon form-control-feedback"></span> <span class="glyphicon form-control-feedback"></span>
</div> </div>
<?php if(!isset($venue_id) || empty($venue_id)){ ?>
<div class="form-group">
<label id="localityLabel">Venue Locality</label>
<div id="showType" class="hide">
<div class="col-md-5">
<input type="radio" name="locality_type" value="0" checked>
<label class="padAll-10">Use Existing Locality</label>
</div>
<div class="col-md-4">
<input class="marginLeft15" type="radio" name="locality_type" value="1">
<label class="padAll-10">Add New Locality</label>
</div>
</div>
<div id="addNew" class="form-group">
<input type="text" class="form-control required" data-parsley-trigger="change" name="locality" placeholder="Locality">
</div>
<div id="useExist" class="form-group hide">
<select name="locality_id" class="form-control required" placeholder="Select Locality"></select>
</div>
</div>
<?php } ?>
</div> </div>
<input id="has_layout" type="hidden" name="has_layout" value='0'> <input id="has_layout" type="hidden" name="has_layout" value='0'>
<div class="col-md-12" id="layoutCntr" class="hide"> <div class="col-md-12" id="layoutCntr" class="hide">
...@@ -263,4 +281,3 @@ ...@@ -263,4 +281,3 @@
data-parsley-trigger="change" data-parsley-minlength="1" name="seat_price[]"data-parsley-pattern="^[0-9\ . \/]+$" placeholder="Default Seat Price"> data-parsley-trigger="change" data-parsley-minlength="1" name="seat_price[]"data-parsley-pattern="^[0-9\ . \/]+$" placeholder="Default Seat Price">
</div> </div>
</div> </div>
...@@ -733,4 +733,79 @@ function slideTo(id){ ...@@ -733,4 +733,79 @@ function slideTo(id){
jQuery('html, body').animate({ jQuery('html, body').animate({
scrollTop: jQuery('[id="'+id+'"]').offset().top scrollTop: jQuery('[id="'+id+'"]').offset().top
}, 800); }, 800);
} }
\ No newline at end of file
jQuery('[name="locality_type"]').on('click',function(event) {
var type = jQuery(this).val();
if(type == 0){
jQuery('[id="useExist"]').removeClass('hide');
jQuery('[name="locality_id"]').prop("disabled",false);
jQuery('[name="locality_id"]').addClass("required");
jQuery('[id="addNew"]').addClass('hide');
jQuery('[name="locality"]').prop("disabled",true);
jQuery('[name="locality"]').removeClass("required");
} else {
jQuery('[id="addNew"]').removeClass('hide');
jQuery('[name="locality"]').prop("disabled",false);
jQuery('[name="locality"]').addClass("required");
jQuery('[id="useExist"]').addClass('hide');
jQuery('[name="locality_id"]').prop("disabled",true);
jQuery('[name="locality_id"]').removeClass("required");
}
});
jQuery('[name="region_id"]').on('change',function(){
var thisObj = jQuery(this),
region_id = thisObj.val();
if(region_id == '' || region_id == 'undefined' || region_id == undefined || region_id == 'null' || region_id == null){
return false;
}
jQuery.ajax({
url : base_url+"Venue/getLocalityData",
type : 'POST',
data : {'region_id':region_id},
success: function(resp){
if(resp == '' || resp == undefined || resp == 'undefined' || resp == null || resp == 'null'){
return false;
}
var resp_data = jQuery.parseJSON(resp);
if(resp_data['status'] == 0){
jQuery('[id="showType"]').addClass('hide');
jQuery('[id="localityLabel"]').removeClass('hide');
jQuery('[id="addNew"]').removeClass('hide');
jQuery('[name="locality"]').prop("disabled",false);
jQuery('[name="locality"]').addClass("required");
jQuery('[id="useExist"]').addClass('hide');
jQuery('[name="locality_id"]').prop("disabled",true);
jQuery('[name="locality_id"]').removeClass("required");
}
if(resp_data['status'] == 1){
jQuery('[id="addNew"]').addClass('hide');
jQuery('[name="locality"]').prop("disabled",true);
jQuery('[name="locality"]').removeClass("required");
jQuery('[id="useExist"]').removeClass('hide');
jQuery('[name="locality_id"]').prop("disabled",false);
jQuery('[name="locality_id"]').addClass("required");
jQuery('[id="showType"]').removeClass('hide');
jQuery('[id="localityLabel"]').addClass('hide');
jQuery('[name="locality_id"]').html('');
jQuery('[name="locality_id"]').html('<option selected disabled>Choose Venue Locality</option>');
jQuery.each(resp_data['data'], function(key, data) {
jQuery('[name="locality_id"]').append(jQuery("<option></option>").attr("value",data['id']).text(data['locality']));
});
}
}
});
});
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment