<?php 

class FlightServices_model extends CI_Model {
	
	public function _consruct(){
		parent::_construct();
	}

    public 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;
        }
    }

    public function flight_authenticate($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$settings = getSettings();
    			$url = "https://trawex.biz/api/flight_trawex/authenticate?user_id=".$settings['trawex_user_id']."&user_password=".$settings['trawex_user_password']."&access=".$settings['trawex_access']."&ip_address=".$settings['trawex_ip_address']."";
    			$result = $this->passToJsonCurl($url,'');
    			if(!empty($result)){
    				$result = json_decode($result);
    				$res = array('status'=>1,'data'=>$result);
    			}else{
    				$res = array('status'=>0,'message'=>'No Data Found','code'=>'ER06');
    			}
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER10');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South!!','code'=>'ER08');
    	}
    	return $res;
    }

    public function flight_availability_search($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$settings = getSettings();
    			$url = "https://trawex.biz/api/flight_trawex/flight_availability_search?user_id=".$settings['trawex_user_id']."&user_password=".$settings['trawex_user_password']."&access=".$settings['trawex_access']."&ip_address=".$settings['trawex_ip_address']."&session_id=".$data['session_id']."&journey_type=".$data['journey_type']."&airport_from_code=".$data['airport_from_code']."&airport_to_code=".$data['airport_to_code']."&departure_date=".$data['departure_date']."&return_date=".$data['return_date']."&adult_flight=".$data['adult_flight']."&child_flight=".$data['child_flight']."&infant_flight=".$data['infant_flight']."&class=".$data['class']."&target=".$data['target']."";
    			$result = $this->passToJsonCurl($url,'');
    			if(!empty($result)){
    				$result = json_decode($result);
    				$res = array('status'=>1,'data'=>$result);
    			}else{
    				$res = array('status'=>0,'message'=>'No Data Found','code'=>'ER08');
    			}
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER06');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
    	}
    	return $res;
    }

    public function flight_fare_rules($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$settings = getSettings();
    			$url = "https://trawex.biz/api/flight_trawex/fare_rules?user_id=".$settings['trawex_user_id']."&user_password=".$settings['trawex_user_password']."&access=".$settings['trawex_access']."&ip_address=".$settings['trawex_ip_address']."&fare_source_code=".$data['fare_source_code']."&session_id=".$data['session_id']."";
    			$result = $this->passToJsonCurl($url,'');
    			if(!empty($result)){
    				$result = json_decode($result);
    				$res = array('status'=>1,'data'=>$result);
    			}else{
    				$res = array('status'=>0,'message'=>'No Data Found','code'=>'ER08');
    			}
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER06');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
    	}
    	return $res;
    }

    public function flight_revalidate($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$settings = getSettings();
    			$url = "https://trawex.biz/api/flight_trawex/revalidate?user_id=".$settings['trawex_user_id']."&user_password=".$settings['trawex_user_password']."&access=".$settings['trawex_access']."&ip_address=".$settings['trawex_ip_address']."&fare_source_code=".$data['fare_source_code']."&session_id=".$data['session_id']."";
    			$result = $this->passToJsonCurl($url,'');
    			if(!empty($result)){
    				$result = json_decode($result);
    				$res = array('status'=>1,'data'=>$result);
    			}else{
    				$res = array('status'=>0,'message'=>'No Data Found','code'=>'ER08');
    			}
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER06');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
    	}
    	return $res;
    }

    public function flight_book($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$settings = getSettings();
    			$data['first_name'] = str_replace(" ","<br>",$data['first_name']);
    			$data['last_name'] = str_replace(" ","<br>",$data['last_name']);
    			$data['title'] = str_replace(" ","<br>",$data['title']);
    			$data['dob'] = str_replace(" ","<br>",$data['dob']);
    			$data['gender'] = str_replace(" ","<br>",$data['gender']);
    			$data['issue_country'] = str_replace(" ","<br>",$data['issue_country']);
    			$data['passport_expiry'] = str_replace(" ","<br>",$data['passport_expiry']);
    			$data['passport_no'] = str_replace(" ","<br>",$data['passport_no']);

    			$url = "https://trawex.biz/api/flight_trawex/book?user_id=".$settings['trawex_user_id']."&user_password=".$settings['trawex_user_password']."&access=".$settings['trawex_access']."&ip_address=".$settings['trawex_ip_address']."&target=".$data['target']."&session_id=".$data['session_id']."&area_code=".$data['area_code']."&country_code=".$data['country_code']."&first_name=".$data['first_name']."&last_name=".$data['last_name']."&title=".$data['title']."&email_id=".$data['email_id']."&mobile_no=".$data['mobile_no']."&dob=".$data['dob']."&gender=".$data['gender']."&issue_country=".$data['issue_country']."&passport_expiry=".$data['passport_expiry']."&passport_no=".$data['passport_no']."&type=".$data['type']."&IsPassportMandatory=".$data['IsPassportMandatory']."&adult_flight=".$data['adult_flight']."&child_flight=".$data['child_flight']."&infant_flight=".$data['infant_flight']."&frequentFlyrNum=".$data['frequentFlyrNum']."&adultmealplan=".$data['adultmealplan']."&child_dob=".$data['child_dob']."&child_gender=".$data['child_gender']."&child_title=".$data['child_title']."&child_first_name=".$data['child_first_name']."&child_last_name=".$data['child_last_name']."&child_passport_expiry_date=".$data['child_passport_expiry_date']."&child_passport_no=".$data['child_passport_no']."&child_frequentFlyrNum=".$data['child_frequentFlyrNum']."&childMealplan=".$data['childMealplan']."&infant_dob=".$data['infant_dob']."&infant_gender=".$data['infant_gender']."&infant_first_name=".$data['infant_first_name']."&infant_last_name=".$data['infant_last_name']."&infant_title=".$data['infant_title']."&infantMealplan=".$data['infantMealplan']."&FareSourceCode=".$data['FareSourceCode']."&PostCode=".$data['PostCode']."";
    			$result = $this->passToJsonCurl($url,'');
    			if(!empty($result)){
    				$result = json_decode($result);
    				$res = array('status'=>1,'result'=>$result);
    			}else{
    				$res = array('status'=>0,'message'=>'No Data Found','code'=>'ER08');
    			}
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER06');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
    	}
    	return $res;
    }

    public function flight_ticket_order($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$settings = getSettings();
    			$url = "https://trawex.biz/api/flight_trawex/ticket_order?user_id=".$settings['trawex_user_id']."&user_password=".$settings['trawex_user_password']."&access=".$settings['trawex_access']."&ip_address=".$settings['trawex_ip_address']."&UniqueID=".$data['UniqueID']."&target=".$data['target']."&session_id=".$data['session_id']."";
    			$result = $this->passToJsonCurl($url,'');
    			if(!empty($result)){
    				$result = json_decode($result);
    				$res = array('status'=>1,'result'=>$result);
    			}else{
    				$res = array('status'=>0,'message'=>'No data Found','code'=>'ER08');
    			}
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER06');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
    	}
    	return $res;
    }

    public function flight_trip_details($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$settings = getSettings();
    			$url = "https://trawex.biz/api/flight_trawex/trip_details?user_id=".$settings['trawex_user_id']."&user_password=".$settings['trawex_user_password']."&access=".$settings['trawex_access']."&ip_address=".$settings['trawex_ip_address']."&UniqueID=".$data['UniqueID']."&target=".$data['target']."&session_id=".$data['session_id']."";
    			$result = $this->passToJsonCurl($url,'');
    			if(!empty($result)){
    				$result = json_decode($result);
    				$res = array('status'=>1,'result'=>$result);
    			}else{
    				$res = array('status'=>0,'message'=>'No Data Found','code'=>'ER08');
    			}
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER06');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
    	}
    	return $res;
    }

    public function  cancel_flights($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$settings = getSettings();
    			$url = "https://trawex.biz/api/flight_trawex/cancel_flights?user_id=".$settings['trawex_user_id']."&user_password=".$settings['trawex_user_password']."&access=".$settings['trawex_access']."&ip_address=".$settings['trawex_ip_address']."&UniqueID=".$data['UniqueID']."&target=".$data['target']."&session_id=".$data['session_id']."";
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER06');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
    	}
    	return $res;
    }

    public function airportSearch($data){
    	try{
    		$user_id = $this->auth_token_get($data['auth_token']);
    		if($user_id > 0){
    			$cond = '';
    			if(isset($data['query']) && !empty($data['query'])){
    				$cond = "WHERE airport_code LIKE '%".$data['query']."%' OR airport_name LIKE '%".$data['query']."%'";
    			}
    			$sql = "SELECT id FROM airport_details $cond";
    			$count = $this->db->query($sql)->num_rows();
    			if($count > 0){
	    			$perPage = 10;
					$page = (isset($data['page']))?$data['page']:1;
					$limit = ($page - 1) * $perPage;
					$meta = array('total_pages'=>ceil($count/$perPage),'total'=>$count,
							  'current_page'=>$page,'per_page'=>$perPage);
	    			$sql = "SELECT * FROM airport_details $cond LIMIT $limit,$perPage";
	    			$airPortList = $this->db->query($sql);
	    			if(!isset($airPortList) || empty($airPortList = $airPortList->result_array())){
	    				$res = array('status'=>0,'message'=>'No data Found','code'=>'ER04');
	    				return $res;
	    			}
	    			$res =array('status'=>1,'data'=>array('airportlist'=>$airPortList,'meta'=>$meta));
    			}
    		}else{
    			$res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER06');
    		}
    	}catch(Exception $e){
    		$res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
    	}
    	return $res;
    }

    public function flight_details($data){
        try{
            $user_id = $this->auth_token_get($data['auth_token']);
            if($user_id > 0){
                $sql = "SELECT * FROM flight_details WHERE flight_code='".$data['flight_code']."'";
                $query = $this->db->query($sql);
                if(empty($query) || empty($flightDetails = $query->row_array())){
                    $res = array('status'=>0,'message'=>'No Data Found','code'=>'ER06');
                    return $res;
                }
                $res = array('status'=>1,'data'=>$flightDetails);
            }else{
                $res = array('status'=>0,'message'=>'User Authentication Error','code'=>'ER08');
            }
        }catch(Exception $e){
            $res = array('status'=>0,'message'=>'Ohh No!! Something Went South','code'=>'ER10');
        }
        return $res;
    }

    public function passToJsonCurl($url='',$postData=array()){
    	$ch = curl_init();
	    curl_setopt($ch,CURLOPT_URL,$url);
	    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
	    curl_setopt($ch,CURLOPT_POST,1);
	    curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($postData));  
	    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
		curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
	    curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json')); 
	    $result = curl_exec($ch);
	    curl_close($ch);
	    return $result;
    }
}
?>
