403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/b2bzend/cronjob/FlightupdatePNR.php
<?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;
}

Youez - 2016 - github.com/yon3zu
LinuXploit