| Server IP : 103.234.187.230 / Your IP : 216.73.216.216 Web Server : Apache System : Linux lserver42043-ind.megavelocity.net 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64 User : apache ( 48) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/b2c.hellogtx.com/application/controllers/ |
Upload File : |
<?php
/***************************************************************
* Catabatic Technology Pvt. Ltd.
* File Name : FlightController.php
* File Desc. : Flight controller for First page front end
* Created By : Md Sabir <sabir@catpl.co.in>
* Created Date : 14 Feb 2020
* Updated Date : 17 Feb 2020
***************************************************************/
class FlightnewController extends Catabatic_ValidateCustomer
{
protected $objMdl;
protected $tablename;
protected $tablenameDestination;
protected $baseUrl;
protected $siteName;
protected $IsTBOFlightAPI;
protected $IsNEXTRAFlightAPI;
protected $IsETRAVFlightAPI;
protected $IsTJPFlightAPI;
protected $IsTBONewFlightAPI;
protected $IsAIRIQFlightAPI;
protected $tollfreenumber;
protected $getTemplateId;
protected $apimulticity;
protected $OTPVerified;
protected $ShowPriceNoMarkup;
protected $db = NULL;
protected $objHelperGeneral;
protected $per_page_record;
public $_session;
public $customerbookinglistAPIUrl;
public $uploadPakcagePath;
public $uploadDestinationPath;
public $dummyImagePackage;
public $dummyImageDestination;
public $IsTJFlightAPI;
public $IsSeriesFare;
public $stylecss;
public $IsAllowFlight;
public $WhatsappMsgAllow;
public $gtxagencysysid;
public $gtxagentsysid;
public $tablenameTes;
public $hotelTypeArr;
public $enableCache;
public $packageTypeStatic;
public $tableClients;
public $table;
public $tablePopularCity;
public $tablePopularLogo;
public $currencyRates;
public $GetIvKey;
public $AgencyDataAPI;
public $CurrencyRate;
public $CurrencyTitle;
public $CurrencyId;
public $myNamespace;
private $respHashKey;
private $aesResponseKey;
private $aesResponseIv;
private $aesRequestKey;
private $SMSURL;
private $SMSMETHOD;
private $SMSAPIKEY;
private $SMSSENDER;
private $SMSFORMAT;
public $gtxBtoBsite;
public $CCAVENUEWorkingKey;
public $GTXAPIDEFAULT;
public function init()
{
parent::init();
$this->db = Zend_Db_Table::getDefaultAdapter();
$this->_helper->layout->disableLayout();
$this->_helper->_layout->setLayout('layout-flight')->setLayoutPath(APPLICATION_PATH . '/layouts/scripts');
$aConfig = $this->getInvokeArg('bootstrap')->getOptions();
$BootStrap = $aConfig['bootstrap'];
$this->IsSeriesFare = $BootStrap['IsSeriesFare'];
$this->siteName = $BootStrap['siteName'];
$this->baseUrl = $BootStrap['siteUrl'];
$this->gtxBtoBsite = $BootStrap['gtxBtoBsite'];
$this->view->stylecss = $this->stylecss = $BootStrap['stylecss'];
$this->view->ShowPriceNoMarkup = $this->ShowPriceNoMarkup = isset($BootStrap["ShowPriceNoMarkup"]) ? $BootStrap["ShowPriceNoMarkup"] : 0;
$this->gtxagencysysid = $BootStrap['gtxagencysysid']; // get gtxagencysysid from application config
$this->gtxagentsysid = $BootStrap['gtxagentsysid']; // get gtxagentsysid from application config
$this->objMdl = new Admin_Model_CRUD();
$this->_session = new Zend_Session_Namespace('User');
$this->GTXAPIDEFAULT = 'https://gtxapi.hellogtx.com';
$CurrencyRate = new Zend_Session_Namespace('CurrencyRate');
$CurrencyTitle = new Zend_Session_Namespace('CurrencyTitle');
$this->CurrencyRate = (isset($CurrencyRate->params) && !empty($CurrencyRate->params)) ? (float) $CurrencyRate->params : 1;
$this->CurrencyTitle = $this->view->CurrencyTitle = (isset($CurrencyTitle->params) && !empty($CurrencyTitle->params)) ? $CurrencyTitle->params : 'INR';
}
public function getflightsearchAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$CustomerSession = new Zend_Session_Namespace('CustomerSession');
$CustomerSession->unsetAll();
ini_set('memory_limit', '2048M');
$sessionSearchRequestData = new Zend_Session_Namespace('SessionSearchRequestData');
$getData = $this->getRequest()->getParams();
$searchid = isset($getData['searchid'])?$getData['searchid']:'';
$device = isset($getData['device'])?$getData['device']:'';
if($device == 'app'){
$temp_data = $this->objMdl->selectOne('tbl_temp_data', ['json_data'], ['TraceId' => $searchid], ['id' => 'ASC']);
$arrUrlData = json_decode($temp_data['json_data'], true);
}else{
$arrUrlData = isset($sessionSearchRequestData->params[$searchid])?$sessionSearchRequestData->params[$searchid]:[];
}
$sessionFlightSearchParams = new Zend_Session_Namespace('SessionFlightSearchParams');
$intDestinationCityId = (isset($sessionFlightSearchParams->params['destinationCityId']) && !empty($sessionFlightSearchParams->params['destinationCityId'])) ? $sessionFlightSearchParams->params['destinationCityId'] :'';
$interNationalSearch = (isset($sessionFlightSearchParams->params['interNationalSearch']) && !empty($sessionFlightSearchParams->params['interNationalSearch'])) ? $sessionFlightSearchParams->params['interNationalSearch']:'';
$strFlightRoute = (isset($sessionFlightSearchParams->params['route']) && !empty($sessionFlightSearchParams->params['route'])) ? $sessionFlightSearchParams->params['route'] :'';
$strDepatureDate = $sessionFlightSearchParams->params['departure_dates'];
$strReturnDate = $sessionFlightSearchParams->params['return_dates'];
$intCountryCode = $sessionFlightSearchParams->params['intCountryCode'];
$SearchFlightTraceId = $sessionFlightSearchParams->params['SearchFlightTraceId'];
$DepatureDate = $sessionFlightSearchParams->params['strDepatureDate'];
$begin = new DateTime($DepatureDate);
//$begin = new DateTime(date('Y-m-d'));
$end = new DateTime($DepatureDate);
if ($strFlightRoute == 2 && $interNationalSearch == '') {
$end = $end->modify('+30 day');
} else {
$end = $end->modify('+30 day');
}
$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval, $end);
$DepartDateArr = [];
foreach ($daterange as $date) {
$DepartDateArr[] = ['formatDate' => $date->format("Y-m-d"), 'depDate' => $date->format("d/m/Y")];
}
$intJourneyType = 1;
$intTripType = 1;
$FlightDataTBO = [];
$apiResponseTBO = [];
$apiResponse = [];
$outboundAPI = [];
$inboundAPI = [];
$FiltPricearAPI = [];
$arrAirlineNameAPI = [];
$FiltStopAPI = [];
$FlightDataSeriesFare = [];
// if(($this->IsNEXTRAFlightAPI || $this->IsAIRIQFlightAPI || $this->IsTJFlightAPI || $this->IsTBOFlightAPI || $this->IsETRAVFlightAPI)){
if($this->gtxagencysysid == '1' || $this->gtxagencysysid == '2656'){
$url = GTXAPIDEFAULT.'/flight/v4/search';
}else{
$url = 'https://gtxapi.hellogtx.com/flight/v4/search';
}
// $strFilePath = "flight/SearchParam/" . $SearchFlightTraceId . '/' . date('Y-m-d-H-i-s') . "_search_request.json";
// Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, json_encode($arrUrlData));
$req_seaechId['SearchQueryid'] = $searchid;
$apiSearchRequest = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->apiHttpRequest($req_seaechId,[], $url);
$ResponseStatus = (isset($apiSearchRequest['status']) && $apiSearchRequest['status']) ? true : false;
// $strFilePath = "flight/SearchParam/" . $SearchFlightTraceId . '/' . date('Y-m-d-H-i-s') . "_search_response.json";
// Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, json_encode($apiSearchRequest));
if($ResponseStatus){
$outbound = $outboundAPI = (isset($apiSearchRequest['outbound']) && $apiSearchRequest['outbound']) ? $apiSearchRequest['outbound'] : [];
$inbound = $inboundAPI = (isset($apiSearchRequest['inbound']) && $apiSearchRequest['inbound']) ? $apiSearchRequest['inbound'] : [];
$FiltPrice = (isset($apiSearchRequest['FiltPrice']) && $apiSearchRequest['FiltPrice']) ? $apiSearchRequest['FiltPrice'] : [];
$FiltStop = (isset($apiSearchRequest['FiltStop']) && $apiSearchRequest['FiltStop']) ? $apiSearchRequest['FiltStop'] : [];
$FiltAirlineName = (isset($apiSearchRequest['FiltAirlineName']) && $apiSearchRequest['FiltAirlineName']) ? $apiSearchRequest['FiltAirlineName'] : [];
if($FiltPrice){
foreach($FiltPrice as $price){
if($price){
foreach($price as $pr){
if(!empty($pr)){
$FiltPricearAPI[] = $pr;
}
}
}
}
}
if($FiltStop){
foreach($FiltStop as $values){
if($values){
foreach($values as $vl){
$FiltStopAPI[] = $vl;
}
}
}
}
if($FiltAirlineName){
foreach($FiltAirlineName as $values){
if($values){
foreach($values as $vl){
$arrAirlineNameAPI[] = $vl;
}
}
}
}
$MinriceRange = (count($FiltPricearAPI) > 0)?min($FiltPricearAPI):0;
$MaxriceRange = (count($FiltPricearAPI) > 0)?max($FiltPricearAPI):0;
if(($interNationalSearch == '1' || $interNationalSearch == '') && ($strFlightRoute == '2' || $strFlightRoute == '1')){
if($interNationalSearch == '1' && $strFlightRoute == 2){
$data = array('outboundCombine' => $outbound,'outbound' => $outbound,'inbound' => $inbound, 'DepartDateArr' => $DepartDateArr, 'ReturnDateArr' => $ReturnDateArr,
'travelDates' => $travelDates, 'travelDatesReturn' => $travelDatesReturn, 'source' => $source, 'destination' => $destination,
'source_city' => $source_city, 'destination_city' => $destination_city, 'interNationalSearch' => $interNationalSearch,
'route' => $strFlightRoute, 'CurrencyTitle' => $this->CurrencyTitle, 'arrAirlineName' => array_values(array_unique($arrAirlineNameAPI)),
'FiltStopCount' => array_values(array_unique($FiltStopAPI)), 'ArrPriceUnique' => [],
'MinriceRange' => (ceil($MinriceRange)), 'MaxriceRange' => (ceil($MaxriceRange)));
}else{
$data = array('outbound' => $outbound,'inbound' => $inbound, 'DepartDateArr' => $DepartDateArr, 'ReturnDateArr' => $ReturnDateArr,
'travelDates' => $travelDates, 'travelDatesReturn' => $travelDatesReturn, 'source' => $source, 'destination' => $destination,
'source_city' => $source_city, 'destination_city' => $destination_city, 'interNationalSearch' => $interNationalSearch,
'route' => $strFlightRoute, 'CurrencyTitle' => $this->CurrencyTitle, 'arrAirlineName' => array_values(array_unique($arrAirlineNameAPI)),
'FiltStopCount' => array_values(array_unique($FiltStopAPI)), 'ArrPriceUnique' => [],
'MinriceRange' => (ceil($MinriceRange)), 'MaxriceRange' => (ceil($MaxriceRange)));
}
echo json_encode($data);
exit;
}else{
$AttPriceRange__ = [];
if ($FiltPrice) {
if(!empty($MaxriceRange)){
$AttPriceRange__[] = ['MinriceRange' => floor($MinriceRange), 'MaxriceRange' => floor($MaxriceRange)];
}
}
$MultiHead = [];
if ($sessionFlightSearchParams->params['source'] && $outbound[0]['ICSourceSysId'] != 3) {
foreach ($sessionFlightSearchParams->params['source'] as $sk => $source_) {
$destination_ = isset($sessionFlightSearchParams->params['destination'][$sk]) ? explode(',', $sessionFlightSearchParams->params['destination'][$sk]) : '';
$source_ = isset($source_) ? explode(',', $source_) : '';
$departure_date_ = isset($sessionFlightSearchParams->params['departure_date'][$sk]) ? $sessionFlightSearchParams->params['departure_date'][$sk] : '';
$MultiHead[] = array(
'source' => $source_[0],
'destination' => $destination_[0],
'departure_date' => $departure_date_,
'dep_date' => date('d M Y', strtotime($departure_date_)),
);
}
}
if(($interNationalSearch == '1' || $outbound[0]['ICSourceSysId'] == 3) && $strFlightRoute == '3'){
$FiltAirlineName = array_values(array_unique($arrAirlineNameAPI));
}
sort($FiltStop);
$data = array('outbound' => $outbound, 'MultiHead' => $MultiHead, 'interNationalSearch' => $interNationalSearch,
'route' => $strFlightRoute, 'CurrencyTitle' => $this->CurrencyTitle,
'inbound' => [], 'arrAirlineName' => $FiltAirlineName, 'FiltStopCount' => $FiltStop,
'ArrPriceUnique' => $AttPriceRange__, 'route' => $strFlightRoute,
'MinriceRange' => round($MinriceRange),
'MaxriceRange' => round($MaxriceRange));
echo json_encode($data);
exit;
}
}else{
$data = array('outbound' => [], 'inbound' => [], 'travelDates' => [], 'travelDatesReturn' => [], 'source' => [], 'destination' => [], 'source_city' => [], 'destination_city' => [], 'route' => $strFlightRoute, 'interNationalSearch' => $interNationalSearch, 'arrAirlineName' => [], 'FiltStopCount' => [], 'ArrPriceUnique' => [], 'CurrencyTitle' => $this->CurrencyTitle, 'MinriceRange' => 0, 'MaxriceRange' => 0);
echo json_encode($data);
exit;
}
// }
}
}