| 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/b2bzend/cronjob/ |
Upload File : |
<?php
//error_reporting(E_ALL);
// error_reporting(0);
require_once 'init.php';
$objFlight = new Travel_Model_TblFlight();
$objAgency = new Travel_Model_TblAgency();
function writeLog($data)
{
$fileName = "updatepnr" . date("Y-m-d") . ".txt";
$fp = fopen("log/" . $fileName, 'a+');
$data = date("Y-m-d H:i:s") . " - " . $data;
fwrite($fp, $data);
fclose($fp);
}
function FlightsTripJackURL($AgencySysId, $ApiKeyForFlight)
{
$objFlight = new Travel_Model_TblFlight();
$IsAPIProd = $objFlight->getIsAPIProdFlight($AgencySysId);
// echo "<pre>";
// print_r($IsAPIProd);
//exit;
if ($IsAPIProd && $ApiKeyForFlight['IsCheckWallet'] == 1) {
$urlArray = array(
'APIKEY' => "399470738cc8adc-776f-4ef7-b46d-b87640ddd0e4", /// live key Catabatic Technology. as per prashant
'TRIPJACK_FL_SEARCHALL_URL' => 'https://api.tripjack.com/fms/v1/air-search-all',
'TRIPJACK_FL_API_FARE_RULE_URL' => 'https://api.tripjack.com/fms/v1/farerule',
'TRIPJACK_FL_API_REVIEW_URL' => 'https://api.tripjack.com/fms/v1/review',
'TRIPJACK_FL_API_INSTANT_BOOK_URL' => 'https://api.tripjack.com/oms/v1/air/book',
'TRIPJACK_FL_API_BOOKINGDETAILS_URL' => 'https://api.tripjack.com/oms/v1/booking-details',
'TRIPJACK_FL_API_GETAMENDMENTCHARGES_URL' => 'https://api.tripjack.com/oms/v1/air/amendment/amendment-charges',
'TRIPJACK_FL_API_SUBMITAMENDMENT_URL' => 'https://api.tripjack.com/oms/v1/air/amendment/submit-amendment',
'TRIPJACK_FL_API_AMENDMENTDETAILS_URL' => 'https://api.tripjack.com/oms/v1/air/amendment/amendment-details',
'TRIPJACK_FL_API_FAREVALIDATE_URL' => 'https://api.tripjack.com/oms/v1/air/fare-validate',
'TRIPJACK_FL_API_SEAT_URL' => 'https://api.tripjack.com/fms/v1/seat',
'FLIGHT_API_LOGS' => true,
);
} else if ($IsAPIProd && $ApiKeyForFlight['IsCheckWallet'] == 0) {
$urlArray = array(
'APIKEY' => "399470738cc8adc-776f-4ef7-b46d-b87640ddd0e4", /// live key Catabatic Technology.as per prashant
'TRIPJACK_FL_SEARCHALL_URL' => 'https://api.tripjack.com/fms/v1/air-search-all',
'TRIPJACK_FL_API_FARE_RULE_URL' => 'https://api.tripjack.com/fms/v1/farerule',
'TRIPJACK_FL_API_REVIEW_URL' => 'https://api.tripjack.com/fms/v1/review',
'TRIPJACK_FL_API_INSTANT_BOOK_URL' => 'https://api.tripjack.com/oms/v1/air/book',
'TRIPJACK_FL_API_BOOKINGDETAILS_URL' => 'https://api.tripjack.com/oms/v1/booking-details',
'TRIPJACK_FL_API_GETAMENDMENTCHARGES_URL' => 'https://api.tripjack.com/oms/v1/air/amendment/amendment-charges',
'TRIPJACK_FL_API_SUBMITAMENDMENT_URL' => 'https://api.tripjack.com/oms/v1/air/amendment/submit-amendment',
'TRIPJACK_FL_API_AMENDMENTDETAILS_URL' => 'https://api.tripjack.com/oms/v1/air/amendment/amendment-details',
'TRIPJACK_FL_API_FAREVALIDATE_URL' => 'https://api.tripjack.com/oms/v1/air/fare-validate',
'TRIPJACK_FL_API_SEAT_URL' => 'https://api.tripjack.com/fms/v1/seat',
'FLIGHT_API_LOGS' => true,
);
} else {
$urlArray = array(
'APIKEY' => "311588105d9884-721f-46d8-9e83-b7a77119c824", /// Test key Catabatic Technology.as per prashant
'TRIPJACK_FL_SEARCHALL_URL' => 'https://apitest.tripjack.com/fms/v1/air-search-all',
'TRIPJACK_FL_API_FARE_RULE_URL' => 'https://apitest.tripjack.com/fms/v1/farerule',
'TRIPJACK_FL_API_REVIEW_URL' => 'https://apitest.tripjack.com/fms/v1/review',
'TRIPJACK_FL_API_INSTANT_BOOK_URL' => 'https://apitest.tripjack.com/oms/v1/air/book',
'TRIPJACK_FL_API_BOOKINGDETAILS_URL' => 'https://apitest.tripjack.com/oms/v1/booking-details',
'TRIPJACK_FL_API_GETAMENDMENTCHARGES_URL' => 'https://apitest.tripjack.com/oms/v1/air/amendment/amendment-charges',
'TRIPJACK_FL_API_SUBMITAMENDMENT_URL' => 'https://apitest.tripjack.com/oms/v1/air/amendment/submit-amendment',
'TRIPJACK_FL_API_AMENDMENTDETAILS_URL' => 'https://apitest.tripjack.com/oms/v1/air/amendment/amendment-details',
'TRIPJACK_FL_API_FAREVALIDATE_URL' => 'https://apitest.tripjack.com/oms/v1/air/fare-validate',
'TRIPJACK_FL_API_SEAT_URL' => 'https://apitest.tripjack.com/fms/v1/seat',
'FLIGHT_API_LOGS' => true,
);
}
return $urlArray;
}
function bookingDetailsTripJack($response, $AgencySysId)
{
$ResponseStatus = isset($response['status']['success']) ? $response['status']['success'] : '0';
$checkOptModel = new Payment_Model_Checkotp();
//echo $AgencySysId;
$ApiKeyForFlight = $checkOptModel->getTripJectApiKeyForFlight($AgencySysId, 3);
$TripJackURL = FlightsTripJackURL($AgencySysId, $ApiKeyForFlight);
//echo "<pre>";print_r($ApiKeyForFlight);
if ($ApiKeyForFlight['IsCheckWallet'] == 1) {
$APIKEY = $ApiKeyForFlight['APIKEY'];
} else {
$APIKEY = $TripJackURL['APIKEY'];
}
if ($ResponseStatus == 1) {
$bookingId = isset($response['bookingId']) ? $response['bookingId'] : '0';
$data = array(
'bookingId' => $bookingId
);
$data_stringh = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $TripJackURL['TRIPJACK_FL_API_BOOKINGDETAILS_URL']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
//'Accept-Encoding: gzip',
'apikey:' . $APIKEY,
'Content-Length: ' . strlen($data_stringh)
));
$outputH = curl_exec($ch);
$strFilePath = "flight/cronjob/updatepnr/" . date('Y-m-d-H-i-s') . "_api_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_stringh);
$strFilePath = "flight/cronjob/updatepnr/" . date('Y-m-d-H-i-s') . "_api_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $outputH);
return json_decode($outputH, true);
} else {
return $response;
}
}
$strFlightBookingList = $objFlight->getFlightBookingListCron(null, 1);
if ($strFlightBookingList) {
foreach ($strFlightBookingList as $key => $value) {
$ICSourceSysId = $value['ICSourceSysId'];
$intTPSysId = $value['TPSysId'];
$MasterTPSysId = $value['MasterTPSysId'];
$TPIntSysId = $value['TPIntSysId'];
$AgencySysId = $value['AgencySysId'];
$AgencyName = $value['B2BAgencyName'];
$getAgencyDataById = $agencyDetails = $objAgency->getAgencyDataById($AgencySysId);
$IsB2bSiteURL = $getAgencyDataById['IsB2bSiteURL'];
$IsB2CSiteURL = $getAgencyDataById['Url'];
$IsB2bSite = $getAgencyDataById['IsB2bSite'];
$arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId);
$LeadSource = isset($arrCustomerInvoiceData[0]['LeadSource']) ? $arrCustomerInvoiceData[0]['LeadSource'] : '';
if ($LeadSource == 'Website') {
$url = trim($IsB2CSiteURL) . "gtxwebservices/index/updatestatus";
} else {
$url = trim($IsB2bSiteURL) . "gtxwebservices/index/updatestatus";
}
$crmcustomerObj = new Travel_Model_CRM_Customer();
$getData['SecurityKey'] = $agencyDetails['SecurityKey'];
$PostData = ['TPSysId' => $intTPSysId, 'version' => null];
$HTTP_HOST = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
$URL = $HTTP_HOST . "/gtxwebservices/flight-api/bookingdetails/";
$apiResponse = apiHttpRequest($PostData, $getData, $URL);
$FlightBookingData = $bookingDataByAPI = isset($apiResponse['FlightBookingData']) ? $apiResponse['FlightBookingData'] : [];
$passengerData = $arrtravellerList = isset($apiResponse['customer']) ? $apiResponse['customer'] : [];
$flexiPayment = isset($FlightBookingData[0]['flexiPayment']) ? (int)$FlightBookingData[0]['flexiPayment'] : '';
$IsB2BProposal = isset($FlightBookingData[0]['B2BAgencySysId']) ? $FlightBookingData[0]['IsB2BProposal'] : '';
$B2BAgencySysId = isset($FlightBookingData[0]['B2BAgencySysId']) ? $FlightBookingData[0]['B2BAgencySysId'] : '';
$ICSourceSysId = isset($FlightBookingData[0]['ICSourceSysId']) ? $FlightBookingData[0]['ICSourceSysId'] : '';
$Booking_RefNo = isset($FlightBookingData[0]['XRefBookingId']) ? $FlightBookingData[0]['XRefBookingId'] : '';
$APIBookingId = isset($FlightBookingData[0]['APIBookingId']) ? $FlightBookingData[0]['APIBookingId'] : '';
$B2bAgencyDetailById = $crmcustomerObj->GetAgencyDetailById($B2BAgencySysId);
$B2BSearch = array(
'B2BAgencySysIdKey' => isset($B2bAgencyDetailById['SecurityKey']) ? $B2bAgencyDetailById['SecurityKey'] : '',
'B2CAgencySysIdKey' => $agencyDetails['SecurityKey'],
'MasterAgencySysId' => $agencyDetails['AgencySysId'],
);
if ($ICSourceSysId == 11 || $ICSourceSysId == 13 || $ICSourceSysId == 14) {
$request = array(
'Auth_Header' => array(
"IP_Address" => $_SERVER['REMOTE_ADDR'],
"Request_Id" => $Booking_RefNo,
"IMEI_Number" => "3434334343111"
),
'Booking_RefNo' => $Booking_RefNo,
'Airline_PNR' => '',
);
$DataS = array(
'apidata' => $request,
'memberCount' => 0,
'JourneyType' => 0,
'interNationalSearch' => false,
'searchID' => $Booking_RefNo,
'B2B' => $B2BSearch,
'ICSourceSysId' => $ICSourceSysId,
);
$url = GTX_API_URL . '/flight/v3/reprint';
$getData['SecurityKey'] = $agencyDetails['SecurityKey'];
$getData['ICSourceSysId'] = $ICSourceSysId;
$response = apiHttpRequest($DataS, $getData, $url);
$AirPNRDetails = isset($response['results']['AirPNRDetails']) ? $response['results']['AirPNRDetails'] : [];
$bookingId = isset($response['results']['Booking_RefNo']) ? $response['results']['Booking_RefNo'] : '';
$BookStatus = isset($response['results']['Response_Header']['Status_Id']) ? $response['results']['Response_Header']['Status_Id'] : 0;
$ticketNumberDetails = [];
$pnrDetails = [];
$segmentArray = [];
if ($AirPNRDetails) {
foreach ($AirPNRDetails as $k => $val) {
$Airline_PNR = $val['Airline_PNR'];
if ($val['PAXTicketDetails']) {
foreach ($val['PAXTicketDetails'] as $k => $value) {
if ($value['TicketDetails']) {
foreach ($value['TicketDetails'] as $val) {
if ($val['SegemtWiseChanges']) {
foreach ($val['SegemtWiseChanges'] as $va) {
$Origin = $va['Origin'];
$Destination = $va['Destination'];
$secKey = $Origin . '-' . $Destination;
$ticketNumberDetails[$k][$secKey] = $val['Ticket_Number'];
$pnrDetails[$k][$secKey] = $Airline_PNR;
$segmentArray[$secKey] = $secKey;
}
}
}
}
}
}
}
}
$PNRArray = [];
$passanger = [];
if ($passengerData) {
foreach ($passengerData as $key => $val) {
$ticketNumber = isset($ticketNumberDetails[$key]) ? $ticketNumberDetails[$key] : [];
$pnrDetails_ = isset($pnrDetails[$key]) ? $pnrDetails[$key] : [];
$PNR_Number = array_values($pnrDetails_);
$TicketNumber_ = array_values($ticketNumber);
$PNRArray[$key]['PNR_Number'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketId'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketNumber'] = implode('-', $TicketNumber_);
$PNRArray[$key]['sectors'] = implode('@@', $segmentArray);
$passanger[] = array(
'pnrDetails' => $pnrDetails_,
'ticketNumberDetails' => $ticketNumber,
);
}
}
if ($BookStatus == 22) {
$status = 'PENDING';
$success = true;
} elseif ($BookStatus == 33) {
$status = 'BLOCK';
$success = true;
} elseif ($BookStatus == 11) {
$status = 'SUCCESS';
$success = true;
} else {
$status = 'FAILED';
$success = false;
}
$strTicketPNRLCC = isset($passanger[0]['pnrDetails']) ? array_values($passanger[0]['pnrDetails']) : '';
if ($FlightBookingData && $success == 1 && $status == 'SUCCESS') {
$model = new Gtxwebservices_Model_Webservices();
foreach ($FlightBookingData as $k => $value) {
$Ticket_Status_Id = isset($AirPNRDetails[$k]['Ticket_Status_Id']) ? $AirPNRDetails[$k]['Ticket_Status_Id'] : 0;
$Ticket_Status_Desc = isset($AirPNRDetails[$k]['Ticket_Status_Desc']) ? $AirPNRDetails[$k]['Ticket_Status_Desc'] : 0;
if ($Ticket_Status_Id == 4) {
$postFieldArray = array(
'MasterTPSysId' => $value['MasterTPSysId'],
'TPSysId' => $value['TPSysId'],
'VersionId' => $value['AirVersionId'],
'BookingId' => $bookingId,
'APIBookingId' => $bookingId,
'PNRNumber' => implode('-', array_unique($strTicketPNRLCC)),
'customerpnr' => ($PNRArray),
'ErrorCode' => 0,
'IsBookingStatus' => 1,
'OnwardAutoTicket' => ($status == 'PENDING') ? 0 : 1
);
$UPDATE_URL = $HTTP_HOST . '/gtxwebservices/flight-api/updatebookingpnr';
$result = getHttpRequest($postFieldArray, $UPDATE_URL);
// $result = $model->UPDATE_PNR_API($postFieldArray);
$updateResponse = json_decode($result, 1);
$strFilePath = "flight/SearchParam/" . $intTPSysId . "/UPDATEPNR/" . time() . "_update_pnr.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, ($result));
$Return = array('success' => true, 'message' => 'Update PNR successfully done', 'SearchTraceId' => $intTPSysId);
echo json_encode($Return);
exit;
} else {
$Return = array('success' => true, 'message' => 'failed to update. Current booking status is: - ' . $Ticket_Status_Desc, 'SearchTraceId' => $TPSysId);
echo json_encode($Return);
exit;
}
}
} else {
$Return = array('success' => false, 'message' => 'failed to update. Current booking status is: - ' . $status);
echo json_encode($Return);
exit;
}
} elseif ($ICSourceSysId == 17) {
$request = array(
"NextraGetItineraryRequest" => [
'txid' => $Booking_RefNo
],
);
$DataS = array(
'apidata' => $request,
'memberCount' => 0,
'JourneyType' => 0,
'interNationalSearch' => false,
'searchID' => $Booking_RefNo,
'ICSourceSysId' => $ICSourceSysId,
);
if ($IsB2BProposal) {
$DataS['B2B'] = $B2BSearch;
}
$url = GTX_API_URL . '/flight/v3/ticketing';
$getData['SecurityKey'] = $agencyDetails['SecurityKey'];
$getData['ICSourceSysId'] = $ICSourceSysId;
$response = apiHttpRequest($DataS, $getData, $url);
$bookingId = isset($response['results']['ApiStatus']['Result']['flightRecord']['txid']) ? $response['results']['ApiStatus']['Result']['flightRecord']['txid'] : '';
$BookStatus = isset($response['results']['ApiStatus']['Result']['flightRecord']['booking_status']) ? $response['results']['ApiStatus']['Result']['flightRecord']['booking_status'] : '';
$Airline_PNR = isset($response['results']['ApiStatus']['Result']['flightRecord']['airline_pnr']) ? $response['results']['ApiStatus']['Result']['flightRecord']['airline_pnr'] : '';
$gdsPnr = isset($response['results']['ApiStatus']['Result']['flightRecord']['gds_pnr']) ? $response['results']['ApiStatus']['Result']['flightRecord']['gds_pnr'] : '';
$flightTickets = isset($response['results']['ApiStatus']['Result']['flightTickets']) ? $response['results']['ApiStatus']['Result']['flightTickets'] : [];
$passengerRecords = isset($response['results']['ApiStatus']['Result']['passengerRecords']) ? $response['results']['ApiStatus']['Result']['passengerRecords'] : [];
$APIStatus = (isset($response['results']['ApiStatus']['Status']) && $response['results']['ApiStatus']['Status'] == 'OK') ? true : false;
if ($APIStatus == 1 && $BookStatus == 'confirmed') {
$status = 'SUCCESS';
$success = true;
} elseif ($APIStatus == 1 && $BookStatus == 'pending') {
$status = 'PENDING';
$success = true;
} else {
$status = 'FAILED';
$success = false;
}
foreach ($FlightBookingData as $key => $Data) {
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $sskey => $ssVal) {
$SegmentsArray[] = $ssVal;
}
}
}
$ticketNumber = [];
$pnrDetails = [];
$sectorarray = [];
if ($SegmentsArray) {
foreach ($SegmentsArray as $sskey => $ssVal) {
$originAirportCode = !empty($ssVal['originAirportCode']) ? $ssVal['originAirportCode'] : $ssVal['OriginAirportCode'];
$destinationAirportCode = !empty($ssVal['destinationAirportCode']) ? $ssVal['destinationAirportCode'] : $ssVal['DestAirportCode'];
if (isset($Airline_PNR) && !empty($Airline_PNR)) {
$pnrDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = (!empty($gdsPnr) && $gdsPnr != $Airline_PNR) ? $Airline_PNR . '-' . $gdsPnr : $Airline_PNR; //$segmentBookingDetails[$sskey]['pnr'];
$ticketNumber[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = $Airline_PNR;
} else {
$pnrDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = '';
$ticketNumber[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = '';
}
$sectorarray[] = $originAirportCode . '-' . $destinationAirportCode;
}
}
$PNRArray = [];
$passanger = [];
if ($passengerData) {
foreach ($passengerData as $key => $val) {
$APIflightTickets = isset($passengerRecords[$key]) ? $passengerRecords[$key] : [];
$ticketNumberNew = [];
if ($ticketNumber) {
foreach ($ticketNumber as $tkey => $tkval) {
$ticketNumberNew[$tkey] = !empty($APIflightTickets['paxid']) ? $APIflightTickets['paxid'] : $tkval;
}
}
$PNR_Number = array_values($pnrDetails);
$TicketNumber_ = array_values($ticketNumberNew);
$sectors = array_values(array_flip($pnrDetails));
$PNRArray[$key]['PNR_Number'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketId'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketNumber'] = implode('-', $TicketNumber_);
$PNRArray[$key]['sectors'] = implode('@@', $sectorarray);
$passanger[] = array(
'pnrDetails' => $PNR_Number,
'ticketNumberDetails' => $TicketNumber_,
);
}
}
$strTicketPNRLCC = isset($passanger[0]['pnrDetails']) ? array_values($passanger[0]['pnrDetails']) : '';
if ($FlightBookingData && $success == 1 && $status == 'SUCCESS') {
$model = new Gtxwebservices_Model_Webservices();
foreach ($FlightBookingData as $k => $value) {
$postFieldArray = array(
'MasterTPSysId' => $value['MasterTPSysId'],
'TPSysId' => $value['TPSysId'],
'VersionId' => $value['AirVersionId'],
'BookingId' => $Booking_RefNo,
'APIBookingId' => $bookingId,
'PNRNumber' => implode('-', array_unique($strTicketPNRLCC)),
'customerpnr' => ($PNRArray),
'ErrorCode' => 0,
'IsBookingStatus' => 1,
'OnwardAutoTicket' => ($status == 'PENDING') ? 0 : 1
);
// echo "<pre>";print_r($postFieldArray);
$UPDATE_URL = $HTTP_HOST . '/gtxwebservices/flight-api/updatebookingpnr';
$result = getHttpRequest($postFieldArray, $UPDATE_URL);
// $result = $model->UPDATE_PNR_API($postFieldArray);
$updateResponse = json_decode($result, 1);
$strFilePath = "flight/SearchParam/" . $intTPSysId . "/UPDATEPNR/" . time() . "_update_pnr.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, ($result));
}
$PostData = ['TPSysId' => $intTPSysId, 'version' => null];
$URL = $HTTP_HOST . "/gtxwebservices/flight-api/bookingdetails/";
$apiResponse = apiHttpRequest($PostData, $getData, $URL);
$FlightBookingData = $bookingDataByAPI = isset($apiResponse['FlightBookingData']) ? $apiResponse['FlightBookingData'] : [];
$passengerData = $arrtravellerList = isset($apiResponse['customer']) ? $apiResponse['customer'] : [];
$IsInternational = $bookingDataByAPI[0]['IsInternational'];
if ($IsInternational == 1) {
$ItemSourceType = 2;
} else {
$ItemSourceType = 1;
}
// $getSupportContact = getSupportContact(1, 1, $ItemSourceType, '', $agencyDetails['SecurityKey']);
// $TripType = $bookingDataByAPI[0]['TripType'];
// $SourceAirportCode = $bookingDataByAPI[0]['SourceAirportCode'];
// $DestAirportCode = $bookingDataByAPI[0]['DestAirportCode'];
// $AgencySysId = $bookingDataByAPI[0]['AgencySysId'];
// $AgentSysId = $bookingDataByAPI[0]['AgentSysId'];
// $intLoggedinUserEmailId = $bookingDataByAPI[0]['PrimaryEmail'];
// $navarrow = ($TripType == 1) ? "→" : "⇄";
// $emailId = isset($apiResponse['CustomerDetails']['EmailId']) ? $apiResponse['CustomerDetails']['EmailId'] : '';
// $html = new Zend_View();
// $html->setScriptPath(APPLICATION_PATH . '/views/scripts/booking-flight/');
// $crmcustomerObj = new Travel_Model_CRM_Customer();
// $html->assign('type', 'mailToCustomer');
// $html->assign('bookingDataByAPI', $bookingDataByAPI);
// $html->assign('arrtravellerList', $arrtravellerList);
// $html->assign('CustomerDetails', $apiResponse['CustomerDetails']);
// $html->assign('getSupportContact', $getSupportContact);
// $html->assign('intTPSysId', base64_encode($intTPSysId));
// $html->assign('version', $versionId);
// $html->assign('withprice', 1);
// $bodyText = $html->render('e-ticket-mail.phtml');
// $subject = "Flight Booking Itinerary From " . trim($SourceAirportCode) . " " . $navarrow . " " . trim($DestAirportCode);
// $customerEmailId = $emailId;
// $emailData = array(
// 'fromEmail' => trim($intLoggedinUserEmailId), 'fromName' => trim($bookingDataByAPI[0]['MasterDisplayName']),
// 'subject' => $subject,
// 'to' => array($customerEmailId, $intLoggedinUserEmailId),
// 'bodyHtml' => $bodyText, 'bodyText' => ''
// );
// $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
// $arrEmailStatistics = array(
// "TPSysId" => $intTPSysId,
// "TypeSysId" => 1, // 1 For Email 2 For SMS
// "AgencySysId" => $AgencySysId,
// "AgentSysId" => $AgentSysId,
// "Title" => $subject,
// "Source" => $arrEmailStatisticsType[1], // 1 For Vouchers Emailing
// "Status" => 0,
// "RefSysId" => "",
// "RefSysStatus" => "",
// "CreateDate" => Zend_Date::now()->toString('yyyy-MM-dd HH:mm:ss')
// );
// $sent = mailSentByElastice($emailData, $arrEmailStatistics);
$Return = array('success' => true, 'message' => 'Update PNR successfully done', 'SearchTraceId' => $intTPSysId);
echo json_encode($Return);
exit;
} else {
$Return = array('success' => false, 'message' => 'failed to update. Current booking status is: - ' . $status);
echo json_encode($Return);
exit;
}
} elseif ($ICSourceSysId == 7) {
$request = array(
'bookingId' => $APIBookingId, ///str_replace('DMC','TJ',$Booking_RefNo),
'status' => array(
'success' => true,
'httpStatus' => 200
),
);
$DataS = array(
'apidata' => $request,
'memberCount' => 0,
'JourneyType' => 0,
'interNationalSearch' => false,
'searchID' => $Booking_RefNo,
'ICSourceSysId' => $ICSourceSysId,
);
if ($IsB2BProposal) {
$DataS['B2B'] = $B2BSearch;
}
$url = GTX_API_URL . '/flight/v3/reprint';
$getData['SecurityKey'] = $agencyDetails['SecurityKey'];
$getData['ICSourceSysId'] = $ICSourceSysId;
$APIresponse = apiHttpRequest($DataS, $getData, $url);
$response = isset($APIresponse['results']) ? $APIresponse['results'] : [];
$OrderStatus = isset($response['order']['status']) ? $response['order']['status'] : '';
$ResponseStatus = isset($response['status']['success']) ? $response['status']['success'] : '0';
$strTicketPNRLCC = isset($response['itemInfos']['AIR']['travellerInfos'][0]['pnrDetails']) ? $response['itemInfos']['AIR']['travellerInfos'][0]['pnrDetails'] : '';
$Passenger = isset($response['itemInfos']['AIR']['travellerInfos']) ? $response['itemInfos']['AIR']['travellerInfos'] : '';
$LastTicketDate = !empty($response['itemInfos']['AIR']['timeLimit']) ? $response['itemInfos']['AIR']['timeLimit'] : '';
$strBookingIdLCC = isset($response['order']['bookingId']) ? $response['order']['bookingId'] : '0';
// echo "<pre>";
// print_r($response);
// die;
if ($ResponseStatus == 1 && $FlightBookingData && $OrderStatus != 'ABORTED' && $OrderStatus != 'PENDING') {
foreach ($FlightBookingData as $k => $value) {
$APIBookingRes = isset($value['APIBookingRes']) ? json_decode($value['APIBookingRes'], true) : [];
$JSONvalue = $APIBookingRes['value'];
$segmentArray = [];
if ($JSONvalue['Segments']) {
foreach ($JSONvalue['Segments'] as $seg) {
$originAirportCode = $seg['originAirportCode'];
$destinationAirportCode = $seg['destinationAirportCode'];
$segmentArray[] = $originAirportCode . '-' . $destinationAirportCode;
}
}
$JSONvalue['OnwardAutoTicket'] = 1;
$responseArray = array(
'value' => $JSONvalue,
'response' => $response
);
$PNRArray = [];
if ($Passenger) {
foreach ($Passenger as $pk => $pax) {
$pnrDetails = isset($pax['pnrDetails']) ? $pax['pnrDetails'] : [];
$ticketNumberDetails = isset($pax['ticketNumberDetails']) ? $pax['ticketNumberDetails'] : [];
$TicketNumber = [];
$TicketId = [];
foreach ($segmentArray as $sgvl) {
$TicketNumber[] = isset($pnrDetails[$sgvl]) ? $pnrDetails[$sgvl] : '';
$TicketId[] = isset($ticketNumberDetails[$sgvl]) ? $ticketNumberDetails[$sgvl] : '';
}
$PNRArray[$pk]['PNR_Number'] = implode('-', $pnrDetails);
$PNRArray[$pk]['TicketId'] = implode('-', $TicketNumber);
$PNRArray[$pk]['TicketNumber'] = implode('-', $TicketId);
$PNRArray[$pk]['sectors'] = implode('@@', $segmentArray);
}
}
$postFieldArray = array(
'MasterTPSysId' => $value['MasterTPSysId'],
'TPSysId' => $value['TPSysId'],
'VersionId' => $value['AirVersionId'],
'BookingId' => $Booking_RefNo,
'APIBookingId' => $strBookingIdLCC,
'PNRNumber' => implode('-', array_unique($strTicketPNRLCC)),
'customerpnr' => ($PNRArray),
'ErrorCode' => 0,
'IsBookingStatus' => 1,
'flexiPayment' => $flexiPayment,
'APIBookingRes' => $responseArray,
'OnwardAutoTicket' => ($OrderStatus == 'PENDING') ? 0 : 1
);
$UPDATE_URL = $HTTP_HOST . '/gtxwebservices/flight-api/updatebookingpnr';
$result = getHttpRequest($postFieldArray, $UPDATE_URL);
$updateResponse = json_decode($result, 1);
$strFilePath = "flight/SearchParam/" . $intTPSysId . "/UPDATEPNR/" . time() . "_update_pnr.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, ($result));
// echo "<pre>";print_r($PNRArray);die;
}
$PostData = ['TPSysId' => $intTPSysId, 'version' => null];
$URL = $HTTP_HOST . "/gtxwebservices/flight-api/bookingdetails/";
$apiResponse = apiHttpRequest($PostData, $getData, $URL);
$FlightBookingData = $bookingDataByAPI = isset($apiResponse['FlightBookingData']) ? $apiResponse['FlightBookingData'] : [];
$passengerData = $arrtravellerList = isset($apiResponse['customer']) ? $apiResponse['customer'] : [];
$IsInternational = $bookingDataByAPI[0]['IsInternational'];
if ($IsInternational == 1) {
$ItemSourceType = 2;
} else {
$ItemSourceType = 1;
}
// $getSupportContact = getSupportContact(1, 1, $ItemSourceType, '', $agencyDetails['SecurityKey']);
// $TripType = $bookingDataByAPI[0]['TripType'];
// $SourceAirportCode = $bookingDataByAPI[0]['SourceAirportCode'];
// $DestAirportCode = $bookingDataByAPI[0]['DestAirportCode'];
// $AgencySysId = $bookingDataByAPI[0]['AgencySysId'];
// $AgentSysId = $bookingDataByAPI[0]['AgentSysId'];
// $intLoggedinUserEmailId = $bookingDataByAPI[0]['PrimaryEmail'];
// $navarrow = ($TripType == 1) ? "→" : "⇄";
// $emailId = isset($apiResponse['CustomerDetails']['EmailId']) ? $apiResponse['CustomerDetails']['EmailId'] : '';
// $html = new Zend_View();
// $html->setScriptPath(APPLICATION_PATH . '/views/scripts/booking-flight/');
// $crmcustomerObj = new Travel_Model_CRM_Customer();
// $html->assign('type', 'mailToCustomer');
// $html->assign('bookingDataByAPI', $bookingDataByAPI);
// $html->assign('arrtravellerList', $arrtravellerList);
// $html->assign('CustomerDetails', $apiResponse['CustomerDetails']);
// $html->assign('getSupportContact', $getSupportContact);
// $html->assign('intTPSysId', base64_encode($intTPSysId));
// $html->assign('version', $value['AirVersionId']);
// $html->assign('withprice', 1);
// $bodyText = $html->render('e-ticket-mail.phtml');
// $subject = "Flight Booking Itinerary From " . trim($SourceAirportCode) . " " . $navarrow . " " . trim($DestAirportCode);
// $customerEmailId = $emailId;
// $emailData = array(
// 'fromEmail' => trim($intLoggedinUserEmailId), 'fromName' => trim($bookingDataByAPI[0]['MasterDisplayName']),
// 'subject' => $subject,
// 'to' => array($customerEmailId, $intLoggedinUserEmailId),
// 'bodyHtml' => $bodyText, 'bodyText' => ''
// );
// $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
// $arrEmailStatistics = array(
// "TPSysId" => $intTPSysId,
// "TypeSysId" => 1, // 1 For Email 2 For SMS
// "AgencySysId" => $AgencySysId,
// "AgentSysId" => $AgentSysId,
// "Title" => $subject,
// "Source" => $arrEmailStatisticsType[1], // 1 For Vouchers Emailing
// "Status" => 0,
// "RefSysId" => "",
// "RefSysStatus" => "",
// "CreateDate" => Zend_Date::now()->toString('yyyy-MM-dd HH:mm:ss')
// );
// $sent = mailSentByElastice($emailData, $arrEmailStatistics);
// echo "<pre>";
// print_r($sent);
$Return = array('success' => true, 'message' => 'Update PNR successfully done', 'SearchTraceId' => $intTPSysId);
echo json_encode($Return);
exit;
} else {
$Return = array('success' => false, 'message' => 'failed to update. Current booking status is: - ' . $OrderStatus);
echo json_encode($Return);
exit;
}
// echo "<pre>";print_r($Passenger);
// echo "<pre>";print_r($response);
// die;
}
}
}
function getHttpRequest($data, $url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$output = curl_exec($ch);
//echo '<pre>';print_r($output);die;
curl_close($ch);
return $output;
}
function apiHttpRequest($Request, $arrData, $url)
{
$SecurityKey = $arrData['SecurityKey'];
$ICSourceSysId = isset($arrData['ICSourceSysId']) ? $arrData['ICSourceSysId'] : 0;
if ($arrData) {
$data_stringh = json_encode($Request);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'SecurityKey: ' . $SecurityKey,
'Content-Length: ' . strlen($data_stringh)
));
$outputH = curl_exec($ch);
$response = json_decode($outputH, true);
// echo "<pre>";
// print_r($outputH);
// die();
return $response;
} else {
return $response = [];
}
exit;
}
function getSupportContact($PlanType, $MarketType, $ItemSourceType = null, $B2BAgencySysIdKey = NULL, $B2CAgencySysIdKey = NULL)
{
if ($PlanType && $MarketType) {
$objAgency = new Travel_Model_TblAgency();
$getSupportContact = $objAgency->getSupportContactForB2b($B2BAgencySysIdKey, $B2CAgencySysIdKey);
$result = array();
$SupportNumber = $getSupportContact;
foreach ($SupportNumber as $key => $val) {
if ($val['PlanType'] == $PlanType && $val['MarketType'] == $MarketType) {
if (!empty($ItemSourceType)) {
if ($val['ItemSourceType'] == $ItemSourceType) {
$result = $val;
}
} else {
$result = $val;
}
}
}
return $result;
} else {
return 'Bad request';
}
}
function mailSentByElastice($emailData, $arrEmailStatistics = array(), $type = 0, $customerSysId = 0, $ccEmial = array(), $toEmail = array())
{
$url = 'https://api.elasticemail.com/v2/email/send';
$to = implode(";", $emailData['to']);
$ccEmialFinal = '';
if (!empty($ccEmial)) {
$ccEmialFinal = implode(";", $ccEmial);
}
$toEmialFinal = '';
if (!empty($toEmail)) {
$toEmialFinal = implode(";", $toEmail);
} else {
$toEmialFinal = $to;
}
try {
$emailSenderKey = "";
$agencySysId = $arrEmailStatistics['AgencySysId'];
$model = new Gtxwebservices_Model_Webservices();
$EmailKeyResult = $model->getAgencyEmailKey($agencySysId);
$apiKey = isset($EmailKeyResult['EmailKey']) ? trim($EmailKeyResult['EmailKey']) : '';
if (isset($apiKey) && $apiKey != "") {
$emailSenderKey = $apiKey;
} else {
$emailSenderKey = 'CA4ED92049CFD42ADD6ABE771C0F30ECED774CA4A50D20CD1FFBD22EE33417B0ACB8BD2AA5A967BA5C87477C6529729C';
}
//echo $emailSenderKey; exit;
$post = array(
'from' => $emailData['fromEmail'],
'fromName' => $emailData['fromName'],
'apikey' => $emailSenderKey,
'subject' => $emailData['subject'],
'to' => $to,
'msgTo' => $toEmialFinal,
'msgCC' => $ccEmialFinal,
'bodyHtml' => $emailData['bodyHtml'],
'bodyText' => $emailData['bodyText'],
'isTransactional' => true
);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $post,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_SSL_VERIFYPEER => false
));
$result = curl_exec($ch);
curl_close($ch);
if (count($arrEmailStatistics) > 0) {
$mailResponse = json_decode($result, 1);
$arrEmailStatistics['Title'] = $emailData['subject'];
if ($mailResponse['success']) {
$arrEmailStatistics['Status'] = $mailResponse['success'];
$arrEmailStatistics['RefSysId'] = isset($mailResponse['data']['transactionid']) ? $mailResponse['data']['transactionid'] : '';
}
$arrEmailStatistics['CustomerSysId'] = $customerSysId;
$arrEmailStatistics['UserType'] = $type;
$objAgency = new Travel_Model_TblAgency();
$objAgency->insertData("TB_Agency_Sent_Sms_Email", $arrEmailStatistics);
}
// print_r($result);die('dddddd');
} catch (Exception $ex) {
$result = $ex->getMessage();
}
return $result;
}