| 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/patratravelsonline.com/application/modules/flights/controllers/ |
Upload File : |
<?php
//class Flights_IndexController extends Zend_Controller_Action {
class Flights_IndexController extends Catabatic_ValidateCustomer {
public $baseUrl = '';
public function init() {
ini_set('max_execution_time', 30000);
$this->objMdl = new Admin_Model_CRUD();
$aConfig = $this->getInvokeArg('bootstrap')->getOptions();
$BootStrap = $aConfig['bootstrap'];
$this->siteName = $BootStrap['siteName'];
$this->baseUrl = $BootStrap['siteUrl'];
$this->superAdminEmail = $BootStrap['superAdminEmail'];
$this->tollfreenumber = $BootStrap['tollfreenumber'];
$this->gtxwebservicesURL = $BootStrap['gtxwebserviceurl']; // get gtxwebserviceurl from application config
$this->gtxagencysysid = $BootStrap['gtxagencysysid']; // get gtxagencysysid from application config
$this->gtxBtoBsite = $BootStrap['gtxBtoBsite']; // get gtxagencysysid from application config
//api urls
$this->flightSearchUrl = $this->gtxBtoBsite . "api/flights/flight-search";
$this->flightFareRulesUrl = $this->gtxBtoBsite . "api/flights/fare-rules";
$this->flightFareQuotesUrl = $this->gtxBtoBsite . "api/flights/fare-quotes";
$this->flightSSRUrl = $this->gtxBtoBsite . "api/flights/ssr-request";
$this->flightBookUrl = $this->gtxBtoBsite . "api/flights/book";
$this->flightTicketUrl = $this->gtxBtoBsite . "api/flights/ticket";
$this->flightLogoPath = $_SERVER['DOCUMENT_ROOT'] . "/public/assets/img/airline-logo/";
//api urls
$this->objMdl = new Admin_Model_CRUD();
}
public function reviewDetailsAction() {
$this->_helper->layout->setLayout('flight-book-layout');
$this->view->baseUrl = $this->baseUrl;
$this->view->id = $id = $this->getRequest()->getParam('id');
}
public function processRoundtripBookingAction() {
$this->_helper->layout->setLayout('flight-book-layout');
$this->view->baseUrl = $this->baseUrl;
$this->view->id = $id = base64_decode($this->getRequest()->getParam('id'));
$this->view->status = $status = ($this->getRequest()->getParam('status'));
$this->view->discriminator = $discriminator = ($this->getRequest()->getParam('discriminator'));
$this->view->mmp_txn = $mmp_txn = ($this->getRequest()->getParam('mmp_txn'));
$this->view->GUID = $GUID = ($this->getRequest()->getParam('GUID'));
//echo "<pre>";print_r($_REQUEST);exit;
if ($this->_request->isXmlHttpRequest()) {
$this->_helper->layout->disableLayout();
$urlId = $this->getRequest()->getParam('urlId');
$paymentStatus = $this->getRequest()->getParam('paymentStatus');
$mmp_txn = $this->getRequest()->getParam('mmp_txn');
$discriminator = $this->getRequest()->getParam('discriminator');
$GUID = $this->getRequest()->getParam('GUID');
$arrPaymentRelatedParameters = [
"mmp_txn" => $mmp_txn,
"discriminator" => $discriminator,
"GUID" => $GUID
];
if ($paymentStatus == "Ok") {
$objTempUrl = new Flights_Model_TblTempUrl();
$arrUrlData = $objTempUrl->getUrlData($urlId);
$urlData = isset($arrUrlData['UrlData']) ? json_decode($arrUrlData['UrlData'], true) : [];
$arrFullResponse = $this->bookBothAction($urlData,$arrPaymentRelatedParameters);
// echo "<pre>";print_r($arrFullResponse);exit;
//echo "<pre>";print_r(json_decode($response,true));exit;
$responsedata = [
'response' => json_encode($arrFullResponse),
'apiResponse' => json_encode($arrFullResponse),
'CreatedDate' => date('Y-m-d h:i:s')
];
$lastInsertId = $this->objMdl->rv_insert("tbl_flight_booking", $responsedata);
$insertdata = [
'UrlData' => json_encode($arrFullResponse),
'CreatedDate' => date('Y-m-d h:i:s')
];
$resultset = $this->objMdl->rv_insert("tbl_temp_urldata", $insertdata);
echo json_encode(array("success" => true, "id" => base64_encode($lastInsertId)));
exit;
} else if($paymentStatus == "C"){
$objTempUrl = new Flights_Model_TblTempUrl();
$arrUrlData = $objTempUrl->getUrlData($urlId);
$urlData = isset($arrUrlData['UrlData'])?json_decode($arrUrlData['UrlData'],true):[];
$urlData['error'] = "Oops! your payment cancelled by user.";
// Update Booking Status to B2B end.........
$arrIdsDepart = $urlData['arrIds']['Depart']['arrIds'];
$arrIdsReturn = $urlData['arrIds']['Return']['arrIds'];
try {
$MasterTPSysId = $arrIdsDepart['MasterTPSysId'];
$TPSysId = $arrIdsDepart['TPSysId'];
$VersionId = $arrIdsDepart['VersionId'];
$this->postFields = "";
$this->postFields .= "&MasterTPSysId=" . $MasterTPSysId;
$this->postFields .= "&TPSysId=" . $TPSysId;
$this->postFields .= "&VersionId=" . $VersionId;
$this->postFields .= "&XRefBookingId=" . '';
$this->postFields .= "&APIBookingRes=" . '';
$this->postFields .= "&ErrorCode=" . 6;
$model = new Gtxwebservices_Model_Webservices();
$result = $model->updateFlightBookingDetails($this->postFields);
} catch (Exception $error) {
}
try {
$MasterTPSysId = $arrIdsReturn['MasterTPSysId'];
$TPSysId = $arrIdsReturn['TPSysId'];
$VersionId = $arrIdsReturn['VersionId'];
$this->postFields = "";
$this->postFields .= "&MasterTPSysId=" . $MasterTPSysId;
$this->postFields .= "&TPSysId=" . $TPSysId;
$this->postFields .= "&VersionId=" . $VersionId;
$this->postFields .= "&XRefBookingId=" . '';
$this->postFields .= "&APIBookingRes=" . '';
$this->postFields .= "&ErrorCode=" . 6;
$model = new Gtxwebservices_Model_Webservices();
$result = $model->updateFlightBookingDetails($this->postFields);
} catch (Exception $error) {
}
//$response = json_decode($result,true);
// Update Booking Status to B2B end.........
$insertdata = [
'UrlData' => json_encode($urlData),
'CreatedDate' => date('Y-m-d h:i:s')
];
$lastInsertId = $resultset = $this->objMdl->rv_insert("tbl_temp_urldata", $insertdata);
echo json_encode(array("success" => false, "pstatus" => $paymentStatus));
exit;
}else {
$objTempUrl = new Flights_Model_TblTempUrl();
$arrUrlData = $objTempUrl->getUrlData($urlId);
$urlData = isset($arrUrlData['UrlData'])?json_decode($arrUrlData['UrlData'],true):[];
$urlData['error'] = "Oops! your payment has been failed.";
// Update Booking Status to B2B end.........
$arrIdsDepart = $urlData['arrIds']['Depart']['arrIds'];
$arrIdsReturn = $urlData['arrIds']['Return']['arrIds'];
try {
$MasterTPSysId = $arrIdsDepart['MasterTPSysId'];
$TPSysId = $arrIdsDepart['TPSysId'];
$VersionId = $arrIdsDepart['VersionId'];
$this->postFields = "";
$this->postFields .= "&MasterTPSysId=" . $MasterTPSysId;
$this->postFields .= "&TPSysId=" . $TPSysId;
$this->postFields .= "&VersionId=" . $VersionId;
$this->postFields .= "&XRefBookingId=" . '';
$this->postFields .= "&APIBookingRes=" . '';
$this->postFields .= "&ErrorCode=" . 6;
$model = new Gtxwebservices_Model_Webservices();
$result = $model->updateFlightBookingDetails($this->postFields);
} catch (Exception $error) {
}
try {
$MasterTPSysId = $arrIdsReturn['MasterTPSysId'];
$TPSysId = $arrIdsReturn['TPSysId'];
$VersionId = $arrIdsReturn['VersionId'];
$this->postFields = "";
$this->postFields .= "&MasterTPSysId=" . $MasterTPSysId;
$this->postFields .= "&TPSysId=" . $TPSysId;
$this->postFields .= "&VersionId=" . $VersionId;
$this->postFields .= "&XRefBookingId=" . '';
$this->postFields .= "&APIBookingRes=" . '';
$this->postFields .= "&ErrorCode=" . 6;
$model = new Gtxwebservices_Model_Webservices();
$result = $model->updateFlightBookingDetails($this->postFields);
} catch (Exception $error) {
}
//$response = json_decode($result,true);
// Update Booking Status to B2B end.........
$insertdata = [
'UrlData' => json_encode($urlData),
'CreatedDate' => date('Y-m-d h:i:s')
];
$lastInsertId = $resultset = $this->objMdl->rv_insert("tbl_temp_urldata", $insertdata);
echo json_encode(array("success" => false, "pstatus" => $paymentStatus));
exit;
}
}
}
public function bookBothAction($urlData,$arrPaymentRelatedParameters = NULL) {
// echo "<pre>";print_r($urlData);exit;
$arrMarkupsAndPrice = isset($urlData['arrMarkupsAndPrice'])?$urlData['arrMarkupsAndPrice']:[];
//Extra Parameters for payment Updation for B2B end.
$mmp_txn = $arrPaymentRelatedParameters['mmp_txn'];
$discriminator = $arrPaymentRelatedParameters['discriminator'];
$GUID = $arrPaymentRelatedParameters['GUID'];
//Extra Parameters for payment Updation for B2B end.
$traceId = $urlData['TraceId'];
$strOrigin = $urlData['Depart']['departureFrom'];
$strDestination = $urlData['Depart']['departureTo'];
$resultindex = $urlData['Depart']['resultindex'];
$origincityDepart = isset($urlData['Depart']['Segments1'][0]['origincity'])?$urlData['Depart']['Segments1'][0]['origincity']:'';
$destcityDepart = isset($urlData['Depart']['Segments1'][0]['destcity'])?$urlData['Depart']['Segments1'][0]['destcity']:'';
$origincityReturn = isset($urlData['Return']['Segments2'][0]['origincity'])?$urlData['Return']['Segments2'][0]['origincity']:'';
$destcityReturn = isset($urlData['Return']['Segments2'][0]['destcity'])?$urlData['Return']['Segments2'][0]['destcity']:'';
$lCC = $urlData['Depart']['lCC'];
$arrFareBreakdown = $urlData['Depart']['FareBreakdown'];
$AgencyTotalMarkUp = $urlData['Depart']['AgencyTotalMarkUp'];
$AgencyTotalCommisions = $urlData['Depart']['AgencyTotalCommisions'];
$arrIdsDepart = isset($urlData['arrIds']['Depart']['arrIds'])?$urlData['arrIds']['Depart']['arrIds']:'';
$MasterTPSysIdDepart = isset($arrIdsDepart['MasterTPSysId'])?$arrIdsDepart['MasterTPSysId']:'';
$TPSysIdDepart = isset($arrIdsDepart['MasterTPSysId'])?$arrIdsDepart['TPSysId']:'';
$VersionIdDepart = isset($arrIdsDepart['MasterTPSysId'])?$arrIdsDepart['VersionId']:'';
$DepartTrxId = isset($arrIdsDepart['TrxId'])?$arrIdsDepart['TrxId']:'';
$arrIdsReturn = isset($urlData['arrIds']['Return']['arrIds'])?$urlData['arrIds']['Return']['arrIds']:'';
$MasterTPSysIdReturn = isset($arrIdsReturn['MasterTPSysId'])?$arrIdsReturn['MasterTPSysId']:'';
$TPSysIdReturn = isset($arrIdsReturn['MasterTPSysId'])?$arrIdsReturn['TPSysId']:'';
$VersionIdReturn = isset($arrIdsReturn['MasterTPSysId'])?$arrIdsReturn['VersionId']:'';
$ReturnTrxId = isset($arrIdsReturn['TrxId'])?$arrIdsReturn['TrxId']:'';
$arrPaxPrimaryContact = $urlData['PaxPrimaryContact'];
$ContactNo = $arrPaxPrimaryContact['contact'];
$EmailId = $arrPaxPrimaryContact['emailid'];
$arrPaxDetails = $urlData['PaxDetails'];
$paxCity = trim($arrPaxDetails[0]['paxCity']);
$paxCountryCode = trim($arrPaxDetails[0]['paxCountryCode']);
$paxCountryName = trim($arrPaxDetails[0]['paxCountryName']);
$paxAddress = trim($arrPaxDetails[0]['paxAddress']);
$ARR_SALUTION = unserialize(ARR_SALUTION);
if (count($arrPaxDetails) > 0) {
$arrPassengers = [];
$arrMeal = [];
foreach ($arrPaxDetails as $key => $paxVal) {
$dob = $paxVal['dob'];
if (!empty($dob)) {
$arrDob = explode("/", $dob);
if (count($arrDob) > 0) {
$PaxDob = $arrDob[2] . "-" . $arrDob[1] . "-" . $arrDob[0];
}
}
$salutation = isset($ARR_SALUTION[$paxVal['salutation']])?$ARR_SALUTION[$paxVal['salutation']]:'Mr';
if ($lCC) {
$arrSSR = $this->flightSSRRequestAction(array("TraceId" => $traceId ,"resultindex" => $resultindex ));
$WayType = isset($arrSSR['Response']['MealDynamic'][0][0]['WayType'])?trim($arrSSR['Response']['MealDynamic'][0][0]['WayType']):'2';
$Code = isset($arrSSR['Response']['MealDynamic'][0][0]['Code'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Code']):'No Meal';
$Description = isset($arrSSR['Response']['MealDynamic'][0][0]['Description'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Description']):'2';
$AirlineDescription = isset($arrSSR['Response']['MealDynamic'][0][0]['AirlineDescription'])?trim($arrSSR['Response']['MealDynamic'][0][0]['AirlineDescription']):'';
$Quantity = isset($arrSSR['Response']['MealDynamic'][0][0]['Quantity'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Quantity']):'0';
$Currency = isset($arrSSR['Response']['MealDynamic'][0][0]['Currency'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Currency']):'INR';
$Price = isset($arrSSR['Response']['MealDynamic'][0][0]['Price'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Price']):'0';
$Origin = isset($arrSSR['Response']['MealDynamic'][0][0]['Origin'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Origin']):trim($data['Origin']);
$Destination = isset($arrSSR['Response']['MealDynamic'][0][0]['Destination'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Destination']):($data['Destination']);
$WayTypeBaggage = isset($arrSSR['Response']['Baggage'][0][0]['WayType'])?trim($arrSSR['Response']['Baggage'][0][0]['WayType']):'2';
$CodeBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Code'])?trim($arrSSR['Response']['Baggage'][0][0]['Code']):'No Baggage';
$DescriptionBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Description'])?trim($arrSSR['Response']['Baggage'][0][0]['Description']):'2';
$WeightBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Weight'])?trim($arrSSR['Response']['Baggage'][0][0]['Weight']):'0';
$CurrencyBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Currency'])?trim($arrSSR['Response']['Baggage'][0][0]['Currency']):'INR';
$PriceBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Price'])?trim($arrSSR['Response']['Baggage'][0][0]['Price']):'0';
$arrPassengers[] = [
'Title' => $salutation, //Mr ,Mstr ,Mrs ,Ms ,Miss ,Master ,DR ,CHD ,MST ,PROF ,Inf.
'FirstName' => $paxVal['firstName'],
'LastName' => $paxVal['lastName'],
'PaxType' => $paxVal['PassengerType'],
'DateOfBirth' => $PaxDob . "T00:00:00",
'Gender' => 1,
'PassportNo' => '',
'PassportExpiry' => '',
'AddressLine1' => $paxAddress,
'AddressLine2' => '',
'City' => $paxCity,
'CountryCode' => $paxCountryCode,
'CountryName' => $paxCountryName,
'ContactNo' => $ContactNo,
'Email' => $EmailId,
'IsLeadPax' => ($key == 0) ? 1 : 0,
'FFAirline' => '',
'FFNumber' => '',
'Fare' =>
[
'BaseFare' => $arrFareBreakdown[$key]['BaseFare'],
'Tax' => $arrFareBreakdown[$key]['Tax'],
'TransactionFee' => "00.00",
'YQTax' => $arrFareBreakdown[$key]['YQTax'],
'AdditionalTxnFeeOfrd' => $arrFareBreakdown[$key]['AdditionalTxnFeeOfrd'],
'AdditionalTxnFeePub' => $arrFareBreakdown[$key]['AdditionalTxnFeePub'],
'AirTransFee' => "00.00"
],
'MealDynamic' =>
[
'WayType' => $WayType,
'Code' => $Code,
'Description' => $Description,
'AirlineDescription' => $AirlineDescription,
'Quantity' => $Quantity,
'Price' => $Price,
'Currency' => $Currency,
'Origin' => $Origin,
'Destination' => $Destination
],
'Baggage' =>
[
'WayType' => $WayTypeBaggage,
'Code' => $CodeBaggage,
'Description' => $DescriptionBaggage,
'Weight' => $WeightBaggage,
'Currency' => $CurrencyBaggage,
'Price' => $PriceBaggage,
'Origin' => $Origin,
'Destination' => $Destination
]
];
} else {
$arrSSR = $this->flightSSRRequestAction(array("TraceId" => $traceId ,"resultindex" => $resultindex ));
$MealCode = isset($arrSSR['Response']['Meal'][0]['Code'])?trim($arrSSR['Response']['Meal'][0]['Code']):'VGML';
$MealDesc = isset($arrSSR['Response']['Meal'][0]['Description'])?trim($arrSSR['Response']['Meal'][0]['Description']):'Veg/Non Dairy';
$SeatCode = isset($arrSSR['Response']['SeatPreference'][0]['Code'])?trim($arrSSR['Response']['SeatPreference'][0]['Code']):'A';
$SeatDesc = isset($arrSSR['Response']['SeatPreference'][0]['Description'])?trim($arrSSR['Response']['SeatPreference'][0]['Description']):'Window';
$arrPassengers[] = [
'Title' => $salutation, //Mr ,Mstr ,Mrs ,Ms ,Miss ,Master ,DR ,CHD ,MST ,PROF ,Inf.
'FirstName' => $paxVal['firstName'],
'LastName' => $paxVal['lastName'],
'PaxType' => $paxVal['PassengerType'],
'DateOfBirth' => $PaxDob . "T00:00:00",
'Gender' => 1,
'PassportNo' => '',
'PassportExpiry' => '',
'AddressLine1' => $paxAddress,
'AddressLine2' => '',
'City' => $paxCity,
'CountryCode' => $paxCountryCode,
'CountryName' => $paxCountryName,
'ContactNo' => $ContactNo,
'Email' => $EmailId,
'IsLeadPax' => ($key == 0) ? 1 : 0,
'FFAirline' => '',
'FFNumber' => '',
'Fare' =>
[
'BaseFare' => $arrFareBreakdown[$key]['BaseFare'],
'Tax' => $arrFareBreakdown[$key]['Tax'],
'TransactionFee' => "00.00",
'YQTax' => $arrFareBreakdown[$key]['YQTax'],
'AdditionalTxnFeeOfrd' => $arrFareBreakdown[$key]['AdditionalTxnFeeOfrd'],
'AdditionalTxnFeePub' => $arrFareBreakdown[$key]['AdditionalTxnFeePub'],
'AirTransFee' => "00.00"
],
'Meal' =>
[
'Code' => $MealCode,
'Description' => $MealDesc
],
'Seat' =>
[
'Code' => $SeatCode,
'Description' => $SeatDesc
]
];
}
}
}
$Departdatah = array(
"TraceId" => $traceId,
"ResultIndex" => $resultindex,
'Passengers' => $arrPassengers,
'TrxId' => $DepartTrxId,
'AgencySysId' => $this->gtxagencysysid,
'discriminator' => $discriminator,
'mmp_txn' => $mmp_txn,
'GUID' => $GUID
);
$data = array(array(), array());
if ($lCC) {
$data[0]['url'] = $this->flightTicketUrl;
} else {
$data[0]['url'] = $this->flightBookUrl;
}
$data[0]['post'] = array();
$data[0]['post'] = $Departdatah;
$traceId = $urlData['TraceId'];
$resultindex = $urlData['Return']['resultindex'];
$strOrigin = $urlData['Return']['departureFrom'];
$strDestination = $urlData['Return']['departureTo'];
$lCC = $urlData['Return']['lCC'];
$arrFareBreakdown = $urlData['Return']['FareBreakdown'];
$AgencyTotalMarkUpReturn = $urlData['Return']['AgencyTotalMarkUp'];
$AgencyTotalCommisionsReturn = $urlData['Return']['AgencyTotalCommisions'];
$arrPaxPrimaryContact = $urlData['PaxPrimaryContact'];
$ContactNo = $arrPaxPrimaryContact['contact'];
$EmailId = $arrPaxPrimaryContact['emailid'];
$ARR_SALUTION = unserialize(ARR_SALUTION);
$arrPaxDetails = $urlData['PaxDetails'];
if (count($arrPaxDetails) > 0) {
$arrPassengers = [];
$arrMeal = [];
foreach ($arrPaxDetails as $key => $paxVal) {
$dob = $paxVal['dob'];
if (!empty($dob)) {
$arrDob = explode("/", $dob);
if (count($arrDob) > 0) {
$PaxDob = $arrDob[2] . "-" . $arrDob[1] . "-" . $arrDob[0];
}
}
$salutation = isset($ARR_SALUTION[$paxVal['salutation']])?$ARR_SALUTION[$paxVal['salutation']]:'Mr';
if ($lCC) {
$arrSSR = $this->flightSSRRequestAction(array("TraceId" => $traceId ,"resultindex" => $resultindex ));
$WayType = isset($arrSSR['Response']['MealDynamic'][0][0]['WayType'])?trim($arrSSR['Response']['MealDynamic'][0][0]['WayType']):'2';
$Code = isset($arrSSR['Response']['MealDynamic'][0][0]['Code'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Code']):'No Meal';
$Description = isset($arrSSR['Response']['MealDynamic'][0][0]['Description'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Description']):'2';
$AirlineDescription = isset($arrSSR['Response']['MealDynamic'][0][0]['AirlineDescription'])?trim($arrSSR['Response']['MealDynamic'][0][0]['AirlineDescription']):'';
$Quantity = isset($arrSSR['Response']['MealDynamic'][0][0]['Quantity'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Quantity']):'0';
$Currency = isset($arrSSR['Response']['MealDynamic'][0][0]['Currency'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Currency']):'INR';
$Price = isset($arrSSR['Response']['MealDynamic'][0][0]['Price'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Price']):'0';
$Origin = isset($arrSSR['Response']['MealDynamic'][0][0]['Origin'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Origin']):trim($data['Origin']);
$Destination = isset($arrSSR['Response']['MealDynamic'][0][0]['Destination'])?trim($arrSSR['Response']['MealDynamic'][0][0]['Destination']):($data['Destination']);
$WayTypeBaggage = isset($arrSSR['Response']['Baggage'][0][0]['WayType'])?trim($arrSSR['Response']['Baggage'][0][0]['WayType']):'2';
$CodeBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Code'])?trim($arrSSR['Response']['Baggage'][0][0]['Code']):'No Baggage';
$DescriptionBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Description'])?trim($arrSSR['Response']['Baggage'][0][0]['Description']):'2';
$WeightBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Weight'])?trim($arrSSR['Response']['Baggage'][0][0]['Weight']):'0';
$CurrencyBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Currency'])?trim($arrSSR['Response']['Baggage'][0][0]['Currency']):'INR';
$PriceBaggage = isset($arrSSR['Response']['Baggage'][0][0]['Price'])?trim($arrSSR['Response']['Baggage'][0][0]['Price']):'0';
$arrPassengers[] = [
'Title' => $salutation, //Mr ,Mstr ,Mrs ,Ms ,Miss ,Master ,DR ,CHD ,MST ,PROF ,Inf.
'FirstName' => $paxVal['firstName'],
'LastName' => $paxVal['lastName'],
'PaxType' => $paxVal['PassengerType'],
'DateOfBirth' => $PaxDob . "T00:00:00",
'Gender' => 1,
'PassportNo' => '',
'PassportExpiry' => '',
'AddressLine1' => $paxAddress,
'AddressLine2' => '',
'City' => $paxCity,
'CountryCode' => $paxCountryCode,
'CountryName' => $paxCountryName,
'ContactNo' => $ContactNo,
'Email' => $EmailId,
'IsLeadPax' => ($key == 0) ? 1 : 0,
'FFAirline' => '',
'FFNumber' => '',
'Fare' =>
[
'BaseFare' => $arrFareBreakdown[$key]['BaseFare'],
'Tax' => $arrFareBreakdown[$key]['Tax'],
'TransactionFee' => "00.00",
'YQTax' => $arrFareBreakdown[$key]['YQTax'],
'AdditionalTxnFeeOfrd' => $arrFareBreakdown[$key]['AdditionalTxnFeeOfrd'],
'AdditionalTxnFeePub' => $arrFareBreakdown[$key]['AdditionalTxnFeePub'],
'AirTransFee' => "00.00"
],
'MealDynamic' =>
[
'WayType' => $WayType,
'Code' => $Code,
'Description' => $Description,
'AirlineDescription' => $AirlineDescription,
'Quantity' => $Quantity,
'Price' => $Price,
'Currency' => $Currency,
'Origin' => $Origin,
'Destination' => $Destination
],
'Baggage' =>
[
'WayType' => $WayTypeBaggage,
'Code' => $CodeBaggage,
'Description' => $DescriptionBaggage,
'Weight' => $WeightBaggage,
'Currency' => $CurrencyBaggage,
'Price' => $PriceBaggage,
'Origin' => $Origin,
'Destination' => $Destination
]
];
} else {
$arrSSR = $this->flightSSRRequestAction(array("TraceId" => $traceId ,"resultindex" => $resultindex ));
$MealCode = isset($arrSSR['Response']['Meal'][0]['Code'])?trim($arrSSR['Response']['Meal'][0]['Code']):'VGML';
$MealDesc = isset($arrSSR['Response']['Meal'][0]['Description'])?trim($arrSSR['Response']['Meal'][0]['Description']):'Veg/Non Dairy';
$SeatCode = isset($arrSSR['Response']['SeatPreference'][0]['Code'])?trim($arrSSR['Response']['SeatPreference'][0]['Code']):'A';
$SeatDesc = isset($arrSSR['Response']['SeatPreference'][0]['Description'])?trim($arrSSR['Response']['SeatPreference'][0]['Description']):'Window';
$arrPassengers[] = [
'Title' => $salutation, //Mr ,Mstr ,Mrs ,Ms ,Miss ,Master ,DR ,CHD ,MST ,PROF ,Inf.
'FirstName' => $paxVal['firstName'],
'LastName' => $paxVal['lastName'],
'PaxType' => $paxVal['PassengerType'],
'DateOfBirth' => $PaxDob . "T00:00:00",
'Gender' => 1,
'PassportNo' => '',
'PassportExpiry' => '',
'AddressLine1' => $paxAddress,
'AddressLine2' => '',
'City' => $paxCity,
'CountryCode' => $paxCountryCode,
'CountryName' => $paxCountryName,
'ContactNo' => $ContactNo,
'Email' => $EmailId,
'IsLeadPax' => ($key == 0) ? 1 : 0,
'FFAirline' => '',
'FFNumber' => '',
'Fare' =>
[
'BaseFare' => $arrFareBreakdown[$key]['BaseFare'],
'Tax' => $arrFareBreakdown[$key]['Tax'],
'TransactionFee' => "00.00",
'YQTax' => $arrFareBreakdown[$key]['YQTax'],
'AdditionalTxnFeeOfrd' => $arrFareBreakdown[$key]['AdditionalTxnFeeOfrd'],
'AdditionalTxnFeePub' => $arrFareBreakdown[$key]['AdditionalTxnFeePub'],
'AirTransFee' => "00.00"
],
'Meal' =>
[
'Code' => $MealCode,
'Description' => $MealDesc
],
'Seat' =>
[
'Code' => $SeatCode,
'Description' => $SeatDesc
]
];
}
}
}
$Returndatah = array(
"TraceId" => $traceId,
"ResultIndex" => $resultindex,
'Passengers' => $arrPassengers,
'TrxId' => $ReturnTrxId,
'AgencySysId' => $this->gtxagencysysid,
'discriminator' => $discriminator,
'mmp_txn' => $mmp_txn,
'GUID' => $GUID
);
//echo "<pre>";print_r($Returndatah);exit;
if ($lCC) {
$data[1]['url'] = $this->flightTicketUrl;
} else {
$data[1]['url'] = $this->flightBookUrl;
}
$data[1]['post'] = array();
$data[1]['post'] = $Returndatah;
$r = $this->multiRequest($data);
$arrResponse = isset($r[0])?json_decode($r[0], true):[];
//echo "<pre>";print_r($arrResponse);exit;
$ErrorCode = isset($arrResponse['Response']['Error']['ErrorCode']) ? $arrResponse['Response']['Error']['ErrorCode'] : '';
$TraceId = isset($arrResponse['Response']['TraceId']) ? $arrResponse['Response']['TraceId'] : '';
$Results = isset($arrResponse['Response']['Response']) ? $arrResponse['Response']['Response'] : [];
if ($ErrorCode == 0) {
$arr['Depart']['PNR'] = $Results['PNR'];
$arr['Depart']['BookingId'] = $Results['BookingId'];
$arrSegments = isset($Results['FlightItinerary']['Segments']) ? $Results['FlightItinerary']['Segments'] : [];
//echo "<pre>";print_r($Results['FlightItinerary']['Segments']);exit;
if (count($arrSegments) > 0) {
$AirSegments = [];
foreach ($arrSegments as $key => $flightsegments) {
// airline logos images...
$strAirlineCode = $flightsegments['Airline']['AirlineCode'];
if (file_exists($this->flightLogoPath . $strAirlineCode . ".gif")) {
$strAirlineLogo = $strAirlineCode . ".gif";
} elseif (file_exists($this->flightLogoPath . $strAirlineCode . ".png")) {
$strAirlineLogo = $strAirlineCode . ".png";
} elseif (file_exists($this->flightLogoPath . $strAirlineCode . ".jpg")) {
$strAirlineLogo = $strAirlineCode . ".jpg";
} elseif (file_exists($this->flightLogoPath . $strAirlineCode . ".jpeg")) {
$strAirlineLogo = $strAirlineCode . ".jpeg";
} else {
$strAirlineLogo = "noimage.png";
}
// airline logos images ends...
if ($key == 0) {
$departureDate = !empty(explode("T", $flightsegments['StopPointDepartureTime'])) ? explode("T", $flightsegments['StopPointDepartureTime']) : '';
$departureDate = $departureDate[0];
}
$departureat = $flightsegments['StopPointDepartureTime'];
$departureat = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getDateTimeFormatString($departureat); // API time format...
$departureat = explode(" ", $departureat);
$arrivalat = $flightsegments['StopPointArrivalTime'];
$arrivalat = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getDateTimeFormatString($arrivalat); // API time format...
$arrivalat = explode(" ", $arrivalat);
$flightduration = isset($flightsegments['Duration']) ? $flightsegments['Duration'] : 0;
$strflightduration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($flightduration); // minutes to hours...
$GroundTime = isset($flightsegments['GroundTime']) ? $flightsegments['GroundTime'] : 0;
$GroundTime = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($GroundTime); // minutes to hours...
$AirSegments[] = [
'logo' => $strAirlineLogo,
'airline' => $flightsegments['Airline']['AirlineName'],
'airlinecode' => $flightsegments['Airline']['AirlineCode'],
'flightnumber' => $flightsegments['Airline']['FlightNumber'],
'deptime' => end($departureat),
'departuredate' => $departureat[0] . " " . $departureat[1] . " " . $departureat[2],
'Baggage' => $flightsegments['Baggage'],
'CabinBaggage' => $flightsegments['CabinBaggage'],
'airline' => $flightsegments['Airline']['AirlineName'],
'fareclass' => $flightsegments['Airline']['FareClass'],
'origin' => $flightsegments['Origin']['Airport']['AirportCode'],
'originTerminal' => $flightsegments['Origin']['Airport']['Terminal'],
'origincity' => $flightsegments['Origin']['Airport']['CityName'],
'originCountryCode' => $flightsegments['Origin']['Airport']['CountryCode'],
'Originairport' => $flightsegments['Origin']['Airport']['AirportName'],
'destination' => $flightsegments['Destination']['Airport']['AirportCode'],
'destTerminal' => $flightsegments['Destination']['Airport']['Terminal'],
'destcity' => $flightsegments['Destination']['Airport']['CityName'],
'destCountryCode' => $flightsegments['Destination']['Airport']['CountryCode'],
'destairport' => $flightsegments['Destination']['Airport']['AirportName'],
'arrtime' => end($arrivalat),
'arrivaldate' => $arrivalat[0] . " " . $arrivalat[1] . " " . $arrivalat[2],
'Duration' => $strflightduration,
'GroundTime' => $GroundTime,
];
}
$arr['Depart']['Segments'] = $AirSegments;
}
$arr['Depart']['TotalOfferedForAllPax'] = $urlData['Depart']['TotalOfferedForAllPax'];
$arr['Depart']['ServicesAndTax'] = $urlData['Depart']['ServicesAndTax'];
$arr['Depart']['TotalOtherCharge'] = $urlData['Depart']['TotalOtherCharge'];
$arr['Depart']['CostToCustomer'] = $urlData['Depart']['CostToCustomer'];
$arrPassengers = isset($Results['FlightItinerary']['Passenger']) ? $Results['FlightItinerary']['Passenger'] : [];
$arrFlightItinerary = isset($Results['FlightItinerary']) ? $Results['FlightItinerary'] : [];
if (count($arrPassengers) > 0) {
$arrPax = [];
foreach ($arrPassengers as $paxDetails) {
$IsLCC = isset($Results['FlightItinerary']['IsLCC']) ? $Results['FlightItinerary']['IsLCC'] : 0;
if ($IsLCC) {
$arrPax[] = [
'Title' => $paxDetails['Title'],
'FirstName' => $paxDetails['FirstName'],
'LastName' => $paxDetails['LastName'],
'EmailId' => $EmailId,
'DateOfBirth' => $paxDetails['DateOfBirth'],
'PNR' => $Results['FlightItinerary']['PNR'],
'BookingId' => $Results['BookingId'],
'TicketId' => isset($paxDetails['Ticket']['TicketId']) ? $paxDetails['Ticket']['TicketId'] : '',
'TicketNumber' => isset($paxDetails['Ticket']['TicketNumber']) ? $paxDetails['Ticket']['TicketNumber'] : ''
];
} else {
$arrPax[] = [
'Title' => $paxDetails['Title'],
'FirstName' => $paxDetails['FirstName'],
'LastName' => $paxDetails['LastName'],
'EmailId' => $EmailId,
'DateOfBirth' => $paxDetails['DateOfBirth'],
'PNR' => $Results['FlightItinerary']['PNR'],
'BookingId' => $Results['BookingId'],
'TicketId' => isset($paxDetails['Ticket']['TicketId']) ? $paxDetails['Ticket']['TicketId'] : '',
'TicketNumber' => isset($paxDetails['Ticket']['TicketNumber']) ? $paxDetails['Ticket']['TicketNumber'] : ''
];
}
}
$arr['Depart']['Passengers'] = $arrPax;
}
$FareRules = isset($Results['FlightItinerary']['FareRules'][0]['FareRuleDetail']) ? $Results['FlightItinerary']['FareRules'][0]['FareRuleDetail'] : [];
$arr['Depart']['FareRules'] = addslashes($FareRules);
$arrFareDetails = isset($Results['FlightItinerary']['Fare']) ? $Results['FlightItinerary']['Fare'] : [];
$arr['Depart']['FareDetails'] = [
"Currency" => $arrFareDetails['Currency'],
"BaseFare" => $arrFareDetails['BaseFare'],
"AgencyTotalMarkUp" => $AgencyTotalMarkUp,
"AgencyTotalCommisions" => $AgencyTotalCommisions,
"Tax" => $arrFareDetails['Tax'],
"YQTax" => $arrFareDetails['YQTax'],
"AdditionalTxnFeeOfrd" => $arrFareDetails['AdditionalTxnFeeOfrd'],
"AdditionalTxnFeePub" => $arrFareDetails['AdditionalTxnFeePub'],
"OtherCharges" => $arrFareDetails['OtherCharges'],
"Discount" => $arrFareDetails['Discount'],
"PublishedFare" => $arrFareDetails['PublishedFare']
];
//Email To Customer & Admin Depart.............
$arrMarkups = isset($arrMarkupsAndPrice['Depart'])?$arrMarkupsAndPrice['Depart']:[];
// $arrMarkups = [
// "AgencyTotalMarkUp" => @$AgencyTotalMarkUp,
// "AgencyTotalCommisions" => @$AgencyTotalCommisions
// ];
$this->bookingEmailToAgentAction($arrResponse,$arrMarkups);
$this->bookingEmailToCustomerAction($arrResponse,$arrMarkups);
//Email To Customer & Admin Depart Ends.............
// Update Booking Status to B2B Depart.........
try {
$this->postFields .= "&MasterTPSysId=" . $MasterTPSysIdDepart;
$this->postFields .= "&TPSysId=" . $TPSysIdDepart;
$this->postFields .= "&VersionId=" . $VersionIdDepart;
$this->postFields .= "&XRefBookingId=" . $Results['BookingId'] . "/" . $Results['PNR'];
$this->postFields .= "&APIBookingRes=" . json_encode($arrResponse);
$this->postFields .= "&ErrorCode=0";
$model = new Gtxwebservices_Model_Webservices();
$result = $model->updateFlightBookingDetails($this->postFields);
} catch (Exception $error) {
}
// Update Booking Status to B2B Depart end.........
} else {
//$arrCustomErrors = unserialize(CONST_FLIGHT_CUSTOM_ERRORS);
$ErrorCode = isset($arrResponse['Response']['Error']['ErrorCode']) ? $arrResponse['Response']['Error']['ErrorCode'] : 0;
$arr['Depart']['error'] = $arrResponse['Response']['Error']; //$arrCustomErrors[$ErrorCode];
// Update Booking Status to B2B Depart.........
try {
$this->postFields .= "&MasterTPSysId=" . $MasterTPSysIdDepart;
$this->postFields .= "&TPSysId=" . $TPSysIdDepart;
$this->postFields .= "&VersionId=" . $VersionIdDepart;
$this->postFields .= "&XRefBookingId=" . '';
$this->postFields .= "&APIBookingRes=" . json_encode($arrResponse);
$this->postFields .= "&ErrorCode=70";
$model = new Gtxwebservices_Model_Webservices();
$result = $model->updateFlightBookingDetails($this->postFields);
} catch (Exception $error) {
}
// Update Booking Status to B2B Depart end.........
}
// Return.............
$arrResponse = '';
$arrResponse = json_decode($r[1], true);
$ErrorCode = isset($arrResponse['Response']['Error']['ErrorCode']) ? $arrResponse['Response']['Error']['ErrorCode'] : '';
$TraceId = isset($arrResponse['Response']['TraceId']) ? $arrResponse['Response']['TraceId'] : '';
$Results = isset($arrResponse['Response']['Response']) ? $arrResponse['Response']['Response'] : [];
if ($ErrorCode == 0) {
$arr['Retrun']['PNR'] = $Results['PNR'];
$arr['Retrun']['BookingId'] = $Results['BookingId'];
$arrSegments = isset($Results['FlightItinerary']['Segments']) ? $Results['FlightItinerary']['Segments'] : [];
//echo "<pre>";print_r($Results['FlightItinerary']['Segments']);exit;
if (count($arrSegments) > 0) {
$AirSegments = [];
foreach ($arrSegments as $key => $flightsegments) {
// airline logos images...
$strAirlineCode = $flightsegments['Airline']['AirlineCode'];
if (file_exists($this->flightLogoPath . $strAirlineCode . ".gif")) {
$strAirlineLogo = $strAirlineCode . ".gif";
} elseif (file_exists($this->flightLogoPath . $strAirlineCode . ".png")) {
$strAirlineLogo = $strAirlineCode . ".png";
} elseif (file_exists($this->flightLogoPath . $strAirlineCode . ".jpg")) {
$strAirlineLogo = $strAirlineCode . ".jpg";
} elseif (file_exists($this->flightLogoPath . $strAirlineCode . ".jpeg")) {
$strAirlineLogo = $strAirlineCode . ".jpeg";
} else {
$strAirlineLogo = "noimage.png";
}
// airline logos images ends...
if ($key == 0) {
$departureDate = !empty(explode("T", $flightsegments['StopPointDepartureTime'])) ? explode("T", $flightsegments['StopPointDepartureTime']) : '';
$departureDate = $departureDate[0];
}
$departureat = $flightsegments['StopPointDepartureTime'];
$departureat = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getDateTimeFormatString($departureat); // API time format...
$departureat = explode(" ", $departureat);
$arrivalat = $flightsegments['StopPointArrivalTime'];
$arrivalat = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getDateTimeFormatString($arrivalat); // API time format...
$arrivalat = explode(" ", $arrivalat);
$flightduration = isset($flightsegments['Duration']) ? $flightsegments['Duration'] : 0;
$strflightduration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($flightduration); // minutes to hours...
$GroundTime = isset($flightsegments['GroundTime']) ? $flightsegments['GroundTime'] : 0;
$GroundTime = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($GroundTime); // minutes to hours...
$AirSegments[] = [
'logo' => $strAirlineLogo,
'airline' => $flightsegments['Airline']['AirlineName'],
'airlinecode' => $flightsegments['Airline']['AirlineCode'],
'flightnumber' => $flightsegments['Airline']['FlightNumber'],
'deptime' => end($departureat),
'departuredate' => $departureat[0] . " " . $departureat[1] . " " . $departureat[2],
'Baggage' => $flightsegments['Baggage'],
'CabinBaggage' => $flightsegments['CabinBaggage'],
'airline' => $flightsegments['Airline']['AirlineName'],
'fareclass' => $flightsegments['Airline']['FareClass'],
'origin' => $flightsegments['Origin']['Airport']['AirportCode'],
'originTerminal' => $flightsegments['Origin']['Airport']['Terminal'],
'origincity' => $flightsegments['Origin']['Airport']['CityName'],
'originCountryCode' => $flightsegments['Origin']['Airport']['CountryCode'],
'Originairport' => $flightsegments['Origin']['Airport']['AirportName'],
'destination' => $flightsegments['Destination']['Airport']['AirportCode'],
'destTerminal' => $flightsegments['Destination']['Airport']['Terminal'],
'destcity' => $flightsegments['Destination']['Airport']['CityName'],
'destCountryCode' => $flightsegments['Destination']['Airport']['CountryCode'],
'destairport' => $flightsegments['Destination']['Airport']['AirportName'],
'arrtime' => end($arrivalat),
'arrivaldate' => $arrivalat[0] . " " . $arrivalat[1] . " " . $arrivalat[2],
'Duration' => $strflightduration,
'GroundTime' => $GroundTime,
];
}
$arr['Retrun']['Segments'] = $AirSegments;
}
$arr['Retrun']['TotalOfferedForAllPax'] = $urlData['Return']['TotalOfferedForAllPax'];
$arr['Retrun']['ServicesAndTax'] = $urlData['Return']['ServicesAndTax'];
$arr['Retrun']['TotalOtherCharge'] = $urlData['Return']['TotalOtherCharge'];
$arr['Retrun']['CostToCustomer'] = $urlData['Return']['CostToCustomer'];
$arrPassengers = isset($Results['FlightItinerary']['Passenger']) ? $Results['FlightItinerary']['Passenger'] : [];
$arrFlightItinerary = isset($Results['FlightItinerary']) ? $Results['FlightItinerary'] : [];
if (count($arrPassengers) > 0) {
$arrPax = [];
foreach ($arrPassengers as $paxDetails) {
$IsLCC = isset($Results['FlightItinerary']['IsLCC']) ? $Results['FlightItinerary']['IsLCC'] : 0;
if ($IsLCC) {
$arrPax[] = [
'Title' => $paxDetails['Title'],
'FirstName' => $paxDetails['FirstName'],
'LastName' => $paxDetails['LastName'],
'DateOfBirth' => $paxDetails['DateOfBirth'],
'PNR' => $Results['FlightItinerary']['PNR'],
'BookingId' => $Results['BookingId'],
'TicketId' => isset($paxDetails['Ticket']['TicketId']) ? $paxDetails['Ticket']['TicketId'] : '',
'TicketNumber' => isset($paxDetails['Ticket']['TicketNumber']) ? $paxDetails['Ticket']['TicketNumber'] : ''
];
} else {
$arrPax[] = [
'Title' => $paxDetails['Title'],
'FirstName' => $paxDetails['FirstName'],
'LastName' => $paxDetails['LastName'],
'DateOfBirth' => $paxDetails['DateOfBirth'],
'PNR' => $Results['FlightItinerary']['PNR'],
'BookingId' => $Results['BookingId'],
'TicketId' => isset($paxDetails['Ticket']['TicketId']) ? $paxDetails['Ticket']['TicketId'] : '',
'TicketNumber' => isset($paxDetails['Ticket']['TicketNumber']) ? $paxDetails['Ticket']['TicketNumber'] : ''
];
}
}
$arr['Retrun']['Passengers'] = $arrPax;
}
$FareRules = isset($Results['FlightItinerary']['FareRules'][0]['FareRuleDetail']) ? $Results['FlightItinerary']['FareRules'][0]['FareRuleDetail'] : [];
$arr['Retrun']['FareRules'] = addslashes($FareRules);
$arrFareDetails = isset($Results['FlightItinerary']['Fare']) ? $Results['FlightItinerary']['Fare'] : [];
$arr['Retrun']['FareDetails'] = [
"Currency" => $arrFareDetails['Currency'],
"BaseFare" => $arrFareDetails['BaseFare'],
"AgencyTotalMarkUp" => $AgencyTotalMarkUpReturn,
"AgencyTotalCommisions" => $AgencyTotalCommisionsReturn,
"Tax" => $arrFareDetails['Tax'],
"YQTax" => $arrFareDetails['YQTax'],
"AdditionalTxnFeeOfrd" => $arrFareDetails['AdditionalTxnFeeOfrd'],
"AdditionalTxnFeePub" => $arrFareDetails['AdditionalTxnFeePub'],
"OtherCharges" => $arrFareDetails['OtherCharges'],
"Discount" => $arrFareDetails['Discount'],
"PublishedFare" => $arrFareDetails['PublishedFare']
];
//Email To Customer & Admin Depart.............
$arrMarkups = [];
$arrMarkups = isset($arrMarkupsAndPrice['Return'])?$arrMarkupsAndPrice['Return']:[];
// $arrMarkups = [
// "AgencyTotalMarkUp" => @$AgencyTotalMarkUpReturn,
// "AgencyTotalCommisions" => @$AgencyTotalCommisionsReturn
// ];
$this->bookingEmailToAgentAction($arrResponse,$arrMarkups);
$this->bookingEmailToCustomerAction($arrResponse,$arrMarkups);
//Email To Customer & Admin Depart Ends.............
// Update Booking Status to B2B Depart.........
try {
$this->postFields .= "&MasterTPSysId=" . $MasterTPSysIdReturn;
$this->postFields .= "&TPSysId=" . $TPSysIdReturn;
$this->postFields .= "&VersionId=" . $VersionIdReturn;
$this->postFields .= "&XRefBookingId=" . $Results['BookingId'] . "/" . $Results['PNR'];
$this->postFields .= "&APIBookingRes=" . json_encode($arrResponse);
$this->postFields .= "&ErrorCode=0";
$model = new Gtxwebservices_Model_Webservices();
$result = $model->updateFlightBookingDetails($this->postFields);
} catch (Exception $error) {
}
// Update Booking Status to B2B Depart end.........
} else {
//$arrCustomErrors = unserialize(CONST_FLIGHT_CUSTOM_ERRORS);
$ErrorCode = isset($arrResponse['Response']['Error']['ErrorCode']) ? $arrResponse['Response']['Error']['ErrorCode'] : 0;
$arr['Retrun']['error'] = $arrResponse['Response']['Error']; //$arrCustomErrors[$ErrorCode];
// Update Booking Status to B2B Depart.........
try {
$this->postFields .= "&MasterTPSysId=" . $MasterTPSysIdReturn;
$this->postFields .= "&TPSysId=" . $TPSysIdReturn;
$this->postFields .= "&VersionId=" . $VersionIdReturn;
$this->postFields .= "&XRefBookingId=" . '';
$this->postFields .= "&APIBookingRes=" . json_encode($arrResponse);
$this->postFields .= "&ErrorCode=70";
$model = new Gtxwebservices_Model_Webservices();
$result = $model->updateFlightBookingDetails($this->postFields);
} catch (Exception $error) {
}
// Update Booking Status to B2B Depart end.........
}
$JSONFileName = $_SERVER['DOCUMENT_ROOT'] . "/public/data/flight-search/flight_search_".trim($traceid).".json";
if (file_exists($JSONFileName)) {
unlink($JSONFileName);
}
return $arr;
//echo "<pre>";print_r($r);exit;
}
public function multiRequest($data, $options = array()) {
// array of curl handles
$curly = array();
// data to be returned
$result = array();
// multi handle
$mh = curl_multi_init();
// loop through $data and create curl handles
// then add them to the multi-handle
foreach ($data as $id => $d) {
$curly[$id] = curl_init();
$url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d;
curl_setopt($curly[$id], CURLOPT_ENCODING, "gzip");
curl_setopt($curly[$id], CURLOPT_URL, $url);
curl_setopt($curly[$id], CURLOPT_HEADER, 0);
curl_setopt($curly[$id], CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1);
// post?
if (is_array($d)) {
if (!empty($d['post'])) {
curl_setopt($curly[$id], CURLOPT_POST,true);
curl_setopt($curly[$id], CURLOPT_POSTFIELDS, http_build_query($d['post']));
}
}
curl_setopt($curly[$id], CURLOPT_HTTPHEADER, array());
if (!empty($options)) {
curl_setopt_array($curly[$id], $options);
}
curl_multi_add_handle($mh, $curly[$id]);
}
// execute the handles
$running = null;
do {
curl_multi_exec($mh, $running);
} while ($running > 0);
// get content and remove handles
foreach ($curly as $id => $c) {
$result[$id] = curl_multi_getcontent($c);
curl_multi_remove_handle($mh, $c);
}
// all done
curl_multi_close($mh);
return $result;
}
public function emailVoucherAction(){
$this->_helper->viewRenderer->setNoRender(true);
$this->_helper->layout->disableLayout();
if ($this->_request->isXmlHttpRequest()) {
$emailId = trim($this->getRequest()->getParam('emailId'));
$FromName = $this->siteName;
$FromEmail = "prashant@catpl.co.in";
$bodyText = $this->getRequest()->getParam('bodyText');
if(empty($emailId)) {
$response = array('success' => false, 'msg' => 'Please enter Email ID.');
echo json_encode($response);
exit;
}
if (!filter_var($emailId, FILTER_VALIDATE_EMAIL)) {
$msg = "Email address is not valid.";
$response = array('success' => false, 'msg' => $msg);
echo json_encode($response);
exit;
}
$emailData = array('fromEmail'=>$FromEmail,'fromName'=>$FromName,'subject'=>'Flight Booking Voucher','to'=>array($emailId),'bodyHtml'=>$bodyText,'bodyText'=>'');
$arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
$arrEmailStatistics = array(
"TPSysId" => 0,
"TypeSysId" => 1, // 1 For Email 2 For SMS
"AgencySysId" => "16",
"AgentSysId" => "42",
"Title" => $bodyText,
"Source" => $arrEmailStatisticsType[1], // 1 For Vouchers
"Status" => 0,
"RefSysId" => "",
"RefSysStatus" => "",
"CreateDate" => Zend_Date::now()->toString('YYYY-MM-dd HH:mm:ss')
);
$emailResponse = json_decode($this->mailSentByElastice($emailData),true);
try {
if($emailResponse['success']) {
$msg = "Voucher Emailed successfully.";
$response = array('success' => true, 'msg' => $msg);
echo json_encode($response);
exit;
}
} catch (Exception $err) {
if($mail->send($transport)) {
$msg = "Oops! there might be some technical issue, please try after some time.";
$response = array('success' => false, 'msg' => $msg);
echo json_encode($response);
exit;
}
}
}
}
public function bookingDetailsAction() {
$this->_helper->layout->setLayout('flight-book-layout');
$this->view->baseUrl = $this->baseUrl;
$id = base64_decode($this->getRequest()->getParam('id'));
$objTempUrl = new Flights_Model_TblTempUrl();
$arrUrlData = $objTempUrl->getBookingData($id);
$arrResponse = isset($arrUrlData['response']) ? json_decode($arrUrlData['response'], true) : [];
$arrApiResponse = isset($arrUrlData['apiResponse']) ? json_decode($arrUrlData['apiResponse'], true) : [];
$this->view->arrResponse = $arrResponse;
}
public function paymentCancelledAction(){
$this->_helper->layout->setLayout('flight-book-layout');
$this->view->baseUrl = $this->baseUrl;
$this->view->status = $this->getRequest()->getParam('status');
}
public function flightSSRRequestAction($data){
$datah = array(
"TraceId" => $data['TraceId'],
"ResultIndex" => $data['resultindex']
);
try {
$data_stringh = json_encode($datah);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->flightSSRUrl);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($datah));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
));
$response = curl_exec($ch);
} catch (Exception $error) {
$response = $error->getMessage();
}
return json_decode($response,true);
}
public function bookingEmailToAgentAction($data = [],$arrMarkups = []){
$arrSegments = isset($data['Response']['Response']['FlightItinerary']['Segments'])?$data['Response']['Response']['FlightItinerary']['Segments']:[];
$arrOrigin = current($arrSegments);
$OriginCityName = isset($arrOrigin['Origin']['Airport']['CityName'])?$arrOrigin['Origin']['Airport']['CityName']:'';
$arrDestination = end($arrSegments);
$DestCityName = isset($arrDestination['Destination']['Airport']['CityName'])?$arrDestination['Destination']['Airport']['CityName']:'';
//Mail Booking Itenary To Customer
$html = new Zend_View();
$html->setScriptPath(APPLICATION_PATH . '/modules/flights/views/scripts/search/');
$html->assign('arrResponse', $data);
$html->assign('arrMarkups', $arrMarkups);
$html->assign('baseUrl',$this->baseUrl);
$html->assign('siteName',$this->siteName);
$html->assign('tollfreenumber',$this->tollfreenumber);
$bodyText = $html->render('booking-email-to-agent.phtml');
$subject = "Flight Booking Itinerary From ".$OriginCityName." To ".$DestCityName;
$emailData = array('fromEmail'=>$this->superAdminEmail,'fromName'=>$this->siteName,'subject'=> $subject,'to'=>array($this->superAdminEmail,"gaurav@hellogtx.com"),'bodyHtml'=>$bodyText,'bodyText'=>'');
// $emailData = array('fromEmail'=>$this->superAdminEmail,'fromName'=>$this->siteName,'subject'=> $subject,'to'=>array("pardeep.kp86@gmail.com","piyush@catpl.co.in"),'bodyHtml'=>$bodyText,'bodyText'=>'');
try {
$this->mailSentByElastice($emailData);
} catch (Exception $err) {
print_r($err, true);
}
//Mail Booking Itenary To Customer
}
public function bookingEmailToCustomerAction($data = [],$arrMarkups = []){
$arrPassenger = isset($data['Response']['Response']['FlightItinerary']['Passenger'])?$data['Response']['Response']['FlightItinerary']['Passenger']:[];
$ToEmailId = isset($arrPassenger[0]['Email'])?$arrPassenger[0]['Email']:'';
$arrSegments = isset($data['Response']['Response']['FlightItinerary']['Segments'])?$data['Response']['Response']['FlightItinerary']['Segments']:[];
$arrOrigin = current($arrSegments);
$OriginCityName = isset($arrOrigin['Origin']['Airport']['CityName'])?$arrOrigin['Origin']['Airport']['CityName']:'';
$arrDestination = end($arrSegments);
$DestCityName = isset($arrDestination['Destination']['Airport']['CityName'])?$arrDestination['Destination']['Airport']['CityName']:'';
//Mail Booking Itenary To Customer
$html = new Zend_View();
$html->setScriptPath(APPLICATION_PATH . '/modules/flights/views/scripts/search/');
$html->assign('arrResponse', $data);
$html->assign('arrMarkups', $arrMarkups);
$html->assign('baseUrl',$this->baseUrl);
$html->assign('siteName',$this->siteName);
$html->assign('tollfreenumber',$this->tollfreenumber);
$bodyText = $html->render('mail-booking-content.phtml');
$subject = "Flight Booking Itinerary From ".$OriginCityName." To ".$DestCityName;
$emailData = array('fromEmail'=>$this->superAdminEmail,'fromName'=>$this->siteName,'subject'=> $subject,'to'=>array($ToEmailId),'bodyHtml'=>$bodyText,'bodyText'=>'');
try {
$this->mailSentByElastice($emailData);
} catch (Exception $err) {
print_r($err, true);
}
//Mail Booking Itenary To Customer
}
public function errorAction(){
$this->_helper->layout->setLayout('flight-book-layout');
$this->view->baseUrl = $this->baseUrl;
$id = !empty($this->getRequest()->getParam('id'))?base64_decode($this->getRequest()->getParam('id')):'';
if(!empty($id)){
$objTempUrl = new Flights_Model_TblTempUrl();
$arrUrlData = $objTempUrl->getUrlData($id);
$urlData = isset($arrUrlData['UrlData'])?json_decode($arrUrlData['UrlData'],true):[];
$this->view->errorMessage = isset($urlData['Depart']['error'])?$urlData['Depart']['error']:'Oops! There might be some technical issue, Please contact administrator.';
}else{
$msg = !empty($this->getRequest()->getParam('msg'))?base64_decode($this->getRequest()->getParam('msg')):'';
$this->view->errorMessage = !empty($msg)?$msg:'Oops! There might be some technical issue, Please contact administrator.';
}
}
}