Commit 9e63afa9 by Jansa Jose

changes in booked api for web and app

parent fa4e0f32
...@@ -156,7 +156,8 @@ class Api extends CI_Controller { ...@@ -156,7 +156,8 @@ class Api extends CI_Controller {
public function bookedlist() { public function bookedlist() {
$data = (array) json_decode(file_get_contents('php://input')); $data = (array) json_decode(file_get_contents('php://input'));
$data['auth_token'] = $this->auth_token; $data['auth_token'] = $this->auth_token;
$res = $this->Api_model->bookedlist($data); $res_count = $this->Webservice_model->bookedlist($data,0,0);
$res = $this->Api_model->bookedlist($data,10,'',$res_count);
if($res['status']!=0){ if($res['status']!=0){
$this->response($res['data']); $this->response($res['data']);
} }
......
...@@ -311,7 +311,8 @@ class Webservice extends CI_Controller { ...@@ -311,7 +311,8 @@ class Webservice extends CI_Controller {
public function get_booking_list() { public function get_booking_list() {
$data = $_GET; $data = $_GET;
$data['auth_token'] = $this->auth_token; $data['auth_token'] = $this->auth_token;
$res = $this->Webservice_model->bookedlist($data); $res_count = $this->Webservice_model->bookedlist($data,0,0);
$res = $this->Webservice_model->bookedlist($data,10,'',$res_count);
if(sizeof($res['data']) && $res['status']!=0){ if(sizeof($res['data']) && $res['status']!=0){
$this->responseBookList($res['data']); $this->responseBookList($res['data']);
}elseif(sizeof($res['data'] == 0) && $res['status']!=0){ }elseif(sizeof($res['data'] == 0) && $res['status']!=0){
......
...@@ -1428,66 +1428,50 @@ class Webservice_model extends CI_Model { ...@@ -1428,66 +1428,50 @@ class Webservice_model extends CI_Model {
return $res; return $res;
} }
function bookedlist($data) {
function bookedlist($data,$per_page='',$page ='',$count ='') {
try { try {
$per_page = 10;
$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) {
$count = $this->db->query(" if($page == 0 && $per_page == 0){
SELECT ODR.order_id FROM orders AS ODR $page = $page;
INNER JOIN booking AS BOK ON }else{
(ODR.booking_id=BOK.bookId AND BOK.status IN (0,1,2,3,5,6)) $page = (isset($data['page']))? $data['page']:1;
INNER JOIN flight_booking AS FBK ON }
(ODR.booking_id=FBK.flight_book_id AND FBK.status IN (0,1,2,3,5))
INNER JOIN hotel_booking AS HBK ON $page_limit = ($page - 1) * $per_page;
(ODR.booking_id=HBK.hotel_book_id AND HBK.status IN (0,1,2,3,5)) $cond =($per_page == 0 && $page == 0)?'':"LIMIT $page_limit, $per_page";
WHERE BOK.customer_id='$user_id' AND EVT.status='1'
GROUP BY ODR.order_id")->num_rows(); $bookedData = $this->db->query("
SELECT ODR.order_id,ODR.order_type,ODR.booking_id FROM orders AS ODR
if($count > 0) { LEFT JOIN booking AS BOK ON
if(isset($data['page'])) { (ODR.booking_id=BOK.bookId AND BOK.status IN (0,1,2,3,5,6) AND
$page = $data['page']; BOK.customer_id='$user_id')
} else { LEFT JOIN flight_booking AS FBK ON
$page = 1; (ODR.booking_id=FBK.flight_book_id AND FBK.status IN (0,1,2,3,5) AND
} FBK.customer_id='$user_id')
$page_limit = ($page - 1) * $per_page; LEFT JOIN hotel_booking AS HBK ON
(ODR.booking_id=HBK.hotel_book_id AND HBK.status IN (0,1,2,3,5) AND
HBK.customer_id='$user_id')
GROUP BY ODR.order_id $cond");
if($per_page == 0 && $page == 0){
return $bookedData->num_rows();
}
if(count($bookedData) > 0) {
if($count > $page_limit) { if($count > $page_limit) {
$countryData = $this->getCountryData($user_id); $bookData = array();
$lang = $countryData['language_code']; foreach (($bookedData = $bookedData->result_array()) as $key => $value) {
switch($value['order_type']){
$sql = "SELECT booking.bookId AS booking_id,event_date_time.date, case 1 : $resp = $this->getEventData($value['booking_id'],$user_id);break;
translator_event.event_name,booking.qrcode AS event_image, case 2 : $resp = $this->getHotelData($value['booking_id'],$user_id);break;
venue.location,event_date_time.time,booking.event_id, case 3 : $resp = $this->getFlightData($value['booking_id'],$user_id);break;
booking.no_of_ticket AS ticket_count,events.has_payment, }
booking.status AS booking_status,transaction.status AS transaction_status if(!empty($resp)){
FROM booking $bookData[] = $resp;
INNER JOIN events ON booking.event_id = events.event_id
INNER JOIN event_date_time ON booking.event_date_id = event_date_time.id
INNER JOIN venue ON venue.id = events.venue_id
INNER JOIN translator_event ON translator_event.event_id=events.event_id
LEFT JOIN transaction ON transaction.booking_id=booking.bookId
WHERE booking.customer_id = '$user_id' AND booking.status IN (0,1,2,6)
AND (translator_event.language_code='$lang' OR
translator_event.language_code='EN')
GROUP BY booking.id
ORDER BY booking.id DESC
LIMIT $page_limit, $per_page";
$result = $this->db->query($sql)->result_array();
if(!empty($result)){
foreach ($result AS $key => $value) {
if($value['has_payment'] == '1' && $value['transaction_status'] != '1'){
unset($result[$key]);
}
} }
$result = array_values($result);
} }
$meta = array('total_pages'=>ceil($count/$per_page), $meta = array('total_pages'=>ceil($count/$per_page),'total'=>$count,'current_page'=>$page,'per_page'=>$per_page);
'total'=>$count, $res = array('status'=>1,'data'=>array('bookings'=>$bookData,'meta'=>$meta));
'current_page'=>$page,
'per_page'=>$per_page
);
$response = array('bookings'=>$result,'meta'=>$meta);
$res = array('status'=>1,'data'=>$response);
} else { } else {
$res = array('status'=>1,'data' => []); $res = array('status'=>1,'data' => []);
} }
...@@ -1503,6 +1487,73 @@ class Webservice_model extends CI_Model { ...@@ -1503,6 +1487,73 @@ class Webservice_model extends CI_Model {
return $res; return $res;
} }
function getEventData($booking_id='',$user_id=''){
$countryData = $this->getCountryData($user_id);
$lang = $countryData['language_code'];
$sql = "SELECT booking.bookId AS booking_id,event_date_time.date,
translator_event.event_name,booking.qrcode AS event_image,
venue.location,event_date_time.time,booking.event_id,
booking.no_of_ticket AS ticket_count,events.has_payment,
booking.status AS booking_status,transaction.status AS transaction_status
FROM booking
INNER JOIN events ON booking.event_id = events.event_id
INNER JOIN event_date_time ON booking.event_date_id = event_date_time.id
INNER JOIN venue ON venue.id = events.venue_id
INNER JOIN translator_event ON translator_event.event_id=events.event_id
LEFT JOIN transaction ON transaction.booking_id=booking.bookId
WHERE (translator_event.language_code='$lang' OR translator_event.language_code='EN').
AND booking.bookId='$booking_id' AND events.has_payment != '1'
AND transaction.status = '1'";
return $this->db->query($sql)->row_array();
}
function getHotelData($booking_id='',$user_id=''){
$sql = "SELECT HBK.hotel_book_id AS bookId,HBK.hotel_name AS event_name,
HBK.qrcode AS event_image,HBK.checkin AS date, HBK.id AS event_id,
HBK.status AS booking_status,TRS.status AS transaction_status,
HBK.traveller_details
FROM hotel_booking AS HBK
LEFT JOIN transaction AS TRS ON TRS.booking_id=HBK.hotel_book_id
WHERE HBK.hotel_book_id='$booking_id'";
$hotelData = $this->db->query($sql)->row_array();
if(empty($hotelData)){
return;
}
$trvlDtls = (isset($hotelData['traveller_details']) && !empty($hotelData['traveller_details']))?json_decode($hotelData['traveller_details']):'';
$hotelData['location'] = (!empty($trvlDtls) && isset($trvlDtls->hotel_address))?$trvlDtls->hotel_address:'';
$hotelData['ticket_count'] = (!empty($trvlDtls) && isset($trvlDtls->roomDetails->room))?$trvlDtls->roomDetails->room.' Room':'';
$hotelData['time'] = '11:00';
$hotelData['has_payment'] = 1;
unset($hotelData['traveller_details']);
return $hotelData;
}
function getFlightData($booking_id='',$user_id=''){
$sql = "SELECT FBK.flight_book_id AS bookId,FBK.flight_name AS event_name,FBK.id AS event_id,
FBK.qrcode AS event_image,FBK.departure_date AS date,
FBK.status AS booking_status,TRS.status AS transaction_status,
FBK.traveller_details
FROM flight_booking AS FBK
LEFT JOIN transaction AS TRS ON TRS.booking_id=FBK.flight_book_id
WHERE FBK.flight_book_id='$booking_id'";
$flightData = $this->db->query($sql)->row_array();
if(empty($flightData)){
return;
}
$trvlDtls = (isset($flightData['traveller_details']) && !empty($flightData['traveller_details']))?json_decode($flightData['traveller_details']):'';
$flightData['location'] = (!empty($trvlDtls))?$trvlDtls->fromAirportCity.' - '.$trvlDtls->toAirportCity:'';
$flightData['ticket_count'] = (!empty($trvlDtls))?(int)$trvlDtls->passengerDetails->adult + (int)$trvlDtls->passengerDetails->children + (int)$trvlDtls->passengerDetails->infant:'';
$fghtTme = explode("T",$flightData['date']);
unset($flightData['traveller_details'],$flightData['date']);
$flightData['date'] = (isset($fghtTme[0]) && !empty($fghtTme[0]))?$fghtTme[0]:'';
$flightData['time'] = (isset($fghtTme[1]) && !empty($fghtTme[1]))?$fghtTme[1]:'';
$flightData['has_payment'] = 1;
return $flightData;
}
function get_settings($data) { function get_settings($data) {
try { try {
$user_id = $this->auth_token_get($data['auth_token']); $user_id = $this->auth_token_get($data['auth_token']);
......
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