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/application/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/b2bzend/application/controllers/FlightProposalController.php
<?php

/* * ***************
 * Zend Framework
 * @category   Zend
 * @package    Zend_Controller_Action
 * @copyright  Copyright (c) 2008-2014 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: DbTable.php 8862 2012-03-16 15:36:00Z thomas $
 * @author     Pardeep Panchal(pardeep.kp86@gmail.com).
 * Deals with the flight booking comes through CRM emails to customer
 *
 * Create Date 17-10-2016
 * Update Date 17-10-2016
 * *** */

class FlightProposalController extends Catabatic_ValidateCustomer
{

    public $AgencySysId = '';
    public $AgentSysId = '';
    public $baseUrl = '';

    public function init()
    {
        error_reporting(1);
        $this->_helper->layout->setLayout('layout-flight-proposal');

        $request = Zend_Controller_Front::getInstance()->getRequest();
        $this->baseUrl = $request->getScheme() . '://' . $request->getHttpHost();

        ############## For HTML Purifer ####################
        $this->_HtmlPurifier = new Zend_Filter_HtmlPurifier();
        $this->SMSURL = Catabatic_Helper::getSMSURL();
        $this->SMSMETHOD = Catabatic_Helper::getSMSMETHOD();
        $this->SMSAPIKEY = Catabatic_Helper::getSMSAPIKEY();
        $this->SMSSENDER = Catabatic_Helper::getSMSSENDER();
        $this->SMSFORMAT = Catabatic_Helper::getSMSFORMAT();
        $this->BITLYLOGIN = 'gpurwar';
        $this->BITLYAPIKEY = 'R_c1c94b5c789249d5a59d585bc0e7ef80';
        $this->CurrencyRate = 1;
        $this->CurrencyTitle = 'INR';
        $this->CurrencyId = 1;
        $this->_objFlight = new Travel_Model_TblFlight();
    }

    public function checkFlightPaymentAction()
    {
        session_start();
        $objFlight = new Travel_Model_TblFlight();
        $this->_storage = new Zend_Session_Namespace('AgencyUser');
        $strUrlData = $this->view->strUrlData = $this->getRequest()->getParam('data');
        $FlightTempData = $objFlight->GetFlightTempData($strUrlData);
        $arrUrlData = json_decode($FlightTempData['APIBookingData'], true);
        $AgencySysId = $arrUrlData['sessionLogin_user']['intLoggedinUserAgencySysId'];

        $row = $objFlight->getAgencyDataById($AgencySysId);
        $this->_storage->user = (object) $row;
        $_SESSION['sessionLogin_user'] = $arrUrlData['sessionLogin_user'];
        echo "<pre>";
        print_r($row);
        die;
        // print_r($arrUrlData['sessionLogin_user']);
        // die;

        if ($arrUrlData['sessionLogin_user']) {
            $this->_redirect('/flight/book-flight/data/' . $strUrlData);
        } else {
            die('Invalid link');
        }
    }
    public function viewFlightProposalCheckAction()
    {
        $objFlight = new Travel_Model_TblFlight();
        $TPSysId = base64_decode($this->_request->getParam('id'));
        $isagency = ($this->_request->getParam('isagency'));
        Zend_Session::namespaceUnset('isagencySession');
        $isagencySession = new Zend_Session_Namespace('isagencySession');
        $isagencySession->params = $isagency;

        $traceIDData = $objFlight->GetFlightTempDataByTPSysId($TPSysId);
        // print_r($isagency);
        // print_r($traceIDData);
        // die;
        if ($traceIDData) {
            if($isagency == 1){
                //$this->_redirect('/flight-proposal/view-flight-proposal-new/id/' . $traceIDData['TraceId']);
                $this->_redirect('/flight/search-result-new/SearchID/' . $traceIDData['TraceId']);
            }else{
                $this->_redirect('/flight-proposal/view-flight-proposal-new/id/' . $traceIDData['TraceId']);
            }
            
        } else {
            die('Invalid link');
        }
    }

    public function viewFlightProposalNewAction()
    {
        $objFlight = new Travel_Model_TblFlight();
        $getData = $this->getRequest()->getParams();
        $isCustomer = isset($getData['cust']) ? $getData['cust'] : 0;

        $isagencySession = new Zend_Session_Namespace('isagencySession');
        $isagency = $this->view->isagencySession = isset($isagencySession->params) ? $isagencySession->params : 0;

        $traceID  = $this->view->traceID = ($this->_request->getParam('id'));
        if ($isCustomer == 1) {
            Zend_Session::namespaceUnset('isagencySession');
            $this->_redirect('/flight-proposal/view-flight-proposal-new/id/' . $traceID);
        }
        $FlightTempData = $objFlight->GetFlightTempData($traceID);
        $arrUrlData = json_decode($FlightTempData['APIBookingData'], true);
        //echo "<pre>";print_r($FlightTempData);exit;

        $FlightBookingData = $this->view->FlightBookingData = ($arrUrlData['postData']['item']);
        $addMarkupArr = $arrUrlData['postData']['addMarkup'];
        $DiscountValueArr = $arrUrlData['postData']['discountvalue'];
        $mobilenumber = $arrUrlData['postData']['mobilenumber'];
        $countrycode = $arrUrlData['postData']['countrycode'];
        $emailId = $arrUrlData['postData']['emailId'];
        $leadId = $arrUrlData['postData']['leadId']?$arrUrlData['postData']['leadId']:$FlightTempData['TPSysId'];
        $customername = $arrUrlData['postData']['customername'];
        $senderEmailID = $arrUrlData['postData']['senderEmailID'];
        $remarks = $arrUrlData['postData']['remarks'];
        $ccemail = $arrUrlData['postData']['ccemail'];
        $CustomerSysId = $arrUrlData['postData']['CustomerSysId'];
        $IsB2BAgent = $arrUrlData['postData']['IsB2BAgent'];
        $aId = $arrUrlData['postData']['aId'];

        $TPSysId = $this->view->TPSysId = isset($FlightTempData['TPSysId']) ? $FlightTempData['TPSysId'] : 0;
        $bookingAllowed = $this->view->bookingAllowed = isset($arrUrlData['postData']['bookingAllowed']) ? $arrUrlData['postData']['bookingAllowed'] : 0;
        $sessionFlightSearchParams = $this->view->sessionFlightSearchParams = $arrUrlData['sessionFlightSearchParams'];

        //$TraceId = implode('-', str_split(substr(strtolower(md5(time() . rand(1000, 9999))), 0, 20), 5)); arrAgencyDetails
        $sessionFlightSearchParams['SearchTraceId'] = $traceID;
        $this->view->interNationalSearch  = $interNationalSearch = $sessionFlightSearchParams['interNationalSearch'];
        $this->view->route  = $route = $sessionFlightSearchParams['route'];
        $departureDates     = $sessionFlightSearchParams['departure_dates'];
        $arrDepartureDates  = explode("/", $departureDates);
        $this->view->departureDates       = $arrDepartureDates[2] . "/" . $arrDepartureDates[1] . "/" . ($arrDepartureDates[0]);
        $returnDates     = $sessionFlightSearchParams['return_dates'];
        $arrreturnDates  = explode("/", $returnDates);
        $this->view->returnDates       = $arrreturnDates[2] . "/" . $arrreturnDates[1] . "/" . ($arrreturnDates[0]);
        $this->view->baseUrl = $this->baseUrl;
        $this->view->IntMarkupArr = json_encode($addMarkupArr);
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId, 'query');
        $AgencySysId = $arrAgencyDetails['AgencySysId'];
        $AgentSysId = $arrAgencyDetails['AgentSysId'];
        $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
        // echo "<pre>";print_r($leadId);
        // echo "<pre>";print_r($arrAgencyDetails);
        // echo "<pre>";print_r($arrUrlData);
        // die;
        $crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
        $arrAgentDetail = $this->view->arrAgentDetail = $crmcusttravelplan->getAgentDetails($AgentSysId);

        $this->view->IsCheckWallet  = $IsCheckWallet = isset($getAgencyDetail['IsCheckWallet']) ? $getAgencyDetail['IsCheckWallet'] : 0;

        $arrRoomInfoJson = json_decode($arrAgencyDetails['RoomInfoJson'], true);
        if ($this->getRequest()->isXmlHttpRequest()) {
            $outbound = [];
            $inbound = [];

            $index = 0;
            $ExtraMarkupShare = [];
            $ddddddddInb = [];
            $dddddddd = [];
            $AirlineCode = [];
            $fareIdentifierInb = [];
            $fareIdentifier = [];
            $FlightNumberInb = [];
            $FlightNumber = [];
            $FlightNumberOut = [];
            $FromUTCTimeInb = [];
            $ToUTCTimeInb = [];
            $FromUTCTimeOut = [];
            $ToUTCTimeInbOut = [];
            $classOfBookingInb = [];
            $classOfBookingOut = [];
            $TotalMarkupWithTaxArr = [];
            $strMarkupArrInb = [];
            $strDiscountValueInb = [];
            $strMarkupArrOut = [];
            $strDiscountValueOut = [];
            $FareClassOut = [];
            $FareClassInb = [];

            $FilterKey_ = [];
            $FareKey_ = [];
            $IsSeriesFareData = isset($FlightBookingData[0]['IsSeriesFareData']) ? $FlightBookingData[0]['IsSeriesFareData'] : 0;
            $ICSourceSysId = isset($FlightBookingData[0]['ICSourceSysId']) ? $FlightBookingData[0]['ICSourceSysId'] : 0;
            //echo count($FlightBookingData);
           
            if ($IsSeriesFareData == 0) {
                if ($FlightBookingData) {
                    foreach ($FlightBookingData as $val) {
                        $addMarkup = $addMarkupArr[$index];
                        $discount = isset($DiscountValueArr[$index]) ? $DiscountValueArr[$index] : 0;
                        $arrServiceTaxOnNetPayable = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getApiServiceTax(($addMarkup - $discount), "F", 0);
                        $MarkupArrayServiceTax = (!empty($arrServiceTaxOnNetPayable['serviceTaxAmount']) && $arrServiceTaxOnNetPayable['serviceTaxAmount'] > 0) ? $arrServiceTaxOnNetPayable['serviceTaxAmount'] : 0;
                        $TotalMarkupWithTax = $addMarkup + $MarkupArrayServiceTax;
                        $TotalMarkupWithTaxArr[] = $TotalMarkupWithTax;
                        $FairRulesarrInb = [];
                        $FairRulesarr = [];
                        if ($interNationalSearch == '1' && $route == '2') {
                            if ($val['FairRules']) {
                                foreach ($val['FairRules'] as $kk => $Fare) {
                                    $FairRulesarr[$kk] = $Fare;
                                    $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                    if ($bookingAllowed == 2) {
                                        $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                    }
                                    $FairRulesarr[$kk]['ExtraMarkup'] = ($addMarkup);
                                    $FairRulesarr[$kk]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax);
                                    $FairRulesarr[$kk]['DiscountValue'] = ($discount);
                                    $FairRulesarr[$kk]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                    $fareIdentifier[] = $Fare['fareIdentifier'];
                                    $classOfBookingOut[] = $Fare['classOfBooking'];
                                    $dddddddd[] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                }
                            }
                            $outbound[$index] = $val;
                            if ($bookingAllowed == 2) {
                                $outbound[$index]['ICSourceSysId'] = 9;
                            }
                            $outbound[$index]['FairRules'] = $FairRulesarr;
                           
                            $FlightNumber[] = $val['origin']['FlightNumber'];
                            $FlightNumberOut[] = $val['destination']['FlightNumber'];
                            $FareClassOut[] = $val['origin']['FareClass'];
                            $FareClassInb[] = $val['destination']['FareClass'];

                            $FromUTCTimeOut[] = $val['origin']['FromUTCTime'];
                            $ToUTCTimeInbOut[] = $val['origin']['ToUTCTime'];

                            $FromUTCTimeInb[] = $val['destination']['FromUTCTime'];
                            $ToUTCTimeInb[] = $val['destination']['ToUTCTime'];

                            $strMarkupArrOut[] = $val['ExtraMarkup'];
                            $strDiscountValueOut[] = $val['DiscountValue'];
                            $AirlineCode[$index] = $val['origin']['AirlineCode'];
                            $AirlineCode[$index] = $val['destination']['AirlineCode'];
                        } else {
                            
                            if ($val['JourneyType'] == 2) {
                                if ($val['FairRules']) {
                                    foreach ($val['FairRules'] as $kk => $Fare) {
                                        $FairRulesarrInb[$kk] = $Fare;
                                        $FairRulesarrInb[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                        if ($bookingAllowed == 2) {
                                            $FairRulesarrInb[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                        }
                                        $FairRulesarrInb[$kk]['ExtraMarkup'] = ($addMarkup);
                                        $FairRulesarrInb[$kk]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax);
                                        $FairRulesarrInb[$kk]['DiscountValue'] = ($discount);
                                        $FairRulesarrInb[$kk]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                        $fareIdentifierInb[] = $Fare['fareIdentifier'];
                                        $classOfBookingInb[] = $Fare['classOfBooking'];
                                        $ddddddddInb[] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                        if ($route == '3') {
                                            $fareIdentifier[$val['JourneyType']][] = $Fare['fareIdentifier'];
                                            $classOfBookingOut[$val['JourneyType']][] = $Fare['classOfBooking'];
                                            $FareKey_[$val['JourneyType']][] = $Fare['FareKey'];
                                        }
                                    }
                                }
                                
                                
                                if ($bookingAllowed == 2) {
                                    $inbound[$index]['ICSourceSysId'] = 9;
                                }
                                $MulticityKey = $val['SourceAirportCode'].'_'.$val['DestAirportCode'];
                                if ($route == '3') {
                                    if ($interNationalSearch == '1') {
                                        $inbound[$index] = $val;
                                        $inbound[$index]['FairRules'] = $FairRulesarrInb;
                                        $FilterKey_[$val['JourneyType']][] = $val['FilterKey'];
                                    }else{
                                        $inbound[$MulticityKey][$index] = $val;
                                        $inbound[$MulticityKey][$index]['FairRules'] = $FairRulesarrInb;
                                        $FareClassOut[$val['JourneyType']][] = $val['FareClass'];
                                        $FlightNumber[$val['JourneyType']][] = $val['FlightNumber'];
                                        $FromUTCTimeOut[$val['JourneyType']][] = $val['FromUTCTime'];
                                        $ToUTCTimeInbOut[$val['JourneyType']][] = $val['ToUTCTime'];
                                    }
                                }else{
                                    $inbound[$index] = $val;
                                    $inbound[$index]['FairRules'] = $FairRulesarrInb;
                                }
                                
                               
                                $fno = explode('-', $val['FlightNumber']);
                                $FlightNumberInb[] = $val['FlightNumber'];
                                $FromUTCTimeInb[] = $val['FromUTCTime'];
                                $ToUTCTimeInb[] = $val['ToUTCTime'];
                                $FareClassInb[] = $val['FareClass'];
                                //$strMarkupArrInb[] = $addMarkup;
                                $strMarkupArrInb[] = $val['ExtraMarkup'];
                                $strDiscountValueInb[] = $val['DiscountValue'];
                                
                            } else {
                                if ($val['FairRules']) {
                                    foreach ($val['FairRules'] as $kk => $Fare) {
                                        $FairRulesarr[$kk] = $Fare;
                                        $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                        if ($bookingAllowed == 2) {
                                            $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                        }
                                        $FairRulesarr[$kk]['ExtraMarkup'] = ($addMarkup);
                                        $FairRulesarr[$kk]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax);
                                        $FairRulesarr[$kk]['DiscountValue'] = ($discount);
                                        $FairRulesarr[$kk]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                        $fareIdentifier[] = $Fare['fareIdentifier'];
                                        $classOfBookingOut[] = $Fare['classOfBooking'];
                                        $dddddddd[] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                    }
                                }
                                $outbound[$index] = $val;
                                if ($bookingAllowed == 2) {
                                    $outbound[$index]['ICSourceSysId'] = 9;
                                }
                                $outbound[$index]['FairRules'] = $FairRulesarr;
                                $fno = explode('-', $val['FlightNumber']);

                                $FlightNumber[] = $fno[1];
                                $FlightNumberOut[] = $val['FlightNumber'];
                                $FareClassOut[] = $val['FareClass'];

                                $FromUTCTimeOut[] = $val['FromUTCTime'];
                                $ToUTCTimeInbOut[] = $val['ToUTCTime'];
                                $strMarkupArrOut[] = $val['ExtraMarkup'];
                                $strDiscountValueOut[] = $val['DiscountValue'];
                            }
                            $ExtraMarkupShare[$val['JourneyType']][] = ['addMarkup'=>$addMarkup,'addMarkupTax'=>$MarkupArrayServiceTax,'discount'=>$discount];
                            $AirlineCode[] = $val['AirlineCode'];
                        }
                        $index++;
                    }
                }

                $share_proposal_data = [
                    'FilterKey'=>$FilterKey_,
                    'FareKey'=>$FareKey_,
                    'fareIdentifier'=>$fareIdentifier,
                    'classOfBooking'=>$classOfBookingOut,
                    'ExtraMarkupShare'=>$ExtraMarkupShare,
                    'FareClassArr'=>$FareClassOut,
                    'FlightNumber'=>$FlightNumber,
                    'FromUTCTime'=>$FromUTCTimeOut,
                    'ToUTCTime'=>$ToUTCTimeInbOut,
                ];
                // echo '<pre>';
                // print_r($share_proposal_data);die;
                $MultiHead = [];
                if ($sessionFlightSearchParams['sourceCityText'] && $route == '3') {
                    foreach ($sessionFlightSearchParams['sourceCityText'] as $sk => $source_) {
                        $destination_ = isset($sessionFlightSearchParams['destinationCityText'][$sk]) ? explode(',', $sessionFlightSearchParams['destinationCityText'][$sk]) : '';
                        $source_ = isset($source_) ? explode(',', $source_) : '';
                        $departure_date_ = isset($sessionFlightSearchParams['departure_dates'][$sk]) ? $sessionFlightSearchParams['departure_dates'][$sk] : '';
                        $sourceCityAirportCode = isset($sessionFlightSearchParams['sourceCityAirportCode'][$sk]) ? $sessionFlightSearchParams['sourceCityAirportCode'][$sk] : '';
                        $destinationCityAirportCode = isset($sessionFlightSearchParams['destinationCityAirportCode'][$sk]) ? $sessionFlightSearchParams['destinationCityAirportCode'][$sk] : '';
                        $MulticityKey = $sourceCityAirportCode.'_'.$destinationCityAirportCode;
                        $MultiHead[] = array(
                            'source' => $source_[0],
                            'destination' => $destination_[0],
                            'departure_date' => $departure_date_,
                            //'strDepatureDate' => $strDepatureDate__,
                        );
                        if($interNationalSearch != 1){
                            $outbound[$sk] = array(
                                'source' => $source_[0],
                                'destination' => $destination_[0],
                                'departure_date' => $departure_date_,
                                'FD' => isset($inbound[$MulticityKey])?array_values($inbound[$MulticityKey]):[],
                            );
                        }else{
                            $outbound = $inbound;
                        }
                        
                    }
                    $inbound = [];
                }
               
                if ($bookingAllowed == 2) {
                    // echo '<pre>';
                    // print_r($outbound);die;
                    $dddddddd = array_merge($dddddddd, $ddddddddInb);
                    sort($dddddddd);
                    $MaxriceRange = $this->getMax($dddddddd);
                    $MinriceRange = $this->getMin($dddddddd);
                    $data = array('outbound' => array_values($outbound), 'inbound' => array_values($inbound),'MultiHead'=>$MultiHead, 'FlightRoute'=>$route,'interNationalSearch'=>$interNationalSearch, 'CurrencyTitle' => $this->CurrencyTitle, 'FiltPrice' => [], 'MinriceRange' => round($MinriceRange), 'MaxriceRange' => round($MaxriceRange));
                    echo json_encode($data);
                    exit;
                }
                // echo '<pre>';
                // print_r($FlightNumberOut);
                // print_r($fareIdentifier);
                // print_r($FareClassOut);
                // print_r($ToUTCTimeInbOut);
                // print_r($FromUTCTimeOut);
                
                if ($ICSourceSysId == 3) {
                    $sessionFlightSearchParams['preferredAirline']  = array_values(array_unique($AirlineCode));
                    $apiResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->searchApiFlights($sessionFlightSearchParams, $AgencySysId);
                } else {
                    $sessionFlightSearchParams['preferredAirline']  = array_values(array_unique($AirlineCode));
                    $apiResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->searchApiFlightsTripJack($sessionFlightSearchParams, $AgencySysId);
                }
                
                
               // $FlightSearchResults = new Zend_Session_Namespace('FlightSearchResults');
              // $apiResponse = $FlightSearchResults->params;
                
                // echo '<pre>';
                // print_r($apiResponse);die;
                $SearchParam = array(
                    'sessionFlightSearchParams' => $sessionFlightSearchParams,
                    'addMarkupArr' => $addMarkupArr,
                    'AgencySysId' => $AgencySysId,
                    'FlightNumber' => $FlightNumber,
                    'apiResponse' => $apiResponse,
                    'bookingAllowed' => $bookingAllowed,
                );
               
                if ($ICSourceSysId == 3) {
                    $getflightsearch = $this->FlightDataTBO($SearchParam);
                } else {
                    $getflightsearch = $this->getflightsearch($SearchParam);
                }
                // echo '<pre>';
                // print_r($getflightsearch);die('sss');
                $SelectedFilter = [];
                $outbound = [];
                $inbound = [];
                if ($interNationalSearch == '1' && $route == '2') {
                    
                    if($getflightsearch['outbound']){
                        foreach ($getflightsearch['outbound'] as $key => $outb) {
                            foreach ($FlightNumber as $k => $flnum) {
                                $FlightNumber_ = $FlightNumberOut[$k];
                                $Identifier = $fareIdentifier[$k];
                                $classOfBooking = $classOfBookingOut[$k];
                                $addMarkup = $strMarkupArrOut[$k];
                                $discount = isset($strDiscountValueOut[$k]) ? $strDiscountValueOut[$k] : 0;
                                $ToUTCTime = $ToUTCTimeInbOut[$k];
                                $FromUTCTime = $FromUTCTimeOut[$k];
                                $ToUTCTimeInb_ = $ToUTCTimeInb[$k];
                                $FareClass = $FareClassOut[$k];
                                $arrServiceTaxOnNetPayable = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getApiServiceTax(($addMarkup - $discount), "F", 0);
                                $MarkupArrayServiceTax = (!empty($arrServiceTaxOnNetPayable['serviceTaxAmount']) && $arrServiceTaxOnNetPayable['serviceTaxAmount'] > 0) ? $arrServiceTaxOnNetPayable['serviceTaxAmount'] : 0;
    
                                $TotalMarkupWithTax = $addMarkup + $MarkupArrayServiceTax;
                                $TotalMarkupWithTaxArr[] = $TotalMarkupWithTax;
                                if ($flnum == trim($outb['origin']['FlightNumber']) && $FromUTCTime == trim($outb['origin']['FromUTCTime']) && $ToUTCTimeInb_ == $outb['destination']['ToUTCTime']) {
                                    
                                    $FairRulesarr = [];
                                    if ($outb['FairRules']) {
                                        foreach ($outb['FairRules'] as $kk => $Fare) {
                                            if (trim($Fare['fareIdentifier']) == $Identifier && trim($Fare['classOfBooking']) == $classOfBooking) {
                                                
                                                $FareBreakdown = [];
                                                $segmentCount = count($Fare['FareBreakdown']);
                                                if ($Fare['FareBreakdown']) {
                                                    foreach ($Fare['FareBreakdown'] as $sg => $seg) {
                                                        $FareBreakdown[$sg] = $seg;
                                                        $FareBreakdown[$sg]['ExtraMarkup'] = ($addMarkup / $segmentCount);
                                                        $FareBreakdown[$sg]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax / $segmentCount);
                                                        $FareBreakdown[$sg]['DiscountValue'] = ($discount / $segmentCount);
                                                        $FareBreakdown[$sg]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                                    }
                                                }
                                                $FairRulesarr[$kk] = $Fare;
                                                $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                                $FairRulesarr[$kk]['ExtraMarkup'] = ($addMarkup);
                                                $FairRulesarr[$kk]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax);
                                                $FairRulesarr[$kk]['DiscountValue'] = ($discount);
                                                $FairRulesarr[$kk]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                                $FairRulesarr[$kk]['FareBreakdown'] = ($FareBreakdown);
                                                $dddddddd[] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                                //break;
                                                $outbound[$k] = $outb;
                                            }
                                        }
                                    }
                                    $outbound[$k]['FairRules'] = array_values($FairRulesarr);
                                }
                            }
                        }
                    }
                    // echo '<pre>';
                    // print_r($outbound);
                    // die('qqq');
                    // $dddddddd = $getflightsearch['dddddddd'];
                    $MaxriceRange = $this->getMax($dddddddd);
                    $MinriceRange = $this->getMin($dddddddd);
                    $FiltPrice = [];
                    $data = array('outbound' => array_values($outbound), 'inbound' => [], 'CurrencyTitle' => $this->CurrencyTitle, 'FiltPrice' => [], 'MinriceRange' => round($MinriceRange), 'MaxriceRange' => round($MaxriceRange));
                    echo json_encode($data);
                    exit;
                }elseif($route == '3'){
                    $FilterKey__ = isset($share_proposal_data['FilterKey'][2])?$share_proposal_data['FilterKey'][2]:[];
                    $FareKey__ = isset($share_proposal_data['FareKey'][2])?$share_proposal_data['FareKey'][2]:[];
                    $FlightNumber__ = isset($share_proposal_data['FlightNumber'][2])?$share_proposal_data['FlightNumber'][2]:[];
                    $FareClass__ = isset($share_proposal_data['FareClassArr'][2])?$share_proposal_data['FareClassArr'][2]:[];
                    $FromUTCTime__ = isset($share_proposal_data['FromUTCTime'][2])?$share_proposal_data['FromUTCTime'][2]:[];
                    $ToUTCTime__ = isset($share_proposal_data['ToUTCTime'][2])?$share_proposal_data['ToUTCTime'][2]:[];
                    $classOfBooking__ = isset($share_proposal_data['classOfBooking'][2])?$share_proposal_data['classOfBooking'][2]:[];
                    $fareIdentifier__ = isset($share_proposal_data['fareIdentifier'][2])?$share_proposal_data['fareIdentifier'][2]:[];
                    $ExtraMarkupShare__ = isset($share_proposal_data['ExtraMarkupShare'][2])?$share_proposal_data['ExtraMarkupShare'][2]:[];
                    if(!empty($FlightNumber__) && $interNationalSearch != '1'){
                        foreach ($FlightNumber__ as $k => $flnum) {
                            $FareClass_ = $FareClass__[$k];
                            $ToUTCTime_ = $ToUTCTime__[$k];
                            $FromUTCTime_ = $FromUTCTime__[$k];
                            $fareIdentifier_ = $fareIdentifier__[$k];
                            $classOfBooking_ = $classOfBooking__[$k];
                            $ExtraMarkupShare_ = $ExtraMarkupShare__[$k];
                            $SelectedFilter[$k]['Flight'] = $flnum.''.$FareClass_.''.$ToUTCTime_.''.$FromUTCTime_;
                            $SelectedFilter[$k]['Fare'] = $fareIdentifier_.''.$classOfBooking_;
                            $SelectedFilter[$k]['Markup'] = $ExtraMarkupShare_;
                        }
                    }else{
                        if(!empty($FilterKey__)){
                            foreach ($FilterKey__ as $k => $flnum) {
                                $fareIdentifier_ = $fareIdentifier__[$k];
                                $classOfBooking_ = $classOfBooking__[$k];
                                $ExtraMarkupShare_ = $ExtraMarkupShare__[$k];
                                $SelectedFilter[$k]['Flight'] = $flnum;
                                $SelectedFilter[$k]['Fare'] = $fareIdentifier_.''.$classOfBooking_;
                                $SelectedFilter[$k]['Markup'] = $ExtraMarkupShare_;
                            }
                        }
                    }
                    $MultiHead = $getflightsearch['MultiHead'];
                    $outbound = $getflightsearch['outbound'];
                    $dddddddd = $getflightsearch['dddddddd'];
                    // echo '<pre>';
                    // print_r($outbound);
                    // die('bas');
                }else{
                    foreach ($getflightsearch['outbound'] as $key => $outb) {
                        foreach ($FlightNumber as $k => $flnum) {
                            $FlightNumber_ = $FlightNumberOut[$k];
                            $Identifier = $fareIdentifier[$k];
                            $classOfBooking = $classOfBookingOut[$k];
                            $addMarkup = $strMarkupArrOut[$k];
                            $discount = isset($strDiscountValueOut[$k]) ? $strDiscountValueOut[$k] : 0;
                            $ToUTCTime = $ToUTCTimeInbOut[$k];
                            $FromUTCTime = $FromUTCTimeOut[$k];
                            $FareClass = $FareClassOut[$k];
                            $arrServiceTaxOnNetPayable = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getApiServiceTax(($addMarkup - $discount), "F", 0);
                            $MarkupArrayServiceTax = (!empty($arrServiceTaxOnNetPayable['serviceTaxAmount']) && $arrServiceTaxOnNetPayable['serviceTaxAmount'] > 0) ? $arrServiceTaxOnNetPayable['serviceTaxAmount'] : 0;

                            $TotalMarkupWithTax = $addMarkup + $MarkupArrayServiceTax;
                            
                            $TotalMarkupWithTaxArr[] = $TotalMarkupWithTax;
                            if ($FlightNumber_ == trim($outb['FlightNumber']) && $FareClass == trim($outb['FareClass']) && $ToUTCTime == trim($outb['ToUTCTime']) && $FromUTCTime == trim($outb['FromUTCTime'])) {
                                // if($AgencySysId == '2656'){
                                //     echo 'AgencySysId'.$AgencySysId;
                                //     echo $FlightNumber_ . '=' . $outb['FlightNumber'] . '=' . $FareClass . '== ' . $outb['FareClass'] . '=' . $ToUTCTime . '== ' . $outb['ToUTCTime'] . '=' . $FromUTCTime . '== ' . $outb['FromUTCTime'] . '<br>######################';
                                // }
                                
                                $FairRulesarr = [];
                                if ($outb['FairRules']) {
                                    foreach ($outb['FairRules'] as $kk => $Fare) {
                                        // if($AgencySysId == '2656'){
                                        //     echo '<pre>';
                                        //     print_r($Identifier . '--------' . $Fare['fareIdentifier']);
                                        //     echo '<pre>';
                                        //     print_r($classOfBooking . '---------' . $Fare['classOfBooking']);
                                        // }
                                        if (trim(strtoupper($Fare['fareIdentifier'])) == strtoupper($Identifier) && trim($Fare['classOfBooking']) == $classOfBooking) {
                                            
                                            $FareBreakdown = [];
                                            $segmentCount = count($Fare['FareBreakdown']);
                                            if ($Fare['FareBreakdown']) {
                                                foreach ($Fare['FareBreakdown'] as $sg => $seg) {
                                                    $FareBreakdown[$sg] = $seg;
                                                    $FareBreakdown[$sg]['ExtraMarkup'] = ($addMarkup / $segmentCount);
                                                    $FareBreakdown[$sg]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax / $segmentCount);
                                                    $FareBreakdown[$sg]['DiscountValue'] = ($discount / $segmentCount);
                                                    $FareBreakdown[$sg]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                                }
                                            }
                                            $FairRulesarr[$kk] = $Fare;
                                            $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                            $FairRulesarr[$kk]['ExtraMarkup'] = ($addMarkup);
                                            $FairRulesarr[$kk]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax);
                                            $FairRulesarr[$kk]['DiscountValue'] = ($discount);
                                            $FairRulesarr[$kk]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                            $FairRulesarr[$kk]['FareBreakdown'] = ($FareBreakdown);
                                            $dddddddd[] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                            //break;
                                            $outbound[$k] = $outb;
                                        }
                                    }
                                }
                                // echo '<pre>';
                                // print_r($FairRulesarr);
                                // $outbound[$k] = $outb;
                                //if ($ICSourceSysId != 3) {
                                $outbound[$k]['FairRules'] = array_values($FairRulesarr);
                                //}
                            }
                        }
                    }
                    //die('sww');
                    if (!empty($getflightsearch['inbound'])) {
                        foreach ($getflightsearch['inbound'] as $key => $outb) {
                            foreach ($FlightNumberInb as $k => $flnum) {
                                $Identifier = $fareIdentifierInb[$k];
                                $FlightNumber_ = $FlightNumberInb[$k];
                                $classOfBooking = $classOfBookingInb[$k];
                                $FromUTCTime = $FromUTCTimeInb[$k];
                                $ToUTCTime = $ToUTCTimeInb[$k];
                                $FareClass = $FareClassInb[$k];
                                $addMarkup = $strMarkupArrInb[$k];
                                $discount = isset($strDiscountValueInb[$k]) ? $strDiscountValueInb[$k] : 0;

                                $arrServiceTaxOnNetPayable = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getApiServiceTax(($addMarkup - $discount), "F", 0);
                                $MarkupArrayServiceTax = (!empty($arrServiceTaxOnNetPayable['serviceTaxAmount']) && $arrServiceTaxOnNetPayable['serviceTaxAmount'] > 0) ? $arrServiceTaxOnNetPayable['serviceTaxAmount'] : 0;
                                $TotalMarkupWithTax = $addMarkup + $MarkupArrayServiceTax;
                                $TotalMarkupWithTaxArr[] = $TotalMarkupWithTax;
                                if ($FlightNumber_ == trim($outb['FlightNumber']) && $FareClass == trim($outb['FareClass']) && $ToUTCTime == trim($outb['ToUTCTime']) && $FromUTCTime == trim($outb['FromUTCTime'])) {
                                    $FairRulesarr = [];
                                    if ($outb['FairRules']) {
                                        foreach ($outb['FairRules'] as $kk => $Fare) {
                                            if (trim($Fare['fareIdentifier']) == $Identifier && trim($Fare['classOfBooking']) == $classOfBooking) {
                                                $FareBreakdown = [];
                                                $segmentCount = count($Fare['FareBreakdown']);
                                                if ($Fare['FareBreakdown']) {
                                                    foreach ($Fare['FareBreakdown'] as $sg => $seg) {
                                                        $FareBreakdown[$sg] = $seg;
                                                        $FareBreakdown[$sg]['ExtraMarkup'] = ($addMarkup / $segmentCount);
                                                        $FareBreakdown[$sg]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax / $segmentCount);
                                                        $FareBreakdown[$sg]['DiscountValue'] = ($discount / $segmentCount);
                                                        $FareBreakdown[$sg]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                                    }
                                                }
                                                $FairRulesarr[$kk] = $Fare;
                                                $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                                $FairRulesarr[$kk]['ExtraMarkup'] = ($addMarkup);
                                                $FairRulesarr[$kk]['ExtraMarkupOnGST'] = ($MarkupArrayServiceTax);
                                                $FairRulesarr[$kk]['DiscountValue'] = ($discount);
                                                $FairRulesarr[$kk]['DiscountCoupon'] = ($discount > 0) ? 1 : 0;
                                                $FairRulesarr[$kk]['FareBreakdown'] = ($FareBreakdown);
                                                $ddddddddInb[] = ($Fare['PublishedFare'] + $TotalMarkupWithTax - $discount);
                                                //break;
                                                $inbound[$k] = $outb;
                                            }
                                        }
                                    }
                                    //$inbound[$k] = $outb;
                                    //if ($ICSourceSysId != 3) {
                                    $inbound[$k]['FairRules'] = array_values($FairRulesarr);
                                    //}
                                }
                            }
                        }
                    }
                }
            } else {
                // echo '<pre>';
                // print_r($FlightBookingData);
                // die;
                $outbound = [];
                $inbound = [];
                if ($FlightBookingData) {
                    foreach ($FlightBookingData as $key => $outb) {
                        $ExtraMarkup = $outb['ExtraMarkup'];
                        $ExtraMarkupOnGST = ($outb['ExtraMarkupOnGST'] > 0) ? $outb['ExtraMarkupOnGST'] : 0;
                        $TotalMarkupWithTax = ($ExtraMarkup + $ExtraMarkupOnGST);
                        $FairRulesarr = [];
                        if ($outb['JourneyType'] == 2) {
                            if ($outb['FairRules']) {
                                foreach ($outb['FairRules'] as $kk => $Fare) {
                                    $FareBreakdownArr = [];
                                    $FareBreakdown = count($Fare['FareBreakdown']);
                                    foreach ($Fare['FareBreakdown'] as $kkk => $FareBreak) {
                                        $FareBreakdownArr[$kkk] = $FareBreak;
                                        $FareBreakdownArr[$kkk]['ExtraMarkup'] = (($ExtraMarkup) / $FareBreakdown);
                                        $FareBreakdownArr[$kkk]['ExtraMarkupOnGST'] = (($ExtraMarkupOnGST) / $FareBreakdown);
                                    }
                                    $FairRulesarr[$kk] = $Fare;
                                    $FairRulesarr[$kk]['FareBreakdown'] = $FareBreakdownArr;
                                    $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                    $FairRulesarr[$kk]['ExtraMarkup'] = ($ExtraMarkup);
                                    $FairRulesarr[$kk]['ExtraMarkupOnGST'] = ($ExtraMarkupOnGST);
                                    $dddddddd[] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                }
                            }
                            $inbound[$key] = $outb;
                            $inbound[$key]['FairRules'] = array_values($FairRulesarr);
                        } else {
                            if ($outb['FairRules']) {
                                foreach ($outb['FairRules'] as $kk => $Fare) {
                                    $FareBreakdownArr = [];
                                    $FareBreakdown = count($Fare['FareBreakdown']);
                                    foreach ($Fare['FareBreakdown'] as $kkk => $FareBreak) {
                                        $FareBreakdownArr[$kkk] = $FareBreak;
                                        $FareBreakdownArr[$kkk]['ExtraMarkup'] = (($ExtraMarkup) / $FareBreakdown);
                                        $FareBreakdownArr[$kkk]['ExtraMarkupOnGST'] = (($ExtraMarkupOnGST) / $FareBreakdown);
                                    }
                                    $FairRulesarr[$kk] = $Fare;
                                    $FairRulesarr[$kk]['FareBreakdown'] = $FareBreakdownArr;
                                    $FairRulesarr[$kk]['PublishedFare'] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                    $FairRulesarr[$kk]['ExtraMarkup'] = ($ExtraMarkup);
                                    $FairRulesarr[$kk]['ExtraMarkupOnGST'] = ($ExtraMarkupOnGST);
                                    $dddddddd[] = ($Fare['PublishedFare'] + $TotalMarkupWithTax);
                                }
                            }
                            $outbound[$key] = $outb;
                            $outbound[$key]['FairRules'] = array_values($FairRulesarr);
                        }

                        //print_r($FairRulesarr);

                    }
                }
                // echo '<pre>';
                // print_r($FlightBookingData);
                // die;
            }


            // die;
            $dddddddd = array_merge($dddddddd, $ddddddddInb);
            sort($dddddddd);
            $MaxriceRange = $this->getMax($dddddddd);
            $MinriceRange = $this->getMin($dddddddd);
            //$arrSearchedAirlinesPriceSlots = Zend_Controller_Action_HelperBroker::getStaticHelper('Filters')->getDynamicPriceSlots(round($MinriceRange), round($MaxriceRange));
            $FiltPrice = [];

            $data = array('SelectedFilter'=>$SelectedFilter,'outbound' => array_values($outbound), 'inbound' => array_values($inbound), 'MultiHead'=>$MultiHead, 'FlightRoute'=>$route,'interNationalSearch'=>$interNationalSearch, 'CurrencyTitle' => $this->CurrencyTitle, 'FiltPrice' => [], 'MinriceRange' => round($MinriceRange), 'MaxriceRange' => round($MaxriceRange));
            echo json_encode($data);
            exit;
        }
    }
    public function getMarkupB2B($intCountryCode, $CustomerSysId, $B2BType, $intLoggedinUserId, $SecurityKey, $MasterAgencySysId) {
        if ($intCountryCode) {
            
            if($B2BType){
                $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
                $arrAgentDetail = $this->_crmcusttravelplan->getAgentDetails($intLoggedinUserId);
                $crmcustomerObj = new Travel_Model_CRM_Customer();
                
                $customerDetails = $crmcustomerObj->GetAgencyCustomerById($CustomerSysId);
                $AgencySysId__ = isset($customerDetails['AgencySysId']) ? $customerDetails['AgencySysId'] : 0;
                $B2bAgencyDetailById = $crmcustomerObj->GetAgencyDetailById($AgencySysId__);
                $B2CAgencySysIdKey = $arrAgentDetail['SecurityKey'];
                $B2BAgencySysIdKey = $B2bAgencyDetailById['SecurityKey'];
                $apiDataIV = array(
                    "B2BAgencySysIdKey" => $B2BAgencySysIdKey,
                    "B2CAgencySysIdKey" => $B2CAgencySysIdKey,
                    "MasterAgencySysId" => $MasterAgencySysId,
                    "PlanType" => 1,
                );
            }else{
                $apiDataIV = array(
                    'B2CAgencySysIdKey' => $SecurityKey,
                    'PlanType' => 1,
                    'IsB2C' => 1,
                    'MasterAgencySysId' => $MasterAgencySysId,
                    'IsB2CLoggedIn' => 0,
                );
            }
            $model = new Gtxwebservices_Model_Webservices();
            $result = json_decode($model->getMarkupAndServiceTaxNew($apiDataIV), true);
            if (!empty(trim($intCountryCode)) && trim($intCountryCode) != "IN") {
                $intAirType = 2;
            } else {
                $intAirType = 1;
            }
            $arrAgencyMarkups = [];
            if ($result['data']) {
                foreach ($result['data'] as $k => $vl) {
                    $ItemSourceType = $vl['ItemSourceType'];
                    if ($intAirType == $ItemSourceType) {
                        $arrAgencyMarkups[$k] = $vl;
                        $arrAgencyMarkups[$k]['CommssionType'] = 2;
                        $arrAgencyMarkups[$k]['CommssionVal'] = $vl['Commission'];
                        $arrAgencyMarkups[$k]['StdMarkUpPer'] = $vl['MarkUpValue'];
                    }
                }
            }
            $TaxSetting = [];
            if ($result['TaxSetting']) {
                foreach ($result['TaxSetting'] as $ks => $val) {
                    $TaxSetting[$k] = $val;
                    $TaxSetting[$k]['Percentage'] = $val['TaxPercentage'];
                }
            }
            return ['arrAgencyMarkups'=>$arrAgencyMarkups,'arrApiServiceTax'=>array_values($TaxSetting)];
        }
    }
    public function getflightsearch($SearchParam)
    {
        //error_reporting(1);
        $bookingAllowed = $SearchParam['bookingAllowed'];
        $sessionFlightSearchParams = $SearchParam['sessionFlightSearchParams'];
        $addMarkupArr = $SearchParam['addMarkupArr'];
        $AgencySysId = $SearchParam['AgencySysId'];
        $FlightNumberArr = $SearchParam['FlightNumber'];
        $apiResponse = $SearchParam['apiResponse'];
        $sessionFlightSearchParams['bookingAllowed'] = $bookingAllowed;
        // echo "<pre>";
        // print_r($FlightNumberArr); FlightNumberCode
        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
        $strReturnDate = $sessionFlightSearchParams['return_dates'];
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        
        $sourceCityText = explode(',', $sessionFlightSearchParams['sourceCityText']);
        $destinationCityText = explode(',', $sessionFlightSearchParams['destinationCityText']);
        $intTatalPaxCT = $adultCount + $childCount;
        //$getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);
        $strDepatureDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strDepatureDate, 'd/m/y');
        $strReturnDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strReturnDate, 'd/m/y');

        $intJourneyType = 1;
        $intTripType = $strFlightRoute;
        $arrInsertFlightData = [];
        $arrAirlineName = [];
        $FiltStopCount = [];
        $FiltPriceRange = [];
        $AttPriceRange = [];
        $dddddddd = [];
        // $FlightSearchResults = new Zend_Session_Namespace('FlightSearchResults');
        // $apiResponse = $FlightSearchResults->params;
       
        $intResponseStatus = $apiResponse['ResponseStatus'];
        $ONWARD = $apiResponse['OutBoundFlightResults'];
        $leadId = $sessionFlightSearchParams['editLeadId'];
        
        $B2BType = (int) $sessionFlightSearchParams['B2BType'];
        $CustomerSysId = $sessionFlightSearchParams['CustomerSysId'];
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $UserSysId = $sessionFlightSearchParams['UserSysId'];
       
        $objAgency = new Travel_Model_TblAgency();
        $arrAgencyDetails = $objAgency->getAgencyDataById($AgencySysId);
        $getMarkupB2B = $this->getMarkupB2B($intCountryCode, $CustomerSysId, $B2BType, $UserSysId, $arrAgencyDetails['SecurityKey'], $AgencySysId);
        $getMarkup = $getMarkupB2B;
        $MarketPlaceSysId = isset($getMarkup['arrAgencyMarkups'][0]['MarketPlaceSysId']) ? $getMarkup['arrAgencyMarkups'][0]['MarketPlaceSysId'] : 0;
		$MasterId = isset($getMarkup['arrAgencyMarkups'][0]['MasterId']) ? $getMarkup['arrAgencyMarkups'][0]['MasterId'] : 0;
		if(empty($MasterId) || $MasterId == 0){
			$MarketPlaceSysId = $MarketPlaceSysId;
		}else{
			$MarketPlaceSysId = $MasterId;
		}
        // echo "<pre>";
        // print_r($getMarkup);die;
        $filterData = ['ApiSourceSysId' => 3];
        $AdditionalMarkup = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getMarketPlace($MarketPlaceSysId,$filterData, $arrAgencyDetails['SecurityKey']);
        
        if ($intResponseStatus == 1) {
            if ($interNationalSearch == 1 && $strFlightRoute == 2) {
                $RoundInterTrip = $this->FlightDataRoundTripInternational($apiResponse, $sessionFlightSearchParams, $AgencySysId, $AdditionalMarkup);
                //$ddwwww = json_decode($RoundInterTrip, true);
                // print_r($RoundInterTrip);
                // die;
                $dddddddd = array_merge($dddddddd, $RoundInterTrip['dddddddd']);
                sort($dddddddd);

                $FiltPrice = [];

                $data = array('outbound' => $RoundInterTrip['outbound'], 'inbound' => [], 'FiltPrice' => $FiltPrice, 'CurrencyTitle' => $this->CurrencyTitle, 'dddddddd' => ($dddddddd));
                return ($data);
            }
            if ($strFlightRoute == 3) {
                $FlightDataMultiCity = $this->FlightDataMultiCity($apiResponse, $sessionFlightSearchParams, $AgencySysId, $getMarkup, $AdditionalMarkup);
                return $FlightDataMultiCity;
            }
            if ($ONWARD) {
                foreach ($ONWARD as $key => $result) {
                    $SegmentInformation = $result['sI'];
                    $totalPriceList = current($result['totalPriceList']);
                    $IsRefundable = $totalPriceList['fd']['ADULT']['rT'];
                    $NoOfSeatAvailable = $totalPriceList['fd']['ADULT']['sR'];
                    $strFareClass = $totalPriceList['fd']['ADULT']['cB']; //Cabin Baggage
                    $IsMealIncludes = isset($totalPriceList['fd']['ADULT']['mI']) ? $totalPriceList['fd']['ADULT']['mI'] : false;
                    $bagInfo = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Check In Baggage
                    $strTraceId = $totalPriceList['id'];
                    $ResultIndex = $totalPriceList['id'];
                    if (!empty($bagInfo)) {
                        $IsBagIncludes = true;
                    } else {
                        $IsBagIncludes = false;
                    }
                    if ($IsRefundable == 0) {
                        $IsRefundableTxt = 'Non Refundable';
                    } elseif ($IsRefundable == 1) {
                        $IsRefundableTxt = 'Refundable';
                    } else {
                        $IsRefundableTxt = 'Partial Refundable';
                    }
                    $OriginSegments = current($SegmentInformation);
                    $DestinationSegments = end($SegmentInformation);
                    $segmentSector = [];
                    $arrSegments = [];
                    $FlyingMinutes = 0;
                    $TotalLAYOVERMinutes = 0;
                    $LAYOVERCityArr = [];
                    $TotalLAYOVERMinutes = 0;
                    if ($SegmentInformation) {
                        foreach ($SegmentInformation as $seg => $segments) {
                            //echo '<pre>';print_r($segments);
                            $segmentid = $segments['id'];
                            $duration = $segments['duration'];
                            $LAYOVERMinutes = $GroundTime = isset($segments['cT']) ? $segments['cT'] : 0;
                            $LAYOVERCity = $LAYOVERCityArr[] = isset($segments['cT']) ? $segments['aa']['city'] : '';
                            $FlyingMinutes += ($duration + $LAYOVERMinutes);
                            $TotalLAYOVERMinutes += $LAYOVERMinutes;

                            $FareClass = $totalPriceList['fd']['ADULT']['cB'];
                            $strBaggage = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                            $strCabinBaggage = $totalPriceList['fd']['ADULT']['bI']['cB']; ////Cabin Baggage
                            if (!empty($strCabinBaggage)) {
                                $IsBaggage = true;
                            } else {
                                $IsBaggage = false;
                            }

                            $AirlineCode = $segments['fD']['aI']['code'];
                            $AirlineName = $segments['fD']['aI']['name'];
                            $FlightNumber = $segments['fD']['fN'];
                            $SegFlightNumber = $AirlineCode . "-" . $FlightNumber;

                            $originAirportName = $segments['da']['name'];
                            $originAirportCode = $segments['da']['code'];
                            $originCityName = $segments['da']['city'];
                            $originCountryName = $segments['da']['country'];
                            $originDepTime = $segments['dt'];

                            $destinationAirportName = $segments['aa']['name'];
                            $destinationAirportCode = $segments['aa']['code'];
                            $destinationCityName = $segments['aa']['city'];
                            $destinationCountryName = $segments['aa']['country'];
                            $destinationArrTime = $segments['at'];

                            $DepTerminal = isset($segments['da']['terminal']) ? $segments['da']['terminal'] : '';
                            $ArrTerminal = isset($segments['aa']['terminal']) ? $segments['aa']['terminal'] : '';

                            $filePath = $this->getflightlogo($AirlineCode);

                            $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->MinutesToHours($LAYOVERMinutes);

                            $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($destinationArrTime);
                            $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($originDepTime);
                            $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($duration);
                            $arrSegments[] = array(
                                "segmentid" => $segmentid,
                                "originAirportName" => $originAirportName,
                                "destinationAirportName" => $destinationAirportName,
                                "originCityName" => $originCityName,
                                "originCountryName" => $originCountryName,
                                "destinationCityName" => $destinationCityName,
                                "destinationCountryName" => $destinationCountryName,
                                "destinationAirportCode" => $destinationAirportCode,
                                "destinationArrTime" => $destinationArrTime,
                                "SegFlightNumber" => $SegFlightNumber,
                                "AirlineCode" => $AirlineCode,
                                "AirlineName" => $AirlineName,
                                "FareClass" => $FareClass,
                                "originAirportCode" => $originAirportCode,
                                "originDepTime" => $originDepTime,
                                "TripIndicator" => ($seg + 1),
                                "Baggage" => $strBaggage,
                                "CabinBaggage" => $strCabinBaggage,
                                "IsBaggage" => $IsBaggage,
                                "IsMealIncludes" => $IsMealIncludes,
                                "Duration" => $duration,
                                "GroundTime" => $GroundTime,
                                "NoOfSeatAvailable" => $NoOfSeatAvailable,
                                "strDepartureDtTime" => $strDepartureDtTime,
                                "strArrivalDtTime" => $strArrivalDtTime,
                                "FlightDuration" => $strDuration,
                                "LAYOVERDuration" => $LAYOVERDuration,
                                "LAYOVERCity" => $LAYOVERCity,
                                "DepTerminal" => $DepTerminal,
                                "ArrTerminal" => $ArrTerminal,
                                "filePath" => $filePath,
                            );
                            $segmentSector[$segmentid] = ['origin' => $originAirportCode, 'destination' => $destinationAirportCode];
                            //echo '<pre>';print_r($arrSegments);
                        }
                    }
                    // echo '<pre>';print_r($segmentSector);echo '</pre>';
                    $AirlineCode = $OriginSegments['fD']['aI']['code'];
                    
                    $PublishedFare = 0;
                    $PublishedFareReverse = 0;
                    $BaseFare = 0;
                    $Tax = 0;
                    $YQTax = 0;
                    $OtherCharges = 0;
                    $ServiceFee = 0;
                    $FareBreakdown = [];
                    $FairRulesArr = [];
                    $intYQTaxToT = 0;
                    $intTotalOfferedForAllPax = 0;
                    $intBaseFareAllPax = 0;
                    $intTaxAllPax = 0;
                    array_multisort($result['totalPriceList']);
                    if ($result['totalPriceList']) {
                        foreach ($result['totalPriceList'] as $kp => $price) {
                            $fareDetail = $price['fd'];
                            
                            $tripbinfo = [];
                            if ($price['tai']['tbi']) {
                                foreach ($price['tai']['tbi'] as $keyss => $tbi) {
                                    $segc = isset($segmentSector[$keyss]) ? $segmentSector[$keyss] : '';
                                    $sectorKey = $segc['origin'] . '-' . $segc['destination'];
                                    if ($tbi) {
                                        foreach ($tbi as $kgk => $pbi) {
                                            if ($pbi) {
                                                foreach ($pbi as $gk => $vll) {
                                                    $tripbinfo[$sectorKey][$gk] = ['cabin' => isset($vll['cB']) ? $vll['cB'] : 'NA', 'checkin' => isset($vll['iB']) ? $vll['iB'] : 'NA'];
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            // echo '<pre>';print_r($tripbinfo);echo '</pre>';
                            $SeatAvailable = $fareDetail['ADULT']['sR'];
                            $classOfBooking = $fareDetail['ADULT']['cB'];
                            $Refundable = $fareDetail['ADULT']['rT'];
                            $PriceID = $price['id'];
                            $fareIdentifier = $price['fareIdentifier'];

                            $AddMarkup = isset($AdditionalMarkup['finalArr'][$fareIdentifier]) ? $AdditionalMarkup['finalArr'][$fareIdentifier] : [];
                           
                            $fareremarks = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['remarks']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['remarks'] : '';
                            $fareIdentifier = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier'] : '';
                            $colors = !empty($AddMarkup['color']) ? $AddMarkup['color'] : '#000000';
                            $MarkUpValue = isset($AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue']) ? $AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue'] : 0;
                            $AddMarkup['markup_b2c'] = ($AddMarkup['markup_b2c'] + $MarkUpValue);
                            if (empty($fareIdentifier)) {
                                $fareIdentifier = $price['fareIdentifier'];
                            }
                            $IsMealIncludes = $fareDetail['ADULT']['mI'];
                            $strBaggage = $price['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                            $strCabinBaggage = $price['fd']['ADULT']['bI']['cB']; ////Cabin Baggage

                            if (!empty($strCabinBaggage)) {
                                $IsCabinBaggage = true;
                            } else {
                                $IsCabinBaggage = false;
                            }

                            if (!empty($strBaggage)) {
                                $IsBaggage = true;
                            } else {
                                $IsBaggage = false;
                            }
                            if ($price['fareIdentifier'] == 'SME') {
                                $IsGSTRequired = true;
                            } else {
                                $IsGSTRequired = false;
                            }
                            if ($Refundable == 0) {
                                $IsRefundableTxt = 'Non Refundable';
                            } elseif ($Refundable == 1) {
                                $IsRefundableTxt = 'Refundable';
                            } else {
                                $IsRefundableTxt = 'Partial Refundable';
                            }
                            $ADULT = $fareDetail['ADULT']['fC']; //fare Components
                            $CHILD = isset($fareDetail['CHILD']['fC']) ? $fareDetail['CHILD']['fC'] : []; //fare Components
                            $INFANT = isset($fareDetail['INFANT']['fC']) ? $fareDetail['INFANT']['fC'] : []; //fare Components

                            $ADULTafC = $fareDetail['ADULT']['afC']['TAF']; //additional fareComponents
                            $CHILDafC = isset($fareDetail['CHILD']['afC']['TAF']) ? $fareDetail['CHILD']['afC']['TAF'] : []; //additional fareComponents
                            $INFANTafC = isset($fareDetail['INFANT']['afC']['TAF']) ? $fareDetail['INFANT']['afC']['TAF'] : []; //additional fareComponents

                            $ADULTNCMTDS = 0; //isset($fareDetail['ADULT']['afC']['NCM']['TDS']) ? $fareDetail['ADULT']['afC']['NCM']['TDS'] : 0; //TDS
                            $CHILDNCMTDS = 0; //isset($fareDetail['CHILD']['afC']['NCM']['TDS']) ? $fareDetail['CHILD']['afC']['NCM']['TDS'] : 0; //TDS
                            $INFANTNCMTDS = 0; //isset($fareDetail['INFANT']['afC']['NCM']['TDS']) ? $fareDetail['INFANT']['afC']['NCM']['TDS'] : 0; //TDS

                            $ADULTNCMTOT = isset($fareDetail['ADULT']['afC']['NCM']['OT']) ? $fareDetail['ADULT']['afC']['NCM']['OT'] : 0; //- Gross Commission
                            $CHILDNCMTOT = isset($fareDetail['CHILD']['afC']['NCM']['OT']) ? $fareDetail['CHILD']['afC']['NCM']['OT'] : 0; //- Gross Commission
                            $INFANTNCMTOT = isset($fareDetail['INFANT']['afC']['NCM']['OT']) ? $fareDetail['INFANT']['afC']['NCM']['OT'] : 0; //- Gross Commission

                            $AD_MF = isset($ADULTafC['MF']) ? $ADULTafC['MF'] : 0; //Management Fee
                            $AD_YQ = isset($ADULTafC['YQ']) ? $ADULTafC['YQ'] : 0; //Fuel Surcharge
                            $AD_AGST = isset($ADULTafC['AGST']) ? $ADULTafC['AGST'] : 0; //Airline GST Component
                            $AD_MFT = isset($ADULTafC['MFT']) ? $ADULTafC['MFT'] : 0; //Management Fee Tax
                            $AD_OT = isset($ADULTafC['OT']) ? $ADULTafC['OT'] : 0; //Other Charges
                            $AD_MU = isset($ADULTafC['MU']) ? $ADULTafC['MU'] : 0; //markup
                            $AD_YR = isset($ADULTafC['YR']) ? $ADULTafC['YR'] : 0; //Carrier Misc Fee

                            $CH_MF = isset($CHILDafC['MF']) ? $CHILDafC['MF'] : 0; //Management Fee
                            $CH_YQ = isset($CHILDafC['YQ']) ? $CHILDafC['YQ'] : 0; //Fuel Surcharge
                            $CH_AGST = isset($CHILDafC['AGST']) ? $CHILDafC['AGST'] : 0; //Airline GST Component
                            $CH_MFT = isset($CHILDafC['MFT']) ? $CHILDafC['MFT'] : 0; //Management Fee Tax
                            $CH_OT = isset($CHILDafC['OT']) ? $CHILDafC['OT'] : 0; //Other Charges
                            $CH_MU = isset($CHILDafC['MU']) ? $CHILDafC['MU'] : 0; //markup
                            $CH_YR = isset($CHILDafC['YR']) ? $CHILDafC['YR'] : 0; //Carrier Misc Fee

                            $IN_MF = isset($INFANTafC['MF']) ? $INFANTafC['MF'] : 0; //Management Fee
                            $IN_YQ = isset($INFANTafC['YQ']) ? $INFANTafC['YQ'] : 0; //Fuel Surcharge
                            $IN_AGST = isset($INFANTafC['AGST']) ? $INFANTafC['AGST'] : 0; //Airline GST Component
                            $IN_MFT = isset($INFANTafC['MFT']) ? $INFANTafC['MFT'] : 0; //Management Fee Tax
                            $IN_OT = isset($INFANTafC['OT']) ? $INFANTafC['OT'] : 0; //Other Charges
                            $IN_MU = isset($INFANTafC['MU']) ? $INFANTafC['MU'] : 0; //markup
                            $IN_YR = isset($INFANTafC['YR']) ? $INFANTafC['YR'] : 0; //Carrier Misc Fee

                            if ($kp == 0) {
                                $PublishedFare += (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                                $BaseFare += (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                                $Tax += (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                            }

                            $PublishedFareIN = (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                            $BaseFareIN = (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                            $TaxIN = (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                            $NetFare = (($ADULT['NF'] * $adultCount) + ($CHILD['NF'] * $childCount) + ($INFANT['NF'] * $infantCount)); //Taxes and Fees
                            $NetCommission = (($ADULT['NCM'] * $adultCount) + ($CHILD['NCM'] * $childCount) + ($INFANT['NCM'] * $infantCount)); //Taxes and Fees
                            //echo '<pre>';print_r(($ADULTafC));echo '</pre>';
                            $YQTax = (($AD_YQ * $adultCount) + ($CH_YQ * $childCount) + ($IN_YQ * $infantCount));
                            $OtherCharges = (($AD_OT * $adultCount) + ($CH_OT * $childCount) + ($IN_OT * $infantCount));
                            $ServiceFee = (($AD_MF * $adultCount) + ($CH_MF * $childCount) + ($IN_MF * $infantCount));
                            $ManagementFeeTax = (($AD_MFT * $adultCount) + ($CH_MFT * $childCount) + ($IN_MFT * $infantCount));
                            $AirlineGSTComponent = (($AD_AGST * $adultCount) + ($CH_AGST * $childCount) + ($IN_AGST * $infantCount));
                            $CarrierMiscFee = (($AD_YR * $adultCount) + ($CH_YR * $childCount) + ($IN_YR * $infantCount));
                            $MUFee = (($AD_MU * $adultCount) + ($CH_MU * $childCount) + ($IN_MU * $infantCount));
                            $TdsOnPLB = (($ADULTNCMTDS * $adultCount) + ($CHILDNCMTDS * $childCount) + ($INFANTNCMTDS * $infantCount));
                            //$NetCommission = (($ADULTNCMTOT * $adultCount) + ($CHILDNCMTOT * $childCount) + ($INFANTNCMTOT * $infantCount));
                            $TdsOnPLBCal = isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0;
                            $PublishedFare = $PublishedFareIN;
                            $CommissionEarned = $NetCommission;
                            $PLBEarned = 0; //$result['Fare']['PLBEarned'];
                            $IncentiveEarned = 0; //$result['Fare']['IncentiveEarned'];
                            $OfferedFare = ($NetFare - $TdsOnPLBCal);
                            $markUpArr = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => $PublishedFare,
                                'OfferedFare' => $OfferedFare,
                                'intCommissionEarned' => $CommissionEarned,
                                'TdsOnPLB' => $TdsOnPLB,
                                'MUFee' => $MUFee,
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $intMemberCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            //echo '<pre>';print_r($markUpArr);
                            $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);
                            if ($kp == 0) {
                                $PublishedFareReverse += ($arrMarkUps['PublishFare']);
                            }
                            $TdsOnPLBCal = isset($ADULTNCMTDS) ? str_replace('-', '', $ADULTNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($ADULT['TF'] * $adultCount),
                                'OfferedFare' => (($ADULT['NF'] - $TdsOnPLBCal) * $adultCount),
                                'intCommissionEarned' => ($ADULT['NCM'] * $adultCount),
                                'TdsOnPLB' => ($ADULTNCMTDS * $adultCount),
                                'MUFee' => ($AD_MU * $adultCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $adultCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);


                            $FareBreakdown[0]['Currency'] = $this->CurrencyTitle;
                            $FareBreakdown[0]['PassengerType'] = 1;
                            $FareBreakdown[0]['PassengerCount'] = $adultCount;
                            $FareBreakdown[0]['TaxIN'] = ($ADULT['TAF'] * $adultCount);
                            $FareBreakdown[0]['TotalBaseFare'] = ($ADULT['TF'] * $adultCount);
                            $FareBreakdown[0]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[0]['BaseFare'] = ($ADULT['BF'] * $adultCount);
                            $FareBreakdown[0]['CommissionEarned'] = ($ADULT['NCM'] * $adultCount);
                            $FareBreakdown[0]['TDS'] = (float) str_replace('-', '', ($ADULTNCMTDS * $adultCount));
                            $FareBreakdown[0]['MF'] = ($AD_MF * $adultCount);
                            $FareBreakdown[0]['YQ'] = ($AD_YQ * $adultCount);
                            $FareBreakdown[0]['AGST'] = ($AD_AGST * $adultCount);
                            $FareBreakdown[0]['MFT'] = ($AD_MFT * $adultCount);
                            $FareBreakdown[0]['OT'] = ($AD_OT * $adultCount);
                            $FareBreakdown[0]['MU'] = ($AD_MU * $adultCount);
                            $FareBreakdown[0]['YR'] = ($AD_YR * $adultCount);
                            $FareBreakdown[0]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[0]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[0]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[0]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[0]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[0]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[0]['CommEarned'] = $arrMarkUpsBR['IntCommission']; //$arrMarkUpsBR['intCommisionEarnedForAgency'];
                            $FareBreakdown[0]['GSTonComm'] = 0;
                            $FareBreakdown[0]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[0]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[0]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[0]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[0]['PGCharge'] = 0;
                            $FareBreakdown[0]['NetFare'] = ($ADULT['NF'] * $adultCount);
                            $FareBreakdown[0]['Baggage'] = isset($fareDetail['ADULT']['bI']['iB']) ? $fareDetail['ADULT']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[0]['CabinBaggage'] = isset($fareDetail['ADULT']['bI']['cB']) ? $fareDetail['ADULT']['bI']['cB'] : []; //Cabin Baggage ;
                            if (isset($fareDetail['CHILD'])) {
                                $TdsOnPLBCal = isset($CHILDNCMTDS) ? str_replace('-', '', $CHILDNCMTDS) : 0;
                                $markUpArrBR = array(
                                    'getMarkup' => $getMarkup,
                                    'PublishedFare' => ($CHILD['TF'] * $childCount),
                                    'OfferedFare' => (($CHILD['NF'] - $TdsOnPLBCal) * $childCount),
                                    'intCommissionEarned' => ($CHILD['NCM'] * $childCount),
                                    'TdsOnPLB' => ($CHILDNCMTDS * $childCount),
                                    'MUFee' => ($CH_MU * $childCount),
                                    'intPLBEarned' => $PLBEarned,
                                    'intIncentiveEarned' => $IncentiveEarned,
                                    'intMemberCount' => $childCount,
                                    'intFlightRoute' => $strFlightRoute,
                                    'interNationalSearch' => $interNationalSearch,
                                    'AddMarkup' => $AddMarkup,
                                );
                                $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                                $FareBreakdown[1]['Currency'] = $this->CurrencyTitle;
                                $FareBreakdown[1]['PassengerType'] = 2;
                                $FareBreakdown[1]['PassengerCount'] = $childCount;
                                $FareBreakdown[1]['TaxIN'] = ($CHILD['TAF'] * $childCount);
                                $FareBreakdown[1]['TotalBaseFare'] = ($CHILD['TF'] * $childCount);
                                $FareBreakdown[1]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                $FareBreakdown[1]['BaseFare'] = ($CHILD['BF'] * $childCount);
                                $FareBreakdown[1]['CommissionEarned'] = ($CHILD['NCM'] * $childCount);
                                $FareBreakdown[1]['TDS'] = (float) str_replace('-', '', ($CHILDNCMTDS * $childCount));
                                $FareBreakdown[1]['MF'] = ($CH_MF * $childCount);
                                $FareBreakdown[1]['YQ'] = ($CH_YQ * $childCount);
                                $FareBreakdown[1]['AGST'] = ($CH_AGST * $childCount);
                                $FareBreakdown[1]['MFT'] = ($CH_MFT * $childCount);
                                $FareBreakdown[1]['OT'] = ($CH_OT * $childCount);
                                $FareBreakdown[1]['MU'] = ($CH_MU * $childCount);
                                $FareBreakdown[1]['YR'] = ($CH_YR * $childCount);
                                $FareBreakdown[1]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                $FareBreakdown[1]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                $FareBreakdown[1]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                $FareBreakdown[1]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                $FareBreakdown[1]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                $FareBreakdown[1]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                $FareBreakdown[1]['CommEarned'] = $arrMarkUpsBR['IntCommission']; //$arrMarkUpsBR['intCommisionEarnedForAgency'];
                                $FareBreakdown[1]['GSTonComm'] = 0;
                                $FareBreakdown[1]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                $FareBreakdown[1]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                $FareBreakdown[1]['AdditionalTxnFeeOfrd'] = 0;
                                $FareBreakdown[1]['AdditionalTxnFeePub'] = 0;
                                $FareBreakdown[1]['PGCharge'] = 0;
                                $FareBreakdown[1]['NetFare'] = ($CHILD['NF'] * $childCount);
                                $FareBreakdown[1]['Baggage'] = isset($fareDetail['CHILD']['bI']['iB']) ? $fareDetail['CHILD']['bI']['iB'] : []; //Check In Baggage;
                                $FareBreakdown[1]['CabinBaggage'] = isset($fareDetail['CHILD']['bI']['cB']) ? $fareDetail['CHILD']['bI']['cB'] : []; //Cabin Baggage ;
                            }
                            if (isset($fareDetail['INFANT'])) {
                                $TdsOnPLBCal = isset($INFANTNCMTDS) ? str_replace('-', '', $INFANTNCMTDS) : 0;
                                $markUpArrBR = array(
                                    'getMarkup' => $getMarkup,
                                    'PublishedFare' => ($INFANT['TF'] * $infantCount),
                                    'OfferedFare' => (($INFANT['NF'] - $TdsOnPLBCal) * $infantCount),
                                    'intCommissionEarned' => ($INFANT['NCM'] * $infantCount),
                                    'TdsOnPLB' => ($INFANTNCMTDS * $infantCount),
                                    'MUFee' => ($IN_MU * $infantCount),
                                    'intPLBEarned' => $PLBEarned,
                                    'intIncentiveEarned' => $IncentiveEarned,
                                    'intMemberCount' => $infantCount,
                                    'intFlightRoute' => $strFlightRoute,
                                    'interNationalSearch' => $interNationalSearch,
                                    'AddMarkup' => $AddMarkup,
                                );
                                $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                                $FareBreakdown[2]['Currency'] = $this->CurrencyTitle;
                                $FareBreakdown[2]['PassengerType'] = 3;
                                $FareBreakdown[2]['PassengerCount'] = $infantCount;
                                $FareBreakdown[2]['TaxIN'] = ($INFANT['TAF'] * $infantCount);
                                $FareBreakdown[2]['TotalBaseFare'] = ($INFANT['TF'] * $infantCount);
                                $FareBreakdown[2]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                $FareBreakdown[2]['BaseFare'] = ($INFANT['BF'] * $infantCount);
                                $FareBreakdown[2]['CommissionEarned'] = ($INFANT['NCM'] * $infantCount);
                                $FareBreakdown[2]['TDS'] = (float) str_replace('-', '', ($INFANTNCMTDS * $infantCount));
                                $FareBreakdown[2]['MF'] = ($IN_MF * $infantCount);
                                $FareBreakdown[2]['YQ'] = ($IN_YQ * $infantCount);
                                $FareBreakdown[2]['AGST'] = ($IN_AGST * $infantCount);
                                $FareBreakdown[2]['OT'] = ($IN_OT * $infantCount);
                                $FareBreakdown[2]['MFT'] = ($IN_MFT * $infantCount);
                                $FareBreakdown[2]['MU'] = ($IN_MU * $infantCount);
                                $FareBreakdown[2]['YR'] = ($IN_YR * $infantCount);
                                $FareBreakdown[2]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                $FareBreakdown[2]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                $FareBreakdown[2]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                $FareBreakdown[2]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                $FareBreakdown[2]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                $FareBreakdown[2]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                $FareBreakdown[2]['CommEarned'] = $arrMarkUpsBR['IntCommission']; //$arrMarkUpsBR['intCommisionEarnedForAgency'];
                                $FareBreakdown[2]['GSTonComm'] = 0;
                                $FareBreakdown[2]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                $FareBreakdown[2]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                $FareBreakdown[2]['AdditionalTxnFeeOfrd'] = 0;
                                $FareBreakdown[2]['AdditionalTxnFeePub'] = 0;
                                $FareBreakdown[2]['PGCharge'] = 0;
                                $FareBreakdown[2]['NetFare'] = ($INFANT['NF'] * $infantCount);
                                $FareBreakdown[2]['Baggage'] = isset($fareDetail['INFANT']['bI']['iB']) ? $fareDetail['INFANT']['bI']['iB'] : []; //Check In Baggage;
                                $FareBreakdown[2]['CabinBaggage'] = isset($fareDetail['INFANT']['bI']['cB']) ? $fareDetail['INFANT']['bI']['cB'] : []; //Cabin Baggage ;
                            }
                            //echo '<pre>';print_r($price);
                            $FairRulesArr[$kp] = array(
                                "Currency" => $this->CurrencyTitle, //$Currency,
                                "CurrencyRate" => $this->CurrencyRate, //$Currency,
                                "currencySysId" => $this->CurrencyId,
                                "BaseFare" => $BaseFareIN,
                                "Tax" => $TaxIN,
                                "YQTax" => $YQTax,
                                "OtherCharges" => $OtherCharges,
                                "Discount" => 0, //$Discount,
                                "ServiceFee" => $ServiceFee,
                                "ManagementFeeTax" => $ManagementFeeTax,
                                "AirlineGSTComponent" => $AirlineGSTComponent,
                                "CarrierMiscFee" => $CarrierMiscFee,
                                "MUFee" => $MUFee,
                                "intPublishedFare" => $PublishedFareIN,
                                "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                                "OfferedFare" => $arrMarkUps['intOfferedFare'],
                                "PLBEarned" => $PLBEarned,
                                "IncentiveEarned" => $IncentiveEarned,
                                "TdsOnPLB" => (float) isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0,
                                "TdsOnIncentive" => 0,
                                "AdditionalTxnFeeOfrd" => 0,
                                "AdditionalTxnFeePub" => 0,
                                "Refundable" => $Refundable,
                                "IsRefundableTxt" => $IsRefundableTxt,
                                "PriceID" => $PriceID,
                                "IsGSTRequired" => $IsGSTRequired,
                                "fareIdentifier" => str_replace('_', ' ', $fareIdentifier),
                                "SeatAvailable" => $SeatAvailable,
                                "classOfBooking" => $classOfBooking,
                                "FareClass" => ucfirst($fareDetail['ADULT']['cc']),
                                "intTotalGST" => $arrMarkUps['intTotalGST'],
                                "apiMarkup" => $arrMarkUps['apiMarkup'],
                                "IntCommission" => $arrMarkUps['IntCommission'],
                                "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                                "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                                "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                                "CommEarned" => $arrMarkUps['IntCommission'], //$arrMarkUps['intCommisionEarnedForAgency'],
                                "GSTonComm" => 0,
                                "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                                "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                                "IsBaggage" => $IsBaggage,
                                "IsCabinBaggage" => $IsCabinBaggage,
                                "Baggage" => $strBaggage,
                                "CabinBaggage" => $strCabinBaggage,
                                "IsMealIncludes" => $IsMealIncludes,
                                "FareBreakdown" => $FareBreakdown,
                                "arrMarkUps" => $arrMarkUps,
                                "tripbinfo" => $tripbinfo,
                            );
                            // echo '<pre>';
                            // print_r($FairRulesArr[$kp]);
                            // echo '</pre>';
                        }
                    }

                    $LAYOVERTime = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalLAYOVERMinutes);

                    $AirlineCode = $OriginSegments['fD']['aI']['code'];
                    $FlightNumber = $OriginSegments['fD']['fN'];
                    $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                    $strAirlineName = $OriginSegments['fD']['aI']['name'];
                    $IsLCC = $OriginSegments['fD']['aI']['isLcc'];
                    $strSourceAirportCode = $OriginSegments['da']['code'];
                    $strDestinationAirportCode = $DestinationSegments['aa']['code'];
                    // if($strFlightNumber == 'I5-336'){
                    //     echo '<pre>';print_r($result['totalPriceList']);die;
                    // }
                    $Stops = $DestinationSegments['sN'];
                    if ($Stops == 0) {
                        $StopCountTxt = "Non-stop";
                    } else {
                        $StopCountTxt = $Stops . " Stop(s)";
                    }
                    $filePath = $this->getflightlogo($AirlineCode);
                    $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);
                    $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DestinationSegments['at']);
                    $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($OriginSegments['dt']);
                    $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                    $arrInsertFlightData[$key]['FlightNumber'] = $strFlightNumber;
                    $arrInsertFlightData[$key]['AirlineName'] = $strAirlineName;
                    $arrInsertFlightData[$key]['AirlineCode'] = $AirlineCode;
                    $arrInsertFlightData[$key]['FlightNumberCode'] = $FlightNumber;
                    $arrInsertFlightData[$key]['AirInvenSysId'] = 0;
                    $arrInsertFlightData[$key]['IsLCC'] = $IsLCC;
                    $arrInsertFlightData[$key]['IsMealIncludes'] = $IsMealIncludes;
                    $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                    $arrInsertFlightData[$key]['IsRefundable'] = $IsRefundable;
                    $arrInsertFlightData[$key]['IsRefundableTxt'] = $IsRefundableTxt;
                    $arrInsertFlightData[$key]['SearchTraceId'] = $SearchTraceId;
                    $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                    $arrInsertFlightData[$key]['AirlineSysId'] = $airlineSysId;
                    $arrInsertFlightData[$key]['DepartureTime'] = $strDepartureDtTime;
                    $arrInsertFlightData[$key]['ArrivalTime'] = $strArrivalDtTime;
                    $arrInsertFlightData[$key]['TravelDate'] = $OriginSegments['dt'];
                    $arrInsertFlightData[$key]['LocalFromTime'] = str_replace('T', ' ', $OriginSegments['dt']);
                    $arrInsertFlightData[$key]['FromUTCTime'] = $OriginSegments['dt'];
                    $arrInsertFlightData[$key]['LocalToTime'] = str_replace('T', ' ', $DestinationSegments['at']);
                    $arrInsertFlightData[$key]['ToUTCTime'] = $DestinationSegments['at'];
                    $arrInsertFlightData[$key]['IsDirect'] = 0;
                    $arrInsertFlightData[$key]['FareClass'] = $strFareClass;
                    $arrInsertFlightData[$key]['LAYOVERCity'] = isset($LAYOVERCityArr[0]) ? $LAYOVERCityArr[0] : '';
                    $arrInsertFlightData[$key]['GroundTime'] = $TotalLAYOVERMinutes;
                    $arrInsertFlightData[$key]['LAYOVERDuration'] = $LAYOVERTime;
                    $arrInsertFlightData[$key]['FlyingMinutes'] = $FlyingMinutes;
                    $arrInsertFlightData[$key]['DepartureDateTxt'] = date('D, d M', strtotime($OriginSegments['dt']));
                    $arrInsertFlightData[$key]['ArrivalDateTxt'] = date('D, d M', strtotime($DestinationSegments['at']));
                    $arrInsertFlightData[$key]['FlightDuration'] = $FlightDuration;
                    $arrInsertFlightData[$key]['SourcePlaceSysId'] = $intSourceCityId;
                    $arrInsertFlightData[$key]['DestPlaceSysId'] = $intDestinationCityId;
                    $arrInsertFlightData[$key]['SourceAirportCode'] = $strSourceAirportCode;
                    $arrInsertFlightData[$key]['DestAirportCode'] = $strDestinationAirportCode;
                    $arrInsertFlightData[$key]['SourcePlaceName'] = $sourceCityText[0];
                    $arrInsertFlightData[$key]['DestPlaceName'] = $destinationCityText[0];
                    //                $arrInsertFlightData[$key]['AirportHaultMinutes'] = $AirportHaultMinutes;
                    $arrInsertFlightData[$key]['StopCount'] = $StopCountTxt;
                    $arrInsertFlightData[$key]['Stops'] = $Stops;
                    $arrInsertFlightData[$key]['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                    $arrInsertFlightData[$key]['TotalFlightMembers'] = $intMemberCount;
                    $arrInsertFlightData[$key]['CurrencyType'] = $this->CurrencyId;
                    $arrInsertFlightData[$key]['PublishedFare'] = ($PublishedFare * $this->CurrencyRate); // As Discussed with GG
                    $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format(($PublishedFare * $this->CurrencyRate)); // As Discussed with GG
                    //                $arrInsertFlightData[$key]['CommissionEarned'] = $CommissionEarned;
                    $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                    $arrInsertFlightData[$key]['JourneyType'] = $intJourneyType;
                    $arrInsertFlightData[$key]['TripType'] = $intTripType;
                    $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                    $arrInsertFlightData[$key]['logo'] = $filePath;
                    $arrInsertFlightData[$key]['FairRules'] = $FairRulesArr;
                    $arrInsertFlightData[$key]['Segments'] = $arrSegments;
                    $arrInsertFlightData[$key]['ICSourceSysId'] = 7;
                    $arrInsertFlightData[$key]['supplier'] = 'Supplier 1';
                    $arrInsertFlightData[$key]['IsTJFlightAPI'] = true;
                    $arrInsertFlightData[$key]['bookingAllowed'] = $bookingAllowed;

                    $arrAirlineName[] = $AirlineCode . '-' . $strAirlineName;
                    $AttPriceRange[] = $PublishedFare;
                    $FiltStopCount[] = $StopCountTxt;

                    if ($FairRulesArr) {
                        foreach ($FairRulesArr as $Fare) {
                            $dddddddd[] = $Fare['PublishedFare'];
                        }
                    }

                    $FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strDepartureDtTime);

                    // if ($FilterPrice) {
                    //     $arrInsertFlightData[$key]['FilterPrice'] = $FilterPrice;
                    // }
                    $arrInsertFlightData[$key]['FilterDepartureDtTime'] = $FilterDepartureDtTime;
                }
            }

            $RoundTrip = $this->FlightDataRoundTripJack($apiResponse, $sessionFlightSearchParams, $AgencySysId, $AdditionalMarkup, $getMarkup);
            $dddddddd = array_merge($dddddddd, $RoundTrip['dddddddd']);
            sort($dddddddd);
            $FiltPrice = [];

            if ($interNationalSearch == 1 && $strFlightRoute == 2) {
                $RoundInterTrip = $this->FlightDataRoundTripInternational($apiResponse, $sessionFlightSearchParams, $AgencySysId, $AdditionalMarkup, $getMarkup);
                //$ddwwww = json_decode($RoundInterTrip, true);
                // print_r($RoundInterTrip);
                // die;
                $dddddddd = array_merge($dddddddd, $RoundInterTrip['dddddddd']);
                sort($dddddddd);

                $FiltPrice = [];

                $data = array('outbound' => $RoundInterTrip['outbound'], 'inbound' => [], 'FiltPrice' => $FiltPrice, 'CurrencyTitle' => $this->CurrencyTitle, 'dddddddd' => ($dddddddd));
            } else {
                $data = array('outbound' => $arrInsertFlightData, 'inbound' => $RoundTrip['inbound'], 'FiltPrice' => $FiltPrice, 'CurrencyTitle' => $this->CurrencyTitle, 'dddddddd' => ($dddddddd));
            }
            return ($data);
        } else {
            $data = array('outbound' => [], 'inbound' => [], 'FiltPrice' => []);
            return ($data);
        }
    }
    public function FlightDataRoundTripJack($apiResponse, $sessionFlightSearchParams, $AgencySysId, $AdditionalMarkup, $getMarkup)
    {
        $bookingAllowed = trim($sessionFlightSearchParams['bookingAllowed']);
        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $sourceCityText = explode(',', $sessionFlightSearchParams['sourceCityText']);
        $destinationCityText = explode(',', $sessionFlightSearchParams['destinationCityText']);
        $intTatalPaxCT = $adultCount + $childCount;
        //$getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);
        $objAirline = new Travel_Model_TblAirline();
        $arrAirlineList = $objAirline->getAirlineIdsAndCodeList();
        $intJourneyType = 2;
        $intTripType = $strFlightRoute;
        $arrInsertFlightData = [];
        $arrAirlineName = [];
        $FiltStopCount = [];
        $FiltPriceRange = [];
        $AttPriceRange = [];
        $dddddddd = [];
        $intResponseStatus = $apiResponse['ResponseStatus'];
        $RETURN = $apiResponse['InBoundFlightResults'];
        if ($intResponseStatus == 1) {
            if ($RETURN) {
                foreach ($RETURN as $key => $result) {
                    $SegmentInformation = $result['sI'];
                    $totalPriceList = current($result['totalPriceList']);
                    $IsRefundable = $totalPriceList['fd']['ADULT']['rT'];
                    $NoOfSeatAvailable = $totalPriceList['fd']['ADULT']['sR'];
                    $strFareClass = $totalPriceList['fd']['ADULT']['cB'];
                    $IsMealIncludes = $totalPriceList['fd']['ADULT']['mI'];
                    $bagInfo = $totalPriceList['fd']['ADULT']['bI']['iB'];
                    $strTraceId = $totalPriceList['id'];
                    $ResultIndex = $totalPriceList['id'];
                    if (!empty($bagInfo)) {
                        $IsBagIncludes = true;
                    } else {
                        $IsBagIncludes = false;
                    }
                    if ($IsRefundable == 0) {
                        $IsRefundableTxt = 'Non Refundable';
                    } elseif ($IsRefundable == 1) {
                        $IsRefundableTxt = 'Refundable';
                    } else {
                        $IsRefundableTxt = 'Partial Refundable';
                    }
                    $OriginSegments = current($SegmentInformation);
                    $DestinationSegments = end($SegmentInformation);
                    $AirlineCode = $OriginSegments['fD']['aI']['code'];
                    $arrSegments = [];
                    $FlyingMinutes = 0;
                    $TotalLAYOVERMinutes = 0;
                    $LAYOVERCityArr = [];
                    $PublishedFare = 0;
                    $BaseFare = 0;
                    $Tax = 0;
                    $YQTax = 0;
                    $OtherCharges = 0;
                    $ServiceFee = 0;
                    $FareBreakdown = [];
                    $FairRulesArr = [];
                    array_multisort($result['totalPriceList']);
                    if ($result['totalPriceList']) {
                        foreach ($result['totalPriceList'] as $kp => $price) {
                            $fareDetail = $price['fd'];

                            // echo '<pre>';
                            // print_r($fareDetail);
                            // echo '</pre>';
                            $SeatAvailable = $fareDetail['ADULT']['sR'];
                            $classOfBooking = $fareDetail['ADULT']['cB'];
                            $Refundable = $fareDetail['ADULT']['rT'];
                            $PriceID = $price['id'];
                            $fareIdentifier = $price['fareIdentifier'];

                            $AddMarkup = isset($AdditionalMarkup['finalArr'][$fareIdentifier]) ? $AdditionalMarkup['finalArr'][$fareIdentifier] : [];
                           
                            $fareremarks = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['remarks']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['remarks'] : '';
                            $fareIdentifier = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier'] : '';
                            $colors = !empty($AddMarkup['color']) ? $AddMarkup['color'] : '#000000';
                            $MarkUpValue = isset($AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue']) ? $AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue'] : 0;
                            $AddMarkup['markup_b2c'] = ($AddMarkup['markup_b2c'] + $MarkUpValue);
                            if (empty($fareIdentifier)) {
                                $fareIdentifier = $price['fareIdentifier'];
                            }
                            $IsMealIncludes = $fareDetail['ADULT']['mI'];
                            $strBaggage = $price['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                            $strCabinBaggage = $price['fd']['ADULT']['bI']['cB']; ////Cabin Baggage

                            if (!empty($strCabinBaggage)) {
                                $IsCabinBaggage = true;
                            } else {
                                $IsCabinBaggage = false;
                            }

                            if (!empty($strBaggage)) {
                                $IsBaggage = true;
                            } else {
                                $IsBaggage = false;
                            }
                            if ($price['fareIdentifier'] == 'SME') {
                                $IsGSTRequired = true;
                            } else {
                                $IsGSTRequired = false;
                            }
                            if ($Refundable == 0) {
                                $IsRefundableTxt = 'Non Refundable';
                            } elseif ($Refundable == 1) {
                                $IsRefundableTxt = 'Refundable';
                            } else {
                                $IsRefundableTxt = 'Partial Refundable';
                            }
                            $ADULT = $fareDetail['ADULT']['fC']; //fare Components
                            $CHILD = isset($fareDetail['CHILD']['fC']) ? $fareDetail['CHILD']['fC'] : []; //fare Components
                            $INFANT = isset($fareDetail['INFANT']['fC']) ? $fareDetail['INFANT']['fC'] : []; //fare Components

                            $ADULTafC = $fareDetail['ADULT']['afC']['TAF']; //additional fareComponents
                            $CHILDafC = isset($fareDetail['CHILD']['afC']['TAF']) ? $fareDetail['CHILD']['afC']['TAF'] : []; //additional fareComponents
                            $INFANTafC = isset($fareDetail['INFANT']['afC']['TAF']) ? $fareDetail['INFANT']['afC']['TAF'] : []; //additional fareComponents

                            $ADULTNCMTDS = isset($fareDetail['ADULT']['afC']['NCM']['TDS']) ? $fareDetail['ADULT']['afC']['NCM']['TDS'] : 0; //TDS
                            $CHILDNCMTDS = isset($fareDetail['CHILD']['afC']['NCM']['TDS']) ? $fareDetail['CHILD']['afC']['NCM']['TDS'] : 0; //TDS
                            $INFANTNCMTDS = isset($fareDetail['INFANT']['afC']['NCM']['TDS']) ? $fareDetail['INFANT']['afC']['NCM']['TDS'] : 0; //TDS

                            $ADULTNCMTOT = isset($fareDetail['ADULT']['afC']['NCM']['OT']) ? $fareDetail['ADULT']['afC']['NCM']['OT'] : 0; //- Gross Commission
                            $CHILDNCMTOT = isset($fareDetail['CHILD']['afC']['NCM']['OT']) ? $fareDetail['CHILD']['afC']['NCM']['OT'] : 0; //- Gross Commission
                            $INFANTNCMTOT = isset($fareDetail['INFANT']['afC']['NCM']['OT']) ? $fareDetail['INFANT']['afC']['NCM']['OT'] : 0; //- Gross Commission

                            $AD_MF = isset($ADULTafC['MF']) ? $ADULTafC['MF'] : 0; //Management Fee
                            $AD_YQ = isset($ADULTafC['YQ']) ? $ADULTafC['YQ'] : 0; //Fuel Surcharge
                            $AD_AGST = isset($ADULTafC['AGST']) ? $ADULTafC['AGST'] : 0; //Airline GST Component
                            $AD_MFT = isset($ADULTafC['MFT']) ? $ADULTafC['MFT'] : 0; //Management Fee Tax
                            $AD_OT = isset($ADULTafC['OT']) ? $ADULTafC['OT'] : 0; //Other Charges
                            $AD_MU = isset($ADULTafC['MU']) ? $ADULTafC['MU'] : 0; //markup
                            $AD_YR = isset($ADULTafC['YR']) ? $ADULTafC['YR'] : 0; //Carrier Misc Fee

                            $CH_MF = isset($CHILDafC['MF']) ? $CHILDafC['MF'] : 0; //Management Fee
                            $CH_YQ = isset($CHILDafC['YQ']) ? $CHILDafC['YQ'] : 0; //Fuel Surcharge
                            $CH_AGST = isset($CHILDafC['AGST']) ? $CHILDafC['AGST'] : 0; //Airline GST Component
                            $CH_MFT = isset($CHILDafC['MFT']) ? $CHILDafC['MFT'] : 0; //Management Fee Tax
                            $CH_OT = isset($CHILDafC['OT']) ? $CHILDafC['OT'] : 0; //Other Charges
                            $CH_MU = isset($CHILDafC['MU']) ? $CHILDafC['MU'] : 0; //markup
                            $CH_YR = isset($CHILDafC['YR']) ? $CHILDafC['YR'] : 0; //Carrier Misc Fee

                            $IN_MF = isset($INFANTafC['MF']) ? $INFANTafC['MF'] : 0; //Management Fee
                            $IN_YQ = isset($INFANTafC['YQ']) ? $INFANTafC['YQ'] : 0; //Fuel Surcharge
                            $IN_AGST = isset($INFANTafC['AGST']) ? $INFANTafC['AGST'] : 0; //Airline GST Component
                            $IN_MFT = isset($INFANTafC['MFT']) ? $INFANTafC['MFT'] : 0; //Management Fee Tax
                            $IN_OT = isset($INFANTafC['OT']) ? $INFANTafC['OT'] : 0; //Other Charges
                            $IN_MU = isset($INFANTafC['MU']) ? $INFANTafC['MU'] : 0; //markup
                            $IN_YR = isset($INFANTafC['YR']) ? $INFANTafC['YR'] : 0; //Carrier Misc Fee

                            if ($kp == 0) {
                                $PublishedFare += (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                                $BaseFare += (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                                $Tax += (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                            }

                            $PublishedFareIN = (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                            $BaseFareIN = (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                            $TaxIN = (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                            $NetFare = (($ADULT['NF'] * $adultCount) + ($CHILD['NF'] * $childCount) + ($INFANT['NF'] * $infantCount)); //Taxes and Fees
                            $NetCommission = (($ADULT['NCM'] * $adultCount) + ($CHILD['NCM'] * $childCount) + ($INFANT['NCM'] * $infantCount)); //Taxes and Fees
                            //echo '<pre>';print_r(($ADULTafC));echo '</pre>';
                            $YQTax = (($AD_YQ * $adultCount) + ($CH_YQ * $childCount) + ($IN_YQ * $infantCount));
                            $OtherCharges = (($AD_OT * $adultCount) + ($CH_OT * $childCount) + ($IN_OT * $infantCount));
                            $ServiceFee = (($AD_MF * $adultCount) + ($CH_MF * $childCount) + ($IN_MF * $infantCount));
                            $ManagementFeeTax = (($AD_MFT * $adultCount) + ($CH_MFT * $childCount) + ($IN_MFT * $infantCount));
                            $AirlineGSTComponent = (($AD_AGST * $adultCount) + ($CH_AGST * $childCount) + ($IN_AGST * $infantCount));
                            $CarrierMiscFee = (($AD_YR * $adultCount) + ($CH_YR * $childCount) + ($IN_YR * $infantCount));
                            $MUFee = (($AD_MU * $adultCount) + ($CH_MU * $childCount) + ($IN_MU * $infantCount));
                            $TdsOnPLB = (($ADULTNCMTDS * $adultCount) + ($CHILDNCMTDS * $childCount) + ($INFANTNCMTDS * $infantCount));
                            //$NetCommission = (($ADULTNCMTOT * $adultCount) + ($CHILDNCMTOT * $childCount) + ($INFANTNCMTOT * $infantCount));
                            $TdsOnPLBCal = isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0;
                            $PublishedFare = $PublishedFareIN;
                            $CommissionEarned = $NetCommission;
                            $PLBEarned = 0; //$result['Fare']['PLBEarned'];
                            $IncentiveEarned = 0; //$result['Fare']['IncentiveEarned'];
                            $OfferedFare = ($NetFare - $TdsOnPLBCal);
                            $markUpArr = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => $PublishedFare,
                                'OfferedFare' => $OfferedFare,
                                'intCommissionEarned' => $CommissionEarned,
                                'TdsOnPLB' => $TdsOnPLB,
                                'MUFee' => $MUFee,
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $intMemberCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            //echo '<pre>';print_r($markUpArr);
                            $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);
                            if ($kp == 0) {
                                $PublishedFareReverse += ($arrMarkUps['PublishFare']);
                            }
                            $TdsOnPLBCal = isset($ADULTNCMTDS) ? str_replace('-', '', $ADULTNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($ADULT['TF'] * $adultCount),
                                'OfferedFare' => (($ADULT['NF'] - $TdsOnPLBCal) * $adultCount),
                                'intCommissionEarned' => ($ADULT['NCM'] * $adultCount),
                                'TdsOnPLB' => ($ADULTNCMTDS * $adultCount),
                                'MUFee' => ($AD_MU * $adultCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $adultCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);


                            $FareBreakdown[0]['Currency'] = 'INR';
                            $FareBreakdown[0]['PassengerType'] = 1;
                            $FareBreakdown[0]['PassengerCount'] = $adultCount;
                            $FareBreakdown[0]['TaxIN'] = ($ADULT['TAF'] * $adultCount);
                            $FareBreakdown[0]['TotalBaseFare'] = ($ADULT['TF'] * $adultCount);
                            $FareBreakdown[0]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[0]['BaseFare'] = ($ADULT['BF'] * $adultCount);
                            $FareBreakdown[0]['CommissionEarned'] = ($ADULT['NCM'] * $adultCount);
                            $FareBreakdown[0]['TDS'] = (float)str_replace('-', '', ($ADULTNCMTDS * $adultCount));
                            $FareBreakdown[0]['MF'] = ($AD_MF * $adultCount);
                            $FareBreakdown[0]['YQ'] = ($AD_YQ * $adultCount);
                            $FareBreakdown[0]['AGST'] = ($AD_AGST * $adultCount);
                            $FareBreakdown[0]['MFT'] = ($AD_MFT * $adultCount);
                            $FareBreakdown[0]['OT'] = ($AD_OT * $adultCount);
                            $FareBreakdown[0]['MU'] = ($AD_MU * $adultCount);
                            $FareBreakdown[0]['YR'] = ($AD_YR * $adultCount);
                            $FareBreakdown[0]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[0]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[0]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[0]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[0]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[0]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[0]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency'];
                            $FareBreakdown[0]['GSTonComm'] = 0;
                            $FareBreakdown[0]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[0]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[0]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[0]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[0]['PGCharge'] = 0;
                            $FareBreakdown[0]['Baggage'] = isset($fareDetail['ADULT']['bI']['iB']) ? $fareDetail['ADULT']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[0]['CabinBaggage'] = isset($fareDetail['ADULT']['bI']['cB']) ? $fareDetail['ADULT']['bI']['cB'] : []; //Cabin Baggage ;
                            if (isset($fareDetail['CHILD'])) {
                                $TdsOnPLBCal = isset($CHILDNCMTDS) ? str_replace('-', '', $CHILDNCMTDS) : 0;
                                $markUpArrBR = array(
                                    'getMarkup' => $getMarkup,
                                    'PublishedFare' => ($CHILD['TF'] * $childCount),
                                    'OfferedFare' => (($CHILD['NF'] - $TdsOnPLBCal) * $childCount),
                                    'intCommissionEarned' => ($CHILD['NCM'] * $childCount),
                                    'TdsOnPLB' => ($CHILDNCMTDS * $childCount),
                                    'MUFee' => ($CH_MU * $childCount),
                                    'intPLBEarned' => $PLBEarned,
                                    'intIncentiveEarned' => $IncentiveEarned,
                                    'intMemberCount' => $childCount,
                                    'intFlightRoute' => $strFlightRoute,
                                    'interNationalSearch' => $interNationalSearch,
                                    'AddMarkup' => $AddMarkup,
                                );
                                $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                                $FareBreakdown[1]['Currency'] = 'INR';
                                $FareBreakdown[1]['PassengerType'] = 2;
                                $FareBreakdown[1]['PassengerCount'] = $childCount;
                                $FareBreakdown[1]['TaxIN'] = ($CHILD['TAF'] * $childCount);
                                $FareBreakdown[1]['TotalBaseFare'] = ($CHILD['TF'] * $childCount);
                                $FareBreakdown[1]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                $FareBreakdown[1]['BaseFare'] = ($CHILD['BF'] * $childCount);
                                $FareBreakdown[1]['CommissionEarned'] = ($CHILD['NCM'] * $childCount);
                                $FareBreakdown[1]['TDS'] = (float)str_replace('-', '', ($CHILDNCMTDS * $childCount));
                                $FareBreakdown[1]['MF'] = ($CH_MF * $childCount);
                                $FareBreakdown[1]['YQ'] = ($CH_YQ * $childCount);
                                $FareBreakdown[1]['AGST'] = ($CH_AGST * $childCount);
                                $FareBreakdown[1]['MFT'] = ($CH_MFT * $childCount);
                                $FareBreakdown[1]['OT'] = ($CH_OT * $childCount);
                                $FareBreakdown[1]['MU'] = ($CH_MU * $childCount);
                                $FareBreakdown[1]['YR'] = ($CH_YR * $childCount);
                                $FareBreakdown[1]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                $FareBreakdown[1]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                $FareBreakdown[1]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                $FareBreakdown[1]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                $FareBreakdown[1]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                $FareBreakdown[1]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                $FareBreakdown[1]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency'];
                                $FareBreakdown[1]['GSTonComm'] = 0;
                                $FareBreakdown[1]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                $FareBreakdown[1]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                $FareBreakdown[1]['AdditionalTxnFeeOfrd'] = 0;
                                $FareBreakdown[1]['AdditionalTxnFeePub'] = 0;
                                $FareBreakdown[1]['PGCharge'] = 0;
                                $FareBreakdown[1]['Baggage'] = isset($fareDetail['CHILD']['bI']['iB']) ? $fareDetail['CHILD']['bI']['iB'] : []; //Check In Baggage;
                                $FareBreakdown[1]['CabinBaggage'] = isset($fareDetail['CHILD']['bI']['cB']) ? $fareDetail['CHILD']['bI']['cB'] : []; //Cabin Baggage ;
                            }
                            if (isset($fareDetail['INFANT'])) {
                                $TdsOnPLBCal = isset($INFANTNCMTDS) ? str_replace('-', '', $INFANTNCMTDS) : 0;
                                $markUpArrBR = array(
                                    'getMarkup' => $getMarkup,
                                    'PublishedFare' => ($INFANT['TF'] * $infantCount),
                                    'OfferedFare' => (($INFANT['NF'] - $TdsOnPLBCal) * $infantCount),
                                    'intCommissionEarned' => ($INFANT['NCM'] * $infantCount),
                                    'TdsOnPLB' => ($INFANTNCMTDS * $infantCount),
                                    'MUFee' => ($IN_MU * $infantCount),
                                    'intPLBEarned' => $PLBEarned,
                                    'intIncentiveEarned' => $IncentiveEarned,
                                    'intMemberCount' => $infantCount,
                                    'intFlightRoute' => $strFlightRoute,
                                    'interNationalSearch' => $interNationalSearch,
                                    'AddMarkup' => $AddMarkup,
                                );
                                $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                                $FareBreakdown[2]['Currency'] = 'INR';
                                $FareBreakdown[2]['PassengerType'] = 3;
                                $FareBreakdown[2]['PassengerCount'] = $infantCount;
                                $FareBreakdown[2]['TaxIN'] = ($INFANT['TAF'] * $infantCount);
                                $FareBreakdown[2]['TotalBaseFare'] = ($INFANT['TF'] * $infantCount);
                                $FareBreakdown[2]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                $FareBreakdown[2]['BaseFare'] = ($INFANT['BF'] * $infantCount);
                                $FareBreakdown[2]['CommissionEarned'] = ($INFANT['NCM'] * $infantCount);
                                $FareBreakdown[2]['TDS'] = (float)str_replace('-', '', ($INFANTNCMTDS * $infantCount));
                                $FareBreakdown[2]['MF'] = ($IN_MF * $infantCount);
                                $FareBreakdown[2]['YQ'] = ($IN_YQ * $infantCount);
                                $FareBreakdown[2]['AGST'] = ($IN_AGST * $infantCount);
                                $FareBreakdown[2]['OT'] = ($IN_OT * $infantCount);
                                $FareBreakdown[2]['MFT'] = ($IN_MFT * $infantCount);
                                $FareBreakdown[2]['MU'] = ($IN_MU * $infantCount);
                                $FareBreakdown[2]['YR'] = ($IN_YR * $infantCount);
                                $FareBreakdown[2]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                $FareBreakdown[2]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                $FareBreakdown[2]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                $FareBreakdown[2]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                $FareBreakdown[2]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                $FareBreakdown[2]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                $FareBreakdown[2]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency'];
                                $FareBreakdown[2]['GSTonComm'] = 0;
                                $FareBreakdown[2]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                $FareBreakdown[2]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                $FareBreakdown[2]['AdditionalTxnFeeOfrd'] = 0;
                                $FareBreakdown[2]['AdditionalTxnFeePub'] = 0;
                                $FareBreakdown[2]['PGCharge'] = 0;
                                $FareBreakdown[2]['Baggage'] = isset($fareDetail['INFANT']['bI']['iB']) ? $fareDetail['INFANT']['bI']['iB'] : []; //Check In Baggage;
                                $FareBreakdown[2]['CabinBaggage'] = isset($fareDetail['INFANT']['bI']['cB']) ? $fareDetail['INFANT']['bI']['cB'] : []; //Cabin Baggage ;
                            }
                            //echo '<pre>';print_r($price);
                            $FairRulesArr[$kp] = array(
                                "Currency" => $this->CurrencyTitle, //$Currency,
                                "CurrencyRate" => $this->CurrencyRate, //$Currency,
                                "currencySysId" => $this->CurrencyId,
                                "BaseFare" => $BaseFareIN,
                                "Tax" => $TaxIN,
                                "YQTax" => $YQTax,
                                "OtherCharges" => $OtherCharges,
                                "Discount" => 0, //$Discount,
                                "ServiceFee" => $ServiceFee,
                                "ManagementFeeTax" => $ManagementFeeTax,
                                "AirlineGSTComponent" => $AirlineGSTComponent,
                                "CarrierMiscFee" => $CarrierMiscFee,
                                "MUFee" => $MUFee,
                                "intPublishedFare" => $PublishedFareIN,
                                "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                                "OfferedFare" => $arrMarkUps['intOfferedFare'],
                                "PLBEarned" => $PLBEarned,
                                "IncentiveEarned" => $IncentiveEarned,
                                "TdsOnPLB" => (float)isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0,
                                "TdsOnIncentive" => 0,
                                "AdditionalTxnFeeOfrd" => 0,
                                "AdditionalTxnFeePub" => 0,
                                "Refundable" => $Refundable,
                                "IsRefundableTxt" => $IsRefundableTxt,
                                "PriceID" => $PriceID,
                                "IsGSTRequired" => $IsGSTRequired,
                                "fareIdentifier" => str_replace('_', ' ', $fareIdentifier),
                                "SeatAvailable" => $SeatAvailable,
                                "classOfBooking" => $classOfBooking,
                                "FareClass" => $fareDetail['ADULT']['cc'],
                                "intTotalGST" => $arrMarkUps['intTotalGST'],
                                "apiMarkup" => $arrMarkUps['apiMarkup'],
                                "IntCommission" => $arrMarkUps['IntCommission'],
                                "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                                "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                                "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                                "CommEarned" => $arrMarkUps['intCommisionEarnedForAgency'],
                                "GSTonComm" => 0,
                                "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                                "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                                "IsBaggage" => $IsBaggage,
                                "IsCabinBaggage" => $IsCabinBaggage,
                                "Baggage" => $strBaggage,
                                "CabinBaggage" => $strCabinBaggage,
                                "IsMealIncludes" => $IsMealIncludes,
                                "FareBreakdown" => $FareBreakdown,
                                "arrMarkUps" => $arrMarkUps,
                            );
                            // echo '<pre>';
                            // print_r($FairRulesArr[$kp]);
                            // echo '</pre>';
                        }
                    }

                    if ($SegmentInformation) {
                        foreach ($SegmentInformation as $segments) {
                            //echo '<pre>';print_r($segments);
                            $duration = $segments['duration'];
                            $LAYOVERMinutes = $GroundTime = isset($segments['cT']) ? $segments['cT'] : 0;
                            $LAYOVERCity = $LAYOVERCityArr[] = isset($segments['cT']) ? $segments['aa']['city'] : '';
                            $FlyingMinutes += ($duration + $LAYOVERMinutes);
                            $TotalLAYOVERMinutes += $LAYOVERMinutes;

                            $FareClass = $totalPriceList['fd']['ADULT']['cB'];
                            $strBaggage = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                            $strCabinBaggage = $totalPriceList['fd']['ADULT']['bI']['cB']; ////Cabin Baggage
                            if (!empty($strCabinBaggage)) {
                                $IsBaggage = true;
                            } else {
                                $IsBaggage = false;
                            }

                            $AirlineCode = $segments['fD']['aI']['code'];
                            $AirlineName = $segments['fD']['aI']['name'];
                            $FlightNumber = $segments['fD']['fN'];
                            $SegFlightNumber = $AirlineCode . "-" . $FlightNumber;

                            $originAirportName = $segments['da']['name'];
                            $originAirportCode = $segments['da']['code'];
                            $originCityName = $segments['da']['city'];
                            $originCountryName = $segments['da']['country'];
                            $originDepTime = $segments['dt'];

                            $destinationAirportName = $segments['aa']['name'];
                            $destinationAirportCode = $segments['aa']['code'];
                            $destinationCityName = $segments['aa']['city'];
                            $destinationCountryName = $segments['aa']['country'];
                            $destinationArrTime = $segments['at'];

                            $DepTerminal = isset($segments['da']['terminal']) ? $segments['da']['terminal'] : '';
                            $ArrTerminal = isset($segments['aa']['terminal']) ? $segments['aa']['terminal'] : '';

                            $filePath = $this->getflightlogo($AirlineCode);

                            $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->MinutesToHours($LAYOVERMinutes);

                            $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($destinationArrTime);
                            $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($originDepTime);
                            $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($duration);
                            $arrSegments[] = array(
                                "originAirportName" => $originAirportName,
                                "destinationAirportName" => $destinationAirportName,
                                "originCityName" => $originCityName,
                                "originCountryName" => $originCountryName,
                                "destinationCityName" => $destinationCityName,
                                "destinationCountryName" => $destinationCountryName,
                                "destinationAirportCode" => $destinationAirportCode,
                                "destinationAirportCode" => $destinationAirportCode,
                                "destinationArrTime" => $destinationArrTime,
                                "SegFlightNumber" => $SegFlightNumber,
                                "AirlineCode" => $AirlineCode,
                                "AirlineName" => $AirlineName,
                                "FareClass" => $FareClass,
                                "originAirportCode" => $originAirportCode,
                                "originDepTime" => $originDepTime,
                                "TripIndicator" => '', //$TripIndicator,
                                "Baggage" => $strBaggage,
                                "CabinBaggage" => $strCabinBaggage,
                                "IsBaggage" => $IsBaggage,
                                "IsMealIncludes" => $IsMealIncludes,
                                "Duration" => $duration,
                                "GroundTime" => $GroundTime,
                                "NoOfSeatAvailable" => $NoOfSeatAvailable,
                                "strDepartureDtTime" => $strDepartureDtTime,
                                "strArrivalDtTime" => $strArrivalDtTime,
                                "FlightDuration" => $strDuration,
                                "LAYOVERDuration" => $LAYOVERDuration,
                                "LAYOVERCity" => $LAYOVERCity,
                                "DepTerminal" => $DepTerminal,
                                "ArrTerminal" => $ArrTerminal,
                                "filePath" => $filePath,
                            );
                        }
                    }

                    $LAYOVERTime = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalLAYOVERMinutes);

                    $AirlineCode = $OriginSegments['fD']['aI']['code'];
                    $FlightNumber = $OriginSegments['fD']['fN'];
                    $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                    $strAirlineName = $OriginSegments['fD']['aI']['name'];
                    $IsLCC = $OriginSegments['fD']['aI']['isLcc'];
                    $strSourceAirportCode = $OriginSegments['da']['code'];
                    $strDestinationAirportCode = $DestinationSegments['aa']['code'];

                    $Stops = $DestinationSegments['sN'];
                    if ($Stops == 0) {
                        $StopCountTxt = "Non-stop";
                    } else {
                        $StopCountTxt = $Stops . " Stop(s)";
                    }
                    $filePath = $this->getflightlogo($AirlineCode);
                    $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);
                    //$FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);
                    $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DestinationSegments['at']);
                    $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($OriginSegments['dt']);
                    $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';

                    $arrInsertFlightData[$key]['FlightNumber'] = $strFlightNumber;
                    $arrInsertFlightData[$key]['AirlineName'] = $strAirlineName;
                    $arrInsertFlightData[$key]['AirlineCode'] = $AirlineCode;
                    $arrInsertFlightData[$key]['FlightNumberCode'] = $FlightNumber;
                    //                $arrInsertFlightData[$key]['AirInvenSysId'] = 0;
                    $arrInsertFlightData[$key]['IsLCC'] = $IsLCC;
                    $arrInsertFlightData[$key]['IsMealIncludes'] = $IsMealIncludes;
                    $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                    $arrInsertFlightData[$key]['IsRefundable'] = $IsRefundable;
                    $arrInsertFlightData[$key]['IsRefundableTxt'] = $IsRefundableTxt;
                    $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                    $arrInsertFlightData[$key]['AirlineSysId'] = $airlineSysId;
                    $arrInsertFlightData[$key]['DepartureTime'] = $strDepartureDtTime;
                    $arrInsertFlightData[$key]['ArrivalTime'] = $strArrivalDtTime;
                    $arrInsertFlightData[$key]['TravelDate'] = $OriginSegments['dt'];
                    $arrInsertFlightData[$key]['LocalFromTime'] = str_replace('T', ' ', $OriginSegments['dt']);
                    $arrInsertFlightData[$key]['FromUTCTime'] = $OriginSegments['dt'];
                    $arrInsertFlightData[$key]['LocalToTime'] = str_replace('T', ' ', $DestinationSegments['at']);
                    $arrInsertFlightData[$key]['ToUTCTime'] = $DestinationSegments['at'];
                    $arrInsertFlightData[$key]['IsDirect'] = 0;
                    $arrInsertFlightData[$key]['FareClass'] = $strFareClass;
                    //                $arrInsertFlightData[$key]['DayLightSavingDiff'] = $DayLightSavingDiff;
                    $arrInsertFlightData[$key]['LAYOVERCity'] = isset($LAYOVERCityArr[0]) ? $LAYOVERCityArr[0] : '';
                    $arrInsertFlightData[$key]['GroundTime'] = $TotalLAYOVERMinutes;
                    $arrInsertFlightData[$key]['LAYOVERDuration'] = $LAYOVERTime;
                    $arrInsertFlightData[$key]['FlyingMinutes'] = $FlyingMinutes;
                    $arrInsertFlightData[$key]['DepartureDateTxt'] = date('D, d M', strtotime($OriginSegments['dt']));
                    $arrInsertFlightData[$key]['ArrivalDateTxt'] = date('D, d M', strtotime($DestinationSegments['at']));
                    $arrInsertFlightData[$key]['FlightDuration'] = $FlightDuration;
                    $arrInsertFlightData[$key]['SourcePlaceSysId'] = $intSourceCityId;
                    $arrInsertFlightData[$key]['DestPlaceSysId'] = $intDestinationCityId;
                    $arrInsertFlightData[$key]['SourceAirportCode'] = $strSourceAirportCode;
                    $arrInsertFlightData[$key]['DestAirportCode'] = $strDestinationAirportCode;
                    $arrInsertFlightData[$key]['SourcePlaceName'] = $sourceCityText[0];
                    $arrInsertFlightData[$key]['DestPlaceName'] = $destinationCityText[0];
                    //                $arrInsertFlightData[$key]['AirportHaultMinutes'] = $AirportHaultMinutes;
                    $arrInsertFlightData[$key]['StopCount'] = $StopCountTxt;
                    $arrInsertFlightData[$key]['Stops'] = $Stops;
                    $arrInsertFlightData[$key]['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                    $arrInsertFlightData[$key]['TotalFlightMembers'] = $intMemberCount;
                    $arrInsertFlightData[$key]['CurrencyType'] = $this->CurrencyId;
                    $arrInsertFlightData[$key]['PublishedFare'] = ($PublishedFare * $this->CurrencyRate); // As Discussed with GG
                    $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format(($PublishedFare * $this->CurrencyRate)); // As Discussed with GG
                    //                $arrInsertFlightData[$key]['CommissionEarned'] = $CommissionEarned;
                    $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                    $arrInsertFlightData[$key]['JourneyType'] = $intJourneyType;
                    $arrInsertFlightData[$key]['TripType'] = $intTripType;
                    $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                    $arrInsertFlightData[$key]['logo'] = $filePath;
                    $arrInsertFlightData[$key]['FairRules'] = $FairRulesArr;
                    $arrInsertFlightData[$key]['Segments'] = $arrSegments;
                    $arrInsertFlightData[$key]['ICSourceSysId'] = 7;
                    $arrInsertFlightData[$key]['supplier'] = 'Supplier 1';
                    $arrInsertFlightData[$key]['IsTJFlightAPI'] = true;
                    $arrInsertFlightData[$key]['bookingAllowed'] = $bookingAllowed;

                    $arrAirlineName[] = $AirlineCode . '-' . $strAirlineName;
                    $AttPriceRange[] = $PublishedFare;
                    $FiltStopCount[] = $StopCountTxt;
                    if ($FairRulesArr) {
                        foreach ($FairRulesArr as $Fare) {
                            $dddddddd[] = $Fare['PublishedFare'];
                        }
                    }
                    //$FiltPriceRange[] =
                    //$FilterPrice = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_PRICE_RANGE_5000), ($PublishedFare * $this->CurrencyRate));
                    $FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strDepartureDtTime);
                    // if ($FilterPrice) {
                    //     $arrInsertFlightData[$key]['FilterPrice'] = $FilterPrice;
                    // }
                    $arrInsertFlightData[$key]['FilterDepartureDtTime'] = $FilterDepartureDtTime;
                }
            }
            sort($dddddddd);


            $FiltPriceRangeU = (array_unique($FiltPriceRange));
            $arrAirlineName = array_unique($arrAirlineName);
            $FiltStopCount = array_unique($FiltStopCount);
            $AttPriceRange = array_unique($AttPriceRange);
            $data = array('inbound' => $arrInsertFlightData, 'dddddddd' => $dddddddd, 'arrAirlineName' => $arrAirlineName, 'FiltStopCount' => $FiltStopCount, 'ArrPriceUnique' => $FiltPriceRangeU, 'AttPriceRange' => $AttPriceRange);
            return ($data);
        } else {
            return false;
        }
    }
    public function FlightDataRoundTripInternational($apiResponse, $sessionFlightSearchParams, $AgencySysId, $AdditionalMarkup, $getMarkup)
    {

        $intResponseStatus = !empty($apiResponse['ResponseStatus']) ? $apiResponse['ResponseStatus'] : '0';
        if ($intResponseStatus == 1) {
            $objAirline = new Travel_Model_TblAirline();
            $arrAirlineList = $objAirline->getAirlineIdsAndCodeList();
            // For getting All currency Array
            //$arrCurrencyList = $this->getCurrencyIdsAndSymbolList();

            $strFlightRoute = trim($sessionFlightSearchParams['route']);
            $strTraceId = !empty($apiResponse['TraceId']) ? $apiResponse['TraceId'] : '';

            $bookingAllowed = $sessionFlightSearchParams['bookingAllowed'];
            $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
            $strReturnDate = !empty($sessionFlightSearchParams['return_dates']) ? $sessionFlightSearchParams['return_dates'] : '';
            $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
            $strSourceAirportCode = $sessionFlightSearchParams['from'];
            $strDestinationAirportCode = $sessionFlightSearchParams['to'];
            $adultCount = $sessionFlightSearchParams['adults'];
            $childCount = $sessionFlightSearchParams['child'];
            $infantCount = $sessionFlightSearchParams['infant'];
            $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];
            $sourceCityText = explode(',', $sessionFlightSearchParams['sourceCityText']);
            $destinationCityText = explode(',', $sessionFlightSearchParams['destinationCityText']);

            $intMemberCount = $adultCount + $childCount + $infantCount;
            $strFlightRoute = trim($sessionFlightSearchParams['route']);
            $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
            $intTatalPaxCT = $adultCount + $childCount;
            //$getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);

            $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
            $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);

            $arrDepatureDate = explode("/", $strDepatureDate);
            if (!empty($arrDepatureDate) ) {
                $strDepatureDate = $arrDepatureDate[2] . "-" . $arrDepatureDate[1] . "-" . $arrDepatureDate[0];
            }

            if (!empty($strReturnDate)) {
                $arrReturnDepatureDate = explode("/", $strReturnDate);
                if (!empty($arrReturnDepatureDate)) {
                    $strReturnDate = $arrReturnDepatureDate[2] . "-" . $arrReturnDepatureDate[1] . "-" . $arrReturnDepatureDate[0];
                }
            }

            $localFromDateTime = date("Y-m-d h:i", strtotime($strDepatureDate));
            $localToDateTime = date("Y-m-d h:i", strtotime($strReturnDate));
            $arrCommonInsVariables = array(
                'strTraceId' => $strTraceId,
                'localFromDateTime' => $localFromDateTime,
                'localToDateTime' => $localToDateTime,
                'strSourceAirportCode' => $strSourceAirportCode,
                'strDestinationAirportCode' => $strDestinationAirportCode,
                'intMemberCount' => $intMemberCount,
                'intSourceCityId' => $intSourceCityId,
                'intDestinationCityId' => $intDestinationCityId,
                'JourneyType' => 2, // For Round Trips API Search
                'TripType' => $strFlightRoute,
                'interNationalSearch' => isset($interNationalSearch) ? $interNationalSearch : 0
            );

            $strTraceId = $arrCommonInsVariables['strTraceId'];
            $localFromDateTime = $arrCommonInsVariables['localFromDateTime'];
            $localToDateTime = $arrCommonInsVariables['localToDateTime'];

            $strSourceAirportCode = $arrCommonInsVariables['strSourceAirportCode'];
            $strDestinationAirportCode = $arrCommonInsVariables['strDestinationAirportCode'];
            $intMemberCount = $arrCommonInsVariables['intMemberCount'];
            $intSourceCityId = $arrCommonInsVariables['intSourceCityId'];
            $intDestinationCityId = $arrCommonInsVariables['intDestinationCityId'];
            $intJourneyType = $arrCommonInsVariables['JourneyType'];
            $intTripType = $arrCommonInsVariables['TripType'];
            $interNationalSearch = isset($arrCommonInsVariables['interNationalSearch']) ? $arrCommonInsVariables['interNationalSearch'] : '0';
            $DayLightSavingDiff = 0;
            $AirportHaultMinutes = 0;
            $arrInsertFlightData = [];
            $arrAirlineName = [];
            $FiltStopCount = [];
            $DesFiltStopCount = [];
            $AttPriceRange = [];
            $FiltPriceRange = [];
            $dddddddd = [];
            try {


                // print_r(($apiResponse['OutBoundFlightResults']));die('int');
                foreach ($apiResponse['OutBoundFlightResults'] as $key => $result) {
                    $SegmentInformation = $result['sI'];
                    $totalPriceList = $result['totalPriceList'];
                    $totalPriceList = current($result['totalPriceList']);
                    $IsRefundable = $totalPriceList['fd']['ADULT']['rT'];
                    $NoOfSeatAvailable = $totalPriceList['fd']['ADULT']['sR'];
                    $strFareClass = $totalPriceList['fd']['ADULT']['cB']; //Cabin Baggage
                    $IsMealIncludes = $totalPriceList['fd']['ADULT']['mI'];
                    $bagInfo = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Check In Baggage
                    $strTraceId = $totalPriceList['id'];
                    $ResultIndex = $totalPriceList['id'];
                    if (!empty($bagInfo)) {
                        $IsBagIncludes = true;
                    } else {
                        $IsBagIncludes = false;
                    }
                    if ($IsRefundable == 0) {
                        $IsRefundableTxt = 'Non Refundable';
                    } elseif ($IsRefundable == 1) {
                        $IsRefundableTxt = 'Refundable';
                    } else {
                        $IsRefundableTxt = 'Partial Refundable';
                    }
                    $TempArr = [];
                    if ($SegmentInformation) {
                        $tp = 0;
                        foreach ($SegmentInformation as $k => $Segmentsss) {
                            $isReturnSegment = isset($Segmentsss['isRs']) ? $Segmentsss['isRs'] : false;
                            if (!$isReturnSegment) {
                                $TempArr['onward'][$k] = $Segmentsss;
                            } else {
                                $TempArr['return'][$k] = $Segmentsss;
                            }
                        }
                    }

                    $OriginOnward = current($TempArr['onward']);
                    $DestinationOnward = end($TempArr['onward']);
                    $AirlineCode = $OriginOnward['fD']['aI']['code'];
                    $FlyingMinutes = 0;
                    $TotalLAYOVERMinutes = 0;
                    $LAYOVERCityArr = [];
                    $PublishedFare = 0;
                    $PublishedFareReverse = 0;
                    $BaseFare = 0;
                    $Tax = 0;
                    $YQTax = 0;
                    $OtherCharges = 0;
                    $ServiceFee = 0;
                    $FareBreakdown = [];
                    $FairRulesArr = [];
                    array_multisort($result['totalPriceList']);
                    if ($result['totalPriceList']) {
                        foreach ($result['totalPriceList'] as $kp => $price) {
                            $fareDetail = $price['fd'];

                            // echo '<pre>';
                            // print_r($fareDetail);
                            // echo '</pre>';
                            $SeatAvailable = $fareDetail['ADULT']['sR'];
                            $classOfBooking = $fareDetail['ADULT']['cB'];
                            $Refundable = $fareDetail['ADULT']['rT'];
                            $PriceID = $price['id'];
                            $fareIdentifier = $price['fareIdentifier'];

                            $fareIdentifier = $price['fareIdentifier'];

                            $AddMarkup = isset($AdditionalMarkup['finalArr'][$fareIdentifier]) ? $AdditionalMarkup['finalArr'][$fareIdentifier] : [];
                           
                            $fareremarks = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['remarks']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['remarks'] : '';
                            $fareIdentifier = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier'] : '';
                            $colors = !empty($AddMarkup['color']) ? $AddMarkup['color'] : '#000000';
                            $MarkUpValue = isset($AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue']) ? $AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue'] : 0;
                            $AddMarkup['markup_b2c'] = ($AddMarkup['markup_b2c'] + $MarkUpValue);
                            if (empty($fareIdentifier)) {
                                $fareIdentifier = $price['fareIdentifier'];
                            }

                            $IsMealIncludes = $fareDetail['ADULT']['mI'];
                            $strBaggage = $price['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                            $strCabinBaggage = $price['fd']['ADULT']['bI']['cB']; ////Cabin Baggage

                            if (!empty($strCabinBaggage)) {
                                $IsCabinBaggage = true;
                            } else {
                                $IsCabinBaggage = false;
                            }

                            if (!empty($strBaggage)) {
                                $IsBaggage = true;
                            } else {
                                $IsBaggage = false;
                            }
                            if ($price['fareIdentifier'] == 'SME') {
                                $IsGSTRequired = true;
                            } else {
                                $IsGSTRequired = false;
                            }
                            if ($Refundable == 0) {
                                $IsRefundableTxt = 'Non Refundable';
                            } elseif ($Refundable == 1) {
                                $IsRefundableTxt = 'Refundable';
                            } else {
                                $IsRefundableTxt = 'Partial Refundable';
                            }
                            $ADULT = $fareDetail['ADULT']['fC']; //fare Components
                            $CHILD = isset($fareDetail['CHILD']['fC']) ? $fareDetail['CHILD']['fC'] : []; //fare Components
                            $INFANT = isset($fareDetail['INFANT']['fC']) ? $fareDetail['INFANT']['fC'] : []; //fare Components

                            $ADULTafC = $fareDetail['ADULT']['afC']['TAF']; //additional fareComponents
                            $CHILDafC = isset($fareDetail['CHILD']['afC']['TAF']) ? $fareDetail['CHILD']['afC']['TAF'] : []; //additional fareComponents
                            $INFANTafC = isset($fareDetail['INFANT']['afC']['TAF']) ? $fareDetail['INFANT']['afC']['TAF'] : []; //additional fareComponents

                            $ADULTNCMTDS = isset($fareDetail['ADULT']['afC']['NCM']['TDS']) ? $fareDetail['ADULT']['afC']['NCM']['TDS'] : 0; //TDS
                            $CHILDNCMTDS = isset($fareDetail['CHILD']['afC']['NCM']['TDS']) ? $fareDetail['CHILD']['afC']['NCM']['TDS'] : 0; //TDS
                            $INFANTNCMTDS = isset($fareDetail['INFANT']['afC']['NCM']['TDS']) ? $fareDetail['INFANT']['afC']['NCM']['TDS'] : 0; //TDS

                            $ADULTNCMTOT = isset($fareDetail['ADULT']['afC']['NCM']['OT']) ? $fareDetail['ADULT']['afC']['NCM']['OT'] : 0; //- Gross Commission
                            $CHILDNCMTOT = isset($fareDetail['CHILD']['afC']['NCM']['OT']) ? $fareDetail['CHILD']['afC']['NCM']['OT'] : 0; //- Gross Commission
                            $INFANTNCMTOT = isset($fareDetail['INFANT']['afC']['NCM']['OT']) ? $fareDetail['INFANT']['afC']['NCM']['OT'] : 0; //- Gross Commission

                            $AD_MF = isset($ADULTafC['MF']) ? $ADULTafC['MF'] : 0; //Management Fee
                            $AD_YQ = isset($ADULTafC['YQ']) ? $ADULTafC['YQ'] : 0; //Fuel Surcharge
                            $AD_AGST = isset($ADULTafC['AGST']) ? $ADULTafC['AGST'] : 0; //Airline GST Component
                            $AD_MFT = isset($ADULTafC['MFT']) ? $ADULTafC['MFT'] : 0; //Management Fee Tax
                            $AD_OT = isset($ADULTafC['OT']) ? $ADULTafC['OT'] : 0; //Other Charges
                            $AD_MU = isset($ADULTafC['MU']) ? $ADULTafC['MU'] : 0; //markup
                            $AD_YR = isset($ADULTafC['YR']) ? $ADULTafC['YR'] : 0; //Carrier Misc Fee

                            $CH_MF = isset($CHILDafC['MF']) ? $CHILDafC['MF'] : 0; //Management Fee
                            $CH_YQ = isset($CHILDafC['YQ']) ? $CHILDafC['YQ'] : 0; //Fuel Surcharge
                            $CH_AGST = isset($CHILDafC['AGST']) ? $CHILDafC['AGST'] : 0; //Airline GST Component
                            $CH_MFT = isset($CHILDafC['MFT']) ? $CHILDafC['MFT'] : 0; //Management Fee Tax
                            $CH_OT = isset($CHILDafC['OT']) ? $CHILDafC['OT'] : 0; //Other Charges
                            $CH_MU = isset($CHILDafC['MU']) ? $CHILDafC['MU'] : 0; //markup
                            $CH_YR = isset($CHILDafC['YR']) ? $CHILDafC['YR'] : 0; //Carrier Misc Fee

                            $IN_MF = isset($INFANTafC['MF']) ? $INFANTafC['MF'] : 0; //Management Fee
                            $IN_YQ = isset($INFANTafC['YQ']) ? $INFANTafC['YQ'] : 0; //Fuel Surcharge
                            $IN_AGST = isset($INFANTafC['AGST']) ? $INFANTafC['AGST'] : 0; //Airline GST Component
                            $IN_MFT = isset($INFANTafC['MFT']) ? $INFANTafC['MFT'] : 0; //Management Fee Tax
                            $IN_OT = isset($INFANTafC['OT']) ? $INFANTafC['OT'] : 0; //Other Charges
                            $IN_MU = isset($INFANTafC['MU']) ? $INFANTafC['MU'] : 0; //markup
                            $IN_YR = isset($INFANTafC['YR']) ? $INFANTafC['YR'] : 0; //Carrier Misc Fee

                            if ($kp == 0) {
                                $PublishedFare += (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                                $BaseFare += (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                                $Tax += (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                            }

                            $PublishedFareIN = (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                            $BaseFareIN = (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                            $TaxIN = (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                            $NetFare = (($ADULT['NF'] * $adultCount) + ($CHILD['NF'] * $childCount) + ($INFANT['NF'] * $infantCount)); //Taxes and Fees
                            $NetCommission = (($ADULT['NCM'] * $adultCount) + ($CHILD['NCM'] * $childCount) + ($INFANT['NCM'] * $infantCount)); //Taxes and Fees
                            //echo '<pre>';print_r(($ADULTafC));echo '</pre>';
                            $YQTax = (($AD_YQ * $adultCount) + ($CH_YQ * $childCount) + ($IN_YQ * $infantCount));
                            $OtherCharges = (($AD_OT * $adultCount) + ($CH_OT * $childCount) + ($IN_OT * $infantCount));
                            $ServiceFee = (($AD_MF * $adultCount) + ($CH_MF * $childCount) + ($IN_MF * $infantCount));
                            $ManagementFeeTax = (($AD_MFT * $adultCount) + ($CH_MFT * $childCount) + ($IN_MFT * $infantCount));
                            $AirlineGSTComponent = (($AD_AGST * $adultCount) + ($CH_AGST * $childCount) + ($IN_AGST * $infantCount));
                            $CarrierMiscFee = (($AD_YR * $adultCount) + ($CH_YR * $childCount) + ($IN_YR * $infantCount));
                            $MUFee = (($AD_MU * $adultCount) + ($CH_MU * $childCount) + ($IN_MU * $infantCount));
                            $TdsOnPLB = (($ADULTNCMTDS * $adultCount) + ($CHILDNCMTDS * $childCount) + ($INFANTNCMTDS * $infantCount));
                            //$NetCommission = (($ADULTNCMTOT * $adultCount) + ($CHILDNCMTOT * $childCount) + ($INFANTNCMTOT * $infantCount));
                            $TdsOnPLBCal = isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0;
                            $PublishedFare = $PublishedFareIN;
                            $CommissionEarned = $NetCommission;
                            $PLBEarned = 0; //$result['Fare']['PLBEarned'];
                            $IncentiveEarned = 0; //$result['Fare']['IncentiveEarned'];
                            $OfferedFare = ($NetFare - $TdsOnPLBCal);
                            $markUpArr = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => $PublishedFare,
                                'OfferedFare' => $OfferedFare,
                                'intCommissionEarned' => $CommissionEarned,
                                'TdsOnPLB' => $TdsOnPLB,
                                'MUFee' => $MUFee,
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $intMemberCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );

                            $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);

                            if ($kp == 0) {
                                $PublishedFareReverse += ($arrMarkUps['PublishFare']);
                            }
                            $TdsOnPLBCal = isset($ADULTNCMTDS) ? str_replace('-', '', $ADULTNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($ADULT['TF'] * $adultCount),
                                'OfferedFare' => (($ADULT['NF'] - $TdsOnPLBCal) * $adultCount),
                                'intCommissionEarned' => ($ADULT['NCM'] * $adultCount),
                                'TdsOnPLB' => ($ADULTNCMTDS * $adultCount),
                                'MUFee' => ($AD_MU * $adultCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $adultCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);


                            $FareBreakdown[0]['Currency'] = 'INR';
                            $FareBreakdown[0]['PassengerType'] = 1;
                            $FareBreakdown[0]['PassengerCount'] = $adultCount;
                            $FareBreakdown[0]['TaxIN'] = ($ADULT['TAF'] * $adultCount);
                            $FareBreakdown[0]['TotalBaseFare'] = ($ADULT['TF'] * $adultCount);
                            $FareBreakdown[0]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[0]['BaseFare'] = ($ADULT['BF'] * $adultCount);
                            $FareBreakdown[0]['CommissionEarned'] = ($ADULT['NCM'] * $adultCount);
                            $FareBreakdown[0]['TDS'] = (float)str_replace('-', '', ($ADULTNCMTDS * $adultCount));
                            $FareBreakdown[0]['MF'] = ($AD_MF * $adultCount);
                            $FareBreakdown[0]['YQ'] = ($AD_YQ * $adultCount);
                            $FareBreakdown[0]['AGST'] = ($AD_AGST * $adultCount);
                            $FareBreakdown[0]['MFT'] = ($AD_MFT * $adultCount);
                            $FareBreakdown[0]['OT'] = ($AD_OT * $adultCount);
                            $FareBreakdown[0]['MU'] = ($AD_MU * $adultCount);
                            $FareBreakdown[0]['YR'] = ($AD_YR * $adultCount);
                            $FareBreakdown[0]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[0]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[0]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[0]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[0]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[0]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[0]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency'];
                            $FareBreakdown[0]['GSTonComm'] = 0;
                            $FareBreakdown[0]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[0]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[0]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[0]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[0]['PGCharge'] = 0;
                            $FareBreakdown[0]['Baggage'] = isset($fareDetail['ADULT']['bI']['iB']) ? $fareDetail['ADULT']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[0]['CabinBaggage'] = isset($fareDetail['ADULT']['bI']['cB']) ? $fareDetail['ADULT']['bI']['cB'] : []; //Cabin Baggage ;
                            if (isset($fareDetail['CHILD'])) {
                                $TdsOnPLBCal = isset($CHILDNCMTDS) ? str_replace('-', '', $CHILDNCMTDS) : 0;
                                $markUpArrBR = array(
                                    'getMarkup' => $getMarkup,
                                    'PublishedFare' => ($CHILD['TF'] * $childCount),
                                    'OfferedFare' => (($CHILD['NF'] - $TdsOnPLBCal) * $childCount),
                                    'intCommissionEarned' => ($CHILD['NCM'] * $childCount),
                                    'TdsOnPLB' => ($CHILDNCMTDS * $childCount),
                                    'MUFee' => ($CH_MU * $childCount),
                                    'intPLBEarned' => $PLBEarned,
                                    'intIncentiveEarned' => $IncentiveEarned,
                                    'intMemberCount' => $childCount,
                                    'intFlightRoute' => $strFlightRoute,
                                    'interNationalSearch' => $interNationalSearch,
                                    'AddMarkup' => $AddMarkup,
                                );
                                $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                                $FareBreakdown[1]['Currency'] = 'INR';
                                $FareBreakdown[1]['PassengerType'] = 2;
                                $FareBreakdown[1]['PassengerCount'] = $childCount;
                                $FareBreakdown[1]['TaxIN'] = ($CHILD['TAF'] * $childCount);
                                $FareBreakdown[1]['TotalBaseFare'] = ($CHILD['TF'] * $childCount);
                                $FareBreakdown[1]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                $FareBreakdown[1]['BaseFare'] = ($CHILD['BF'] * $childCount);
                                $FareBreakdown[1]['CommissionEarned'] = ($CHILD['NCM'] * $childCount);
                                $FareBreakdown[1]['TDS'] = (float)str_replace('-', '', ($CHILDNCMTDS * $childCount));
                                $FareBreakdown[1]['MF'] = ($CH_MF * $childCount);
                                $FareBreakdown[1]['YQ'] = ($CH_YQ * $childCount);
                                $FareBreakdown[1]['AGST'] = ($CH_AGST * $childCount);
                                $FareBreakdown[1]['MFT'] = ($CH_MFT * $childCount);
                                $FareBreakdown[1]['OT'] = ($CH_OT * $childCount);
                                $FareBreakdown[1]['MU'] = ($CH_MU * $childCount);
                                $FareBreakdown[1]['YR'] = ($CH_YR * $childCount);
                                $FareBreakdown[1]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                $FareBreakdown[1]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                $FareBreakdown[1]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                $FareBreakdown[1]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                $FareBreakdown[1]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                $FareBreakdown[1]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                $FareBreakdown[1]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency'];
                                $FareBreakdown[1]['GSTonComm'] = 0;
                                $FareBreakdown[1]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                $FareBreakdown[1]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                $FareBreakdown[1]['AdditionalTxnFeeOfrd'] = 0;
                                $FareBreakdown[1]['AdditionalTxnFeePub'] = 0;
                                $FareBreakdown[1]['PGCharge'] = 0;
                                $FareBreakdown[1]['Baggage'] = isset($fareDetail['CHILD']['bI']['iB']) ? $fareDetail['CHILD']['bI']['iB'] : []; //Check In Baggage;
                                $FareBreakdown[1]['CabinBaggage'] = isset($fareDetail['CHILD']['bI']['cB']) ? $fareDetail['CHILD']['bI']['cB'] : []; //Cabin Baggage ;
                            }
                            if (isset($fareDetail['INFANT'])) {
                                $TdsOnPLBCal = isset($INFANTNCMTDS) ? str_replace('-', '', $INFANTNCMTDS) : 0;
                                $markUpArrBR = array(
                                    'getMarkup' => $getMarkup,
                                    'PublishedFare' => ($INFANT['TF'] * $infantCount),
                                    'OfferedFare' => (($INFANT['NF'] - $TdsOnPLBCal) * $infantCount),
                                    'intCommissionEarned' => ($INFANT['NCM'] * $infantCount),
                                    'TdsOnPLB' => ($INFANTNCMTDS * $infantCount),
                                    'MUFee' => ($IN_MU * $infantCount),
                                    'intPLBEarned' => $PLBEarned,
                                    'intIncentiveEarned' => $IncentiveEarned,
                                    'intMemberCount' => $infantCount,
                                    'intFlightRoute' => $strFlightRoute,
                                    'interNationalSearch' => $interNationalSearch,
                                    'AddMarkup' => $AddMarkup,
                                );
                                $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                                $FareBreakdown[2]['Currency'] = 'INR';
                                $FareBreakdown[2]['PassengerType'] = 3;
                                $FareBreakdown[2]['PassengerCount'] = $infantCount;
                                $FareBreakdown[2]['TaxIN'] = ($INFANT['TAF'] * $infantCount);
                                $FareBreakdown[2]['TotalBaseFare'] = ($INFANT['TF'] * $infantCount);
                                $FareBreakdown[2]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                $FareBreakdown[2]['BaseFare'] = ($INFANT['BF'] * $infantCount);
                                $FareBreakdown[2]['CommissionEarned'] = ($INFANT['NCM'] * $infantCount);
                                $FareBreakdown[2]['TDS'] = (float)str_replace('-', '', ($INFANTNCMTDS * $infantCount));
                                $FareBreakdown[2]['MF'] = ($IN_MF * $infantCount);
                                $FareBreakdown[2]['YQ'] = ($IN_YQ * $infantCount);
                                $FareBreakdown[2]['AGST'] = ($IN_AGST * $infantCount);
                                $FareBreakdown[2]['OT'] = ($IN_OT * $infantCount);
                                $FareBreakdown[2]['MFT'] = ($IN_MFT * $infantCount);
                                $FareBreakdown[2]['MU'] = ($IN_MU * $infantCount);
                                $FareBreakdown[2]['YR'] = ($IN_YR * $infantCount);
                                $FareBreakdown[2]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                $FareBreakdown[2]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                $FareBreakdown[2]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                $FareBreakdown[2]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                $FareBreakdown[2]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                $FareBreakdown[2]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                $FareBreakdown[2]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency'];
                                $FareBreakdown[2]['GSTonComm'] = 0;
                                $FareBreakdown[2]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                $FareBreakdown[2]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                $FareBreakdown[2]['AdditionalTxnFeeOfrd'] = 0;
                                $FareBreakdown[2]['AdditionalTxnFeePub'] = 0;
                                $FareBreakdown[2]['PGCharge'] = 0;
                                $FareBreakdown[2]['Baggage'] = isset($fareDetail['INFANT']['bI']['iB']) ? $fareDetail['INFANT']['bI']['iB'] : []; //Check In Baggage;
                                $FareBreakdown[2]['CabinBaggage'] = isset($fareDetail['INFANT']['bI']['cB']) ? $fareDetail['INFANT']['bI']['cB'] : []; //Cabin Baggage ;
                            }
                            //echo '<pre>';print_r($price);
                            $FairRulesArr[$kp] = array(
                                "Currency" => $this->CurrencyTitle, //$Currency,
                                "CurrencyRate" => $this->CurrencyRate, //$Currency,
                                "currencySysId" => $this->CurrencyId,
                                "BaseFare" => $BaseFareIN,
                                "Tax" => $TaxIN,
                                "YQTax" => $YQTax,
                                "OtherCharges" => $OtherCharges,
                                "Discount" => 0, //$Discount,
                                "ServiceFee" => $ServiceFee,
                                "ManagementFeeTax" => $ManagementFeeTax,
                                "AirlineGSTComponent" => $AirlineGSTComponent,
                                "CarrierMiscFee" => $CarrierMiscFee,
                                "MUFee" => $MUFee,
                                "intPublishedFare" => $PublishedFareIN,
                                "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                                "OfferedFare" => $arrMarkUps['intOfferedFare'],
                                "PLBEarned" => $PLBEarned,
                                "IncentiveEarned" => $IncentiveEarned,
                                "TdsOnPLB" => (float)isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0,
                                "TdsOnIncentive" => 0,
                                "AdditionalTxnFeeOfrd" => 0,
                                "AdditionalTxnFeePub" => 0,
                                "Refundable" => $Refundable,
                                "IsRefundableTxt" => $IsRefundableTxt,
                                "PriceID" => $PriceID,
                                "IsGSTRequired" => $IsGSTRequired,
                                "fareIdentifier" => str_replace('_', ' ', $fareIdentifier),
                                "SeatAvailable" => $SeatAvailable,
                                "classOfBooking" => $classOfBooking,
                                "FareClass" => ucfirst($fareDetail['ADULT']['cc']),
                                "intTotalGST" => $arrMarkUps['intTotalGST'],
                                "apiMarkup" => $arrMarkUps['apiMarkup'],
                                "IntCommission" => $arrMarkUps['IntCommission'],
                                "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                                "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                                "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                                "CommEarned" => $arrMarkUps['intCommisionEarnedForAgency'],
                                "GSTonComm" => 0,
                                "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                                "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                                "IsBaggage" => $IsBaggage,
                                "IsCabinBaggage" => $IsCabinBaggage,
                                "Baggage" => $strBaggage,
                                "CabinBaggage" => $strCabinBaggage,
                                "IsMealIncludes" => $IsMealIncludes,
                                "FareBreakdown" => $FareBreakdown,
                                //"arrMarkUps" => $arrMarkUps,
                            );
                            
                        }
                    }
                    // echo '<pre>';
                    // print_r($FairRulesArr);
                    // echo '</pre>';
                    // die;
                    $TotalDurationReturn = 0;
                    $TotalDurationOnward = 0;
                    $TotalLAYOVERMinutes = 0;
                    $arrSegments = [];

                    if ($SegmentInformation) {
                        foreach ($SegmentInformation as $segments) {
                            //echo '<pre>';print_r($segments);
                            $duration = $segments['duration'];
                            $LAYOVERMinutes = $GroundTime = isset($segments['cT']) ? $segments['cT'] : 0;
                            $LAYOVERCity = $LAYOVERCityArr[] = isset($segments['cT']) ? $segments['aa']['city'] : '';
                            $FlyingMinutes += ($duration + $LAYOVERMinutes);
                            $TotalLAYOVERMinutes += $LAYOVERMinutes;

                            $FareClass = $totalPriceList['fd']['ADULT']['cB'];
                            $strBaggage = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                            $strCabinBaggage = $totalPriceList['fd']['ADULT']['bI']['cB']; ////Cabin Baggage
                            if (!empty($strCabinBaggage)) {
                                $IsBaggage = true;
                            } else {
                                $IsBaggage = false;
                            }

                            $AirlineCode = $segments['fD']['aI']['code'];
                            $AirlineName = $segments['fD']['aI']['name'];
                            $FlightNumber = $segments['fD']['fN'];
                            $SegFlightNumber = $AirlineCode . "-" . $FlightNumber;

                            $originAirportName = $segments['da']['name'];
                            $originAirportCode = $segments['da']['code'];
                            $originCityName = $segments['da']['city'];
                            $originCountryName = $segments['da']['country'];
                            $originDepTime = $segments['dt'];

                            $destinationAirportName = $segments['aa']['name'];
                            $destinationAirportCode = $segments['aa']['code'];
                            $destinationCityName = $segments['aa']['city'];
                            $destinationCountryName = $segments['aa']['country'];
                            $destinationArrTime = $segments['at'];
                            if (isset($segments['isRs']) && $segments['isRs'] == true) {
                                $isReturnSegment = true;
                                $TotalDurationReturn += ($duration + $LAYOVERMinutes);
                            } else {
                                $isReturnSegment = false;
                                $TotalDurationOnward += ($duration + $LAYOVERMinutes);
                            }

                            $DepTerminal = isset($segments['da']['terminal']) ? $segments['da']['terminal'] : '';
                            $ArrTerminal = isset($segments['aa']['terminal']) ? $segments['aa']['terminal'] : '';

                            $filePath = $this->getflightlogo($AirlineCode);

                            $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($LAYOVERMinutes);

                            $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($destinationArrTime);
                            $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($originDepTime);
                            $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($duration);
                            $arrSegments[] = array(
                                "isReturnSegment" => $isReturnSegment,
                                "originAirportName" => $originAirportName,
                                "destinationAirportName" => $destinationAirportName,
                                "originCityName" => $originCityName,
                                "originCountryName" => $originCountryName,
                                "destinationCityName" => $destinationCityName,
                                "destinationCountryName" => $destinationCountryName,
                                "destinationAirportCode" => $destinationAirportCode,
                                "destinationAirportCode" => $destinationAirportCode,
                                "destinationArrTime" => $destinationArrTime,
                                "SegFlightNumber" => $SegFlightNumber,
                                "AirlineCode" => $AirlineCode,
                                "AirlineName" => $AirlineName,
                                "FareClass" => $FareClass,
                                "originAirportCode" => $originAirportCode,
                                "originDepTime" => $originDepTime,
                                "TripIndicator" => '', //$TripIndicator,
                                "Baggage" => $strBaggage,
                                "CabinBaggage" => $strCabinBaggage,
                                "IsBaggage" => $IsBaggage,
                                "IsMealIncludes" => $IsMealIncludes,
                                "Duration" => $duration,
                                "GroundTime" => $GroundTime,
                                "NoOfSeatAvailable" => $NoOfSeatAvailable,
                                "strDepartureDtTime" => $strDepartureDtTime,
                                "strArrivalDtTime" => $strArrivalDtTime,
                                "FlightDuration" => $strDuration,
                                "LAYOVERDuration" => $LAYOVERDuration,
                                "LAYOVERCity" => $LAYOVERCity,
                                "DepTerminal" => $DepTerminal,
                                "ArrTerminal" => $ArrTerminal,
                                "filePath" => $filePath,
                            );
                        }
                    }


                    $TotalLAYOVERMinutesO = 0;
                    $FlyingMinutesO = 0;
                    $LAYOVERCityArrO = [];
                    if ($TempArr['onward']) {
                        foreach ($TempArr['onward'] as $onwd) {
                            $duration = isset($segments['duration']) ? $segments['duration'] : 0;
                            $LAYOVERMinutes = $GroundTime = isset($onwd['cT']) ? $onwd['cT'] : 0;
                            $LAYOVERCity = $LAYOVERCityArrO[] = isset($onwd['cT']) ? $onwd['aa']['city'] : '';
                            $FlyingMinutesO += ($duration + $LAYOVERMinutes);
                            $TotalLAYOVERMinutesO += $LAYOVERMinutes;
                        }
                    }
                    //echo '<pre>';print_r($OriginOnward['dt'].$DestinationOnward['at']);echo '</pre>';
                    //echo $TotalLAYOVERMinutesO.'=='.$FlyingMinutesO.'<br>';
                    $LAYOVERTimeO = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalLAYOVERMinutesO);
                    $AirlineCode = $OriginOnward['fD']['aI']['code'];
                    $FlightNumber = $OriginOnward['fD']['fN'];
                    //$strFlightNumber = $OriginOnward . "-" . $FlightNumber;
                    $strAirlineName = $OriginOnward['fD']['aI']['name'];
                    $OrFlightNumber = $AirlineCode . '-' . $FlightNumber;
                    $IsLCC = $OriginOnward['fD']['aI']['isLcc'];
                    $strSourceAirportCode = $OriginOnward['da']['code'];
                    $strDestinationAirportCode = $DestinationOnward['aa']['code'];
                    $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                    $filePath = $this->getflightlogo($AirlineCode);
                    $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalDurationOnward);
                    $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DestinationOnward['at']);
                    $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($OriginOnward['dt']);
                    $Stops = $DestinationOnward['sN'];
                    if ($Stops == 0) {
                        $OrStopCountTxt = "Non-stop";
                    } else {
                        $OrStopCountTxt = $Stops . " Stop(s)";
                    }


                    $arrInsertFlightData[$key]['origin']['FlightNumber'] = $FlightNumber;
                    $arrInsertFlightData[$key]['origin']['AirlineName'] = $strAirlineName;
                    $arrInsertFlightData[$key]['origin']['AirlineCode'] = $AirlineCode;
                    $arrInsertFlightData[$key]['origin']['OrFlightNumber'] = $OrFlightNumber;
                    $arrInsertFlightData[$key]['origin']['AirInvenSysId'] = 0;
                    $arrInsertFlightData[$key]['origin']['IsLCC'] = $IsLCC;
                    $arrInsertFlightData[$key]['origin']['IsMealIncludes'] = $IsMealIncludes;
                    $arrInsertFlightData[$key]['origin']['IsBagIncludes'] = $IsBagIncludes;
                    $arrInsertFlightData[$key]['origin']['IsRefundable'] = $IsRefundable;
                    $arrInsertFlightData[$key]['origin']['IsRefundableTxt'] = $IsRefundableTxt;
                    $arrInsertFlightData[$key]['origin']['apiTraceId'] = $strTraceId;
                    $arrInsertFlightData[$key]['origin']['AirlineSysId'] = $airlineSysId;
                    $arrInsertFlightData[$key]['origin']['DepartureTime'] = $strDepartureDtTime;
                    $arrInsertFlightData[$key]['origin']['ArrivalTime'] = $strArrivalDtTime;
                    $arrInsertFlightData[$key]['origin']['TravelDate'] = $OriginOnward['dt'];
                    $arrInsertFlightData[$key]['origin']['LocalFromTime'] = str_replace('T', ' ', $OriginOnward['dt']);
                    $arrInsertFlightData[$key]['origin']['FromUTCTime'] = $OriginOnward['dt'];
                    $arrInsertFlightData[$key]['origin']['LocalToTime'] = str_replace('T', ' ', $DestinationOnward['at']);
                    $arrInsertFlightData[$key]['origin']['ToUTCTime'] = $DestinationOnward['at'];
                    $arrInsertFlightData[$key]['origin']['IsDirect'] = 0;
                    $arrInsertFlightData[$key]['origin']['FareClass'] = $strFareClass;
                    $arrInsertFlightData[$key]['origin']['LAYOVERCity'] = isset($LAYOVERCityArrO[0]) ? $LAYOVERCityArrO[0] : '';
                    $arrInsertFlightData[$key]['origin']['GroundTime'] = $TotalLAYOVERMinutesO;
                    $arrInsertFlightData[$key]['origin']['LAYOVERDuration'] = $LAYOVERTimeO;
                    $arrInsertFlightData[$key]['origin']['FlyingMinutes'] = $FlyingMinutesO;
                    $arrInsertFlightData[$key]['origin']['DepartureDateTxt'] = date('D, d M', strtotime($OriginOnward['dt']));
                    $arrInsertFlightData[$key]['origin']['ArrivalDateTxt'] = date('D, d M', strtotime($DestinationOnward['at']));
                    $arrInsertFlightData[$key]['origin']['FlightDuration'] = $FlightDuration;
                    $arrInsertFlightData[$key]['origin']['SourcePlaceName'] = $sourceCityText[0];
                    $arrInsertFlightData[$key]['origin']['DestPlaceName'] = $destinationCityText[0];
                    $arrInsertFlightData[$key]['origin']['SourcePlaceSysId'] = $intSourceCityId;
                    $arrInsertFlightData[$key]['origin']['DestPlaceSysId'] = $intDestinationCityId;
                    $arrInsertFlightData[$key]['origin']['SourceAirportCode'] = $strSourceAirportCode;
                    $arrInsertFlightData[$key]['origin']['DestAirportCode'] = $strDestinationAirportCode;
                    $arrInsertFlightData[$key]['origin']['StopCount'] = $OrStopCountTxt;
                    $arrInsertFlightData[$key]['origin']['Stops'] = $Stops;
                    $arrInsertFlightData[$key]['origin']['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                    $arrInsertFlightData[$key]['origin']['TotalFlightMembers'] = $intMemberCount;
                    $arrInsertFlightData[$key]['origin']['CurrencyType'] = 1;
                    $arrInsertFlightData[$key]['origin']['JourneyType'] = 1;
                    $arrInsertFlightData[$key]['origin']['bookingAllowed'] = $bookingAllowed;
                    $arrInsertFlightData[$key]['origin']['TripType'] = $intTripType;
                    $arrInsertFlightData[$key]['origin']['IsInternational'] = $interNationalSearch;
                    $arrInsertFlightData[$key]['origin']['logo'] = $filePath;

                    //// Rrturn variable

                    $TotalLAYOVERMinutesD = 0;
                    $FlyingMinutesD = 0;
                    $LAYOVERCityArrD = [];
                    if ($TempArr['return']) {
                        foreach ($TempArr['return'] as $onwd) {
                            $duration = $segments['duration'];
                            $LAYOVERMinutes = $GroundTime = isset($onwd['cT']) ? $onwd['cT'] : 0;
                            $LAYOVERCity = $LAYOVERCityArrD[] = isset($onwd['cT']) ? $onwd['aa']['city'] : '';
                            $FlyingMinutesD += ($duration + $LAYOVERMinutes);
                            $TotalLAYOVERMinutesD += $LAYOVERMinutes;
                        }
                    }
                    $OriginReturn = current($TempArr['return']);
                    $DestinationReturn = end($TempArr['return']);

                    $AirlineCode = $OriginReturn['fD']['aI']['code'];
                    $FlightNumber = $OriginReturn['fD']['fN'];
                    //$strFlightNumber = $OriginReturn . "-" . $FlightNumber;
                    $strAirlineName = $OriginReturn['fD']['aI']['name'];
                    $DeFlightNumber = $AirlineCode . '-' . $FlightNumber;
                    $IsLCC = $OriginReturn['fD']['aI']['isLcc'];
                    $strSourceAirportCode = $OriginReturn['da']['code'];
                    $strDestinationAirportCode = $DestinationReturn['aa']['code'];
                    $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                    $filePath = $this->getflightlogo($AirlineCode);
                    $LAYOVERTimeD = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalLAYOVERMinutesD);
                    $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalDurationReturn);
                    $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DestinationReturn['at']);
                    $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($OriginReturn['dt']);
                    //// end return variable.

                    $Stops = $DestinationReturn['sN'];
                    if ($Stops == 0) {
                        $DeStopCountTxt = "Non-stop";
                    } else {
                        $DeStopCountTxt = $Stops . " Stop(s)";
                    }
                    $arrInsertFlightData[$key]['destination']['FlightNumber'] = $FlightNumber;
                    $arrInsertFlightData[$key]['destination']['AirlineName'] = $strAirlineName;
                    $arrInsertFlightData[$key]['destination']['AirlineCode'] = $AirlineCode;
                    $arrInsertFlightData[$key]['destination']['DeFlightNumber'] = $DeFlightNumber;
                    $arrInsertFlightData[$key]['destination']['AirInvenSysId'] = 0;
                    $arrInsertFlightData[$key]['destination']['IsLCC'] = $IsLCC;
                    $arrInsertFlightData[$key]['destination']['IsMealIncludes'] = $IsMealIncludes;
                    $arrInsertFlightData[$key]['destination']['IsBagIncludes'] = $IsBagIncludes;
                    $arrInsertFlightData[$key]['destination']['IsRefundable'] = $IsRefundable;
                    $arrInsertFlightData[$key]['destination']['IsRefundableTxt'] = $IsRefundableTxt;
                    $arrInsertFlightData[$key]['destination']['apiTraceId'] = $strTraceId;
                    $arrInsertFlightData[$key]['destination']['AirlineSysId'] = $airlineSysId;
                    $arrInsertFlightData[$key]['destination']['DepartureTime'] = $strDepartureDtTime;
                    $arrInsertFlightData[$key]['destination']['ArrivalTime'] = $strArrivalDtTime;
                    $arrInsertFlightData[$key]['destination']['TravelDate'] = $OriginReturn['dt'];
                    $arrInsertFlightData[$key]['destination']['LocalFromTime'] = str_replace('T', ' ', $OriginReturn['dt']);
                    $arrInsertFlightData[$key]['destination']['FromUTCTime'] = $OriginReturn['dt'];
                    $arrInsertFlightData[$key]['destination']['LocalToTime'] = str_replace('T', ' ', $DestinationReturn['at']);
                    $arrInsertFlightData[$key]['destination']['ToUTCTime'] = $DestinationReturn['at'];
                    $arrInsertFlightData[$key]['destination']['IsDirect'] = 0;
                    $arrInsertFlightData[$key]['destination']['FareClass'] = $strFareClass;
                    $arrInsertFlightData[$key]['destination']['LAYOVERCity'] = isset($LAYOVERCityArrD[0]) ? $LAYOVERCityArrD[0] : '';
                    $arrInsertFlightData[$key]['destination']['GroundTime'] = $TotalLAYOVERMinutesD;
                    $arrInsertFlightData[$key]['destination']['LAYOVERDuration'] = $LAYOVERTimeD;
                    $arrInsertFlightData[$key]['destination']['FlyingMinutes'] = $FlyingMinutesD;
                    $arrInsertFlightData[$key]['destination']['DepartureDateTxt'] = date('D, d M', strtotime($OriginReturn['dt']));
                    $arrInsertFlightData[$key]['destination']['ArrivalDateTxt'] = date('D, d M', strtotime($DestinationReturn['at']));
                    $arrInsertFlightData[$key]['destination']['FlightDuration'] = $FlightDuration;
                    $arrInsertFlightData[$key]['destination']['SourcePlaceName'] = $sourceCityText[0];
                    $arrInsertFlightData[$key]['destination']['DestPlaceName'] = $destinationCityText[0];
                    $arrInsertFlightData[$key]['destination']['SourcePlaceSysId'] = $intSourceCityId;
                    $arrInsertFlightData[$key]['destination']['DestPlaceSysId'] = $intDestinationCityId;
                    $arrInsertFlightData[$key]['destination']['SourceAirportCode'] = $strSourceAirportCode;
                    $arrInsertFlightData[$key]['destination']['DestAirportCode'] = $strDestinationAirportCode;
                    $arrInsertFlightData[$key]['destination']['StopCount'] = $DeStopCountTxt;
                    $arrInsertFlightData[$key]['destination']['Stops'] = $Stops;
                    $arrInsertFlightData[$key]['destination']['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                    $arrInsertFlightData[$key]['destination']['TotalFlightMembers'] = $intMemberCount;
                    $arrInsertFlightData[$key]['destination']['CurrencyType'] = 1;
                    $arrInsertFlightData[$key]['destination']['bookingAllowed'] = $bookingAllowed;
                    $arrInsertFlightData[$key]['destination']['JourneyType'] = $intJourneyType;
                    $arrInsertFlightData[$key]['destination']['TripType'] = $intTripType;
                    $arrInsertFlightData[$key]['destination']['IsInternational'] = $interNationalSearch;
                    $arrInsertFlightData[$key]['destination']['logo'] = $filePath;

                    $arrInsertFlightData[$key]['AirlineName'] = $strAirlineName; // As Discussed with GG
                    $arrInsertFlightData[$key]['AgencySysId'] = $AgencySysId;
                    $arrInsertFlightData[$key]['PublishedFare'] = $PublishedFare; // As Discussed with GG
                    $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format($PublishedFare);
                    $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                    $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                    $arrInsertFlightData[$key]['StopCount'] = $OrStopCountTxt;
                    $arrInsertFlightData[$key]['DepartureTime'] = $strDepartureDtTime;
                    $arrInsertFlightData[$key]['IsRefundable'] = $IsRefundable;
                    $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                    $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                    $arrInsertFlightData[$key]['SearchTraceId'] = $SearchTraceId;
                    $arrInsertFlightData[$key]['TripType'] = 2;
                    $arrInsertFlightData[$key]['JourneyType'] = 2;
                    $arrInsertFlightData[$key]['ICSourceSysId'] = 7;
                    $arrInsertFlightData[$key]['supplier'] = 'Supplier 1';
                    $arrInsertFlightData[$key]['IsTJFlightAPI'] = true;
                    $arrInsertFlightData[$key]['bookingAllowed'] = $bookingAllowed;

                    $arrInsertFlightData[$key]['SourcePlaceSysId'] = $arrCommonInsVariables['intSourceCityId'];
                    $arrInsertFlightData[$key]['DestPlaceSysId'] = $arrCommonInsVariables['intDestinationCityId'];
                    $arrInsertFlightData[$key]['SourceAirportCode'] = $arrCommonInsVariables['strSourceAirportCode'];
                    $arrInsertFlightData[$key]['DestAirportCode'] = $arrCommonInsVariables['strDestinationAirportCode'];
                    $arrInsertFlightData[$key]['LocalFromTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? $arrCommonInsVariables['localFromDateTime'] : '';
                    $arrInsertFlightData[$key]['FromUTCTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? $arrCommonInsVariables['localFromDateTime'] : '';
                    $arrInsertFlightData[$key]['LocalToTime'] = isset($arrCommonInsVariables['localToDateTime']) ? $arrCommonInsVariables['localToDateTime'] : '';
                    $arrInsertFlightData[$key]['ToUTCTime'] = isset($arrCommonInsVariables['localToDateTime']) ? $arrCommonInsVariables['localToDateTime'] : '';

                    $arrInsertFlightData[$key]['FairRules'] = $FairRulesArr;
                    $arrInsertFlightData[$key]['Segments'] = $arrSegments;

                    $arrInsertFlightData[$key]['arrCommonInsVariables'] = $arrCommonInsVariables;

                    if ($FairRulesArr) {
                        foreach ($FairRulesArr as $Fare) {
                            $dddddddd[] = $Fare['PublishedFare'];
                        }
                    }

                    $AttPriceRange[] = $PublishedFare;
                    $arrAirlineName[] = $AirlineCode . '-' . $strAirlineName;
                    $FiltStopCount[] = $OrStopCountTxt;
                    $DesFiltStopCount[] = $DeStopCountTxt;


                    //$FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strDepartureDtTime);


                    //$arrInsertFlightData[$key]['FilterDepartureDtTime'] = $FilterDepartureDtTime;
                    // echo '<pre>';
                    // print_r($arrInsertFlightData);
                    // echo '</pre>';
                    // die;
                }
                // echo '<pre>';
                // print_r($arrInsertFlightData);
                // echo '</pre>';
                //die;
                sort($dddddddd);

                $arrAirlineName = array_unique($arrAirlineName);
                $FiltStopCount = array_unique($FiltStopCount);
                $AttPriceRange = array_unique($AttPriceRange);
                $data = (array('outbound' => $arrInsertFlightData, 'dddddddd' => array_unique($dddddddd), 'arrAirlineName' => $arrAirlineName, 'FiltStopCount' => $FiltStopCount, 'AttPriceRange' => $AttPriceRange));

                // echo '<pre>';
                // print_r(($data));
                // die('www');

                return ($data);
            } catch (Zend_Exception $e) {
                print_r($e->getMessage());
                exit;
            }
        } else {
            return false;
        }
    }
    public function FlightDataMultiCity($apiResponse, $sessionFlightSearchParams, $AgencySysId, $getMarkup, $AdditionalMarkup){
        $bookingAllowed = $sessionFlightSearchParams['bookingAllowed'];
        $addMarkupArr = $sessionFlightSearchParams['addMarkupArr'];
        $AgencySysId = $sessionFlightSearchParams['AgencySysId'];
        $FlightNumberArr = $sessionFlightSearchParams['FlightNumber'];
        
        // echo "<pre>";
        // print_r($sessionFlightSearchParams);die('dddd');destinationCityText
        $intSourceCityId = ($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = ($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
        $strReturnDate = $sessionFlightSearchParams['return_dates'];
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $sourceCityText = $sessionFlightSearchParams['sourceCityText'];
        $destinationCityText = $sessionFlightSearchParams['destinationCityText'];
        $intTatalPaxCT = $adultCount + $childCount;
        
        if($interNationalSearch && $strFlightRoute == '3'){
            return $this->FlightDataMultiCityInternational($apiResponse, $sessionFlightSearchParams, $AgencySysId, $getMarkup, $AdditionalMarkup);
        }
        $intJourneyType = 2;
        $intTripType = $strFlightRoute;
        $arrInsertFlightData = [];
        $arrAirlineName = [];
        $FiltStopCount = [];
        $FiltPriceRange = [];
        $AttPriceRange = [];
        $dddddddd = [];

        $intResponseStatus = $apiResponse['ResponseStatus'];
        $RETURN = $apiResponse['OutBoundFlightResults'];
        if ($intResponseStatus == 1) {
            if ($RETURN) {
                foreach ($RETURN as $keys => $tripInfos) {
                    foreach ($tripInfos as $key => $result) {
                        $SegmentInformation = $result['sI'];
                        $totalPriceList = current($result['totalPriceList']);
                        $IsRefundable = $totalPriceList['fd']['ADULT']['rT'];
                        $NoOfSeatAvailable = $totalPriceList['fd']['ADULT']['sR'];
                        $strFareClass = $totalPriceList['fd']['ADULT']['cB']; //Cabin Baggage
                        $IsMealIncludes = isset($totalPriceList['fd']['ADULT']['mI']) ? $totalPriceList['fd']['ADULT']['mI'] : false;
                        $bagInfo = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Check In Baggage
                        $strTraceId = $totalPriceList['id'];
                        $ResultIndex = $totalPriceList['id'];
                        if (!empty($bagInfo)) {
                            $IsBagIncludes = true;
                        } else {
                            $IsBagIncludes = false;
                        }
                        if ($IsRefundable == 0) {
                            $IsRefundableTxt = 'Non Refundable';
                        } elseif ($IsRefundable == 1) {
                            $IsRefundableTxt = 'Refundable';
                        } else {
                            $IsRefundableTxt = 'Partial Refundable';
                        }
                        $OriginSegments = current($SegmentInformation);
                        $DestinationSegments = end($SegmentInformation);
                        $AirlineCode = $OriginSegments['fD']['aI']['code'];
                        // echo '<pre>';print_r($DestinationSegments);echo '</pre>';
                        $arrSegments = [];
                        $FlyingMinutes = 0;
                        $TotalLAYOVERMinutes = 0;
                        $LAYOVERCityArr = [];
                        $PublishedFare = 0;
                        $PublishedFareReverse = 0;
                        $BaseFare = 0;
                        $Tax = 0;
                        $YQTax = 0;
                        $OtherCharges = 0;
                        $ServiceFee = 0;
                        $FareBreakdown = [];
                        $FairRulesArr = [];
                        $intYQTaxToT = 0;
                        $intTotalOfferedForAllPax = 0;
                        $intBaseFareAllPax = 0;
                        $intTaxAllPax = 0;
                        array_multisort($result['totalPriceList']);
                        if ($result['totalPriceList']) {
                            foreach ($result['totalPriceList'] as $kp => $price) {
                                $fareDetail = $price['fd'];
    
                                // echo '<pre>';
                                // print_r($fareDetail);
                                // echo '</pre>';
                                $SeatAvailable = $fareDetail['ADULT']['sR'];
                                $classOfBooking = $fareDetail['ADULT']['cB'];
                                $Refundable = $fareDetail['ADULT']['rT'];
                                $PriceID = $price['id'];
                                $fareIdentifier = $price['fareIdentifier'];

                                $AddMarkup = isset($AdditionalMarkup['finalArr'][$fareIdentifier]) ? $AdditionalMarkup['finalArr'][$fareIdentifier] : [];
                            
                                $fareremarks = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['remarks']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['remarks'] : '';
                                $fareIdentifier = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier'] : '';
                                $colors = !empty($AddMarkup['color']) ? $AddMarkup['color'] : '#000000';
                                $MarkUpValue = isset($AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue']) ? $AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue'] : 0;
                                $AddMarkup['markup_b2c'] = ($AddMarkup['markup_b2c'] + $MarkUpValue);
                                if (empty($fareIdentifier)) {
                                    $fareIdentifier = $price['fareIdentifier'];
                                }
                                $IsMealIncludes = $fareDetail['ADULT']['mI'];
                                $strBaggage = $price['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                                $strCabinBaggage = $price['fd']['ADULT']['bI']['cB']; ////Cabin Baggage
    
                                if (!empty($strCabinBaggage)) {
                                    $IsCabinBaggage = true;
                                } else {
                                    $IsCabinBaggage = false;
                                }
    
                                if (!empty($strBaggage)) {
                                    $IsBaggage = true;
                                } else {
                                    $IsBaggage = false;
                                }
                                if ($fareIdentifier == 'SME') {
                                    $IsGSTRequired = true;
                                } else {
                                    $IsGSTRequired = false;
                                }
                                if ($Refundable == 0) {
                                    $IsRefundableTxt = 'Non Refundable';
                                } elseif ($Refundable == 1) {
                                    $IsRefundableTxt = 'Refundable';
                                } else {
                                    $IsRefundableTxt = 'Partial Refundable';
                                }
                                $ADULT = $fareDetail['ADULT']['fC']; //fare Components
                                $CHILD = isset($fareDetail['CHILD']['fC']) ? $fareDetail['CHILD']['fC'] : []; //fare Components
                                $INFANT = isset($fareDetail['INFANT']['fC']) ? $fareDetail['INFANT']['fC'] : []; //fare Components
    
                                $ADULTafC = $fareDetail['ADULT']['afC']['TAF']; //additional fareComponents
                                $CHILDafC = isset($fareDetail['CHILD']['afC']['TAF']) ? $fareDetail['CHILD']['afC']['TAF'] : []; //additional fareComponents
                                $INFANTafC = isset($fareDetail['INFANT']['afC']['TAF']) ? $fareDetail['INFANT']['afC']['TAF'] : []; //additional fareComponents
    
                                $ADULTNCMTDS = isset($fareDetail['ADULT']['afC']['NCM']['TDS']) ? $fareDetail['ADULT']['afC']['NCM']['TDS'] : 0; //TDS
                                $CHILDNCMTDS = isset($fareDetail['CHILD']['afC']['NCM']['TDS']) ? $fareDetail['CHILD']['afC']['NCM']['TDS'] : 0; //TDS
                                $INFANTNCMTDS = isset($fareDetail['INFANT']['afC']['NCM']['TDS']) ? $fareDetail['INFANT']['afC']['NCM']['TDS'] : 0; //TDS
    
                                $ADULTNCMTOT = isset($fareDetail['ADULT']['afC']['NCM']['OT']) ? $fareDetail['ADULT']['afC']['NCM']['OT'] : 0; //- Gross Commission
                                $CHILDNCMTOT = isset($fareDetail['CHILD']['afC']['NCM']['OT']) ? $fareDetail['CHILD']['afC']['NCM']['OT'] : 0; //- Gross Commission
                                $INFANTNCMTOT = isset($fareDetail['INFANT']['afC']['NCM']['OT']) ? $fareDetail['INFANT']['afC']['NCM']['OT'] : 0; //- Gross Commission
    
                                $AD_MF = isset($ADULTafC['MF']) ? $ADULTafC['MF'] : 0; //Management Fee
                                $AD_YQ = isset($ADULTafC['YQ']) ? $ADULTafC['YQ'] : 0; //Fuel Surcharge
                                $AD_AGST = isset($ADULTafC['AGST']) ? $ADULTafC['AGST'] : 0; //Airline GST Component
                                $AD_MFT = isset($ADULTafC['MFT']) ? $ADULTafC['MFT'] : 0; //Management Fee Tax
                                $AD_OT = isset($ADULTafC['OT']) ? $ADULTafC['OT'] : 0; //Other Charges
                                $AD_MU = isset($ADULTafC['MU']) ? $ADULTafC['MU'] : 0; //markup
                                $AD_YR = isset($ADULTafC['YR']) ? $ADULTafC['YR'] : 0; //Carrier Misc Fee
    
                                $CH_MF = isset($CHILDafC['MF']) ? $CHILDafC['MF'] : 0; //Management Fee
                                $CH_YQ = isset($CHILDafC['YQ']) ? $CHILDafC['YQ'] : 0; //Fuel Surcharge
                                $CH_AGST = isset($CHILDafC['AGST']) ? $CHILDafC['AGST'] : 0; //Airline GST Component
                                $CH_MFT = isset($CHILDafC['MFT']) ? $CHILDafC['MFT'] : 0; //Management Fee Tax
                                $CH_OT = isset($CHILDafC['OT']) ? $CHILDafC['OT'] : 0; //Other Charges
                                $CH_MU = isset($CHILDafC['MU']) ? $CHILDafC['MU'] : 0; //markup
                                $CH_YR = isset($CHILDafC['YR']) ? $CHILDafC['YR'] : 0; //Carrier Misc Fee
    
                                $IN_MF = isset($INFANTafC['MF']) ? $INFANTafC['MF'] : 0; //Management Fee
                                $IN_YQ = isset($INFANTafC['YQ']) ? $INFANTafC['YQ'] : 0; //Fuel Surcharge
                                $IN_AGST = isset($INFANTafC['AGST']) ? $INFANTafC['AGST'] : 0; //Airline GST Component
                                $IN_MFT = isset($INFANTafC['MFT']) ? $INFANTafC['MFT'] : 0; //Management Fee Tax
                                $IN_OT = isset($INFANTafC['OT']) ? $INFANTafC['OT'] : 0; //Other Charges
                                $IN_MU = isset($INFANTafC['MU']) ? $INFANTafC['MU'] : 0; //markup
                                $IN_YR = isset($INFANTafC['YR']) ? $INFANTafC['YR'] : 0; //Carrier Misc Fee
    
                                if ($kp == 0) {
                                    $PublishedFare += (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                                    $BaseFare += (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                                    $Tax += (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                                }
    
                                $PublishedFareIN = (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                                $BaseFareIN = (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                                $TaxIN = (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                                $NetFare = (($ADULT['NF'] * $adultCount) + ($CHILD['NF'] * $childCount) + ($INFANT['NF'] * $infantCount)); //Taxes and Fees
                                $NetCommission = (($ADULT['NCM'] * $adultCount) + ($CHILD['NCM'] * $childCount) + ($INFANT['NCM'] * $infantCount)); //Taxes and Fees
                                //echo '<pre>';print_r(($ADULTafC));echo '</pre>';
                                $YQTax = (($AD_YQ * $adultCount) + ($CH_YQ * $childCount) + ($IN_YQ * $infantCount));
                                $OtherCharges = (($AD_OT * $adultCount) + ($CH_OT * $childCount) + ($IN_OT * $infantCount));
                                $ServiceFee = (($AD_MF * $adultCount) + ($CH_MF * $childCount) + ($IN_MF * $infantCount));
                                $ManagementFeeTax = (($AD_MFT * $adultCount) + ($CH_MFT * $childCount) + ($IN_MFT * $infantCount));
                                $AirlineGSTComponent = (($AD_AGST * $adultCount) + ($CH_AGST * $childCount) + ($IN_AGST * $infantCount));
                                $CarrierMiscFee = (($AD_YR * $adultCount) + ($CH_YR * $childCount) + ($IN_YR * $infantCount));
                                $MUFee = (($AD_MU * $adultCount) + ($CH_MU * $childCount) + ($IN_MU * $infantCount));
                                $TdsOnPLB = (($ADULTNCMTDS * $adultCount) + ($CHILDNCMTDS * $childCount) + ($INFANTNCMTDS * $infantCount));
                                //$NetCommission = (($ADULTNCMTOT * $adultCount) + ($CHILDNCMTOT * $childCount) + ($INFANTNCMTOT * $infantCount));
                                $TdsOnPLBCal = isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0;
                                $PublishedFare = $PublishedFareIN;
                                $CommissionEarned = $NetCommission;
                                $PLBEarned = 0; //$result['Fare']['PLBEarned'];
                                $IncentiveEarned = 0; //$result['Fare']['IncentiveEarned'];
                                $OfferedFare = ($NetFare - $TdsOnPLBCal);
                                $markUpArr = array(
                                    'getMarkup' => $getMarkup,
                                    'PublishedFare' => $PublishedFare,
                                    'OfferedFare' => $OfferedFare,
                                    'intCommissionEarned' => $CommissionEarned,
                                    'TdsOnPLB' => $TdsOnPLB,
                                    'MUFee' => $MUFee,
                                    'intPLBEarned' => $PLBEarned,
                                    'intIncentiveEarned' => $IncentiveEarned,
                                    'intMemberCount' => $intMemberCount,
                                    'intFlightRoute' => $strFlightRoute,
                                    'interNationalSearch' => $interNationalSearch,
                                    'AddMarkup' => $AddMarkup,
                                );
                                //echo '<pre>';print_r($markUpArr);
                                $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);
                                if ($kp == 0) {
                                    $PublishedFareReverse += ($arrMarkUps['PublishFare']);
                                }
                                $TdsOnPLBCal = isset($ADULTNCMTDS) ? str_replace('-', '', $ADULTNCMTDS) : 0;
                                $markUpArrBR = array(
                                    'getMarkup' => $getMarkup,
                                    'PublishedFare' => ($ADULT['TF'] * $adultCount),
                                    'OfferedFare' => (($ADULT['NF'] - $TdsOnPLBCal) * $adultCount),
                                    'intCommissionEarned' => ($ADULT['NCM'] * $adultCount),
                                    'TdsOnPLB' => ($ADULTNCMTDS * $adultCount),
                                    'MUFee' => ($AD_MU * $adultCount),
                                    'intPLBEarned' => $PLBEarned,
                                    'intIncentiveEarned' => $IncentiveEarned,
                                    'intMemberCount' => $adultCount,
                                    'intFlightRoute' => $strFlightRoute,
                                    'interNationalSearch' => $interNationalSearch,
                                    'AddMarkup' => $AddMarkup,
                                );
                                $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
    
    
                                $FareBreakdown[0]['Currency'] = 'INR';
                                $FareBreakdown[0]['PassengerType'] = 1;
                                $FareBreakdown[0]['PassengerCount'] = $adultCount;
                                $FareBreakdown[0]['TaxIN'] = ($ADULT['TAF'] * $adultCount);
                                $FareBreakdown[0]['TotalBaseFare'] = ($ADULT['TF'] * $adultCount);
                                $FareBreakdown[0]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                $FareBreakdown[0]['BaseFare'] = ($ADULT['BF'] * $adultCount);
                                $FareBreakdown[0]['CommissionEarned'] = ($ADULT['NCM'] * $adultCount);
                                $FareBreakdown[0]['TDS'] = (float)str_replace('-', '', ($ADULTNCMTDS * $adultCount));
                                $FareBreakdown[0]['MF'] = ($AD_MF * $adultCount);
                                $FareBreakdown[0]['YQ'] = ($AD_YQ * $adultCount);
                                $FareBreakdown[0]['AGST'] = ($AD_AGST * $adultCount);
                                $FareBreakdown[0]['MFT'] = ($AD_MFT * $adultCount);
                                $FareBreakdown[0]['OT'] = ($AD_OT * $adultCount);
                                $FareBreakdown[0]['MU'] = ($AD_MU * $adultCount);
                                $FareBreakdown[0]['YR'] = ($AD_YR * $adultCount);
                                $FareBreakdown[0]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                $FareBreakdown[0]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                $FareBreakdown[0]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                $FareBreakdown[0]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                $FareBreakdown[0]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                $FareBreakdown[0]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                $FareBreakdown[0]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                                $FareBreakdown[0]['GSTonComm'] = 0;
                                $FareBreakdown[0]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                $FareBreakdown[0]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                $FareBreakdown[0]['AdditionalTxnFeeOfrd'] = 0;
                                $FareBreakdown[0]['AdditionalTxnFeePub'] = 0;
                                $FareBreakdown[0]['PGCharge'] = 0;
                                $FareBreakdown[0]['Baggage'] = isset($fareDetail['ADULT']['bI']['iB']) ? $fareDetail['ADULT']['bI']['iB'] : []; //Check In Baggage;
                                $FareBreakdown[0]['CabinBaggage'] = isset($fareDetail['ADULT']['bI']['cB']) ? $fareDetail['ADULT']['bI']['cB'] : []; //Cabin Baggage ;
                                if (isset($fareDetail['CHILD'])) {
                                    $TdsOnPLBCal = isset($CHILDNCMTDS) ? str_replace('-', '', $CHILDNCMTDS) : 0;
                                    $markUpArrBR = array(
                                        'getMarkup' => $getMarkup,
                                        'PublishedFare' => ($CHILD['TF'] * $childCount),
                                        'OfferedFare' => (($CHILD['NF'] - $TdsOnPLBCal) * $childCount),
                                        'intCommissionEarned' => ($CHILD['NCM'] * $childCount),
                                        'TdsOnPLB' => ($CHILDNCMTDS * $childCount),
                                        'MUFee' => ($CH_MU * $childCount),
                                        'intPLBEarned' => $PLBEarned,
                                        'intIncentiveEarned' => $IncentiveEarned,
                                        'intMemberCount' => $childCount,
                                        'intFlightRoute' => $strFlightRoute,
                                        'interNationalSearch' => $interNationalSearch,
                                        'AddMarkup' => $AddMarkup,
                                    );
                                    $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                                    $FareBreakdown[1]['Currency'] = 'INR';
                                    $FareBreakdown[1]['PassengerType'] = 2;
                                    $FareBreakdown[1]['PassengerCount'] = $childCount;
                                    $FareBreakdown[1]['TaxIN'] = ($CHILD['TAF'] * $childCount);
                                    $FareBreakdown[1]['TotalBaseFare'] = ($CHILD['TF'] * $childCount);
                                    $FareBreakdown[1]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                    $FareBreakdown[1]['BaseFare'] = ($CHILD['BF'] * $childCount);
                                    $FareBreakdown[1]['CommissionEarned'] = ($CHILD['NCM'] * $childCount);
                                    $FareBreakdown[1]['TDS'] = (float)str_replace('-', '', ($CHILDNCMTDS * $childCount));
                                    $FareBreakdown[1]['MF'] = ($CH_MF * $childCount);
                                    $FareBreakdown[1]['YQ'] = ($CH_YQ * $childCount);
                                    $FareBreakdown[1]['AGST'] = ($CH_AGST * $childCount);
                                    $FareBreakdown[1]['MFT'] = ($CH_MFT * $childCount);
                                    $FareBreakdown[1]['OT'] = ($CH_OT * $childCount);
                                    $FareBreakdown[1]['MU'] = ($CH_MU * $childCount);
                                    $FareBreakdown[1]['YR'] = ($CH_YR * $childCount);
                                    $FareBreakdown[1]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                    $FareBreakdown[1]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                    $FareBreakdown[1]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                    $FareBreakdown[1]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                    $FareBreakdown[1]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                    $FareBreakdown[1]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                    $FareBreakdown[1]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                                    $FareBreakdown[1]['GSTonComm'] = 0;
                                    $FareBreakdown[1]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                    $FareBreakdown[1]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                    $FareBreakdown[1]['AdditionalTxnFeeOfrd'] = 0;
                                    $FareBreakdown[1]['AdditionalTxnFeePub'] = 0;
                                    $FareBreakdown[1]['PGCharge'] = 0;
                                    $FareBreakdown[1]['Baggage'] = isset($fareDetail['CHILD']['bI']['iB']) ? $fareDetail['CHILD']['bI']['iB'] : []; //Check In Baggage;
                                    $FareBreakdown[1]['CabinBaggage'] = isset($fareDetail['CHILD']['bI']['cB']) ? $fareDetail['CHILD']['bI']['cB'] : []; //Cabin Baggage ;
                                }
                                if (isset($fareDetail['INFANT'])) {
                                    $TdsOnPLBCal = isset($INFANTNCMTDS) ? str_replace('-', '', $INFANTNCMTDS) : 0;
                                    $markUpArrBR = array(
                                        'getMarkup' => $getMarkup,
                                        'PublishedFare' => ($INFANT['TF'] * $infantCount),
                                        'OfferedFare' => (($INFANT['NF'] - $TdsOnPLBCal) * $infantCount),
                                        'intCommissionEarned' => ($INFANT['NCM'] * $infantCount),
                                        'TdsOnPLB' => ($INFANTNCMTDS * $infantCount),
                                        'MUFee' => ($IN_MU * $infantCount),
                                        'intPLBEarned' => $PLBEarned,
                                        'intIncentiveEarned' => $IncentiveEarned,
                                        'intMemberCount' => $infantCount,
                                        'intFlightRoute' => $strFlightRoute,
                                        'interNationalSearch' => $interNationalSearch,
                                        'AddMarkup' => $AddMarkup,
                                    );
                                    $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                                    $FareBreakdown[2]['Currency'] = 'INR';
                                    $FareBreakdown[2]['PassengerType'] = 3;
                                    $FareBreakdown[2]['PassengerCount'] = $infantCount;
                                    $FareBreakdown[2]['TaxIN'] = ($INFANT['TAF'] * $infantCount);
                                    $FareBreakdown[2]['TotalBaseFare'] = ($INFANT['TF'] * $infantCount);
                                    $FareBreakdown[2]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                                    $FareBreakdown[2]['BaseFare'] = ($INFANT['BF'] * $infantCount);
                                    $FareBreakdown[2]['CommissionEarned'] = ($INFANT['NCM'] * $infantCount);
                                    $FareBreakdown[2]['TDS'] = (float)str_replace('-', '', ($INFANTNCMTDS * $infantCount));
                                    $FareBreakdown[2]['MF'] = ($IN_MF * $infantCount);
                                    $FareBreakdown[2]['YQ'] = ($IN_YQ * $infantCount);
                                    $FareBreakdown[2]['AGST'] = ($IN_AGST * $infantCount);
                                    $FareBreakdown[2]['OT'] = ($IN_OT * $infantCount);
                                    $FareBreakdown[2]['MFT'] = ($IN_MFT * $infantCount);
                                    $FareBreakdown[2]['MU'] = ($IN_MU * $infantCount);
                                    $FareBreakdown[2]['YR'] = ($IN_YR * $infantCount);
                                    $FareBreakdown[2]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                                    $FareBreakdown[2]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                                    $FareBreakdown[2]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                                    $FareBreakdown[2]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                                    $FareBreakdown[2]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                                    $FareBreakdown[2]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                                    $FareBreakdown[2]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                                    $FareBreakdown[2]['GSTonComm'] = 0;
                                    $FareBreakdown[2]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                                    $FareBreakdown[2]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                                    $FareBreakdown[2]['AdditionalTxnFeeOfrd'] = 0;
                                    $FareBreakdown[2]['AdditionalTxnFeePub'] = 0;
                                    $FareBreakdown[2]['PGCharge'] = 0;
                                    $FareBreakdown[2]['Baggage'] = isset($fareDetail['INFANT']['bI']['iB']) ? $fareDetail['INFANT']['bI']['iB'] : []; //Check In Baggage;
                                    $FareBreakdown[2]['CabinBaggage'] = isset($fareDetail['INFANT']['bI']['cB']) ? $fareDetail['INFANT']['bI']['cB'] : []; //Cabin Baggage ;
                                }
                                //echo '<pre>';print_r($price);
                                $FairRulesArr[$kp] = array(
                                    "Currency" => $this->CurrencyTitle, //$Currency,
                                    "CurrencyRate" => $this->CurrencyRate, //$Currency,
                                    "currencySysId" => $this->CurrencyId,
                                    "BaseFare" => $BaseFareIN,
                                    "Tax" => $TaxIN,
                                    "YQTax" => $YQTax,
                                    "OtherCharges" => $OtherCharges,
                                    "Discount" => 0, //$Discount,
                                    "ServiceFee" => $ServiceFee,
                                    "ManagementFeeTax" => $ManagementFeeTax,
                                    "AirlineGSTComponent" => $AirlineGSTComponent,
                                    "CarrierMiscFee" => $CarrierMiscFee,
                                    "MUFee" => $MUFee,
                                    "intPublishedFare" => $PublishedFareIN,
                                    "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                                    "OfferedFare" => $arrMarkUps['intOfferedFare'],
                                    "PLBEarned" => $PLBEarned,
                                    "IncentiveEarned" => $IncentiveEarned,
                                    "TdsOnPLB" => (float)isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0,
                                    "TdsOnIncentive" => 0,
                                    "AdditionalTxnFeeOfrd" => 0,
                                    "AdditionalTxnFeePub" => 0,
                                    "Refundable" => $Refundable,
                                    "IsRefundableTxt" => $IsRefundableTxt,
                                    "PriceID" => $PriceID,
                                    "IsGSTRequired" => $IsGSTRequired,
                                    "fareIdentifier" => str_replace('_', ' ', $fareIdentifier),
                                    "SeatAvailable" => $SeatAvailable,
                                    "classOfBooking" => $classOfBooking,
                                    "FareClass" => $fareDetail['ADULT']['cc'],
                                    "intTotalGST" => $arrMarkUps['intTotalGST'],
                                    "apiMarkup" => $arrMarkUps['apiMarkup'],
                                    "IntCommission" => $arrMarkUps['IntCommission'],
                                    "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                                    "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                                    "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                                    "CommEarned" => $arrMarkUps['IntCommission'],
                                    "GSTonComm" => 0,
                                    "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                                    "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                                    "IsBaggage" => $IsBaggage,
                                    "IsCabinBaggage" => $IsCabinBaggage,
                                    "Baggage" => $strBaggage,
                                    "CabinBaggage" => $strCabinBaggage,
                                    "IsMealIncludes" => $IsMealIncludes,
                                    "FareBreakdown" => $FareBreakdown,
                                    "arrMarkUps" => $arrMarkUps,
                                    "FareKey" => str_replace('_', ' ', $fareIdentifier).''.$classOfBooking,
                                );
                                // echo '<pre>';
                                // print_r($FairRulesArr[$kp]);
                                // echo '</pre>';
                            }
                        }
    
                        $TotalLAYOVERMinutes = 0;
                        if ($SegmentInformation) {
                            foreach ($SegmentInformation as $seg => $segments) {
                                //echo '<pre>';print_r($segments);
                                $duration = $segments['duration'];
                                $LAYOVERMinutes = $GroundTime = isset($segments['cT']) ? $segments['cT'] : 0;
                                $LAYOVERCity = $LAYOVERCityArr[] = isset($segments['cT']) ? $segments['aa']['city'] : '';
                                $FlyingMinutes += ($duration + $LAYOVERMinutes);
                                $TotalLAYOVERMinutes += $LAYOVERMinutes;
    
                                $FareClass = $totalPriceList['fd']['ADULT']['cB'];
                                $strBaggage = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                                $strCabinBaggage = $totalPriceList['fd']['ADULT']['bI']['cB']; ////Cabin Baggage
                                if (!empty($strCabinBaggage)) {
                                    $IsBaggage = true;
                                } else {
                                    $IsBaggage = false;
                                }
    
                                $AirlineCode = $segments['fD']['aI']['code'];
                                $AirlineName = $segments['fD']['aI']['name'];
                                $FlightNumber = $segments['fD']['fN'];
                                $SegFlightNumber = $AirlineCode . "-" . $FlightNumber;
    
                                $originAirportName = $segments['da']['name'];
                                $originAirportCode = $segments['da']['code'];
                                $originCityName = $segments['da']['city'];
                                $originCountryName = $segments['da']['country'];
                                $originDepTime = $segments['dt'];
    
                                $destinationAirportName = $segments['aa']['name'];
                                $destinationAirportCode = $segments['aa']['code'];
                                $destinationCityName = $segments['aa']['city'];
                                $destinationCountryName = $segments['aa']['country'];
                                $destinationArrTime = $segments['at'];
    
                                $DepTerminal = isset($segments['da']['terminal']) ? $segments['da']['terminal'] : '';
                                $ArrTerminal = isset($segments['aa']['terminal']) ? $segments['aa']['terminal'] : '';
    
                                $filePath = $this->getflightlogo($AirlineCode);
    
                                $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->MinutesToHours($LAYOVERMinutes);
    
                                $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($destinationArrTime);
                                $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($originDepTime);
                                $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($duration);
                                $arrSegments[] = array(
                                    "originAirportName" => $originAirportName,
                                    "destinationAirportName" => $destinationAirportName,
                                    "originCityName" => $originCityName,
                                    "originCountryName" => $originCountryName,
                                    "destinationCityName" => $destinationCityName,
                                    "destinationCountryName" => $destinationCountryName,
                                    "destinationAirportCode" => $destinationAirportCode,
                                    "destinationAirportCode" => $destinationAirportCode,
                                    "destinationArrTime" => $destinationArrTime,
                                    "SegFlightNumber" => $SegFlightNumber,
                                    "AirlineCode" => $AirlineCode,
                                    "AirlineName" => $AirlineName,
                                    "FareClass" => $FareClass,
                                    "originAirportCode" => $originAirportCode,
                                    "originDepTime" => $originDepTime,
                                    "TripIndicator" => ($seg + 1),
                                    "Baggage" => $strBaggage,
                                    "CabinBaggage" => $strCabinBaggage,
                                    "IsBaggage" => $IsBaggage,
                                    "IsMealIncludes" => $IsMealIncludes,
                                    "Duration" => $duration,
                                    "GroundTime" => $GroundTime,
                                    "NoOfSeatAvailable" => $NoOfSeatAvailable,
                                    "strDepartureDtTime" => $strDepartureDtTime,
                                    "strArrivalDtTime" => $strArrivalDtTime,
                                    "FlightDuration" => $strDuration,
                                    "LAYOVERDuration" => $LAYOVERDuration,
                                    "LAYOVERCity" => $LAYOVERCity,
                                    "DepTerminal" => $DepTerminal,
                                    "ArrTerminal" => $ArrTerminal,
                                    "filePath" => $filePath,
                                );
                                //echo '<pre>';print_r($arrSegments);
                            }
                        }
    
                        $LAYOVERTime = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalLAYOVERMinutes);
    
                        $AirlineCode = $OriginSegments['fD']['aI']['code'];
                        $FlightNumber = $OriginSegments['fD']['fN'];
                        $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                        $strAirlineName = $OriginSegments['fD']['aI']['name'];
                        $IsLCC = $OriginSegments['fD']['aI']['isLcc'];
                        $strSourceAirportCode = $OriginSegments['da']['code'];
                        $strDestinationAirportCode = $DestinationSegments['aa']['code'];
    
                        $Stops = $DestinationSegments['sN'];
                        if ($Stops == 0) {
                            $StopCountTxt = "Non-stop";
                        } else {
                            $StopCountTxt = $Stops . " Stop(s)";
                        }
                        $filePath = $this->getflightlogo($AirlineCode);
                        $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);
                        $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DestinationSegments['at']);
                        $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($OriginSegments['dt']);
                        $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                        $arrInsertFlightData[$keys][$key]['FlightNumber'] = $strFlightNumber;
                        $arrInsertFlightData[$keys][$key]['AirlineName'] = $strAirlineName;
                        $arrInsertFlightData[$keys][$key]['AirlineCode'] = $AirlineCode;
                        $arrInsertFlightData[$keys][$key]['FlightNumberCode'] = $FlightNumber;
                        $arrInsertFlightData[$keys][$key]['AirInvenSysId'] = 0;
                        $arrInsertFlightData[$keys][$key]['IsLCC'] = $IsLCC;
                        $arrInsertFlightData[$keys][$key]['IsMealIncludes'] = $IsMealIncludes;
                        $arrInsertFlightData[$keys][$key]['IsBagIncludes'] = $IsBagIncludes;
                        $arrInsertFlightData[$keys][$key]['IsRefundable'] = $IsRefundable;
                        $arrInsertFlightData[$keys][$key]['IsRefundableTxt'] = $IsRefundableTxt;
                        $arrInsertFlightData[$keys][$key]['SearchTraceId'] = $SearchTraceId;
                        $arrInsertFlightData[$keys][$key]['apiTraceId'] = $strTraceId;
                        $arrInsertFlightData[$keys][$key]['AirlineSysId'] = $airlineSysId;
                        $arrInsertFlightData[$keys][$key]['DepartureTime'] = $strDepartureDtTime;
                        $arrInsertFlightData[$keys][$key]['ArrivalTime'] = $strArrivalDtTime;
                        $arrInsertFlightData[$keys][$key]['TravelDate'] = $OriginSegments['dt'];
                        $arrInsertFlightData[$keys][$key]['LocalFromTime'] = str_replace('T', ' ', $OriginSegments['dt']);
                        $arrInsertFlightData[$keys][$key]['FromUTCTime'] = $OriginSegments['dt'];
                        $arrInsertFlightData[$keys][$key]['LocalToTime'] = str_replace('T', ' ', $DestinationSegments['at']);
                        $arrInsertFlightData[$keys][$key]['ToUTCTime'] = $DestinationSegments['at'];
                        $arrInsertFlightData[$keys][$key]['IsDirect'] = 0;
                        $arrInsertFlightData[$keys][$key]['FareClass'] = $strFareClass;
                        $arrInsertFlightData[$keys][$key]['LAYOVERCity'] = isset($LAYOVERCityArr[0]) ? $LAYOVERCityArr[0] : '';
                        $arrInsertFlightData[$keys][$key]['GroundTime'] = $TotalLAYOVERMinutes;
                        $arrInsertFlightData[$keys][$key]['LAYOVERDuration'] = $LAYOVERTime;
                        $arrInsertFlightData[$keys][$key]['FlyingMinutes'] = $FlyingMinutes;
                        $arrInsertFlightData[$keys][$key]['DepartureDateTxt'] = date('D, d M', strtotime($OriginSegments['dt']));
                        $arrInsertFlightData[$keys][$key]['ArrivalDateTxt'] = date('D, d M', strtotime($DestinationSegments['at']));
                        $arrInsertFlightData[$keys][$key]['FlightDuration'] = $FlightDuration;
                        $arrInsertFlightData[$keys][$key]['SourcePlaceSysId'] = $intSourceCityId[$keys];
                        $arrInsertFlightData[$keys][$key]['DestPlaceSysId'] = $intDestinationCityId[$keys];
                        $arrInsertFlightData[$keys][$key]['SourceAirportCode'] = $strSourceAirportCode;
                        $arrInsertFlightData[$keys][$key]['DestAirportCode'] = $strDestinationAirportCode;
                        $arrInsertFlightData[$keys][$key]['SourcePlaceName'] = substr($destinationCityText[$keys], 0, strpos($destinationCityText[$keys], ','));
                        $arrInsertFlightData[$keys][$key]['DestPlaceName'] = substr($sourceCityText[$keys], 0, strpos($sourceCityText[$keys], ','));;
                        //                $arrInsertFlightData[$keys][$key]['AirportHaultMinutes'] = $AirportHaultMinutes;
                        $arrInsertFlightData[$keys][$key]['StopCount'] = $StopCountTxt;
                        $arrInsertFlightData[$keys][$key]['Stops'] = $Stops;
                        $arrInsertFlightData[$keys][$key]['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                        $arrInsertFlightData[$keys][$key]['TotalFlightMembers'] = $intMemberCount;
                        $arrInsertFlightData[$keys][$key]['CurrencyType'] = $this->CurrencyId;
                        $arrInsertFlightData[$keys][$key]['PublishedFare'] = ($PublishedFare * $this->CurrencyRate); // As Discussed with GG
                        $arrInsertFlightData[$keys][$key]['PublishedFareTxt'] = number_format(($PublishedFare * $this->CurrencyRate)); // As Discussed with GG
                        //                $arrInsertFlightData[$keys][$key]['CommissionEarned'] = $CommissionEarned;
                        $arrInsertFlightData[$keys][$key]['ApiResultIndex'] = $ResultIndex;
                        $arrInsertFlightData[$keys][$key]['JourneyType'] = $intJourneyType;
                        $arrInsertFlightData[$keys][$key]['TripType'] = $intTripType;
                        $arrInsertFlightData[$keys][$key]['IsInternational'] = $interNationalSearch;
                        $arrInsertFlightData[$keys][$key]['logo'] = $filePath;
                        $arrInsertFlightData[$keys][$key]['FairRules'] = $FairRulesArr;
                        $arrInsertFlightData[$keys][$key]['Segments'] = $arrSegments;
                        $arrInsertFlightData[$keys][$key]['ICSourceSysId'] = 7;
                        $arrInsertFlightData[$keys][$key]['supplier'] = 'Supplier 1';
                        $arrInsertFlightData[$keys][$key]['IsTJFlightAPI'] = true;
                        $arrInsertFlightData[$keys][$key]['bookingAllowed'] = $bookingAllowed;
                        $arrInsertFlightData[$keys][$key]['FilterKey'] = trim($strFlightNumber).''.trim($strFareClass).''.$DestinationSegments['at'].''.$OriginSegments['dt'];
    
                        $arrAirlineName[] = $AirlineCode . '-' . $strAirlineName;
                        $AttPriceRange[] = $PublishedFare;
                        $FiltStopCount[] = $StopCountTxt;
    
                        if ($FairRulesArr) {
                            foreach ($FairRulesArr as $Fare) {
                                $dddddddd[] = $Fare['PublishedFare'];
                            }
                        }
    
                        $FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strDepartureDtTime);
    
                        $arrInsertFlightData[$keys][$key]['FilterDepartureDtTime'] = $FilterDepartureDtTime;
                    }
                }
                $MultiHead = [];
                $outboundArray = [];
                if ($sessionFlightSearchParams['sourceCityText']) {
                    foreach ($sessionFlightSearchParams['sourceCityText'] as $sk => $source_) {
                        $destination_ = isset($sessionFlightSearchParams['destinationCityText'][$sk]) ? explode(',', $sessionFlightSearchParams['destinationCityText'][$sk]) : '';
                        $source_ = isset($source_) ? explode(',', $source_) : '';
                        $departure_date_ = isset($sessionFlightSearchParams['departure_dates'][$sk]) ? $sessionFlightSearchParams['departure_dates'][$sk] : '';
                        //$strDepatureDate__ = isset($sessionFlightSearchParams['strDepatureDate'][$sk]) ? $sessionFlightSearchParams['strDepatureDate'][$sk] : '';
                        $MultiHead[] = array(
                            'source' => $source_[0],
                            'destination' => $destination_[0],
                            'departure_date' => $departure_date_,
                            //'strDepatureDate' => $strDepatureDate__,
                        );
                        $outboundArray[$sk] = array(
                            'source' => $source_[0],
                            'destination' => $destination_[0],
                            'departure_date' => $departure_date_,
                            'FD' => isset($arrInsertFlightData[$sk])?$arrInsertFlightData[$sk]:[],
                        );
                    }
                }
               
                // echo '<pre>';print_r(json_encode($arrInsertFlightData));
                // die;
                $data = array('outbound' => $outboundArray, 'inbound' => [],'MultiHead'=>$MultiHead, 'FiltPrice' => [], 'CurrencyTitle' => $this->CurrencyTitle, 'dddddddd' => ($dddddddd));
                return ($data);
            }
        }
    }
    public function FlightDataMultiCityInternational($apiResponse, $sessionFlightSearchParams, $AgencySysId, $getMarkup, $AdditionalMarkup){
        $bookingAllowed = $sessionFlightSearchParams['bookingAllowed'];
        $addMarkupArr = $sessionFlightSearchParams['addMarkupArr'];
        $AgencySysId = $sessionFlightSearchParams['AgencySysId'];
        $FlightNumberArr = $sessionFlightSearchParams['FlightNumber'];
        
        // echo "<pre>";
        // print_r($apiResponse);die('dddd');
        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
        $strReturnDate = $sessionFlightSearchParams['return_dates'];
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $sourceCityText = explode(',', $sessionFlightSearchParams['sourceCityText']);
        $destinationCityText = explode(',', $sessionFlightSearchParams['destinationCityText']);
        $intTatalPaxCT = $adultCount + $childCount;

        $intJourneyType = 2;
        $intTripType = $strFlightRoute;
        $arrInsertFlightData = [];
        $arrAirlineName = [];
        $FiltStopCount = [];
        $FiltPriceRange = [];
        $AttPriceRange = [];
        $dddddddd = [];
        $intResponseStatus = $apiResponse['ResponseStatus'];
		$ONWARD = $apiResponse['OutBoundFlightResults']['COMBO'];

        if ($ONWARD) {
            foreach ($ONWARD as $key => $result) {
                $SegmentInformation = $result['sI'];
                $totalPriceList = current($result['totalPriceList']);
                $IsRefundable = $totalPriceList['fd']['ADULT']['rT'];
                $NoOfSeatAvailable = $totalPriceList['fd']['ADULT']['sR'];
                $strFareClass = $totalPriceList['fd']['ADULT']['cB']; //Cabin Baggage
                $IsMealIncludes = isset($totalPriceList['fd']['ADULT']['mI']) ? $totalPriceList['fd']['ADULT']['mI'] : false;
                $bagInfo = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Check In Baggage
                $strTraceId = $totalPriceList['id'];
                $ResultIndex = $totalPriceList['id'];
                if (!empty($bagInfo)) {
                    $IsBagIncludes = true;
                } else {
                    $IsBagIncludes = false;
                }
                if ($IsRefundable == 0) {
                    $IsRefundableTxt = 'Non Refundable';
                } elseif ($IsRefundable == 1) {
                    $IsRefundableTxt = 'Refundable';
                } else {
                    $IsRefundableTxt = 'Partial Refundable';
                }
                $OriginSegments = current($SegmentInformation);
                $DestinationSegments = end($SegmentInformation);
                $AirlineCode = $OriginSegments['fD']['aI']['code'];
                // echo '<pre>';print_r($DestinationSegments);echo '</pre>';
                $arrSegments = [];
                $ArrivalArr = [];
                $departureArr = [];
                $FlyingMinutes = 0;
                $TotalLAYOVERMinutes = 0;
                $LAYOVERCityArr = [];
                $PublishedFare = 0;
                $PublishedFareReverse = 0;
                $BaseFare = 0;
                $Tax = 0;
                $YQTax = 0;
                $OtherCharges = 0;
                $ServiceFee = 0;
                $FareBreakdown = [];
                $FairRulesArr = [];
                $intYQTaxToT = 0;
                $intTotalOfferedForAllPax = 0;
                $intBaseFareAllPax = 0;
                $intTaxAllPax = 0;
                array_multisort($result['totalPriceList']);
                if ($result['totalPriceList']) {
                    foreach ($result['totalPriceList'] as $kp => $price) {
                        $fareDetail = $price['fd'];

                        // echo '<pre>';
                        // print_r($fareDetail);
                        // echo '</pre>';
                        $SeatAvailable = $fareDetail['ADULT']['sR'];
                        $classOfBooking = $fareDetail['ADULT']['cB'];
                        $Refundable = $fareDetail['ADULT']['rT'];
                        $PriceID = $price['id'];
                        $fareIdentifier = $price['fareIdentifier'];

                        $AddMarkup = isset($AdditionalMarkup['finalArr'][$fareIdentifier]) ? $AdditionalMarkup['finalArr'][$fareIdentifier] : [];
                    
                        $fareremarks = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['remarks']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['remarks'] : '';
                        $fareIdentifier = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier'] : '';
                        $colors = !empty($AddMarkup['color']) ? $AddMarkup['color'] : '#000000';
                        $MarkUpValue = isset($AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue']) ? $AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue'] : 0;
                        $AddMarkup['markup_b2c'] = ($AddMarkup['markup_b2c'] + $MarkUpValue);
                        if (empty($fareIdentifier)) {
                            $fareIdentifier = $price['fareIdentifier'];
                        }
                        $IsMealIncludes = $fareDetail['ADULT']['mI'];
                        $strBaggage = $price['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                        $strCabinBaggage = $price['fd']['ADULT']['bI']['cB']; ////Cabin Baggage

                        if (!empty($strCabinBaggage)) {
                            $IsCabinBaggage = true;
                        } else {
                            $IsCabinBaggage = false;
                        }

                        if (!empty($strBaggage)) {
                            $IsBaggage = true;
                        } else {
                            $IsBaggage = false;
                        }
                        if ($fareIdentifier == 'SME') {
                            $IsGSTRequired = true;
                        } else {
                            $IsGSTRequired = false;
                        }
                        if ($Refundable == 0) {
                            $IsRefundableTxt = 'Non Refundable';
                        } elseif ($Refundable == 1) {
                            $IsRefundableTxt = 'Refundable';
                        } else {
                            $IsRefundableTxt = 'Partial Refundable';
                        }
                        $ADULT = $fareDetail['ADULT']['fC']; //fare Components
                        $CHILD = isset($fareDetail['CHILD']['fC']) ? $fareDetail['CHILD']['fC'] : []; //fare Components
                        $INFANT = isset($fareDetail['INFANT']['fC']) ? $fareDetail['INFANT']['fC'] : []; //fare Components

                        $ADULTafC = $fareDetail['ADULT']['afC']['TAF']; //additional fareComponents
                        $CHILDafC = isset($fareDetail['CHILD']['afC']['TAF']) ? $fareDetail['CHILD']['afC']['TAF'] : []; //additional fareComponents
                        $INFANTafC = isset($fareDetail['INFANT']['afC']['TAF']) ? $fareDetail['INFANT']['afC']['TAF'] : []; //additional fareComponents

                        $ADULTNCMTDS = isset($fareDetail['ADULT']['afC']['NCM']['TDS']) ? $fareDetail['ADULT']['afC']['NCM']['TDS'] : 0; //TDS
                        $CHILDNCMTDS = isset($fareDetail['CHILD']['afC']['NCM']['TDS']) ? $fareDetail['CHILD']['afC']['NCM']['TDS'] : 0; //TDS
                        $INFANTNCMTDS = isset($fareDetail['INFANT']['afC']['NCM']['TDS']) ? $fareDetail['INFANT']['afC']['NCM']['TDS'] : 0; //TDS

                        $ADULTNCMTOT = isset($fareDetail['ADULT']['afC']['NCM']['OT']) ? $fareDetail['ADULT']['afC']['NCM']['OT'] : 0; //- Gross Commission
                        $CHILDNCMTOT = isset($fareDetail['CHILD']['afC']['NCM']['OT']) ? $fareDetail['CHILD']['afC']['NCM']['OT'] : 0; //- Gross Commission
                        $INFANTNCMTOT = isset($fareDetail['INFANT']['afC']['NCM']['OT']) ? $fareDetail['INFANT']['afC']['NCM']['OT'] : 0; //- Gross Commission

                        $AD_MF = isset($ADULTafC['MF']) ? $ADULTafC['MF'] : 0; //Management Fee
                        $AD_YQ = isset($ADULTafC['YQ']) ? $ADULTafC['YQ'] : 0; //Fuel Surcharge
                        $AD_AGST = isset($ADULTafC['AGST']) ? $ADULTafC['AGST'] : 0; //Airline GST Component
                        $AD_MFT = isset($ADULTafC['MFT']) ? $ADULTafC['MFT'] : 0; //Management Fee Tax
                        $AD_OT = isset($ADULTafC['OT']) ? $ADULTafC['OT'] : 0; //Other Charges
                        $AD_MU = isset($ADULTafC['MU']) ? $ADULTafC['MU'] : 0; //markup
                        $AD_YR = isset($ADULTafC['YR']) ? $ADULTafC['YR'] : 0; //Carrier Misc Fee

                        $CH_MF = isset($CHILDafC['MF']) ? $CHILDafC['MF'] : 0; //Management Fee
                        $CH_YQ = isset($CHILDafC['YQ']) ? $CHILDafC['YQ'] : 0; //Fuel Surcharge
                        $CH_AGST = isset($CHILDafC['AGST']) ? $CHILDafC['AGST'] : 0; //Airline GST Component
                        $CH_MFT = isset($CHILDafC['MFT']) ? $CHILDafC['MFT'] : 0; //Management Fee Tax
                        $CH_OT = isset($CHILDafC['OT']) ? $CHILDafC['OT'] : 0; //Other Charges
                        $CH_MU = isset($CHILDafC['MU']) ? $CHILDafC['MU'] : 0; //markup
                        $CH_YR = isset($CHILDafC['YR']) ? $CHILDafC['YR'] : 0; //Carrier Misc Fee

                        $IN_MF = isset($INFANTafC['MF']) ? $INFANTafC['MF'] : 0; //Management Fee
                        $IN_YQ = isset($INFANTafC['YQ']) ? $INFANTafC['YQ'] : 0; //Fuel Surcharge
                        $IN_AGST = isset($INFANTafC['AGST']) ? $INFANTafC['AGST'] : 0; //Airline GST Component
                        $IN_MFT = isset($INFANTafC['MFT']) ? $INFANTafC['MFT'] : 0; //Management Fee Tax
                        $IN_OT = isset($INFANTafC['OT']) ? $INFANTafC['OT'] : 0; //Other Charges
                        $IN_MU = isset($INFANTafC['MU']) ? $INFANTafC['MU'] : 0; //markup
                        $IN_YR = isset($INFANTafC['YR']) ? $INFANTafC['YR'] : 0; //Carrier Misc Fee

                        if ($kp == 0) {
                            $PublishedFare += (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                            $BaseFare += (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                            $Tax += (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                        }

                        $PublishedFareIN = (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                        $BaseFareIN = (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                        $TaxIN = (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                        $NetFare = (($ADULT['NF'] * $adultCount) + ($CHILD['NF'] * $childCount) + ($INFANT['NF'] * $infantCount)); //Taxes and Fees
                        $NetCommission = (($ADULT['NCM'] * $adultCount) + ($CHILD['NCM'] * $childCount) + ($INFANT['NCM'] * $infantCount)); //Taxes and Fees
                        //echo '<pre>';print_r(($ADULTafC));echo '</pre>';
                        $YQTax = (($AD_YQ * $adultCount) + ($CH_YQ * $childCount) + ($IN_YQ * $infantCount));
                        $OtherCharges = (($AD_OT * $adultCount) + ($CH_OT * $childCount) + ($IN_OT * $infantCount));
                        $ServiceFee = (($AD_MF * $adultCount) + ($CH_MF * $childCount) + ($IN_MF * $infantCount));
                        $ManagementFeeTax = (($AD_MFT * $adultCount) + ($CH_MFT * $childCount) + ($IN_MFT * $infantCount));
                        $AirlineGSTComponent = (($AD_AGST * $adultCount) + ($CH_AGST * $childCount) + ($IN_AGST * $infantCount));
                        $CarrierMiscFee = (($AD_YR * $adultCount) + ($CH_YR * $childCount) + ($IN_YR * $infantCount));
                        $MUFee = (($AD_MU * $adultCount) + ($CH_MU * $childCount) + ($IN_MU * $infantCount));
                        $TdsOnPLB = (($ADULTNCMTDS * $adultCount) + ($CHILDNCMTDS * $childCount) + ($INFANTNCMTDS * $infantCount));
                        //$NetCommission = (($ADULTNCMTOT * $adultCount) + ($CHILDNCMTOT * $childCount) + ($INFANTNCMTOT * $infantCount));
                        $TdsOnPLBCal = isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0;
                        $PublishedFare = $PublishedFareIN;
                        $CommissionEarned = $NetCommission;
                        $PLBEarned = 0; //$result['Fare']['PLBEarned'];
                        $IncentiveEarned = 0; //$result['Fare']['IncentiveEarned'];
                        $OfferedFare = ($NetFare - $TdsOnPLBCal);
                        $markUpArr = array(
                            'getMarkup' => $getMarkup,
                            'PublishedFare' => $PublishedFare,
                            'OfferedFare' => $OfferedFare,
                            'intCommissionEarned' => $CommissionEarned,
                            'TdsOnPLB' => $TdsOnPLB,
                            'MUFee' => $MUFee,
                            'intPLBEarned' => $PLBEarned,
                            'intIncentiveEarned' => $IncentiveEarned,
                            'intMemberCount' => $intMemberCount,
                            'intFlightRoute' => $strFlightRoute,
                            'interNationalSearch' => $interNationalSearch,
                            'AddMarkup' => $AddMarkup,
                        );
                        //echo '<pre>';print_r($markUpArr);
                        $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);
                        if ($kp == 0) {
                            $PublishedFareReverse += ($arrMarkUps['PublishFare']);
                        }
                        $TdsOnPLBCal = isset($ADULTNCMTDS) ? str_replace('-', '', $ADULTNCMTDS) : 0;
                        $markUpArrBR = array(
                            'getMarkup' => $getMarkup,
                            'PublishedFare' => ($ADULT['TF'] * $adultCount),
                            'OfferedFare' => (($ADULT['NF'] - $TdsOnPLBCal) * $adultCount),
                            'intCommissionEarned' => ($ADULT['NCM'] * $adultCount),
                            'TdsOnPLB' => ($ADULTNCMTDS * $adultCount),
                            'MUFee' => ($AD_MU * $adultCount),
                            'intPLBEarned' => $PLBEarned,
                            'intIncentiveEarned' => $IncentiveEarned,
                            'intMemberCount' => $adultCount,
                            'intFlightRoute' => $strFlightRoute,
                            'interNationalSearch' => $interNationalSearch,
                            'AddMarkup' => $AddMarkup,
                        );
                        $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);


                        $FareBreakdown[0]['Currency'] = 'INR';
                        $FareBreakdown[0]['PassengerType'] = 1;
                        $FareBreakdown[0]['PassengerCount'] = $adultCount;
                        $FareBreakdown[0]['TaxIN'] = ($ADULT['TAF'] * $adultCount);
                        $FareBreakdown[0]['TotalBaseFare'] = ($ADULT['TF'] * $adultCount);
                        $FareBreakdown[0]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                        $FareBreakdown[0]['BaseFare'] = ($ADULT['BF'] * $adultCount);
                        $FareBreakdown[0]['CommissionEarned'] = ($ADULT['NCM'] * $adultCount);
                        $FareBreakdown[0]['TDS'] = (float)str_replace('-', '', ($ADULTNCMTDS * $adultCount));
                        $FareBreakdown[0]['MF'] = ($AD_MF * $adultCount);
                        $FareBreakdown[0]['YQ'] = ($AD_YQ * $adultCount);
                        $FareBreakdown[0]['AGST'] = ($AD_AGST * $adultCount);
                        $FareBreakdown[0]['MFT'] = ($AD_MFT * $adultCount);
                        $FareBreakdown[0]['OT'] = ($AD_OT * $adultCount);
                        $FareBreakdown[0]['MU'] = ($AD_MU * $adultCount);
                        $FareBreakdown[0]['YR'] = ($AD_YR * $adultCount);
                        $FareBreakdown[0]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                        $FareBreakdown[0]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                        $FareBreakdown[0]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                        $FareBreakdown[0]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                        $FareBreakdown[0]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                        $FareBreakdown[0]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                        $FareBreakdown[0]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                        $FareBreakdown[0]['GSTonComm'] = 0;
                        $FareBreakdown[0]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                        $FareBreakdown[0]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                        $FareBreakdown[0]['AdditionalTxnFeeOfrd'] = 0;
                        $FareBreakdown[0]['AdditionalTxnFeePub'] = 0;
                        $FareBreakdown[0]['PGCharge'] = 0;
                        $FareBreakdown[0]['Baggage'] = isset($fareDetail['ADULT']['bI']['iB']) ? $fareDetail['ADULT']['bI']['iB'] : []; //Check In Baggage;
                        $FareBreakdown[0]['CabinBaggage'] = isset($fareDetail['ADULT']['bI']['cB']) ? $fareDetail['ADULT']['bI']['cB'] : []; //Cabin Baggage ;
                        if (isset($fareDetail['CHILD'])) {
                            $TdsOnPLBCal = isset($CHILDNCMTDS) ? str_replace('-', '', $CHILDNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($CHILD['TF'] * $childCount),
                                'OfferedFare' => (($CHILD['NF'] - $TdsOnPLBCal) * $childCount),
                                'intCommissionEarned' => ($CHILD['NCM'] * $childCount),
                                'TdsOnPLB' => ($CHILDNCMTDS * $childCount),
                                'MUFee' => ($CH_MU * $childCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $childCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                            $FareBreakdown[1]['Currency'] = 'INR';
                            $FareBreakdown[1]['PassengerType'] = 2;
                            $FareBreakdown[1]['PassengerCount'] = $childCount;
                            $FareBreakdown[1]['TaxIN'] = ($CHILD['TAF'] * $childCount);
                            $FareBreakdown[1]['TotalBaseFare'] = ($CHILD['TF'] * $childCount);
                            $FareBreakdown[1]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[1]['BaseFare'] = ($CHILD['BF'] * $childCount);
                            $FareBreakdown[1]['CommissionEarned'] = ($CHILD['NCM'] * $childCount);
                            $FareBreakdown[1]['TDS'] = (float)str_replace('-', '', ($CHILDNCMTDS * $childCount));
                            $FareBreakdown[1]['MF'] = ($CH_MF * $childCount);
                            $FareBreakdown[1]['YQ'] = ($CH_YQ * $childCount);
                            $FareBreakdown[1]['AGST'] = ($CH_AGST * $childCount);
                            $FareBreakdown[1]['MFT'] = ($CH_MFT * $childCount);
                            $FareBreakdown[1]['OT'] = ($CH_OT * $childCount);
                            $FareBreakdown[1]['MU'] = ($CH_MU * $childCount);
                            $FareBreakdown[1]['YR'] = ($CH_YR * $childCount);
                            $FareBreakdown[1]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[1]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[1]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[1]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[1]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[1]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[1]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[1]['GSTonComm'] = 0;
                            $FareBreakdown[1]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[1]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[1]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[1]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[1]['PGCharge'] = 0;
                            $FareBreakdown[1]['Baggage'] = isset($fareDetail['CHILD']['bI']['iB']) ? $fareDetail['CHILD']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[1]['CabinBaggage'] = isset($fareDetail['CHILD']['bI']['cB']) ? $fareDetail['CHILD']['bI']['cB'] : []; //Cabin Baggage ;
                        }
                        if (isset($fareDetail['INFANT'])) {
                            $TdsOnPLBCal = isset($INFANTNCMTDS) ? str_replace('-', '', $INFANTNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($INFANT['TF'] * $infantCount),
                                'OfferedFare' => (($INFANT['NF'] - $TdsOnPLBCal) * $infantCount),
                                'intCommissionEarned' => ($INFANT['NCM'] * $infantCount),
                                'TdsOnPLB' => ($INFANTNCMTDS * $infantCount),
                                'MUFee' => ($IN_MU * $infantCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $infantCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                            $FareBreakdown[2]['Currency'] = 'INR';
                            $FareBreakdown[2]['PassengerType'] = 3;
                            $FareBreakdown[2]['PassengerCount'] = $infantCount;
                            $FareBreakdown[2]['TaxIN'] = ($INFANT['TAF'] * $infantCount);
                            $FareBreakdown[2]['TotalBaseFare'] = ($INFANT['TF'] * $infantCount);
                            $FareBreakdown[2]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[2]['BaseFare'] = ($INFANT['BF'] * $infantCount);
                            $FareBreakdown[2]['CommissionEarned'] = ($INFANT['NCM'] * $infantCount);
                            $FareBreakdown[2]['TDS'] = (float)str_replace('-', '', ($INFANTNCMTDS * $infantCount));
                            $FareBreakdown[2]['MF'] = ($IN_MF * $infantCount);
                            $FareBreakdown[2]['YQ'] = ($IN_YQ * $infantCount);
                            $FareBreakdown[2]['AGST'] = ($IN_AGST * $infantCount);
                            $FareBreakdown[2]['OT'] = ($IN_OT * $infantCount);
                            $FareBreakdown[2]['MFT'] = ($IN_MFT * $infantCount);
                            $FareBreakdown[2]['MU'] = ($IN_MU * $infantCount);
                            $FareBreakdown[2]['YR'] = ($IN_YR * $infantCount);
                            $FareBreakdown[2]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[2]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[2]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[2]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[2]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[2]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[2]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[2]['GSTonComm'] = 0;
                            $FareBreakdown[2]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[2]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[2]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[2]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[2]['PGCharge'] = 0;
                            $FareBreakdown[2]['Baggage'] = isset($fareDetail['INFANT']['bI']['iB']) ? $fareDetail['INFANT']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[2]['CabinBaggage'] = isset($fareDetail['INFANT']['bI']['cB']) ? $fareDetail['INFANT']['bI']['cB'] : []; //Cabin Baggage ;
                        }
                        //echo '<pre>';print_r($price);
                        $FairRulesArr[$kp] = array(
                            "Currency" => $this->CurrencyTitle, //$Currency,
                            "CurrencyRate" => $this->CurrencyRate, //$Currency,
                            "currencySysId" => $this->CurrencyId,
                            "BaseFare" => $BaseFareIN,
                            "Tax" => $TaxIN,
                            "YQTax" => $YQTax,
                            "OtherCharges" => $OtherCharges,
                            "Discount" => 0, //$Discount,
                            "ServiceFee" => $ServiceFee,
                            "ManagementFeeTax" => $ManagementFeeTax,
                            "AirlineGSTComponent" => $AirlineGSTComponent,
                            "CarrierMiscFee" => $CarrierMiscFee,
                            "MUFee" => $MUFee,
                            "intPublishedFare" => $PublishedFareIN,
                            "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                            "OfferedFare" => $arrMarkUps['intOfferedFare'],
                            "PLBEarned" => $PLBEarned,
                            "IncentiveEarned" => $IncentiveEarned,
                            "TdsOnPLB" => (float)isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0,
                            "TdsOnIncentive" => 0,
                            "AdditionalTxnFeeOfrd" => 0,
                            "AdditionalTxnFeePub" => 0,
                            "Refundable" => $Refundable,
                            "IsRefundableTxt" => $IsRefundableTxt,
                            "PriceID" => $PriceID,
                            "IsGSTRequired" => $IsGSTRequired,
                            "fareIdentifier" => str_replace('_', ' ', $fareIdentifier),
                            "SeatAvailable" => $SeatAvailable,
                            "classOfBooking" => $classOfBooking,
                            "FareClass" => $fareDetail['ADULT']['cc'],
                            "intTotalGST" => $arrMarkUps['intTotalGST'],
                            "apiMarkup" => $arrMarkUps['apiMarkup'],
                            "IntCommission" => $arrMarkUps['IntCommission'],
                            "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                            "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                            "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                            "CommEarned" => $arrMarkUps['IntCommission'],
                            "GSTonComm" => 0,
                            "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                            "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                            "IsBaggage" => $IsBaggage,
                            "IsCabinBaggage" => $IsCabinBaggage,
                            "Baggage" => $strBaggage,
                            "CabinBaggage" => $strCabinBaggage,
                            "IsMealIncludes" => $IsMealIncludes,
                            "FareBreakdown" => $FareBreakdown,
                            "arrMarkUps" => $arrMarkUps,
                        );
                        // echo '<pre>';
                        // print_r($FairRulesArr[$kp]);
                        // echo '</pre>';
                    }
                }

                $TotalLAYOVERMinutes = 0;
                if ($SegmentInformation) {
                    foreach ($SegmentInformation as $seg => $segments) {
                        //echo '<pre>';print_r($segments);
                        $duration = $segments['duration'];
                        $LAYOVERMinutes = $GroundTime = isset($segments['cT']) ? $segments['cT'] : 0;
                        $LAYOVERCity = $LAYOVERCityArr[] = isset($segments['cT']) ? $segments['aa']['city'] : '';
                        $FlyingMinutes += ($duration + $LAYOVERMinutes);
                        $TotalLAYOVERMinutes += $LAYOVERMinutes;

                        $FareClass = $totalPriceList['fd']['ADULT']['cB'];
                        $strBaggage = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                        $strCabinBaggage = $totalPriceList['fd']['ADULT']['bI']['cB']; ////Cabin Baggage
                        if (!empty($strCabinBaggage)) {
                            $IsBaggage = true;
                        } else {
                            $IsBaggage = false;
                        }

                        $AirlineCode = $segments['fD']['aI']['code'];
                        $AirlineName = $segments['fD']['aI']['name'];
                        $FlightNumber = $segments['fD']['fN'];
                        $SegFlightNumber = $AirlineCode . "-" . $FlightNumber;

                        $originAirportName = $segments['da']['name'];
                        $originAirportCode = $segments['da']['code'];
                        $originCityName = $segments['da']['city'];
                        $originCountryName = $segments['da']['country'];
                        $originDepTime = $segments['dt'];

                        $destinationAirportName = $segments['aa']['name'];
                        $destinationAirportCode = $segments['aa']['code'];
                        $destinationCityName = $segments['aa']['city'];
                        $destinationCountryName = $segments['aa']['country'];
                        $destinationArrTime = $segments['at'];

                        $DepTerminal = isset($segments['da']['terminal']) ? $segments['da']['terminal'] : '';
                        $ArrTerminal = isset($segments['aa']['terminal']) ? $segments['aa']['terminal'] : '';

                        $filePath = $this->getflightlogo($AirlineCode);

                        $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->MinutesToHours($LAYOVERMinutes);

                        $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($destinationArrTime);
                        $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($originDepTime);
                        $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($duration);
                        $arrSegments[] = array(
                            "originAirportName" => $originAirportName,
                            "destinationAirportName" => $destinationAirportName,
                            "originCityName" => $originCityName,
                            "originCountryName" => $originCountryName,
                            "destinationCityName" => $destinationCityName,
                            "destinationCountryName" => $destinationCountryName,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationArrTime" => $destinationArrTime,
                            "SegFlightNumber" => $SegFlightNumber,
                            "AirlineCode" => $AirlineCode,
                            "AirlineName" => $AirlineName,
                            "FareClass" => $FareClass,
                            "originAirportCode" => $originAirportCode,
                            "originDepTime" => $originDepTime,
                            "TripIndicator" => ($seg + 1),
                            "Baggage" => $strBaggage,
                            "CabinBaggage" => $strCabinBaggage,
                            "IsBaggage" => $IsBaggage,
                            "IsMealIncludes" => $IsMealIncludes,
                            "Duration" => $duration,
                            "GroundTime" => $GroundTime,
                            "NoOfSeatAvailable" => $NoOfSeatAvailable,
                            "strDepartureDtTime" => $strDepartureDtTime,
                            "strArrivalDtTime" => $strArrivalDtTime,
                            "FlightDuration" => $strDuration,
                            "LAYOVERDuration" => $LAYOVERDuration,
                            "LAYOVERCity" => $LAYOVERCity,
                            "DepTerminal" => $DepTerminal,
                            "ArrTerminal" => $ArrTerminal,
                            "filePath" => $filePath,
                        );
                        
                        $Segmentsss = $segments;
                        $ConectingTime = isset($Segmentsss['cT']) ? $Segmentsss['cT'] : 0;
                        $SegmentNumber = isset($Segmentsss['sN']) ? $Segmentsss['sN'] : false;
                        if ($ConectingTime == 0 && $SegmentNumber == 1) {
                            $ArrivalArr[$seg] = array(
                                'fD' => $Segmentsss['fD'],
                                'oB' => $Segmentsss['oB'],
                                'stops' => $Segmentsss['stops'],
                                'so' => $Segmentsss['so'],
                                'duration' => $Segmentsss['duration'],
                                //'da' => $Segmentsss['da'],
                                'aa' => $Segmentsss['aa'],
                                //'dt' => $Segmentsss['dt'],
                                'at' => $Segmentsss['at'],
                                'iand' => $Segmentsss['iand'],
                                'cT' => isset($Segmentsss['cT']) ? $Segmentsss['cT'] : 0,
                                'sN' => $Segmentsss['sN'],
                            );
                        } elseif ($ConectingTime == 0 && $SegmentNumber == 2) {
                            $ArrivalArr[$seg] = array(
                                'fD' => $Segmentsss['fD'],
                                'oB' => $Segmentsss['oB'],
                                'stops' => $Segmentsss['stops'],
                                'so' => $Segmentsss['so'],
                                'duration' => $Segmentsss['duration'],
                                //'da' => $Segmentsss['da'],
                                'aa' => $Segmentsss['aa'],
                                //'dt' => $Segmentsss['dt'],
                                'at' => $Segmentsss['at'],
                                'iand' => $Segmentsss['iand'],
                                'cT' => isset($Segmentsss['cT']) ? $Segmentsss['cT'] : 0,
                                'sN' => $Segmentsss['sN'],
                            );
                        } elseif ($ConectingTime == 0 && $SegmentNumber == 3) {
                            $ArrivalArr[$seg] = array(
                                'fD' => $Segmentsss['fD'],
                                'oB' => $Segmentsss['oB'],
                                'stops' => $Segmentsss['stops'],
                                'so' => $Segmentsss['so'],
                                'duration' => $Segmentsss['duration'],
                                //'da' => $Segmentsss['da'],
                                'aa' => $Segmentsss['aa'],
                                //'dt' => $Segmentsss['dt'],
                                'at' => $Segmentsss['at'],
                                'iand' => $Segmentsss['iand'],
                                'cT' => isset($Segmentsss['cT']) ? $Segmentsss['cT'] : 0,
                                'sN' => $Segmentsss['sN'],
                            );
                        } elseif ($ConectingTime == 0 && $SegmentNumber == 4) {
                            $ArrivalArr[$seg] = array(
                                'fD' => $Segmentsss['fD'],
                                'oB' => $Segmentsss['oB'],
                                'stops' => $Segmentsss['stops'],
                                'so' => $Segmentsss['so'],
                                'duration' => $Segmentsss['duration'],
                                //'da' => $Segmentsss['da'],
                                'aa' => $Segmentsss['aa'],
                                //'dt' => $Segmentsss['dt'],
                                'at' => $Segmentsss['at'],
                                'iand' => $Segmentsss['iand'],
                                'cT' => isset($Segmentsss['cT']) ? $Segmentsss['cT'] : 0,
                                'sN' => $Segmentsss['sN'],
                            );
                        } elseif ($ConectingTime == 0 && $SegmentNumber == 0) {
                            $ArrivalArr[$seg] = array(
                                'fD' => $Segmentsss['fD'],
                                'oB' => $Segmentsss['oB'],
                                'stops' => $Segmentsss['stops'],
                                'so' => $Segmentsss['so'],
                                'duration' => $Segmentsss['duration'],
                                //'da' => $Segmentsss['da'],
                                'aa' => $Segmentsss['aa'],
                                //'dt' => $Segmentsss['dt'],
                                'at' => $Segmentsss['at'],
                                'iand' => $Segmentsss['iand'],
                                'cT' => isset($Segmentsss['cT']) ? $Segmentsss['cT'] : 0,
                                'sN' => $Segmentsss['sN'],
                            );
                        }
                        if ($SegmentNumber == 0) { // departure
                            $departureArr[$seg] = array(
                                'fD' => $Segmentsss['fD'],
                                'oB' => $Segmentsss['oB'],
                                'stops' => $Segmentsss['stops'],
                                'so' => $Segmentsss['so'],
                                'duration' => $Segmentsss['duration'],
                                'da' => $Segmentsss['da'],
                                //'aa' => $Segmentsss['aa'],
                                'dt' => $Segmentsss['dt'],
                                //'at' => $Segmentsss['at'],
                                'iand' => $Segmentsss['iand'],
                                'cT' => isset($Segmentsss['cT']) ? $Segmentsss['cT'] : 0,
                                'sN' => $Segmentsss['sN'],
                            );
                        }
                    }
                }

                $arrv = array_values($ArrivalArr);
                $depa = array_values($departureArr);
                //echo "<pre>departureArr"; print_r($ArrivalArr);
                $FlightData = [];
                $FilterKey = [];
                if ($depa) {
                    foreach ($depa as $sk => $depval) {
                        $arrival = isset($arrv[$sk]) ? $arrv[$sk] : '';
                        
                        $LAYOVERMinutes = $GroundTime = isset($arrival['cT']) ? $depval['cT'] : 0;
                        $LAYOVERTimeO = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($LAYOVERMinutes);
                        if ($depval['cT']) {
                            $TotalDurationOnward = $FlyingMinutesO = ($depval['cT'] + $arrival['cT'] + $depval['duration'] + $arrival['duration']);
                        } else {
                            $TotalDurationOnward = $FlyingMinutesO = ($depval['duration']);
                        }
                        $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalDurationOnward);
                        $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($arrival['at']);
                        $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($depval['dt']);
                        //echo "<pre>departureArr"; print_r($depval);
                        $Stops = $arrival['sN'];
                        if ($Stops == 0) {
                            $OrStopCountTxt = "Non-stop";
                        } else {
                            $OrStopCountTxt = $Stops . " Stop(s)";
                        }
                        $AirlineCode = $depval['fD']['aI']['code'];
                        $FlightNumber = $depval['fD']['fN'];
                        $strAirlineName = $depval['fD']['aI']['name'];
                        $OrFlightNumber = $AirlineCode . '-' . $FlightNumber;
                        $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                        $IsLCC = $depval['fD']['aI']['isLcc'];
                        $strSourceAirportCode = $depval['da']['code'];
                        $strDestinationAirportCode = $arrival['aa']['code'];
                        $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                        $filePath = $this->getflightlogo($AirlineCode);
                        $deFlightNumber = $arrival['fD']['aI']['code'] . '-' . $arrival['fD']['fN'];
                        if ($depval['cT']) {
                            $SegFlightNumberArr = [$OrFlightNumber, $deFlightNumber];
                        } else {
                            $SegFlightNumberArr = [$OrFlightNumber];
                        }

                        $FlightData[$sk]['FlightNumber'] = $FlightNumber;
                        $FlightData[$sk]['SegFlightNumberArr'] = implode(', ', $SegFlightNumberArr);
                        $FlightData[$sk]['AirlineName'] = $strAirlineName;
                        $FlightData[$sk]['AirlineCode'] = $AirlineCode;
                        $FlightData[$sk]['OrFlightNumber'] = $OrFlightNumber;
                        $FlightData[$sk]['AirInvenSysId'] = 0;
                        $FlightData[$sk]['IsLCC'] = $IsLCC;
                        //$FlightData[$sk]['SearchTraceId'] = $FlightTraceId;
                        $FlightData[$sk]['apiTraceId'] = $strTraceId;
                        $FlightData[$sk]['AirlineSysId'] = $airlineSysId;
                        $FlightData[$sk]['DepartureTime'] = $strDepartureDtTime;
                        $FlightData[$sk]['ArrivalTime'] = $strArrivalDtTime;
                        $FlightData[$sk]['IsDirect'] = 0;
                        $FlightData[$sk]['FareClass'] = $strFareClass;
                        $FlightData[$sk]['FromUTCTime'] = $depval['dt'];
                        $FlightData[$sk]['ToUTCTime'] = $arrival['at'];
                        $FlightData[$sk]['DepartureDateTxt'] = date('D, d M', strtotime($depval['dt']));
                        $FlightData[$sk]['ArrivalDateTxt'] = date('D, d M', strtotime($arrival['at']));
                        $FlightData[$sk]['FlightDuration'] = $FlightDuration;
                        $FlightData[$sk]['SourcePlaceSysId'] = $intSourceCityId[$sk];
                        $FlightData[$sk]['DestPlaceSysId'] = $intDestinationCityId[$sk];
                        $FlightData[$sk]['SourceAirportCode'] = $strSourceAirportCode;
                        $FlightData[$sk]['DestAirportCode'] = $strDestinationAirportCode;
                        $FlightData[$sk]['SourcePlaceName'] = $sourceCityText[$sk];
                        $FlightData[$sk]['DestPlaceName'] = $destinationCityText[$sk];
                        $FlightData[$sk]['StopCount'] = $OrStopCountTxt;
                        $FlightData[$sk]['Stops'] = $Stops;
                        $FlightData[$sk]['JourneyType'] = 1;
                        $FlightData[$sk]['TripType'] = $intTripType;
                        $FlightData[$sk]['ICSourceSysId'] = 7;
                        $FlightData[$sk]['logo'] = $filePath;
                        $FilterKey[] = trim($strFlightNumber).''.trim($strFareClass).''.$arrival['at'].''.$depval['dt'];
                        // echo "<pre>departureArr"; print_r($FlightData);

                        $FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strDepartureDtTime);
                        $FilterArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strArrivalDtTime);
                        $FlightData[$sk]['FilterDepartureDtTime'] = $FilterDepartureDtTime;
                        $FlightData[$sk]['FilterArrivalDtTime'] = $FilterArrivalDtTime;

                        $arrAirlineName[$sk][] = $AirlineCode . '-' . $strAirlineName;;
                        $FiltStopCount[$sk][] = $OrStopCountTxt;
                        
                        $FiltSupplier[$sk][] = 'Supplier 1';
                    }
                }
                
                $LAYOVERTime = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($TotalLAYOVERMinutes);

                $AirlineCode = $OriginSegments['fD']['aI']['code'];
                $FlightNumber = $OriginSegments['fD']['fN'];
                $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                $strAirlineName = $OriginSegments['fD']['aI']['name'];
                $IsLCC = $OriginSegments['fD']['aI']['isLcc'];
                $strSourceAirportCode = $OriginSegments['da']['code'];
                $strDestinationAirportCode = $DestinationSegments['aa']['code'];

                $Stops = $DestinationSegments['sN'];
                if ($Stops == 0) {
                    $StopCountTxt = "Non-stop";
                } else {
                    $StopCountTxt = $Stops . " Stop(s)";
                }
                $filePath = $this->getflightlogo($AirlineCode);
                $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);
                $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DestinationSegments['at']);
                $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($OriginSegments['dt']);
                $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                $arrInsertFlightData[$key]['FlightNumber'] = $strFlightNumber;
                $arrInsertFlightData[$key]['AirlineName'] = $strAirlineName;
                $arrInsertFlightData[$key]['AirlineCode'] = $AirlineCode;
                $arrInsertFlightData[$key]['FlightNumberCode'] = $FlightNumber;
                $arrInsertFlightData[$key]['AirInvenSysId'] = 0;
                $arrInsertFlightData[$key]['IsLCC'] = $IsLCC;
                $arrInsertFlightData[$key]['IsMealIncludes'] = $IsMealIncludes;
                $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                $arrInsertFlightData[$key]['IsRefundable'] = $IsRefundable;
                $arrInsertFlightData[$key]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrInsertFlightData[$key]['SearchTraceId'] = $SearchTraceId;
                $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                $arrInsertFlightData[$key]['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData[$key]['DepartureTime'] = $strDepartureDtTime;
                $arrInsertFlightData[$key]['ArrivalTime'] = $strArrivalDtTime;
                $arrInsertFlightData[$key]['TravelDate'] = $OriginSegments['dt'];
                $arrInsertFlightData[$key]['LocalFromTime'] = str_replace('T', ' ', $OriginSegments['dt']);
                $arrInsertFlightData[$key]['FromUTCTime'] = $OriginSegments['dt'];
                $arrInsertFlightData[$key]['LocalToTime'] = str_replace('T', ' ', $DestinationSegments['at']);
                $arrInsertFlightData[$key]['ToUTCTime'] = $DestinationSegments['at'];
                $arrInsertFlightData[$key]['IsDirect'] = 0;
                $arrInsertFlightData[$key]['FareClass'] = $strFareClass;
                $arrInsertFlightData[$key]['LAYOVERCity'] = isset($LAYOVERCityArr[0]) ? $LAYOVERCityArr[0] : '';
                $arrInsertFlightData[$key]['GroundTime'] = $TotalLAYOVERMinutes;
                $arrInsertFlightData[$key]['LAYOVERDuration'] = $LAYOVERTime;
                $arrInsertFlightData[$key]['FlyingMinutes'] = $FlyingMinutes;
                $arrInsertFlightData[$key]['DepartureDateTxt'] = date('D, d M', strtotime($OriginSegments['dt']));
                $arrInsertFlightData[$key]['ArrivalDateTxt'] = date('D, d M', strtotime($DestinationSegments['at']));
                $arrInsertFlightData[$key]['FlightDuration'] = $FlightDuration;
                $arrInsertFlightData[$key]['SourcePlaceSysId'] = $intSourceCityId;
                $arrInsertFlightData[$key]['DestPlaceSysId'] = $intDestinationCityId;
                $arrInsertFlightData[$key]['SourceAirportCode'] = $strSourceAirportCode;
                $arrInsertFlightData[$key]['DestAirportCode'] = $strDestinationAirportCode;
                $arrInsertFlightData[$key]['SourcePlaceName'] = $sourceCityText[0];
                $arrInsertFlightData[$key]['DestPlaceName'] = $destinationCityText[0];
                $arrInsertFlightData[$key]['StopCount'] = $StopCountTxt;
                $arrInsertFlightData[$key]['Stops'] = $Stops;
                $arrInsertFlightData[$key]['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                $arrInsertFlightData[$key]['TotalFlightMembers'] = $intMemberCount;
                $arrInsertFlightData[$key]['CurrencyType'] = $this->CurrencyId;
                $arrInsertFlightData[$key]['PublishedFare'] = ($PublishedFare * $this->CurrencyRate); // As Discussed with GG
                $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format(($PublishedFare * $this->CurrencyRate)); // As Discussed with GG
                
                $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                $arrInsertFlightData[$key]['JourneyType'] = $intJourneyType;
                $arrInsertFlightData[$key]['TripType'] = $intTripType;
                $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                $arrInsertFlightData[$key]['logo'] = $filePath;
                $arrInsertFlightData[$key]['FairRules'] = $FairRulesArr;
                $arrInsertFlightData[$key]['Segments'] = $arrSegments;
                $arrInsertFlightData[$key]['FlightData'] = $FlightData;
                $arrInsertFlightData[$key]['ICSourceSysId'] = 7;
                $arrInsertFlightData[$key]['supplier'] = 'Supplier 1';
                $arrInsertFlightData[$key]['IsTJFlightAPI'] = true;
                $arrInsertFlightData[$key]['bookingAllowed'] = $bookingAllowed;
                $arrInsertFlightData[$key]['FilterKey'] = implode('-',$FilterKey);

                $arrAirlineName[] = $AirlineCode . '-' . $strAirlineName;
                $AttPriceRange[] = $PublishedFare;
                $FiltStopCount[] = $StopCountTxt;

                if ($FairRulesArr) {
                    foreach ($FairRulesArr as $Fare) {
                        $dddddddd[] = $Fare['PublishedFare'];
                    }
                }

                $FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strDepartureDtTime);

                $arrInsertFlightData[$key]['FilterDepartureDtTime'] = $FilterDepartureDtTime;
            }
        }

        $MultiHead = [];
        $outboundArray = [];
        if ($sessionFlightSearchParams['sourceCityText']) {
            foreach ($sessionFlightSearchParams['sourceCityText'] as $sk => $source_) {
                $destination_ = isset($sessionFlightSearchParams['destinationCityText'][$sk]) ? explode(',', $sessionFlightSearchParams['destinationCityText'][$sk]) : '';
                $source_ = isset($source_) ? explode(',', $source_) : '';
                $departure_date_ = isset($sessionFlightSearchParams['departure_dates'][$sk]) ? $sessionFlightSearchParams['departure_dates'][$sk] : '';
                $MultiHead[] = array(
                    'source' => $source_[0],
                    'destination' => $destination_[0],
                    'departure_date' => $departure_date_,
                    
                );
               
            }
        }

        $data = array('outbound' => $arrInsertFlightData, 'inbound' => [],'MultiHead'=>$MultiHead, 'FiltPrice' => [], 'CurrencyTitle' => $this->CurrencyTitle, 'dddddddd' => ($dddddddd));
        return ($data);



    }
    
    public function FlightDataTBO($SearchParam)
    {
        $bookingAllowed = $SearchParam['bookingAllowed'];
        $sessionFlightSearchParams = $SearchParam['sessionFlightSearchParams'];
        $addMarkupArr = $SearchParam['addMarkupArr'];
        $AgencySysId = $SearchParam['AgencySysId'];
        $FlightNumberArr = $SearchParam['FlightNumber'];
        $apiResponse = $SearchParam['apiResponse'];
        $sessionFlightSearchParams['bookingAllowed'] = $bookingAllowed;
        $objAirline = new Travel_Model_TblAirline();
        $arrAirlineList = $objAirline->getAirlineIdsAndCodeList();
        $flight_class = trim($sessionFlightSearchParams['flight_class']);
        $preferredFlightClassType = ($flight_class == 1) ? 2 : $flight_class;
        $arrFlightClass = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getFlightClasses();
        $cabinClass = isset($arrFlightClass[$preferredFlightClassType]) ? $arrFlightClass[$preferredFlightClassType] : 'Economy';

        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
        $strReturnDate = $sessionFlightSearchParams['return_dates'];
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $sourceCityText = explode(',', $sessionFlightSearchParams['sourceCityText']);
        $destinationCityText = explode(',', $sessionFlightSearchParams['destinationCityText']);
        $intTatalPaxCT = $adultCount + $childCount;
        $getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);
        $getCancelCharge = $this->getCancelCharge($intCountryCode, $AgencySysId);
        $strDepatureDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strDepatureDate, 'd/m/y');
        $strReturnDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strReturnDate, 'd/m/y');
        $intResponseStatus = !empty($apiResponse['ResponseStatus']) ? $apiResponse['ResponseStatus'] : '0';
        if ($intResponseStatus == 1) {
            $DayLightSavingDiff = 0;
            $AirportHaultMinutes = 0;
            $arrInsertFlightData = [];
            $arrAirlineName = [];
            $FiltStopCount = [];
            $FiltSupplier = [];
            $FiltPriceRange = [];
            $AttPriceRange = [];
            foreach ($apiResponse['OutBoundFlightResults'] as $key => $result) {
                $IsGSTMandatory = isset($result['IsGSTMandatory']) ? $result['IsGSTMandatory'] : 0;
                $ResultIndex = $result['ResultIndex'];
                $FareColor = $result['FareClassification']['Color'];
                $Source = $result['Source'];
                $IsLCC = $result['IsLCC'];
                $strTraceId = !empty($apiResponse['TraceId']) ? $apiResponse['TraceId'] : '';
                $IsRefundable = ($result['IsRefundable']) ? 1 : 0;
                $AirlineRemark = $result['AirlineRemark'];

                $MiniFareRules = (isset($result['MiniFareRules']) && !empty($result['MiniFareRules'])) ? $result['MiniFareRules'] : [];
                $MiniFR = [];
                if ($MiniFareRules) {
                    foreach ($MiniFareRules as $Minivalue) {
                        if ($Minivalue) {
                            foreach ($Minivalue as $kk => $Mini) {
                                $Type = !empty($Mini['Type']) ? strtoupper($Mini['Type']) : 'NA';
                                if (empty($Mini['To'])) {
                                    $TimeFrame = 'from ' . $Mini['From'] . ' ' . $Mini['Unit'] . ' & above before dept';
                                } else {
                                    $TimeFrame = 'from ' . $Mini['From'] . ' To ' . $Mini['To'] . ' ' . $Mini['Unit'] . ' before dept';
                                }
                                //$MiniFR[$Type][$kk] = $Mini;
                                $MiniFR[$Type][$kk]['sector'] = $Mini['JourneyPoints'];
                                $MiniFR[$Type][$kk]['amount'] = $Mini['Details'];
                                $MiniFR[$Type][$kk]['additionalFee'] = $getCancelCharge;
                                $MiniFR[$Type][$kk]['TimeFrame'] = $TimeFrame;
                                $MiniFR[$Type][$kk]['policyInfo'] = [];
                            }
                        }
                    }
                }
                $tripbinfo = [];
                if ($result['Segments']) {
                    foreach ($result['Segments'] as $value) {
                        if ($value) {
                            foreach ($value as $kk => $vl) {
                                $Baggage = $vl['Baggage'];
                                $CabinBaggage = $vl['CabinBaggage'];
                                $SectorsCode = $vl['Origin']['Airport']['AirportCode'] . '-' . $vl['Destination']['Airport']['AirportCode'];
                                $tripbinfo[$SectorsCode]['ADULT'] = ['cabin' => $CabinBaggage, 'checkin' => $Baggage];
                                if (!empty($childCount)) {
                                    $tripbinfo[$SectorsCode]['CHILD'] = ['cabin' => $CabinBaggage, 'checkin' => $Baggage];
                                }
                                if (!empty($infantCount)) {
                                    $tripbinfo[$SectorsCode]['INFANT'] = ['cabin' => $CabinBaggage, 'checkin' => 'NA'];
                                }
                            }
                        }
                    }
                }
                $LastTicketDate = $result['LastTicketDate'];
                $TicketAdvisory = $result['TicketAdvisory'];
                $AirlineCode = $result['AirlineCode'];
                $ValidatingAirline = $result['ValidatingAirline'];

                $Currency = $result['Fare']['Currency'];
                $currencySysId = $this->CurrencyId;
                $BaseFare = $result['Fare']['BaseFare'];
                $Tax = $result['Fare']['Tax'];

                $YQTax = $result['Fare']['YQTax'];
                $AdditionalTxnFeeOfrd = $result['Fare']['AdditionalTxnFeeOfrd'];
                $AdditionalTxnFeePub = $result['Fare']['AdditionalTxnFeePub'];
                $OtherCharges = $result['Fare']['OtherCharges'];
                $Discount = $result['Fare']['Discount'];
                $PublishedFare = $result['Fare']['PublishedFare'];
                $CommissionEarned = $result['Fare']['CommissionEarned'];
                $PLBEarned = $result['Fare']['PLBEarned'];
                $IncentiveEarned = $result['Fare']['IncentiveEarned'];
                $OfferedFare = $result['Fare']['OfferedFare'];
                $TdsOnCommission = $result['Fare']['TdsOnCommission'];
                $TdsOnPLB = $result['Fare']['TdsOnPLB'];
                $TdsOnIncentive = $result['Fare']['TdsOnIncentive'];
                $ServiceFee = $result['Fare']['ServiceFee'];
                //$ResultFareType = $result['ResultFareType'];
                $ResultFareType = !empty($result['FareClassification']['Type']) ? $result['FareClassification']['Type'] : $result['ResultFareType'];
                $FareBreakdown = $result['FareBreakdown'];
                $totalCommissions = $result['Fare']['CommissionEarned'] + $result['Fare']['PLBEarned'] + $result['Fare']['IncentiveEarned'];
                $totalCommissionsOnTds = $result['Fare']['TdsOnCommission'] + $result['Fare']['TdsOnIncentive'] + $result['Fare']['TdsOnPLB'];
                $TotalPassengerCountForDiscount = $adultCount + $childCount;
                $intDiscountPerHead = $totalCommissions / $TotalPassengerCountForDiscount;
                //$intDiscountPerHead = $totalCommissions; 
                $markUpArr = array(
                    'getMarkup' => $getMarkup,
                    'PublishedFare' => $PublishedFare,
                    'OfferedFare' => $OfferedFare,
                    'intCommissionEarned' => $totalCommissions,
                    'TdsOnPLB' => $totalCommissionsOnTds,
                    'MUFee' => $ServiceFee,
                    'intPLBEarned' => $PLBEarned,
                    'intIncentiveEarned' => $IncentiveEarned,
                    'intMemberCount' => $intMemberCount,
                    'intFlightRoute' => $strFlightRoute,
                    'interNationalSearch' => $interNationalSearch,
                );


                $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);
                //echo "<pre>"; print_r($arrMarkUps);echo "</pre>";
                $intPublishedFare = $arrMarkUps['PublishFare'];

                $countBreakUp = count($FareBreakdown);
                foreach ($FareBreakdown as $pk => $pax) {
                    $intBaseFare = $pax['BaseFare'];
                    $intTax = $pax['Tax'];
                    $OtherCharges_ = ($OtherCharges / $countBreakUp);
                    $intDiscountPerHead_ = ($intDiscountPerHead / $countBreakUp);
                    $intBaseFareCal = $intBaseFare - $intDiscountPerHead_;
                    $intFareOfferedToPax = $intBaseFareCal + $intTax;
                    $intPassengerCount = isset($pax['PassengerCount']) ? $pax['PassengerCount'] : 0;
                    $arrFareBreakdown[$pk]['Currency'] = $pax['Currency'];
                    $arrFareBreakdown[$pk]['PassengerType'] = $pax['PassengerType'];
                    $arrFareBreakdown[$pk]['PassengerCount'] = $pax['PassengerCount'];
                    $arrFareBreakdown[$pk]['TaxIN'] = ($pax['Tax']);
                    $arrFareBreakdown[$pk]['TotalBaseFare'] = 0;
                    $arrFareBreakdown[$pk]['BaseFareCal'] = ($arrMarkUps['BaseFareCal'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['BaseFare'] = ($intBaseFareCal);
                    $arrFareBreakdown[$pk]['CommissionEarned'] = ($totalCommissions / $countBreakUp);
                    $arrFareBreakdown[$pk]['OtherCharges'] = ($OtherCharges_);
                    $arrFareBreakdown[$pk]['TDS'] = ($totalCommissionsOnTds / $countBreakUp);
                    $arrFareBreakdown[$pk]['MF'] = 0;
                    $arrFareBreakdown[$pk]['YQ'] = $pax['YQTax'];
                    $arrFareBreakdown[$pk]['AGST'] = 0;
                    $arrFareBreakdown[$pk]['MFT'] = 0;
                    $arrFareBreakdown[$pk]['OT'] = $pax['Tax'];
                    $arrFareBreakdown[$pk]['MU'] = 0;
                    $arrFareBreakdown[$pk]['YR'] = 0;
                    $arrFareBreakdown[$pk]['intTotalGST'] = ($arrMarkUps['intTotalGST'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['apiMarkup'] = ($arrMarkUps['apiMarkup'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['IntCommission'] = ($arrMarkUps['IntCommission'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['apiTaxOnMarkup'] = ($arrMarkUps['apiTaxOnMarkup'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['FixedMarkUp'] = ($arrMarkUps['IntAgencyFixMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GSTOnMarkUp'] = ($arrMarkUps['IntTaxOnAgencyFixMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['CommEarned'] = ($arrMarkUps['IntCommission'] / $countBreakUp);; //($arrMarkUps['intCommisionEarnedForAgency'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GSTonComm'] = 0;
                    $arrFareBreakdown[$pk]['intGTXMarkUp'] = ($arrMarkUps['intGTXMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GTXMarkUpGST'] = ($arrMarkUps['intSTaxOnGTXMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['Agencycommission'] = ($arrMarkUps['Agencycommission'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['AdditionalTxnFeeOfrd'] = $pax['AdditionalTxnFeeOfrd'];
                    $arrFareBreakdown[$pk]['AdditionalTxnFeePub'] = $pax['AdditionalTxnFeePub'];
                    $arrFareBreakdown[$pk]['PGCharge'] = 0;
                    $arrFareBreakdown[$pk]['Baggage'] = ''; //Check In Baggage;
                    $arrFareBreakdown[$pk]['CabinBaggage'] = ''; //Cabin Baggage ;
                }

                $arrFairRules[0] = array(
                    "Currency" => $this->CurrencyTitle, //$Currency,
                    "CurrencyRate" => $this->CurrencyRate, //$Currency,
                    "currencySysId" => $this->CurrencyId,
                    "BaseFare" => $BaseFare,
                    "Tax" => $Tax,
                    "YQTax" => $YQTax,
                    "OtherCharges" => $OtherCharges,
                    "Discount" => $Discount,
                    "ServiceFee" => $ServiceFee,
                    "ManagementFeeTax" => 0,
                    "AirlineGSTComponent" => 0,
                    "CarrierMiscFee" => 0,
                    "MUFee" => 0,
                    "intPublishedFare" => $PublishedFare,
                    "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                    "PublishedFareAgent" => ($arrMarkUps['CostToAgentCustomer'] * $this->CurrencyRate),
                    "OfferedFareAgent" => ($arrMarkUps['CostToAgent'] * $this->CurrencyRate),
                    "OfferedFare" => $arrMarkUps['intOfferedFare'],
                    "CommissionEarned" => $CommissionEarned,
                    "PLBEarned" => $PLBEarned,
                    "IncentiveEarned" => $IncentiveEarned,
                    "TdsOnCommission" => $TdsOnCommission,
                    "TdsOnPLB" => $TdsOnPLB,
                    "TdsOnIncentive" => $TdsOnIncentive,
                    "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                    "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                    "PriceID" => $ResultIndex,
                    "ApiResultIndex" => $ResultIndex,
                    "IsGSTRequired" => $IsGSTMandatory,
                    "fareIdentifier" => $ResultFareType,
                    "FareColor" => $FareColor,
                    "FareClass" => $cabinClass,
                    "intTotalGST" => $arrMarkUps['intTotalGST'],
                    "apiMarkup" => $arrMarkUps['apiMarkup'],
                    "IntCommission" => $arrMarkUps['IntCommission'],
                    "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                    "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                    "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                    "CommEarned" => $arrMarkUps['IntCommission'], //$arrMarkUps['intCommisionEarnedForAgency'],
                    "CommEarnedAgent" => $arrMarkUps['AgentB2CEarning'],
                    "GSTonComm" => 0,
                    "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                    "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                    "FareBreakdown" => $arrFareBreakdown,
                    // "arrMarkUps" => $arrMarkUps,
                    "tripbinfo" => $tripbinfo,
                    "MiniFR" => $MiniFR,
                );
                //echo '<pre>';print_r($arrFairRules);die;

                $originCity = $result['Segments'][0][0]['Origin']['Airport']['CityName'];
                $DestinationCity = $result['Segments'][0][0]['Destination']['Airport']['CityName'];
                $AirlineCode = $result['Segments'][0][0]['Airline']['AirlineCode'];
                $FlightNumber = $result['Segments'][0][0]['Airline']['FlightNumber'];
                $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                $strAirlineName = $result['Segments'][0][0]['Airline']['AirlineName'];
                $strFareClass = $result['Segments'][0][0]['Airline']['FareClass'];
                $AccumulatedDuration = 0;
                // echo '<pre>';
                // print_r(($arrFairRules));
                // echo '<pre>';
                // print_r(($strFlightNumber));
                // echo '<pre>';
                // print_r(($PublishedFare));
                // echo '<pre>';
                // print_r(($OfferedFare));
                // die;
                $arrSegments = [];
                $FareClassArr = [];
                if (!empty($result['Segments'][0])) {
                    $FlyingMinutes = 0;

                    $countSeg = count($result['Segments'][0]);
                    foreach ($result['Segments'][0] as $segmentsResult) {
                        $Duration = $segmentsResult['Duration'];
                        if ($countSeg >= 2) {
                            $AccumulatedDuration += isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : (0);
                        } else {
                            $AccumulatedDuration += ($segmentsResult['Duration'] + $segmentsResult['GroundTime']);
                        }

                        $FlyingMinutes = $FlyingMinutes + (isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : ($segmentsResult['Duration'] + $segmentsResult['GroundTime']));
                        $LAYOVERMinutes = ((isset($segmentsResult['GroundTime']) ? $segmentsResult['GroundTime'] : 0));
                        $DepTime = $segmentsResult['Origin']['DepTime'];
                        $ArrTime = $segmentsResult['Destination']['ArrTime'];
                        $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($LAYOVERMinutes);
                        // FOR FLIGHT SEGMENTS.....
                        $strBaggage = $segmentsResult['Baggage'];
                        $strCabinBaggage = $segmentsResult['CabinBaggage'];
                        if (!empty($strBaggage)) {
                            $IsBaggage = 1;
                            $IsBagIncludes = true;
                        } else {
                            $IsBaggage = 0;
                            $IsBagIncludes = false;
                        }
                        if (!empty($strCabinBaggage)) {
                            $strCabinBaggage = $strCabinBaggage;
                        } else {
                            $strCabinBaggage = '0 KG';
                        }
                        $TripIndicator = $segmentsResult['TripIndicator'];
                        $SegmentIndicator = $segmentsResult['SegmentIndicator'];

                        $strAirlineCode = $segmentsResult['Airline']['AirlineCode'];
                        $AirlineName = $segmentsResult['Airline']['AirlineName'];
                        $FlightNumber = $segmentsResult['Airline']['FlightNumber'];
                        $FareClass = $segmentsResult['Airline']['FareClass'];
                        $FareClassArr[] = $FareClass;
                        $SegFlightNumber = $strAirlineCode . "-" . $FlightNumber;

                        $DepTerminal = $segmentsResult['Origin']['Airport']['Terminal'];
                        if (!empty($DepTerminal)) {
                            $DepTerminal = $DepTerminal;
                        } else {
                            $DepTerminal = 0;
                        }
                        $ArrTerminal = $segmentsResult['Destination']['Airport']['Terminal'];
                        if (!empty($ArrTerminal)) {
                            $ArrTerminal = $ArrTerminal;
                        } else {
                            $ArrTerminal = 0;
                        }

                        $originAirportName = $segmentsResult['Origin']['Airport']['AirportName'];
                        $originAirportCode = $segmentsResult['Origin']['Airport']['AirportCode'];
                        $originCityName = $segmentsResult['Origin']['Airport']['CityName'];
                        $originCountryName = $segmentsResult['Origin']['Airport']['CountryName'];
                        $originDepTime = $segmentsResult['Origin']['DepTime'];

                        $destinationAirportName = $segmentsResult['Destination']['Airport']['AirportName'];
                        $destinationAirportCode = $segmentsResult['Destination']['Airport']['AirportCode'];
                        $destinationCityName = $segmentsResult['Destination']['Airport']['CityName'];
                        $destinationCountryName = $segmentsResult['Destination']['Airport']['CountryName'];
                        $destinationArrTime = $segmentsResult['Destination']['ArrTime'];

                        $Duration = $segmentsResult['Duration'];
                        $GroundTime = $segmentsResult['GroundTime'];
                        $Mile = $segmentsResult['Mile'];
                        $StopOver = $segmentsResult['StopOver'];
                        $StopPoint = $segmentsResult['StopPoint'];
                        $StopPointArrivalTime = $segmentsResult['StopPointArrivalTime'];
                        $StopPointDepartureTime = $segmentsResult['StopPointDepartureTime'];
                        $Craft = $segmentsResult['Craft'];
                        $Remark = $segmentsResult['Remark'];
                        $IsETicketEligible = $segmentsResult['IsETicketEligible'];
                        $NoOfSeatAvailable = !empty($segmentsResult['NoOfSeatAvailable']) ? $segmentsResult['NoOfSeatAvailable'] : 0;
                        $FlightStatus = $segmentsResult['FlightStatus'];
                        $Status = $segmentsResult['Status'];

                        $strAirlineCodeLogo = $strAirlineCode;
                        $filePath = $this->getflightlogo($strAirlineCodeLogo);
                        //$filePath = $_SERVER['DOCUMENT_ROOT'] . "/public/upload/AirlineLogo/";


                        $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->convertMinutesToHoursFormat((isset($segmentsResult['Duration']) ? $segmentsResult['Duration'] : 0));

                        $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($ArrTime);
                        $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DepTime);
                        $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);

                        //                        $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->CalculateTotalTime($strArrivalDtTime,$strDepartureDtTime);
                        $arrSegments[] = array(
                            "segmentid" => $FlightNumber,
                            "originAirportName" => $originAirportName,
                            "destinationAirportName" => $destinationAirportName,
                            "originCityName" => $originCityName,
                            "originCountryName" => $originCountryName,
                            "destinationCityName" => $destinationCityName,
                            "destinationCountryName" => $destinationCountryName,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationArrTime" => $destinationArrTime,
                            "SegFlightNumber" => $SegFlightNumber,
                            "AirlineCode" => $strAirlineCode,
                            "AirlineName" => $AirlineName,
                            "FareClass" => $FareClass,
                            "originAirportCode" => $originAirportCode,
                            "originDepTime" => $originDepTime,
                            "TripIndicator" => $TripIndicator,
                            "isReturnSegment" => ($TripIndicator == 1) ? false : true,
                            "Baggage" => $strBaggage,
                            "CabinBaggage" => $strCabinBaggage,
                            "IsBaggage" => $IsBaggage,
                            "SegmentIndicator" => $SegmentIndicator,
                            "Duration" => $Duration,
                            "GroundTime" => $GroundTime,
                            "Mile" => $Mile,
                            "StopOver" => $StopOver,
                            "StopPoint" => $StopPoint,
                            "StopPointArrivalTime" => $StopPointArrivalTime,
                            "StopPointDepartureTime" => $StopPointDepartureTime,
                            "Craft" => $Craft,
                            "Remark" => $Remark,
                            "IsETicketEligible" => $IsETicketEligible,
                            "FlightStatus" => $FlightStatus,
                            "Status" => $Status,
                            "NoOfSeatAvailable" => $NoOfSeatAvailable,
                            "strDepartureDtTime" => $strDepartureDtTime,
                            "strArrivalDtTime" => $strArrivalDtTime,
                            "FlightDuration" => $strDuration,
                            "LAYOVERDuration" => $LAYOVERDuration,
                            "DepTerminal" => $DepTerminal,
                            "ArrTerminal" => $ArrTerminal,
                            "filePath" => $filePath,
                        );
                        // FOR FLIGHT SEGMENTS.....
                    }
                }

                $airlineSysId = !empty($arrAirlineList[$result['AirlineCode']]) ? $arrAirlineList[$result['AirlineCode']] : '0';
                $FlyingMinutes = $AccumulatedDuration;

                if (count($result['Segments'][0]) == 1) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][0]['Destination'];
                } elseif (count($result['Segments'][0]) == 2) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][1]['Destination'];
                } elseif (count($result['Segments'][0]) == 3) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][2]['Destination'];
                }

                $strSourceAirportCode = $DepOrigin['Airport']['AirportCode'];
                $strDestinationAirportCode = $DepDestination['Airport']['AirportCode'];
                if (count($result['Segments'][0]) > 1) {
                    $SegmentsCount = count($result['Segments'][0]);
                    $StopCount = $SegmentsCount - 1;
                    $IsDirect = '0';
                    $initialOriginDepTime = $result['Segments'][0][0]['Origin']['DepTime'];
                    $initialOriginArrTime = $result['Segments'][0][1]['Destination']['ArrTime'];
                } else {
                    $StopCount = '0';
                    $IsDirect = '1';
                    $initialOriginDepTime = $result['Segments'][0][0]['Origin']['DepTime'];
                    $initialOriginArrTime = $result['Segments'][0][0]['Destination']['ArrTime'];
                }
                //                echo '<pre>';print_r($StopCount);
                $strAirlineCodeEX = explode("-", trim($strFlightNumber));
                $strAirlineCodeLogo = $strAirlineCodeEX[0];

                $filePath = $this->getflightlogo($strAirlineCodeLogo);

                $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($initialOriginArrTime);
                $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($initialOriginDepTime);
                $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);
                if ($StopCount == 0) {
                    $StopCountTxt = "Non-stop";
                } else {
                    $StopCountTxt = $StopCount . " Stop(s)";
                }
                if ($IsRefundable) {
                    $IsRefundableTxt = 'Refundable';
                } else {
                    $IsRefundableTxt = 'Non Refundable';
                }
                $classOfBooking = implode(',', $FareClassArr);
                $arrFairRules[0]['classOfBooking'] = $classOfBooking;
                //$arrFairRules[0]['FareClass'] = $FlightClass;
                $arrFairRules[0]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrFairRules[0]['SeatAvailable'] = $NoOfSeatAvailable;
                $intJourneyType = 1;
                $intTripType = 1;
                $localFromDateTime = str_replace(' ', 'T', $initialOriginDepTime); //date("Y-m-d h:i", strtotime($strDepatureDate));
                $localToDateTime = str_replace(' ', 'T', $initialOriginArrTime); //date("Y-m-d h:i", strtotime($strReturnDate));
                //echo '<pre>';print_r($initialOriginDepTime);
                //echo '<pre>';print_r($localFromDateTime);
                $arrInsertFlightData[$key]['FlightNumber'] = $strFlightNumber;
                $arrInsertFlightData[$key]['AirlineName'] = ucwords(strtolower($strAirlineName));
                $arrInsertFlightData[$key]['AirlineCode'] = $AirlineCode;
                $arrInsertFlightData[$key]['FlightNumberCode'] = $strAirlineCodeEX[1];
                $arrInsertFlightData[$key]['ApiSource'] = $Source;
                $arrInsertFlightData[$key]['AirlineRemark'] = $AirlineRemark;
                $arrInsertFlightData[$key]['AirInvenSysId'] = 0;
                $arrInsertFlightData[$key]['IsLCC'] = $IsLCC;
                $arrInsertFlightData[$key]['IsTJFlightAPI'] = $this->IsTJFlightAPI;
                $arrInsertFlightData[$key]['IsGSTMandatory'] = $IsGSTMandatory;
                $arrInsertFlightData[$key]['IsRefundable'] = $IsRefundable;
                $arrInsertFlightData[$key]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                $arrInsertFlightData[$key]['SearchTraceId'] = $SearchTraceId;
                $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                $arrInsertFlightData[$key]['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData[$key]['TravelDate'] = $localFromDateTime;
                $arrInsertFlightData[$key]['LocalFromTime'] = $localFromDateTime;
                $arrInsertFlightData[$key]['FromUTCTime'] = $initialOriginDepTime;
                $arrInsertFlightData[$key]['LocalToTime'] = $localToDateTime;
                $arrInsertFlightData[$key]['ToUTCTime'] = $initialOriginArrTime;
                $arrInsertFlightData[$key]['DepartureTime'] = $strDepartureDtTime;
                $arrInsertFlightData[$key]['DepartureDateTxt'] = date('D, d M', strtotime($localFromDateTime));
                $arrInsertFlightData[$key]['ArrivalTime'] = $strArrivalDtTime;
                $arrInsertFlightData[$key]['IsDirect'] = $IsDirect;
                $arrInsertFlightData[$key]['FareClass'] = $strFareClass;
                $arrInsertFlightData[$key]['FlightClass'] = $FlightClass;
                $arrInsertFlightData[$key]['DayLightSavingDiff'] = $DayLightSavingDiff;
                $arrInsertFlightData[$key]['FlyingMinutes'] = $FlyingMinutes;
                $arrInsertFlightData[$key]['FlightDuration'] = $FlightDuration;
                $arrInsertFlightData[$key]['SourcePlaceSysId'] = $intSourceCityId;
                $arrInsertFlightData[$key]['DestPlaceSysId'] = $intDestinationCityId;
                $arrInsertFlightData[$key]['SourceAirportCode'] = $strSourceAirportCode;
                $arrInsertFlightData[$key]['DestAirportCode'] = $strDestinationAirportCode;
                $arrInsertFlightData[$key]['SourcePlaceName'] = $sourceCityText[0];
                $arrInsertFlightData[$key]['DestPlaceName'] = $destinationCityText[0];
                $arrInsertFlightData[$key]['AirportHaultMinutes'] = $AirportHaultMinutes;
                $arrInsertFlightData[$key]['StopCount'] = $StopCountTxt;
                $arrInsertFlightData[$key]['Stops'] = '';
                $arrInsertFlightData[$key]['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                $arrInsertFlightData[$key]['TotalFlightMembers'] = $intMemberCount;
                $arrInsertFlightData[$key]['CurrencyType'] = $currencySysId;
                $arrInsertFlightData[$key]['Currency'] = $this->CurrencyTitle;
                $arrInsertFlightData[$key]['PublishedFare'] = $intPublishedFare; // As Discussed with GG
                $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format($intPublishedFare); // As Discussed with GG
                $arrInsertFlightData[$key]['CommissionEarned'] = $CommissionEarned;
                $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                $arrInsertFlightData[$key]['JourneyType'] = $intJourneyType;
                $arrInsertFlightData[$key]['TripType'] = $intTripType;
                $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                $arrInsertFlightData[$key]['logo'] = $filePath;
                $arrInsertFlightData[$key]['FairRules'] = $arrFairRules;
                $arrInsertFlightData[$key]['Segments'] = $arrSegments;
                $arrInsertFlightData[$key]['ICSourceSysId'] = 3;
                $arrInsertFlightData[$key]['supplier'] = 'Supplier 2';
                $arrInsertFlightData[$key]['IsTJFlightAPI'] = 0;
                $arrInsertFlightData[$key]['bookingAllowed'] = $bookingAllowed;

                $arrAirlineName[] = $AirlineCode . '-' . ucwords(strtolower($strAirlineName));
                $AttPriceRange[] = $intPublishedFare * $this->CurrencyRate;
                $FiltStopCount[] = $StopCountTxt;
                $FiltSupplier[] = 'Supplier 2';
                $FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strDepartureDtTime);
                $arrInsertFlightData[$key]['FilterDepartureDtTime'] = $FilterDepartureDtTime;
            }
            if ($interNationalSearch == 1 && $strFlightRoute == 2) {
                $RoundTrip = $this->FlightDataInterRoundTripTBO($apiResponse, $sessionFlightSearchParams, $AgencySysId);
                return $RoundTrip;
            } else {
                $RoundTrip = $this->FlightDataRoundTripTBO($apiResponse, $sessionFlightSearchParams, $AgencySysId);
                if (isset($RoundTrip['inbound']) && !empty($RoundTrip['inbound'])) {
                    $AttPriceRange = array_merge($AttPriceRange, $RoundTrip['AttPriceRange']);
                    $arrAirlineName = array_values(array_unique(array_merge($arrAirlineName, $RoundTrip['arrAirlineName'])));
                    $FiltStopCount = array_values(array_unique(array_merge($FiltStopCount, $RoundTrip['FiltStopCount'])));
                    $FiltSupplier = array_values(array_unique(array_merge($FiltSupplier, $RoundTrip['FiltSupplier'])));
                }
                return ['outbound' => $arrInsertFlightData, 'inbound' => $RoundTrip['inbound'], 'FiltSupplier' => array_values(array_unique($FiltSupplier)), 'AttPriceRange' => array_values(array_unique($AttPriceRange)), 'FiltStopCount' => array_values(array_unique($FiltStopCount)), 'arrAirlineName' => array_values(array_unique($arrAirlineName))];
            }
        }
    }

    public function FlightDataRoundTripTBO($apiResponse, $sessionFlightSearchParams, $AgencySysId)
    {
        $bookingAllowed = trim($sessionFlightSearchParams['bookingAllowed']);
        $flight_class = trim($sessionFlightSearchParams['flight_class']);
        $preferredFlightClassType = ($flight_class == 1) ? 2 : $flight_class;
        $arrFlightClass = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getFlightClasses();
        $cabinClass = isset($arrFlightClass[$preferredFlightClassType]) ? $arrFlightClass[$preferredFlightClassType] : 'Economy';

        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
        $strReturnDate = $sessionFlightSearchParams['return_dates'];
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $sourceCityText = explode(',', $sessionFlightSearchParams['sourceCityText']);
        $destinationCityText = explode(',', $sessionFlightSearchParams['destinationCityText']);
        $intTatalPaxCT = $adultCount + $childCount;
        $getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);
        $getCancelCharge = $this->getCancelCharge($intCountryCode, $AgencySysId);
        $strDepatureDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strDepatureDate, 'd/m/y');
        $strReturnDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strReturnDate, 'd/m/y');
        $intResponseStatus = !empty($apiResponse['ResponseStatus']) ? $apiResponse['ResponseStatus'] : '0';
        if ($intResponseStatus == 1) {
            $DayLightSavingDiff = 0;
            $AirportHaultMinutes = 0;
            $arrInsertFlightData = [];
            $arrAirlineName = [];
            $FiltStopCount = [];
            $FiltSupplier = [];
            $FiltPriceRange = [];
            $AttPriceRange = [];
            foreach ($apiResponse['InBoundFlightResults'] as $key => $result) {
                $IsGSTMandatory = isset($result['IsGSTMandatory']) ? $result['IsGSTMandatory'] : 0;
                $ResultIndex = $result['ResultIndex'];
                $FareColor = $result['FareClassification']['Color'];
                $Source = $result['Source'];
                $IsLCC = $result['IsLCC'];
                $strTraceId = !empty($apiResponse['TraceId']) ? $apiResponse['TraceId'] : '';
                $IsRefundable = ($result['IsRefundable']) ? 1 : 0;
                $AirlineRemark = $result['AirlineRemark'];
                $MiniFareRules = (isset($result['MiniFareRules']) && !empty($result['MiniFareRules'])) ? $result['MiniFareRules'] : [];
                $MiniFR = [];
                if ($MiniFareRules) {
                    foreach ($MiniFareRules as $Minivalue) {
                        if ($Minivalue) {
                            foreach ($Minivalue as $kk => $Mini) {
                                $Type = !empty($Mini['Type']) ? strtoupper($Mini['Type']) : 'NA';
                                if (empty($Mini['To'])) {
                                    $TimeFrame = 'from ' . $Mini['From'] . ' ' . $Mini['Unit'] . ' & above before dept';
                                } else {
                                    $TimeFrame = 'from ' . $Mini['From'] . ' To ' . $Mini['To'] . ' ' . $Mini['Unit'] . ' before dept';
                                }
                                //$MiniFR[$Type][$kk] = $Mini;
                                $MiniFR[$Type][$kk]['sector'] = $Mini['JourneyPoints'];
                                $MiniFR[$Type][$kk]['amount'] = $Mini['Details'];
                                $MiniFR[$Type][$kk]['additionalFee'] = $getCancelCharge;
                                $MiniFR[$Type][$kk]['TimeFrame'] = $TimeFrame;
                                $MiniFR[$Type][$kk]['policyInfo'] = [];
                            }
                        }
                    }
                }

                $tripbinfo = [];
                if ($result['Segments']) {
                    foreach ($result['Segments'] as $value) {
                        if ($value) {
                            foreach ($value as $kk => $vl) {
                                $Baggage = $vl['Baggage'];
                                $CabinBaggage = $vl['CabinBaggage'];
                                $SectorsCode = $vl['Origin']['Airport']['AirportCode'] . '-' . $vl['Destination']['Airport']['AirportCode'];
                                $tripbinfo[$SectorsCode]['ADULT'] = ['cabin' => $CabinBaggage, 'checkin' => $Baggage];
                                if (!empty($childCount)) {
                                    $tripbinfo[$SectorsCode]['CHILD'] = ['cabin' => $CabinBaggage, 'checkin' => $Baggage];
                                }
                                if (!empty($infantCount)) {
                                    $tripbinfo[$SectorsCode]['INFANT'] = ['cabin' => $CabinBaggage, 'checkin' => 'NA'];
                                }
                            }
                        }
                    }
                }
                $LastTicketDate = $result['LastTicketDate'];
                $TicketAdvisory = $result['TicketAdvisory'];
                $AirlineCode = $result['AirlineCode'];
                $ValidatingAirline = $result['ValidatingAirline'];

                $Currency = $result['Fare']['Currency'];
                $currencySysId = $this->CurrencyId;
                $BaseFare = $result['Fare']['BaseFare'];
                $Tax = $result['Fare']['Tax'];

                $YQTax = $result['Fare']['YQTax'];
                $AdditionalTxnFeeOfrd = $result['Fare']['AdditionalTxnFeeOfrd'];
                $AdditionalTxnFeePub = $result['Fare']['AdditionalTxnFeePub'];
                $OtherCharges = $result['Fare']['OtherCharges'];
                $Discount = $result['Fare']['Discount'];
                $PublishedFare = $result['Fare']['PublishedFare'];
                $CommissionEarned = $result['Fare']['CommissionEarned'];
                $PLBEarned = $result['Fare']['PLBEarned'];
                $IncentiveEarned = $result['Fare']['IncentiveEarned'];
                $OfferedFare = $result['Fare']['OfferedFare'];
                $TdsOnCommission = $result['Fare']['TdsOnCommission'];
                $TdsOnPLB = $result['Fare']['TdsOnPLB'];
                $TdsOnIncentive = $result['Fare']['TdsOnIncentive'];
                $ServiceFee = $result['Fare']['ServiceFee'];
                $ResultFareType = $result['ResultFareType'];
                $ResultFareType = !empty($result['FareClassification']['Type']) ? $result['FareClassification']['Type'] : $result['ResultFareType'];
                $FareBreakdown = $result['FareBreakdown'];
                $totalCommissions = $result['Fare']['CommissionEarned'] + $result['Fare']['PLBEarned'] + $result['Fare']['IncentiveEarned'];
                $totalCommissionsOnTds = $result['Fare']['TdsOnCommission'] + $result['Fare']['TdsOnIncentive'] + $result['Fare']['TdsOnPLB'];
                $TotalPassengerCountForDiscount = $adultCount + $childCount;
                $intDiscountPerHead = $totalCommissions / $TotalPassengerCountForDiscount;

                $markUpArr = array(
                    'getMarkup' => $getMarkup,
                    'PublishedFare' => $PublishedFare,
                    'OfferedFare' => $OfferedFare,
                    'intCommissionEarned' => $totalCommissions,
                    'TdsOnPLB' => $totalCommissionsOnTds,
                    'MUFee' => $ServiceFee,
                    'intPLBEarned' => $PLBEarned,
                    'intIncentiveEarned' => $IncentiveEarned,
                    'intMemberCount' => $intMemberCount,
                    'intFlightRoute' => $strFlightRoute,
                    'interNationalSearch' => $interNationalSearch,
                );

                $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);
                $intPublishedFare = $arrMarkUps['PublishFare'];

                $countBreakUp = count($FareBreakdown);
                foreach ($FareBreakdown as $pk => $pax) {
                    $intBaseFare = $pax['BaseFare'];
                    $intTax = $pax['Tax'];
                    $OtherCharges_ = ($OtherCharges / $countBreakUp);
                    $intDiscountPerHead_ = ($intDiscountPerHead / $countBreakUp);
                    $intBaseFareCal = $intBaseFare - $intDiscountPerHead_;
                    $intFareOfferedToPax = $intBaseFareCal + $intTax;

                    $intPassengerCount = isset($pax['PassengerCount']) ? $pax['PassengerCount'] : 0;

                    $arrFareBreakdown[$pk]['Currency'] = $pax['Currency'];
                    $arrFareBreakdown[$pk]['PassengerType'] = $pax['PassengerType'];
                    $arrFareBreakdown[$pk]['PassengerCount'] = $pax['PassengerCount'];
                    $arrFareBreakdown[$pk]['TaxIN'] = ($pax['Tax']);
                    $arrFareBreakdown[$pk]['TotalBaseFare'] = 0;
                    $arrFareBreakdown[$pk]['BaseFareCal'] = ($arrMarkUps['BaseFareCal'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['BaseFare'] = ($intBaseFareCal);
                    $arrFareBreakdown[$pk]['CommissionEarned'] = ($totalCommissions / $countBreakUp);
                    $arrFareBreakdown[$pk]['OtherCharges'] = ($OtherCharges_);
                    $arrFareBreakdown[$pk]['TDS'] = ($totalCommissionsOnTds / $countBreakUp);
                    $arrFareBreakdown[$pk]['MF'] = 0;
                    $arrFareBreakdown[$pk]['YQ'] = $pax['YQTax'];
                    $arrFareBreakdown[$pk]['AGST'] = 0;
                    $arrFareBreakdown[$pk]['MFT'] = 0;
                    $arrFareBreakdown[$pk]['OT'] = $pax['Tax'];
                    $arrFareBreakdown[$pk]['MU'] = 0;
                    $arrFareBreakdown[$pk]['YR'] = 0;
                    $arrFareBreakdown[$pk]['intTotalGST'] = ($arrMarkUps['intTotalGST'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['apiMarkup'] = ($arrMarkUps['apiMarkup'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['IntCommission'] = ($arrMarkUps['IntCommission'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['apiTaxOnMarkup'] = ($arrMarkUps['apiTaxOnMarkup'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['FixedMarkUp'] = ($arrMarkUps['IntAgencyFixMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GSTOnMarkUp'] = ($arrMarkUps['IntTaxOnAgencyFixMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['CommEarned'] = ($arrMarkUps['IntCommission'] / $countBreakUp);; //($arrMarkUps['intCommisionEarnedForAgency'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GSTonComm'] = 0;
                    $arrFareBreakdown[$pk]['intGTXMarkUp'] = ($arrMarkUps['intGTXMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GTXMarkUpGST'] = ($arrMarkUps['intSTaxOnGTXMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['Agencycommission'] = ($arrMarkUps['Agencycommission'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['AdditionalTxnFeeOfrd'] = $pax['AdditionalTxnFeeOfrd'];
                    $arrFareBreakdown[$pk]['AdditionalTxnFeePub'] = $pax['AdditionalTxnFeePub'];
                    $arrFareBreakdown[$pk]['PGCharge'] = 0;
                    $arrFareBreakdown[$pk]['Baggage'] = ''; //Check In Baggage;
                    $arrFareBreakdown[$pk]['CabinBaggage'] = ''; //Cabin Baggage ;
                }

                $arrFairRules[0] = array(
                    "Currency" => $this->CurrencyTitle, //$Currency,
                    "CurrencyRate" => $this->CurrencyRate, //$Currency,
                    "currencySysId" => $this->CurrencyId,
                    "BaseFare" => $BaseFare,
                    "Tax" => $Tax,
                    "YQTax" => $YQTax,
                    "OtherCharges" => $OtherCharges,
                    "Discount" => $Discount,
                    "ServiceFee" => $ServiceFee,
                    "ManagementFeeTax" => 0,
                    "AirlineGSTComponent" => 0,
                    "CarrierMiscFee" => 0,
                    "MUFee" => 0,
                    "intPublishedFare" => $PublishedFare,
                    "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                    "PublishedFareAgent" => ($arrMarkUps['CostToAgentCustomer'] * $this->CurrencyRate),
                    "OfferedFareAgent" => ($arrMarkUps['CostToAgent'] * $this->CurrencyRate),
                    "OfferedFare" => $arrMarkUps['intOfferedFare'],
                    "CommissionEarned" => $CommissionEarned,
                    "PLBEarned" => $PLBEarned,
                    "IncentiveEarned" => $IncentiveEarned,
                    "TdsOnCommission" => $TdsOnCommission,
                    "TdsOnPLB" => $TdsOnPLB,
                    "TdsOnIncentive" => $TdsOnIncentive,
                    "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                    "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                    "PriceID" => $ResultIndex,
                    "ApiResultIndex" => $ResultIndex,
                    "IsGSTRequired" => $IsGSTMandatory,
                    "fareIdentifier" => $ResultFareType,
                    "FareColor" => $FareColor,
                    "FareClass" => $cabinClass,
                    "intTotalGST" => $arrMarkUps['intTotalGST'],
                    "apiMarkup" => $arrMarkUps['apiMarkup'],
                    "IntCommission" => $arrMarkUps['IntCommission'],
                    "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                    "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                    "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                    "CommEarned" => $arrMarkUps['IntCommission'], //$arrMarkUps['intCommisionEarnedForAgency'],
                    "CommEarnedAgent" => $arrMarkUps['AgentB2CEarning'],
                    "GSTonComm" => 0,
                    "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                    "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                    "FareBreakdown" => $arrFareBreakdown,
                    // "arrMarkUps" => $arrMarkUps,
                    "tripbinfo" => $tripbinfo,
                    "MiniFR" => $MiniFR,
                );
                //echo '<pre>';print_r($arrFairRules);die;

                $originCity = $result['Segments'][0][0]['Origin']['Airport']['CityName'];
                $DestinationCity = $result['Segments'][0][0]['Destination']['Airport']['CityName'];
                $AirlineCode = $result['Segments'][0][0]['Airline']['AirlineCode'];
                $FlightNumber = $result['Segments'][0][0]['Airline']['FlightNumber'];
                $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                $strAirlineName = $result['Segments'][0][0]['Airline']['AirlineName'];
                $strFareClass = $result['Segments'][0][0]['Airline']['FareClass'];
                $AccumulatedDuration = 0;
                $arrSegments = [];
                $FareClassArr = [];
                if (!empty($result['Segments'][0]) ) {
                    $FlyingMinutes = 0;

                    $countSeg = count($result['Segments'][0]);
                    foreach ($result['Segments'][0] as $segmentsResult) {
                        $Duration = $segmentsResult['Duration'];
                        if ($countSeg >= 2) {
                            $AccumulatedDuration += isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : (0);
                        } else {
                            $AccumulatedDuration += ($segmentsResult['Duration'] + $segmentsResult['GroundTime']);
                        }

                        $FlyingMinutes = $FlyingMinutes + (isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : ($segmentsResult['Duration'] + $segmentsResult['GroundTime']));
                        $LAYOVERMinutes = ((isset($segmentsResult['GroundTime']) ? $segmentsResult['GroundTime'] : 0));
                        $DepTime = $segmentsResult['Origin']['DepTime'];
                        $ArrTime = $segmentsResult['Destination']['ArrTime'];
                        $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($LAYOVERMinutes);
                        // FOR FLIGHT SEGMENTS.....
                        $strBaggage = $segmentsResult['Baggage'];
                        $strCabinBaggage = $segmentsResult['CabinBaggage'];
                        if (!empty($strBaggage)) {
                            $IsBaggage = 1;
                            $IsBagIncludes = true;
                        } else {
                            $IsBaggage = 0;
                            $IsBagIncludes = false;
                        }
                        if (!empty($strCabinBaggage)) {
                            $strCabinBaggage = $strCabinBaggage;
                        } else {
                            $strCabinBaggage = '0 KG';
                        }
                        $TripIndicator = $segmentsResult['TripIndicator'];
                        $SegmentIndicator = $segmentsResult['SegmentIndicator'];

                        $strAirlineCode = $segmentsResult['Airline']['AirlineCode'];
                        $AirlineName = $segmentsResult['Airline']['AirlineName'];
                        $FlightNumber = $segmentsResult['Airline']['FlightNumber'];
                        $FareClass = $segmentsResult['Airline']['FareClass'];
                        $FareClassArr[] = $FareClass;
                        $SegFlightNumber = $strAirlineCode . "-" . $FlightNumber;

                        $DepTerminal = $segmentsResult['Origin']['Airport']['Terminal'];
                        if (!empty($DepTerminal)) {
                            $DepTerminal = $DepTerminal;
                        } else {
                            $DepTerminal = 0;
                        }
                        $ArrTerminal = $segmentsResult['Destination']['Airport']['Terminal'];
                        if (!empty($ArrTerminal)) {
                            $ArrTerminal = $ArrTerminal;
                        } else {
                            $ArrTerminal = 0;
                        }

                        $originAirportName = $segmentsResult['Origin']['Airport']['AirportName'];
                        $originAirportCode = $segmentsResult['Origin']['Airport']['AirportCode'];
                        $originCityName = $segmentsResult['Origin']['Airport']['CityName'];
                        $originCountryName = $segmentsResult['Origin']['Airport']['CountryName'];
                        $originDepTime = $segmentsResult['Origin']['DepTime'];

                        $destinationAirportName = $segmentsResult['Destination']['Airport']['AirportName'];
                        $destinationAirportCode = $segmentsResult['Destination']['Airport']['AirportCode'];
                        $destinationCityName = $segmentsResult['Destination']['Airport']['CityName'];
                        $destinationCountryName = $segmentsResult['Destination']['Airport']['CountryName'];
                        $destinationArrTime = $segmentsResult['Destination']['ArrTime'];

                        $Duration = $segmentsResult['Duration'];
                        $GroundTime = $segmentsResult['GroundTime'];
                        $Mile = $segmentsResult['Mile'];
                        $StopOver = $segmentsResult['StopOver'];
                        $StopPoint = $segmentsResult['StopPoint'];
                        $StopPointArrivalTime = $segmentsResult['StopPointArrivalTime'];
                        $StopPointDepartureTime = $segmentsResult['StopPointDepartureTime'];
                        $Craft = $segmentsResult['Craft'];
                        $Remark = $segmentsResult['Remark'];
                        $IsETicketEligible = $segmentsResult['IsETicketEligible'];
                        $NoOfSeatAvailable = !empty($segmentsResult['NoOfSeatAvailable']) ? $segmentsResult['NoOfSeatAvailable'] : 0;
                        $FlightStatus = $segmentsResult['FlightStatus'];
                        $Status = $segmentsResult['Status'];

                        $strAirlineCodeLogo = $strAirlineCode;
                        $filePath = $this->getflightlogo($strAirlineCodeLogo);
                        //$filePath = $_SERVER['DOCUMENT_ROOT'] . "/public/upload/AirlineLogo/";


                        $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->convertMinutesToHoursFormat((isset($segmentsResult['Duration']) ? $segmentsResult['Duration'] : 0));

                        $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($ArrTime);
                        $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DepTime);
                        $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);

                        //                        $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->CalculateTotalTime($strArrivalDtTime,$strDepartureDtTime);
                        $arrSegments[] = array(
                            "segmentid" => $FlightNumber,
                            "originAirportName" => $originAirportName,
                            "destinationAirportName" => $destinationAirportName,
                            "originCityName" => $originCityName,
                            "originCountryName" => $originCountryName,
                            "destinationCityName" => $destinationCityName,
                            "destinationCountryName" => $destinationCountryName,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationArrTime" => $destinationArrTime,
                            "SegFlightNumber" => $SegFlightNumber,
                            "AirlineCode" => $strAirlineCode,
                            "AirlineName" => $AirlineName,
                            "FareClass" => $FareClass,
                            "originAirportCode" => $originAirportCode,
                            "originDepTime" => $originDepTime,
                            "TripIndicator" => $TripIndicator,
                            "isReturnSegment" => ($TripIndicator == 1) ? false : true,
                            "Baggage" => $strBaggage,
                            "CabinBaggage" => $strCabinBaggage,
                            "IsBaggage" => $IsBaggage,
                            "SegmentIndicator" => $SegmentIndicator,
                            "Duration" => $Duration,
                            "GroundTime" => $GroundTime,
                            "Mile" => $Mile,
                            "StopOver" => $StopOver,
                            "StopPoint" => $StopPoint,
                            "StopPointArrivalTime" => $StopPointArrivalTime,
                            "StopPointDepartureTime" => $StopPointDepartureTime,
                            "Craft" => $Craft,
                            "Remark" => $Remark,
                            "IsETicketEligible" => $IsETicketEligible,
                            "FlightStatus" => $FlightStatus,
                            "Status" => $Status,
                            "NoOfSeatAvailable" => $NoOfSeatAvailable,
                            "strDepartureDtTime" => $strDepartureDtTime,
                            "strArrivalDtTime" => $strArrivalDtTime,
                            "FlightDuration" => $strDuration,
                            "LAYOVERDuration" => $LAYOVERDuration,
                            "DepTerminal" => $DepTerminal,
                            "ArrTerminal" => $ArrTerminal,
                            "filePath" => $filePath,
                        );
                        // FOR FLIGHT SEGMENTS.....
                    }
                }

                $airlineSysId = !empty($arrAirlineList[$result['AirlineCode']]) ? $arrAirlineList[$result['AirlineCode']] : '0';
                $FlyingMinutes = $AccumulatedDuration;

                if (count($result['Segments'][0]) == 1) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][0]['Destination'];
                } elseif (count($result['Segments'][0]) == 2) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][1]['Destination'];
                } elseif (count($result['Segments'][0]) == 3) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][2]['Destination'];
                }

                $strSourceAirportCode = $DepOrigin['Airport']['AirportCode'];
                $strDestinationAirportCode = $DepDestination['Airport']['AirportCode'];
                if (count($result['Segments'][0]) > 1) {
                    $SegmentsCount = count($result['Segments'][0]);
                    $StopCount = $SegmentsCount - 1;
                    $IsDirect = '0';
                    $initialOriginDepTime = $result['Segments'][0][0]['Origin']['DepTime'];
                    $initialOriginArrTime = $result['Segments'][0][1]['Destination']['ArrTime'];
                } else {
                    $StopCount = '0';
                    $IsDirect = '1';
                    $initialOriginDepTime = $result['Segments'][0][0]['Origin']['DepTime'];
                    $initialOriginArrTime = $result['Segments'][0][0]['Destination']['ArrTime'];
                }
                //                echo '<pre>';print_r($StopCount);
                $strAirlineCodeEX = explode("-", trim($strFlightNumber));
                $strAirlineCodeLogo = $strAirlineCodeEX[0];

                $filePath = $this->getflightlogo($strAirlineCodeLogo);

                $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($initialOriginArrTime);
                $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($initialOriginDepTime);
                $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);
                if ($StopCount == 0) {
                    $StopCountTxt = "Non-stop";
                } else {
                    $StopCountTxt = $StopCount . " Stop(s)";
                }
                if ($IsRefundable) {
                    $IsRefundableTxt = 'Refundable';
                } else {
                    $IsRefundableTxt = 'Non Refundable';
                }
                $classOfBooking = implode(',', $FareClassArr);
                $arrFairRules[0]['classOfBooking'] = $classOfBooking;
                $arrFairRules[0]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrFairRules[0]['SeatAvailable'] = $NoOfSeatAvailable;
                $intJourneyType = 2;
                $intTripType = 1;
                $localFromDateTime = str_replace(' ', 'T', $initialOriginDepTime); //date("Y-m-d h:i", strtotime($strDepatureDate));
                $localToDateTime = str_replace(' ', 'T', $initialOriginArrTime); //date("Y-m-d h:i", strtotime($strReturnDate));
                //echo '<pre>';print_r($initialOriginDepTime);
                //echo '<pre>';print_r($localFromDateTime);
                $arrInsertFlightData[$key]['FlightNumber'] = $strFlightNumber;
                $arrInsertFlightData[$key]['AirlineName'] = ucwords(strtolower($strAirlineName));
                $arrInsertFlightData[$key]['AirlineCode'] = $AirlineCode;
                $arrInsertFlightData[$key]['FlightNumberCode'] = $strAirlineCodeEX[1];
                $arrInsertFlightData[$key]['AirInvenSysId'] = 0;
                $arrInsertFlightData[$key]['IsLCC'] = $IsLCC;
                $arrInsertFlightData[$key]['IsTJFlightAPI'] = $this->IsTJFlightAPI;
                $arrInsertFlightData[$key]['IsGSTMandatory'] = $IsGSTMandatory;
                $arrInsertFlightData[$key]['IsRefundable'] = $IsRefundable;
                $arrInsertFlightData[$key]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                $arrInsertFlightData[$key]['SearchTraceId'] = $SearchTraceId;
                $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                $arrInsertFlightData[$key]['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData[$key]['TravelDate'] = $localFromDateTime;
                $arrInsertFlightData[$key]['LocalFromTime'] = $localFromDateTime;
                $arrInsertFlightData[$key]['FromUTCTime'] = $initialOriginDepTime;
                $arrInsertFlightData[$key]['LocalToTime'] = $localToDateTime;
                $arrInsertFlightData[$key]['ToUTCTime'] = $initialOriginArrTime;
                $arrInsertFlightData[$key]['DepartureTime'] = $strDepartureDtTime;
                $arrInsertFlightData[$key]['DepartureDateTxt'] = date('D, d M', strtotime($localFromDateTime));
                $arrInsertFlightData[$key]['ArrivalTime'] = $strArrivalDtTime;
                $arrInsertFlightData[$key]['IsDirect'] = $IsDirect;
                $arrInsertFlightData[$key]['FareClass'] = $strFareClass;
                $arrInsertFlightData[$key]['FlightClass'] = $FlightClass;
                $arrInsertFlightData[$key]['DayLightSavingDiff'] = $DayLightSavingDiff;
                $arrInsertFlightData[$key]['FlyingMinutes'] = $FlyingMinutes;
                $arrInsertFlightData[$key]['FlightDuration'] = $FlightDuration;
                $arrInsertFlightData[$key]['SourcePlaceSysId'] = $intSourceCityId;
                $arrInsertFlightData[$key]['DestPlaceSysId'] = $intDestinationCityId;
                $arrInsertFlightData[$key]['SourceAirportCode'] = $strSourceAirportCode;
                $arrInsertFlightData[$key]['DestAirportCode'] = $strDestinationAirportCode;
                $arrInsertFlightData[$key]['SourcePlaceName'] = $sourceCityText[0];
                $arrInsertFlightData[$key]['DestPlaceName'] = $destinationCityText[0];
                $arrInsertFlightData[$key]['AirportHaultMinutes'] = $AirportHaultMinutes;
                $arrInsertFlightData[$key]['StopCount'] = $StopCountTxt;
                $arrInsertFlightData[$key]['Stops'] = '';
                $arrInsertFlightData[$key]['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                $arrInsertFlightData[$key]['TotalFlightMembers'] = $intMemberCount;
                $arrInsertFlightData[$key]['CurrencyType'] = $currencySysId;
                $arrInsertFlightData[$key]['Currency'] = $this->CurrencyTitle;
                $arrInsertFlightData[$key]['PublishedFare'] = $intPublishedFare; // As Discussed with GG
                $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format($intPublishedFare); // As Discussed with GG
                $arrInsertFlightData[$key]['CommissionEarned'] = $CommissionEarned;
                $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                $arrInsertFlightData[$key]['JourneyType'] = $intJourneyType;
                $arrInsertFlightData[$key]['TripType'] = $intTripType;
                $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                $arrInsertFlightData[$key]['logo'] = $filePath;
                $arrInsertFlightData[$key]['FairRules'] = $arrFairRules;
                $arrInsertFlightData[$key]['Segments'] = $arrSegments;
                $arrInsertFlightData[$key]['ICSourceSysId'] = 3;
                $arrInsertFlightData[$key]['supplier'] = 'Supplier 2';
                $arrInsertFlightData[$key]['IsTJFlightAPI'] = 0;
                $arrInsertFlightData[$key]['bookingAllowed'] = $bookingAllowed;

                $arrAirlineName[] = $AirlineCode . '-' . ucwords(strtolower($strAirlineName));
                $AttPriceRange[] = $intPublishedFare * $this->CurrencyRate;
                $FiltStopCount[] = $StopCountTxt;
                $FiltSupplier[] = 'Supplier 2';
                $FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $strDepartureDtTime);
                $arrInsertFlightData[$key]['FilterDepartureDtTime'] = $FilterDepartureDtTime;
            }
            return ['inbound' => $arrInsertFlightData, 'FiltSupplier' => array_unique($FiltSupplier), 'AttPriceRange' => array_unique($AttPriceRange), 'FiltStopCount' => array_unique($FiltStopCount), 'arrAirlineName' => array_unique($arrAirlineName)];
        }
    }

    public function FlightDataInterRoundTripTBO($apiResponse, $sessionFlightSearchParams, $AgencySysId)
    {
        $objAirline = new Travel_Model_TblAirline();
        $arrAirlineList = $objAirline->getAirlineIdsAndCodeList();
        $flight_class = trim($sessionFlightSearchParams['flight_class']);
        $preferredFlightClassType = ($flight_class == 1) ? 2 : $flight_class;
        $arrFlightClass = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getFlightClasses();
        $cabinClass = isset($arrFlightClass[$preferredFlightClassType]) ? $arrFlightClass[$preferredFlightClassType] : 'Economy';
        // echo "<pre>"; print_r($preferredFlightClassType);
        // echo "<pre>"; print_r($arrFlightClass);
        // echo "<pre>"; print_r($cabinClass); exit;
        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
        $strReturnDate = !empty($sessionFlightSearchParams['return_dates']) ? $sessionFlightSearchParams['return_dates'] : '';
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $sourceCityText = explode(',', $sessionFlightSearchParams['sourceCityText']);
        $destinationCityText = explode(',', $sessionFlightSearchParams['destinationCityText']);
        $intTatalPaxCT = $adultCount + $childCount;
        $getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);
        //$strDepatureDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strDepatureDate, 'd/m/y');
        //$strReturnDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strReturnDate, 'd/m/y');


        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strSourceAirportCode = $sessionFlightSearchParams['from'];
        $strDestinationAirportCode = $sessionFlightSearchParams['to'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];

        $arrDepatureDate = explode("/", $strDepatureDate);
        if (!empty($arrDepatureDate) ) {
            $strDepatureDate = $arrDepatureDate[2] . "-" . $arrDepatureDate[1] . "-" . $arrDepatureDate[0];
        }

        if (!empty($strReturnDate)) {
            $arrReturnDepatureDate = explode("/", $strReturnDate);
            if (!empty($arrReturnDepatureDate)) {
                $strReturnDate = $arrReturnDepatureDate[2] . "-" . $arrReturnDepatureDate[1] . "-" . $arrReturnDepatureDate[0];
            }
        }

        $localFromDateTime = date("Y-m-d h:i", strtotime($strDepatureDate));
        $localToDateTime = date("Y-m-d h:i", strtotime($strReturnDate));
        $arrCommonInsVariables = array(
            'strTraceId' => $strTraceId,
            'localFromDateTime' => $localFromDateTime,
            'localToDateTime' => $localToDateTime,
            'strSourceAirportCode' => $strSourceAirportCode,
            'strDestinationAirportCode' => $strDestinationAirportCode,
            'intMemberCount' => $intMemberCount,
            'intSourceCityId' => $intSourceCityId,
            'intDestinationCityId' => $intDestinationCityId,
            'JourneyType' => 2, // For Round Trips API Search
            'TripType' => $strFlightRoute,
            'interNationalSearch' => isset($interNationalSearch) ? $interNationalSearch : 0
        );

        $strTraceId = $arrCommonInsVariables['strTraceId'];
        $localFromDateTime = $arrCommonInsVariables['localFromDateTime'];
        $localToDateTime = $arrCommonInsVariables['localToDateTime'];

        $strSourceAirportCode = $arrCommonInsVariables['strSourceAirportCode'];
        $strDestinationAirportCode = $arrCommonInsVariables['strDestinationAirportCode'];
        $intMemberCount = $arrCommonInsVariables['intMemberCount'];
        $intSourceCityId = $arrCommonInsVariables['intSourceCityId'];
        $intDestinationCityId = $arrCommonInsVariables['intDestinationCityId'];
        $intJourneyType = $arrCommonInsVariables['JourneyType'];
        $intTripType = $arrCommonInsVariables['TripType'];
        $interNationalSearch = isset($arrCommonInsVariables['interNationalSearch']) ? $arrCommonInsVariables['interNationalSearch'] : '0';

        $intResponseStatus = !empty($apiResponse['ResponseStatus']) ? $apiResponse['ResponseStatus'] : '0';
        if ($intResponseStatus == 1) {
            $DayLightSavingDiff = 0;
            $AirportHaultMinutes = 0;
            $arrInsertFlightData = [];
            $arrAirlineName = [];
            $FiltStopCount = [];
            $DesFiltStopCount = [];
            $FiltSupplier = [];
            $AttPriceRange = [];
            $FiltPriceRange = [];
            $dddddddd = [];
            foreach ($apiResponse['InterNationalFlightResults'] as $key => $result) {
                $IsGSTMandatory = isset($result['IsGSTMandatory']) ? $result['IsGSTMandatory'] : 0;
                $ResultIndex = $result['ResultIndex'];
                $Source = $result['Source'];
                $IsLCC = $result['IsLCC'];
                $strTraceId = !empty($apiResponse['TraceId']) ? $apiResponse['TraceId'] : '';
                $MiniFareRules = (isset($result['MiniFareRules']) && !empty($result['MiniFareRules'])) ? $result['MiniFareRules'] : [];
                $MiniFR = [];
                if ($MiniFareRules) {
                    foreach ($MiniFareRules as $Minivalue) {
                        if ($Minivalue) {
                            foreach ($Minivalue as $kk => $Mini) {
                                $Type = !empty($Mini['Type']) ? strtoupper($Mini['Type']) : 'NA';
                                if (empty($Mini['To'])) {
                                    $TimeFrame = 'from ' . $Mini['From'] . ' ' . $Mini['Unit'] . ' & above before dept';
                                } else {
                                    $TimeFrame = 'from ' . $Mini['From'] . ' To ' . $Mini['To'] . ' ' . $Mini['Unit'] . ' before dept';
                                }
                                //$MiniFR[$Type][$kk] = $Mini;
                                $MiniFR[$Type][$kk]['sector'] = $Mini['JourneyPoints'];
                                $MiniFR[$Type][$kk]['amount'] = $Mini['Details'];
                                $MiniFR[$Type][$kk]['additionalFee'] = $getCancelCharge;
                                $MiniFR[$Type][$kk]['TimeFrame'] = $TimeFrame;
                                $MiniFR[$Type][$kk]['policyInfo'] = [];
                            }
                        }
                    }
                }
                $tripbinfo = [];
                if ($result['Segments']) {
                    foreach ($result['Segments'] as $value) {
                        if ($value) {
                            foreach ($value as $kk => $vl) {
                                $Baggage = $vl['Baggage'];
                                $CabinBaggage = $vl['CabinBaggage'];
                                $SectorsCode = $vl['Origin']['Airport']['AirportCode'] . '-' . $vl['Destination']['Airport']['AirportCode'];
                                $tripbinfo[$SectorsCode]['ADULT'] = ['cabin' => $CabinBaggage, 'checkin' => $Baggage];
                                if (!empty($childCount)) {
                                    $tripbinfo[$SectorsCode]['CHILD'] = ['cabin' => $CabinBaggage, 'checkin' => $Baggage];
                                }
                                if (!empty($infantCount)) {
                                    $tripbinfo[$SectorsCode]['INFANT'] = ['cabin' => $CabinBaggage, 'checkin' => 'NA'];
                                }
                            }
                        }
                    }
                }
                $AirlineCode = isset($result['AirlineCode']) ? $result['AirlineCode'] : '';
                if (count($result['Segments'][0]) == 1) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][0]['Destination'];
                    $DepData = $result['Segments'][0][0];
                } elseif (count($result['Segments'][0]) == 2) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][1]['Destination'];
                    $DepData = $result['Segments'][0][1];
                } elseif (count($result['Segments'][0]) == 3) {
                    $DepOrigin = $result['Segments'][0][0]['Origin'];
                    $DepDestination = $result['Segments'][0][2]['Destination'];
                    $DepData = $result['Segments'][0][2];
                }

                if (count($result['Segments'][1]) == 1) {
                    $ArrOrigin = $result['Segments'][1][0]['Origin'];
                    $ArrDestination = $result['Segments'][1][0]['Destination'];
                    $ArrData = $result['Segments'][1][0];
                } elseif (count($result['Segments'][1]) == 2) {
                    $ArrOrigin = $result['Segments'][1][0]['Origin'];
                    $ArrDestination = $result['Segments'][1][1]['Destination'];
                    $ArrData = $result['Segments'][1][1];
                } elseif (count($result['Segments'][1]) == 3) {
                    $ArrOrigin = $result['Segments'][1][0]['Origin'];
                    $ArrDestination = $result['Segments'][1][2]['Destination'];
                    $ArrData = $result['Segments'][1][1];
                }

                $Currency = $result['Fare']['Currency'];
                $currencySysId = $this->CurrencyId;
                $BaseFare = $result['Fare']['BaseFare'];
                $Tax = $result['Fare']['Tax'];
                $strFareClass = $result['Segments'][0][0]['Airline']['FareClass'];
                if (count($result['Segments'][0]) > 1) {
                    $SegmentsCount = count($result['Segments'][0]);
                    $OriginStopCount = $SegmentsCount - 1;
                } else {
                    $OriginStopCount = '0';
                }
                if (count($result['Segments'][1]) > 1) {
                    $SegmentsCountDe = count($result['Segments'][1]);
                    $DestinationStopCount = $SegmentsCountDe - 1;
                } else {
                    $DestinationStopCount = '0';
                }
                if ($OriginStopCount == 0) {
                    $OrStopCountTxt = "Non-stop";
                } else {
                    $OrStopCountTxt = $OriginStopCount . " Stop(s)";
                }
                if ($DestinationStopCount == 0) {
                    $DeStopCountTxt = "Non-stop";
                } else {
                    $DeStopCountTxt = $DestinationStopCount . " Stop(s)";
                }
                if ($result['IsRefundable']) {
                    $IsRefundableTxt = 'Refundable';
                } else {
                    $IsRefundableTxt = 'Non Refundable';
                }
                $Refundable = ($result['IsRefundable']) ? 1 : 0;

                $YQTax = $result['Fare']['YQTax'];
                $AdditionalTxnFeeOfrd = $result['Fare']['AdditionalTxnFeeOfrd'];
                $AdditionalTxnFeePub = $result['Fare']['AdditionalTxnFeePub'];
                $OtherCharges = $result['Fare']['OtherCharges'];
                $Discount = $result['Fare']['Discount'];
                $PublishedFare = $result['Fare']['PublishedFare'];
                $CommissionEarned = $result['Fare']['CommissionEarned'];
                $PLBEarned = $result['Fare']['PLBEarned'];
                $IncentiveEarned = $result['Fare']['IncentiveEarned'];
                $OfferedFare = $result['Fare']['OfferedFare'];
                $TdsOnCommission = $result['Fare']['TdsOnCommission'];
                $TdsOnPLB = $result['Fare']['TdsOnPLB'];
                $TdsOnIncentive = $result['Fare']['TdsOnIncentive'];
                $ServiceFee = $result['Fare']['ServiceFee'];
                $FareColor = $result['FareClassification']['Color'];
                //$ResultFareType = $result['ResultFareType'];
                $ResultFareType = !empty($result['FareClassification']['Type']) ? $result['FareClassification']['Type'] : $result['ResultFareType'];
                $FareBreakdown = $result['FareBreakdown'];
                $totalCommissions = $result['Fare']['CommissionEarned'] + $result['Fare']['PLBEarned'] + $result['Fare']['IncentiveEarned'];
                $totalCommissionsOnTds = $result['Fare']['TdsOnCommission'] + $result['Fare']['TdsOnIncentive'] + $result['Fare']['TdsOnPLB'];
                $TotalPassengerCountForDiscount = $adultCount + $childCount;
                $intDiscountPerHead = $totalCommissions / $TotalPassengerCountForDiscount;

                $markUpArr = array(
                    'getMarkup' => $getMarkup,
                    'PublishedFare' => $PublishedFare,
                    'OfferedFare' => $OfferedFare,
                    'intCommissionEarned' => $totalCommissions,
                    'TdsOnPLB' => $totalCommissionsOnTds,
                    'MUFee' => $ServiceFee,
                    'intPLBEarned' => $PLBEarned,
                    'intIncentiveEarned' => $IncentiveEarned,
                    'intMemberCount' => $intMemberCount,
                    'intFlightRoute' => $strFlightRoute,
                    'interNationalSearch' => $interNationalSearch,
                );

                $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);
                $intPublishedFare = $arrMarkUps['PublishFare'];

                $countBreakUp = count($FareBreakdown);
                foreach ($FareBreakdown as $pk => $pax) {
                    $intBaseFare = $pax['BaseFare'];
                    $intTax = $pax['Tax'];
                    $OtherCharges_ = ($OtherCharges / $countBreakUp);
                    $intDiscountPerHead_ = ($intDiscountPerHead / $countBreakUp);
                    $intBaseFareCal = $intBaseFare - $intDiscountPerHead_;
                    $intFareOfferedToPax = $intBaseFareCal + $intTax;

                    $intPassengerCount = isset($pax['PassengerCount']) ? $pax['PassengerCount'] : 0;

                    $arrFareBreakdown[$pk]['Currency'] = $pax['Currency'];
                    $arrFareBreakdown[$pk]['PassengerType'] = $pax['PassengerType'];
                    $arrFareBreakdown[$pk]['PassengerCount'] = $pax['PassengerCount'];
                    $arrFareBreakdown[$pk]['TaxIN'] = ($pax['Tax']);
                    $arrFareBreakdown[$pk]['TotalBaseFare'] = 0;
                    $arrFareBreakdown[$pk]['BaseFareCal'] = ($arrMarkUps['BaseFareCal'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['BaseFare'] = $pax['BaseFare'];
                    $arrFareBreakdown[$pk]['Tax'] = ($pax['Tax']);
                    $arrFareBreakdown[$pk]['CommissionEarned'] = ($totalCommissions / $countBreakUp);
                    $arrFareBreakdown[$pk]['OtherCharges'] = ($OtherCharges_);
                    $arrFareBreakdown[$pk]['ServiceFee'] = ($ServiceFee / $countBreakUp);
                    $arrFareBreakdown[$pk]['TDS'] = ($totalCommissionsOnTds / $countBreakUp);
                    $arrFareBreakdown[$pk]['MF'] = 0;
                    $arrFareBreakdown[$pk]['YQ'] = $pax['YQTax'];
                    $arrFareBreakdown[$pk]['AGST'] = 0;
                    $arrFareBreakdown[$pk]['MFT'] = 0;
                    $arrFareBreakdown[$pk]['OT'] = $pax['Tax'];
                    $arrFareBreakdown[$pk]['MU'] = ($ServiceFee / $countBreakUp);
                    $arrFareBreakdown[$pk]['YR'] = 0;
                    $arrFareBreakdown[$pk]['intTotalGST'] = ($arrMarkUps['intTotalGST'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['apiMarkup'] = ($arrMarkUps['apiMarkup'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['CommisionPass'] = ($arrMarkUps['CommisionPass'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['IntCommission'] = ($arrMarkUps['IntCommission'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['apiTaxOnMarkup'] = ($arrMarkUps['apiTaxOnMarkup'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['FixedMarkUp'] = ($arrMarkUps['IntAgencyFixMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GSTOnMarkUp'] = ($arrMarkUps['IntTaxOnAgencyFixMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['CommEarned'] = ($arrMarkUps['IntCommission'] / $countBreakUp);; //($arrMarkUps['intCommisionEarnedForAgency'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GSTonComm'] = 0;
                    $arrFareBreakdown[$pk]['intGTXMarkUp'] = ($arrMarkUps['intGTXMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['GTXMarkUpGST'] = ($arrMarkUps['intSTaxOnGTXMarkUp'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['Agencycommission'] = ($arrMarkUps['Agencycommission'] / $countBreakUp);
                    $arrFareBreakdown[$pk]['AdditionalTxnFeeOfrd'] = $pax['AdditionalTxnFeeOfrd'];
                    $arrFareBreakdown[$pk]['AdditionalTxnFeePub'] = $pax['AdditionalTxnFeePub'];
                    $arrFareBreakdown[$pk]['PGCharge'] = 0;
                    $arrFareBreakdown[$pk]['Baggage'] = ''; //Check In Baggage;
                    $arrFareBreakdown[$pk]['CabinBaggage'] = ''; //Cabin Baggage ;
                }

                $arrFairRules[0] = array(
                    "Currency" => $this->CurrencyTitle, //$Currency,
                    "CurrencyRate" => $this->CurrencyRate, //$Currency,
                    "currencySysId" => $this->CurrencyId,
                    "BaseFare" => $BaseFare,
                    "Tax" => $Tax,
                    "YQTax" => $YQTax,
                    "OtherCharges" => $OtherCharges,
                    "Discount" => $Discount,
                    "ServiceFee" => $ServiceFee,
                    "ManagementFeeTax" => 0,
                    "AirlineGSTComponent" => 0,
                    "CarrierMiscFee" => 0,
                    "MUFee" => 0,
                    "intPublishedFare" => $PublishedFare,
                    "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                    "PublishedFareAgent" => ($arrMarkUps['CostToAgentCustomer'] * $this->CurrencyRate),
                    "OfferedFareAgent" => ($arrMarkUps['CostToAgent'] * $this->CurrencyRate),
                    "OfferedFare" => $arrMarkUps['intOfferedFare'],
                    "CommissionEarned" => $CommissionEarned,
                    "PLBEarned" => $PLBEarned,
                    "IncentiveEarned" => $IncentiveEarned,
                    "TdsOnCommission" => $TdsOnCommission,
                    "TdsOnPLB" => $TdsOnPLB,
                    "TdsOnIncentive" => $TdsOnIncentive,
                    "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                    "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                    "PriceID" => $ResultIndex,
                    "ApiResultIndex" => $ResultIndex,
                    "IsGSTRequired" => $IsGSTMandatory,
                    "fareIdentifier" => $ResultFareType,
                    "FareColor" => $FareColor,
                    "FareClass" => $cabinClass,
                    "Refundable" => $Refundable,
                    "IsRefundableTxt" => $IsRefundableTxt,
                    "classOfBooking" => $strFareClass,
                    "SeatAvailable" => $SeatAvailable,
                    "intTotalGST" => $arrMarkUps['intTotalGST'],
                    "apiMarkup" => $arrMarkUps['apiMarkup'],
                    "CommisionPass" => $arrMarkUps['CommisionPass'],
                    "IntCommission" => $arrMarkUps['IntCommission'],
                    "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                    "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                    "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                    "CommEarned" => $arrMarkUps['IntCommission'], //$arrMarkUps['intCommisionEarnedForAgency'],
                    "CommEarnedAgent" => $arrMarkUps['AgentB2CEarning'],
                    "GSTonComm" => 0,
                    "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                    "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                    "FareBreakdown" => $arrFareBreakdown,
                    "tripbinfo" => $tripbinfo,
                    "MiniFR" => $MiniFR,
                );

                $AccumulatedDuration = 0;
                $AccumulatedDurationD = 0;
                $arrSegments = [];
                $FareClassArr = [];
                $SegFlightNumberArr = [];
                $DestSegFlightNumberArr = [];

                if (!empty($result['Segments']) ) {

                    foreach ($result['Segments'] as $skey => $segment) {
                        if ($segment) {
                            $FlyingMinutes = 0;

                            $countSeg = count($segment);
                            foreach ($segment as $segkey => $segmentsResult) {
                                $TripIndicator = $segmentsResult['TripIndicator'];
                                if ($TripIndicator == 2) {
                                    $isReturnSegment = true;
                                } else {
                                    $isReturnSegment = false;
                                }
                                $Duration = $segmentsResult['Duration'];



                                $FlyingMinutes = $FlyingMinutes + (isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : ($segmentsResult['Duration'] + $segmentsResult['GroundTime']));
                                $LAYOVERMinutes = ((isset($segmentsResult['GroundTime']) ? $segmentsResult['GroundTime'] : 0));
                                $DepTime = $segmentsResult['Origin']['DepTime'];
                                $ArrTime = $segmentsResult['Destination']['ArrTime'];
                                $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($LAYOVERMinutes);
                                // FOR FLIGHT SEGMENTS.....
                                $strBaggage = $segmentsResult['Baggage'];
                                $strCabinBaggage = $segmentsResult['CabinBaggage'];
                                if (!empty($strBaggage)) {
                                    $IsBaggage = 1;
                                    $IsBagIncludes = true;
                                } else {
                                    $IsBaggage = 0;
                                    $IsBagIncludes = false;
                                }
                                if (!empty($strCabinBaggage)) {
                                    $strCabinBaggage = $strCabinBaggage;
                                } else {
                                    $strCabinBaggage = '0 KG';
                                }
                                $TripIndicator = $segmentsResult['TripIndicator'];
                                $SegmentIndicator = $segmentsResult['SegmentIndicator'];

                                $strAirlineCode = $segmentsResult['Airline']['AirlineCode'];
                                $AirlineName = $segmentsResult['Airline']['AirlineName'];
                                $FlightNumber = $segmentsResult['Airline']['FlightNumber'];
                                $FareClass = $segmentsResult['Airline']['FareClass'];
                                $FareClassArr[] = $FareClass;
                                $SegFlightNumber = $strAirlineCode . "-" . $FlightNumber;

                                $DepTerminal = $segmentsResult['Origin']['Airport']['Terminal'];
                                if (!empty($DepTerminal)) {
                                    $DepTerminal = $DepTerminal;
                                } else {
                                    $DepTerminal = 0;
                                }
                                $ArrTerminal = $segmentsResult['Destination']['Airport']['Terminal'];
                                if (!empty($ArrTerminal)) {
                                    $ArrTerminal = $ArrTerminal;
                                } else {
                                    $ArrTerminal = 0;
                                }

                                $originAirportName = $segmentsResult['Origin']['Airport']['AirportName'];
                                $originAirportCode = $segmentsResult['Origin']['Airport']['AirportCode'];
                                $originCityName = $segmentsResult['Origin']['Airport']['CityName'];
                                $originCountryName = $segmentsResult['Origin']['Airport']['CountryName'];
                                $originDepTime = $segmentsResult['Origin']['DepTime'];

                                $destinationAirportName = $segmentsResult['Destination']['Airport']['AirportName'];
                                $destinationAirportCode = $segmentsResult['Destination']['Airport']['AirportCode'];
                                $destinationCityName = $segmentsResult['Destination']['Airport']['CityName'];
                                $destinationCountryName = $segmentsResult['Destination']['Airport']['CountryName'];
                                $destinationArrTime = $segmentsResult['Destination']['ArrTime'];

                                $Duration = $segmentsResult['Duration'];
                                $GroundTime = $segmentsResult['GroundTime'];
                                $Mile = $segmentsResult['Mile'];
                                $StopOver = $segmentsResult['StopOver'];
                                $StopPoint = $segmentsResult['StopPoint'];
                                $StopPointArrivalTime = $segmentsResult['StopPointArrivalTime'];
                                $StopPointDepartureTime = $segmentsResult['StopPointDepartureTime'];
                                $Craft = $segmentsResult['Craft'];
                                $Remark = $segmentsResult['Remark'];
                                $IsETicketEligible = $segmentsResult['IsETicketEligible'];
                                $NoOfSeatAvailable = !empty($segmentsResult['NoOfSeatAvailable']) ? $segmentsResult['NoOfSeatAvailable'] : 0;
                                $FlightStatus = $segmentsResult['FlightStatus'];
                                $Status = $segmentsResult['Status'];

                                $strAirlineCodeLogo = $strAirlineCode;
                                $filePath = $this->getflightlogo($strAirlineCodeLogo);
                                $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->convertMinutesToHoursFormat((isset($segmentsResult['Duration']) ? $segmentsResult['Duration'] : 0));

                                $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($ArrTime);
                                $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DepTime);
                                $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($FlyingMinutes);


                                if ($skey == 1) {
                                    $SegFlightNumberArr[] = $SegFlightNumber;
                                    if ($countSeg >= 2) {
                                        $AccumulatedDuration += isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : (0);
                                    } else {
                                        $AccumulatedDuration += ($segmentsResult['Duration'] + $segmentsResult['GroundTime']);
                                    }
                                } else {
                                    $DestSegFlightNumberArr[] = $SegFlightNumber;
                                    if ($countSeg >= 2) {
                                        $AccumulatedDurationD += isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : (0);
                                    } else {
                                        $AccumulatedDurationD += ($segmentsResult['Duration'] + $segmentsResult['GroundTime']);
                                    }
                                }

                                $arrSegments[] = array(
                                    "isReturnSegment" => $isReturnSegment,
                                    "segmentid" => $FlightNumber,
                                    "originAirportName" => $originAirportName,
                                    "destinationAirportName" => $destinationAirportName,
                                    "originCityName" => $originCityName,
                                    "originCountryName" => $originCountryName,
                                    "destinationCityName" => $destinationCityName,
                                    "destinationCountryName" => $destinationCountryName,
                                    "destinationAirportCode" => $destinationAirportCode,
                                    "destinationArrTime" => $destinationArrTime,
                                    "SegFlightNumber" => $SegFlightNumber,
                                    "AirlineCode" => $strAirlineCode,
                                    "AirlineName" => $AirlineName,
                                    "FareClass" => $FareClass,
                                    "originAirportCode" => $originAirportCode,
                                    "originDepTime" => $originDepTime,
                                    "TripIndicator" => $TripIndicator,
                                    "Baggage" => $strBaggage,
                                    "CabinBaggage" => $strCabinBaggage,
                                    "IsBaggage" => $IsBaggage,
                                    "SegmentIndicator" => $SegmentIndicator,
                                    "Duration" => $Duration,
                                    "GroundTime" => $GroundTime,
                                    "Mile" => $Mile,
                                    "StopOver" => $StopOver,
                                    "StopPoint" => $StopPoint,
                                    "StopPointArrivalTime" => $StopPointArrivalTime,
                                    "StopPointDepartureTime" => $StopPointDepartureTime,
                                    "Craft" => $Craft,
                                    "Remark" => $Remark,
                                    "IsETicketEligible" => $IsETicketEligible,
                                    "FlightStatus" => $FlightStatus,
                                    "Status" => $Status,
                                    "NoOfSeatAvailable" => $NoOfSeatAvailable,
                                    "strDepartureDtTime" => $strDepartureDtTime,
                                    "strArrivalDtTime" => $strArrivalDtTime,
                                    "FlightDuration" => $strDuration,
                                    "LAYOVERDuration" => $LAYOVERDuration,
                                    "DepTerminal" => $DepTerminal,
                                    "ArrTerminal" => $ArrTerminal,
                                    "filePath" => $filePath,
                                );
                            }
                        }
                    }
                }
                $classOfBooking = implode(',', array_values(array_unique($FareClassArr)));
                $arrFairRules[0]['classOfBooking'] = $classOfBooking;
                $arrFairRules[0]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrFairRules[0]['SeatAvailable'] = $NoOfSeatAvailable;
                //echo "<pre>===="; print_r($DepOrigin);
                $OrDepTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DepOrigin['DepTime']);
                $OrArrTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DepDestination['ArrTime']);
                //echo "<pre>-----"; print_r($OrDepTime);
                $DeDepTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($ArrOrigin['DepTime']);
                $DeArrTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($ArrDestination['ArrTime']);
                $arrCommonInsVariables['localFromDateTime'] = $DepOrigin['DepTime'];
                $arrCommonInsVariables['localToDateTime'] = $ArrDestination['ArrTime'];

                $OriFlyingMinutes = ($AccumulatedDuration);
                $OriFlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($OriFlyingMinutes);
                $OrFlightNumber = $DepData['Airline']['AirlineCode'] . "-" . $DepData['Airline']['FlightNumber'];
                $DeFlightNumber = $ArrData['Airline']['AirlineCode'] . "-" . $ArrData['Airline']['FlightNumber'];
                $strAirlineCodeLogo = $DepData['Airline']['AirlineCode'];
                $DesAirlineCodeLogo = $ArrData['Airline']['AirlineCode'];
                $airlineSysId = !empty($arrAirlineList[$DepData['Airline']['AirlineCode']]) ? $arrAirlineList[$DepData['Airline']['AirlineCode']] : '0';
                $DeFlyingMinutes = ($AccumulatedDurationD);
                $DesFlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($DeFlyingMinutes);
                $OrifilePath = $this->getflightlogo($strAirlineCodeLogo);
                $DesfilePath = $this->getflightlogo($DesAirlineCodeLogo);

                //DepartureTime DestPlaceSysId

                $arrInsertFlightData[$key]['origin']['FlightNumber'] = $DepData['Airline']['FlightNumber'];
                $arrInsertFlightData[$key]['origin']['AirlineName'] = $strAirlineName = $DepData['Airline']['AirlineName'];
                $arrInsertFlightData[$key]['origin']['AirlineCode'] = $AirlineCode = $DepData['Airline']['AirlineCode'];
                $arrInsertFlightData[$key]['origin']['FareClass'] = $AirlineCode = $DepData['Airline']['FareClass'];
                $arrInsertFlightData[$key]['origin']['OrFlightNumber'] = $OrFlightNumber;
                $arrInsertFlightData[$key]['origin']['SegFlightNumberArr'] = implode(', ', $SegFlightNumberArr);
                $arrInsertFlightData[$key]['origin']['Currency'] = $Currency;
                $arrInsertFlightData[$key]['origin']['ResultIndex'] = $ResultIndex;
                $arrInsertFlightData[$key]['origin']['IsLCC'] = $result['IsLCC'];
                $arrInsertFlightData[$key]['origin']['IsGSTMandatory'] = $IsGSTMandatory;
                $arrInsertFlightData[$key]['origin']['IsRefundable'] = $result['IsRefundable'];
                $arrInsertFlightData[$key]['origin']['IsRefundableTxt'] = $IsRefundableTxt;
                $arrInsertFlightData[$key]['origin']['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData[$key]['origin']['DepatureDate'] = date('d M Y', strtotime($strDepatureDate));
                $arrInsertFlightData[$key]['origin']['DepartureDateTxt'] = date('D, d M', strtotime($strDepatureDate));
                $arrInsertFlightData[$key]['origin']['DepartureTime'] = $OrDepTime;
                $arrInsertFlightData[$key]['origin']['ArrivalTime'] = $OrArrTime;
                $arrInsertFlightData[$key]['origin']['SourceAirportCode'] = $DepOrigin['Airport']['AirportCode'];
                $arrInsertFlightData[$key]['origin']['SourceCityName'] = $DepOrigin['Airport']['CityName'];
                $arrInsertFlightData[$key]['origin']['DestAirportCode'] = $DepDestination['Airport']['AirportCode'];
                $arrInsertFlightData[$key]['origin']['DestCityName'] = $DepDestination['Airport']['CityName'];
                $arrInsertFlightData[$key]['origin']['LocalFromTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? str_replace('T', ' ', ($arrCommonInsVariables['localFromDateTime'])) : '';
                $arrInsertFlightData[$key]['origin']['FromUTCTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? $arrCommonInsVariables['localFromDateTime'] : '';
                $arrInsertFlightData[$key]['origin']['LocalToTime'] = isset($arrCommonInsVariables['localToDateTime']) ? str_replace('T', ' ', ($arrCommonInsVariables['localToDateTime'])) : '';
                $arrInsertFlightData[$key]['origin']['ToUTCTime'] = isset($arrCommonInsVariables['localToDateTime']) ? $arrCommonInsVariables['localToDateTime'] : '';
                $arrInsertFlightData[$key]['origin']['SourcePlaceSysId'] = $intSourceCityId;
                $arrInsertFlightData[$key]['origin']['DestPlaceSysId'] = $intDestinationCityId;
                $arrInsertFlightData[$key]['origin']['SourcePlaceName'] = $sourceCityText[0];
                $arrInsertFlightData[$key]['origin']['DestPlaceName'] = $destinationCityText[0];
                $arrInsertFlightData[$key]['origin']['StopCount'] = $OrStopCountTxt;
                $arrInsertFlightData[$key]['origin']['NoOfSeatAvailable'] = $DepData['NoOfSeatAvailable'];
                $arrInsertFlightData[$key]['origin']['TotalFlightMembers'] = $intMemberCount;
                $arrInsertFlightData[$key]['origin']['FlyingMinutes'] = $OriFlyingMinutes;
                $arrInsertFlightData[$key]['origin']['FlightDuration'] = $OriFlightDuration;
                $arrInsertFlightData[$key]['origin']['JourneyType'] = $intJourneyType;
                $arrInsertFlightData[$key]['origin']['TripType'] = $intTripType;
                $arrInsertFlightData[$key]['origin']['IsInternational'] = $interNationalSearch;
                $arrInsertFlightData[$key]['origin']['logo'] = $OrifilePath;

                $airlineSysId = !empty($arrAirlineList[$ArrData['Airline']['AirlineCode']]) ? $arrAirlineList[$ArrData['Airline']['AirlineCode']] : '0';
                $arrInsertFlightData[$key]['destination']['FlightNumber'] = $ArrData['Airline']['FlightNumber'];
                $arrInsertFlightData[$key]['destination']['AirlineName'] = $ArrData['Airline']['AirlineName'];
                $arrInsertFlightData[$key]['destination']['SegFlightNumberArr'] = implode(', ', $DestSegFlightNumberArr);
                $arrInsertFlightData[$key]['destination']['DeFlightNumber'] = $DeFlightNumber;
                $arrInsertFlightData[$key]['destination']['Currency'] = $Currency;
                $arrInsertFlightData[$key]['destination']['ResultIndex'] = $ResultIndex;
                $arrInsertFlightData[$key]['destination']['IsLCC'] = $result['IsLCC'];
                $arrInsertFlightData[$key]['destination']['IsGSTMandatory'] = $IsGSTMandatory;
                $arrInsertFlightData[$key]['destination']['IsRefundable'] = $result['IsRefundable'];
                $arrInsertFlightData[$key]['destination']['IsRefundableTxt'] = $IsRefundableTxt;
                $arrInsertFlightData[$key]['destination']['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData[$key]['destination']['ReturnDate'] = date('d M Y', strtotime($strReturnDate));
                $arrInsertFlightData[$key]['destination']['DepartureDateTxt'] = date('D, d M', strtotime($strReturnDate));
                $arrInsertFlightData[$key]['destination']['DepartureTime'] = $DeDepTime;
                $arrInsertFlightData[$key]['destination']['ArrivalTime'] = $DeArrTime;
                $arrInsertFlightData[$key]['destination']['SourceAirportCode'] = $ArrOrigin['Airport']['AirportCode'];
                $arrInsertFlightData[$key]['destination']['SourceCityName'] = $ArrOrigin['Airport']['CityName'];
                $arrInsertFlightData[$key]['destination']['DestAirportCode'] = $ArrDestination['Airport']['AirportCode'];
                $arrInsertFlightData[$key]['destination']['DestCityName'] = $ArrDestination['Airport']['CityName'];
                $arrInsertFlightData[$key]['destination']['SourcePlaceSysId'] = $intSourceCityId;
                $arrInsertFlightData[$key]['destination']['DestPlaceSysId'] = $intDestinationCityId;
                $arrInsertFlightData[$key]['destination']['SourcePlaceName'] = $sourceCityText[0];
                $arrInsertFlightData[$key]['destination']['DestPlaceName'] = $destinationCityText[0];
                $arrInsertFlightData[$key]['destination']['LocalFromTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? str_replace('T', ' ', ($arrCommonInsVariables['localFromDateTime'])) : '';
                $arrInsertFlightData[$key]['destination']['FromUTCTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? $arrCommonInsVariables['localFromDateTime'] : '';
                $arrInsertFlightData[$key]['destination']['LocalToTime'] = isset($arrCommonInsVariables['localToDateTime']) ? str_replace('T', ' ', ($arrCommonInsVariables['localToDateTime'])) : '';
                $arrInsertFlightData[$key]['destination']['ToUTCTime'] = isset($arrCommonInsVariables['localToDateTime']) ? $arrCommonInsVariables['localToDateTime'] : '';
                $arrInsertFlightData[$key]['destination']['StopCount'] = $DeStopCountTxt;
                $arrInsertFlightData[$key]['destination']['NoOfSeatAvailable'] = $ArrData['NoOfSeatAvailable'];
                $arrInsertFlightData[$key]['destination']['TotalFlightMembers'] = $intMemberCount;
                $arrInsertFlightData[$key]['destination']['FlyingMinutes'] = $DeFlyingMinutes;
                $arrInsertFlightData[$key]['destination']['FlightDuration'] = $DesFlightDuration;
                $arrInsertFlightData[$key]['destination']['JourneyType'] = $intJourneyType;
                $arrInsertFlightData[$key]['destination']['TripType'] = $intTripType;
                $arrInsertFlightData[$key]['destination']['IsInternational'] = $interNationalSearch;
                $arrInsertFlightData[$key]['destination']['logo'] = $DesfilePath;

                $arrInsertFlightData[$key]['FlightNumber']  = $DepData['Airline']['AirlineCode'] . '-' . $DepData['Airline']['FlightNumber'];
                $arrInsertFlightData[$key]['AirlineCode']  = $DepData['Airline']['AirlineCode'];
                $arrInsertFlightData[$key]['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData[$key]['SourcePlaceSysId'] = $arrCommonInsVariables['intSourceCityId'];
                $arrInsertFlightData[$key]['DestPlaceSysId'] = $arrCommonInsVariables['intDestinationCityId'];
                $arrInsertFlightData[$key]['SourceAirportCode'] = $arrCommonInsVariables['strSourceAirportCode'];
                $arrInsertFlightData[$key]['DestAirportCode']   = $arrCommonInsVariables['strDestinationAirportCode'];
                $arrInsertFlightData[$key]['SourcePlaceName'] = $sourceCityText[0];
                $arrInsertFlightData[$key]['DestPlaceName'] = $destinationCityText[0];
                $arrInsertFlightData[$key]['PublishedFare'] = $intPublishedFare; // As Discussed with GG  LocalFromTime
                $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format($intPublishedFare);
                $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                $arrInsertFlightData[$key]['IsTJFlightAPI'] = !empty($this->IsTJFlightAPI) ? $this->IsTJFlightAPI : 0;
                $arrInsertFlightData[$key]['strFlightRoute'] = $strFlightRoute;
                $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                $arrInsertFlightData[$key]['IsLCC'] = $result['IsLCC'];
                $arrInsertFlightData[$key]['LocalFromTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? str_replace('T', ' ', ($arrCommonInsVariables['localFromDateTime'])) : '';
                $arrInsertFlightData[$key]['FromUTCTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? $arrCommonInsVariables['localFromDateTime'] : '';
                $arrInsertFlightData[$key]['LocalToTime'] = isset($arrCommonInsVariables['localToDateTime']) ? str_replace('T', ' ', ($arrCommonInsVariables['localToDateTime'])) : '';
                $arrInsertFlightData[$key]['ToUTCTime'] = isset($arrCommonInsVariables['localToDateTime']) ? $arrCommonInsVariables['localToDateTime'] : '';
                $arrInsertFlightData[$key]['IsGSTMandatory'] = $IsGSTMandatory;
                $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                $arrInsertFlightData[$key]['SearchTraceId'] = $SearchTraceId;
                $arrInsertFlightData[$key]['FlightClass'] = $cabinClass;
                $arrInsertFlightData[$key]['FairRules'] = $arrFairRules;
                $arrInsertFlightData[$key]['Stops'] = $OriginStopCount;
                $arrInsertFlightData[$key]['StopCount'] = $OrStopCountTxt;
                $arrInsertFlightData[$key]['AirlineName'] = $strAirlineName;
                $arrInsertFlightData[$key]['IsRefundable'] = $Refundable;
                $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                $arrInsertFlightData[$key]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrInsertFlightData[$key]['FlyingMinutes'] = ($OriFlyingMinutes + $DeFlyingMinutes);
                $arrInsertFlightData[$key]['DepartureTime'] = $OrDepTime;
                $arrInsertFlightData[$key]['ArrivalTime'] = $OrArrTime;
                $arrInsertFlightData[$key]['Segments'] = $arrSegments;

                $arrInsertFlightData[$key]['IsNewMigration'] = 1;
                $arrInsertFlightData[$key]['TripType'] = 2;
                $arrInsertFlightData[$key]['JourneyType'] = 2;
                $arrInsertFlightData[$key]['ICSourceSysId'] = 3;
                $arrInsertFlightData[$key]['supplier'] = 'Supplier 2';

                $arrInsertFlightData[$key]['arrCommonInsVariables'] = $arrCommonInsVariables;
                $FilterDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getRangeByValue(unserialize(CONST_DEPARTURETIME), $OrDepTime);
                $arrInsertFlightData[$key]['FilterDepartureDtTime'] = $FilterDepartureDtTime;

                if ($arrFairRules) {
                    foreach ($arrFairRules as $Fare) {
                        $dddddddd[] = $Fare['PublishedFare'];
                    }
                }
                $AttPriceRange[] = $PublishedFare;
                $arrAirlineName[] = $AirlineCode . '-' . $strAirlineName;
                $FiltStopCount[] = $OrStopCountTxt;
                $DesFiltStopCount[] = $DeStopCountTxt;
                $FiltSupplier[] = 'Supplier 2';
            }
            sort($dddddddd);

            $FiltPriceRangeU = (array_unique($FiltPriceRange));
            $ArrPriceUnique = array_filter(array_values($FiltPriceRangeU));
            $arrAirlineName = array_unique($arrAirlineName);
            $FiltStopCount = array_unique($FiltStopCount);
            $AttPriceRange = array_unique($AttPriceRange);
            //echo "<pre>"; print_r($arrInsertFlightData); exit;
            $data = array('outbound' => $arrInsertFlightData, 'dddddddd' => $dddddddd, 'arrAirlineName' => $arrAirlineName, 'FiltStopCount' => $FiltStopCount, 'ArrPriceUnique' => $ArrPriceUnique, 'AttPriceRange' => $AttPriceRange, 'FiltSupplier' => $FiltSupplier);

            return $data;
        } else {
            return false;
        }
    }
    public function getflightlogo($strAirlineCodeLogo)
    {
        $filePath = $_SERVER['DOCUMENT_ROOT'] . "/public/upload/AirlineLogo/";
        if (file_exists($filePath . $strAirlineCodeLogo . ".gif")) {
            $strAirlineLogo = $strAirlineCodeLogo . ".gif";
            $filePath = $this->baseUrl . "/public/upload/AirlineLogo/" . $strAirlineLogo;
        } elseif (file_exists($filePath . $strAirlineCodeLogo . ".png")) {
            $strAirlineLogo = $strAirlineCodeLogo . ".png";
            $filePath = $this->baseUrl . "/public/upload/AirlineLogo/" . $strAirlineLogo;
        } elseif (file_exists($filePath . $strAirlineCodeLogo . ".jpg")) {
            $strAirlineLogo = $strAirlineCodeLogo . ".jpg";
            $filePath = $this->baseUrl . "/public/upload/AirlineLogo/" . $strAirlineLogo;
        } elseif (file_exists($filePath . $strAirlineCodeLogo . ".jpeg")) {
            $strAirlineLogo = $strAirlineCodeLogo . ".jpeg";
            $filePath = $this->baseUrl . "/public/upload/AirlineLogo/" . $strAirlineLogo;
        } else {
            $filePath = $this->baseUrl . "/public/upload/AirlineLogo/noimage.png";
        }
        return $filePath;
    }
    public function getMarkup($intCountryCode, $AgencySysId)
    {
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $AgencySysId = $AgencySysId;
        $strCountryCode = $intCountryCode;
        $PlanType = 1;
        if (!empty(trim($strCountryCode)) && trim($strCountryCode) != "IN") {
            $intAirType = 2;
        } else {
            $intAirType = 1;
        }
        $objFlight = new Travel_Model_TblFlight();
        $objHotel = new Travel_Model_TblBuyHotel();
        $objMarkup = new Markup_Model_Markup();
        $arrGTXMarkups = $objFlight->getGTXMarkups($intAirType, $AgencySysId);
        $arrAgencyMarkups = $objFlight->getAgencyMarkups($intAirType, $AgencySysId);
        $arrAgencyMarkupsHotel = $objHotel->getAgencyMarkups($intAirType, $AgencySysId);
        $whereCharge = array("AgencySysId" => $AgencySysId, "ItemSourceType" => (int) $intAirType);
        $arrAgencyMarkupsCancellation = $objMarkup->getCancellationChargeDetail('TB_Agency_Cancellation_Charges', $whereCharge);
        $arrAgencyUserDetail = $objMarkup->getAgencyUserDetail(array("AgencySysId" => $AgencySysId, "ItemSourceType" => (int) $intAirType, "PlanType" => $PlanType));
        $arrApiServiceTax = $objHotel->getApiServiceTax(0);

        try {
            if ($arrGTXMarkups || $arrAgencyMarkups) {
                $status = array("status" => true, "arrGTXMarkups" => $arrGTXMarkups, "arrAgencyMarkups" => $arrAgencyMarkups, 'arrApiServiceTax' => $arrApiServiceTax, 'arrAgencyMarkupsHotel' => $arrAgencyMarkupsHotel, 'arrAgencyMarkupsCancellation' => $arrAgencyMarkupsCancellation, 'arrAgencyUserDetail' => $arrAgencyUserDetail, "message" => 'Successfully.');
                return $status;
            }
        } catch (Exception $error) {
            $status = array("status" => false, "arrGTXMarkups" => [], "arrAgencyMarkups" => [], 'arrApiServiceTax' => [], 'arrAgencyMarkupsHotel' => [], "message" => $error->getMessage());
            return $status;
        }
    }
    // public function getMarkup($intCountryCode, $AgencySysId)
    // {
    //     $this->view->layout()->disableLayout();
    //     $this->_helper->viewRenderer->setNoRender(true);
    //     $AgencySysId = $AgencySysId;
    //     $strCountryCode = $intCountryCode;
    //     $PlanType = 1;
    //     if (!empty(trim($strCountryCode)) && trim($strCountryCode) != "IN") {
    //         $intAirType = 2;
    //     } else {
    //         $intAirType = 1;
    //     }
    //     $objFlight = new Travel_Model_TblFlight();
    //     $objHotel = new Travel_Model_TblBuyHotel();
    //     $objMarkup = new Markup_Model_Markup();
    //     $arrGTXMarkups = $objFlight->getGTXMarkups($intAirType, $AgencySysId);
    //     $arrAgencyMarkups = $objFlight->getAgencyMarkups($intAirType, $AgencySysId);
    //     $arrAgencyMarkupsHotel = $objHotel->getAgencyMarkups($intAirType, $AgencySysId);
    //     $whereCharge = array("AgencySysId" => $AgencySysId, "ItemSourceType" => (int) $intAirType);
    //     $arrAgencyMarkupsCancellation = $objMarkup->getCancellationChargeDetail('TB_Agency_Cancellation_Charges', $whereCharge);
    //     $arrAgencyUserDetail = $objMarkup->getAgencyUserDetail(array("AgencySysId" => $AgencySysId, "ItemSourceType" => (int) $intAirType, "PlanType" => $PlanType));
    //     $arrApiServiceTax = $objHotel->getApiServiceTax(0);

    //     try {
    //         if ($arrGTXMarkups || $arrAgencyMarkups) {
    //             $status = array("status" => true, "arrGTXMarkups" => $arrGTXMarkups, "arrAgencyMarkups" => $arrAgencyMarkups, 'arrApiServiceTax' => $arrApiServiceTax, 'arrAgencyMarkupsHotel' => $arrAgencyMarkupsHotel, 'arrAgencyMarkupsCancellation' => $arrAgencyMarkupsCancellation, 'arrAgencyUserDetail' => $arrAgencyUserDetail, "message" => 'Successfully.');
    //             return $status;
    //         }
    //     } catch (Exception $error) {
    //         $status = array("status" => false, "arrGTXMarkups" => [], "arrAgencyMarkups" => [], 'arrApiServiceTax' => [], 'arrAgencyMarkupsHotel' => [], "message" => $error->getMessage());
    //         return $status;
    //     }
    // }
    public function getCancelCharge($intCountryCode, $AgencySysId)
    {
        if ($intCountryCode) {
            $getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);
            $intMarkUp = 0;
            if ($getMarkup['status'] == 1) {
                if ($getMarkup['arrAgencyMarkupsCancellation']) {
                    foreach ($getMarkup['arrAgencyMarkupsCancellation'] as $value) {
                        if ($value['SupplierType'] == 2 && $value['ServiceType'] == 1 && $value['MPType'] == 1 && $value['MPType'] == 1) {
                            $intGTXMarkUpType = $value['MarkUpType'];
                            $MarkUp = $value['MarkUp'];
                            $intGTXMarkUpType = $value['MarkUpType'];
                            if ($intGTXMarkUpType == 1) { // For Flat
                                $intMarkUp += $MarkUp;
                            } else { // For Percentage
                                $intMarkUp += $MarkUp; //($intOfferedFare * $MarkUp) / 100;
                            }
                        }
                    }
                }
            }
            return $intMarkUp;
        } else {
            $data = array('status' => false, 'message' => 'Invalid request');
            return ($data);
        }
    }

    public function getflightfarequoteAction()
    {
        $getData = $this->getRequest()->getParams();
        
        $FlightBookingData = json_decode(base64_decode($getData['intOutBoundId']), true);
        $sessionFlightSearchParams = json_decode($getData['sessionFlightSearchParams'], true);
        $AirInvenSysIdArr = ($getData['AirInvenSysIdArr']);
        $IsSeriesFareData = isset($FlightBookingData[0]['IsSeriesFareData']) ? $FlightBookingData[0]['IsSeriesFareData'] : 0;
        $IsTJFlightAPI = isset($FlightBookingData[0]['IsTJFlightAPI']) ? $FlightBookingData[0]['IsTJFlightAPI'] : 0;
        $route = $sessionFlightSearchParams['route'];
        $interNationalSearch = $sessionFlightSearchParams['interNationalSearch'];
        $bookingAllowed     = $sessionFlightSearchParams['bookingAllowed'];
        $SearchTraceId = $sessionFlightSearchParams['SearchTraceId'];
        $ICSourceSysId = $FlightBookingData[0]['ICSourceSysId'];
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        if ($this->getRequest()->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();
            $this->_helper->viewRenderer->setNoRender(true);
            // echo '<pre>';
            // print_r($FlightBookingData);
            // echo '</pre>';
            // die;
            Zend_Session::namespaceUnset('FlightSeatSession');
            Zend_Session::namespaceUnset('selectedSeatSession');
            $leadId = $sessionFlightSearchParams['editLeadId'];
            $objFlightProposal = new Travel_Model_TblFlightProposal();
            $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId,'query');
            $AgencySysId = $arrAgencyDetails['AgencySysId'];
            $AgentSysId = $arrAgencyDetails['AgentSysId'];
            //$AirInvenSysIdArr = $getData['AirInvenSysIdArr'];            
           
            $apiResponseInbound = [];
            $getQ = array(
                'TraceId' => $getData['apiTraceId'],
                'SearchTraceId' => $SearchTraceId,
                'BookingData' => $FlightBookingData[0],
                'Inbound' => false,
            );
            if($route == '3'){
                $PriceIDMulti = [];
                if ($FlightBookingData) {
                    foreach ($FlightBookingData as $value) {
                        $PriceIDMulti[] = $value['FairRules']['PriceID'];

                    }
                }
                $getQ['TraceId'] = implode(',',$PriceIDMulti);
            }
            $FareRulesCancel = [];
            $intMarkUp = $this->getCancelCharge($intCountryCode, $AgencySysId);
           
            if (isset($IsSeriesFareData) && $IsSeriesFareData == 1) {
                $apiResponse = array('status' => array('success' => 1), 'bookingId' => $FlightBookingData[0]['bookingId']);
            } elseif ($IsTJFlightAPI == '1' && $ICSourceSysId == 7 && $bookingAllowed == 1) {
                $apiResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->GetApiFlightsFareQuoteTripJack($getQ, $AgencySysId);
                
                $bookingId = $apiResponse['bookingId'];
                $EXPTraceId = explode(',', $getData['apiTraceId']);
                
                $requestData = array(
                    'TraceId' => $bookingId,
                    'flowType' => 'REVIEW'
                );
                $apiResponsefr = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->GetApiFlightsFareRulesTripJack($requestData, $AgencySysId);
                $FareRules = isset($apiResponsefr['fareRule']) ? $apiResponsefr['fareRule'] : [];
					$success = $apiResponsefr['status']['success'];
                    
					if ($success && $FareRules) {
						foreach ($FareRules as $key => $val) {
							$CANCELLATION = isset($val['tfr']['CANCELLATION']) ? $val['tfr']['CANCELLATION'] : '';
							$DATECHANGE = isset($val['tfr']['DATECHANGE']) ? $val['tfr']['DATECHANGE'] : '';
							$NO_SHOW = isset($val['tfr']['NO_SHOW']) ? $val['tfr']['NO_SHOW'] : '';
							$SEAT_CHARGEABLE = isset($val['tfr']['SEAT_CHARGEABLE']) ? $val['tfr']['SEAT_CHARGEABLE'] : '';
							$cancel = [];
							if($CANCELLATION){
								foreach($CANCELLATION as $keys=>$cl){
									$policyInfo_ = isset($cl['policyInfo']) ? array_values(array_filter(explode('__nls__',$cl['policyInfo']))) : ['Airline Cancellation Charges + Taxes + Surcharges'];
									$startTime = (isset($cl['st']) && !empty($cl['st']))?$cl['st']:0;
									$endTime = (isset($cl['et']) && !empty($cl['et']))?$cl['et']:0;
									$additionalFee = (isset($cl['additionalFee']) && !empty($cl['additionalFee']))?$cl['additionalFee']:0;
									$amount = (isset($cl['amount']) && !empty($cl['amount']))?$cl['amount']:0;
									$policyperiod = (isset($cl['pp']) && !empty($cl['pp']))?$cl['pp']:'';
									$st = $this->hoursTodays($startTime);
									$et = $this->hoursTodays($endTime);
									$TimeFrame = $st.' to '.$et;
                                    
									$cancel[$keys] = $cl;
									$cancel[$keys]['CurrencyTitle'] = $this->CurrencyTitle;
									$cancel[$keys]['amount'] = $amount;
									$cancel[$keys]['sector'] = $key;
									$cancel[$keys]['policyInfo'] = $policyInfo_;
									$cancel[$keys]['TimeFrame'] = (!empty($policyperiod))?$policyperiod:$TimeFrame;
									$cancel[$keys]['additionalFee'] = round($additionalFee + (float) ($intMarkUp * $intMemberCount));
								}
							}else{
								$cancel[0]['sector'] = $key;
								$cancel[0]['TimeFrame'] = 'As Per Airline';
								$cancel[0]['policyInfo'] = ['As Per Airline'];
							}
							$datechange = [];
							if($DATECHANGE){
								foreach($DATECHANGE as $keys=>$cl){
									$policyInfo_ = (isset($cl['policyInfo']) && !empty($cl['policyInfo'])) ? array_values(array_filter(explode('__nls__',$cl['policyInfo']))) : ['Difference in Fare + Taxes + Surcharges'];
									$startTime = (isset($cl['st']) && !empty($cl['st']))?$cl['st']:0;
									$endTime = (isset($cl['et']) && !empty($cl['et']))?$cl['et']:0;
									$additionalFee = (isset($cl['additionalFee']) && !empty($cl['additionalFee']))?$cl['additionalFee']:0;
									$amount = (isset($cl['amount']) && !empty($cl['amount']))?$cl['amount']:0;
									$policyperiod = (isset($cl['pp']) && !empty($cl['pp']))?$cl['pp']:'';
									$st = $this->hoursTodays($startTime);
									$et = $this->hoursTodays($endTime);
									$TimeFrame = $st.' to '.$et;
									$datechange[$keys] = $cl;
									$datechange[$keys]['CurrencyTitle'] = $this->CurrencyTitle;
									$datechange[$keys]['amount'] = $amount;
									$datechange[$keys]['sector'] = $key;
									$datechange[$keys]['policyInfo'] = $policyInfo_;
									$datechange[$keys]['TimeFrame'] = (!empty($policyperiod))?$policyperiod:$TimeFrame;
									$datechange[$keys]['additionalFee'] = round($additionalFee + (float) ($intMarkUp * $intMemberCount));
								}
							}else{
								$datechange[0]['sector'] = $key;
								$datechange[0]['TimeFrame'] = 'As Per Airline';
								$datechange[0]['policyInfo'] = ['As Per Airline'];
							}
							$noshow = [];
							if($NO_SHOW){
								foreach($NO_SHOW as $keys=>$cl){
									$policyInfo_ = (isset($cl['policyInfo']) && !empty($cl['policyInfo'])) ? array_values(array_filter(explode('__nls__',$cl['policyInfo']))) : ['Fees As Per Airline Rule + Surcharges'];
									$startTime = (isset($cl['st']) && !empty($cl['st']))?$cl['st']:0;
									$endTime = (isset($cl['et']) && !empty($cl['et']))?$cl['et']:0;
									$additionalFee = (isset($cl['additionalFee']) && !empty($cl['additionalFee']))?$cl['additionalFee']:0;
									$amount = (isset($cl['amount']) && !empty($cl['amount']))?$cl['amount']:0;
									$policyperiod = (isset($cl['pp']) && !empty($cl['pp']))?$cl['pp']:'';
									$st = $this->hoursTodays($startTime);
									$et = $this->hoursTodays($endTime);
									$TimeFrame = $st.' to '.$et;
									$noshow[$keys] = $cl;
									$noshow[$keys]['CurrencyTitle'] = $this->CurrencyTitle;
									$noshow[$keys]['amount'] = $amount;
									$noshow[$keys]['sector'] = $key;
									$noshow[$keys]['policyInfo'] = $policyInfo_;
									$noshow[$keys]['TimeFrame'] = (!empty($policyperiod))?$policyperiod:$TimeFrame;
									$noshow[$keys]['additionalFee'] = round($additionalFee + (float) ($intMarkUp * $intMemberCount));
								}
							}else{
								$noshow[0]['sector'] = $key;
								$noshow[0]['TimeFrame'] = 'As Per Airline';
								$noshow[0]['policyInfo'] = ['As Per Airline'];
							}
							$seatchange = [];
							if($SEAT_CHARGEABLE){
								foreach($SEAT_CHARGEABLE as $keys=>$cl){
									$policyInfo_ = (isset($cl['policyInfo']) && !empty($cl['policyInfo'])) ? array_values(array_filter(explode('__nls__',$cl['policyInfo']))) : ['As per Airlines'];
									$startTime = (isset($cl['st']) && !empty($cl['st']))?$cl['st']:0;
									$endTime = (isset($cl['et']) && !empty($cl['et']))?$cl['et']:0;
									$additionalFee = (isset($cl['additionalFee']) && !empty($cl['additionalFee']))?$cl['additionalFee']:0;
									$amount = (isset($cl['amount']) && !empty($cl['amount']))?$cl['amount']:0;
									$policyperiod = (isset($cl['pp']) && !empty($cl['pp']))?$cl['pp']:'';
									$st = $this->hoursTodays($startTime);
									$et = $this->hoursTodays($endTime);
									$TimeFrame = $st.' to '.$et;
									$seatchange[$keys] = $cl;
									$seatchange[$keys]['CurrencyTitle'] = $this->CurrencyTitle;
									$seatchange[$keys]['amount'] = $amount;
									$seatchange[$keys]['sector'] = $key;
									$seatchange[$keys]['policyInfo'] = $policyInfo_;
									$seatchange[$keys]['TimeFrame'] = (!empty($policyperiod))?$policyperiod:$TimeFrame;
									$seatchange[$keys]['additionalFee'] = round($additionalFee + (float) ($intMarkUp * $intMemberCount));
								}
							}else{
								$seatchange[0]['sector'] = $key;
								$seatchange[0]['TimeFrame'] = 'As Per Airline';
								$seatchange[0]['policyInfo'] = ['Fees As Per Airline Rule + Surcharges'];
							}
							$FareRulesCancel['CANCELLATION'] = $cancel;
							$FareRulesCancel['DATECHANGE'] = $datechange;
							$FareRulesCancel['NO_SHOW'] = $noshow;
							$FareRulesCancel['SEAT_CHARGEABLE'] = $seatchange;
						}
					}
                $FareRuleRequest[0] = $apiResponsefr;
            } else {
                $apiResponse = array('status' => array('success' => 1), 'bookingId' => '');
            }
            
            $ResponseStatus = isset($apiResponse['status']['success']) ? $apiResponse['status']['success'] : 0;
            $ErrorMessage = isset($apiResponse['errors'][0]['message']) ? $apiResponse['errors'][0]['message'] : '';
            $ErrorMessageInb = isset($apiResponseInbound['errors'][0]['message']) ? $apiResponseInbound['errors'][0]['message'] : '';
            $ResponseStatusInb = isset($apiResponseInbound['status']['success']) ? $apiResponseInbound['status']['success'] : 0;
            if ($ResponseStatus == 1 && ($ICSourceSysId == 7 || $ICSourceSysId == 8 || $ICSourceSysId == 9)) {
                $alerts = isset($apiResponse['alerts']) ? $apiResponse['alerts'] : '';
                if ($IsSeriesFareData == 0 && $bookingAllowed == 1) {
                    $FlightBookingData = $this->UpdateFlightBookingData($apiResponse, $alerts, $SearchTraceId, $sessionFlightSearchParams, $FlightBookingData, $FareRulesCancel);
                }
                $newFare = 0;
                $oldFare = 0;
                $PublishedFare = 0;
                $intPublishedFare = 0;
                $Baggage = [];
                $Meal = [];

                if ($FlightBookingData) {
                    foreach ($FlightBookingData as $value) {
                        $newFare += $value['FairRules']['newFare'];
                        $PublishedFare += $value['FairRules']['newFare'];
                        $intPublishedFare += $value['FairRules']['PublishedFare'];
                        $oldFare += $value['FairRules']['oldFare'];
                        if ($value['Segments']) {
                            foreach ($value['Segments'] as $keys => $Segments) {

                                $Baggage[] = $Segments['BAGGAGEARRAY'];
                                $Meal[] = $Segments['MEALARRAY'];
                            }
                        }
                    }
                }

                $SSRArr = array('Meal' => $Meal, 'Baggage' => $Baggage, 'SeatPreference' => array());
                // $flightSSRDetails = new Zend_Session_Namespace('flightSSRDetails');
                // $flightSSRDetails->params = $SSRArr;
                $FareChange = false;
                if ($newFare != $oldFare) {
                    $FareChange = true;
                }
                $html = new Zend_View();
                $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
                $html->assign(array('Data' => $FlightBookingData, 'sessionFlightSearchParams' => $sessionFlightSearchParams, 'CurrencyTitle' => $this->CurrencyTitle, 'CurrencyRate' => $this->CurrencyRate));
                $bodyText = $html->render('getflightfarequote.phtml');
                $response = array('success' => true, 'message' => 'Done', 'FareChange' => $FareChange, 'html' => $bodyText, 'intPublishedFare' => $this->CurrencyTitle . ' ' . number_format(($intPublishedFare)), 'SSRArr' => json_encode($SSRArr), 'SSRArrInb' => [], 'apiResponse' => json_encode($FlightBookingData));
                echo json_encode($response);
                exit;
            } elseif ($ICSourceSysId == 3) {
               
                // echo '<pre>';
                // print_r($FlightBookingData);
                // echo '</pre>';
                // die('end');
                $FlightBookingDataArr = [];
                $FlightBooking = [];
                $oldFare = 0;
                $newFare = 0;
                $intPublishedFare = 0;
                if ($FlightBookingData && $IsSeriesFareData == 0 && $bookingAllowed == 1) {
                    foreach ($FlightBookingData as $key => $vl) {
                       
                        $IsLCC = $vl['IsLCC'];
                        $strAirlineCode = $vl['AirlineCode'];
                        $FlightBookingDataArr[$key] = $vl;
                        $oldFare += isset($vl['FairRules']['intPublishedFare']) ? $vl['FairRules']['intPublishedFare'] : 0;
                        $IsTJFlightAPI = isset($vl['IsTJFlightAPI']) ? $vl['IsTJFlightAPI'] : '0';
                        if ($ICSourceSysId == 3) {
                            $arrData['SearchTraceId'] = $SearchTraceId;
                            $arrData['BookingData'] = $vl;
                            $arrData['TraceId'] = $vl['apiTraceId'];
                            $arrData['ResultIndex'] = $vl['FairRules']['ApiResultIndex'];
                            if($interNationalSearch == 1 && $route == 2){
                                $arrData['ResultIndex'] = $vl['ApiResultIndex'];
                            }
                            // echo '<pre>';
                            // print_r($arrData);
                            // echo '</pre>';
                            // die('end');
                            $apiResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->fareQuoteDetails($arrData, $AgencySysId);
                            $arrSSR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->flightSSRDetails($arrData, $AgencySysId);

                            $FBD = $this->UpdateFlightBookingDataTBO($apiResponse, $arrSSR, $vl, $sessionFlightSearchParams, $AgencySysId);
                            $newFare += isset($FBD['BookingData']['FairRules']['intPublishedFare']) ? $FBD['BookingData']['FairRules']['intPublishedFare'] : 0;
                            $intPublishedFare += isset($FBD['BookingData']['FairRules']['PublishedFare']) ? $FBD['BookingData']['FairRules']['PublishedFare'] : 0;
                            $SSRArr = isset($FBD['SSRArr']) ? $FBD['SSRArr'] : [];
                            $tripSeatMap = isset($FBD['tripSeatMap']) ? $FBD['tripSeatMap'] : [];
                            $FlightBooking[$key] = $FBD['BookingData'];
                        }
                    }
                } else {
                    $FlightBooking = $FlightBookingData;
                }
                // echo '<pre>';
                // print_r($SSRArr);
                // // die('ddd');
                // die('ddd');

                $FareChange = false;
                if ($newFare != $oldFare) {
                    $FareChange = true;
                }
                $html = new Zend_View();
                $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
                $html->assign(array('Data' => $FlightBooking, 'CurrencyTitle' => $this->CurrencyTitle, 'CurrencyRate' => $this->CurrencyRate));
                $bodyText = $html->render('getflightfarequote.phtml');
                $response = array('success' => true, 'message' => 'Done', 'FareChange' => $FareChange, 'html' => $bodyText, 'intPublishedFare' => number_format(($intPublishedFare)), 'tripSeatMap' => json_encode($tripSeatMap), 'SSRArr' => json_encode($SSRArr), 'SSRArrInb' => [], 'apiResponse' => json_encode($FlightBooking));
                echo json_encode($response);
                exit;
            } elseif ($route == 2 && $ResponseStatus == 1 && $interNationalSearch == 1) {
            } else {
                $response = array('success' => false, 'message' => 'Session is expired. Please try again with new session', 'FareChange' => false, 'html' => '');
                echo json_encode($response);
                exit;
            }
            echo '<pre>';
            print_r($apiResponse);
            die('ddd');
            $SSRArrInb = array();

            // $str = file_get_contents($this->baseUrl.'public/logs/flight/flightSSR/flightSSR_response.json');
            // $arrSSR = json_decode($str,true);

        } else {
            die('Page not found!');
        }
    }

    public function UpdateFlightBookingDataTBO($apiResponse, $arrSSR, $vl, $sessionFlightSearchParams, $AgencySysId)
    {

        $ExtraMarkup = $vl['FairRules']['ExtraMarkup'];
        $ExtraMarkupOnGST = $vl['FairRules']['ExtraMarkupOnGST'];
        $DiscountValue = $vl['FairRules']['DiscountValue'];
        $TotalExtraMarkUp = ($ExtraMarkup + $ExtraMarkupOnGST);
        // echo '<pre>';
        // print_r($ExtraMarkup);
        // echo '<pre>';
        // print_r($ExtraMarkupOnGST);
        // echo '<pre>';
        // print_r($vl['FairRules']);
        // die;
        $IsLCC = $vl['IsLCC'];
        $strAirlineCode = $vl['AirlineCode'];
        $FlightNumber = explode('-', $vl['FlightNumber']);
        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
        $strReturnDate = !empty($sessionFlightSearchParams['return_dates']) ? $sessionFlightSearchParams['return_dates'] : '';
        $strSourceAirportCode = $sessionFlightSearchParams['from'];
        $strDestinationAirportCode = $sessionFlightSearchParams['to'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $intTatalPaxCT = $adultCount + $childCount;
        $getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);
        $intMarkUp = $getCancelCharge = $this->getCancelCharge($intCountryCode, $AgencySysId);
        $tripSeatMapArr = [];
        $BaggageAr = [];
        $Meal = [];
        // echo '<pre>';
        // print_r($getMarkup);
            // die('ddd');
        if ($IsLCC) {
            $Baggage = isset($arrSSR['Response']['Baggage']) ? $arrSSR['Response']['Baggage'] : [];
            $MealDynamic = isset($arrSSR['Response']['MealDynamic']) ? $arrSSR['Response']['MealDynamic'] : [];
            $SeatDynamic = isset($arrSSR['Response']['SeatDynamic']) ? $arrSSR['Response']['SeatDynamic'] : [];
            if ($Baggage) {
                foreach ($Baggage as $b => $bgg) {
                    //$Baggage[] = $bgg;
                    if ($bgg) {
                        foreach ($bgg as $bg) {
                            $BaggageAr[$b][] = array(
                                'AirlineCode' => $bg['AirlineCode'],
                                'FlightNumber' => $bg['FlightNumber'],
                                'key' => $bg['FlightNumber'],
                                'WayType' => $bg['WayType'],
                                'Code' => $bg['Code'],
                                'Description' => $bg['Description'],
                                'Weight' => $bg['Weight'],
                                'Currency' => $bg['Currency'],
                                'Price' => $bg['Price'],
                                'Origin' => $bg['Origin'],
                                'Destination' => $bg['Destination'],
                            );
                        }
                    }
                }
            }
            if ($MealDynamic) {
                foreach ($MealDynamic as $b => $mell) {
                    if ($mell) {
                        foreach ($mell as $ml) {
                            $Meal[$b][] = array(
                                'AirlineCode' => $ml['AirlineCode'],
                                'FlightNumber' => $ml['FlightNumber'],
                                'key' => $ml['FlightNumber'],
                                'WayType' => $ml['WayType'],
                                'Code' => $ml['Code'],
                                'Description' => $ml['Description'],
                                'AirlineDescription' => $ml['AirlineDescription'],
                                'Quantity' => $ml['Quantity'],
                                'Currency' => $ml['Currency'],
                                'Price' => $ml['Price'],
                                'Origin' => $ml['Origin'],
                                'Destination' => $ml['Destination'],
                            );
                        }
                    }
                }
            }
            if ($SeatDynamic) {
                foreach ($SeatDynamic as $stSeg) {
                    $SegmentSeat = $stSeg['SegmentSeat'];
                    if ($SegmentSeat) {
                        foreach ($SegmentSeat as $STKEY => $SG) {
                            $RowSeats = $SG['RowSeats'];
                            $sInfo = [];
                            $R = 1;
                            $segmentid = isset($vl['Segments'][$STKEY]['segmentid']) ? $vl['Segments'][$STKEY]['segmentid'] : 0;
                            // echo '<pre>';
                            // print_r($segmentid);
                            if ($RowSeats) {
                                foreach ($RowSeats as $RK => $RS) {
                                    $Seats = $RS['Seats'];
                                    $C = 1;
                                    if ($Seats) {
                                        foreach ($Seats as $SK => $ST) {
                                            $sInfo[] = array(
                                                'AirlineCode' => $ST['AirlineCode'],
                                                'FlightNumber' => $ST['FlightNumber'],
                                                'CraftType' => $ST['CraftType'],
                                                'Origin' => $ST['Origin'],
                                                'Destination' => $ST['Destination'],
                                                'AvailablityType' => $ST['AvailablityType'],
                                                'isBooked' => ($ST['AvailablityType'] == 3) ? true : false,
                                                'Description' => $ST['Description'],
                                                'Code' => $ST['Code'],
                                                'code' => $ST['Code'],
                                                'RowNo' => $ST['RowNo'],
                                                'SeatNo' => $ST['SeatNo'],
                                                'seatNo' => ($ST['Code'] == 'NoSeat') ? '' : $ST['Code'],
                                                'SeatType' => $ST['SeatType'],
                                                'SeatWayType' => $ST['SeatWayType'],
                                                'Compartment' => $ST['Compartment'],
                                                'Deck' => $ST['Deck'],
                                                'Currency' => $ST['Currency'],
                                                'Price' => $ST['Price'],
                                                'amount' => $ST['Price'],
                                                'Text' => $ST['Text'],
                                                'seatPosition' => ['row' => $R, 'column' => $C],
                                            );
                                            $C++;
                                        }
                                    }
                                    $R++;
                                }
                            }

                            $tripSeatMapArr[$segmentid]['sData'] = array('row' => count($RowSeats), 'column' => 7);
                            $tripSeatMapArr[$segmentid]['sInfo'] = $sInfo;
                        }
                    }
                }
            }
        } else {
            $MealDynamic = isset($arrSSR['Response']['Meal']) ? $arrSSR['Response']['Meal'] : [];
            if ($MealDynamic) {
                foreach ($MealDynamic as $k => $ml) {
                    $Meal[] = array(
                        'Code' => $ml['Code'],
                        'Description' => $ml['Description'],
                        'AirlineDescription' => $ml['Description'],
                        'Currency' => $this->CurrencyTitle,
                        'amount' => 0,
                        'Price' => 0,
                        'key' => $FlightNumber[1],
                    );
                }
            }
        }

        $ResponseStatus = $apiResponse['Response']['ResponseStatus'];
        $ErrorMessage = $apiResponse['Response']['Error']['ErrorMessage'];
        $result = $apiResponse['Response']['Results'];
        $SegmentsArrary = $result['Segments'];
        // echo '<pre>';
        // print_r($apiResponse);
        if ($ResponseStatus == 1) {
            $Currency = $result['Fare']['Currency'];
            $currencySysId = $this->CurrencyId;
            $BaseFare = $result['Fare']['BaseFare'];
            $Tax = $result['Fare']['Tax'];
            $ResultIndex = $result['ResultIndex'];
            $flight_class = trim($sessionFlightSearchParams['flight_class']);
            $preferredFlightClassType = ($flight_class == 1) ? 2 : $flight_class;
            $arrFlightClass = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->getFlightClasses();
            $cabinClass = isset($arrFlightClass[$preferredFlightClassType]) ? $arrFlightClass[$preferredFlightClassType] : 'Economy';

            $MiniFareRules = (isset($result['MiniFareRules']) && !empty($result['MiniFareRules'])) ? $result['MiniFareRules'] : [];
            $MiniFR = [];
            if ($MiniFareRules) {
                foreach ($MiniFareRules as $Minivalue) {
                    if ($Minivalue) {
                        foreach ($Minivalue as $kk => $Mini) {
                            $Type = !empty($Mini['Type']) ? strtoupper($Mini['Type']) : 'NA';
                            if (empty($Mini['To'])) {
                                $TimeFrame = 'from ' . $Mini['From'] . ' ' . $Mini['Unit'] . ' & above before dept';
                            } else {
                                $TimeFrame = 'from ' . $Mini['From'] . ' To ' . $Mini['To'] . ' ' . $Mini['Unit'] . ' before dept';
                            }
                            //$MiniFR[$Type][$kk] = $Mini;
                            $MiniFR[$Type][$kk]['sector'] = $Mini['JourneyPoints'];
                            $MiniFR[$Type][$kk]['amount'] = $Mini['Details'];
                            $MiniFR[$Type][$kk]['additionalFee'] = $getCancelCharge;
                            $MiniFR[$Type][$kk]['TimeFrame'] = $TimeFrame;
                            $MiniFR[$Type][$kk]['policyInfo'] = [];
                        }
                    }
                }
            }
            $tripbinfo = [];
            if ($result['Segments']) {
                foreach ($result['Segments'] as $value) {
                    if ($value) {
                        foreach ($value as $kk => $vls) {
                            $Baggage = $vls['Baggage'];
                            $CabinBaggage = $vls['CabinBaggage'];
                            $SectorsCode = $vls['Origin']['Airport']['AirportCode'] . '-' . $vls['Destination']['Airport']['AirportCode'];
                            $tripbinfo[$SectorsCode]['ADULT'] = ['cabin' => $CabinBaggage, 'checkin' => $Baggage];
                            if (!empty($childCount)) {
                                $tripbinfo[$SectorsCode]['CHILD'] = ['cabin' => $CabinBaggage, 'checkin' => $Baggage];
                            }
                            if (!empty($infantCount)) {
                                $tripbinfo[$SectorsCode]['INFANT'] = ['cabin' => $CabinBaggage, 'checkin' => 'NA'];
                            }
                        }
                    }
                }
            }

            $YQTax = $result['Fare']['YQTax'];
            $AdditionalTxnFeeOfrd = $result['Fare']['AdditionalTxnFeeOfrd'];
            $AdditionalTxnFeePub = $result['Fare']['AdditionalTxnFeePub'];
            $OtherCharges = $result['Fare']['OtherCharges'];
            $Discount = $result['Fare']['Discount'];
            $PublishedFare = $result['Fare']['PublishedFare'];
            $CommissionEarned = $result['Fare']['CommissionEarned'];
            $PLBEarned = $result['Fare']['PLBEarned'];
            $IncentiveEarned = $result['Fare']['IncentiveEarned'];
            $OfferedFare = $result['Fare']['OfferedFare'];
            $TdsOnCommission = $result['Fare']['TdsOnCommission'];
            $TdsOnPLB = $result['Fare']['TdsOnPLB'];
            $TdsOnIncentive = $result['Fare']['TdsOnIncentive'];
            $ServiceFee = $result['Fare']['ServiceFee'];
            //$ResultFareType = $result['ResultFareType'];
            $ResultFareType = !empty($result['FareClassification']['Type']) ? $result['FareClassification']['Type'] : $result['ResultFareType'];
            $FareBreakdown = $result['FareBreakdown'];
            $totalCommissions = $result['Fare']['CommissionEarned'] + $result['Fare']['PLBEarned'] + $result['Fare']['IncentiveEarned'];
            $totalCommissionsOnTds = $result['Fare']['TdsOnCommission'] + $result['Fare']['TdsOnIncentive'] + $result['Fare']['TdsOnPLB'];
            $TotalPassengerCountForDiscount = $adultCount + $childCount;
            $intDiscountPerHead = $totalCommissions / $TotalPassengerCountForDiscount;
            //$intDiscountPerHead = $totalCommissions;
            $markUpArr = array(
                'getMarkup' => $getMarkup,
                'PublishedFare' => $PublishedFare,
                'OfferedFare' => $OfferedFare,
                'intCommissionEarned' => $totalCommissions,
                'TdsOnPLB' => $totalCommissionsOnTds,
                'MUFee' => $ServiceFee,
                'intPLBEarned' => $PLBEarned,
                'intIncentiveEarned' => $IncentiveEarned,
                'intMemberCount' => $intMemberCount,
                'intFlightRoute' => $strFlightRoute,
                'interNationalSearch' => $interNationalSearch,
            );


            $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr,'Review');
            //echo "<pre>"; print_r($arrMarkUps);echo "</pre>";
            $intPublishedFare = $arrMarkUps['PublishFare'];

            $countBreakUp = count($FareBreakdown);
            foreach ($FareBreakdown as $pk => $pax) {
                $intBaseFare = $pax['BaseFare'];
                $intTax = $pax['Tax'];
                $OtherCharges_ = ($OtherCharges / $countBreakUp);
                $intDiscountPerHead_ = ($intDiscountPerHead / $countBreakUp);
                $intBaseFareCal = $intBaseFare - $intDiscountPerHead_;
                $intFareOfferedToPax = $intBaseFareCal + $intTax;
                $intPassengerCount = isset($pax['PassengerCount']) ? $pax['PassengerCount'] : 0;
                $arrFareBreakdown[$pk]['Currency'] = $pax['Currency'];
                $arrFareBreakdown[$pk]['PassengerType'] = $pax['PassengerType'];
                $arrFareBreakdown[$pk]['PassengerCount'] = $pax['PassengerCount'];
                $arrFareBreakdown[$pk]['TaxIN'] = ($pax['Tax']);
                $arrFareBreakdown[$pk]['TotalBaseFare'] = 0;
                $arrFareBreakdown[$pk]['BaseFareCal'] = ($arrMarkUps['BaseFareCal'] / $countBreakUp);
                $arrFareBreakdown[$pk]['BaseFare'] = ($intBaseFareCal);
                $arrFareBreakdown[$pk]['CommissionEarned'] = ($totalCommissions / $countBreakUp);
                $arrFareBreakdown[$pk]['OtherCharges'] = ($OtherCharges_);
                $arrFareBreakdown[$pk]['TDS'] = ($totalCommissionsOnTds / $countBreakUp);
                $arrFareBreakdown[$pk]['MF'] = 0;
                $arrFareBreakdown[$pk]['YQ'] = $pax['YQTax'];
                $arrFareBreakdown[$pk]['AGST'] = 0;
                $arrFareBreakdown[$pk]['MFT'] = 0;
                $arrFareBreakdown[$pk]['OT'] = $pax['Tax'];
                $arrFareBreakdown[$pk]['MU'] = 0;
                $arrFareBreakdown[$pk]['YR'] = 0;
                $arrFareBreakdown[$pk]['intTotalGST'] = ($arrMarkUps['intTotalGST'] / $countBreakUp);
                $arrFareBreakdown[$pk]['apiMarkup'] = ($arrMarkUps['apiMarkup'] / $countBreakUp);
                $arrFareBreakdown[$pk]['IntCommission'] = ($arrMarkUps['IntCommission'] / $countBreakUp);
                $arrFareBreakdown[$pk]['apiTaxOnMarkup'] = ($arrMarkUps['apiTaxOnMarkup'] / $countBreakUp);
                $arrFareBreakdown[$pk]['FixedMarkUp'] = ($arrMarkUps['IntAgencyFixMarkUp'] / $countBreakUp);
                $arrFareBreakdown[$pk]['GSTOnMarkUp'] = ($arrMarkUps['IntTaxOnAgencyFixMarkUp'] / $countBreakUp);
                $arrFareBreakdown[$pk]['CommEarned'] = ($arrMarkUps['IntCommission'] / $countBreakUp);; //($arrMarkUps['intCommisionEarnedForAgency'] / $countBreakUp);
                $arrFareBreakdown[$pk]['GSTonComm'] = 0;
                $arrFareBreakdown[$pk]['intGTXMarkUp'] = ($arrMarkUps['intGTXMarkUp'] / $countBreakUp);
                $arrFareBreakdown[$pk]['GTXMarkUpGST'] = ($arrMarkUps['intSTaxOnGTXMarkUp'] / $countBreakUp);
                $arrFareBreakdown[$pk]['Agencycommission'] = ($arrMarkUps['Agencycommission'] / $countBreakUp);
                $arrFareBreakdown[$pk]['AdditionalTxnFeeOfrd'] = $pax['AdditionalTxnFeeOfrd'];
                $arrFareBreakdown[$pk]['AdditionalTxnFeePub'] = $pax['AdditionalTxnFeePub'];
                $arrFareBreakdown[$pk]['PGCharge'] = 0;
                $arrFareBreakdown[$pk]['Baggage'] = ''; //Check In Baggage;
                $arrFareBreakdown[$pk]['CabinBaggage'] = ''; //Cabin Baggage ;
            }

            $arrFairRules = array(
                "Currency" => $this->CurrencyTitle, //$Currency,
                "CurrencyRate" => $this->CurrencyRate, //$Currency,
                "currencySysId" => $this->CurrencyId,
                "BaseFare" => $BaseFare,
                "Tax" => $Tax,
                "YQTax" => $YQTax,
                "OtherCharges" => $OtherCharges,
                "Discount" => $Discount,
                "ServiceFee" => $ServiceFee,
                "ManagementFeeTax" => 0,
                "AirlineGSTComponent" => 0,
                "CarrierMiscFee" => 0,
                "MUFee" => 0,
                "intPublishedFare" => $PublishedFare,
                "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                "PublishedFareAgent" => ($arrMarkUps['CostToAgentCustomer'] * $this->CurrencyRate),
                "OfferedFareAgent" => ($arrMarkUps['CostToAgent'] * $this->CurrencyRate),
                "OfferedFare" => $arrMarkUps['intOfferedFare'],
                "CommissionEarned" => $CommissionEarned,
                "PLBEarned" => $PLBEarned,
                "IncentiveEarned" => $IncentiveEarned,
                "TdsOnCommission" => $TdsOnCommission,
                "TdsOnPLB" => $TdsOnPLB,
                "TdsOnIncentive" => $TdsOnIncentive,
                "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                "PriceID" => $ResultIndex,
                "ApiResultIndex" => $ResultIndex,
                "IsGSTRequired" => $IsGSTMandatory,
                "fareIdentifier" => $ResultFareType,
                "FareColor" => $FareColor,
                "FareClass" => $cabinClass,
                "intTotalGST" => $arrMarkUps['intTotalGST'],
                "apiMarkup" => $arrMarkUps['apiMarkup'],
                "IntCommission" => $arrMarkUps['IntCommission'],
                "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                "CommEarned" => $arrMarkUps['IntCommission'], //$arrMarkUps['intCommisionEarnedForAgency'],
                "CommEarnedAgent" => $arrMarkUps['AgentB2CEarning'],
                "GSTonComm" => 0,
                "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                "FareBreakdown" => $arrFareBreakdown,
                "arrMarkUps" => $arrMarkUps,
                "tripbinfo" => $tripbinfo,
                "MiniFR" => $MiniFR,
            );
            // echo '<pre>';
            // print_r($getCancelCharge);
            // echo '<pre>';
            // print_r($arrFairRules);
            // die('ddd');
            $vl['FairRules'] = $arrFairRules;

            $IsPassportRequiredAtBook = isset($result['IsPassportRequiredAtBook']) ? $result['IsPassportRequiredAtBook'] : false;
            $IsPassportRequiredAtTicket = isset($result['IsPassportRequiredAtTicket']) ? $result['IsPassportRequiredAtTicket'] : false;
            if ($IsLCC) {
                if ($IsPassportRequiredAtTicket || $interNationalSearch == 1) {
                    $IsPassMandatory = true;
                    $IsPassExpiry = true;
                    $IsPassIssue = false;
                } else {
                    $IsPassMandatory = false;
                    $IsPassExpiry = false;
                    $IsPassIssue = false;
                }
            } else {
                if ($IsPassportRequiredAtBook) {
                    $IsPassMandatory = true;
                    $IsPassExpiry = true;
                    $IsPassIssue = false;
                } else {
                    $IsPassMandatory = false;
                    $IsPassExpiry = false;
                    $IsPassIssue = false;
                }
            }


            $IsPassDateOfBirth = false;
            $isGSTMandatory = isset($result['IsGSTMandatory']) ? $result['IsGSTMandatory'] : false;
            $IsPanRequiredAtBook = isset($result['IsPanRequiredAtBook']) ? $result['IsPanRequiredAtBook'] : false;
            $IsPanRequiredAtTicket = isset($result['IsPanRequiredAtTicket']) ? $result['IsPanRequiredAtTicket'] : false;
            $isSeatApplicable = false;
            $isSessionTime = false;
            $isSessionTime = 0;

            if ($interNationalSearch == 1) {
                $isAdobrMandatory = true;
                $isCdobrMandatory = true;
                $isIdobrMandatory = true;
            } else if ($strAirlineCode == 'I5') {
                $isAdobrMandatory = true;
                $isCdobrMandatory = true;
                $isIdobrMandatory = true;
            } else {
                $isAdobrMandatory = false;
                $isCdobrMandatory = true;
                $isIdobrMandatory = true;
            }
            $vl['ICSourceSysId'] = 3;
            $vl['Ispassengercity'] = true;
            $vl['Ispassengeraddress'] = true;
            $vl['isGSTMandatory'] = $isGSTMandatory;
            $vl['IsPassMandatory'] = $IsPassMandatory;
            $vl['IsPassExpiry'] = $IsPassExpiry;
            $vl['IsPassIssue'] = $IsPassIssue;
            $vl['IsPassDateOfBirth'] = $IsPassDateOfBirth;
            $vl['isAdobrMandatory'] = $isAdobrMandatory;
            $vl['isCdobrMandatory'] = $isCdobrMandatory;
            $vl['isIdobrMandatory'] = $isIdobrMandatory;
            $vl['isSeatApplicable'] = $isSeatApplicable;
            $vl['IsPanRequiredAtTicket'] = $IsPanRequiredAtTicket;
            $vl['IsPanRequiredAtBook'] = $IsPanRequiredAtBook;
            $vl['isSessionTime'] = $isSessionTime . ':00';
            $SegmentsArr = [];
            if ($vl['Segments']) {
                foreach ($vl['Segments'] as $kk => $segment) {
                    $BaggageArrNew = isset($Baggage[$kk]) ? $Baggage[$kk] : [];
                    if ($IsLCC) {
                        $MealArrNew = isset($MealDynamic[$kk]) ? $MealDynamic[$kk] : [];
                    } else {
                        $MealArrNew = isset($Meal) ? $Meal : [];
                    }
                    $SegmentsArr[$kk] = $segment;
                    $SegmentsArr[$kk]['BAGGAGEARRAY'] = $BaggageArrNew;
                    $SegmentsArr[$kk]['MEALARRAY'] = $MealArrNew;
                }
            }
            $vl["Segments"] = $SegmentsArr;


            if (!empty($tripSeatMapArr)) {
                $tripSeatMap['tripSeatMap']['tripSeat'] = $tripSeatMapArr;
                $tripSeatMap['status'] = ['success' => true, 'httpStatus' => 200];
            } else {
                $tripSeatMap['tripSeatMap']['tripSeat'] = [];
                $tripSeatMap['status'] = ['success' => false, 'httpStatus' => 400];
            }
            if ($IsLCC) {
                $SSRArr = array('Meal' => $Meal, 'Baggage' => $BaggageAr, 'SeatPreference' => array());
            } else {
                $Mealwwww[0] = $Meal;
                $SSRArr = array('Meal' => $Mealwwww, 'Baggage' => $BaggageAr, 'SeatPreference' => array());
            }
            $response = array('success' => true, 'BookingData' => $vl, 'SSRArr' => $SSRArr, 'tripSeatMap' => $tripSeatMap, 'SeatDynamic' => ($SeatDynamic), 'SSRArrInb' => []);
            // echo "<pre>";
            // print_r($vl);
            // echo "<pre>";
            return $response;
        } else {
            $response = array('success' => false, 'message' => 'Session is expired. Please try again with new session', 'FareChange' => false, 'html' => '');
            echo json_encode($response);
            exit;
        }
    }
    public function UpdateFlightBookingData($data, $alerts, $SearchTraceId, $sessionFlightSearchParams, $FlightBookingData, $FareRuleRequest)
    {
        error_reporting(1);
        $objAirline = new Travel_Model_TblAirline();
        $arrAirlineList = $objAirline->getAirlineIdsAndCodeList();
        $apiResponse = $data;
        $leadId = $sessionFlightSearchParams['editLeadId'];
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId);
        $AgencySysId = $arrAgencyDetails['AgencySysId'];
        $AgentSysId = $arrAgencyDetails['AgentSysId'];
        //$FlightBookingData = new Zend_Session_Namespace('FlightBookingData');
        $FlightSearchGuard = new Zend_Session_Namespace('FlightSearchGuard');
        $CurrentFlightSearchGuard = new Zend_Session_Namespace('CurrentFlightSearchGuard');
        $FlightSearchResults = new Zend_Session_Namespace('FlightSearchResults');
        $intSourceCityId = ($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = ($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $departureDates     = $sessionFlightSearchParams['departure_dates'];
        $return_dates     = $sessionFlightSearchParams['return_dates'];
        $arrDepartureDates  = explode("/", $departureDates);
        $this->view->departureDates = $strDepatureDate  = $arrDepartureDates[2] . "/" . $arrDepartureDates[1] . "/" . ($arrDepartureDates[0] - 1);

        $arrreturn_dates  = explode("/", $return_dates);
        $this->view->departureDates = $strReturnDate  = $arrreturn_dates[2] . "/" . $arrreturn_dates[1] . "/" . ($arrreturn_dates[0] - 1);

        //$strDepatureDate = $sessionFlightSearchParams['strDepatureDate'];
        //$strReturnDate = !empty($sessionFlightSearchParams['strReturnDate']) ? $sessionFlightSearchParams['strReturnDate'] : '';
        $strSourceAirportCode = $sessionFlightSearchParams['from'];
        $strDestinationAirportCode = $sessionFlightSearchParams['to'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $intTatalPaxCT = $adultCount + $childCount;
        //$getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);
        $intMarkUp = $this->getCancelCharge($intCountryCode, $AgencySysId);

        $B2BType = (int) $sessionFlightSearchParams['B2BType'];
        $CustomerSysId = $sessionFlightSearchParams['CustomerSysId'];
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $UserSysId = $sessionFlightSearchParams['UserSysId'];
       
        $objAgency = new Travel_Model_TblAgency();
        $arrAgencyDetails = $objAgency->getAgencyDataById($AgencySysId);
        $getMarkupB2B = $this->getMarkupB2B($intCountryCode, $CustomerSysId, $B2BType, $UserSysId, $arrAgencyDetails['SecurityKey'], $AgencySysId);
        $getMarkup = $getMarkupB2B;
        $MarketPlaceSysId = isset($getMarkup['arrAgencyMarkups'][0]['MarketPlaceSysId']) ? $getMarkup['arrAgencyMarkups'][0]['MarketPlaceSysId'] : 0;
		$MasterId = isset($getMarkup['arrAgencyMarkups'][0]['MasterId']) ? $getMarkup['arrAgencyMarkups'][0]['MasterId'] : 0;
		if(empty($MasterId) || $MasterId == 0){
			$MarketPlaceSysId = $MarketPlaceSysId;
		}else{
			$MarketPlaceSysId = $MasterId;
		}
        // echo "<pre>";
        // print_r($getMarkup);die;
        $filterData = ['ApiSourceSysId' => 3];
        $AdditionalMarkup = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getMarketPlace($MarketPlaceSysId,$filterData, $arrAgencyDetails['SecurityKey']);
        
        $strTraceId = !empty($apiResponse['TraceId']) ? $apiResponse['TraceId'] : '';
        $localFromDateTime = date("Y-m-d h:i", strtotime($strDepatureDate));
        $localToDateTime = date("Y-m-d h:i", strtotime($strReturnDate));
        $arrCommonInsVariables = array(
            'strTraceId' => $strTraceId,
            'localFromDateTime' => $localFromDateTime,
            'localToDateTime' => $localToDateTime,
            'strSourceAirportCode' => $strSourceAirportCode,
            'strDestinationAirportCode' => $strDestinationAirportCode,
            'intMemberCount' => $intMemberCount,
            'intSourceCityId' => $intSourceCityId,
            'intDestinationCityId' => $intDestinationCityId,
            'JourneyType' => 2, // For Round Trips API Search
            'TripType' => $strFlightRoute,
            'interNationalSearch' => isset($interNationalSearch) ? $interNationalSearch : 0
        );
        $strTraceId         = $arrCommonInsVariables['strTraceId'];
        $localFromDateTime  = $arrCommonInsVariables['localFromDateTime'];
        $localToDateTime    = $arrCommonInsVariables['localToDateTime'];

        $strSourceAirportCode    = $arrCommonInsVariables['strSourceAirportCode'];
        $strDestinationAirportCode    = $arrCommonInsVariables['strDestinationAirportCode'];
        $intMemberCount    = $arrCommonInsVariables['intMemberCount'];
        $intSourceCityId    = $arrCommonInsVariables['intSourceCityId'];
        $intDestinationCityId    = $arrCommonInsVariables['intDestinationCityId'];
        $intJourneyType    = $arrCommonInsVariables['JourneyType'];
        $intTripType    = $arrCommonInsVariables['TripType'];
        $interNationalSearch    = isset($arrCommonInsVariables['interNationalSearch']) ? $arrCommonInsVariables['interNationalSearch'] : '0';
        $intTripType = $strFlightRoute;
        $arrInsertFlightData = [];
        $BaggageArr = [];
        $MealArr = [];
        $bookingId = $data['bookingId'];
        $alerts = isset($data['alerts']) ? $data['alerts'] : [];
        $IsPassMandatory = isset($data['conditions']['pcs']['pm']) ? $data['conditions']['pcs']['pm'] : false;
        $IsPassExpiry = isset($data['conditions']['pcs']['pped']) ? $data['conditions']['pcs']['pped'] : false;
        $IsPassIssue = isset($data['conditions']['pcs']['pid']) ? $data['conditions']['pcs']['pid'] : false;
        $IsPassDateOfBirth = isset($data['conditions']['pcs']['dobe']) ? $data['conditions']['pcs']['dobe'] : false;
        $isGSTMandatory = isset($data['conditions']['gst']['igm']) ? $data['conditions']['gst']['igm'] : false;
        $isSeatApplicable = isset($data['conditions']['isa']) ? $data['conditions']['isa'] : false;
        $isSessionTime = isset($data['conditions']['st']) ? $data['conditions']['st'] : false;
        $isSessionTime = floor(($isSessionTime / 60) % 60);

        $isAdobrMandatory = isset($data['conditions']['dob']['adobr']) ? $data['conditions']['dob']['adobr'] : false;
        $isCdobrMandatory = isset($data['conditions']['dob']['cdobr']) ? $data['conditions']['dob']['cdobr'] : false;
        $isIdobrMandatory = isset($data['conditions']['dob']['idobr']) ? $data['conditions']['dob']['idobr'] : false;

        $arrInsertFlightBookingData = [];

        // echo '<pre>';
        // print_r($isSeatApplicable);
        // print_r($data['conditions']);
        // echo '</pre>';
        // die('kkk');
        if ($data['tripInfos']) {
            $TempArr['onward'] = $data['tripInfos'][0];
            $TempArr['return'] = $data['tripInfos'][1];
            $totalPriceListArr = array_merge($TempArr['onward']['totalPriceList'], isset($TempArr['return']['totalPriceList'])?$TempArr['return']['totalPriceList']:[]);
            foreach ($data['tripInfos'] as $key => $result) {
                if ($key == 0) {
                    $intJourneyType = 1;
                } else {
                    $intJourneyType = 2;
                }
                $BookingData = $FlightBookingData[$key];
                $alertsFare = isset($alerts[$key]) ? $alerts[$key] : [];

                $SegmentInformation = $result['sI'];
                $totalPriceList = current($result['totalPriceList']);
                $IsRefundable = $totalPriceList['fd']['ADULT']['rT'];
                $NoOfSeatAvailable = $totalPriceList['fd']['ADULT']['sR'];
                $strFareClass = $totalPriceList['fd']['ADULT']['cB'];
                $IsMealIncludes = $totalPriceList['fd']['ADULT']['mI'];
                $bagInfo = $totalPriceList['fd']['ADULT']['bI']['iB'];
                $strTraceId = $BookingData['FairRules']['PriceID'];
                $ResultIndex = $BookingData['FairRules']['PriceID'];
                $ExtraMarkup = $BookingData['FairRules']['ExtraMarkup'];
                $ExtraMarkupOnGST = $BookingData['FairRules']['ExtraMarkupOnGST'];
                $DiscountValue = $BookingData['FairRules']['DiscountValue'];
                $TotalExtraMarkUp = ($ExtraMarkup + $ExtraMarkupOnGST);
                if (!empty($bagInfo)) {
                    $IsBagIncludes = true;
                } else {
                    $IsBagIncludes = false;
                }
                if ($IsRefundable == 0) {
                    $IsRefundableTxt = 'Non Refundable';
                } elseif ($IsRefundable == 1) {
                    $IsRefundableTxt = 'Refundable';
                } else {
                    $IsRefundableTxt = 'Partial Refundable';
                }
                $OriginSegments = current($SegmentInformation);
                $DestinationSegments = end($SegmentInformation);
                $AirlineCode = $OriginSegments['fD']['aI']['code'];
                $arrSegments = [];
                $FlyingMinutes = 0;
                $TotalLAYOVERMinutes = 0;
                $LAYOVERCityArr = [];
                $PublishedFare = 0;
                $BaseFare = 0;
                $Tax = 0;
                $YQTax = 0;
                $OtherCharges = 0;
                $ServiceFee = 0;
                $newFare = isset($alertsFare['newFare']) ? $alertsFare['newFare'] : 0;
                $oldFare = isset($alertsFare['oldFare']) ? $alertsFare['oldFare'] : 0;
                $FareBreakdown = [];
                $FairRulesArr = [];
                if ($result['totalPriceList']) {
                    foreach ($result['totalPriceList'] as $kp => $price) {
                        $fareDetail = $price['fd'];

                        // echo '<pre>';
                        // print_r($fareDetail);
                        // echo '</pre>';
                        $SeatAvailable = $fareDetail['ADULT']['sR'];
                        $classOfBooking = $fareDetail['ADULT']['cB'];
                        $Refundable = $fareDetail['ADULT']['rT'];
                        $PriceID = $price['id'];
                        $fareIdentifier = $price['fareIdentifier'];
                        $AddMarkup = isset($AdditionalMarkup['finalArr'][$fareIdentifier]) ? $AdditionalMarkup['finalArr'][$fareIdentifier] : [];
                        $fareremarks = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['remarks']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['remarks'] : '';
                        $fareIdentifier = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier'] : '';
                        $colors = !empty($AddMarkup['color']) ? $AddMarkup['color'] : '#000000';
                        $MarkUpValue = isset($AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue']) ? $AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue'] : 0;
                        $AddMarkup['markup_b2c'] = ($AddMarkup['markup_b2c'] + $MarkUpValue);
                        
                        if (empty($fareIdentifier)) {
                            $fareIdentifier = $price['fareIdentifier'];
                        }
                        if ($price['fareIdentifier'] == 'SME') {
                            $IsGSTRequired = true;
                        } else {
                            $IsGSTRequired = false;
                        }
                        if ($Refundable == 0) {
                            $IsRefundableTxt = 'Non Refundable';
                        } elseif ($Refundable == 1) {
                            $IsRefundableTxt = 'Refundable';
                        } else {
                            $IsRefundableTxt = 'Partial Refundable';
                        }
                        $ADULT = $fareDetail['ADULT']['fC']; //fare Components
                        $CHILD = isset($fareDetail['CHILD']['fC']) ? $fareDetail['CHILD']['fC'] : []; //fare Components
                        $INFANT = isset($fareDetail['INFANT']['fC']) ? $fareDetail['INFANT']['fC'] : []; //fare Components
                        // echo '<pre>';
                        // print_r(($fareDetail));
                        // echo '</pre>';
                        $ADULTafC = $fareDetail['ADULT']['afC']['TAF']; //additional fareComponents
                        $CHILDafC = isset($fareDetail['CHILD']['afC']['TAF']) ? $fareDetail['CHILD']['afC']['TAF'] : []; //additional fareComponents
                        $INFANTafC = isset($fareDetail['INFANT']['afC']['TAF']) ? $fareDetail['INFANT']['afC']['TAF'] : []; //additional fareComponents

                        $ADULTNCMTDS = isset($fareDetail['ADULT']['afC']['NCM']['TDS']) ? $fareDetail['ADULT']['afC']['NCM']['TDS'] : 0; //TDS
                        $CHILDNCMTDS = isset($fareDetail['CHILD']['afC']['NCM']['TDS']) ? $fareDetail['CHILD']['afC']['NCM']['TDS'] : 0; //TDS
                        $INFANTNCMTDS = isset($fareDetail['INFANT']['afC']['NCM']['TDS']) ? $fareDetail['INFANT']['afC']['NCM']['TDS'] : 0; //TDS

                        $ADULTNCMTOT = isset($fareDetail['ADULT']['afC']['NCM']['OT']) ? $fareDetail['ADULT']['afC']['NCM']['OT'] : 0; //- Gross Commission
                        $CHILDNCMTOT = isset($fareDetail['CHILD']['afC']['NCM']['OT']) ? $fareDetail['CHILD']['afC']['NCM']['OT'] : 0; //- Gross Commission
                        $INFANTNCMTOT = isset($fareDetail['INFANT']['afC']['NCM']['OT']) ? $fareDetail['INFANT']['afC']['NCM']['OT'] : 0; //- Gross Commission

                        $AD_MF = isset($ADULTafC['MF']) ? $ADULTafC['MF'] : 0; //Management Fee
                        $AD_YQ = isset($ADULTafC['YQ']) ? $ADULTafC['YQ'] : 0; //Fuel Surcharge
                        $AD_AGST = isset($ADULTafC['AGST']) ? $ADULTafC['AGST'] : 0; //Airline GST Component
                        $AD_MFT = isset($ADULTafC['MFT']) ? $ADULTafC['MFT'] : 0; //Management Fee Tax
                        $AD_OT = isset($ADULTafC['OT']) ? $ADULTafC['OT'] : 0; //Other Charges
                        $AD_MU = isset($ADULTafC['MU']) ? $ADULTafC['MU'] : 0; //markup
                        $AD_YR = isset($ADULTafC['YR']) ? $ADULTafC['YR'] : 0; //Carrier Misc Fee

                        $CH_MF = isset($CHILDafC['MF']) ? $CHILDafC['MF'] : 0; //Management Fee
                        $CH_YQ = isset($CHILDafC['YQ']) ? $CHILDafC['YQ'] : 0; //Fuel Surcharge
                        $CH_AGST = isset($CHILDafC['AGST']) ? $CHILDafC['AGST'] : 0; //Airline GST Component
                        $CH_MFT = isset($CHILDafC['MFT']) ? $CHILDafC['MFT'] : 0; //Management Fee Tax
                        $CH_OT = isset($CHILDafC['OT']) ? $CHILDafC['OT'] : 0; //Other Charges
                        $CH_MU = isset($CHILDafC['MU']) ? $CHILDafC['MU'] : 0; //markup
                        $CH_YR = isset($CHILDafC['YR']) ? $CHILDafC['YR'] : 0; //Carrier Misc Fee

                        $IN_MF = isset($INFANTafC['MF']) ? $INFANTafC['MF'] : 0; //Management Fee
                        $IN_YQ = isset($INFANTafC['YQ']) ? $INFANTafC['YQ'] : 0; //Fuel Surcharge
                        $IN_AGST = isset($INFANTafC['AGST']) ? $INFANTafC['AGST'] : 0; //Airline GST Component
                        $IN_MFT = isset($INFANTafC['MFT']) ? $INFANTafC['MFT'] : 0; //Management Fee Tax
                        $IN_OT = isset($INFANTafC['OT']) ? $INFANTafC['OT'] : 0; //Other Charges
                        $IN_MU = isset($INFANTafC['MU']) ? $INFANTafC['MU'] : 0; //markup
                        $IN_YR = isset($INFANTafC['YR']) ? $INFANTafC['YR'] : 0; //Carrier Misc Fee

                        if ($kp == 0) {
                            $PublishedFare += (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                            $BaseFare += (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                            $Tax += (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                        }

                        $PublishedFareIN = (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                        $BaseFareIN = (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                        $TaxIN = (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                        $NetFare = (($ADULT['NF'] * $adultCount) + ($CHILD['NF'] * $childCount) + ($INFANT['NF'] * $infantCount)); //Taxes and Fees
                        $NetCommission = (($ADULT['NCM'] * $adultCount) + ($CHILD['NCM'] * $childCount) + ($INFANT['NCM'] * $infantCount)); //Taxes and Fees
                        //echo '<pre>';print_r(($ADULTafC));echo '</pre>';
                        $YQTax = (($AD_YQ * $adultCount) + ($CH_YQ * $childCount) + ($IN_YQ * $infantCount));
                        $OtherCharges = (($AD_OT * $adultCount) + ($CH_OT * $childCount) + ($IN_OT * $infantCount));
                        $ServiceFee = (($AD_MF * $adultCount) + ($CH_MF * $childCount) + ($IN_MF * $infantCount));
                        $ManagementFeeTax = (($AD_MFT * $adultCount) + ($CH_MFT * $childCount) + ($IN_MFT * $infantCount));
                        $AirlineGSTComponent = (($AD_AGST * $adultCount) + ($CH_AGST * $childCount) + ($IN_AGST * $infantCount));
                        $CarrierMiscFee = (($AD_YR * $adultCount) + ($CH_YR * $childCount) + ($IN_YR * $infantCount));
                        $MUFee = (($AD_MU * $adultCount) + ($CH_MU * $childCount) + ($IN_MU * $infantCount));
                        $TdsOnPLB = (($ADULTNCMTDS * $adultCount) + ($CHILDNCMTDS * $childCount) + ($INFANTNCMTDS * $infantCount));
                        //$NetCommission = (($ADULTNCMTOT * $adultCount) + ($CHILDNCMTOT * $childCount) + ($INFANTNCMTOT * $infantCount));

                        $PublishedFare = $PublishedFareIN;
                        $CommissionEarned = $NetCommission;
                        $PLBEarned = 0; //$result['Fare']['PLBEarned'];
                        $IncentiveEarned = 0; //$result['Fare']['IncentiveEarned'];
                        $OfferedFare = $NetFare;
                        $TdsOnPLBCal = isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0;
                        $markUpArr = array(
                            'getMarkup' => $getMarkup,
                            'PublishedFare' => $PublishedFare,
                            'OfferedFare' => ($OfferedFare - $TdsOnPLBCal),
                            'intCommissionEarned' => $CommissionEarned,
                            'TdsOnPLB' => $TdsOnPLB,
                            'MUFee' => $MUFee,
                            'intPLBEarned' => $PLBEarned,
                            'intIncentiveEarned' => $IncentiveEarned,
                            'intMemberCount' => $intMemberCount,
                            'intFlightRoute' => $strFlightRoute,
                            'interNationalSearch' => $interNationalSearch,
                            'AddMarkup' => $AddMarkup,
                        );
                        
                        $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr, 'Review');
                        // echo '<pre>';
                        // print_r(($arrMarkUps));
                        // echo '</pre>';
                        $TdsOnPLBCal = isset($ADULTNCMTDS) ? str_replace('-', '', $ADULTNCMTDS) : 0;
                        $markUpArrBR = array(
                            'getMarkup' => $getMarkup,
                            'PublishedFare' => ($ADULT['TF'] * $adultCount),
                            'OfferedFare' => (($ADULT['NF'] - $TdsOnPLBCal) * $adultCount),
                            'intCommissionEarned' => ($ADULT['NCM'] * $adultCount),
                            'TdsOnPLB' => ($ADULTNCMTDS * $adultCount),
                            'MUFee' => ($AD_MU * $adultCount),
                            'intPLBEarned' => $PLBEarned,
                            'intIncentiveEarned' => $IncentiveEarned,
                            'intMemberCount' => $adultCount,
                            'intFlightRoute' => $strFlightRoute,
                            'interNationalSearch' => $interNationalSearch,
                            'AddMarkup' => $AddMarkup,
                        );
                        $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR, 'Review');


                        $FareBreakdown[0]['Currency'] = 'INR';
                        $FareBreakdown[0]['PassengerType'] = 1;
                        $FareBreakdown[0]['PassengerCount'] = $adultCount;
                        $FareBreakdown[0]['TaxIN'] = ($ADULT['TAF'] * $adultCount);
                        $FareBreakdown[0]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                        $FareBreakdown[0]['TotalBaseFare'] = ($ADULT['TF'] * $adultCount);
                        $FareBreakdown[0]['BaseFare'] = ($ADULT['BF'] * $adultCount);
                        $FareBreakdown[0]['CommissionEarned'] = ($ADULT['NCM'] * $adultCount);
                        $FareBreakdown[0]['TDS'] = ($ADULTNCMTDS * $adultCount);
                        $FareBreakdown[0]['MF'] = ($AD_MF * $adultCount);
                        $FareBreakdown[0]['YQ'] = ($AD_YQ * $adultCount);
                        $FareBreakdown[0]['AGST'] = ($AD_AGST * $adultCount);
                        $FareBreakdown[0]['MFT'] = ($AD_MFT * $adultCount);
                        $FareBreakdown[0]['OT'] = ($AD_OT * $adultCount);
                        $FareBreakdown[0]['MU'] = ($AD_MU * $adultCount);
                        $FareBreakdown[0]['YR'] = ($AD_YR * $adultCount);
                        $FareBreakdown[0]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                        $FareBreakdown[0]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                        $FareBreakdown[0]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                        $FareBreakdown[0]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                        $FareBreakdown[0]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                        $FareBreakdown[0]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                        $FareBreakdown[0]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                        $FareBreakdown[0]['GSTonComm'] = 0;
                        $FareBreakdown[0]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                        $FareBreakdown[0]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                        $FareBreakdown[0]['AdditionalTxnFeeOfrd'] = 0;
                        $FareBreakdown[0]['AdditionalTxnFeePub'] = 0;
                        $FareBreakdown[0]['PGCharge'] = 0;
                        $FareBreakdown[0]['Baggage'] = isset($fareDetail['ADULT']['bI']['iB']) ? $fareDetail['ADULT']['bI']['iB'] : []; //Check In Baggage;
                        $FareBreakdown[0]['CabinBaggage'] = isset($fareDetail['ADULT']['bI']['cB']) ? $fareDetail['ADULT']['bI']['cB'] : []; //Cabin Baggage ;
                        if (isset($fareDetail['CHILD'])) {
                            $TdsOnPLBCal = isset($CHILDNCMTDS) ? str_replace('-', '', $CHILDNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($CHILD['TF'] * $childCount),
                                'OfferedFare' => (($CHILD['NF'] - $TdsOnPLBCal) * $childCount),
                                'intCommissionEarned' => ($CHILD['NCM'] * $childCount),
                                'TdsOnPLB' => ($CHILDNCMTDS * $childCount),
                                'MUFee' => ($CH_MU * $childCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $childCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR, 'Review');
                            $FareBreakdown[1]['Currency'] = 'INR';
                            $FareBreakdown[1]['PassengerType'] = 2;
                            $FareBreakdown[1]['PassengerCount'] = $childCount;
                            $FareBreakdown[1]['TaxIN'] = ($CHILD['TAF'] * $childCount);
                            $FareBreakdown[1]['TotalBaseFare'] = ($CHILD['TF'] * $childCount);
                            $FareBreakdown[1]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[1]['BaseFare'] = ($CHILD['BF'] * $childCount);
                            $FareBreakdown[1]['CommissionEarned'] = ($CHILD['NCM'] * $childCount);
                            $FareBreakdown[1]['TDS'] = ($CHILDNCMTDS * $childCount);
                            $FareBreakdown[1]['MF'] = ($CH_MF * $childCount);
                            $FareBreakdown[1]['YQ'] = ($CH_YQ * $childCount);
                            $FareBreakdown[1]['AGST'] = ($CH_AGST * $childCount);
                            $FareBreakdown[1]['MFT'] = ($CH_MFT * $childCount);
                            $FareBreakdown[1]['OT'] = ($CH_OT * $childCount);
                            $FareBreakdown[1]['MU'] = ($CH_MU * $childCount);
                            $FareBreakdown[1]['YR'] = ($CH_YR * $childCount);
                            $FareBreakdown[1]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[1]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[1]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[1]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[1]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[1]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[1]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[1]['GSTonComm'] = 0;
                            $FareBreakdown[1]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[1]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[1]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[1]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[1]['PGCharge'] = 0;
                            $FareBreakdown[1]['Baggage'] = isset($fareDetail['CHILD']['bI']['iB']) ? $fareDetail['CHILD']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[1]['CabinBaggage'] = isset($fareDetail['CHILD']['bI']['cB']) ? $fareDetail['CHILD']['bI']['cB'] : []; //Cabin Baggage ;
                        }
                        if (isset($fareDetail['INFANT'])) {
                            $TdsOnPLBCal = isset($INFANTNCMTDS) ? str_replace('-', '', $INFANTNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($INFANT['TF'] * $infantCount),
                                'OfferedFare' => (($INFANT['NF'] - $TdsOnPLBCal) * $infantCount),
                                'intCommissionEarned' => ($INFANT['NCM'] * $infantCount),
                                'TdsOnPLB' => ($INFANTNCMTDS * $infantCount),
                                'MUFee' => ($IN_MU * $infantCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $infantCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR, 'Review');
                            $FareBreakdown[2]['Currency'] = 'INR';
                            $FareBreakdown[2]['PassengerType'] = 3;
                            $FareBreakdown[2]['PassengerCount'] = $infantCount;
                            $FareBreakdown[2]['TaxIN'] = ($INFANT['TAF'] * $infantCount);
                            $FareBreakdown[2]['TotalBaseFare'] = ($INFANT['TF'] * $infantCount);
                            $FareBreakdown[2]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[2]['BaseFare'] = ($INFANT['BF'] * $infantCount);
                            $FareBreakdown[2]['CommissionEarned'] = ($INFANT['NCM'] * $infantCount);
                            $FareBreakdown[2]['TDS'] = ($INFANTNCMTDS * $infantCount);
                            $FareBreakdown[2]['MF'] = ($IN_MF * $infantCount);
                            $FareBreakdown[2]['YQ'] = ($IN_YQ * $infantCount);
                            $FareBreakdown[2]['AGST'] = ($IN_AGST * $infantCount);
                            $FareBreakdown[2]['OT'] = ($IN_OT * $infantCount);
                            $FareBreakdown[2]['MFT'] = ($IN_MFT * $infantCount);
                            $FareBreakdown[2]['MU'] = ($IN_MU * $infantCount);
                            $FareBreakdown[2]['YR'] = ($IN_YR * $infantCount);
                            $FareBreakdown[2]['intTotalGST'] = $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[2]['apiMarkup'] = $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[2]['IntCommission'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[2]['apiTaxOnMarkup'] = $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[2]['FixedMarkUp'] = $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[2]['GSTOnMarkUp'] = $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[2]['CommEarned'] = $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[2]['GSTonComm'] = 0;
                            $FareBreakdown[2]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[2]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[2]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[2]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[2]['PGCharge'] = 0;
                            $FareBreakdown[2]['Baggage'] = isset($fareDetail['INFANT']['bI']['iB']) ? $fareDetail['INFANT']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[2]['CabinBaggage'] = isset($fareDetail['INFANT']['bI']['cB']) ? $fareDetail['INFANT']['bI']['cB'] : []; //Cabin Baggage ;
                        }
                        //echo '<pre>';print_r($price);

                        $FareBreakdownArr = [];
                        $segmentCount = count($FareBreakdown);
                        if ($FareBreakdown) {
                            foreach ($FareBreakdown as $sg => $seg) {
                                $FareBreakdownArr[$sg] = $seg;
                                $FareBreakdownArr[$sg]['ExtraMarkup'] = ($ExtraMarkup / $segmentCount);
                                $FareBreakdownArr[$sg]['ExtraMarkupOnGST'] = ($ExtraMarkupOnGST / $segmentCount);
                                $FareBreakdownArr[$sg]['DiscountValue'] = ($DiscountValue / $segmentCount);
                                $FareBreakdownArr[$sg]['DiscountCoupon'] = ($DiscountValue > 0) ? 1 : 0;
                            }
                        }
                        $FairRulesArr = array(
                            "Currency" => $this->CurrencyTitle, //$Currency,
                            "CurrencyRate" => $this->CurrencyRate, //$Currency,
                            "currencySysId" => $this->CurrencyId,
                            "BaseFare" => $BaseFareIN,
                            "Tax" => $TaxIN,
                            "YQTax" => $YQTax,
                            "OtherCharges" => $OtherCharges,
                            "Discount" => 0, //$Discount,
                            "ServiceFee" => $ServiceFee,
                            "ManagementFeeTax" => $ManagementFeeTax,
                            "AirlineGSTComponent" => $AirlineGSTComponent,
                            "CarrierMiscFee" => $CarrierMiscFee,
                            "MUFee" => $MUFee,
                            "intPublishedFare" => $PublishedFareIN,
                            "PublishedFare" => (($arrMarkUps['PublishFare'] + $TotalExtraMarkUp) * $this->CurrencyRate),
                            "OfferedFare" => $arrMarkUps['intOfferedFare'],
                            "PLBEarned" => $PLBEarned,
                            "IncentiveEarned" => $IncentiveEarned,
                            "TdsOnPLB" => $TdsOnPLB,
                            "TdsOnIncentive" => 0,
                            "AdditionalTxnFeeOfrd" => 0,
                            "AdditionalTxnFeePub" => 0,
                            "Refundable" => $Refundable,
                            "IsRefundableTxt" => $IsRefundableTxt,
                            "PriceID" => $PriceID,
                            "IsGSTRequired" => $IsGSTRequired,
                            "fareIdentifier" => str_replace('_', ' ', $fareIdentifier),
                            "SeatAvailable" => $SeatAvailable,
                            "classOfBooking" => $classOfBooking,
                            "newFare" => $newFare,
                            "oldFare" => $oldFare,
                            "FareClass" => $fareDetail['ADULT']['cc'],
                            "intTotalGST" => $arrMarkUps['intTotalGST'],
                            "apiMarkup" => $arrMarkUps['apiMarkup'],
                            "IntCommission" => $arrMarkUps['IntCommission'],
                            "apiTaxOnMarkup" => $arrMarkUps['apiTaxOnMarkup'],
                            "FixedMarkUp" => $arrMarkUps['IntAgencyFixMarkUp'],
                            "GSTOnMarkUp" => $arrMarkUps['IntTaxOnAgencyFixMarkUp'],
                            "CommEarned" => $arrMarkUps['IntCommission'],
                            "GSTonComm" => 0,
                            "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                            "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                            "ExtraMarkup" => $ExtraMarkup,
                            "ExtraMarkupOnGST" => $ExtraMarkupOnGST,
                            "DiscountValue" => $DiscountValue,
                            "FareBreakdown" => $FareBreakdownArr,
                            // "FareBreakdown" => $FareBreakdown,
                        );
                        // echo '<pre>';
                        // print_r($arrMarkUps);
                        // echo '</pre>';
                        // echo '<pre>';
                        // print_r($FairRulesArr);
                        // echo '</pre>';
                    }
                }

                $BAGGAGE = isset($OriginSegments['ssrInfo']['BAGGAGE']) ? $OriginSegments['ssrInfo']['BAGGAGE'] : '';
                $MEAL = isset($OriginSegments['ssrInfo']['MEAL']) ? $OriginSegments['ssrInfo']['MEAL'] : '';
                if ($BAGGAGE) {
                    foreach ($BAGGAGE as $b => $bag) {
                        $Weight = str_replace('Excess Baggage - ', '', $bag['desc']);
                        $BaggageArr[$b]['Currency'] = 'INR';
                        $BaggageArr[$b]['key'] = $OriginSegments['id'];
                        $BaggageArr[$b]['Code'] = $bag['code'];
                        $BaggageArr[$b]['Price'] = isset($bag['amount']) ? $bag['amount'] : 0;
                        $BaggageArr[$b]['Weight'] = $Weight;
                    }
                }
                if ($MEAL) {
                    foreach ($MEAL as $m => $meals) {
                        $MealArr[$m]['Currency'] = 'INR';
                        $MealArr[$m]['key'] = $OriginSegments['id'];
                        $MealArr[$m]['Code'] = $meals['code'];
                        $MealArr[$m]['Price'] = isset($meals['amount']) ? $meals['amount'] : 0;
                        $MealArr[$m]['Description'] = $meals['desc'];
                    }
                }

                if ($SegmentInformation) {
                    foreach ($SegmentInformation as $k => $segments) {
                        //echo '<pre>';print_r($segments);
                        $BAGGAGEARRAY = isset($segments['ssrInfo']['BAGGAGE']) ? $segments['ssrInfo']['BAGGAGE'] : '';
                        $MEALARRAY = isset($segments['ssrInfo']['MEAL']) ? $segments['ssrInfo']['MEAL'] : '';
                        $MealArrNew = [];
                        $BaggageArrNew = [];
                        if ($MEALARRAY) {
                            foreach ($MEALARRAY as $m => $meals) {
                                $MealArrNew[$m]['Currency'] = $this->CurrencyTitle;
                                $MealArrNew[$m]['key'] = $segments['id'];
                                $MealArrNew[$m]['Code'] = $meals['code'];
                                $MealArrNew[$m]['Price'] = isset($meals['amount']) ? $meals['amount'] : 0;
                                $MealArrNew[$m]['Description'] = $meals['desc'];
                            }
                        }
                        if ($BAGGAGEARRAY) {
                            foreach ($BAGGAGEARRAY as $b => $bag) {
                                $Weight = str_replace('Excess Baggage - ', '', $bag['desc']);
                                $BaggageArrNew[$b]['Currency'] = $this->CurrencyTitle;
                                $BaggageArrNew[$b]['key'] = $segments['id'];
                                $BaggageArrNew[$b]['Code'] = $bag['code'];
                                $BaggageArrNew[$b]['Price'] = isset($bag['amount']) ? $bag['amount'] : 0;
                                $BaggageArrNew[$b]['Weight'] = $Weight;
                            }
                        }
                        $duration = $segments['duration'];
                        $LAYOVERMinutes = $GroundTime = isset($segments['cT']) ? $segments['cT'] : 0;
                        $LAYOVERCity = $LAYOVERCityArr[] = isset($segments['cT']) ? $segments['aa']['city'] : '';
                        $FlyingMinutes += ($duration + $LAYOVERMinutes);
                        $TotalLAYOVERMinutes += $LAYOVERMinutes;

                        $FareClass = $totalPriceList['fd']['ADULT']['cB'];
                        $strBaggage = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                        $strCabinBaggage = $totalPriceList['fd']['ADULT']['bI']['cB']; ////Cabin Baggage
                        if (!empty($strCabinBaggage)) {
                            $IsBaggage = true;
                        } else {
                            $IsBaggage = false;
                        }

                        $AirlineCode = $segments['fD']['aI']['code'];
                        $AirlineName = $segments['fD']['aI']['name'];
                        $FlightNumber = $segments['fD']['fN'];
                        $SegFlightNumber = $AirlineCode . "-" . $FlightNumber;

                        $originAirportName = $segments['da']['name'];
                        $originAirportCode = $segments['da']['code'];
                        $originCityName = $segments['da']['city'];
                        $originCountryName = $segments['da']['country'];
                        $originDepTime = $segments['dt'];

                        $destinationAirportName = $segments['aa']['name'];
                        $destinationAirportCode = $segments['aa']['code'];
                        $destinationCityName = $segments['aa']['city'];
                        $destinationCountryName = $segments['aa']['country'];
                        $destinationArrTime = $segments['at'];

                        $DepTerminal = isset($segments['da']['terminal']) ? $segments['da']['terminal'] : '';
                        $ArrTerminal = isset($segments['aa']['terminal']) ? $segments['aa']['terminal'] : '';

                        $filePath = $this->getflightlogo($AirlineCode);

                        $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->MinutesToHours($LAYOVERMinutes);

                        $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($destinationArrTime);
                        $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($originDepTime);
                        $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($duration);
                        $arrSegments[] = array(
                            "segmentid" => $segments['id'],
                            "originAirportName" => $originAirportName,
                            "destinationAirportName" => $destinationAirportName,
                            "originCityName" => $originCityName,
                            "originCountryName" => $originCountryName,
                            "destinationCityName" => $destinationCityName,
                            "destinationCountryName" => $destinationCountryName,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationArrTime" => $destinationArrTime,
                            "SegFlightNumber" => $SegFlightNumber,
                            "AirlineCode" => $AirlineCode,
                            "AirlineName" => $AirlineName,
                            "FareClass" => $FareClass,
                            "originAirportCode" => $originAirportCode,
                            "originDepTime" => $originDepTime,
                            "TripIndicator" => ($k + 1),
                            "Baggage" => $strBaggage,
                            "CabinBaggage" => $strCabinBaggage,
                            "IsBaggage" => $IsBaggage,
                            "IsMealIncludes" => $IsMealIncludes,
                            "SegmentIndicator" => ($k + 1),
                            "Duration" => $duration,
                            "GroundTime" => $GroundTime,
                            "NoOfSeatAvailable" => $NoOfSeatAvailable,
                            "strDepartureDtTime" => $strDepartureDtTime,
                            "strArrivalDtTime" => $strArrivalDtTime,
                            "FlightDuration" => $strDuration,
                            "LAYOVERDuration" => $LAYOVERDuration,
                            "LAYOVERCity" => $LAYOVERCity,
                            "DepTerminal" => $DepTerminal,
                            "ArrTerminal" => $ArrTerminal,
                            "filePath" => $filePath,
                            "BAGGAGEARRAY" => $BaggageArrNew,
                            "MEALARRAY" => $MealArrNew,
                            "SegmentNumber" => $segments['sN'],
                            "isReturnSegment" => $segments['isRs'],
                        );
                    }
                }
                $flightSSRDetails = new Zend_Session_Namespace('flightSSRDetails');
                $flightSSRDetails->params['Baggage'] = $BaggageArr;
                $flightSSRDetails->params['Meal'] = $MealArr;

                $LAYOVERTime = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->MinutesToHours($TotalLAYOVERMinutes);

                $AirlineCode = $OriginSegments['fD']['aI']['code'];
                $FlightNumber = $OriginSegments['fD']['fN'];
                $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                $strAirlineName = $OriginSegments['fD']['aI']['name'];
                $IsLCC = $OriginSegments['fD']['aI']['isLcc'];
                $strSourceAirportCode = $OriginSegments['da']['code'];
                $strDestinationAirportCode = $DestinationSegments['aa']['code'];

                $Stops = $DestinationSegments['sN'];
                if ($Stops == 0) {
                    $StopCountTxt = "Non-stop";
                } else {
                    $StopCountTxt = $Stops . " Stop(s)";
                }
                $filePath = $this->getflightlogo($AirlineCode);
                $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->CalculateHoursMinutes($OriginSegments['dt'], $DestinationSegments['at']);
                $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DestinationSegments['at']);
                $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($OriginSegments['dt']);
                $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';

                $FareRuleData = isset($FareRuleRequest) ? $FareRuleRequest : [];

                $arrInsertFlightData[$key]['bookingId'] = $bookingId;
                $arrInsertFlightData[$key]['FlightNumber'] = $strFlightNumber;
                $arrInsertFlightData[$key]['AirlineName'] = $strAirlineName;
                $arrInsertFlightData[$key]['AirlineCode'] = $AirlineCode;
                $arrInsertFlightData[$key]['AirInvenSysId'] = 0;
                $arrInsertFlightData[$key]['IsLCC'] = $IsLCC;
                $arrInsertFlightData[$key]['IsMealIncludes'] = $IsMealIncludes;
                $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                $arrInsertFlightData[$key]['IsRefundable'] = $IsRefundable;
                $arrInsertFlightData[$key]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrInsertFlightData[$key]['SearchTraceId'] = $SearchTraceId;
                $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                $arrInsertFlightData[$key]['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData[$key]['DepartureTime'] = $strDepartureDtTime;
                $arrInsertFlightData[$key]['ArrivalTime'] = $strArrivalDtTime;
                $arrInsertFlightData[$key]['TravelDate'] = $OriginSegments['dt'];
                $arrInsertFlightData[$key]['LocalFromTime'] = str_replace('T', ' ', $OriginSegments['dt']);
                $arrInsertFlightData[$key]['FromUTCTime'] = $OriginSegments['dt'];
                $arrInsertFlightData[$key]['LocalToTime'] = str_replace('T', ' ', $DestinationSegments['at']);
                $arrInsertFlightData[$key]['ToUTCTime'] = $DestinationSegments['at'];
                $arrInsertFlightData[$key]['IsDirect'] = 0;
                $arrInsertFlightData[$key]['FareClass'] = $strFareClass;
                $arrInsertFlightData[$key]['LAYOVERCity'] = isset($LAYOVERCityArr[0]) ? $LAYOVERCityArr[0] : '';
                $arrInsertFlightData[$key]['GroundTime'] = $TotalLAYOVERMinutes;
                $arrInsertFlightData[$key]['LAYOVERDuration'] = $LAYOVERTime;
                $arrInsertFlightData[$key]['FlyingMinutes'] = $FlyingMinutes;
                $arrInsertFlightData[$key]['DepartureDateTxt'] = date('D, d M', strtotime($OriginSegments['dt']));
                $arrInsertFlightData[$key]['ArrivalDateTxt'] = date('D, d M', strtotime($DestinationSegments['at']));
                $arrInsertFlightData[$key]['FlightDuration'] = $FlightDuration;
                //$arrInsertFlightData[$key]['SourcePlaceSysId'] = $intSourceCityId;
                //$arrInsertFlightData[$key]['DestPlaceSysId'] = $intDestinationCityId;
                $arrInsertFlightData[$key]['SourcePlaceSysId'] = ($strFlightRoute == '3')?$intSourceCityId[$key]:$intSourceCityId;
                $arrInsertFlightData[$key]['DestPlaceSysId'] = ($strFlightRoute == '3')?$intDestinationCityId[$key]:$intDestinationCityId;
                $arrInsertFlightData[$key]['SourceAirportCode'] = $strSourceAirportCode;
                $arrInsertFlightData[$key]['DestAirportCode'] = $strDestinationAirportCode;
                $arrInsertFlightData[$key]['StopCount'] = $StopCountTxt;
                $arrInsertFlightData[$key]['Stops'] = $Stops;
                $arrInsertFlightData[$key]['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                $arrInsertFlightData[$key]['TotalFlightMembers'] = $intMemberCount;
                $arrInsertFlightData[$key]['CurrencyType'] = 1;
                $arrInsertFlightData[$key]['PublishedFare'] = $PublishedFare; // As Discussed with GG
                $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format($PublishedFare); // As Discussed with GG
                $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                $arrInsertFlightData[$key]['JourneyType'] = $intJourneyType;
                $arrInsertFlightData[$key]['TripType'] = $intTripType;
                $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                $arrInsertFlightData[$key]['logo'] = $filePath;
                $arrInsertFlightData[$key]['FairRules'] = $FairRulesArr;
                $arrInsertFlightData[$key]['Segments'] = $arrSegments;
                $arrInsertFlightData[$key]['Baggage'] = $BaggageArr;
                $arrInsertFlightData[$key]['Meal'] = $MealArr;
                $arrInsertFlightData[$key]['isGSTMandatory'] = $isGSTMandatory;
                $arrInsertFlightData[$key]['IsPassMandatory'] = $IsPassMandatory;
                $arrInsertFlightData[$key]['IsPassExpiry'] = $IsPassExpiry;
                $arrInsertFlightData[$key]['IsPassIssue'] = $IsPassIssue;
                $arrInsertFlightData[$key]['IsPassDateOfBirth'] = $IsPassDateOfBirth;
                $arrInsertFlightData[$key]['isAdobrMandatory'] = $isAdobrMandatory;
                $arrInsertFlightData[$key]['isCdobrMandatory'] = $isCdobrMandatory;
                $arrInsertFlightData[$key]['isIdobrMandatory'] = $isIdobrMandatory;
                $arrInsertFlightData[$key]['isSeatApplicable'] = $isSeatApplicable;
                $arrInsertFlightData[$key]['isSessionTime'] = $isSessionTime . ':00';

                $arrInsertFlightData[$key]['ICSourceSysId'] = 7;
                $arrInsertFlightData[$key]['strTraceId'] = $strTraceId;
                $arrInsertFlightData[$key]['FareRuleData'] = $FareRuleData;
                $arrInsertFlightData[$key]['CancelFee'] = ($intMarkUp * $intMemberCount);


                $arrInsertFlightData[$key]['arrCommonInsVariables'] = $arrCommonInsVariables;
                $arrAirlineName[] = $AirlineCode . '-' . $strAirlineName;
                $AttPriceRange[] = $PublishedFare;
                $FiltStopCount[] = $StopCountTxt;
                $arrInsertFlightData[$key]['FilterPrice'] = ''; //$FilterPrice;

            }
            if ($strFlightRoute == 2 && $interNationalSearch == 1) {
                $BookingData = $FlightBookingData[0];
                $OriginOnward = ($TempArr['onward']);
                $AirlineCode = $OriginOnward['fD']['aI']['code'];
                $ExtraMarkup = isset($BookingData['FairRules']['ExtraMarkup'])?$BookingData['FairRules']['ExtraMarkup']:0;
                $ExtraMarkupOnGST = isset($BookingData['FairRules']['ExtraMarkupOnGST'])?$BookingData['FairRules']['ExtraMarkupOnGST']:0;
                $DiscountCoupon = isset($BookingData['FairRules']['DiscountCoupon'])?$BookingData['FairRules']['DiscountCoupon']:0;
                $DiscountValue = isset($BookingData['FairRules']['DiscountValue'])?$BookingData['FairRules']['DiscountValue']:0;
                $BaseFareT = 0;
                $TaxT = 0;
                $YQTaxT = 0;
                $OtherChargesT = 0;
                $DiscountT = 0;
                $ServiceFeeT = 0;
                $ManagementFeeTaxT = 0;
                $AirlineGSTComponentT = 0;
                $CarrierMiscFeeT = 0;
                $MUFeeT = 0;
                $intPublishedFareT = 0;
                $PublishedFareT = 0;
                $OfferedFareT = 0;
                $CommissionEarnedT = 0;
                $PLBEarnedT = 0;
                $IncentiveEarnedT = 0;
                $TdsOnPLBT = 0;
                $TdsOnIncentive = 0;
                $AdditionalTxnFeeOfrd = 0;
                $AdditionalTxnFeePub = 0;
                $RefundableT = 0;
                $intTotalGSTT = 0;
                $apiMarkupT = 0;
                $IntCommissionT = 0;
                $apiTaxOnMarkupT = 0;
                $FixedMarkUpT = 0;
                $GSTOnMarkUpT = 0;
                $CommEarnedT = 0;
                $GSTonCommT = 0;
                0;
                $intGTXMarkUpT = 0;
                $GTXMarkUpGSTT = 0;
                $newFareT = 0;
                $oldFareT = 0;
                $FairRulesArr = [];
                $FareBreakdown = [];
                $Segments = [];
                $AirlineCode = $OriginSegments['fD']['aI']['code'];
                //echo '<pre>';print_r(($totalPriceListArr));echo '</pre>';
                if ($totalPriceListArr) {
                    foreach ($totalPriceListArr as $kp => $price) {
                        $fareDetail = $price['fd'];

                        //echo '<pre>';print_r(($fareDetail));echo '</pre>';
                        $Refundable = $fareDetail['ADULT']['rT'];
                        $PriceID = $price['id'];
                        $fareIdentifier = $price['fareIdentifier'];

                        $fareIdentifier = $price['fareIdentifier'];
                        $AddMarkup = isset($AdditionalMarkup['finalArr'][$fareIdentifier]) ? $AdditionalMarkup['finalArr'][$fareIdentifier] : [];
                        $fareremarks = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['remarks']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['remarks'] : '';
                        $fareIdentifier = isset($AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier']) ? $AdditionalMarkup['finalArr'][$fareIdentifier]['fareIdentifier'] : '';
                        $colors = !empty($AddMarkup['color']) ? $AddMarkup['color'] : '#000000';
                        $MarkUpValue = isset($AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue']) ? $AdditionalMarkup['AirlineWiseMarkup'][$AirlineCode]['MarkUpValue'] : 0;
                        $AddMarkup['markup_b2c'] = ($AddMarkup['markup_b2c'] + $MarkUpValue);
                        
                        if ($price['fareIdentifier'] == 'SME') {
                            $IsGSTRequired = true;
                        } else {
                            $IsGSTRequired = false;
                        }
                        if ($Refundable == 0) {
                            $IsRefundableTxt = 'Non Refundable';
                        } elseif ($Refundable == 1) {
                            $IsRefundableTxt = 'Refundable';
                        } else {
                            $IsRefundableTxt = 'Partial Refundable';
                        }
                        $ADULT = $fareDetail['ADULT']['fC']; //fare Components
                        $CHILD = isset($fareDetail['CHILD']['fC']) ? $fareDetail['CHILD']['fC'] : []; //fare Components
                        $INFANT = isset($fareDetail['INFANT']['fC']) ? $fareDetail['INFANT']['fC'] : []; //fare Components

                        $ADULTafC = $fareDetail['ADULT']['afC']['TAF']; //additional fareComponents
                        $CHILDafC = isset($fareDetail['CHILD']['afC']['TAF']) ? $fareDetail['CHILD']['afC']['TAF'] : []; //additional fareComponents
                        $INFANTafC = isset($fareDetail['INFANT']['afC']['TAF']) ? $fareDetail['INFANT']['afC']['TAF'] : []; //additional fareComponents

                        $ADULTNCMTDS = isset($fareDetail['ADULT']['afC']['NCM']['TDS']) ? $fareDetail['ADULT']['afC']['NCM']['TDS'] : 0; //TDS
                        $CHILDNCMTDS = isset($fareDetail['CHILD']['afC']['NCM']['TDS']) ? $fareDetail['CHILD']['afC']['NCM']['TDS'] : 0; //TDS
                        $INFANTNCMTDS = isset($fareDetail['INFANT']['afC']['NCM']['TDS']) ? $fareDetail['INFANT']['afC']['NCM']['TDS'] : 0; //TDS

                        $ADULTNCMTOT = isset($fareDetail['ADULT']['afC']['NCM']['OT']) ? $fareDetail['ADULT']['afC']['NCM']['OT'] : 0; //- Gross Commission
                        $CHILDNCMTOT = isset($fareDetail['CHILD']['afC']['NCM']['OT']) ? $fareDetail['CHILD']['afC']['NCM']['OT'] : 0; //- Gross Commission
                        $INFANTNCMTOT = isset($fareDetail['INFANT']['afC']['NCM']['OT']) ? $fareDetail['INFANT']['afC']['NCM']['OT'] : 0; //- Gross Commission

                        $AD_MF = isset($ADULTafC['MF']) ? $ADULTafC['MF'] : 0; //Management Fee
                        $AD_YQ = isset($ADULTafC['YQ']) ? $ADULTafC['YQ'] : 0; //Fuel Surcharge
                        $AD_AGST = isset($ADULTafC['AGST']) ? $ADULTafC['AGST'] : 0; //Airline GST Component
                        $AD_MFT = isset($ADULTafC['MFT']) ? $ADULTafC['MFT'] : 0; //Management Fee Tax
                        $AD_OT = isset($ADULTafC['OT']) ? $ADULTafC['OT'] : 0; //Other Charges
                        $AD_MU = isset($ADULTafC['MU']) ? $ADULTafC['MU'] : 0; //markup
                        $AD_YR = isset($ADULTafC['YR']) ? $ADULTafC['YR'] : 0; //Carrier Misc Fee

                        $CH_MF = isset($CHILDafC['MF']) ? $CHILDafC['MF'] : 0; //Management Fee
                        $CH_YQ = isset($CHILDafC['YQ']) ? $CHILDafC['YQ'] : 0; //Fuel Surcharge
                        $CH_AGST = isset($CHILDafC['AGST']) ? $CHILDafC['AGST'] : 0; //Airline GST Component
                        $CH_MFT = isset($CHILDafC['MFT']) ? $CHILDafC['MFT'] : 0; //Management Fee Tax
                        $CH_OT = isset($CHILDafC['OT']) ? $CHILDafC['OT'] : 0; //Other Charges
                        $CH_MU = isset($CHILDafC['MU']) ? $CHILDafC['MU'] : 0; //markup
                        $CH_YR = isset($CHILDafC['YR']) ? $CHILDafC['YR'] : 0; //Carrier Misc Fee

                        $IN_MF = isset($INFANTafC['MF']) ? $INFANTafC['MF'] : 0; //Management Fee
                        $IN_YQ = isset($INFANTafC['YQ']) ? $INFANTafC['YQ'] : 0; //Fuel Surcharge
                        $IN_AGST = isset($INFANTafC['AGST']) ? $INFANTafC['AGST'] : 0; //Airline GST Component
                        $IN_MFT = isset($INFANTafC['MFT']) ? $INFANTafC['MFT'] : 0; //Management Fee Tax
                        $IN_OT = isset($INFANTafC['OT']) ? $INFANTafC['OT'] : 0; //Other Charges
                        $IN_MU = isset($INFANTafC['MU']) ? $INFANTafC['MU'] : 0; //markup
                        $IN_YR = isset($INFANTafC['YR']) ? $INFANTafC['YR'] : 0; //Carrier Misc Fee

                        if ($kp == 0) {
                            $PublishedFare += (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                            $BaseFare += (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                            $Tax += (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                        }

                        $PublishedFareIN = (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                        $BaseFareIN = (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                        $TaxIN = (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                        $NetFare = (($ADULT['NF'] * $adultCount) + ($CHILD['NF'] * $childCount) + ($INFANT['NF'] * $infantCount)); //Taxes and Fees
                        $NetCommission = (($ADULT['NCM'] * $adultCount) + ($CHILD['NCM'] * $childCount) + ($INFANT['NCM'] * $infantCount)); //Taxes and Fees
                        //echo '<pre>';print_r(($ADULTafC));echo '</pre>';
                        $YQTax = (($AD_YQ * $adultCount) + ($CH_YQ * $childCount) + ($IN_YQ * $infantCount));
                        $OtherCharges = (($AD_OT * $adultCount) + ($CH_OT * $childCount) + ($IN_OT * $infantCount));
                        $ServiceFee = (($AD_MF * $adultCount) + ($CH_MF * $childCount) + ($IN_MF * $infantCount));
                        $ManagementFeeTax = (($AD_MFT * $adultCount) + ($CH_MFT * $childCount) + ($IN_MFT * $infantCount));
                        $AirlineGSTComponent = (($AD_AGST * $adultCount) + ($CH_AGST * $childCount) + ($IN_AGST * $infantCount));
                        $CarrierMiscFee = (($AD_YR * $adultCount) + ($CH_YR * $childCount) + ($IN_YR * $infantCount));
                        $MUFee = (($AD_MU * $adultCount) + ($CH_MU * $childCount) + ($IN_MU * $infantCount));
                        $TdsOnPLB = (($ADULTNCMTDS * $adultCount) + ($CHILDNCMTDS * $childCount) + ($INFANTNCMTDS * $infantCount));
                        //$NetCommission = (($ADULTNCMTOT * $adultCount) + ($CHILDNCMTOT * $childCount) + ($INFANTNCMTOT * $infantCount));
                        //$PublishedFareIN = $NetFare;
                        $PublishedFare = $PublishedFareIN;
                        $CommissionEarned = $NetCommission;
                        $PLBEarned = 0; //$result['Fare']['PLBEarned'];
                        $IncentiveEarned = 0; //$result['Fare']['IncentiveEarned'];
                        $OfferedFare = $PublishedFareIN;
                        $TdsOnPLBCal = isset($TdsOnPLB) ? str_replace('-', '', $TdsOnPLB) : 0;
                        $markUpArr = array(
                            'getMarkup' => $getMarkup,
                            'PublishedFare' => $PublishedFare,
                            'OfferedFare' => ($NetFare - $TdsOnPLBCal),
                            'intCommissionEarned' => $CommissionEarned,
                            'TdsOnPLB' => $TdsOnPLB,
                            'MUFee' => $MUFee,
                            'intPLBEarned' => $PLBEarned,
                            'intIncentiveEarned' => $IncentiveEarned,
                            'intMemberCount' => $intMemberCount,
                            'intFlightRoute' => $strFlightRoute,
                            'interNationalSearch' => $interNationalSearch,
                            'AddMarkup' => $AddMarkup,
                        );
                        //echo '<pre>';print_r(($markUpArr));echo '</pre>';
                        $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr, 'Review');
                        //echo '<pre>';print_r(($arrMarkUps));echo '</pre>';
                        $TdsOnPLBCal = isset($ADULTNCMTDS) ? str_replace('-', '', $ADULTNCMTDS) : 0;
                        $markUpArrBR = array(
                            'getMarkup' => $getMarkup,
                            'PublishedFare' => ($ADULT['TF'] * $adultCount),
                            'OfferedFare' => (($ADULT['NF'] - $TdsOnPLBCal) * $adultCount),
                            'intCommissionEarned' => ($ADULT['NCM'] * $adultCount),
                            'TdsOnPLB' => ($ADULTNCMTDS * $adultCount),
                            'MUFee' => ($AD_MU * $adultCount),
                            'intPLBEarned' => $PLBEarned,
                            'intIncentiveEarned' => $IncentiveEarned,
                            'intMemberCount' => $adultCount,
                            'intFlightRoute' => $strFlightRoute,
                            'interNationalSearch' => $interNationalSearch,
                            'AddMarkup' => $AddMarkup,
                        );
                        $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR, 'Review');

                        $FareBreakdown[0]['Currency'] = 'INR';
                        $FareBreakdown[0]['PassengerType'] = 1;
                        $FareBreakdown[0]['PassengerCount'] = $adultCount;
                        $FareBreakdown[0]['TaxIN'] += ($ADULT['TAF'] * $adultCount);
                        $FareBreakdown[0]['BaseFareCal'] += ($arrMarkUpsBR['BaseFareCal']);
                        $FareBreakdown[0]['BaseFare'] += ($ADULT['BF'] * $adultCount);
                        $FareBreakdown[0]['CommissionEarned'] += ($ADULT['NCM'] * $adultCount);
                        $FareBreakdown[0]['TDS'] += ($ADULTNCMTDS * $adultCount);
                        $FareBreakdown[0]['MF'] += ($AD_MF * $adultCount);
                        $FareBreakdown[0]['YQ'] += ($AD_YQ * $adultCount);
                        $FareBreakdown[0]['AGST'] += ($AD_AGST * $adultCount);
                        $FareBreakdown[0]['MFT'] += ($AD_MFT * $adultCount);
                        $FareBreakdown[0]['OT'] += ($AD_OT * $adultCount);
                        $FareBreakdown[0]['MU'] += ($AD_MU * $adultCount);
                        $FareBreakdown[0]['YR'] += ($AD_YR * $adultCount);
                        $FareBreakdown[0]['intTotalGST'] += $arrMarkUpsBR['intTotalGST'];
                        $FareBreakdown[0]['apiMarkup'] += $arrMarkUpsBR['apiMarkup'];
                        $FareBreakdown[0]['IntCommission'] += $arrMarkUpsBR['IntCommission'];
                        $FareBreakdown[0]['apiTaxOnMarkup'] += $arrMarkUpsBR['apiTaxOnMarkup'];
                        $FareBreakdown[0]['FixedMarkUp'] += $arrMarkUpsBR['IntAgencyFixMarkUp'];
                        $FareBreakdown[0]['GSTOnMarkUp'] += $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                        $FareBreakdown[0]['CommEarned'] += $arrMarkUpsBR['IntCommission']; //$arrMarkUpsBR['intCommisionEarnedForAgency'];
                        $FareBreakdown[0]['GSTonComm'] += 0;
                        $FareBreakdown[0]['intGTXMarkUp'] += $arrMarkUpsBR['intGTXMarkUp'];
                        $FareBreakdown[0]['GTXMarkUpGST'] += $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                        $FareBreakdown[0]['AdditionalTxnFeeOfrd'] += 0;
                        $FareBreakdown[0]['AdditionalTxnFeePub'] += 0;
                        $FareBreakdown[0]['PGCharge'] += 0;
                        $FareBreakdown[0]['Baggage'] = isset($fareDetail['ADULT']['bI']['iB']) ? $fareDetail['ADULT']['bI']['iB'] : []; //Check In Baggage;
                        $FareBreakdown[0]['CabinBaggage'] = isset($fareDetail['ADULT']['bI']['cB']) ? $fareDetail['ADULT']['bI']['cB'] : []; //Cabin Baggage ;
                        if (isset($fareDetail['CHILD'])) {
                            $TdsOnPLBCal = isset($CHILDNCMTDS) ? str_replace('-', '', $CHILDNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($CHILD['TF'] * $childCount),
                                'OfferedFare' => (($CHILD['NF'] - $TdsOnPLBCal) * $childCount),
                                'intCommissionEarned' => ($CHILD['NCM'] * $childCount),
                                'TdsOnPLB' => ($CHILDNCMTDS * $childCount),
                                'MUFee' => ($CH_MU * $childCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $childCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR, 'Review');
                            $FareBreakdown[1]['Currency'] = 'INR';
                            $FareBreakdown[1]['PassengerType'] = 2;
                            $FareBreakdown[1]['PassengerCount'] = $childCount;
                            $FareBreakdown[1]['TaxIN'] += ($CHILD['TAF'] * $childCount);
                            $FareBreakdown[1]['BaseFareCal'] += ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[1]['BaseFare'] += ($CHILD['BF'] * $childCount);
                            $FareBreakdown[1]['CommissionEarned'] += ($CHILD['NCM'] * $childCount);
                            $FareBreakdown[1]['TDS'] += ($CHILDNCMTDS * $childCount);
                            $FareBreakdown[1]['MF'] += ($CH_MF * $childCount);
                            $FareBreakdown[1]['YQ'] += ($CH_YQ * $childCount);
                            $FareBreakdown[1]['AGST'] += ($CH_AGST * $childCount);
                            $FareBreakdown[1]['MFT'] += ($CH_MFT * $childCount);
                            $FareBreakdown[1]['OT'] += ($CH_OT * $childCount);
                            $FareBreakdown[1]['MU'] += ($CH_MU * $childCount);
                            $FareBreakdown[1]['YR'] += ($CH_YR * $childCount);
                            $FareBreakdown[1]['intTotalGST'] += $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[1]['apiMarkup'] += $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[1]['IntCommission'] += $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[1]['apiTaxOnMarkup'] += $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[1]['FixedMarkUp'] += $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[1]['GSTOnMarkUp'] += $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[1]['CommEarned'] += $arrMarkUpsBR['IntCommission']; //$arrMarkUpsBR['intCommisionEarnedForAgency'];
                            $FareBreakdown[1]['GSTonComm'] += 0;
                            $FareBreakdown[1]['intGTXMarkUp'] += $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[1]['GTXMarkUpGST'] += $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[1]['AdditionalTxnFeeOfrd'] += 0;
                            $FareBreakdown[1]['AdditionalTxnFeePub'] += 0;
                            $FareBreakdown[1]['PGCharge'] = 0;
                            $FareBreakdown[1]['Baggage'] = isset($fareDetail['CHILD']['bI']['iB']) ? $fareDetail['CHILD']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[1]['CabinBaggage'] = isset($fareDetail['CHILD']['bI']['cB']) ? $fareDetail['CHILD']['bI']['cB'] : []; //Cabin Baggage ;
                        }
                        if (isset($fareDetail['INFANT'])) {
                            $TdsOnPLBCal = isset($INFANTNCMTDS) ? str_replace('-', '', $INFANTNCMTDS) : 0;
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($INFANT['TF'] * $infantCount),
                                'OfferedFare' => (($INFANT['NF'] - $TdsOnPLBCal) * $infantCount),
                                'intCommissionEarned' => ($INFANT['NCM'] * $infantCount),
                                'TdsOnPLB' => ($INFANTNCMTDS * $infantCount),
                                'MUFee' => ($IN_MU * $infantCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $infantCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                                'AddMarkup' => $AddMarkup,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR, 'Review');
                            $FareBreakdown[2]['Currency'] = 'INR';
                            $FareBreakdown[2]['PassengerType'] = 3;
                            $FareBreakdown[2]['PassengerCount'] = $infantCount;
                            $FareBreakdown[2]['TaxIN'] += ($INFANT['TAF'] * $infantCount);
                            $FareBreakdown[2]['BaseFareCal'] += ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[2]['BaseFare'] += ($INFANT['BF'] * $infantCount);
                            $FareBreakdown[2]['CommissionEarned'] += ($INFANT['NCM'] * $infantCount);
                            $FareBreakdown[2]['TDS'] += ($INFANTNCMTDS * $infantCount);
                            $FareBreakdown[2]['MF'] += ($IN_MF * $infantCount);
                            $FareBreakdown[2]['YQ'] += ($IN_YQ * $infantCount);
                            $FareBreakdown[2]['AGST'] += ($IN_AGST * $infantCount);
                            $FareBreakdown[2]['OT'] += ($IN_OT * $infantCount);
                            $FareBreakdown[2]['MFT'] += ($IN_MFT * $infantCount);
                            $FareBreakdown[2]['MU'] += ($IN_MU * $infantCount);
                            $FareBreakdown[2]['YR'] += ($IN_YR * $infantCount);
                            $FareBreakdown[2]['intTotalGST'] += $arrMarkUpsBR['intTotalGST'];
                            $FareBreakdown[2]['apiMarkup'] += $arrMarkUpsBR['apiMarkup'];
                            $FareBreakdown[2]['IntCommission'] += $arrMarkUpsBR['IntCommission'];
                            $FareBreakdown[2]['apiTaxOnMarkup'] += $arrMarkUpsBR['apiTaxOnMarkup'];
                            $FareBreakdown[2]['FixedMarkUp'] += $arrMarkUpsBR['IntAgencyFixMarkUp'];
                            $FareBreakdown[2]['GSTOnMarkUp'] += $arrMarkUpsBR['IntTaxOnAgencyFixMarkUp'];
                            $FareBreakdown[2]['CommEarned'] += $arrMarkUpsBR['IntCommission']; //$arrMarkUpsBR['intCommisionEarnedForAgency'];
                            $FareBreakdown[2]['GSTonComm'] += 0;
                            $FareBreakdown[2]['intGTXMarkUp'] += $arrMarkUpsBR['intGTXMarkUp'];
                            $FareBreakdown[2]['GTXMarkUpGST'] += $arrMarkUpsBR['intSTaxOnGTXMarkUp'];
                            $FareBreakdown[2]['AdditionalTxnFeeOfrd'] += 0;
                            $FareBreakdown[2]['AdditionalTxnFeePub'] += 0;
                            $FareBreakdown[2]['PGCharge'] += 0;
                            $FareBreakdown[2]['Baggage'] = isset($fareDetail['INFANT']['bI']['iB']) ? $fareDetail['INFANT']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[2]['CabinBaggage'] = isset($fareDetail['INFANT']['bI']['cB']) ? $fareDetail['INFANT']['bI']['cB'] : []; //Cabin Baggage ;
                        }
                        $FareBreakdownar = [];
                        $FareBreakCount = count($FareBreakdown);
                       if($FareBreakdown){
                        foreach($FareBreakdown as $brk=>$farebreack){
                            $FareBreakdownar[$brk] = $farebreack;
                            $FareBreakdownar[$brk]['ExtraMarkup'] = ((float) ($ExtraMarkup) / $FareBreakCount);
                            $FareBreakdownar[$brk]['ExtraMarkupOnGST'] = ((float) ($ExtraMarkupOnGST) / $FareBreakCount);
                            $FareBreakdownar[$brk]['DiscountCoupon'] = ($DiscountValue > 0)?1:0;
                            $FareBreakdownar[$brk]['DiscountValue'] = ((float) ($DiscountValue) / $FareBreakCount);
                        }
                       }

                        $Currency = $this->CurrencyTitle;
                        $CurrencyRate = $this->CurrencyRate;
                        $currencySysId = $this->CurrencyId;
                        $BaseFareT += $BaseFareIN;
                        $TaxT += $TaxIN;
                        $YQTaxT += $YQTax;
                        $OtherChargesT += $OtherCharges;
                        $DiscountT += 0; //$Discount;
                        $ServiceFeeT += $ServiceFee;
                        $ManagementFeeTaxT += $ManagementFeeTax;
                        $AirlineGSTComponentT += $AirlineGSTComponent;
                        $CarrierMiscFeeT += $CarrierMiscFee;
                        $MUFeeT += $MUFee;
                        $intPublishedFareT += $PublishedFareIN;
                        $PublishedFareT += ($arrMarkUps['PublishFare'] * $this->CurrencyRate);
                        $OfferedFareT += $arrMarkUps['intOfferedFare'];
                        $CommissionEarnedT += $CommissionEarned;
                        $PLBEarnedT += $PLBEarned;
                        $IncentiveEarnedT += $IncentiveEarned;
                        $TdsOnPLBT += $TdsOnPLB;
                        $TdsOnIncentiveT += 0;
                        $AdditionalTxnFeeOfrd += 0;
                        $AdditionalTxnFeePub += 0;
                        $RefundableT += $Refundable;
                        $IsRefundableTxtT = $IsRefundableTxt;
                        $PriceID = $PriceID;
                        $IsGSTRequired = $IsGSTRequired;
                        $fareIdentifier = str_replace('_', ' ', $fareIdentifier);
                        $FareClass = $fareDetail['ADULT']['cc'];
                        $intTotalGSTT += $arrMarkUps['intTotalGST'];
                        $apiMarkupT += $arrMarkUps['apiMarkup'];
                        $IntCommissionT += $arrMarkUps['IntCommission'];
                        $apiTaxOnMarkupT += $arrMarkUps['apiTaxOnMarkup'];
                        $FixedMarkUpT += $arrMarkUps['IntAgencyFixMarkUp'];
                        $GSTOnMarkUpT += $arrMarkUps['IntTaxOnAgencyFixMarkUp'];
                        $CommEarnedT += $arrMarkUps['IntCommission']; //$arrMarkUps['intCommisionEarnedForAgency'];
                        $GSTonCommT += 0;
                        $intGTXMarkUpT += $arrMarkUps['intGTXMarkUp'];
                        $GTXMarkUpGSTT += $arrMarkUps['intSTaxOnGTXMarkUp'];
                        $newFareT += $newFare;
                        $oldFareT += $oldFare;
                        $seg = $arrInsertFlightData[$kp]['Segments'];
                       // echo $kp;
                        $Segments[] = $seg;
                    }
                }
                //echo '<pre>';print_r($arrInsertFlightData);echo '</pre>';
                $FairRulesArr = array(
                    "Currency" => $this->CurrencyTitle, //$Currency,
                    "CurrencyRate" => $this->CurrencyRate, //$Currency,
                    "currencySysId" => $this->CurrencyId,
                    "BaseFare" => $BaseFareT,
                    "Tax" => $TaxT,
                    "YQTax" => $YQTaxT,
                    "OtherCharges" => $OtherChargesT,
                    "Discount" => 0,
                    "ServiceFee" => $ServiceFeeT,
                    "ManagementFeeTax" => $ManagementFeeTaxT,
                    "AirlineGSTComponent" => $AirlineGSTComponentT,
                    "CarrierMiscFee" => $CarrierMiscFeeT,
                    "MUFee" => $MUFeeT,
                    "intPublishedFare" => $intPublishedFareT,
                    "PublishedFare" => ($PublishedFareT),
                    "OfferedFare" => $OfferedFareT,
                    "CommissionEarned" => $CommissionEarnedT,
                    "PLBEarned" => $PLBEarnedT,
                    "IncentiveEarned" => $IncentiveEarnedT,
                    "TdsOnPLB" => $TdsOnPLBT,
                    "TdsOnIncentive" => 0,
                    "AdditionalTxnFeeOfrd" => 0,
                    "AdditionalTxnFeePub" => 0,
                    "Refundable" => $Refundable,
                    "IsRefundableTxt" => $IsRefundableTxtT,
                    "PriceID" => $PriceID,
                    "IsGSTRequired" => $IsGSTRequired,
                    "fareIdentifier" => $fareIdentifier,
                    "FareClass" => $FareClass,
                    "intTotalGST" => $intTotalGSTT,
                    "apiMarkup" => $apiMarkupT,
                    "IntCommission" => $IntCommissionT,
                    "apiTaxOnMarkup" => $apiTaxOnMarkupT,
                    "FixedMarkUp" => $FixedMarkUpT,
                    "GSTOnMarkUp" => $GSTOnMarkUpT,
                    "CommEarned" => $CommEarnedT,
                    "GSTonComm" => 0,
                    "intGTXMarkUp" => $intGTXMarkUpT,
                    "GTXMarkUpGST" => $GTXMarkUpGSTT,
                    "newFare" => $newFareT,
                    "oldFare" => $oldFareT,
                    "ExtraMarkup" => $ExtraMarkup,
                    "ExtraMarkupOnGST" => $ExtraMarkupOnGST,
                    "DiscountCoupon" => $DiscountCoupon,
                    "DiscountCoupon" => $DiscountValue,
                    "FareBreakdown" => $FareBreakdownar,
                );

                
                //echo '<pre>';print_r(($FairRulesArr));echo '</pre>';

                $arrInsertFlightDataInt['bookingId'] = $arrInsertFlightData[0]['bookingId'];
                $arrInsertFlightDataInt['FlightNumber'] = $arrInsertFlightData[0]['FlightNumber'];
                $arrInsertFlightDataInt['AirlineName'] = $arrInsertFlightData[0]['AirlineName'];
                $arrInsertFlightDataInt['AirlineCode'] = $arrInsertFlightData[0]['AirlineCode'];
                $arrInsertFlightDataInt['AirInvenSysId'] = $arrInsertFlightData[0]['AirInvenSysId'];
                $arrInsertFlightDataInt['IsLCC'] = $arrInsertFlightData[0]['IsLCC'];
                $arrInsertFlightDataInt['IsMealIncludes'] = $arrInsertFlightData[0]['IsMealIncludes'];
                $arrInsertFlightDataInt['IsBagIncludes'] = $arrInsertFlightData[0]['IsBagIncludes'];
                $arrInsertFlightDataInt['IsRefundable'] = $arrInsertFlightData[0]['IsRefundable'];
                $arrInsertFlightDataInt['IsRefundableTxt'] = $arrInsertFlightData[0]['IsRefundableTxt'];
                $arrInsertFlightDataInt['SearchTraceId'] = $arrInsertFlightData[0]['SearchTraceId'];
                $arrInsertFlightDataInt['apiTraceId'] = $arrInsertFlightData[0]['apiTraceId'];
                $arrInsertFlightDataInt['AirlineSysId'] = $arrInsertFlightData[0]['AirlineSysId'];
                $arrInsertFlightDataInt['DepartureTime'] = $arrInsertFlightData[0]['DepartureTime'];
                $arrInsertFlightDataInt['ArrivalTime'] = $arrInsertFlightData[0]['ArrivalTime'];
                $arrInsertFlightDataInt['TravelDate'] = $arrInsertFlightData[0]['TravelDate'];
                $arrInsertFlightDataInt['LocalFromTime'] = $arrInsertFlightData[0]['LocalFromTime'];
                $arrInsertFlightDataInt['FromUTCTime'] = $arrInsertFlightData[0]['FromUTCTime'];
                $arrInsertFlightDataInt['LocalToTime'] = $arrInsertFlightData[0]['LocalToTime'];
                $arrInsertFlightDataInt['ToUTCTime'] = $arrInsertFlightData[0]['ToUTCTime'];
                $arrInsertFlightDataInt['IsDirect'] = $arrInsertFlightData[0]['IsDirect'];
                $arrInsertFlightDataInt['FareClass'] = $arrInsertFlightData[0]['FareClass'];
                $arrInsertFlightDataInt['LAYOVERCity'] = $arrInsertFlightData[0]['LAYOVERCity'];
                $arrInsertFlightDataInt['GroundTime'] = $arrInsertFlightData[0]['GroundTime'];
                $arrInsertFlightDataInt['LAYOVERDuration'] = $arrInsertFlightData[0]['LAYOVERDuration'];
                $arrInsertFlightDataInt['FlyingMinutes'] = $arrInsertFlightData[0]['FlyingMinutes'];
                $arrInsertFlightDataInt['DepartureDateTxt'] = $arrInsertFlightData[0]['DepartureDateTxt'];
                $arrInsertFlightDataInt['ArrivalDateTxt'] = $arrInsertFlightData[0]['ArrivalDateTxt'];
                $arrInsertFlightDataInt['FlightDuration'] = $arrInsertFlightData[0]['FlightDuration'];
                $arrInsertFlightDataInt['SourcePlaceSysId'] = $arrInsertFlightData[0]['SourcePlaceSysId'];
                $arrInsertFlightDataInt['DestPlaceSysId'] = $arrInsertFlightData[0]['DestPlaceSysId'];
                $arrInsertFlightDataInt['SourceAirportCode'] = $arrInsertFlightData[0]['SourceAirportCode'];
                $arrInsertFlightDataInt['DestAirportCode'] = $arrInsertFlightData[0]['DestAirportCode'];
                $arrInsertFlightDataInt['StopCount'] = $arrInsertFlightData[0]['StopCount'];
                $arrInsertFlightDataInt['Stops'] = $arrInsertFlightData[0]['Stops'];
                $arrInsertFlightDataInt['NoOfSeatAvailable'] = $arrInsertFlightData[0]['NoOfSeatAvailable'];
                $arrInsertFlightDataInt['TotalFlightMembers'] = $arrInsertFlightData[0]['TotalFlightMembers'];
                $arrInsertFlightDataInt['CurrencyType'] = $arrInsertFlightData[0]['CurrencyType'];
                $arrInsertFlightDataInt['PublishedFare'] = $arrInsertFlightData[0]['PublishedFare'];
                $arrInsertFlightDataInt['PublishedFareTxt'] = $arrInsertFlightData[0]['PublishedFareTxt'];
                $arrInsertFlightDataInt['ApiResultIndex'] = $arrInsertFlightData[0]['ApiResultIndex'];
                $arrInsertFlightDataInt['JourneyType'] = $arrInsertFlightData[0]['JourneyType'];
                $arrInsertFlightDataInt['TripType'] = $arrInsertFlightData[0]['TripType'];
                $arrInsertFlightDataInt['IsInternational'] = $arrInsertFlightData[0]['IsInternational'];
                $arrInsertFlightDataInt['logo'] = $arrInsertFlightData[0]['logo'];
                //$arrInsertFlightDataInt['FairRules'] = $arrInsertFlightData[0]['FairRules'];
                $arrInsertFlightDataInt['Baggage'] = $arrInsertFlightData[0]['Baggage'];
                $arrInsertFlightDataInt['Meal'] = $arrInsertFlightData[0]['Meal'];
                $arrInsertFlightDataInt['isGSTMandatory'] = $arrInsertFlightData[0]['isGSTMandatory'];
                $arrInsertFlightDataInt['IsPassMandatory'] = $arrInsertFlightData[0]['IsPassMandatory'];
                $arrInsertFlightDataInt['IsPassExpiry'] = $arrInsertFlightData[0]['IsPassExpiry'];
                $arrInsertFlightDataInt['IsPassIssue'] = $arrInsertFlightData[0]['IsPassIssue'];
                $arrInsertFlightDataInt['IsPassDateOfBirth'] = $arrInsertFlightData[0]['IsPassDateOfBirth'];
                $arrInsertFlightDataInt['isAdobrMandatory'] = $arrInsertFlightData[0]['isAdobrMandatory'];
                $arrInsertFlightDataInt['isCdobrMandatory'] = $arrInsertFlightData[0]['isCdobrMandatory'];
                $arrInsertFlightDataInt['isIdobrMandatory'] = $arrInsertFlightData[0]['isIdobrMandatory'];
                $arrInsertFlightDataInt['isSeatApplicable'] = $arrInsertFlightData[0]['isSeatApplicable'];
                $arrInsertFlightDataInt['isSessionTime'] = $arrInsertFlightData[0]['isSessionTime'];
                $arrInsertFlightDataInt['strTraceId'] = $arrInsertFlightData[0]['strTraceId'];
                $arrInsertFlightDataInt['FareRuleData'] = $arrInsertFlightData[0]['FareRuleData'];
                $arrInsertFlightDataInt['CancelFee'] = $arrInsertFlightData[0]['CancelFee'];
                $arrInsertFlightDataInt['ICSourceSysId'] = $arrInsertFlightData[0]['ICSourceSysId'];
                $arrInsertFlightDataInt['FairRules'] = $FairRulesArr;
                $arrInsertFlightDataInt['Segments'] = $Segments;
                $arrCommonInsVariables = array(
                    'strTraceId' => $arrInsertFlightData[0]['apiTraceId'],
                    'localFromDateTime' => $arrInsertFlightData[0]['LocalFromTime'],
                    'localToDateTime' => $arrInsertFlightData[0]['LocalToTime'],
                    'strSourceAirportCode' => $strSourceAirportCode,
                    'strDestinationAirportCode' => $strDestinationAirportCode,
                    'intMemberCount' => $intMemberCount,
                    'intSourceCityId' => $intSourceCityId,
                    'intDestinationCityId' => $intDestinationCityId,
                    'JourneyType' => 2, // For Round Trips API Search
                    'TripType' => 1,
                    'interNationalSearch' => isset($interNationalSearch) ? $interNationalSearch : 0
                );
                $arrInsertFlightDataInt[0]['arrCommonInsVariables'] = $arrCommonInsVariables;
                $arrInsertFlightData[0]['InternationalData'] = $arrInsertFlightDataInt;
            }
        }
        // echo "<pre>";
        // print_r($arrInsertFlightData);
        // die;
       
        return $arrInsertFlightData;
       
    }

    public function UpdateFlightBookingDatadddd($data, $alerts, $SearchTraceId, $sessionFlightSearchParams)
    {
        $objAirline = new Travel_Model_TblAirline();
        $arrAirlineList = $objAirline->getAirlineIdsAndCodeList();
        $apiResponse = $data;
        $leadId = $sessionFlightSearchParams['editLeadId'];
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId);
        $AgencySysId = $arrAgencyDetails['AgencySysId'];
        $AgentSysId = $arrAgencyDetails['AgentSysId'];
        $FlightBookingData = new Zend_Session_Namespace('FlightBookingData');
        $FlightSearchGuard = new Zend_Session_Namespace('FlightSearchGuard');
        $CurrentFlightSearchGuard = new Zend_Session_Namespace('CurrentFlightSearchGuard');
        $FlightSearchResults = new Zend_Session_Namespace('FlightSearchResults');
        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strDepatureDate = $sessionFlightSearchParams['strDepatureDate'];
        $strReturnDate = !empty($sessionFlightSearchParams['strReturnDate']) ? $sessionFlightSearchParams['strReturnDate'] : '';
        $strSourceAirportCode = $sessionFlightSearchParams['from'];
        $strDestinationAirportCode = $sessionFlightSearchParams['to'];
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $intTatalPaxCT = $adultCount + $childCount;
        $getMarkup = $this->getMarkup($intCountryCode, $AgencySysId);

        $strTraceId = !empty($apiResponse['TraceId']) ? $apiResponse['TraceId'] : '';
        $localFromDateTime = date("Y-m-d h:i", strtotime($strDepatureDate));
        $localToDateTime = date("Y-m-d h:i", strtotime($strReturnDate));
        $arrCommonInsVariables = array(
            'strTraceId' => $strTraceId,
            'localFromDateTime' => $localFromDateTime,
            'localToDateTime' => $localToDateTime,
            'strSourceAirportCode' => $strSourceAirportCode,
            'strDestinationAirportCode' => $strDestinationAirportCode,
            'intMemberCount' => $intMemberCount,
            'intSourceCityId' => $intSourceCityId,
            'intDestinationCityId' => $intDestinationCityId,
            'JourneyType' => 2, // For Round Trips API Search
            'TripType' => $strFlightRoute,
            'interNationalSearch' => isset($interNationalSearch) ? $interNationalSearch : 0
        );
        $strTraceId         = $arrCommonInsVariables['strTraceId'];
        $localFromDateTime  = $arrCommonInsVariables['localFromDateTime'];
        $localToDateTime    = $arrCommonInsVariables['localToDateTime'];

        $strSourceAirportCode    = $arrCommonInsVariables['strSourceAirportCode'];
        $strDestinationAirportCode    = $arrCommonInsVariables['strDestinationAirportCode'];
        $intMemberCount    = $arrCommonInsVariables['intMemberCount'];
        $intSourceCityId    = $arrCommonInsVariables['intSourceCityId'];
        $intDestinationCityId    = $arrCommonInsVariables['intDestinationCityId'];
        $intJourneyType    = $arrCommonInsVariables['JourneyType'];
        $intTripType    = $arrCommonInsVariables['TripType'];
        $interNationalSearch    = isset($arrCommonInsVariables['interNationalSearch']) ? $arrCommonInsVariables['interNationalSearch'] : '0';
        $intTripType = $strFlightRoute;
        $arrInsertFlightData = [];
        $BaggageArr = [];
        $MealArr = [];
        $bookingId = $data['bookingId'];
        $alerts = isset($data['alerts']) ? $data['alerts'] : [];
        $IsPassMandatory = isset($data['conditions']['pcs']['pm']) ? $data['conditions']['pcs']['pm'] : false;
        $IsPassExpiry = isset($data['conditions']['pcs']['pped']) ? $data['conditions']['pcs']['pped'] : false;
        $IsPassIssue = isset($data['conditions']['pcs']['pid']) ? $data['conditions']['pcs']['pid'] : false;
        $IsPassDateOfBirth = isset($data['conditions']['pcs']['dobe']) ? $data['conditions']['pcs']['dobe'] : false;
        $isGSTMandatory = isset($data['conditions']['gst']['igm']) ? $data['conditions']['gst']['igm'] : false;
        $arrInsertFlightBookingData = [];

        // echo '<pre>';
        // print_r($IsPassMandatory);
        // print_r($data['conditions']);
        // echo '</pre>';
        // die('kkk');
        if ($data['tripInfos']) {
            foreach ($data['tripInfos'] as $key => $result) {
                if ($key == 0) {
                    $intJourneyType = 1;
                } else {
                    $intJourneyType = 2;
                }
                $BookingData = $FlightBookingData[$key];
                $alertsFare = isset($alerts[$key]) ? $alerts[$key] : [];

                $SegmentInformation = $result['sI'];
                $totalPriceList = current($result['totalPriceList']);
                $IsRefundable = $totalPriceList['fd']['ADULT']['rT'];
                $NoOfSeatAvailable = $totalPriceList['fd']['ADULT']['sR'];
                $strFareClass = $totalPriceList['fd']['ADULT']['cB'];
                $IsMealIncludes = $totalPriceList['fd']['ADULT']['mI'];
                $bagInfo = $totalPriceList['fd']['ADULT']['bI']['iB'];
                $strTraceId = $BookingData['FairRules']['PriceID'];
                $ResultIndex = $BookingData['FairRules']['PriceID'];
                if (!empty($bagInfo)) {
                    $IsBagIncludes = true;
                } else {
                    $IsBagIncludes = false;
                }
                if ($IsRefundable == 0) {
                    $IsRefundableTxt = 'Non Refundable';
                } elseif ($IsRefundable == 1) {
                    $IsRefundableTxt = 'Refundable';
                } else {
                    $IsRefundableTxt = 'Partial Refundable';
                }
                $OriginSegments = current($SegmentInformation);
                $DestinationSegments = end($SegmentInformation);
                $arrSegments = [];
                $FlyingMinutes = 0;
                $TotalLAYOVERMinutes = 0;
                $LAYOVERCityArr = [];
                $PublishedFare = 0;
                $BaseFare = 0;
                $Tax = 0;
                $YQTax = 0;
                $OtherCharges = 0;
                $ServiceFee = 0;
                $newFare = isset($alertsFare['newFare']) ? $alertsFare['newFare'] : 0;
                $oldFare = isset($alertsFare['oldFare']) ? $alertsFare['oldFare'] : 0;
                $FareBreakdown = [];
                $FairRulesArr = [];
                if ($result['totalPriceList']) {
                    foreach ($result['totalPriceList'] as $kp => $price) {
                        $fareDetail = $price['fd'];

                        // echo '<pre>';
                        // print_r($fareDetail);
                        // echo '</pre>';
                        $SeatAvailable = $fareDetail['ADULT']['sR'];
                        $classOfBooking = $fareDetail['ADULT']['cB'];
                        $Refundable = $fareDetail['ADULT']['rT'];
                        $PriceID = $price['id'];
                        $fareIdentifier = $price['fareIdentifier'];
                        if ($fareIdentifier == 'SME') {
                            $IsGSTRequired = true;
                        } else {
                            $IsGSTRequired = false;
                        }
                        if ($Refundable == 0) {
                            $IsRefundableTxt = 'Non Refundable';
                        } elseif ($Refundable == 1) {
                            $IsRefundableTxt = 'Refundable';
                        } else {
                            $IsRefundableTxt = 'Partial Refundable';
                        }
                        $ADULT = $fareDetail['ADULT']['fC']; //fare Components
                        $CHILD = isset($fareDetail['CHILD']['fC']) ? $fareDetail['CHILD']['fC'] : []; //fare Components
                        $INFANT = isset($fareDetail['INFANT']['fC']) ? $fareDetail['INFANT']['fC'] : []; //fare Components
                        // echo '<pre>';
                        // print_r(($fareDetail));
                        // echo '</pre>';
                        $ADULTafC = $fareDetail['ADULT']['afC']['TAF']; //additional fareComponents
                        $CHILDafC = isset($fareDetail['CHILD']['afC']['TAF']) ? $fareDetail['CHILD']['afC']['TAF'] : []; //additional fareComponents
                        $INFANTafC = isset($fareDetail['INFANT']['afC']['TAF']) ? $fareDetail['INFANT']['afC']['TAF'] : []; //additional fareComponents

                        $ADULTNCMTDS = isset($fareDetail['ADULT']['afC']['NCM']['TDS']) ? $fareDetail['ADULT']['afC']['NCM']['TDS'] : 0; //TDS
                        $CHILDNCMTDS = isset($fareDetail['CHILD']['afC']['NCM']['TDS']) ? $fareDetail['CHILD']['afC']['NCM']['TDS'] : 0; //TDS
                        $INFANTNCMTDS = isset($fareDetail['INFANT']['afC']['NCM']['TDS']) ? $fareDetail['INFANT']['afC']['NCM']['TDS'] : 0; //TDS

                        $ADULTNCMTOT = isset($fareDetail['ADULT']['afC']['NCM']['OT']) ? $fareDetail['ADULT']['afC']['NCM']['OT'] : 0; //- Gross Commission
                        $CHILDNCMTOT = isset($fareDetail['CHILD']['afC']['NCM']['OT']) ? $fareDetail['CHILD']['afC']['NCM']['OT'] : 0; //- Gross Commission
                        $INFANTNCMTOT = isset($fareDetail['INFANT']['afC']['NCM']['OT']) ? $fareDetail['INFANT']['afC']['NCM']['OT'] : 0; //- Gross Commission

                        $AD_MF = isset($ADULTafC['MF']) ? $ADULTafC['MF'] : 0; //Management Fee
                        $AD_YQ = isset($ADULTafC['YQ']) ? $ADULTafC['YQ'] : 0; //Fuel Surcharge
                        $AD_AGST = isset($ADULTafC['AGST']) ? $ADULTafC['AGST'] : 0; //Airline GST Component
                        $AD_MFT = isset($ADULTafC['MFT']) ? $ADULTafC['MFT'] : 0; //Management Fee Tax
                        $AD_OT = isset($ADULTafC['OT']) ? $ADULTafC['OT'] : 0; //Other Charges
                        $AD_MU = isset($ADULTafC['MU']) ? $ADULTafC['MU'] : 0; //markup
                        $AD_YR = isset($ADULTafC['YR']) ? $ADULTafC['YR'] : 0; //Carrier Misc Fee

                        $CH_MF = isset($CHILDafC['MF']) ? $CHILDafC['MF'] : 0; //Management Fee
                        $CH_YQ = isset($CHILDafC['YQ']) ? $CHILDafC['YQ'] : 0; //Fuel Surcharge
                        $CH_AGST = isset($CHILDafC['AGST']) ? $CHILDafC['AGST'] : 0; //Airline GST Component
                        $CH_MFT = isset($CHILDafC['MFT']) ? $CHILDafC['MFT'] : 0; //Management Fee Tax
                        $CH_OT = isset($CHILDafC['OT']) ? $CHILDafC['OT'] : 0; //Other Charges
                        $CH_MU = isset($CHILDafC['MU']) ? $CHILDafC['MU'] : 0; //markup
                        $CH_YR = isset($CHILDafC['YR']) ? $CHILDafC['YR'] : 0; //Carrier Misc Fee

                        $IN_MF = isset($INFANTafC['MF']) ? $INFANTafC['MF'] : 0; //Management Fee
                        $IN_YQ = isset($INFANTafC['YQ']) ? $INFANTafC['YQ'] : 0; //Fuel Surcharge
                        $IN_AGST = isset($INFANTafC['AGST']) ? $INFANTafC['AGST'] : 0; //Airline GST Component
                        $IN_MFT = isset($INFANTafC['MFT']) ? $INFANTafC['MFT'] : 0; //Management Fee Tax
                        $IN_OT = isset($INFANTafC['OT']) ? $INFANTafC['OT'] : 0; //Other Charges
                        $IN_MU = isset($INFANTafC['MU']) ? $INFANTafC['MU'] : 0; //markup
                        $IN_YR = isset($INFANTafC['YR']) ? $INFANTafC['YR'] : 0; //Carrier Misc Fee

                        if ($kp == 0) {
                            $PublishedFare += (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                            $BaseFare += (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                            $Tax += (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                        }

                        $PublishedFareIN = (($ADULT['TF'] * $adultCount) + ($CHILD['TF'] * $childCount) + ($INFANT['TF'] * $infantCount)); //Total Fare
                        $BaseFareIN = (($ADULT['BF'] * $adultCount) + ($CHILD['BF'] * $childCount) + ($INFANT['BF'] * $infantCount)); //Base Fare
                        $TaxIN = (($ADULT['TAF'] * $adultCount) + ($CHILD['TAF'] * $childCount) + ($INFANT['TAF'] * $infantCount)); //Taxes and Fees
                        $NetFare = (($ADULT['NF'] * $adultCount) + ($CHILD['NF'] * $childCount) + ($INFANT['NF'] * $infantCount)); //Taxes and Fees
                        //$NetCommission = (($ADULT['NCM'] * $adultCount) + ($CHILD['NCM'] * $childCount) + ($INFANT['NCM'] * $infantCount)); //Taxes and Fees
                        //echo '<pre>';print_r(($ADULTafC));echo '</pre>';
                        $YQTax = (($AD_YQ * $adultCount) + ($CH_YQ * $childCount) + ($IN_YQ * $infantCount));
                        $OtherCharges = (($AD_OT * $adultCount) + ($CH_OT * $childCount) + ($IN_OT * $infantCount));
                        $ServiceFee = (($AD_MF * $adultCount) + ($CH_MF * $childCount) + ($IN_MF * $infantCount));
                        $ManagementFeeTax = (($AD_MFT * $adultCount) + ($CH_MFT * $childCount) + ($IN_MFT * $infantCount));
                        $AirlineGSTComponent = (($AD_AGST * $adultCount) + ($CH_AGST * $childCount) + ($IN_AGST * $infantCount));
                        $CarrierMiscFee = (($AD_YR * $adultCount) + ($CH_YR * $childCount) + ($IN_YR * $infantCount));
                        $MUFee = (($AD_MU * $adultCount) + ($CH_MU * $childCount) + ($IN_MU * $infantCount));
                        $TdsOnPLB = (($ADULTNCMTDS * $adultCount) + ($CHILDNCMTDS * $childCount) + ($INFANTNCMTDS * $infantCount));
                        $NetCommission = (($ADULTNCMTOT * $adultCount) + ($CHILDNCMTOT * $childCount) + ($INFANTNCMTOT * $infantCount));

                        $PublishedFare = $PublishedFareIN;
                        $CommissionEarned = $NetCommission;
                        $PLBEarned = 0; //$result['Fare']['PLBEarned'];
                        $IncentiveEarned = 0; //$result['Fare']['IncentiveEarned'];
                        $OfferedFare = $NetFare;
                        $markUpArr = array(
                            'getMarkup' => $getMarkup,
                            'PublishedFare' => $PublishedFare,
                            'OfferedFare' => $OfferedFare,
                            'intCommissionEarned' => $CommissionEarned,
                            'TdsOnPLB' => $TdsOnPLB,
                            'MUFee' => $MUFee,
                            'intPLBEarned' => $PLBEarned,
                            'intIncentiveEarned' => $IncentiveEarned,
                            'intMemberCount' => $intMemberCount,
                            'intFlightRoute' => $strFlightRoute,
                            'interNationalSearch' => $interNationalSearch,
                        );
                        // echo '<pre>';
                        // print_r(($markUpArr));
                        // echo '</pre>';
                        $arrMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArr);
                        // echo '<pre>';
                        // print_r(($arrMarkUps));
                        // echo '</pre>';

                        $markUpArrBR = array(
                            'getMarkup' => $getMarkup,
                            'PublishedFare' => ($ADULT['TF'] * $adultCount),
                            'OfferedFare' => ($ADULT['NF'] * $adultCount),
                            'intCommissionEarned' => ($ADULT['NCM'] * $adultCount),
                            'TdsOnPLB' => ($ADULTNCMTDS * $adultCount),
                            'MUFee' => ($AD_MU * $adultCount),
                            'intPLBEarned' => $PLBEarned,
                            'intIncentiveEarned' => $IncentiveEarned,
                            'intMemberCount' => $adultCount,
                            'intFlightRoute' => $strFlightRoute,
                            'interNationalSearch' => $interNationalSearch,
                        );
                        $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);


                        $FareBreakdown[0]['Currency'] = 'INR';
                        $FareBreakdown[0]['PassengerType'] = 1;
                        $FareBreakdown[0]['PassengerCount'] = $adultCount;
                        $FareBreakdown[0]['TaxIN'] = ($ADULT['TAF'] * $adultCount);
                        $FareBreakdown[0]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                        $FareBreakdown[0]['TotalBaseFare'] = ($ADULT['TF'] * $adultCount);
                        $FareBreakdown[0]['BaseFare'] = ($ADULT['BF'] * $adultCount);
                        $FareBreakdown[0]['CommissionEarned'] = ($ADULT['NCM'] * $adultCount);
                        $FareBreakdown[0]['TDS'] = ($ADULTNCMTDS * $adultCount);
                        $FareBreakdown[0]['MF'] = ($AD_MF * $adultCount);
                        $FareBreakdown[0]['YQ'] = ($AD_YQ * $adultCount);
                        $FareBreakdown[0]['AGST'] = ($AD_AGST * $adultCount);
                        $FareBreakdown[0]['MFT'] = ($AD_MFT * $adultCount);
                        $FareBreakdown[0]['OT'] = ($AD_OT * $adultCount);
                        $FareBreakdown[0]['MU'] = ($AD_MU * $adultCount);
                        $FareBreakdown[0]['YR'] = ($AD_YR * $adultCount);
                        $FareBreakdown[0]['FixedMarkUp'] = $arrMarkUpsBR['intAgencyFixMarkUp']; //$intAgencyFixMarkUpA;
                        $FareBreakdown[0]['GSTOnMarkUp'] = $arrMarkUpsBR['intSTaxOnAgencyFixMarkUp']; //$intSTaxOnAgencyFixMarkUpA;
                        $FareBreakdown[0]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency']; //$intCommisionEarnedForAgency;
                        $FareBreakdown[0]['GSTonComm'] = $arrMarkUpsBR['intGSTOnAgencyCommisionEarned']; //$intGSTOnAgencyCommisionEarned;
                        $FareBreakdown[0]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp']; //$intGTXMarkUpA;
                        $FareBreakdown[0]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp']; //$intSTaxOnGTXMarkUpA;
                        $FareBreakdown[0]['AdditionalTxnFeeOfrd'] = 0;
                        $FareBreakdown[0]['AdditionalTxnFeePub'] = 0;
                        $FareBreakdown[0]['PGCharge'] = 0;
                        $FareBreakdown[0]['Baggage'] = isset($fareDetail['ADULT']['bI']['iB']) ? $fareDetail['ADULT']['bI']['iB'] : []; //Check In Baggage;
                        $FareBreakdown[0]['CabinBaggage'] = isset($fareDetail['ADULT']['bI']['cB']) ? $fareDetail['ADULT']['bI']['cB'] : []; //Cabin Baggage ;
                        if (isset($fareDetail['CHILD'])) {

                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($CHILD['TF'] * $childCount),
                                'OfferedFare' => ($CHILD['NF'] * $childCount),
                                'intCommissionEarned' => ($CHILD['NCM'] * $childCount),
                                'TdsOnPLB' => ($CHILDNCMTDS * $childCount),
                                'MUFee' => ($CH_MU * $childCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $childCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                            $FareBreakdown[1]['Currency'] = 'INR';
                            $FareBreakdown[1]['PassengerType'] = 2;
                            $FareBreakdown[1]['PassengerCount'] = $childCount;
                            $FareBreakdown[1]['TaxIN'] = ($CHILD['TAF'] * $childCount);
                            $FareBreakdown[1]['TotalBaseFare'] = ($CHILD['TF'] * $childCount);
                            $FareBreakdown[1]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[1]['BaseFare'] = ($CHILD['BF'] * $childCount);
                            $FareBreakdown[1]['CommissionEarned'] = ($CHILD['NCM'] * $childCount);
                            $FareBreakdown[1]['TDS'] = ($CHILDNCMTDS * $childCount);
                            $FareBreakdown[1]['MF'] = ($CH_MF * $childCount);
                            $FareBreakdown[1]['YQ'] = ($CH_YQ * $childCount);
                            $FareBreakdown[1]['AGST'] = ($CH_AGST * $childCount);
                            $FareBreakdown[1]['MFT'] = ($CH_MFT * $childCount);
                            $FareBreakdown[1]['OT'] = ($CH_OT * $childCount);
                            $FareBreakdown[1]['MU'] = ($CH_MU * $childCount);
                            $FareBreakdown[1]['YR'] = ($CH_YR * $childCount);
                            $FareBreakdown[1]['FixedMarkUp'] = $arrMarkUpsBR['intAgencyFixMarkUp']; //$intAgencyFixMarkUpA;
                            $FareBreakdown[1]['GSTOnMarkUp'] = $arrMarkUpsBR['intSTaxOnAgencyFixMarkUp']; //$intSTaxOnAgencyFixMarkUpA;
                            $FareBreakdown[1]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency']; //$intCommisionEarnedForAgency;
                            $FareBreakdown[1]['GSTonComm'] = $arrMarkUpsBR['intGSTOnAgencyCommisionEarned']; //$intGSTOnAgencyCommisionEarned;
                            $FareBreakdown[1]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp']; //$intGTXMarkUpA;
                            $FareBreakdown[1]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp']; //$intSTaxOnGTXMarkUpA;
                            $FareBreakdown[1]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[1]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[1]['PGCharge'] = 0;
                            $FareBreakdown[1]['Baggage'] = isset($fareDetail['CHILD']['bI']['iB']) ? $fareDetail['CHILD']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[1]['CabinBaggage'] = isset($fareDetail['CHILD']['bI']['cB']) ? $fareDetail['CHILD']['bI']['cB'] : []; //Cabin Baggage ;
                        }
                        if (isset($fareDetail['INFANT'])) {
                            $markUpArrBR = array(
                                'getMarkup' => $getMarkup,
                                'PublishedFare' => ($INFANT['TF'] * $infantCount),
                                'OfferedFare' => ($INFANT['NF'] * $infantCount),
                                'intCommissionEarned' => ($INFANT['NCM'] * $infantCount),
                                'TdsOnPLB' => ($INFANTNCMTDS * $infantCount),
                                'MUFee' => ($IN_MU * $infantCount),
                                'intPLBEarned' => $PLBEarned,
                                'intIncentiveEarned' => $IncentiveEarned,
                                'intMemberCount' => $infantCount,
                                'intFlightRoute' => $strFlightRoute,
                                'interNationalSearch' => $interNationalSearch,
                            );
                            $arrMarkUpsBR = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->calculateMarkup($markUpArrBR);
                            $FareBreakdown[2]['Currency'] = 'INR';
                            $FareBreakdown[2]['PassengerType'] = 3;
                            $FareBreakdown[2]['PassengerCount'] = $infantCount;
                            $FareBreakdown[2]['TaxIN'] = ($INFANT['TAF'] * $infantCount);
                            $FareBreakdown[2]['TotalBaseFare'] = ($INFANT['TF'] * $infantCount);
                            $FareBreakdown[2]['BaseFareCal'] = ($arrMarkUpsBR['BaseFareCal']);
                            $FareBreakdown[2]['BaseFare'] = ($INFANT['BF'] * $infantCount);
                            $FareBreakdown[2]['CommissionEarned'] = ($INFANT['NCM'] * $infantCount);
                            $FareBreakdown[2]['TDS'] = ($INFANTNCMTDS * $infantCount);
                            $FareBreakdown[2]['MF'] = ($IN_MF * $infantCount);
                            $FareBreakdown[2]['YQ'] = ($IN_YQ * $infantCount);
                            $FareBreakdown[2]['AGST'] = ($IN_AGST * $infantCount);
                            $FareBreakdown[2]['OT'] = ($IN_OT * $infantCount);
                            $FareBreakdown[2]['MFT'] = ($IN_MFT * $infantCount);
                            $FareBreakdown[2]['MU'] = ($IN_MU * $infantCount);
                            $FareBreakdown[2]['YR'] = ($IN_YR * $infantCount);
                            $FareBreakdown[2]['FixedMarkUp'] = $arrMarkUpsBR['intAgencyFixMarkUp']; //$intAgencyFixMarkUpA;
                            $FareBreakdown[2]['GSTOnMarkUp'] = $arrMarkUpsBR['intSTaxOnAgencyFixMarkUp']; //$intSTaxOnAgencyFixMarkUpA;
                            $FareBreakdown[2]['CommEarned'] = $arrMarkUpsBR['intCommisionEarnedForAgency']; //$intCommisionEarnedForAgency;
                            $FareBreakdown[2]['GSTonComm'] = $arrMarkUpsBR['intGSTOnAgencyCommisionEarned']; //$intGSTOnAgencyCommisionEarned;
                            $FareBreakdown[2]['intGTXMarkUp'] = $arrMarkUpsBR['intGTXMarkUp']; //$intGTXMarkUpA;
                            $FareBreakdown[2]['GTXMarkUpGST'] = $arrMarkUpsBR['intSTaxOnGTXMarkUp']; //$intSTaxOnGTXMarkUpA;
                            $FareBreakdown[2]['AdditionalTxnFeeOfrd'] = 0;
                            $FareBreakdown[2]['AdditionalTxnFeePub'] = 0;
                            $FareBreakdown[2]['PGCharge'] = 0;
                            $FareBreakdown[2]['Baggage'] = isset($fareDetail['INFANT']['bI']['iB']) ? $fareDetail['INFANT']['bI']['iB'] : []; //Check In Baggage;
                            $FareBreakdown[2]['CabinBaggage'] = isset($fareDetail['INFANT']['bI']['cB']) ? $fareDetail['INFANT']['bI']['cB'] : []; //Cabin Baggage ;
                        }
                        //echo '<pre>';print_r($price);
                        $FairRulesArr = array(
                            "Currency" => $this->CurrencyTitle, //$Currency,
                            "CurrencyRate" => $this->CurrencyRate, //$Currency,
                            "currencySysId" => $this->CurrencyId,
                            "BaseFare" => $BaseFareIN,
                            "Tax" => $TaxIN,
                            "YQTax" => $YQTax,
                            "OtherCharges" => $OtherCharges,
                            "Discount" => 0, //$Discount,
                            "ServiceFee" => $ServiceFee,
                            "ManagementFeeTax" => $ManagementFeeTax,
                            "AirlineGSTComponent" => $AirlineGSTComponent,
                            "CarrierMiscFee" => $CarrierMiscFee,
                            "MUFee" => $MUFee,
                            "intPublishedFare" => $PublishedFareIN,
                            "PublishedFare" => ($arrMarkUps['PublishFare'] * $this->CurrencyRate),
                            "OfferedFare" => $arrMarkUps['intOfferedFare'],
                            "PLBEarned" => $PLBEarned,
                            "IncentiveEarned" => $IncentiveEarned,
                            "TdsOnPLB" => $TdsOnPLB,
                            "TdsOnIncentive" => 0,
                            "AdditionalTxnFeeOfrd" => 0,
                            "AdditionalTxnFeePub" => 0,
                            "Refundable" => $Refundable,
                            "IsRefundableTxt" => $IsRefundableTxt,
                            "PriceID" => $PriceID,
                            "IsGSTRequired" => $IsGSTRequired,
                            "fareIdentifier" => str_replace('_', ' ', $fareIdentifier),
                            "SeatAvailable" => $SeatAvailable,
                            "classOfBooking" => $classOfBooking,
                            "newFare" => $newFare,
                            "oldFare" => $oldFare,
                            "FareClass" => $fareDetail['ADULT']['cc'],
                            "FixedMarkUp" => $arrMarkUps['intAgencyFixMarkUp'],
                            "GSTOnMarkUp" => $arrMarkUps['intSTaxOnAgencyFixMarkUp'],
                            "CommEarned" => $arrMarkUps['intCommisionEarnedForAgency'],
                            "GSTonComm" => $arrMarkUps['intGSTOnAgencyCommisionEarned'],
                            "intGTXMarkUp" => $arrMarkUps['intGTXMarkUp'],
                            "GTXMarkUpGST" => $arrMarkUps['intSTaxOnGTXMarkUp'],
                            "FareBreakdown" => $FareBreakdown,
                        );
                        // echo '<pre>';
                        // print_r($FairRulesArr[$kp]);
                        // echo '</pre>';
                    }
                }


                $BAGGAGE = isset($OriginSegments['ssrInfo']['BAGGAGE']) ? $OriginSegments['ssrInfo']['BAGGAGE'] : '';
                $MEAL = isset($OriginSegments['ssrInfo']['MEAL']) ? $OriginSegments['ssrInfo']['MEAL'] : '';
                if ($BAGGAGE) {
                    foreach ($BAGGAGE as $b => $bag) {
                        $Weight = str_replace('Excess Baggage - ', '', $bag['desc']);
                        $BaggageArr[$b]['Currency'] = 'INR';
                        $BaggageArr[$b]['key'] = $OriginSegments['id'];
                        $BaggageArr[$b]['Code'] = $bag['code'];
                        $BaggageArr[$b]['Price'] = isset($bag['amount']) ? $bag['amount'] : 0;
                        $BaggageArr[$b]['Weight'] = $Weight;
                    }
                }
                if ($MEAL) {
                    foreach ($MEAL as $m => $meals) {
                        $MealArr[$m]['Currency'] = 'INR';
                        $MealArr[$m]['key'] = $OriginSegments['id'];
                        $MealArr[$m]['Code'] = $meals['code'];
                        $MealArr[$m]['Price'] = isset($meals['amount']) ? $meals['amount'] : 0;
                        $MealArr[$m]['Description'] = $meals['desc'];
                    }
                }

                if ($SegmentInformation) {
                    foreach ($SegmentInformation as $k => $segments) {
                        //echo '<pre>';print_r($segments);
                        $duration = $segments['duration'];
                        $LAYOVERMinutes = $GroundTime = isset($segments['cT']) ? $segments['cT'] : 0;
                        $LAYOVERCity = $LAYOVERCityArr[] = isset($segments['cT']) ? $segments['aa']['city'] : '';
                        $FlyingMinutes += ($duration + $LAYOVERMinutes);
                        $TotalLAYOVERMinutes += $LAYOVERMinutes;

                        $FareClass = $totalPriceList['fd']['ADULT']['cB'];
                        $strBaggage = $totalPriceList['fd']['ADULT']['bI']['iB']; ///Checking Baggage
                        $strCabinBaggage = $totalPriceList['fd']['ADULT']['bI']['cB']; ////Cabin Baggage
                        if (!empty($strCabinBaggage)) {
                            $IsBaggage = true;
                        } else {
                            $IsBaggage = false;
                        }

                        $AirlineCode = $segments['fD']['aI']['code'];
                        $AirlineName = $segments['fD']['aI']['name'];
                        $FlightNumber = $segments['fD']['fN'];
                        $SegFlightNumber = $AirlineCode . "-" . $FlightNumber;

                        $originAirportName = $segments['da']['name'];
                        $originAirportCode = $segments['da']['code'];
                        $originCityName = $segments['da']['city'];
                        $originCountryName = $segments['da']['country'];
                        $originDepTime = $segments['dt'];

                        $destinationAirportName = $segments['aa']['name'];
                        $destinationAirportCode = $segments['aa']['code'];
                        $destinationCityName = $segments['aa']['city'];
                        $destinationCountryName = $segments['aa']['country'];
                        $destinationArrTime = $segments['at'];

                        $DepTerminal = isset($segments['da']['terminal']) ? $segments['da']['terminal'] : '';
                        $ArrTerminal = isset($segments['aa']['terminal']) ? $segments['aa']['terminal'] : '';

                        $filePath = $this->getflightlogo($AirlineCode);

                        $LAYOVERDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->MinutesToHours($LAYOVERMinutes);

                        $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($destinationArrTime);
                        $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($originDepTime);
                        $strDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->convertMinutesToHoursFormat($duration);
                        $arrSegments[] = array(
                            "segmentid" => $segments['id'],
                            "originAirportName" => $originAirportName,
                            "destinationAirportName" => $destinationAirportName,
                            "originCityName" => $originCityName,
                            "originCountryName" => $originCountryName,
                            "destinationCityName" => $destinationCityName,
                            "destinationCountryName" => $destinationCountryName,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationAirportCode" => $destinationAirportCode,
                            "destinationArrTime" => $destinationArrTime,
                            "SegFlightNumber" => $SegFlightNumber,
                            "AirlineCode" => $AirlineCode,
                            "AirlineName" => $AirlineName,
                            "FareClass" => $FareClass,
                            "originAirportCode" => $originAirportCode,
                            "originDepTime" => $originDepTime,
                            "TripIndicator" => ($k + 1),
                            "Baggage" => $strBaggage,
                            "CabinBaggage" => $strCabinBaggage,
                            "IsBaggage" => $IsBaggage,
                            "IsMealIncludes" => $IsMealIncludes,
                            "SegmentIndicator" => ($k + 1),
                            "Duration" => $duration,
                            "GroundTime" => $GroundTime,
                            "NoOfSeatAvailable" => $NoOfSeatAvailable,
                            "strDepartureDtTime" => $strDepartureDtTime,
                            "strArrivalDtTime" => $strArrivalDtTime,
                            "FlightDuration" => $strDuration,
                            "LAYOVERDuration" => $LAYOVERDuration,
                            "LAYOVERCity" => $LAYOVERCity,
                            "DepTerminal" => $DepTerminal,
                            "ArrTerminal" => $ArrTerminal,
                            "filePath" => $filePath,
                        );
                    }
                }
                $flightSSRDetails = new Zend_Session_Namespace('flightSSRDetails');
                $flightSSRDetails->params['Baggage'] = $BaggageArr;
                $flightSSRDetails->params['Meal'] = $MealArr;

                $LAYOVERTime = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->MinutesToHours($TotalLAYOVERMinutes);

                $AirlineCode = $OriginSegments['fD']['aI']['code'];
                $FlightNumber = $OriginSegments['fD']['fN'];
                $strFlightNumber = $AirlineCode . "-" . $FlightNumber;
                $strAirlineName = $OriginSegments['fD']['aI']['name'];
                $IsLCC = $OriginSegments['fD']['aI']['isLcc'];
                $strSourceAirportCode = $OriginSegments['da']['code'];
                $strDestinationAirportCode = $DestinationSegments['aa']['code'];

                $Stops = $DestinationSegments['sN'];
                if ($Stops == 0) {
                    $StopCountTxt = "Non-stop";
                } else {
                    $StopCountTxt = $Stops . " Stop(s)";
                }
                $filePath = $this->getflightlogo($AirlineCode);
                $FlightDuration = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->CalculateHoursMinutes($OriginSegments['dt'], $DestinationSegments['at']);
                $strArrivalDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($DestinationSegments['at']);
                $strDepartureDtTime = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getTimeFromApiStringTJ($OriginSegments['dt']);
                $airlineSysId = !empty($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                $arrInsertFlightData[$key]['bookingId'] = $bookingId;
                $arrInsertFlightData[$key]['FlightNumber'] = $strFlightNumber;
                $arrInsertFlightData[$key]['AirlineName'] = $strAirlineName;
                $arrInsertFlightData[$key]['AirlineCode'] = $AirlineCode;
                $arrInsertFlightData[$key]['AirInvenSysId'] = 0;
                $arrInsertFlightData[$key]['IsLCC'] = $IsLCC;
                $arrInsertFlightData[$key]['IsMealIncludes'] = $IsMealIncludes;
                $arrInsertFlightData[$key]['IsBagIncludes'] = $IsBagIncludes;
                $arrInsertFlightData[$key]['IsRefundable'] = $IsRefundable;
                $arrInsertFlightData[$key]['IsRefundableTxt'] = $IsRefundableTxt;
                $arrInsertFlightData[$key]['SearchTraceId'] = $SearchTraceId;
                $arrInsertFlightData[$key]['apiTraceId'] = $strTraceId;
                $arrInsertFlightData[$key]['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData[$key]['DepartureTime'] = $strDepartureDtTime;
                $arrInsertFlightData[$key]['ArrivalTime'] = $strArrivalDtTime;
                $arrInsertFlightData[$key]['TravelDate'] = $OriginSegments['dt'];
                $arrInsertFlightData[$key]['LocalFromTime'] = str_replace('T', ' ', $OriginSegments['dt']);
                $arrInsertFlightData[$key]['FromUTCTime'] = $OriginSegments['dt'];
                $arrInsertFlightData[$key]['LocalToTime'] = str_replace('T', ' ', $DestinationSegments['at']);
                $arrInsertFlightData[$key]['ToUTCTime'] = $DestinationSegments['at'];
                $arrInsertFlightData[$key]['IsDirect'] = 0;
                $arrInsertFlightData[$key]['FareClass'] = $strFareClass;
                $arrInsertFlightData[$key]['LAYOVERCity'] = isset($LAYOVERCityArr[0]) ? $LAYOVERCityArr[0] : '';
                $arrInsertFlightData[$key]['GroundTime'] = $TotalLAYOVERMinutes;
                $arrInsertFlightData[$key]['LAYOVERDuration'] = $LAYOVERTime;
                $arrInsertFlightData[$key]['FlyingMinutes'] = $FlyingMinutes;
                $arrInsertFlightData[$key]['DepartureDateTxt'] = date('D, d M', strtotime($OriginSegments['dt']));
                $arrInsertFlightData[$key]['ArrivalDateTxt'] = date('D, d M', strtotime($DestinationSegments['at']));
                $arrInsertFlightData[$key]['FlightDuration'] = $FlightDuration;
                $arrInsertFlightData[$key]['SourcePlaceSysId'] = $intSourceCityId;
                $arrInsertFlightData[$key]['DestPlaceSysId'] = $intDestinationCityId;
                $arrInsertFlightData[$key]['SourceAirportCode'] = $strSourceAirportCode;
                $arrInsertFlightData[$key]['DestAirportCode'] = $strDestinationAirportCode;
                //                $arrInsertFlightData[$key]['AirportHaultMinutes'] = $AirportHaultMinutes;
                $arrInsertFlightData[$key]['StopCount'] = $StopCountTxt;
                $arrInsertFlightData[$key]['Stops'] = $Stops;
                $arrInsertFlightData[$key]['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                $arrInsertFlightData[$key]['TotalFlightMembers'] = $intMemberCount;
                $arrInsertFlightData[$key]['CurrencyType'] = 1;
                $arrInsertFlightData[$key]['PublishedFare'] = $PublishedFare; // As Discussed with GG
                $arrInsertFlightData[$key]['PublishedFareTxt'] = number_format($PublishedFare); // As Discussed with GG
                //                $arrInsertFlightData[$key]['CommissionEarned'] = $CommissionEarned;
                $arrInsertFlightData[$key]['ApiResultIndex'] = $ResultIndex;
                $arrInsertFlightData[$key]['JourneyType'] = $intJourneyType;
                $arrInsertFlightData[$key]['TripType'] = $intTripType;
                $arrInsertFlightData[$key]['IsInternational'] = $interNationalSearch;
                $arrInsertFlightData[$key]['logo'] = $filePath;
                $arrInsertFlightData[$key]['FairRules'] = $FairRulesArr;
                //$arrInsertFlightData[$key]['Fare'] = $FairRulesArr;
                $arrInsertFlightData[$key]['Segments'] = $arrSegments;
                $arrInsertFlightData[$key]['Baggage'] = $BaggageArr;
                $arrInsertFlightData[$key]['Meal'] = $MealArr;
                $arrInsertFlightData[$key]['isGSTMandatory'] = $isGSTMandatory;
                $arrInsertFlightData[$key]['IsPassMandatory'] = $IsPassMandatory;
                $arrInsertFlightData[$key]['IsPassExpiry'] = $IsPassExpiry;
                $arrInsertFlightData[$key]['IsPassIssue'] = $IsPassIssue;
                $arrInsertFlightData[$key]['IsPassDateOfBirth'] = $IsPassDateOfBirth;


                $arrInsertFlightData[$key]['strTraceId'] = $strTraceId;


                $arrInsertFlightData[$key]['arrCommonInsVariables'] = $arrCommonInsVariables;
                $arrAirlineName[] = $AirlineCode . '-' . $strAirlineName;
                $AttPriceRange[] = $PublishedFare;
                $FiltStopCount[] = $StopCountTxt;
                $arrInsertFlightData[$key]['FilterPrice'] = ''; //$FilterPrice;

            }
        }


        //echo '<pre>';
        //print_r($arrInsertFlightData);
        return $arrInsertFlightData;
    }
    public function loadAddOnsAction()
    {
        $getData = $this->getRequest()->getParams();
        // echo '<pre>';
        // print_r($getData);
        // die('d');
        $CustomerSession = new Zend_Session_Namespace('CustomerSession');
        $FlightBookingData = json_decode($getData['intOutBoundId'], true);
        $flightSSRDetails = json_decode($getData['SSRArr'], true);
        $TotalTravellers = json_decode($getData['TotalTravellers'], true);
        $Response = $flightSSRDetails;

        $SSRArr = $Response;
        $html = new Zend_View();
        $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
        $html->assign(array('CustomerSession' => $TotalTravellers, 'SSRArr' => $SSRArr, 'SSRArrInb' => [], 'flightSSRDetails' => $flightSSRDetails, 'FlightBookingData' => $FlightBookingData, 'FlightBookingDataInbound' => []));
        $bodyText = $html->render('load-add-ons.phtml');
        $response = array('success' => true, 'message' => 'Done', 'html' => $bodyText);
        echo json_encode($response);
        exit;
        //print_r($getData);
    }

    public function getseatpageAction()
    {
        if ($this->getRequest()->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();
            $getData = $this->getRequest()->getParams();
            // echo '<pre>';
            // print_r($getData);
            // die('d');
            $FlightBookingData = json_decode($getData['intOutBoundId'], true);
            $html = new Zend_View();
            $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
            $html->assign(array('FlightBookingData' => $FlightBookingData, 'CurrencyTitle' => $this->CurrencyTitle, 'CurrencyRate' => $this->CurrencyRate));
            $bodyText = $html->render('getseatpage.phtml');
            $response = array('success' => true, 'message' => 'Done', 'html' => $bodyText);
            echo json_encode($response);
            exit;
        } else {
            die('Page not found!');
        }
        //echo '<pre>';print_r($getData);die;
    }
    public function seatmapAction()
    {
        if ($this->getRequest()->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();
            $getData = $this->getRequest()->getParams();

            $segmentid = $getData['segmentid'];
            $FlightBookingData = json_decode($getData['intOutBoundId'], true);
            $CustomerSession = json_decode($getData['TotalTravellers'], true);
            $selectedSeatSession = json_decode($getData['selectedSeatSession'], true);
            $sessionFlightSearchParams = json_decode($getData['sessionFlightSearchParams'], true);
            $leadId     = $sessionFlightSearchParams['editLeadId'];
            $objFlightProposal = new Travel_Model_TblFlightProposal();
            $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId);
            $AgencySysId = $arrAgencyDetails['AgencySysId'];
            $bookingId = $FlightBookingData[0]['bookingId'];
            $data = ['bookingId' => $bookingId];
            // echo '<pre>';
            // print_r($AgencySysId);
            // echo '</pre>';
            // die;
            $apiResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->GetSeatMapFlightsTripJack($data, $AgencySysId);


            $SegmentsArr = [];
            if ($FlightBookingData) {
                foreach ($FlightBookingData as $Datass) {
                    if ($Datass['Segments']) {
                        foreach ($Datass['Segments'] as $keys => $value) {
                            $SegmentsArr[$value['segmentid']] = $value;
                        }
                    }
                }
            }
            $this->view->apiResponse = $apiResponse;
            $this->view->segmentid = $segmentid;
            $this->view->SegmentsArr = $SegmentsArr;
            $this->view->baseUrl = $this->baseUrl;
            $this->view->CustomerSession = $CustomerSession;
            $this->view->selectedSeatSession = $selectedSeatSession;
            $this->view->CurrencyTitle = $this->CurrencyTitle;
        } else {
            die('Page not found!');
        }
    }

    public function updatefareAction()
    {
        $getData = $this->getRequest()->getParams();
        $FlightBookingData = json_decode($getData['intOutBoundId'], true);
        $CustomerSession = json_decode($getData['TotalTravellers'], true);
        $SSRArr = json_decode($getData['SSRArr'], true);
        $SelectedMeal = json_decode($getData['SelectedMeal'], true);
        $SelectedBagg = json_decode($getData['SelectedBagg'], true);
        $SelectedSeat = json_decode($getData['SelectedSeat'], true);
        if (isset($getData['sessionFlightSearchParams'])) {
            $sessionFlightSearchParams = json_decode($getData['sessionFlightSearchParams'], true);
        }

        if (!empty($SelectedMeal)) {
            $SelectedMealSessionNew = $SelectedMeal;
        } else {
            $SelectedMealSessionNew = [];
        }
        if (!empty($SelectedBagg)) {
            $SelectedBaggSessionNew = $SelectedBagg;
        } else {
            $SelectedBaggSessionNew = [];
        }
        //echo '<pre>';
        //print_r($FlightBookingData);
        //print_r($SSRArr);
        //die;
        $BaggageArr = [];
        $MealArr = [];
        if ($SSRArr['Baggage']) {
            foreach ($SSRArr['Baggage'] as $Datass) {
                if ($Datass) {
                    foreach ($Datass as $keys => $value) {
                        $BaggageArr[$value['key']][] = $value;
                    }
                }
            }
        }
        if ($SSRArr['Meal']) {
            foreach ($SSRArr['Meal'] as $Datass) {
                if ($Datass) {
                    foreach ($Datass as $keys => $value) {
                        $MealArr[$value['key']][] = $value;
                    }
                }
            }
        }

        $CustomerSysId = $getData['CustomerSysId'];
        $segmentid = $getData['segmentid'];
        $index = $getData['index'];

        $NewArray = false;
        if ($getData['actiontype'] == 'meal') {
            $getData['data'] = $MealArr[$segmentid][$index];
            if (!empty($SelectedMealSessionNew[$segmentid])) {
                foreach ($SelectedMealSessionNew[$segmentid] as $CustomerId => $val) {
                    if ($CustomerId == $CustomerSysId) {
                        $SelectedMealSessionNew[$segmentid][$CustomerId] = $getData['data'];
                    } else {
                        $NewArray = true;
                        $SelectedMealSessionNew[$segmentid][$CustomerId] = $val;
                    }
                }
            } else {
                $SelectedMealSessionNew[$segmentid][$CustomerSysId] = $getData['data'];
            }
            if ($NewArray) {
                $SelectedMealSessionNew[$segmentid][$CustomerSysId] = $getData['data'];
            }
            //echo '<pre>';
            //print_r($SelectedMealSessionNew);
            //die;
        } else {
            $getData['data'] = $BaggageArr[$segmentid][$index];
            if (!empty($SelectedBaggSessionNew[$segmentid])) {
                foreach ($SelectedBaggSessionNew[$segmentid] as $CustomerId => $val) {
                    if ($CustomerId == $CustomerSysId) {
                        $SelectedBaggSessionNew[$segmentid][$CustomerId] = $getData['data'];
                    } else {
                        $NewArray = true;
                        $SelectedBaggSessionNew[$segmentid][$CustomerId] = $val;
                    }
                }
            } else {
                $SelectedBaggSessionNew[$segmentid][$CustomerSysId] = $getData['data'];
            }
            if ($NewArray) {
                $SelectedBaggSessionNew[$segmentid][$CustomerSysId] = $getData['data'];
            }
        }

        // print_r($SelectedBaggSessionNew);
        // echo '</pre>';
        $BaggFare = 0;
        $MealFare = 0;
        $SeatPrice = 0;
        if ($SelectedBaggSessionNew) {
            foreach ($SelectedBaggSessionNew as $values) {
                foreach ($values as $val) {
                    $BaggFare += $val['Price'];
                }
            }
        }
        if ($SelectedMealSessionNew) {
            foreach ($SelectedMealSessionNew as $values) {
                foreach ($values as $val) {
                    $MealFare += $val['Price'];
                }
            }
        }
        if ($SelectedSeat) {
            foreach ($SelectedSeat as $values) {
                foreach ($values as $val) {
                    $SeatPrice += $val['amount'];
                }
            }
        }
        $intNetPublishedFare = 0;
        if ($FlightBookingData) {
            foreach ($FlightBookingData as $value) {
                $intNetPublishedFare += $value['FairRules']['PublishedFare'];
            }
        }
        $apiResponse = ($FlightBookingData);
        $Data = $apiResponse;
        $MobilePublishedFare = ($intNetPublishedFare + $MealFare + $BaggFare + $SeatPrice);

        $html = new Zend_View();
        $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
        $html->assign(array('Data' => $FlightBookingData, 'actiontype' => $getData['actiontype'], 'sessionFlightSearchParams' => $sessionFlightSearchParams, 'selectedSeatSession' => $SelectedSeat, 'SelectedMealSessionNew' => $SelectedMealSessionNew, 'SelectedBaggSessionNew' => $SelectedBaggSessionNew, 'CurrencyTitle' => $this->CurrencyTitle, 'CurrencyRate' => $this->CurrencyRate));
        $bodyText = $html->render('getflightfarequote.phtml');
        $response = array('success' => true, 'message' => 'Done', 'MobilePublishedFare' => $this->CurrencyTitle . ' ' . number_format($MobilePublishedFare, 2), 'SelectedMealSessionNew' => json_encode($SelectedMealSessionNew), 'SelectedBaggSessionNew' => json_encode($SelectedBaggSessionNew), 'html' => $bodyText);
        echo json_encode($response);
        exit;
    }

    public function continuewithseatmapAction()
    {
        if ($this->getRequest()->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();
            $getData = $this->getRequest()->getParams();
            //echo '<pre>';print_r($getData);die;
            $FlightBookingData = json_decode($getData['intOutBoundId'], true);
            $CustomerSession = json_decode($getData['TotalTravellers'], true);
            $SelectedMeal = json_decode($getData['SelectedMeal'], true);
            $SelectedBagg = json_decode($getData['SelectedBagg'], true);
            $apiResponseSeat = json_decode($getData['apiResponseSeat'], true);
            $SelectedSeat = json_decode($getData['SelectedSeat'], true);
            if (isset($getData['sessionFlightSearchParams'])) {
                $sessionFlightSearchParams = json_decode($getData['sessionFlightSearchParams'], true);
            }
            //Zend_Session::namespaceUnset('selectedSeatSession');die;
            $segmentid = $getData['segmentid'];
            $seatArray = $getData['seatArray'];
            $paxTypeArr = $getData['paxTypeArr'];
            $CustomerSysIdArray = $getData['CustomerSysIdArray'];

            $SelectedMealSessionNew = $SelectedMeal;
            $SelectedBaggSessionNew = $SelectedBagg;



            if (!empty($SelectedSeat)) {
                $selectedSeatSession = $SelectedSeat;
            } else {
                $selectedSeatSession = [];
            }


            $bookingId = $FlightBookingData[0]['bookingId'];
            $data = ['bookingId' => $bookingId];
            $tripSeat = $apiResponseSeat['tripSeatMap']['tripSeat'];
            $value = $tripSeat[$segmentid];
            $sInfo = $value['sInfo'];
            $items = [];
            foreach ($sInfo as $k => $val) {
                $items[$val['seatNo']] = array(
                    'seatNo' => $val['seatNo'],
                    'amount' => $val['amount'],
                    'isBooked' => $val['isBooked'],
                    'isLegroom' => isset($val['isLegroom']) ? $val['isLegroom'] : 0,
                    'code' => $val['code'],
                    'isAisle' => isset($val['isAisle']) ? $val['isAisle'] : 0,
                );
            }
            $selectedSeat = [];
            $SelectedSegment = [];
            if ($CustomerSysIdArray) {
                foreach ($CustomerSysIdArray as $keys => $CustomerSysId) {
                    $seatNo = $seatArray[$keys];
                    $paxType = $paxTypeArr[$keys];

                    $SelectedSegment[] = $paxType . ': ' . $seatNo;
                    foreach ($sInfo as $k => $val) {
                        if ($val['seatNo'] == $seatNo) {
                            $selectedSeat[$segmentid][$CustomerSysId] = $val;
                        }
                    }
                }
            }

            //echo '<pre>';print_r(implode(', ',$SelectedSegment));

            if (!empty($selectedSeatSession)) {
                foreach ($selectedSeatSession as $segid => $value) {
                    $index = 0;
                    if ($segid == $segmentid) {
                        foreach ($value as $CustomerId => $val) {
                            $seatNo = $seatArray[$index];
                            $itemsdata = $items[$seatNo];
                            if (trim($val['seatNo']) == trim($seatNo)) {
                                $selectedSeatSession[$segmentid][$CustomerId] = $val;
                            } else {
                                $selectedSeatSession[$segmentid][$CustomerId] = $itemsdata;
                            }
                            $index++;
                        }
                    } else {
                        if ($CustomerSysIdArray) {
                            foreach ($CustomerSysIdArray as $keys => $CustomerSysId) {
                                $seatNo = $seatArray[$keys];
                                foreach ($sInfo as $k => $val) {
                                    if ($val['seatNo'] == $seatNo) {
                                        $selectedSeatSession[$segmentid][$CustomerSysId] = $val;
                                    }
                                }
                            }
                        }
                    }
                }
            } else {
                $selectedSeatSession = $selectedSeat;
            }
            //echo '<pre>';print_r($selectedSeatSession);die;
            $BagPrice = 0;
            $InbBagPrice = 0;
            $MealPrice = 0;
            $InbMealPrice = 0;
            $SeatPrice = 0;
            if ($SelectedBaggSessionNew) {
                foreach ($SelectedBaggSessionNew as $values) {
                    foreach ($values as $val) {
                        $BagPrice += $val['Price'];
                    }
                }
            }
            if ($SelectedMealSessionNew) {
                foreach ($SelectedMealSessionNew as $values) {
                    foreach ($values as $val) {
                        $MealPrice += $val['Price'];
                    }
                }
            }
            if ($selectedSeatSession) {
                foreach ($selectedSeatSession as $values) {
                    foreach ($values as $val) {
                        $SeatPrice += $val['amount'];
                    }
                }
            }
            $MealFare = ($MealPrice + $InbMealPrice);
            $BaggFare = ($BagPrice + $InbBagPrice);
            $intNetPublishedFare = 0;
            if ($FlightBookingData) {
                foreach ($FlightBookingData as $value) {
                    $intNetPublishedFare += $value['FairRules']['PublishedFare'];
                }
            }
            //echo '<pre>';print_r($SelectedMealSessionNewInb);
            //echo '<pre>';print_r($SelectedBaggSessionNewInb);

            $MobilePublishedFare = ($intNetPublishedFare + $MealFare + $BaggFare + $SeatPrice);

            $html = new Zend_View();
            $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
            $html->assign(array('Data' => $FlightBookingData, 'CurrencyTitle' => $this->CurrencyTitle, 'sessionFlightSearchParams' => $sessionFlightSearchParams, 'selectedSeatSession' => $selectedSeatSession, 'SelectedMealSessionNew' => $SelectedMealSessionNew, 'SelectedBaggSessionNew' => $SelectedBaggSessionNew, 'CurrencyRate' => $this->CurrencyRate));
            $bodyText = $html->render('getflightfarequote.phtml');
            $response = array('success' => true, 'message' => 'Done', 'SelectedSegment' => implode(', ', $SelectedSegment), 'selectedSeatSession' => json_encode($selectedSeatSession), 'MobilePublishedFare' => $this->CurrencyTitle . ' ' . number_format($MobilePublishedFare, 2), 'html' => $bodyText);
            echo json_encode($response);
            exit;
        } else {
            die('Page not found!');
        }
    }

    public function savePassengerDetailsTripjackAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        if ($this->_request->isXmlHttpRequest()) {

            $this->_helper->layout->disableLayout();
            $this->_helper->viewRenderer->setNoRender(true);
            // ini_set('display_errors', 1);
			// ini_set('display_startup_errors', 1);
			// error_reporting(E_ALL);
            try {
                $sessionFlightSearchParams = json_decode($this->getRequest()->getParam('sessionFlightSearchParams'), true);
                //$sessionFlightSearchParams = new Zend_Session_Namespace('sessionFlightSearchParams');
                $editLeadId = isset($sessionFlightSearchParams['editLeadId']) ? $sessionFlightSearchParams['editLeadId'] : '';
                $route = isset($sessionFlightSearchParams['route']) ? $sessionFlightSearchParams['route'] : '';
                $interNationalSearch = isset($sessionFlightSearchParams['interNationalSearch']) ? $sessionFlightSearchParams['interNationalSearch'] : '';

                $isgstapply = (trim($this->getRequest()->getParam('isgstapply'))) ? trim($this->getRequest()->getParam('isgstapply')) : 0;
                $gstnnumber = (trim($this->getRequest()->getParam('gstnnumber'))) ? trim($this->getRequest()->getParam('gstnnumber')) : '';
                $companyname = (trim($this->getRequest()->getParam('companyname'))) ? trim($this->getRequest()->getParam('companyname')) : '';
                $gstemail = (trim($this->getRequest()->getParam('gstemail'))) ? trim($this->getRequest()->getParam('gstemail')) : '';
                $gstphone = (trim($this->getRequest()->getParam('gstphone'))) ? trim($this->getRequest()->getParam('gstphone')) : '';
                $gstaddress = (trim($this->getRequest()->getParam('gstaddress'))) ? trim($this->getRequest()->getParam('gstaddress')) : '';
                $gststate = (trim($this->getRequest()->getParam('gststate'))) ? trim($this->getRequest()->getParam('gststate')) : '';
                $ProposalTraceId = trim($this->getRequest()->getParam('ProposalTraceId'));
                $intCustomerSysId = trim($this->getRequest()->getParam('customerId'));
                $intOutBoundId = !empty($this->getRequest()->getParam('intOutBoundId')) ? json_decode($this->getRequest()->getParam('intOutBoundId'), true) : 0;
                $intInBoundId = !empty($this->getRequest()->getParam('intInBoundId')) ? $this->getRequest()->getParam('intInBoundId') : 0;
                //$BookingData = $intOutBoundId;
                $ICSourceSysId = isset($intOutBoundId[0]['ICSourceSysId']) ? $intOutBoundId[0]['ICSourceSysId'] : 0;
                $objFlightProposal = new Travel_Model_TblFlightProposal();
                $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
                $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($editLeadId,  'query');
                $AgencySysId = $arrAgencyDetails['AgencySysId'];
                $AgentSysId = $arrAgencyDetails['AgentSysId'];
                
                
                if ($interNationalSearch == "1" && $route == "2") {
                    if($ICSourceSysId == 3){
                        $BookingData[] = isset($intOutBoundId[0]) ? $intOutBoundId[0] : '';
                        $InternationalData[] = isset($intOutBoundId[0]) ? $intOutBoundId[0] : '';
                    }else{
                        if(!isset($intOutBoundId[0]['InternationalData']) && empty($intOutBoundId[0]['InternationalData'])){
                            $intOutBoundId[0]['Fare'] = $intOutBoundId[0]['FairRules'];
                            
                        }
                       
                        $BookingData[] = isset($intOutBoundId[0]['InternationalData']) ? $intOutBoundId[0]['InternationalData'] : $intOutBoundId[0];
                        $InternationalData[] = isset($intOutBoundId[0]['InternationalData']) ? $intOutBoundId[0]['InternationalData'] : $intOutBoundId[0];
                    }
                    // echo "<pre>";
                    // print_r($interNationalSearch);
                    // print_r($route);
                    // echo "<pre>";
                    // print_r($BookingData);
                    // die;
                    $arrCommonInsVariables = isset($intOutBoundId[0]['arrCommonInsVariables']) ? $intOutBoundId[0]['arrCommonInsVariables'] : '';

                    $AirInvenSysIdArrNew = $this->insertInterNationalFlightNewAction($InternationalData, $arrCommonInsVariables, $AgentSysId, $ICSourceSysId);
                } else {
                    $BookingData = $intOutBoundId;
                }
                //die('ss');
                $SearchTraceId = $BookingData[0]['SearchTraceId'];
                $isAdobrMandatory = $BookingData[0]['isAdobrMandatory'];
                $isCdobrMandatory = $BookingData[0]['isCdobrMandatory'];
                $isIdobrMandatory = $BookingData[0]['isIdobrMandatory'];
                $IsPassMandatory = $BookingData[0]['IsPassMandatory'];
                $IsSeriesFareData = isset($BookingData[0]['IsSeriesFareData']) ? $BookingData[0]['IsSeriesFareData'] : 0;
                $ICSourceSysId = isset($BookingData[0]['ICSourceSysId']) ? $BookingData[0]['ICSourceSysId'] : 0;
                $objFlight = new Travel_Model_TblFlight();
                // $objFlight->strCondition = " TBQAirInvenSysId IN ('" . $intOutBoundId . "','" . $intInBoundId . "') ";
                $arrSelectedFlightDetails = $BookingData; //$objFlight->getSelectedFlightDetails();
                // $getflightData = $objFlight->getFlightSearchListForProposal("'" . $intOutBoundId . "','" . $intInBoundId . "'");
                $FlightTempData = $objFlight->GetFlightTempData($SearchTraceId);
                $arrData = json_decode($FlightTempData['APIBookingData'], true);
                //$TPSysId = $FlightTempData['TPSysId'];
                // echo "<pre>";
                // print_r($BookingData);
                // die;
                $post = $this->getRequest()->getPost();

                $AirInvenSysIdArr = $AirInvenSysIdArrNew;//json_decode($post['AirInvenSysIdArr'], true);
                $SelectedBaggSessionNew = json_decode($post['SelectedBaggSessionNew'], true);
                $SelectedMealSessionNew = json_decode($post['SelectedMealSessionNew'], true);
                $selectedSeatSession = json_decode($post['selectedSeatSession'], true);
                $mytrip_city_from = explode(',', $sessionFlightSearchParams['sourceCityText']);
                $mytrip_city_to = explode(',', $sessionFlightSearchParams['destinationCityText']);
                
                if ($route == 1) {
                    $sectorTitle = $mytrip_city_from[0] . '-' . $mytrip_city_to[0];
                } else {
                    $sectorTitle = $mytrip_city_from[0] . '-' . $mytrip_city_to[0] . '-' . $mytrip_city_from[0];
                }

                $BagPrice = 0;
                $InbBagPrice = 0;
                $MealPrice = 0;
                $InbMealPrice = 0;
                $SeatPrice = 0;
                if ($SelectedBaggSessionNew) {
                    foreach ($SelectedBaggSessionNew as $values) {
                        foreach ($values as $val) {
                            $BagPrice += $val['Price'];
                        }
                    }
                }
                if ($SelectedMealSessionNew) {
                    foreach ($SelectedMealSessionNew as $values) {
                        foreach ($values as $val) {
                            $MealPrice += $val['Price'];
                        }
                    }
                }
                if ($selectedSeatSession) {
                    foreach ($selectedSeatSession as $values) {
                        foreach ($values as $val) {
                            $SeatPrice += $val['amount'];
                        }
                    }
                }

                $MealFare = ($MealPrice + $InbMealPrice);
                $BaggFare = ($BagPrice + $InbBagPrice);

                $PublishedFare = 0;
                $BaseAmount = 0;
                $AgentCommisionEarned = 0;
                $AgentCommisionEarnedGST = 0;
                $AgencyMarkUp = 0;
                $AgencyMarkUpGST = 0;
                $GTXMarkUp = 0;
                $GTXMarkUpGST = 0;
                $TotalExtraCharge = 0;
                $AgentServiceTaxAmount = 0;
                $TotalExtraMarkup = 0;
                $TotalExtraMarkupOnGST = 0;
                $TotalDiscountValue = 0;
                $FareSummary = [];
                if ($BookingData) {
                    foreach ($BookingData as $k => $booking) {
                        $ExtraMarkup = isset($booking['FairRules']['ExtraMarkup']) ? $booking['FairRules']['ExtraMarkup'] : 0;
                        $ExtraMarkupOnGST = isset($booking['FairRules']['ExtraMarkupOnGST']) ? $booking['FairRules']['ExtraMarkupOnGST'] : 0;
                        $DiscountValue = isset($booking['FairRules']['DiscountValue']) ? $booking['FairRules']['DiscountValue'] : 0;
                        if ($booking['FairRules']['FareBreakdown']) {
                            foreach ($booking['FairRules']['FareBreakdown'] as $key => $value) {
                                $IntCommission = $value['IntCommission'];
                                $CommissionEarned = $value['CommissionEarned'];
                                $PBaseFare = $value['BaseFare'];
                                $MF = $value['MF']; //Management Fee
                                $YQ = $value['YQ']; //Fuel Surcharge
                                $AGST = $value['AGST']; //Airline GST Component
                                $MFT = $value['MFT']; //Management Fee Tax
                                $OT = $value['OT']; //Other Charges
                                $MU = $value['MU']; //Markup
                                $YR = $value['YR']; //Carrier Misc Fee
                                $otherCharge = ($YQ + $AGST + $MFT + $MF + $OT + $YR);
                                $FixedMarkUp = $value['FixedMarkUp'];
                                $GSTOnMarkUp = $value['GSTOnMarkUp'];
                                $intGTXMarkUp = $value['intGTXMarkUp'];
                                $GTXMarkUpGST = $value['GTXMarkUpGST'];
                                $intTotalGST = $value['intTotalGST'];
                                $apiMarkup = $value['apiMarkup'];
                                $CommEarned = $value['CommEarned'];
                                $customerDiscount = ($CommissionEarned - $IntCommission);

                                $GrandTotalBaseFare = (($PBaseFare - $CommEarned + $otherCharge + $FixedMarkUp + $apiMarkup + $intGTXMarkUp + $GTXMarkUpGST) - $customerDiscount);
                                $BaseAmount += $GrandTotalBaseFare;
                                $AgentServiceTaxAmount += $intTotalGST;
                            }
                        }

                        $PublishedFare += $booking['FairRules']['PublishedFare'];
                        $TotalExtraCharge += ($ExtraMarkup + $ExtraMarkupOnGST);
                        $TotalExtraMarkup += ($ExtraMarkup);
                        $TotalExtraMarkupOnGST += ($ExtraMarkupOnGST);
                        $TotalDiscountValue += ($DiscountValue);
                        //$BaseAmount += $booking['FairRules']['OfferedFare'];
                        $AgentCommisionEarned += $booking['FairRules']['CommEarned'];
                    }
                }

                $intOfferedFare = ($BaseAmount + $MealFare + $BaggFare + $SeatPrice - $TotalDiscountValue); //isset($post['intPayableFromWallet']) ? $post['intPayableFromWallet'] : '0';AirInvenSysIdArr
                $totalCost = ($PublishedFare + $MealFare + $BaggFare + $SeatPrice - $TotalDiscountValue); //isset($post['intCostToCustomer']) ? $post['intCostToCustomer'] : '0';


                $strSourceAirportCode = $sessionFlightSearchParams['from'];
                $strDestinationAirportCode = $sessionFlightSearchParams['to'];

                $adultCount   = isset($sessionFlightSearchParams['adults']) ? $sessionFlightSearchParams['adults'] : 0;
                $childCount   = isset($sessionFlightSearchParams['child']) ? $sessionFlightSearchParams['child'] : 0;
                $infantCount   = isset($sessionFlightSearchParams['infant']) ? $sessionFlightSearchParams['infant'] : 0;

                $totalPassengers = $adultCount + $childCount + $infantCount;

                $Cities__ = [];
                //encode travellers information in json to save created by Er Amit Kumar Dubey on 6 march 2017 at 11:21 AM
                $departure_dates_string = $sessionFlightSearchParams['departure_dates'];
                $sourceCityText = $sessionFlightSearchParams['sourceCityText'];
                $destinationCityText = $sessionFlightSearchParams['destinationCityText'];
                if($route == '3'){
                    $departure_dates_string = $sessionFlightSearchParams['departure_dates'][0];                    
                    if($strSourceAirportCode && $route == '3'){
                        foreach ($strSourceAirportCode as $key => $value) {
                            $string = isset($sourceCityText[$key])?$sourceCityText[$key]:'';
                            $sourceCityText__ = substr($string, 0, strpos($string, ','));
                            $string2 = isset($destinationCityText[$key])?$destinationCityText[$key]:'';
                            $destinationCityText__ = substr($string2, 0, strpos($string2, ','));
                            $Cities__[] = $sourceCityText__.'-'.$destinationCityText__;
                        }
                    }
                }else{
                    $string = isset($sourceCityText)?$sourceCityText:'';
                    $sourceCityText__ = substr($string, 0, strpos($string, ','));
                    $string2 = isset($destinationCityText)?$destinationCityText:'';
                    $destinationCityText__ = substr($string2, 0, strpos($string2, ','));
                    $Cities__[] = $sourceCityText__.'-'.$destinationCityText__;
                }

                
                $explode_date = explode("/", $departure_dates_string);
                $departure_dates = $explode_date[2] . '-' . $explode_date[1] . '-' . $explode_date[0];

                $return_dates_string = $sessionFlightSearchParams['return_dates'];
                $explode_return_date = explode("/", $return_dates_string);
                $return_dates =  (isset($sessionFlightSearchParams['return_dates']) && !empty($sessionFlightSearchParams['return_dates'])) ? $explode_return_date[2] . '-' . $explode_return_date[1] . '-' . $explode_return_date[0] : '1900-01-01';

                $oneway_origin_text = isset($sessionFlightSearchParams['oneway_origin_text']) ? $sessionFlightSearchParams['oneway_origin_text'] : $sessionFlightSearchParams['sourceCityAirportCode'];
                $oneway_destination_text = isset($sessionFlightSearchParams['oneway_destination_text']) ? $sessionFlightSearchParams['oneway_destination_text'] : $sessionFlightSearchParams['destinationCityAirportCode'];
                $flight_class = $sessionFlightSearchParams['flight_class'];
                $roomjson = array();
                $roomjson[1]['route'] = $route;
                $roomjson[1]['Adult']  = $adultCount;
                $roomjson[1]['Child']  = $childCount;
                $roomjson[1]['bedtype'] = '';
                $roomjson[1]['departuredate'] = $sessionFlightSearchParams['departure_dates'];
                $roomjson[1]['returndate'] = $return_dates_string;
                $roomjson[1]['fromaircode'] = $oneway_origin_text;
                $roomjson[1]['toaircode'] = $oneway_destination_text;
                $roomjson[1]['airclass'] = $flight_class;
                for ($c = 1; $c <= $childCount; $c++) {
                    $childsage = $infantCount;
                    $roomjson[$c]['Adult']  = $adultCount;
                    $roomjson[$c]['Child']  = $childCount;
                    $roomjson[$c]['ChildAge_' . $c]  = $childsage;
                    $roomjson[$c]['bedtype'] = '';
                    $roomjson[$c]['departuredate'] = $sessionFlightSearchParams['departure_dates'];
                    $roomjson[$c]['returndate'] = $return_dates_string;
                    $roomjson[$c]['fromaircode'] = $oneway_origin_text;
                    $roomjson[$c]['toaircode'] = $oneway_destination_text;
                    $roomjson[$c]['airclass'] = $flight_class;
                }
                // echo "<pre>";print_r($roomjson);die('qqq');
                $RoomInfoJson = json_encode($roomjson);
                //encode travellers information in json to save created by Er Amit Kumar Dubey on 6 march 2017 at 11:21 AM


                if (empty($adultCount)) {
                    throw new Exception("Adult count not found.");
                }

                $arrCustomer = array();
                $arrCustomerMembers = array();
                //echo $isgstapply;

                $ForCustomerSession = array();
                $key = 0;
                for ($i = 1; $i <= $totalPassengers; $i++) {

                    $paxType      = $post['paxType-' . $i];
                    $firstName    = $post['passenger-firstname-' . $i];
                    $lastName     = $post['passenger-lastname-' . $i];
                    $relation     = $post['relation-' . $i];
                    $salutation   = $post['passenger-salutation-' . $i];
                    $mobileNumber = $post['mobile_number'];
                    $email_id     = $post['email_id'];

                    $passengerDob       = !empty($post['passenger-dob-' . $i]) ? $post['passenger-dob-' . $i] : '01/01/1900';
                    $AdultpassengerpassengerDob       = isset($post['Adultpassenger-dob-' . $i]) ? $post['Adultpassenger-dob-' . $i] : '';
                    $nationality       = isset($post['passenger-nationality-' . $i]) ? $post['passenger-nationality-' . $i] : '';
                    $passengerPassportNo       = isset($post['passenger-PassportNo-' . $i]) ? $post['passenger-PassportNo-' . $i] : '';
                    $passengerPassportExpiry       = isset($post['passenger-PassportExpiry-' . $i]) ? $post['passenger-PassportExpiry-' . $i] : '';
                    $passporIssue       = isset($post['passenger-passporIssue-' . $i]) ? $post['passenger-passporIssue-' . $i] : '';
                    if (!empty($passengerDob)) {
                        $passengerDob       = explode("/", $passengerDob);
                        $passengerDob       = $passengerDob[2] . "-" . $passengerDob[1] . "-" . $passengerDob[0];
                    }
                    if (!empty($AdultpassengerpassengerDob)) {
                        $AdultpassengerpassengerDob       = explode("/", $AdultpassengerpassengerDob);
                        $AdultpassengerpassengerDob       = $AdultpassengerpassengerDob[2] . "-" . $AdultpassengerpassengerDob[1] . "-" . $AdultpassengerpassengerDob[0];
                    }
                    if (!empty($passengerPassportExpiry)) {
                        $passengerPassportExpiry       = explode("/", $passengerPassportExpiry);
                        $passengerPassportExpiry       = $passengerPassportExpiry[2] . "-" . $passengerPassportExpiry[1] . "-" . $passengerPassportExpiry[0];
                    }
                    if (!empty($passporIssue)) {
                        $passporIssue       = explode("/", $passporIssue);
                        $passporIssue       = $passporIssue[2] . "-" . $passporIssue[1] . "-" . $passporIssue[0];
                    }

                    $passengerCity          = !empty($post['passenger-city-1']) ? $post['passenger-city-1'] : 0;
                    $passengerCountry       = !empty($post['passenger-country-1']) ? $post['passenger-country-1'] : 0;
                    $passengerAddress       = $post['passenger-address-1'];

                    $AdultageCalculator = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->ageCalculator($departure_dates, $AdultpassengerpassengerDob);

                    if (empty($mobileNumber)) {
                        $response = array('succes' => false, 'msg' => 'Please enter mobile number.', 'index' => 'mobile_number');
                        echo json_encode($response);
                        exit;
                    }

                    if (strlen($mobileNumber) != 10 && strlen($mobileNumber) != 11) {
                        $response = array('succes' => false, 'msg' => 'Please enter a valid mobile number.', 'index' => 'mobile_number');
                        echo json_encode($response);
                        exit;
                    }


                    if (empty($email_id)) {
                        $response = array('succes' => false, 'msg' => 'Please enter Email ID.', 'index' => 'email_id');
                        echo json_encode($response);
                        exit;
                    }

                    if (!filter_var($email_id, FILTER_VALIDATE_EMAIL)) {
                        $msg =  "Email address is not valid.";
                        $response = array('success' => false, 'msg' => $msg, 'index' => 'email_id');
                        echo json_encode($response);
                        exit;
                    }

                    if (empty($firstName)) {
                        $response = array('succes' => false, 'msg' => 'Please enter first name.', 'index' => 'passenger-firstname-' . $i);
                        echo json_encode($response);
                        exit;
                    }

                    if (empty($lastName)) {
                        $response = array('succes' => false, 'msg' => 'Please enter last name.', 'index' => 'passenger-lastname-' . $i);
                        echo json_encode($response);
                        exit;
                    }


                    if (empty($passengerDob)) {
                        $response = array('succes' => false, 'msg' => 'Please enter date of birth.', 'index' => 'passenger-dob-' . $i);
                        echo json_encode($response);
                        exit;
                    }

                    if (isset($post['passenger-nationality-' . $i]) && empty($nationality) && $IsPassMandatory) {
                        $response = array('succes' => false, 'msg' => 'Please select Nationality.', 'index' => 'passenger-nationality-' . $i);
                        echo json_encode($response);
                        exit;
                    }
                    if (isset($post['passenger-PassportNo-' . $i]) && empty($passengerPassportNo) && $IsPassMandatory) {
                        $response = array('succes' => false, 'msg' => 'Please enter passenger passport no.', 'index' => 'passenger-PassportNo-' . $i);
                        echo json_encode($response);
                        exit;
                    }
                    if (isset($post['passenger-passporIssue-' . $i]) && empty($passporIssue) && $IsPassMandatory) {
                        $response = array('succes' => false, 'msg' => 'Please enter passport issue date.', 'index' => 'passenger-nationality-' . $i);
                        echo json_encode($response);
                        exit;
                    }
                    if (isset($post['passenger-PassportExpiry-' . $i]) && empty($passengerPassportExpiry) && $IsPassMandatory) {
                        $response = array('succes' => false, 'msg' => 'Please enter passport expiry date.', 'index' => 'passenger-PassportExpiry-' . $i);
                        echo json_encode($response);
                        exit;
                    }
                    if (isset($post['passenger-PassportExpiry-' . $i]) && strtotime($departure_dates) > strtotime($passengerPassportExpiry) && $IsPassMandatory) {
                        $response = array('succes' => false, 'msg' => 'Please enter passport valid expiry date.', 'index' => 'passenger-PassportExpiry-' . $i);
                        echo json_encode($response);
                        exit;
                    }
                    if ($paxType == 1 && $isAdobrMandatory) {
                        $departureDates = $sessionFlightSearchParams['departure_dates'];
                        if (!empty($departureDates)) {
                            $arrDepartureDates = explode("/", $departureDates);
                            $departureDatesAD = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];
                            $AdultAge = date_diff(date_create($passengerDob), date_create($departureDatesAD))->y;

                            if ($AdultAge < 12) {
                                $response = array('succes' => false, 'msg' => "Adult age should be greater than 12 years. ", 'index' => 'passenger-dob-' . $i);
                                echo json_encode($response);
                                exit;
                            }
                        } else {
                            $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                            echo json_encode($response);
                            exit;
                        }
                    }
                    if (!empty($paxType) && $paxType == 2 && $isCdobrMandatory) {
                        $departureDates = $sessionFlightSearchParams['departure_dates'];
                        if (!empty($departureDates)) {
                            $arrDepartureDates       = explode("/", $departureDates);
                            $departureDates       = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];
                            $childAge =  date_diff(date_create($passengerDob), date_create($departureDates))->y;
                            if ($childAge < 2 || $childAge >= 12) {
                                $response = array('succes' => false, 'msg' => "Child age should be 2 years or less than 12 years. ", 'index' => 'passenger-dob-' . $i);
                                echo json_encode($response);
                                exit;
                            }
                        } else {
                            $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                            echo json_encode($response);
                            exit;
                        }
                    }

                    if (!empty($paxType) && $paxType == 3 && $isIdobrMandatory) {
                        $departureDates = $sessionFlightSearchParams['departure_dates'];
                        if (!empty($departureDates)) {
                            $arrDepartureDates       = explode("/", $departureDates);
                            $departureDates       = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];
                            $infantAge =  date_diff(date_create($passengerDob), date_create($departureDates))->y;
                            if ($infantAge >= 2) {
                                $response = array('succes' => false, 'msg' => "Infant age should be less than 2 years. ", 'index' => 'passenger-dob-' . $i);
                                echo json_encode($response);
                                exit;
                            }
                        } else {
                            $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                            echo json_encode($response);
                            exit;
                        }
                    }

                    if (empty($passengerCity) && $ICSourceSysId == 3) {
                        $response = array('succes' => false, 'msg' => 'Please enter City.', 'index' => 'passenger-city-1');
                        echo json_encode($response);
                        exit;
                    }
                    if (empty($passengerAddress) && $ICSourceSysId == 3) {
                        $response = array('succes' => false, 'msg' => 'Please enter Address.', 'index' => 'passenger-address-1');
                        echo json_encode($response);
                        exit;
                    }

                    $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
                    $intLeadSourceSysId = $this->_crmcustomerObj->getLeadSource($AgencySysId, 'Agency-Proposal'); // for Master LeadSouce Creation

                    $leadsource = (isset($intLeadSourceSysId[0]['LeadSourceSysId']) && !empty($intLeadSourceSysId[0]['LeadSourceSysId'])) ? $intLeadSourceSysId[0]['LeadSourceSysId'] : 0;

                    $this->_leadstageObj = new Travel_Model_TblLeadStage();
                    $getStageList = $this->_leadstageObj->getLeadStageSatus('New');

                    $leadstage = (isset($getStageList[0]['TPStatusSysId']) && !empty($getStageList[0]['TPStatusSysId'])) ? $getStageList[0]['TPStatusSysId'] : 0;

                    if ($i == 1 && $relation == 0) {
                        $arrCustomer = $ForCustomerSession[$key] = array(
                            'AgencySysId' => $AgencySysId, 'CRMCustSysId' => 0, 'EmailId' => $email_id, 'Salutation' => $salutation, 'Relation' => $relation,
                            'Logo' => '', 'IsfromSM' => '0', 'SMTypeId' => '0', 'SMId' => '', 'UserId' => '0', 'IsEmployee' => '0',
                            'Contacts' => $mobileNumber, 'ExitDate' => EMPTY_DATE, 'UserName' => '', 'FirstName' => $firstName, 'LastName' => $lastName,
                            'Designation' => '', 'Password' => '', 'RandStr' => '', 'PasswordExpiryDate' => EMPTY_DATE, 'IsPswExpire' => 0,
                            'OtherEmail' => '', 'SecondaryEmail' => '', 'LastLoginTime' => EMPTY_DATE, 'IsLogInNow' => 0, 'CreatedByUserSysId' => $AgentSysId,
                            'RandomCode' => '', 'Gender' => '', 'UserNickName' => '', 'UserPicPath' => '', 'ContactNo1' => '', 'ContactNo2' => '',
                            'HomePhone' => '', 'SecondaryPhone' => '', 'UserDetails' => '', 'DOB' => $passengerDob, 'PassportIssue' => $passporIssue, 'PassportNationality' => $nationality, 'PassportNo' => $passengerPassportNo, 'PassportExpiry' => $passengerPassportExpiry, 'Address' => $passengerAddress, 'paxType' => $paxType,
                            'StateOrZoneSysId' => 0, 'CountrySysId' => $passengerCountry, 'PinCode' => '', 'SecondaryAddress' => '', 'Fax' => '',
                            'MacIp' => '', 'SpeakingLangSysId' => 0, 'Signature' => '', 'UpdateDate' => EMPTY_DATE,
                            'RegisterDate' => EMPTY_DATE, 'IsApproved' => 0, 'IsActive' => 1, 'IsMarkForDelete' => '0', 'CitySysId' => $passengerCity,
                            'LeadSourceSysId' => $leadsource, 'LeadStageSysId' => $leadstage, 'GstNumber' => $gstnnumber, 'GstCompany' => $companyname,
                            'GstEmail' => $gstemail, 'GstPhone' => $gstphone, 'GstAddress' => $gstaddress, 'GstState' => $gststate

                        );
                        // echo "<pre>";
                        // print_r($arrCustomer); CitySysId
                        // die('c');
                        try {
                            if (empty($intCustomerSysId)) {
                                $objGest = new Travel_Model_Tbltbbcuser();
                                $arrCustomer['ContactNumber'] = $mobileNumber;
                                $intCustomerSysId = $objGest->createAgencyCustomer($arrCustomer, $AgencySysId);
                            } else {
                                $objGest = new Travel_Model_Tbltbbcuser();
                                $arrCustomer['ContactNumber'] = $mobileNumber;
                                $intCustomerSysId = $objGest->createAgencyCustomer($arrCustomer, $AgencySysId);
                            }
                        } catch (Zend_Exception $e) {
                            print_r($e->getMessage());
                            exit;
                        }

                        //echo '<pre>';print_r($arrCustomer);die; CountrySysId

                    } else {

                        if (!empty($passengerPassportNo)) {
                            $arrCustomerMembers[] = $ForCustomerSession[$key] = array(
                                'AgencySysId' => $AgencySysId, 'EmailId' => $email_id, 'Title' => $salutation, 'Relation' => $relation,
                                'Logo' => '', 'IsfromSM' => '0', 'SMTypeId' => '0', 'SMId' => '', 'UserId' => '0', 'IsEmployee' => '0',
                                'Contacts' => $mobileNumber, 'ExitDate' => EMPTY_DATE, 'UserName' => '', 'FirstName' => $firstName, 'LastName' => $lastName,
                                'Designation' => '', 'Password' => '', 'RandStr' => '', 'PasswordExpiryDate' => EMPTY_DATE, 'IsPswExpire' => 0,
                                'OtherEmail' => '', 'SecondaryEmail' => '', 'LastLoginTime' => EMPTY_DATE, 'IsLogInNow' => 0, 'CreatedByUserSysId' => $AgentSysId,
                                'RandomCode' => '', 'Gender' => '', 'UserNickName' => '', 'UserPicPath' => '', 'ContactNo1' => '', 'ContactNo2' => '',
                                'HomePhone' => '', 'SecondaryPhone' => '', 'UserDetails' => '', 'DOB' => $passengerDob, 'PassportIssue' => $passporIssue, 'PassportNationality' => $nationality, 'PassportNo' => $passengerPassportNo, 'PassportExpiry' => $passengerPassportExpiry, 'Address' => $passengerAddress, 'paxType' => $paxType,
                                'StateOrZoneSysId' => 0, 'CountrySysId' => $passengerCountry, 'PinCode' => '', 'SecondaryAddress' => '', 'Fax' => '',
                                'MacIp' => '', 'SpeakingLangSysId' => 0, 'Signature' => '', 'UpdateDate' => EMPTY_DATE,
                                'RegisterDate' => EMPTY_DATE, 'IsApproved' => 0, 'IsActive' => 1, 'IsMarkForDelete' => '0', 'CitySysId' => $passengerCity
                            );
                        } else {
                            $arrCustomerMembers[] = $ForCustomerSession[$key] = array(
                                'AgencySysId' => $AgencySysId, 'EmailId' => $email_id, 'Title' => $salutation, 'Relation' => $relation,
                                'Logo' => '', 'IsfromSM' => '0', 'SMTypeId' => '0', 'SMId' => '', 'UserId' => '0', 'IsEmployee' => '0',
                                'Contacts' => $mobileNumber, 'ExitDate' => EMPTY_DATE, 'UserName' => '', 'FirstName' => $firstName, 'LastName' => $lastName,
                                'Designation' => '', 'Password' => '', 'RandStr' => '', 'PasswordExpiryDate' => EMPTY_DATE, 'IsPswExpire' => 0,
                                'OtherEmail' => '', 'SecondaryEmail' => '', 'LastLoginTime' => EMPTY_DATE, 'IsLogInNow' => 0, 'CreatedByUserSysId' => $AgentSysId,
                                'RandomCode' => '', 'Gender' => '', 'UserNickName' => '', 'UserPicPath' => '', 'ContactNo1' => '', 'ContactNo2' => '',
                                'HomePhone' => '', 'SecondaryPhone' => '', 'UserDetails' => '', 'DOB' => $passengerDob, 'Address' => $passengerAddress, 'paxType' => $paxType,
                                'StateOrZoneSysId' => 0, 'CountrySysId' => $passengerCountry, 'PinCode' => '', 'SecondaryAddress' => '', 'Fax' => '',
                                'MacIp' => '', 'SpeakingLangSysId' => 0, 'Signature' => '', 'UpdateDate' => EMPTY_DATE, 'PassportIssue' => EMPTY_DATE, 'PassportExpiry' => EMPTY_DATE,
                                'RegisterDate' => EMPTY_DATE, 'IsApproved' => 0, 'IsActive' => 1, 'IsMarkForDelete' => '0', 'CitySysId' => '0'
                            );
                        }
                    }
                    $key++;
                }

                if ($BookingData && $isgstapply == 0) {
                    foreach ($BookingData as $values) {
                        if (trim($values['isGSTMandatory']) == 1) {

                            $response = array('succes' => false, 'msg' => 'GST mandatory for this flight.', 'index' => 'gstnnumber');
                            echo json_encode($response);
                            exit;
                        }
                    }
                }
                if ($isgstapply == 1) {
                    if (empty(trim($gstnnumber))) {
                        $response = array('succes' => false, 'msg' => 'Please enter GSTIN number.', 'index' => 'gstnnumber');
                        echo json_encode($response);
                        exit;
                    }
                    $is_valid_gstin = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->is_valid_gstin($gstnnumber);
                    if ($is_valid_gstin == 0) {
                        $response = array('succes' => false, 'msg' => 'Enter Valid GST Number', 'index' => 'gstnnumber');
                        echo json_encode($response);
                        exit;
                    }
                    if (empty(trim($companyname))) {
                        $response = array('succes' => false, 'msg' => 'Please enter company name.', 'index' => 'companyname');
                        echo json_encode($response);
                        exit;
                    }
                    if (empty(trim($gstemail))) {
                        $response = array('succes' => false, 'msg' => 'Please enter registered email id.', 'index' => 'gstemail');
                        echo json_encode($response);
                        exit;
                    }
                    if (!filter_var($gstemail, FILTER_VALIDATE_EMAIL)) {
                        $msg = "GST Email address is not valid.";
                        $response = array('success' => false, 'msg' => $msg, 'index' => 'gstemail');
                        echo json_encode($response);
                        exit;
                    }
                    if (empty(trim($gstphone))) {
                        $response = array('succes' => false, 'msg' => 'Please enter registered phone.', 'index' => 'gstphone');
                        echo json_encode($response);
                        exit;
                    }
                    if (strlen($gstphone) != 10 && strlen($gstphone) != 11) {
                        $response = array('succes' => false, 'msg' => 'Please enter a valid GST phone number.', 'index' => 'gstphone');
                        echo json_encode($response);
                        exit;
                    }
                    if (empty(trim($gstaddress))) {
                        $response = array('succes' => false, 'msg' => 'Please enter GST address.', 'index' => 'gstaddress');
                        echo json_encode($response);
                        exit;
                    }
                }

                if (empty($arrCustomer)) {
                    //throw new Exception('Customer Information not found.');
                }

                //$objFlight = new Travel_Model_TblFlight();


                if (empty($intCustomerSysId)) {
                    throw new Exception('Customer Id not found.');
                }
                $arrCustomerMembersIds = array();
                if (!empty($arrCustomerMembers) ) {
                    $arrCustomerMembersIds = $objFlight->createAgencyCustomerMembers($arrCustomerMembers, $AgencySysId, $intCustomerSysId);
                }
                // echo "<pre>";
                // print_r($arrCustomerMembersIds);
                // print_r($arrCustomerMembers);
                // die('m');
                if (isset($IsSeriesFareData) && $IsSeriesFareData == 1) {
                    $crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
                    $arrAgentDetail = $crmcusttravelplan->getAgentDetails($AgentSysId);
                    $SecurityKey = $arrAgentDetail['SecurityKey'];
                    $sessionFlightSearchParams['SecurityKey'] = $SecurityKey;
                    $checkInventory = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->CheckInventorycheckRetriveUpdateNew($BookingData, $sessionFlightSearchParams);
                    // $RetriveUpdateNew = new Zend_Session_Namespace('RetriveUpdateNew');
                    // $checkInventory = $RetriveUpdateNew->params;
                    if ($checkInventory[0]['Status'] == 1) {
                        $BookingData[0]['bookingId'] = isset($checkInventory[0]['data']['RefNo']) ? $checkInventory[0]['data']['RefNo'] : 0;
                        $intOutBoundId[0]['bookingId'] = isset($checkInventory[0]['data']['RefNo']) ? $checkInventory[0]['data']['RefNo'] : 0;
                    } else {
                        $checkInventoryResponse = array('success' => $checkInventory[0]['Status'], 'status' => $checkInventory[0]['Status'], 'msg' => ($checkInventory[0]['message'] != '') ? $checkInventory[0]['message'] : 'Seats are no available.');
                        echo json_encode($checkInventoryResponse);
                        exit;
                    }

                    if (isset($checkInventory[1]['Status']) && !empty($checkInventory[1]) && $route == 2) {
                        if ($checkInventory[1]['Status'] == 1) {
                            $BookingData[1]['bookingId'] = isset($checkInventory[1]['data']['RefNo']) ? $checkInventory[1]['data']['RefNo'] : 0;
                            $intOutBoundId[1]['bookingId'] = isset($checkInventory[1]['data']['RefNo']) ? $checkInventory[1]['data']['RefNo'] : 0;
                        } else {
                            $checkInventoryResponse = array('success' => $checkInventory[1]['Status'], 'status' => $checkInventory[1]['Status'], 'msg' => ($checkInventory[1]['message'] != '') ? $checkInventory[1]['message'] : 'Seats are no available.');
                            echo json_encode($checkInventoryResponse);
                            exit;
                        }
                    }
                }
                // echo "<pre>";
                // print_r($BookingData);
                // exit;

                if (!empty($intCustomerSysId)) {
                    $currentDate   = date('Y-m-d H:i:s');
                    // Travel Plan Data....
                    if (empty($editLeadId)) {
                        $PlanBookingId = "Q/" . date('y');
                        $arrTravelPlan['PlanBookingId'] = $PlanBookingId;
                        $arrTravelPlan['Price'] = $intOfferedFare;
                        $arrTravelPlan['TotalCost'] = $totalCost;
                        $arrTravelPlan['NetPrice'] = $totalCost;
                        $arrTravelPlan['AgencyMarkUp'] = ($AgentCommisionEarned + $TotalExtraMarkup);
                        $arrTravelPlan['AgentServiceTaxAmount'] = ($AgentServiceTaxAmount + $TotalExtraMarkupOnGST);
                        // $arrTravelPlan['AgencyMarkUp'] = $AgentCommisionEarned;
                        // $arrTravelPlan['AgentServiceTaxAmount'] = $AgentServiceTaxAmount;
                        $arrTravelPlan['AgencySysId'] = $AgencySysId;
                        $arrTravelPlan['AgentSysId'] = $AgentSysId;
                        $arrTravelPlan['CreatorSysId'] = $AgentSysId;
                        $arrTravelPlan['PlanType'] = '1'; // For Flight
                        $arrTravelPlan['SupplierSysId'] = 3;
                        $arrTravelPlan['StatusType'] = 2;
                        $arrTravelPlan['InventoryType'] = 1;
                        $arrTravelPlan['CurrencyType'] = $BookingData[0]['CurrencyType'];
                        $arrTravelPlan['RoomInfoJson'] = $RoomInfoJson;
                        $arrTravelPlan['SourcePlaceSysId'] = $BookingData[0]['SourcePlaceSysId'];
                        $arrTravelPlan['DestinationPlacesSysId'] = $BookingData[0]['DestPlaceSysId'];
                        $arrTravelPlan['SourcePlaces'] = $BookingData[0]['SourcePlaceName'];
                        $arrTravelPlan['DestinationPlaces'] = $BookingData[0]['DestPlaceName'];
                        $arrTravelPlan['Cities'] = implode(',',$Cities__);
                        $arrTravelPlan['IsHotelFromApi'] = 1;
                        $arrTravelPlan['CustomerSysId'] = $intCustomerSysId;
                        $arrTravelPlan['StartDate'] = $departure_dates;
                        $arrTravelPlan['ValidTill'] = $return_dates;
                        $arrTravelPlan['CreateDate'] = $currentDate;
                        $arrTravelPlan['UpdateDate'] = $currentDate;
                        $arrTravelPlan['ApproveDate'] = $currentDate;
                        $arrTravelPlan['IsMarkForDel'] = 0;
                        $arrTravelPlan['IsActive'] = 1;
                        $arrTravelPlan['IsAprooved'] = 1;
                        $arrTravelPlan['LeadSourceSysId'] = $leadsource;
                        $arrTravelPlan['Title'] = !empty($sectorTitle) ? $sectorTitle : 'NA';
                        $TPSysId = $this->_crmcusttravelplan->addCustomerTravelPlanQuery($arrTravelPlan);
                        //$TPSysId = $objFlight->insertTravelPlan($arrTravelPlan);
                    } else {
                        $TPSysId = $editLeadId;
                    }


                    $PlanBookingId = "Q/" . date('y');
                    $arrTravelPlan['PlanBookingId'] = $PlanBookingId;
                    $arrTravelPlan['MasterTPSysId'] = $TPSysId;
                    $arrTravelPlan['Price'] = $intOfferedFare;
                    $arrTravelPlan['TotalCost'] = $totalCost;
                    $arrTravelPlan['NetPrice'] = $totalCost;
                    $arrTravelPlan['AgencyMarkUp'] = ($AgentCommisionEarned + $TotalExtraMarkup);
                    $arrTravelPlan['AgentServiceTaxAmount'] = ($AgentServiceTaxAmount + $TotalExtraMarkupOnGST);
                    // $arrTravelPlan['AgencyMarkUp'] = $AgentCommisionEarned;
                    // $arrTravelPlan['AgentServiceTaxAmount'] = $AgentServiceTaxAmount;
                    $arrTravelPlan['VersionId'] = 1;
                    $arrTravelPlan['AgencySysId'] = $AgencySysId;
                    $arrTravelPlan['AgentSysId'] = $AgentSysId;
                    $arrTravelPlan['CreatorSysId'] = $AgentSysId;
                    $arrTravelPlan['PlanType'] = '1'; // For Flight
                    $arrTravelPlan['SupplierSysId'] = 3;
                    $arrTravelPlan['StatusType'] = 4;
                    $arrTravelPlan['InventoryType'] = 1;
                    $arrTravelPlan['RoomInfoJson'] = $RoomInfoJson;
                    $arrTravelPlan['CustomerSysId'] = $intCustomerSysId;
                    $arrTravelPlan['CurrencyType'] = $BookingData[0]['CurrencyType'];
                    $arrTravelPlan['RoomInfoJson'] = $RoomInfoJson;
                    $arrTravelPlan['SourcePlaceSysId'] = $BookingData[0]['SourcePlaceSysId'];
                    $arrTravelPlan['DestinationPlacesSysId'] = $BookingData[0]['DestPlaceSysId'];
                    $arrTravelPlan['SourcePlaces'] = $BookingData[0]['SourceAirportCode'];
                    $arrTravelPlan['DestinationPlaces'] = $BookingData[0]['DestAirportCode'];
                    $arrTravelPlan['Cities'] = implode(',',$Cities__);
                    $arrTravelPlan['IsHotelFromApi'] = 1;
                    //$arrTravelPlan['TemplatePckSysId'] = '';
                    $arrTravelPlan['ProposalEmailTo'] = !empty($email_id) ? trim($email_id) : 0;
                    $arrTravelPlan['StartDate'] = $departure_dates;
                    $arrTravelPlan['ValidTill'] = $return_dates;
                    $arrTravelPlan['CreateDate'] = $currentDate;
                    $arrTravelPlan['UpdateDate'] = $currentDate;
                    $arrTravelPlan['ApproveDate'] = $currentDate;
                    $arrTravelPlan['IsMarkForDel'] = 0;
                    $arrTravelPlan['IsActive'] = 1;
                    $arrTravelPlan['IsAprooved'] = 1;
                    $arrTravelPlan['LeadSourceSysId'] = $leadsource;
                    $arrTravelPlan['Title'] = !empty($sectorTitle) ? $sectorTitle : 'NA';
                    // echo "<pre>";print_r($arrTravelPlan);
                    // exit;
                    //$TPSysId = $objFlight->insertTravelPlan($arrTravelPlan);
                    $TPSysId = $this->_crmcusttravelplan->addCustomerTravelPlan($arrTravelPlan);
                    $arrPaxData = array();
                    foreach ($arrSelectedFlightDetails as $ks => $flightRounds) {
                        if (!empty($TPSysId)) {

                            if (!empty($arrCustomer) ) {
                                $arrPaxData['TPSysId'] = $TPSysId;
                                $arrPaxData['VersionId'] = '1';
                                $arrPaxData['CustomerSysId'] = $intCustomerSysId;
                                $arrPaxData['MemberSysId'] = 0;
                                $arrPaxData['UpdateDate'] = date('Y-m-d H:i:s');
                                $arrPaxData['IsApproved'] = '1';
                                $arrPaxData['IsActive'] = '1';
                                $arrPaxData['IsMarkForDelete'] = '0';
                                $arrPaxData['IsReturn'] = $ks;
                                $arrPaxData['paxType'] = 1;
                                $arrPaxData['GstNumber'] = $gstnnumber;
                                $arrPaxData['GstCompany'] = $companyname;
                                $arrPaxData['GstEmail'] = $gstemail;
                                $arrPaxData['GstPhone'] = $gstphone;
                                $arrPaxData['GstAddress'] = $gstaddress;
                                $arrPaxData['GstState'] = $gststate;
                                $arrPaxData['isgstapply'] = $isgstapply;
                               
                                $objFlight->insertTravelPlanPax($arrPaxData);
                            }


                            if (!empty($arrCustomerMembersIds) ) {
                                $VersionId = 2;
                                foreach ($arrCustomerMembersIds as $kkk => $memberSysId) {
                                    $Members = ($arrCustomerMembers[$kkk]) ? $arrCustomerMembers[$kkk] : '';
                                    // echo "<pre>"; 
                                    // print_r($Members); 
                                    $arrPaxData['TPSysId'] = $TPSysId;
                                    $arrPaxData['VersionId'] = $VersionId;
                                    $arrPaxData['CustomerSysId'] = $intCustomerSysId;
                                    $arrPaxData['MemberSysId'] = $memberSysId;
                                    $arrPaxData['UpdateDate'] = date('Y-m-d H:i:s');
                                    $arrPaxData['IsApproved'] = '1';
                                    $arrPaxData['IsActive'] = '1';
                                    $arrPaxData['IsMarkForDelete'] = '0';
                                    $arrPaxData['IsReturn'] = $ks;
                                    $arrPaxData['paxType'] = ($Members) ? $Members['paxType'] : 0;
                                    $arrPaxData['GstNumber'] = $gstnnumber;
                                    $arrPaxData['GstCompany'] = $companyname;
                                    $arrPaxData['GstEmail'] = $gstemail;
                                    $arrPaxData['GstPhone'] = $gstphone;
                                    $arrPaxData['GstAddress'] = $gstaddress;
                                    $arrPaxData['GstState'] = $gststate;
                                    $arrPaxData['isgstapply'] = $isgstapply;
                                    $arrPaxData['FirstName'] = $Members['FirstName'];
                                    $arrPaxData['LastName'] = $Members['LastName'];
                                    $arrPaxData['Title'] = $Members['Title'];
                                    $arrPaxData['Salutation'] = isset($Members['Title'])?$Members['Title']:0;
                                    $arrPaxData['DOB'] = (isset($Members['DOB']) && !empty($Members['DOB'])) ? $Members['DOB'] : NULL;
                                    $arrPaxData['passportnoexpiry'] = !empty($Members['PassportExpiry']) ? $Members['PassportExpiry'] : NULL;
                                    $arrPaxData['passporIssue'] = !empty($Members['PassportIssue']) ? $Members['PassportIssue'] : NULL;
                                    $arrPaxData['PassportNationality'] = !empty($Members['PassportNationality']) ? $Members['PassportNationality'] : '';
                                    $arrPaxData['passportno'] = !empty($Members['PassportNo']) ? $Members['PassportNo'] : '';
                                    // echo "<pre>"; 
                                    // print_r($arrPaxData); 
                                    // die('sssss');
                                    $objFlight->insertTravelPlanPax($arrPaxData);
                                    $VersionId++;
                                }
                            }
                        }
                    }
                    // Travel Itenary Data....
                    $arrPlanItenary['TPSysId'] = $TPSysId;
                    $arrPlanItenary['Sequence'] = 1;
                    $arrPlanItenary['AgencySysId'] = $AgencySysId;
                    $arrPlanItenary['StartDate'] = $currentDate;
                    $arrPlanItenary['EndDate'] = $currentDate;
                    $arrPlanItenary['CreateDate'] = $currentDate;
                    $arrPlanItenary['UpdateDate'] = $currentDate;
                    $arrPlanItenary['IsActive'] = 1;
                    $TPIntSysId = $objFlight->insertTravelPlanItenary($arrPlanItenary);

                    // echo "<pre>"; 
                    // print_r($BookingData); 
                    // die('sssss');
                    // Travel Plan Air Data....
                    // if (!empty($BookingData) > 0) {
                    //     $intRounds = 0;
                    //     $arrIntTpAirId = array();
                    //     foreach ($BookingData as $keys => $flightRounds) {
                    //         $AirInvenSysId = isset($AirInvenSysIdArr[$keys]) ? $AirInvenSysIdArr[$keys] : 0;
                    //         $Segments = $flightRounds['Segments'];
                    //         $SeatPriceSeg = 0;
                    //         $MealPriceSeg = 0;
                    //         $BagPriceSeg = 0;
                    //         foreach ($Segments as $seg) {
                    //             $segmentid = $seg['segmentid'];
                    //             $SelectedBagg = isset($SelectedBaggSessionNew[$segmentid]) ? $SelectedBaggSessionNew[$segmentid] : [];
                    //             $SelectedMeal = isset($SelectedMealSessionNew[$segmentid]) ? $SelectedMealSessionNew[$segmentid] : [];
                    //             $SelectedSeat = isset($selectedSeatSession[$segmentid]) ? $selectedSeatSession[$segmentid] : [];
                    //             if (!empty($SelectedSeat)) {
                    //                 foreach ($SelectedSeat as $val) {
                    //                     $SeatPriceSeg += $val['amount'];
                    //                 }
                    //             }
                    //             if (!empty($SelectedMeal)) {
                    //                 foreach ($SelectedMeal as $val) {
                    //                     $MealPriceSeg += $val['Price'];
                    //                 }
                    //             }
                    //             if (!empty($SelectedBagg)) {
                    //                 foreach ($SelectedBagg as $val) {
                    //                     $BagPriceSeg += $val['Price'];
                    //                 }
                    //             }
                    //         }

                    //         //if($intRounds >0){
                    //         //                            $strGoingFlightFrom = $flightRounds['DestAirportCode'];
                    //         //                            $strGoingFlightTo   = $flightRounds['SourceAirportCode'];
                    //         //}else{
                    //         $strGoingFlightFrom = $flightRounds['SourceAirportCode'];
                    //         $strGoingFlightTo   = $flightRounds['DestAirportCode'];
                    //         //}

                    //         //$AirInvenSysId = $flightRounds['AirInvenSysId'];
                    //         $AirlineSysId = $flightRounds['AirlineSysId'];
                    //         $StopCount = $flightRounds['Stops'];
                    //         $AirlineName  = $flightRounds['AirlineName'];
                    //         $FlightNumber = $flightRounds['FlightNumber'];
                    //         $PublishedFare = $flightRounds['PublishedFare'];



                    //         $strArrivalTime = $flightRounds['LocalToTime'];
                    //         $strDepartureTime = $flightRounds['LocalFromTime'];


                    //         $intAdultsCT = $sessionFlightSearchParams['adults'];
                    //         $intChildsCT = $sessionFlightSearchParams['child'];
                    //         $intInfantsCT = $sessionFlightSearchParams['infant'];
                    //         //$intCountryCode = $sessionFlightSearchParams['intCountryCode'];
                    //         $intTatalPaxCTForMarkUp = $intAdultsCT + $intChildsCT + $intInfantsCT;
                    //         if ($interNationalSearch) {
                    //             $intCountryCode = "INTERNATIONAL";
                    //         } else {
                    //             $intCountryCode = "IN";
                    //         }



                    //         $DiscountValue = ($flightRounds['FairRules']['DiscountValue']) ? $flightRounds['FairRules']['DiscountValue'] : 0;
                    //         $ExtraMarkup = ($flightRounds['FairRules']['ExtraMarkup']) ? $flightRounds['FairRules']['ExtraMarkup'] : 0;
                    //         $ExtraMarkupOnGST = ($flightRounds['FairRules']['ExtraMarkupOnGST']) ? $flightRounds['FairRules']['ExtraMarkupOnGST'] : 0;
                    //         $intPublishedFare = ($flightRounds['FairRules']['PublishedFare'] + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg - $DiscountValue);
                    //         //$intOfferedFare = ($flightRounds['FairRules']['OfferedFare'] + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                    //         $intCommissionEarned = $flightRounds['FairRules']['CommEarned'];
                    //         $intPLBEarned = $flightRounds['FairRules']['PLBEarned'];
                    //         $intIncentiveEarned = $flightRounds['FairRules']['IncentiveEarned'];
                    //         $intGTXMarkUp = $flightRounds['FairRules']['intGTXMarkUp'];
                    //         $GTXMarkUpGST = $flightRounds['FairRules']['GTXMarkUpGST'];
                    //         $intAgencyFixMarkUp = $flightRounds['FairRules']['FixedMarkUp'];
                    //         $apiMarkup = ($flightRounds['FairRules']['apiMarkup']) ? $flightRounds['FairRules']['apiMarkup'] : 0;
                    //         $intTotalGST = ($flightRounds['FairRules']['intTotalGST']) ? $flightRounds['FairRules']['intTotalGST'] : 0;
                    //         $BaseAmount = 0;
                    //         $AgentServiceTaxAmount = 0;
                    //         if ($flightRounds['FairRules']['FareBreakdown']) {
                    //             foreach ($flightRounds['FairRules']['FareBreakdown'] as $key => $value) {
                    //                 //////////////////////////////////
                    //                 $IntCommission_ = $value['IntCommission'];
                    //                 $CommissionEarned_ = $value['CommissionEarned'];
                    //                 $PBaseFare_ = $value['BaseFare'];
                    //                 $DiscountValue_ = $value['DiscountValue'];
                    //                 $MF = $value['MF']; //Management Fee
                    //                 $YQ = $value['YQ']; //Fuel Surcharge
                    //                 $AGST = $value['AGST']; //Airline GST Component
                    //                 $MFT = $value['MFT']; //Management Fee Tax
                    //                 $OT = $value['OT']; //Other Charges
                    //                 $MU = $value['MU']; //Markup
                    //                 $YR = $value['YR']; //Carrier Misc Fee
                    //                 $otherCharge_ = ($YQ + $AGST + $MFT + $MF + $OT + $YR);
                    //                 $FixedMarkUp_ = $value['FixedMarkUp'];
                    //                 $GSTOnMarkUp = $value['GSTOnMarkUp'];
                    //                 $intGTXMarkUp_ = $value['intGTXMarkUp'];
                    //                 $GTXMarkUpGST_ = $value['GTXMarkUpGST'];
                    //                 $intTotalGST_ = $value['intTotalGST'];
                    //                 $apiMarkup_ = $value['apiMarkup'];
                    //                 $CommEarned_ = $value['CommEarned'];
                    //                 $customerDiscount_ = ($CommissionEarned_ - $IntCommission_);

                    //                 $GrandTotalBaseFare = (($PBaseFare_ - $CommEarned_ + $otherCharge_ + $FixedMarkUp_ + $apiMarkup_ + $intGTXMarkUp_ + $GTXMarkUpGST_) - $customerDiscount_);
                    //                 $BaseAmount += $GrandTotalBaseFare - $DiscountValue_;

                    //                 $AgentServiceTaxAmount += $intTotalGST_;
                    //             }
                    //         }
                    //         $TotalExtraCharge = ($ExtraMarkup + $ExtraMarkupOnGST);
                    //         $intOfferedFare = ($BaseAmount + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                    //         $totalCost = ($intPublishedFare);

                    //         // echo "<pre>";
                    //         // print_r($totalCost);
                    //         // die('d');
                    //         $AgencyMarkUp += ($intAgencyFixMarkUp + $apiMarkup);
                    //         $GTXMarkUp += ($GTXMarkUpGST);
                    //         $AgentCommisionEarned += ($intCommissionEarned);
                    //         $BaseAmount += ($intOfferedFare);
                    //         $PublishedFare += ($intPublishedFare);


                    //         $arrPlanAir['TPIntSysId'] = $TPIntSysId;
                    //         $arrPlanAir['SourceAirportCode'] = $strGoingFlightFrom;
                    //         $arrPlanAir['DestAirportCode'] = $strGoingFlightTo;
                    //         $arrPlanAir['LocalFromTime'] = $strArrivalTime;
                    //         $arrPlanAir['LocalToTime'] = $strDepartureTime;
                    //         $arrPlanAir['FromUTCTime'] = $strArrivalTime;
                    //         $arrPlanAir['ToUTCTime'] = $strDepartureTime;
                    //         $arrPlanAir['SupplierSysId'] = 3;
                    //         $arrPlanAir['IsActive'] = 1;
                    //         $arrPlanAir['IsMarkForDel'] = 0;

                    //         $arrPlanAir['FlightNumber'] = $FlightNumber;
                    //         $arrPlanAir['Cost']     = $intOfferedFare;
                    //         $arrPlanAir['TotalCost'] = $totalCost;
                    //         //$arrPlanAir['TotalCost']     = $intPublishedFare;
                    //         $arrPlanAir['XServiceTaxAmount'] = 0; //$intSTaxOnBasePrice;
                    //         $arrPlanAir['GTXServiceTaxAmount'] = 0; //$intSTaxOnGTXMarkUp;
                    //         $arrPlanAir['AgentServiceTaxAmount'] = $AgentServiceTaxAmount;
                    //         $arrPlanAir['AgentsCustomServiceTaxAmount'] = 0;

                    //         $arrPlanAir['MarkUp']     = 0;
                    //         $arrPlanAir['AgencyMarkUp'] = ($intAgencyFixMarkUp + $apiMarkup);
                    //         //$arrPlanAir['AgencyMarkUp']     = $intAgencyFixMarkUp;
                    //         $arrPlanAir['GTXMarkup']     = $intGTXMarkUp;
                    //         $arrPlanAir['GTXCommission']     = 0;
                    //         $arrPlanAir['AgencyCommission']     = $intCommissionEarned;
                    //         $arrPlanAir['ExtraMarkup']     = $ExtraMarkup;
                    //         $arrPlanAir['ExtraMarkupOnGST']     = $ExtraMarkupOnGST;
                    //         $arrPlanAir['Taxes']     = 0;
                    //         $arrPlanAir['TDS']     = 0;

                    //         $arrPlanAir['AirlineSysId'] = $AirlineSysId;
                    //         $arrPlanAir['ICSourceSysId'] = $ICSourceSysId;
                    //         $arrPlanAir['InvnItemSysId'] = $AirInvenSysId;
                    //         $arrPlanAir['IsFromAPI'] = 1;
                    //         $arrPlanAir['StopCount'] = $StopCount;
                    //         $arrPlanAir['AdultPax'] = $adultCount;
                    //         $arrPlanAir['ChildPax'] = $childCount;
                    //         $arrPlanAir['InfentPax'] = $infantCount;
                    //         $arrPlanAir['TotalPax'] = $totalPassengers;
                    //         $arrPlanAir['TripType'] = $route;
                    //         $arrPlanAir['IsSelectedOnPkg'] = 1;
                    //         $arrPlanAir['CreateDate'] =  date('Y-m-d H:i:s');
                    //         $arrPlanAir['UpdateDate'] =  date('Y-m-d H:i:s');
                    //         $arrPlanAir['AgencySysId'] = $AgencySysId;

                    //         $intTpAirId = $objFlight->insertTravelPlanIAir($arrPlanAir);
                    //         $intRounds++;
                    //         $arrIntTpAirId[] = $intTpAirId;
                    //     }
                    // }

                    if (!empty($BookingData) ) {
                        $intRounds = 0;
                        $arrIntTpAirId = array();
                        foreach ($BookingData as $keys => $flightRounds) {
                            $IsNewMigration = isset($flightRounds['IsNewMigration']) ? $flightRounds['IsNewMigration'] : 0;
                            $IsTJFlightAPI = isset($flightRounds['IsTJFlightAPI']) ? $flightRounds['IsTJFlightAPI'] : 0;

                            $Currency = $flightRounds['FairRules']['Currency'];
                            $currencySysId = $flightRounds['FairRules']['currencySysId'];
                            $BaseFairRules = $flightRounds['FairRules']['BaseFare'];
                            $Tax = !empty($flightRounds['FairRules']['Tax']) ? $flightRounds['FairRules']['Tax'] : 0;
                            $YQTax = !empty($flightRounds['FairRules']['YQTax']) ? $flightRounds['FairRules']['YQTax'] : 0;
                            $AdditionalTxnFeeOfrd = $flightRounds['FairRules']['AdditionalTxnFeeOfrd'];
                            $AdditionalTxnFeePub = $flightRounds['FairRules']['AdditionalTxnFeePub'];
                            $OtherCharges = $flightRounds['FairRules']['OtherCharges'];
                            $Discount = $flightRounds['FairRules']['Discount'];
                            $PublishedFare = $flightRounds['FairRules']['PublishedFare'];
                            $CommissionEarned = isset($flightRounds['FairRules']['CommissionEarned']) ? $flightRounds['FairRules']['CommissionEarned'] : 0;
                            //$CommissionEarned = isset($flightRounds['FairRules']['CommEarned']) ? $flightRounds['FairRules']['CommEarned'] : 0;
                            $PLBEarned = $flightRounds['FairRules']['PLBEarned'];
                            $IncentiveEarned = $flightRounds['FairRules']['IncentiveEarned'];
                            $OfferedFare = $flightRounds['FairRules']['OfferedFare'];
                            $TdsOnCommission = isset($flightRounds['FairRules']['TdsOnCommission']) ? $flightRounds['FairRules']['TdsOnCommission'] : 0;
                            $TdsOnPLB = $flightRounds['FairRules']['TdsOnPLB'];
                            $TdsOnIncentive = $flightRounds['FairRules']['TdsOnIncentive'];
                            $ServiceFee = $flightRounds['FairRules']['ServiceFee'];
                            $UpdateDate = date('Y-m-d H:i:s');
                            $CreateDate = date('Y-m-d H:i:s');
                            $ApproveBy = $AgencySysId;
                            $ApprovalDate = date('Y-m-d H:i:s');
                            $arrFairRules = array(
                                "TBOAirInvenAPISysId" => "",
                                "Currency" => $currencySysId,
                                "BaseFare" => $BaseFairRules,
                                "Tax" => $Tax,
                                "YQTax" => $YQTax,
                                "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                                "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                                "OtherCharges" => $OtherCharges,
                                "Discount" => $Discount,
                                "ServiceFee" => $ServiceFee,
                                "PublishedFare" => $PublishedFare,
                                "CommissionEarned" => $CommissionEarned,
                                "PLBEarned" => $PLBEarned,
                                "IncentiveEarned" => $IncentiveEarned,
                                "OfferedFare" => $OfferedFare,
                                "TdsOnCommission" => $TdsOnCommission,
                                "TdsOnPLB" => $TdsOnPLB,
                                "TdsOnIncentive" => $TdsOnIncentive,
                                "UpdateDate" => $UpdateDate,
                                "CreateDate" => $CreateDate,
                                "IsActive" => 1,
                                "IsMarkForDel" => 1
                            );
                            //$AirInvenSysId = isset($AirInvenSysIdArr[$keys]) ? $AirInvenSysIdArr[$keys] : 0; TdsOnCommission
                            if ($interNationalSearch == "1" && $route == "2") {
                                $Segments = $flightRounds['Segments'];
                            } else {
                                $Segments = $flightRounds['Segments'];
                            }

                            $SeatPriceSeg = 0;
                            $MealPriceSeg = 0;
                            $BagPriceSeg = 0;
                            $FlyingMinutes = 0;
                            foreach ($Segments as $seg) {
                                $segmentid = $seg['segmentid'];
                                $SelectedBagg = isset($SelectedBaggSessionNew[$segmentid]) ? $SelectedBaggSessionNew[$segmentid] : [];
                                $SelectedMeal = isset($SelectedMealSessionNew[$segmentid]) ? $SelectedMealSessionNew[$segmentid] : [];
                                $SelectedSeat = isset($selectedSeatSession[$segmentid]) ? $selectedSeatSession[$segmentid] : [];
                                if (!empty($SelectedSeat)) {
                                    foreach ($SelectedSeat as $val) {
                                        $SeatPriceSeg += $val['amount'];
                                    }
                                }
                                if (!empty($SelectedMeal)) {
                                    foreach ($SelectedMeal as $val) {
                                        $MealPriceSeg += $val['Price'];
                                    }
                                }
                                if (!empty($SelectedBagg)) {
                                    foreach ($SelectedBagg as $val) {
                                        $BagPriceSeg += $val['Price'];
                                    }
                                }
                                $strBaggage = $seg['Baggage'];
                                $strCabinBaggage = $seg['CabinBaggage'];
                                $TripIndicator = $seg['TripIndicator'];
                                $SegmentIndicator = $seg['TripIndicator'];

                                $AirlineName = $seg['AirlineName'];
                                $FlightNumber = $seg['SegFlightNumber'];
                                $FareClass = $seg['FareClass'];

                                $originAirportCode = $seg['originAirportCode'];
                                $originDepTime = $seg['originDepTime'];

                                $destinationAirportCode = $seg['destinationAirportCode'];
                                $destinationArrTime = $seg['destinationArrTime'];

                                $Duration = $seg['Duration'];
                                $GroundTime = $seg['GroundTime'];
                                $Mile = $seg['Mile'];
                                $StopOver = $seg['StopOver'];
                                $StopPoint = $seg['StopPoint'];
                                $StopPointArrivalTime = $seg['StopPointArrivalTime'];
                                $Craft = $seg['Craft'];
                                $Remark = $seg['Remark'];
                                $IsETicketEligible = $seg['IsETicketEligible'];
                                $NoOfSeatAvailable = !empty($seg['NoOfSeatAvailable']) ? $seg['NoOfSeatAvailable'] : 0;
                                $FlightStatus = $seg['FlightStatus'];
                                $Status = $seg['Status'];
                                $arrSegments = array(
                                    "AirInvenAPISysId" => '',
                                    "TripIndicator" => $TripIndicator,
                                    "Baggage" => $strBaggage,
                                    "CabinBaggage" => $strCabinBaggage,
                                    "SegmentIndicator" => ($SegmentIndicator) ? $SegmentIndicator : 1,
                                    "Duration" => $Duration,
                                    "GroundTime" => $GroundTime,
                                    "Mile" => $Mile,
                                    "StopOver" => $StopOver,
                                    "StopPoint" => $StopPoint,
                                    "StopPointArrivalTime" => $StopPointArrivalTime,
                                    "Craft" => $Craft,
                                    "Remark" => $Remark,
                                    "IsETicketEligible" => $IsETicketEligible,
                                    "FlightStatus" => $FlightStatus,
                                    "Status" => $Status
                                );
                                $FlyingMinutes = $FlyingMinutes + ((isset($seg['Duration']) ? $seg['Duration'] : 0) + (!empty($seg['GroundTime']) ? $seg['GroundTime'] : (isset($seg['AccumulatedDuration']) ? $seg['AccumulatedDuration'] : 0)));
                            }


                            $airlineSysId = $flightRounds['AirlineSysId'];
                            $FlyingMinutes = $FlyingMinutes;
                            if (!empty($result['Segments']) && count($result['Segments']) > 1) {
                                $SegmentsCount = count($result['Segments']);
                                $StopCount = $SegmentsCount - 1;
                                $IsDirect = '0';
                            } else {
                                $StopCount = '0';
                                $IsDirect = '1';
                            }

                            $strTraceId = $flightRounds['apiTraceId'];
                            $localFromDateTime = $flightRounds['LocalFromTime'];
                            $initialOriginDepTime = $flightRounds['FromUTCTime'];
                            $localToDateTime = $flightRounds['LocalToTime'];
                            $ToUTCTime = $flightRounds['ToUTCTime'];
                            $DayLightSavingDiff = isset($flightRounds['DayLightSavingDiff']) ? $flightRounds['DayLightSavingDiff'] : 0;
                            $intSourceCityId = $flightRounds['SourcePlaceSysId'];
                            $intDestinationCityId = $flightRounds['DestPlaceSysId'];
                            $strSourceAirportCode = $flightRounds['SourceAirportCode'];
                            $strDestinationAirportCode = $flightRounds['DestAirportCode'];
                            $AirportHaultMinutes = isset($flightRounds['AirportHaultMinutes']) ? $flightRounds['AirportHaultMinutes'] : 0;
                            $intMemberCount = $flightRounds['TotalFlightMembers'];
                            $JourneyType = $flightRounds['JourneyType'];
                            $TripType = $flightRounds['TripType'];
                            $IsInternational = $flightRounds['IsInternational'];
                            $IsFromAgency = 1;
                            $strFlightNumber = $flightRounds['FlightNumber'];
                            $ResultIndex = $flightRounds['ApiResultIndex'];
                            $IsLCC = $flightRounds['IsLCC'];
                            $IsRefundable = isset($flightRounds['IsRefundable'])?$flightRounds['IsRefundable']:0;
                            $strFareClass = isset($flightRounds['FareClass'])?$flightRounds['FareClass']:0;
                            $NoOfSeatAvailable = isset($flightRounds['NoOfSeatAvailable']) ? $flightRounds['NoOfSeatAvailable'] : 0;

                            if ($interNationalSearch == "1" && $route == "2") {
                                $AirInvenSysId = isset($AirInvenSysIdArrNew[$keys]) ? $AirInvenSysIdArrNew[$keys] : 0;
                            } else {
                                // if ($IsTJFlightAPI == 1 && $IsSeriesFareData == 0) {
                                //     $ICSourceSysId = 7;
                                // } elseif ($IsTJFlightAPI == 0 && $IsSeriesFareData == 0) {
                                //     $ICSourceSysId = 3;
                                // } elseif ($IsTJFlightAPI == 0 && $IsSeriesFareData == 1) {
                                //     $ICSourceSysId = 8;
                                // }
                                $arrInsertFlightData = array();
                                $arrInsertFlightData['FlightNumber'] = $strFlightNumber;
                                $arrInsertFlightData['AirInvenSysId'] = 0;
                                $arrInsertFlightData['IsLCC'] = $IsLCC;
                                $arrInsertFlightData['IsRefundable'] = !empty($IsRefundable)?$IsRefundable:0;
                                $arrInsertFlightData['apiTraceId'] = $strTraceId;
                                $arrInsertFlightData['AirlineSysId'] = $airlineSysId;
                                $arrInsertFlightData['ICSourceSysId'] = $ICSourceSysId; //($IsSeriesFareData == 1)?8:7;
                                $arrInsertFlightData['IsFromAgency'] = $IsFromAgency;
                                $arrInsertFlightData['LocalFromTime'] = $localFromDateTime;
                                $arrInsertFlightData['FromUTCTime'] = str_replace('T', ' ', $initialOriginDepTime);
                                $arrInsertFlightData['LocalToTime'] = str_replace('T', ' ', $localToDateTime);
                                $arrInsertFlightData['ToUTCTime'] = str_replace('T', ' ', $ToUTCTime);
                                $arrInsertFlightData['IsDirect'] = $IsDirect;
                                $arrInsertFlightData['FareClass'] = $strFareClass;
                                $arrInsertFlightData['DayLightSavingDiff'] = $DayLightSavingDiff;
                                $arrInsertFlightData['FlyingMinutes'] = $FlyingMinutes;
                                $arrInsertFlightData['SourcePlaceSysId'] = $intSourceCityId;
                                $arrInsertFlightData['DestPlaceSysId'] = $intDestinationCityId;
                                $arrInsertFlightData['SourceAirportCode'] = $strSourceAirportCode;
                                $arrInsertFlightData['DestAirportCode'] = $strDestinationAirportCode;
                                $arrInsertFlightData['AirportHaultMinutes'] = $AirportHaultMinutes;
                                $arrInsertFlightData['StopCount'] = $StopCount;
                                $arrInsertFlightData['Stops'] = '';
                                $arrInsertFlightData['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                                $arrInsertFlightData['TotalFlightMembers'] = $intMemberCount;
                                $arrInsertFlightData['CurrencyType'] = $currencySysId;
                                $arrInsertFlightData['PublishedFare'] = $OfferedFare; // As Discussed with GG Discount
                                $arrInsertFlightData['CommissionEarned'] = $CommissionEarned;
                                $arrInsertFlightData['ApiResultIndex'] = '';//$ResultIndex;
                                $arrInsertFlightData['JourneyType'] = $JourneyType;
                                $arrInsertFlightData['TripType'] = $TripType;
                                $arrInsertFlightData['Rating'] = 0;
                                $arrInsertFlightData['FllightFeatureMask'] = 0;
                                $arrInsertFlightData['UpdatedByISSysId'] = $AgencySysId;
                                $arrInsertFlightData['CreatedByISSysId'] = $AgencySysId;
                                $arrInsertFlightData['ImageTN'] = '';
                                $arrInsertFlightData['ImgForList'] = '';
                                $arrInsertFlightData['ImgeDetails'] = '';
                                $arrInsertFlightData['UpdateDate'] = $UpdateDate;
                                $arrInsertFlightData['CreateDate'] = $CreateDate;
                                $arrInsertFlightData['ApproveBy'] = $ApproveBy;
                                $arrInsertFlightData['ApprovalDate'] = $ApprovalDate;
                                $arrInsertFlightData['IsApproved'] = 1;
                                $arrInsertFlightData['IsActive'] = 1;
                                $arrInsertFlightData['IsMarkForDel'] = 0;
                                $arrInsertFlightData['IsInternational'] = ($IsInternational) ? $IsInternational : '0';
                                $arrInsertFlightData['IsNewMigration'] = ($IsNewMigration) ? $IsNewMigration : 0;

                                $intFlightLastInsertId = $this->_objFlight->addFlightDetails($arrInsertFlightData); //TB_IC_Trans_API_Air addFlightDetails
                                $AirInvenSysId = $AirInvenSysIdArr[] = $intFlightLastInsertId;
                                $arrFairRules['TBOAirInvenAPISysId'] = $AirInvenSysId;
                                
                                $this->_objFlight->addFlightFairRuleDetails($arrFairRules); //TB_IC_Trans_API_Air_Fare
                                
                                try {
                                    $arrSegments['AirInvenAPISysId'] = $AirInvenSysId;
                                    $objFlight->addFlightSegmentsDetails($arrSegments);
                                } catch (Exception $e) {
                                    echo $e->getMessage();
                                    die('addflightfairrules');
                                }

                                if (!empty($flightRounds['FairRules']['FareBreakdown']) ) {
                                    foreach ($flightRounds['FairRules']['FareBreakdown'] as $fareBreakdown) {
                                        $Currency = $fareBreakdown['Currency'];
                                        $PassengerType = $fareBreakdown['PassengerType'];
                                        $PassengerCount = $fareBreakdown['PassengerCount'];
                                        $BaseFare = $fareBreakdown['BaseFare'];
                                        $Tax = isset($fareBreakdown['Tax']) ? $fareBreakdown['Tax'] : $fareBreakdown['TaxIN'];
                                        $YQTax = isset($fareBreakdown['YQTax']) ? $fareBreakdown['YQTax'] : $fareBreakdown['YQ'];
                                        $AdditionalTxnFeeOfrd = $fareBreakdown['AdditionalTxnFeeOfrd'];
                                        $AdditionalTxnFeePub = $fareBreakdown['AdditionalTxnFeePub'];
                                        $intCommisionEarnedForAgency = isset($fareBreakdown['IntCommission']) ? $fareBreakdown['IntCommission'] : 0; // New fields
                                        $OtherCharges = isset($fareBreakdown['OtherCharges']) ? $fareBreakdown['OtherCharges'] : 0; // New fields
                                        $FixedMarkUp = isset($fareBreakdown['FixedMarkUp']) ? $fareBreakdown['FixedMarkUp'] : 0; // New fields
                                        $GSTOnMarkUp = isset($fareBreakdown['GSTOnMarkUp']) ? $fareBreakdown['GSTOnMarkUp'] : 0; // New fields
                                        $ServiceFee = isset($fareBreakdown['ServiceFee']) ? $fareBreakdown['ServiceFee'] : 0; // New fields
                                        $Discount = isset($fareBreakdown['CommisionPass']) ? $fareBreakdown['CommisionPass'] : 0; // New fields
                                        $arrFareBreakdown = array(
                                            "TBQAirInvenAPISysId" => $AirInvenSysId,
                                            "Currency" => $currencySysId,
                                            "PassengerType" => $PassengerType,
                                            "PassengerCount" => $PassengerCount,
                                            "BaseFare" => $BaseFare,
                                            "Tax" => !empty($Tax) ? $Tax : 0,
                                            "YQTax" => !empty($YQTax) ? $YQTax : 0,
                                            "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                                            "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                                            "CommissionEarned" => ($intCommisionEarnedForAgency),
                                            "OtherCharges" => $OtherCharges,
                                            "FixedMarkUp" => $FixedMarkUp,
                                            "GSTOnMarkUp" => $GSTOnMarkUp,
                                            "ServiceFee" => $ServiceFee,
                                            "Discount" => $Discount,
                                        );

                                        $FareBreakdownid = $objFlight->addFlightFareBreakdown($arrFareBreakdown);
                                    }
                                }
                            }

                            $strGoingFlightFrom = $flightRounds['SourceAirportCode'];
                            $strGoingFlightTo = $flightRounds['DestAirportCode'];

                            $AirlineSysId = ($flightRounds['AirlineSysId'])?$flightRounds['AirlineSysId']:$flightRounds['origin']['AirlineSysId'];
                            $StopCount = $flightRounds['Stops'];
                            $AirlineName = $flightRounds['AirlineName'];
                            $FlightNumber = $flightRounds['FlightNumber'];
                            $PublishedFare = $flightRounds['PublishedFare'];
                            
                            //$OfferedFare = $flightRounds['OfferedFare'];
                            //$intCommissionEarned = $flightRounds['CommissionEarned'];


                            $strArrivalTime = $flightRounds['LocalToTime'];
                            $strDepartureTime = $flightRounds['LocalFromTime'];


                            //$sessionFlightSearchParams = new Zend_Session_Namespace('sessionFlightSearchParams');
                            $intAdultsCT = $sessionFlightSearchParams['adults'];
                            $intChildsCT = $sessionFlightSearchParams['child'];
                            $intInfantsCT = $sessionFlightSearchParams['infant'];
                            //$intCountryCode = $sessionFlightSearchParams['intCountryCode'];
                            $intTatalPaxCTForMarkUp = $intAdultsCT + $intChildsCT + $intInfantsCT;
                            if ($interNationalSearch) {
                                $intCountryCode = "INTERNATIONAL";
                            } else {
                                $intCountryCode = "IN";
                            }

                            $DiscountValue = ($flightRounds['FairRules']['DiscountValue']) ? $flightRounds['FairRules']['DiscountValue'] : 0;
                            $ExtraMarkup = ($flightRounds['FairRules']['ExtraMarkup']) ? $flightRounds['FairRules']['ExtraMarkup'] : 0;
                            $ExtraMarkupOnGST = ($flightRounds['FairRules']['ExtraMarkupOnGST']) ? $flightRounds['FairRules']['ExtraMarkupOnGST'] : 0;
                            $intPublishedFare = ($flightRounds['FairRules']['PublishedFare'] + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                            //$intOfferedFare = ($flightRounds['FairRules']['OfferedFare'] + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                            $intCommissionEarned = $flightRounds['FairRules']['CommEarned'];
                            $intPLBEarned = $flightRounds['FairRules']['PLBEarned'];
                            $intIncentiveEarned = $flightRounds['FairRules']['IncentiveEarned'];
                            $intGTXMarkUp = $flightRounds['FairRules']['intGTXMarkUp'];
                            $GTXMarkUpGST = $flightRounds['FairRules']['GTXMarkUpGST'];
                            $intAgencyFixMarkUp = $flightRounds['FairRules']['FixedMarkUp'];
                            $apiMarkup = ($flightRounds['FairRules']['apiMarkup']) ? $flightRounds['FairRules']['apiMarkup'] : 0;
                            $intTotalGST = ($flightRounds['FairRules']['intTotalGST']) ? $flightRounds['FairRules']['intTotalGST'] : 0;
                            $BaseAmount = 0;
                            if ($flightRounds['FairRules']['FareBreakdown']) {
                                foreach ($flightRounds['FairRules']['FareBreakdown'] as $key => $value) {

                                    //////////////////////////////////
                                    $IntCommission_ = $value['IntCommission'];
                                    $CommissionEarned_ = $value['CommissionEarned'];
                                    $PBaseFare_ = $value['BaseFare'];
                                    $MF = $value['MF']; //Management Fee
                                    $YQ = $value['YQ']; //Fuel Surcharge
                                    $AGST = $value['AGST']; //Airline GST Component
                                    $MFT = $value['MFT']; //Management Fee Tax
                                    $OT = $value['OT']; //Other Charges
                                    $MU = $value['MU']; //Markup
                                    $YR = $value['YR']; //Carrier Misc Fee
                                    $otherCharge_ = ($YQ + $AGST + $MFT + $MF + $OT + $YR);
                                    $FixedMarkUp_ = $value['FixedMarkUp'];
                                    $GSTOnMarkUp = $value['GSTOnMarkUp'];
                                    $intGTXMarkUp_ = $value['intGTXMarkUp'];
                                    $GTXMarkUpGST_ = $value['GTXMarkUpGST'];
                                    $intTotalGST_ = $value['intTotalGST'];
                                    $apiMarkup_ = $value['apiMarkup'];
                                    $CommEarned_ = $value['CommEarned'];
                                    $customerDiscount_ = ($CommissionEarned_ - $IntCommission_);

                                    $GrandTotalBaseFare = (($PBaseFare_ - $CommEarned_ + $otherCharge_ + $FixedMarkUp_ + $apiMarkup_ + $intGTXMarkUp_ + $GTXMarkUpGST_) - $customerDiscount_);
                                    $BaseAmount += $GrandTotalBaseFare;

                                    $AgentServiceTaxAmount += $intTotalGST_;
                                }
                            }
                            $TotalExtraCharge = ($ExtraMarkup + $ExtraMarkupOnGST);
                            $intOfferedFare = ($BaseAmount + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                            $totalCost = ($intPublishedFare + $TotalExtraCharge);

                            $AgencyMarkUp += ($intAgencyFixMarkUp + $apiMarkup);
                            $GTXMarkUp += ($GTXMarkUpGST);
                            $AgentCommisionEarned += ($intCommissionEarned);
                            $BaseAmount_trx += ($intOfferedFare);
                            $PublishedFare_trx += ($intPublishedFare);
                            $TotalDiscountValue += ($DiscountValue);


                            $arrPlanAir['SeqId'] = $intRounds;
                            $arrPlanAir['TPIntSysId'] = $TPIntSysId;
                            $arrPlanAir['SourceAirportCode'] = $strGoingFlightFrom;
                            $arrPlanAir['DestAirportCode'] = $strGoingFlightTo;
                            $arrPlanAir['LocalFromTime'] = str_replace('T',' ',$strArrivalTime);
                            $arrPlanAir['LocalToTime'] = str_replace('T',' ',$strDepartureTime);
                            $arrPlanAir['FromUTCTime'] = str_replace('T',' ',$strArrivalTime);
                            $arrPlanAir['ToUTCTime'] = str_replace('T',' ',$strDepartureTime);
                            $arrPlanAir['SupplierSysId'] = 3;
                            $arrPlanAir['IsActive'] = 1;
                            $arrPlanAir['IsMarkForDel'] = 0;

                            $arrPlanAir['FlightNumber'] = $FlightNumber;
                            $arrPlanAir['Cost'] = ($intOfferedFare);
                            $arrPlanAir['TotalCost'] = $totalCost; //($intPublishedFare + $ExtraMarkup + $ExtraMarkupOnGST);
                            $arrPlanAir['XServiceTaxAmount'] = 0; //$intSTaxOnBasePrice;
                            $arrPlanAir['GTXServiceTaxAmount'] = $GTXMarkUpGST; //$intSTaxOnGTXMarkUp;
                            $arrPlanAir['AgentServiceTaxAmount'] = $intTotalGST; //$intTotalGSTAgencyEarnings; ICSourceSysId
                            $arrPlanAir['AgentsCustomServiceTaxAmount'] = 0;

                            $arrPlanAir['MarkUp'] = 0;
                            $arrPlanAir['AgencyMarkUp'] = ($intAgencyFixMarkUp + $apiMarkup);
                            $arrPlanAir['GTXMarkup'] = $intGTXMarkUp;
                            $arrPlanAir['GTXCommission'] = 0;
                            $arrPlanAir['AgencyCommission'] = $intCommissionEarned;
                            $arrPlanAir['ExtraMarkup'] = $ExtraMarkup;
                            $arrPlanAir['ExtraMarkupOnGST'] = $ExtraMarkupOnGST;
                            $arrPlanAir['Discount'] = $DiscountValue;
                            $arrPlanAir['Taxes'] = 0;
                            $arrPlanAir['TDS'] = 0;

                            $arrPlanAir['AirlineSysId'] = $AirlineSysId;
                            $arrPlanAir['ICSourceSysId'] = $ICSourceSysId; //($IsSeriesFareData == 1)?8:7; intLoggedinAgencyId
                            $arrPlanAir['InvnItemSysId'] = $AirInvenSysId;
                            $arrPlanAir['IsFromAPI'] = 1;
                            $arrPlanAir['StopCount'] = ($StopCount)?$StopCount:0;
                            $arrPlanAir['AdultPax'] = $adultCount;
                            $arrPlanAir['ChildPax'] = $childCount;
                            $arrPlanAir['InfentPax'] = $infantCount;
                            $arrPlanAir['TotalPax'] = $totalPassengers;
                            $arrPlanAir['TripType'] = $route;
                            $arrPlanAir['XRefBookingId'] = isset($flightRounds['bookingId']) ? $flightRounds['bookingId'] : '';
                            $arrPlanAir['IsSelectedOnPkg'] = 1;
                            $arrPlanAir['CreateDate'] = date('Y-m-d H:i:s');
                            $arrPlanAir['UpdateDate'] = date('Y-m-d H:i:s');
                            $arrPlanAir['AgencySysId'] = $AgencySysId;
                            // echo "<pre>"; 
                            // print_r($arrPlanAir); 
                            // die('sssss');
                            $intTpAirId = $objFlight->insertTravelPlanIAir($arrPlanAir);
                            $intRounds++;
                            $arrIntTpAirId[] = $intTpAirId;
                        }
                    }
                }
                
                //Will Remove ...
                $Customer = new Zend_Session_Namespace('Customer');
                $Customer->Customer = $arrCustomer;
                $Customer->CustomerMembers = $arrCustomerMembers;
                $Customer->intCustomerSysId = $intCustomerSysId;
                $Customer->intTPSysId = $TPSysId;
                //$TraceId = implode('-', str_split(substr(strtolower(md5(time() . rand(1000, 9999))), 0, 20), 5));
                //Will Remove...
                // $arrData = array(
                //     "intOutBoundId" => $BookingData,
                //     "intInBoundId" => $intInBoundId,
                //     "intCustomerSysId" => $intCustomerSysId,
                //     "intTPSysId" => $TPSysId,
                //     "arrIntTpAirId" => $arrIntTpAirId,
                //     "SelectedBaggSessionNew" => $SelectedBaggSessionNew,
                //     "SelectedMealSessionNew" => $SelectedMealSessionNew,
                //     "selectedSeatSession" => $selectedSeatSession,
                //     "sessionFlightSearchParams" => $sessionFlightSearchParams,
                //     "AirInvenSysIdArr" => $AirInvenSysIdArr,
                //     "ForCustomerSession" => $ForCustomerSession,
                //     "IsTripjack" => true,
                // );
                $arrData['intOutBoundId'] = $intOutBoundId;
                $arrData['intInBoundId'] = $intInBoundId;
                $arrData['intCustomerSysId'] = $intCustomerSysId;
                $arrData['intTPSysId'] = $TPSysId;
                $arrData['arrIntTpAirId'] = $arrIntTpAirId;
                $arrData['SelectedBaggSessionNew'] = $SelectedBaggSessionNew;
                $arrData['SelectedMealSessionNew'] = $SelectedMealSessionNew;
                $arrData['selectedSeatSession'] = $selectedSeatSession;
                $arrData['sessionFlightSearchParams'] = $sessionFlightSearchParams;
                $arrData['AirInvenSysIdArr'] = $AirInvenSysIdArr;
                $arrData['ForCustomerSession'] = $ForCustomerSession;
                $arrData['IsTripjack'] = true;
                $tempData = array(
                    'TraceId' => $SearchTraceId,
                    'TPSysId' => $TPSysId,
                    'APIBookingData' => json_encode($arrData),
                );

                $objFlight->deleteFlightTempData($SearchTraceId);
                $objFlight->insertFlightTempData($tempData);
                //$strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);

                $response = array('success' => true, 'intCustomerSysId' => $intCustomerSysId, 'strUrlData' => $SearchTraceId);
                echo json_encode($response);
                exit;
            } catch (Exception $e) {
                echo $e->getMessage();
            }
        }
    }
    public function validatepassAction()
    {
        $post = $this->getRequest()->getPost();
        $sessionFlightSearchParams = json_decode($this->getRequest()->getParam('sessionFlightSearchParams'), true);
        //$sessionFlightSearchParams = new Zend_Session_Namespace('sessionFlightSearchParams');
        $editLeadId = isset($sessionFlightSearchParams['editLeadId']) ? $sessionFlightSearchParams['editLeadId'] : '';
        $route = isset($sessionFlightSearchParams['route']) ? $sessionFlightSearchParams['route'] : '';
        $interNationalSearch = isset($sessionFlightSearchParams['interNationalSearch']) ? $sessionFlightSearchParams['interNationalSearch'] : '';
        $strSourceAirportCode = $sessionFlightSearchParams['from'];
        $strDestinationAirportCode = $sessionFlightSearchParams['to'];

        $intOutBoundId = !empty($this->getRequest()->getParam('intOutBoundId')) ? json_decode($this->getRequest()->getParam('intOutBoundId'), true) : 0;
        $BookingData = $intOutBoundId;
        $SearchTraceId = $BookingData[0]['SearchTraceId'];
        $isAdobrMandatory = $BookingData[0]['isAdobrMandatory'];
        $isCdobrMandatory = $BookingData[0]['isCdobrMandatory'];
        $isIdobrMandatory = $BookingData[0]['isIdobrMandatory'];
        $IsPassMandatory = $BookingData[0]['IsPassMandatory'];
        $ICSourceSysId = isset($BookingData[0]['ICSourceSysId']) ? $BookingData[0]['ICSourceSysId'] : 0;

        $adultCount   = isset($sessionFlightSearchParams['adults']) ? $sessionFlightSearchParams['adults'] : 0;
        $childCount   = isset($sessionFlightSearchParams['child']) ? $sessionFlightSearchParams['child'] : 0;
        $infantCount   = isset($sessionFlightSearchParams['infant']) ? $sessionFlightSearchParams['infant'] : 0;

        $totalPassengers = $adultCount + $childCount + $infantCount;

        // echo "<pre>";
        // print_r($IsPassMandatory);
        // die('d');
        //encode travellers information in json to save created by Er Amit Kumar Dubey on 6 march 2017 at 11:21 AM
        $departure_dates_string = $sessionFlightSearchParams['departure_dates'];
        if($route == '3'){
            $departure_dates_string = $sessionFlightSearchParams['departure_dates'][0];
        }
        
        $explode_date = explode("/", $departure_dates_string);
        $departure_dates = $explode_date[2] . '-' . $explode_date[1] . '-' . $explode_date[0];

        $return_dates_string = $sessionFlightSearchParams['return_dates'];
        $explode_return_date = explode("/", $return_dates_string);
        $return_dates =  (isset($sessionFlightSearchParams['return_dates']) && !empty($sessionFlightSearchParams['return_dates'])) ? $explode_return_date[2] . '-' . $explode_return_date[1] . '-' . $explode_return_date[0] : '1900-01-01';

        $oneway_origin_text = isset($sessionFlightSearchParams['oneway_origin_text']) ? $sessionFlightSearchParams['oneway_origin_text'] : $sessionFlightSearchParams['sourceCityAirportCode'];
        $oneway_destination_text = isset($sessionFlightSearchParams['oneway_destination_text']) ? $sessionFlightSearchParams['oneway_destination_text'] : $sessionFlightSearchParams['destinationCityAirportCode'];
        $flight_class = $sessionFlightSearchParams['flight_class'];
        for ($i = 1; $i <= $totalPassengers; $i++) {

            $paxType      = $post['paxType-' . $i];
            $firstName    = $post['passenger-firstname-' . $i];
            $lastName     = $post['passenger-lastname-' . $i];
            $relation     = $post['relation-' . $i];
            $salutation   = $post['passenger-salutation-' . $i];
            $mobileNumber = $post['mobile_number'];
            $email_id     = $post['email_id'];

            $passengerDob       = !empty($post['passenger-dob-' . $i]) ? $post['passenger-dob-' . $i] : '01/01/1900';

            $AdultpassengerpassengerDob       = isset($post['Adultpassenger-dob-' . $i]) ? $post['Adultpassenger-dob-' . $i] : '';
            $nationality       = isset($post['passenger-nationality-' . $i]) ? $post['passenger-nationality-' . $i] : '';
            $passengerPassportNo       = isset($post['passenger-PassportNo-' . $i]) ? $post['passenger-PassportNo-' . $i] : '';
            $passengerPassportExpiry       = isset($post['passenger-PassportExpiry-' . $i]) ? $post['passenger-PassportExpiry-' . $i] : '';
            $passporIssue       = isset($post['passenger-passporIssue-' . $i]) ? $post['passenger-passporIssue-' . $i] : '';
            if (!empty($passengerDob)) {
                $passengerDob       = explode("/", $passengerDob);
                $passengerDob       = $passengerDob[2] . "-" . $passengerDob[1] . "-" . $passengerDob[0];
            }
            if (!empty($AdultpassengerpassengerDob)) {
                $AdultpassengerpassengerDob       = explode("/", $AdultpassengerpassengerDob);
                $AdultpassengerpassengerDob       = $AdultpassengerpassengerDob[2] . "-" . $AdultpassengerpassengerDob[1] . "-" . $AdultpassengerpassengerDob[0];
            }
            if (!empty($passengerPassportExpiry)) {
                $passengerPassportExpiry       = explode("/", $passengerPassportExpiry);
                $passengerPassportExpiry       = $passengerPassportExpiry[2] . "-" . $passengerPassportExpiry[1] . "-" . $passengerPassportExpiry[0];
            }
            if (!empty($passporIssue)) {
                $passporIssue       = explode("/", $passporIssue);
                $passporIssue       = $passporIssue[2] . "-" . $passporIssue[1] . "-" . $passporIssue[0];
            }

            $passengerCity          = $post['passenger-city-1'];
            $passengerCountry       = $post['passenger-country-1'];
            $passengerAddress       = $post['passenger-address-1'];

            $AdultageCalculator = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->ageCalculator($departure_dates, $AdultpassengerpassengerDob);

            if (empty($mobileNumber)) {
                $response = array('succes' => false, 'msg' => 'Please enter mobile number.', 'index' => 'mobile_number');
                echo json_encode($response);
                exit;
            }

            if (strlen($mobileNumber) != 10 && strlen($mobileNumber) != 11) {
                $response = array('succes' => false, 'msg' => 'Please enter a valid mobile number.', 'index' => 'mobile_number');
                echo json_encode($response);
                exit;
            }


            if (empty($email_id)) {
                $response = array('succes' => false, 'msg' => 'Please enter Email ID.', 'index' => 'email_id');
                echo json_encode($response);
                exit;
            }

            if (!filter_var($email_id, FILTER_VALIDATE_EMAIL)) {
                $msg =  "Email address is not valid.";
                $response = array('success' => false, 'msg' => $msg, 'index' => 'email_id');
                echo json_encode($response);
                exit;
            }

            if (empty($firstName)) {
                $response = array('succes' => false, 'msg' => 'Please enter first name.', 'index' => 'passenger-firstname-' . $i);
                echo json_encode($response);
                exit;
            }

            if (empty($lastName)) {
                $response = array('succes' => false, 'msg' => 'Please enter last name.', 'index' => 'passenger-lastname-' . $i);
                echo json_encode($response);
                exit;
            }

            if (empty($passengerDob)) {
                $response = array('succes' => false, 'msg' => 'Please enter date of birth.', 'index' => 'passenger-dob-' . $i);
                echo json_encode($response);
                exit;
            }

            if (isset($post['passenger-nationality-' . $i]) && empty($nationality) && $IsPassMandatory) {
                $response = array('succes' => false, 'msg' => 'Please select Nationality.', 'index' => 'passenger-nationality-' . $i);
                echo json_encode($response);
                exit;
            }
            if (isset($post['passenger-PassportNo-' . $i]) && empty($passengerPassportNo) && $IsPassMandatory) {
                $response = array('succes' => false, 'msg' => 'Please enter passenger passport no.', 'index' => 'passenger-PassportNo-' . $i);
                echo json_encode($response);
                exit;
            }
            if (isset($post['passenger-passporIssue-' . $i]) && empty($passporIssue) && $IsPassMandatory) {
                $response = array('succes' => false, 'msg' => 'Please enter passport issue date.', 'index' => 'passenger-nationality-' . $i);
                echo json_encode($response);
                exit;
            }
            if (isset($post['passenger-PassportExpiry-' . $i]) && empty($passengerPassportExpiry) && $IsPassMandatory) {
                $response = array('succes' => false, 'msg' => 'Please enter passport expiry date.', 'index' => 'passenger-PassportExpiry-' . $i);
                echo json_encode($response);
                exit;
            }
            if (isset($post['passenger-PassportExpiry-' . $i]) && strtotime($departure_dates) > strtotime($passengerPassportExpiry) && $IsPassMandatory) {
                $response = array('succes' => false, 'msg' => 'Please enter passport valid expiry date.', 'index' => 'passenger-PassportExpiry-' . $i);
                echo json_encode($response);
                exit;
            }
            if ($paxType == 1 && $isAdobrMandatory) {
                $departureDates = $sessionFlightSearchParams['departure_dates'];
                if (!empty($departureDates)) {
                    $arrDepartureDates = explode("/", $departureDates);
                    $departureDatesAD = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];
                    $AdultAge = date_diff(date_create($passengerDob), date_create($departureDatesAD))->y;

                    if ($AdultAge < 12) {
                        $response = array('succes' => false, 'msg' => "Adult age should be greater than 12 years. ", 'index' => 'passenger-dob-' . $i);
                        echo json_encode($response);
                        exit;
                    }
                } else {
                    $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                    echo json_encode($response);
                    exit;
                }
            }
            if (!empty($paxType) && $paxType == 2 && $isCdobrMandatory) {
                $departureDates = $sessionFlightSearchParams['departure_dates'];
                if (!empty($departureDates)) {
                    $arrDepartureDates       = explode("/", $departureDates);
                    $departureDates       = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];
                    $childAge =  date_diff(date_create($passengerDob), date_create($departureDates))->y;
                    if ($childAge < 2 || $childAge >= 12) {
                        $response = array('succes' => false, 'msg' => "Child age should be 2 years or less than 12 years. ", 'index' => 'passenger-dob-' . $i);
                        echo json_encode($response);
                        exit;
                    }
                } else {
                    $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                    echo json_encode($response);
                    exit;
                }
            }

            if (!empty($paxType) && $paxType == 3 && $isIdobrMandatory) {
                $departureDates = $sessionFlightSearchParams['departure_dates'];
                if (!empty($departureDates)) {
                    $arrDepartureDates       = explode("/", $departureDates);
                    $departureDates       = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];
                    $infantAge =  date_diff(date_create($passengerDob), date_create($departureDates))->y;
                    if ($infantAge >= 2) {
                        $response = array('succes' => false, 'msg' => "Infant age should be less than 2 years. ", 'index' => 'passenger-dob-' . $i);
                        echo json_encode($response);
                        exit;
                    }
                } else {
                    $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                    echo json_encode($response);
                    exit;
                }
            }

            if (empty($passengerCity) && $ICSourceSysId == 3) {
                $response = array('succes' => false, 'msg' => 'Please enter City.', 'index' => 'passenger-city-1');
                echo json_encode($response);
                exit;
            }
            if (empty($passengerAddress) && $ICSourceSysId == 3) {
                $response = array('succes' => false, 'msg' => 'Please enter Address.', 'index' => 'passenger-address-1');
                echo json_encode($response);
                exit;
            }



            // if (empty($passengerCity)) {
            //     $response = array('succes' => false, 'msg' => 'Please enter City.', 'index' => 'passenger-city-1');
            //     echo json_encode($response);
            //     exit;
            // }

            // if (empty($passengerAddress)) {
            //     $response = array('succes' => false, 'msg' => 'Please enter Address.', 'index' => 'passenger-address-1');
            //     echo json_encode($response);
            //     exit;
            // }
        }
        $response = array('success' => true);
        echo json_encode($response);
        exit;
    }
    public function insertInterNationalFlightNewAction($data, $arrCommonInsVariables, $AgentSysId, $ICSourceSysId) {
        if (isset($data) && count($data) > 0) {

            $objFlight = new Travel_Model_TblFlight();

            // For getting All Airlines Array
            $objAirline = new Travel_Model_TblAirline();
            $arrAirlineList = $objAirline->getAirlineIdsAndCodeList();

            // For getting All currency Array
            $objCurrency = new Travel_Model_TblCurrency();
            $arrCurrencyList = $objCurrency->getCurrencyIdsAndSymbolList();
            $interNationalSearch = isset($arrCommonInsVariables['interNationalSearch']) ? $arrCommonInsVariables['interNationalSearch'] : '';
            $JourneyType = isset($arrCommonInsVariables['JourneyType']) ? $arrCommonInsVariables['JourneyType'] : '';
            // For getting All Source & Destination CitySysId Array
            $objAirport = new Travel_Model_TblAirport();
            $arrCityIds = $objAirport->getCityIdsAndAirPortCodeList();
            try{
                foreach ($data as $result) {
                    //echo $ICSourceSysId;

                    // Master Entry... ToUTCTime
                    $AirInvenSysIdArr = [];
                    if (isset($result['Segments']) && count($result['Segments']) > 1) {

                        $AirlineCode = isset($result['AirlineCode']) ? $result['AirlineCode'] : '';
                        if ($ICSourceSysId == 7) {
                            $OriginDepTime = isset($result['Segments'][0][0]['originDepTime']) ? $result['Segments'][0][0]['originDepTime'] . ':00' : '';
                            if (count($result['Segments'][1]) == 1) {
                                $DestinationArrTime = isset($result['Segments'][1][0]['destinationArrTime']) ? $result['Segments'][1][0]['destinationArrTime'] . ':00' : $result['Segments'][1][0]['destinationArrTime'] . ':00';
                            } elseif (count($result['Segments'][1]) == 2) {
                                $DestinationArrTime = isset($result['Segments'][1][1]['destinationArrTime']) ? $result['Segments'][1][1]['destinationArrTime'] . ':00' : $result['Segments'][1][1]['destinationArrTime'] . ':00';
                            } elseif (count($result['Segments'][1]) == 3) {
                                $DestinationArrTime = isset($result['Segments'][1][2]['destinationArrTime']) ? $result['Segments'][1][2]['destinationArrTime'] . ':00' : $result['Segments'][1][2]['destinationArrTime'] . ':00';
                            } elseif (count($result['Segments'][1]) == 4) {
                                $DestinationArrTime = isset($result['Segments'][1][3]['destinationArrTime']) ? $result['Segments'][1][3]['destinationArrTime'] . ':00' : $result['Segments'][1][3]['destinationArrTime'] . ':00';
                            }
                        } else {
                            $SegmentsEnd = end($result['Segments']);
                            $originDepTime_ = isset($result['Segments'][0]['originDepTime']) ? $result['Segments'][0]['originDepTime'] : '';
                            $destinationArrTime_ = isset($SegmentsEnd['destinationArrTime']) ? $SegmentsEnd['destinationArrTime'] : '';
                            $OriginDepTime = isset($result['Segments'][0][0]['Origin']['DepTime']) ? $result['Segments'][0][0]['Origin']['DepTime'] : $originDepTime_;
                            $DestinationArrTime = isset($result['Segments'][1][1]['Destination']['ArrTime']) ? $result['Segments'][1][1]['Destination']['ArrTime'] : $destinationArrTime_;
                            // $DestinationArrTime = isset($result['Segments'][1][1]['Destination']['ArrTime']) ? $result['Segments'][1][1]['Destination']['ArrTime'] : $result['Segments'][1][0]['Destination']['ArrTime'];
                        }

                        $Currency = $result['Fare']['Currency'];
                        $arrInsertFlightData = array();
                        $arrInsertFlightData['FlightNumber'] = '';
                        $arrInsertFlightData['AirInvenSysId'] = 0;
                        $arrInsertFlightData['IsLCC'] = isset($result['IsLCC']) ? $result['IsLCC'] : '';
                        $arrInsertFlightData['IsRefundable'] = true; //isset($result['IsRefundable']) ? $result['IsRefundable'] : '';
                        $arrInsertFlightData['apiTraceId'] = isset($result['strTraceId']) ? $result['strTraceId'] : '';
                        $arrInsertFlightData['AirlineSysId'] = isset($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                        $arrInsertFlightData['ICSourceSysId'] = $ICSourceSysId; //3 For TBO
                        $arrInsertFlightData['IsFromAgency'] = '1';
                        $arrInsertFlightData['LocalFromTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? str_replace('T',' ',$arrCommonInsVariables['localFromDateTime']) : '';
                        $arrInsertFlightData['FromUTCTime'] = str_replace('T',' ',$OriginDepTime);
                        $arrInsertFlightData['LocalToTime'] = isset($arrCommonInsVariables['localToDateTime']) ? str_replace('T',' ',$arrCommonInsVariables['localToDateTime']) : '';
                        ;
                        $arrInsertFlightData['ToUTCTime'] = str_replace('T',' ',$DestinationArrTime);
                        $arrInsertFlightData['IsDirect'] = 0;
                        $arrInsertFlightData['FareClass'] = '';
                        $arrInsertFlightData['DayLightSavingDiff'] = '0';
                        $arrInsertFlightData['FlyingMinutes'] = '0';
                        $arrInsertFlightData['SourcePlaceSysId'] = $arrCommonInsVariables['intSourceCityId'];
                        $arrInsertFlightData['DestPlaceSysId'] = $arrCommonInsVariables['intDestinationCityId'];
                        $arrInsertFlightData['SourceAirportCode'] = $arrCommonInsVariables['strSourceAirportCode'];
                        $arrInsertFlightData['DestAirportCode'] = $arrCommonInsVariables['strDestinationAirportCode'];
                        $arrInsertFlightData['AirportHaultMinutes'] = '0';
                        $arrInsertFlightData['StopCount'] = '0';
                        $arrInsertFlightData['Stops'] = '';
                        $arrInsertFlightData['NoOfSeatAvailable'] = 0;
                        $arrInsertFlightData['TotalFlightMembers'] = isset($arrCommonInsVariables['intMemberCount']) ? $arrCommonInsVariables['intMemberCount'] : '';
                        $arrInsertFlightData['CurrencyType'] = isset($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1';
                        $arrInsertFlightData['PublishedFare'] = isset($result['Fare']['OfferedFare']) ? (int) round($result['Fare']['OfferedFare']) : 0;
                        $arrInsertFlightData['CommissionEarned'] = isset($result['Fare']['CommissionEarned']) ? (int) round($result['Fare']['CommissionEarned']) : 0;
                        $arrInsertFlightData['ApiResultIndex'] = isset($result['ResultIndex']) ? $result['ResultIndex'] : '';
                        $arrInsertFlightData['JourneyType'] = '2';
                        $arrInsertFlightData['TripType'] = '2';
                        $arrInsertFlightData['IsInternational'] = '1';
                        $arrInsertFlightData['Rating'] = '0';
                        $arrInsertFlightData['FllightFeatureMask'] = '0';
                        $arrInsertFlightData['UpdatedByISSysId'] = $AgentSysId;
                        $arrInsertFlightData['CreatedByISSysId'] = $AgentSysId;
                        $arrInsertFlightData['ImageTN'] = '';
                        $arrInsertFlightData['ImgForList'] = '';
                        $arrInsertFlightData['ImgeDetails'] = '';
                        $arrInsertFlightData['UpdateDate'] = date('Y-m-d H:i:s');
                        $arrInsertFlightData['CreateDate'] = date('Y-m-d H:i:s');
                        $arrInsertFlightData['ApproveBy'] = $AgentSysId;
                        $arrInsertFlightData['ApprovalDate'] = date('Y-m-d H:i:s');
                        $arrInsertFlightData['IsApproved'] = 1;
                        $arrInsertFlightData['IsActive'] = 1;
                        $arrInsertFlightData['IsMarkForDel'] = 0;
                        $arrInsertFlightData['IsNewMigration'] = isset($result['IsNewMigration']) ? $result['IsNewMigration'] : 0;
                        
                        $intFlightParentRecordId = $AirInvenSysIdArr[] = $objFlight->addFlightDetails($arrInsertFlightData);
                        
                        // Master Entry Ends...
                        // Master Fare Details...

                        $arrFairRules = array(
                            "TBOAirInvenAPISysId" => $intFlightParentRecordId,
                            "Currency" => !empty($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1',
                            "BaseFare" => isset($result['Fare']['BaseFare']) ? $result['Fare']['BaseFare'] : 0,
                            "Tax" => isset($result['Fare']['Tax']) ? $result['Fare']['Tax'] : 0,
                            "YQTax" => isset($result['Fare']['YQTax']) ? $result['Fare']['YQTax'] : 0,
                            "AdditionalTxnFeeOfrd" => isset($result['Fare']['AdditionalTxnFeeOfrd']) ? $result['Fare']['AdditionalTxnFeeOfrd'] : 0,
                            "AdditionalTxnFeePub" => isset($result['Fare']['AdditionalTxnFeePub']) ? $result['Fare']['AdditionalTxnFeePub'] : 0,
                            "OtherCharges" => isset($result['Fare']['OtherCharges']) ? $result['Fare']['OtherCharges'] : 0,
                            "Discount" => isset($result['Fare']['Discount']) ? $result['Fare']['Discount'] : 0,
                            "ServiceFee" => isset($result['Fare']['ServiceFee']) ? $result['Fare']['ServiceFee'] : 0,
                            "PublishedFare" => isset($result['Fare']['PublishedFare']) ? $result['Fare']['PublishedFare'] : 0,
                            "CommissionEarned" => isset($result['Fare']['CommissionEarned']) ? $result['Fare']['CommissionEarned'] : 0,
                            "PLBEarned" => isset($result['Fare']['PLBEarned']) ? $result['Fare']['PLBEarned'] : 0,
                            "IncentiveEarned" => isset($result['Fare']['IncentiveEarned']) ? $result['Fare']['IncentiveEarned'] : 0,
                            "OfferedFare" => isset($result['Fare']['OfferedFare']) ? $result['Fare']['OfferedFare'] : 0,
                            "TdsOnCommission" => isset($result['Fare']['TdsOnCommission']) ? $result['Fare']['TdsOnCommission'] : 0,
                            "TdsOnPLB" => isset($result['Fare']['TdsOnPLB']) ? $result['Fare']['TdsOnPLB'] : 0,
                            "TdsOnIncentive" => isset($result['Fare']['TdsOnIncentive']) ? $result['Fare']['TdsOnIncentive'] : 0,
                            "UpdateDate" => date('Y-m-d H:i:s'),
                            "CreateDate" => date('Y-m-d H:i:s'),
                            "IsActive" => 1,
                            "IsMarkForDel" => 0
                        );
                        // echo "<pre>";
                        // print_r($arrFairRules);
                        // die('ddd');
                        $objFlight->addFlightFairRuleDetails($arrFairRules);

                        // Master Fare Details Ends...
                        // FareBreakdown Details...
                        if ($ICSourceSysId == 7) {
                            if (!empty($result['Fare']['FareBreakdown'])) {
                                foreach ($result['Fare']['FareBreakdown'] as $fareBreakdown) {

                                    $Currency = $fareBreakdown['Currency'];
                                    $PassengerType = $fareBreakdown['PassengerType'];
                                    $PassengerCount = $fareBreakdown['PassengerCount'];
                                    $BaseFare = $fareBreakdown['BaseFare'];
                                    $Tax = $fareBreakdown['TaxIN'];
                                    $YQTax = $fareBreakdown['YQ'];
                                    $AdditionalTxnFeeOfrd = $fareBreakdown['AdditionalTxnFeeOfrd'];
                                    $AdditionalTxnFeePub = $fareBreakdown['AdditionalTxnFeePub'];

                                    $intCommisionEarnedForAgency = isset($fareBreakdown['IntCommission']) ? $fareBreakdown['IntCommission'] : 0; // New fields
                                    $OtherCharges = isset($fareBreakdown['OtherCharges']) ? $fareBreakdown['OtherCharges'] : 0; // New fields
                                    $FixedMarkUp = isset($fareBreakdown['FixedMarkUp']) ? $fareBreakdown['FixedMarkUp'] : 0; // New fields
                                    $GSTOnMarkUp = isset($fareBreakdown['GSTOnMarkUp']) ? $fareBreakdown['GSTOnMarkUp'] : 0; // New fields

                                    $arrFareBreakdown = array(
                                        "TBQAirInvenAPISysId" => $intFlightParentRecordId,
                                        "Currency" => !empty($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1',
                                        "PassengerType" => $PassengerType,
                                        "PassengerCount" => $PassengerCount,
                                        "BaseFare" => $BaseFare,
                                        "Tax" => $Tax,
                                        "YQTax" => $YQTax,
                                        "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                                        "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                                        "CommissionEarned" => ($intCommisionEarnedForAgency),
                                        "OtherCharges" => $OtherCharges,
                                        "FixedMarkUp" => $FixedMarkUp,
                                        "GSTOnMarkUp" => $GSTOnMarkUp,
                                    );

                                    $objFlight->addFlightFareBreakdown($arrFareBreakdown);
                                }
                            }else{
                                foreach ($result['FairRules']['FareBreakdown'] as $fareBreakdown) {

                                    $Currency = $fareBreakdown['Currency'];
                                    $PassengerType = $fareBreakdown['PassengerType'];
                                    $PassengerCount = $fareBreakdown['PassengerCount'];
                                    $BaseFare = $fareBreakdown['BaseFare'];
                                    $Tax = $fareBreakdown['TaxIN'];
                                    $YQTax = $fareBreakdown['YQ'];
                                    $AdditionalTxnFeeOfrd = $fareBreakdown['AdditionalTxnFeeOfrd'];
                                    $AdditionalTxnFeePub = $fareBreakdown['AdditionalTxnFeePub'];

                                    $intCommisionEarnedForAgency = isset($fareBreakdown['IntCommission']) ? $fareBreakdown['IntCommission'] : 0; // New fields
                                    $OtherCharges = isset($fareBreakdown['OtherCharges']) ? $fareBreakdown['OtherCharges'] : 0; // New fields
                                    $FixedMarkUp = isset($fareBreakdown['FixedMarkUp']) ? $fareBreakdown['FixedMarkUp'] : 0; // New fields
                                    $GSTOnMarkUp = isset($fareBreakdown['GSTOnMarkUp']) ? $fareBreakdown['GSTOnMarkUp'] : 0; // New fields

                                    $arrFareBreakdown = array(
                                        "TBQAirInvenAPISysId" => $intFlightParentRecordId,
                                        "Currency" => !empty($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1',
                                        "PassengerType" => $PassengerType,
                                        "PassengerCount" => $PassengerCount,
                                        "BaseFare" => $BaseFare,
                                        "Tax" => $Tax,
                                        "YQTax" => $YQTax,
                                        "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                                        "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                                        "CommissionEarned" => ($intCommisionEarnedForAgency),
                                        "OtherCharges" => $OtherCharges,
                                        "FixedMarkUp" => $FixedMarkUp,
                                        "GSTOnMarkUp" => $GSTOnMarkUp,
                                    );

                                    $objFlight->addFlightFareBreakdown($arrFareBreakdown);
                                }
                            }
                        } else {

                            if (!empty($result['FareBreakdown']) ) {
                                foreach ($result['FareBreakdown'] as $fareBreakdown) {

                                    $Currency = $fareBreakdown['Currency'];
                                    $PassengerType = $fareBreakdown['PassengerType'];
                                    $PassengerCount = $fareBreakdown['PassengerCount'];
                                    $BaseFare = $fareBreakdown['BaseFare'];
                                    $Tax = $fareBreakdown['Tax'];
                                    $YQTax = $fareBreakdown['YQTax'];
                                    $AdditionalTxnFeeOfrd = $fareBreakdown['AdditionalTxnFeeOfrd'];
                                    $AdditionalTxnFeePub = $fareBreakdown['AdditionalTxnFeePub'];
                                    $intCommisionEarnedForAgency = isset($fareBreakdown['IntCommission']) ? $fareBreakdown['IntCommission'] : 0; // New fields
                                    $OtherCharges = isset($fareBreakdown['OtherCharges']) ? $fareBreakdown['OtherCharges'] : 0; // New fields
                                    $FixedMarkUp = isset($fareBreakdown['FixedMarkUp']) ? $fareBreakdown['FixedMarkUp'] : 0; // New fields
                                    $GSTOnMarkUp = isset($fareBreakdown['GSTOnMarkUp']) ? $fareBreakdown['GSTOnMarkUp'] : 0; // New fields
                                    $ServiceFee = isset($fareBreakdown['ServiceFee']) ? $fareBreakdown['ServiceFee'] : 0; // New fields
                                    $Discount = isset($fareBreakdown['CommisionPass']) ? $fareBreakdown['CommisionPass'] : 0; // New fields
                                    $arrFareBreakdown = array(
                                        "TBQAirInvenAPISysId" => $intFlightParentRecordId,
                                        "Currency" => !empty($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1',
                                        "PassengerType" => $PassengerType,
                                        "PassengerCount" => $PassengerCount,
                                        "BaseFare" => $BaseFare,
                                        "Tax" => $Tax,
                                        "YQTax" => $YQTax,
                                        "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                                        "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                                        "CommissionEarned" => ($intCommisionEarnedForAgency),
                                        "OtherCharges" => $OtherCharges,
                                        "FixedMarkUp" => $FixedMarkUp,
                                        "GSTOnMarkUp" => $GSTOnMarkUp,
                                        "ServiceFee" => $ServiceFee,
                                        "Discount" => $Discount,
                                    );
                                    $objFlight->addFlightFareBreakdown($arrFareBreakdown);

                                }
                            }else{
                                if (!empty($result['FairRules']['FareBreakdown']) ) {
                                    foreach ($result['FairRules']['FareBreakdown'] as $fareBreakdown) {

                                        $Currency = $fareBreakdown['Currency'];
                                        $PassengerType = $fareBreakdown['PassengerType'];
                                        $PassengerCount = $fareBreakdown['PassengerCount'];
                                        $BaseFare = $fareBreakdown['BaseFare'];
                                        $Tax = $fareBreakdown['TaxIN'];
                                        $YQTax = $fareBreakdown['YQ'];
                                        $AdditionalTxnFeeOfrd = $fareBreakdown['AdditionalTxnFeeOfrd'];
                                        $AdditionalTxnFeePub = $fareBreakdown['AdditionalTxnFeePub'];
                                        $intCommisionEarnedForAgency = isset($fareBreakdown['IntCommission']) ? $fareBreakdown['IntCommission'] : 0; // New fields
                                        $OtherCharges = isset($fareBreakdown['OtherCharges']) ? $fareBreakdown['OtherCharges'] : 0; // New fields
                                        $FixedMarkUp = isset($fareBreakdown['FixedMarkUp']) ? $fareBreakdown['FixedMarkUp'] : 0; // New fields
                                        $GSTOnMarkUp = isset($fareBreakdown['GSTOnMarkUp']) ? $fareBreakdown['GSTOnMarkUp'] : 0; // New fields
                                        $ServiceFee = isset($fareBreakdown['ServiceFee']) ? $fareBreakdown['ServiceFee'] : 0; // New fields
                                        $Discount = isset($fareBreakdown['CommisionPass']) ? $fareBreakdown['CommisionPass'] : 0; // New fields
                                        $arrFareBreakdown = array(
                                            "TBQAirInvenAPISysId" => $intFlightParentRecordId,
                                            "Currency" => !empty($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1',
                                            "PassengerType" => $PassengerType,
                                            "PassengerCount" => $PassengerCount,
                                            "BaseFare" => $BaseFare,
                                            "Tax" => $Tax,
                                            "YQTax" => $YQTax,
                                            "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                                            "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                                            "CommissionEarned" => ($intCommisionEarnedForAgency),
                                            "OtherCharges" => $OtherCharges,
                                            "FixedMarkUp" => $FixedMarkUp,
                                            "GSTOnMarkUp" => $GSTOnMarkUp,
                                            "ServiceFee" => $ServiceFee,
                                            "Discount" => $Discount,
                                        );

                                        $objFlight->addFlightFareBreakdown($arrFareBreakdown);

                                    }
                                }
                            }
                        }

                        // FareBreakdown Details Ends...
                        // InOutBound/InBound Flights Data...
                        if($ICSourceSysId == 3 && $interNationalSearch == 1 && $JourneyType == 2){
                            $SegmentsTBO = $result['SegmentsInt'];
                        }else{
                            $SegmentsTBO = $result['Segments'];
                        }


                        $arrInsertFlightData = array();
                        $intSegments = 1;
                        foreach ($SegmentsTBO as $segmentsResult) {

                            $arrFirstSegments = current($segmentsResult);
                            $arrLastSegments = end($segmentsResult);
                            $FlyingMinutesOutBound = 0;
                            $FlyingMinutesInBound = 0;
                            foreach ($segmentsResult as $arrSegmentsRes) {

                                $TripIndicator = isset($arrSegmentsRes['TripIndicator']) ? $arrSegmentsRes['TripIndicator'] : '0';
                                $Duration = isset($arrSegmentsRes['Duration']) ? $arrSegmentsRes['Duration'] : '0';
                                $GroundTime = isset($arrSegmentsRes['GroundTime']) ? $arrSegmentsRes['GroundTime'] : '0';
                                if ($TripIndicator == 1) {
                                    $FlyingMinutesOutBound += ($Duration + $GroundTime);
                                } else {
                                    $FlyingMinutesInBound += ($Duration + $GroundTime);
                                }
                            }
                            if ($ICSourceSysId == 7) {
                                $OriginDepTime = isset($arrFirstSegments['originDepTime']) ? $arrFirstSegments['originDepTime'] . ':00' : '';
                                $DestinationArrTime = isset($arrLastSegments['destinationArrTime']) ? $arrLastSegments['destinationArrTime'] . ':00' : '';
                                $AirlineCode = isset($arrFirstSegments['AirlineCode']) ? $arrFirstSegments['AirlineCode'] : '';
                                $AirlineName = isset($arrFirstSegments['AirlineName']) ? $arrFirstSegments['AirlineName'] : '';
                                $FlightNumber = isset($arrFirstSegments['SegFlightNumber']) ? $arrFirstSegments['SegFlightNumber'] : '';
                                $SourceAirportCode = isset($arrFirstSegments['originAirportCode']) ? $arrFirstSegments['originAirportCode'] : '';
                                $DestAirportCode = isset($arrLastSegments['destinationAirportCode']) ? $arrLastSegments['destinationAirportCode'] : '';
                                $FareClass = isset($arrFirstSegments['FareClass']) ? $arrFirstSegments['FareClass'] : '';
                            } else {
                                $OriginDepTime = isset($arrFirstSegments['Origin']['DepTime']) ? $arrFirstSegments['Origin']['DepTime'] : '';
                                $DestinationArrTime = isset($arrLastSegments['Destination']['ArrTime']) ? $arrLastSegments['Destination']['ArrTime'] : '';
                                $AirlineCode = isset($arrFirstSegments['Airline']['AirlineCode']) ? $arrFirstSegments['Airline']['AirlineCode'] : '';
                                $AirlineName = isset($arrFirstSegments['Airline']['AirlineName']) ? $arrFirstSegments['Airline']['AirlineName'] : '';
                                $FlightNumber = isset($arrFirstSegments['Airline']['FlightNumber']) ? $AirlineCode.'-'.$arrFirstSegments['Airline']['FlightNumber'] : '';
                                $SourceAirportCode = isset($arrFirstSegments['Origin']['Airport']['AirportCode']) ? $arrFirstSegments['Origin']['Airport']['AirportCode'] : '';
                                $DestAirportCode = isset($arrLastSegments['Destination']['Airport']['AirportCode']) ? $arrLastSegments['Destination']['Airport']['AirportCode'] : '';
                                $FareClass = isset($arrFirstSegments['Airline']['FareClass']) ? $arrFirstSegments['Airline']['FareClass'] : '';
                            }

                            // echo "<pre>";
                            // print_r($segmentsResult);
                            // die('ddd');
                            $NoOfSeatAvailableOutBound = isset($arrFirstSegments['NoOfSeatAvailable']) ? $arrFirstSegments['NoOfSeatAvailable'] : '0';
                            $NoOfSeatAvailableInBound = isset($arrLastSegments['NoOfSeatAvailable']) ? $arrLastSegments['NoOfSeatAvailable'] : '0';




                            $strFlightNumber = $FlightNumber;



                            if (count($segmentsResult) > 1) {
                                $IsDirect = 0;
                                $StopCount = count($segmentsResult) - 1;
                            } else {
                                $IsDirect = 1;
                                $StopCount = 0;
                            }


                            $arrInsertFlightData['FlightNumber'] = $strFlightNumber;
                            $arrInsertFlightData['AirInvenSysId'] = $intFlightParentRecordId;
                            $arrInsertFlightData['IsLCC'] = isset($result['IsLCC']) ? $result['IsLCC'] : '';
                            $arrInsertFlightData['IsRefundable'] = isset($result['IsRefundable']) ? $result['IsRefundable'] : '';
                            $arrInsertFlightData['apiTraceId'] = isset($result['strTraceId']) ? $result['strTraceId'] : '';
                            $arrInsertFlightData['AirlineSysId'] = isset($arrAirlineList[$AirlineCode]) ? $arrAirlineList[$AirlineCode] : '0';
                            $arrInsertFlightData['ICSourceSysId'] = $ICSourceSysId; //3 For TBO
                            $arrInsertFlightData['IsFromAgency'] = '1';
                            $arrInsertFlightData['LocalFromTime'] = isset($arrCommonInsVariables['localFromDateTime']) ? str_replace('T',' ',$arrCommonInsVariables['localFromDateTime']) : '';
                            $arrInsertFlightData['FromUTCTime'] = str_replace('T',' ',$OriginDepTime);
                            $arrInsertFlightData['LocalToTime'] = isset($arrCommonInsVariables['localToDateTime']) ? str_replace('T',' ',$arrCommonInsVariables['localToDateTime']) : '';
                            ;
                            $arrInsertFlightData['ToUTCTime'] = str_replace('T',' ',$DestinationArrTime);
                            $arrInsertFlightData['IsDirect'] = $IsDirect;
                            $arrInsertFlightData['FareClass'] = $FareClass;
                            $arrInsertFlightData['DayLightSavingDiff'] = '0';
                            $arrInsertFlightData['FlyingMinutes'] = ($intSegments > 1) ? $FlyingMinutesInBound : $FlyingMinutesOutBound;
                            if ($intSegments > 1) {
                                $arrInsertFlightData['SourcePlaceSysId'] = $arrCommonInsVariables['intDestinationCityId'];
                                $arrInsertFlightData['DestPlaceSysId'] = $arrCommonInsVariables['intSourceCityId'];
                            } else {
                                $arrInsertFlightData['SourcePlaceSysId'] = $arrCommonInsVariables['intSourceCityId'];
                                $arrInsertFlightData['DestPlaceSysId'] = $arrCommonInsVariables['intDestinationCityId'];
                            }

                            $arrInsertFlightData['SourceAirportCode'] = $SourceAirportCode;
                            $arrInsertFlightData['DestAirportCode'] = $DestAirportCode;
                            $arrInsertFlightData['AirportHaultMinutes'] = '0';
                            $arrInsertFlightData['StopCount'] = $StopCount;
                            $arrInsertFlightData['Stops'] = '';
                            $arrInsertFlightData['NoOfSeatAvailable'] = ($intSegments > 1) ? $NoOfSeatAvailableInBound : $NoOfSeatAvailableOutBound;
                            $arrInsertFlightData['TotalFlightMembers'] = isset($arrCommonInsVariables['intMemberCount']) ? $arrCommonInsVariables['intMemberCount'] : '';
                            $arrInsertFlightData['CurrencyType'] = isset($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1';
                            $arrInsertFlightData['PublishedFare'] = isset($result['Fare']['OfferedFare']) ? (int) round($result['Fare']['OfferedFare']) : 0;
                            $arrInsertFlightData['CommissionEarned'] = isset($result['Fare']['CommissionEarned']) ? (int) round($result['Fare']['CommissionEarned']) : 0;
                            $arrInsertFlightData['ApiResultIndex'] = isset($result['ResultIndex']) ? $result['ResultIndex'] : '';
                            $arrInsertFlightData['JourneyType'] = '2';
                            $arrInsertFlightData['TripType'] = 2;
                            $arrInsertFlightData['IsInternational'] = '1';
                            $arrInsertFlightData['Rating'] = '0';
                            $arrInsertFlightData['FllightFeatureMask'] = '0';
                            $arrInsertFlightData['UpdatedByISSysId'] = $AgentSysId;
                            $arrInsertFlightData['CreatedByISSysId'] = $AgentSysId;
                            $arrInsertFlightData['ImageTN'] = '';
                            $arrInsertFlightData['ImgForList'] = '';
                            $arrInsertFlightData['ImgeDetails'] = '';
                            $arrInsertFlightData['UpdateDate'] = date('Y-m-d H:i:s');
                            $arrInsertFlightData['CreateDate'] = date('Y-m-d H:i:s');
                            $arrInsertFlightData['ApproveBy'] = $AgentSysId;
                            $arrInsertFlightData['ApprovalDate'] = date('Y-m-d H:i:s');
                            $arrInsertFlightData['IsApproved'] = 1;
                            $arrInsertFlightData['IsActive'] = 1;
                            $arrInsertFlightData['IsMarkForDel'] = 0;
                            $arrInsertFlightData['IsNewMigration'] = isset($result['IsNewMigration']) ? $result['IsNewMigration'] : 0;
                            // echo "<pre>";
                            // print_r($arrInsertFlightData);
                            // echo '==========';die;
                            $intFlightChildRecordId = $objFlight->addFlightDetails($arrInsertFlightData);
                            $intSegments++;




                            if ($ICSourceSysId == 3 && count($segmentsResult) > 0) {
                                $Sequance = 1;
                                foreach ($segmentsResult as $arrSegmentsRes) {
                                    // FOR FLIGHT SEGMENTS.....
                                    $arrSegments = array(
                                        "AirInvenAPISysId" => $intFlightChildRecordId,
                                        "TripIndicator" => isset($arrSegmentsRes['TripIndicator']) ? $arrSegmentsRes['TripIndicator'] : '0',
                                        "Baggage" => isset($arrSegmentsRes['Baggage']) ? $arrSegmentsRes['Baggage'] : '',
                                        "CabinBaggage" => isset($arrSegmentsRes['CabinBaggage']) ? $arrSegmentsRes['CabinBaggage'] : '',
                                        "SegmentIndicator" => isset($arrSegmentsRes['SegmentIndicator']) ? $arrSegmentsRes['SegmentIndicator'] : '0',
                                        "OriginAirportCode" => isset($arrSegmentsRes['Origin']['Airport']['AirportCode']) ? $arrSegmentsRes['Origin']['Airport']['AirportCode'] : '',
                                        "DestAirportCode" => isset($arrSegmentsRes['Destination']['Airport']['AirportCode']) ? $arrSegmentsRes['Destination']['Airport']['AirportCode'] : '',
                                        "Duration" => isset($arrSegmentsRes['Duration']) ? $arrSegmentsRes['Duration'] : '0',
                                        "GroundTime" => isset($arrSegmentsRes['TripIndicator']) ? $arrSegmentsRes['TripIndicator'] : '0',
                                        "Mile" => isset($arrSegmentsRes['Mile']) ? $arrSegmentsRes['Mile'] : '0',
                                        "StopOver" => isset($arrSegmentsRes['StopOver']) ? $arrSegmentsRes['StopOver'] : '0',
                                        "StopPoint" => isset($arrSegmentsRes['StopPoint']) ? $arrSegmentsRes['StopPoint'] : '0',
                                        "StopPointArrivalTime" => isset($arrSegmentsRes['StopPointArrivalTime']) ? $arrSegmentsRes['StopPointArrivalTime'] : '0',
                                        "Craft" => isset($arrSegmentsRes['Craft']) ? $arrSegmentsRes['Craft'] : '',
                                        "Remark" => isset($arrSegmentsRes['Remark']) ? $arrSegmentsRes['Remark'] : '',
                                        "IsETicketEligible" => isset($arrSegmentsRes['IsETicketEligible']) ? $arrSegmentsRes['IsETicketEligible'] : '0',
                                        "FlightStatus" => isset($arrSegmentsRes['FlightStatus']) ? $arrSegmentsRes['FlightStatus'] : '',
                                        "Status" => isset($arrSegmentsRes['Status']) ? $arrSegmentsRes['Status'] : ''
                                    );

                                    $objFlight->addFlightSegmentsDetails($arrSegments);
                                    // FOR FLIGHT SEGMENTS.....
                                }
                            }

                            if ($ICSourceSysId == 7 && count($segmentsResult) > 0) {
                                $Sequance = 1;
                                foreach ($segmentsResult as $arrSegmentsRes) {
                                    // FOR FLIGHT SEGMENTS.....
                                    $arrSegments = array(
                                        "AirInvenAPISysId" => $intFlightChildRecordId,
                                        "TripIndicator" => isset($arrSegmentsRes['TripIndicator']) ? $arrSegmentsRes['TripIndicator'] : '0',
                                        "Baggage" => isset($arrSegmentsRes['Baggage']) ? $arrSegmentsRes['Baggage'] : '',
                                        "CabinBaggage" => isset($arrSegmentsRes['CabinBaggage']) ? $arrSegmentsRes['CabinBaggage'] : '',
                                        "SegmentIndicator" => isset($arrSegmentsRes['SegmentIndicator']) ? $arrSegmentsRes['SegmentIndicator'] : '0',
                                        "OriginAirportCode" => isset($arrSegmentsRes['originAirportCode']) ? $arrSegmentsRes['originAirportCode'] : '',
                                        "DestAirportCode" => isset($arrSegmentsRes['destinationAirportCode']) ? $arrSegmentsRes['destinationAirportCode'] : '',
                                        "Duration" => isset($arrSegmentsRes['Duration']) ? $arrSegmentsRes['Duration'] : '0',
                                        "GroundTime" => isset($arrSegmentsRes['TripIndicator']) ? $arrSegmentsRes['TripIndicator'] : '0',
                                        "Mile" => isset($arrSegmentsRes['Mile']) ? $arrSegmentsRes['Mile'] : '0',
                                        "StopOver" => isset($arrSegmentsRes['StopOver']) ? $arrSegmentsRes['StopOver'] : '0',
                                        "StopPoint" => isset($arrSegmentsRes['StopPoint']) ? $arrSegmentsRes['StopPoint'] : '0',
                                        "StopPointArrivalTime" => isset($arrSegmentsRes['StopPointArrivalTime']) ? $arrSegmentsRes['StopPointArrivalTime'] : '0',
                                        "Craft" => isset($arrSegmentsRes['Craft']) ? $arrSegmentsRes['Craft'] : '',
                                        "Remark" => isset($arrSegmentsRes['Remark']) ? $arrSegmentsRes['Remark'] : '',
                                        "IsETicketEligible" => isset($arrSegmentsRes['IsETicketEligible']) ? $arrSegmentsRes['IsETicketEligible'] : '0',
                                        "FlightStatus" => isset($arrSegmentsRes['FlightStatus']) ? $arrSegmentsRes['FlightStatus'] : '',
                                        "Status" => isset($arrSegmentsRes['Status']) ? $arrSegmentsRes['Status'] : ''
                                    );

                                    //die;
                                    $objFlight->addFlightSegmentsDetails($arrSegments);
                                    // FOR FLIGHT SEGMENTS.....
                                }
                            }
                            if ($ICSourceSysId == 7 && count($segmentsResult) > 0) {
                                $Sequance = 1;
                                foreach ($segmentsResult as $arrSegmentsRes) {
                                    $FlightNumber = isset($arrSegmentsRes['FlightNumber']) ? $arrSegmentsRes['FlightNumber'] : 0;

                                    $originAirportCode = $arrSegmentsRes['originAirportCode'];
                                    $destinationAirportCode = $arrSegmentsRes['destinationAirportCode'];

                                    $SourcePlaceSysId = !empty($arrCityIds[$originAirportCode]) ? $arrCityIds[$originAirportCode] : '0';
                                    $DestPlaceSysId = !empty($arrCityIds[$destinationAirportCode]) ? $arrCityIds[$destinationAirportCode] : '0';


                                    $Duration = isset($arrSegmentsRes['Duration']) ? $arrSegmentsRes['Duration'] : '0';
                                    $GroundTime = isset($arrSegmentsRes['GroundTime']) ? $arrSegmentsRes['GroundTime'] : '0';

                                    $FlightDuration = $Duration + $GroundTime;

                                    $arrFlightStopsInsert = array(
                                        "TBQAirInvenSysId" => $intFlightChildRecordId,
                                        "SourcePlaceSysId" => $SourcePlaceSysId,
                                        "DestPlaceSysId" => $DestPlaceSysId,
                                        "Sequance" => $Sequance,
                                        "StayDuration" => isset($arrSegmentsRes['GroundTime']) ? $arrSegmentsRes['GroundTime'] : '',
                                        "FlightDuration" => $FlightDuration,
                                        "AirlineCode" => isset($arrSegmentsRes['AirlineCode']) ? $arrSegmentsRes['AirlineCode'] : '',
                                        "AirlineName" => isset($arrSegmentsRes['AirlineName']) ? $arrSegmentsRes['AirlineName'] : '',
                                        "FlightNumber" => isset($arrSegmentsRes['SegFlightNumber']) ? $arrSegmentsRes['SegFlightNumber'] : '',
                                        "FareClass" => isset($arrSegmentsRes['FareClass']) ? $arrSegmentsRes['FareClass'] : '',
                                        "OriginAirportCode" => isset($arrSegmentsRes['originAirportCode']) ? $arrSegmentsRes['originAirportCode'] : '',
                                        "DestinationAirportCode" => isset($arrSegmentsRes['destinationAirportCode']) ? $arrSegmentsRes['destinationAirportCode'] : '',
                                        "IsFlightChange" => 0,
                                        "NewFInvenSysId" => 0, //!empty($NewFInvenSysId)?$NewFInvenSysId:0,
                                        "DepartureTime" => isset($arrSegmentsRes['originDepTime']) ? $arrSegmentsRes['originDepTime'] . ':00' : '',
                                        "ArrivalTime" => isset($arrSegmentsRes['destinationArrTime']) ? $arrSegmentsRes['destinationArrTime'] . ':00' : '',
                                        "HaultInclusions" => '',
                                        "NoOfSeatAvailable" => isset($arrSegmentsRes['NoOfSeatAvailable']) ? $arrSegmentsRes['NoOfSeatAvailable'] : '',
                                        "CurrencyType" => isset($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1',
                                        "PublishedFare" => isset($result['Fare']['OfferedFare']) ? (int) round($result['Fare']['OfferedFare']) : 0,
                                        "CommissionEarned" => isset($result['Fare']['CommissionEarned']) ? (int) round($result['Fare']['CommissionEarned']) : 0,
                                        "CreateDate" => date('Y-m-d H:i:s'),
                                        "UpdateDate" => date('Y-m-d H:i:s'),
                                        "IsActive" => 1,
                                        "IsMarkForDelete" => 0
                                    );
                                    $AirStopInvenSysId = $objFlight->addFlightStopsDetails($arrFlightStopsInsert);

                                    $AirInvenSysId = $AirStopInvenSysId;
                                    $Sequance++;
                                }
                            }

                            if ($ICSourceSysId == 3 && count($segmentsResult) > 1) {
                                $Sequance = 1;

                                foreach ($segmentsResult as $arrSegmentsRes) {
                                    $FlightNumber = isset($arrSegmentsRes['Airline']['FlightNumber']) ? $arrSegmentsRes['Airline']['FlightNumber'] : 0;

                                    $originAirportCode = $arrSegmentsRes['Origin']['Airport']['AirportCode'];
                                    $destinationAirportCode = $arrSegmentsRes['Destination']['Airport']['AirportCode'];

                                    $SourcePlaceSysId = !empty($arrCityIds[$originAirportCode]) ? $arrCityIds[$originAirportCode] : '0';
                                    $DestPlaceSysId = !empty($arrCityIds[$destinationAirportCode]) ? $arrCityIds[$destinationAirportCode] : '0';


                                    $Duration = isset($arrSegmentsRes['Duration']) ? $arrSegmentsRes['Duration'] : '0';
                                    $GroundTime = isset($arrSegmentsRes['GroundTime']) ? $arrSegmentsRes['GroundTime'] : '0';

                                    $FlightDuration = $Duration + $GroundTime;

                                    $arrFlightStopsInsert = array(
                                        "TBQAirInvenSysId" => $intFlightChildRecordId,
                                        "SourcePlaceSysId" => $SourcePlaceSysId,
                                        "DestPlaceSysId" => $DestPlaceSysId,
                                        "Sequance" => $Sequance,
                                        "StayDuration" => isset($arrSegmentsRes['GroundTime']) ? $arrSegmentsRes['GroundTime'] : '',
                                        "FlightDuration" => $FlightDuration,
                                        "AirlineCode" => isset($arrSegmentsRes['Airline']['AirlineCode']) ? $arrSegmentsRes['Airline']['AirlineCode'] : '',
                                        "AirlineName" => isset($arrSegmentsRes['Airline']['AirlineName']) ? $arrSegmentsRes['Airline']['AirlineName'] : '',
                                        "FlightNumber" => isset($arrSegmentsRes['Airline']['FlightNumber']) ? $arrSegmentsRes['Airline']['FlightNumber'] : '',
                                        "FareClass" => isset($arrSegmentsRes['Airline']['FareClass']) ? $arrSegmentsRes['Airline']['FareClass'] : '',
                                        "OriginAirportCode" => isset($arrSegmentsRes['Origin']['Airport']['AirportCode']) ? $arrSegmentsRes['Origin']['Airport']['AirportCode'] : '',
                                        "DestinationAirportCode" => isset($arrSegmentsRes['Destination']['Airport']['AirportCode']) ? $arrSegmentsRes['Destination']['Airport']['AirportCode'] : '',
                                        "IsFlightChange" => 0,
                                        "NewFInvenSysId" => 0, //!empty($NewFInvenSysId)?$NewFInvenSysId:0,
                                        "DepartureTime" => isset($arrSegmentsRes['Destination']['ArrTime']) ? $arrSegmentsRes['Destination']['ArrTime'] : '',
                                        "ArrivalTime" => isset($arrSegmentsRes['Origin']['DepTime']) ? $arrSegmentsRes['Origin']['DepTime'] : '',
                                        "HaultInclusions" => '',
                                        "NoOfSeatAvailable" => isset($arrSegmentsRes['NoOfSeatAvailable']) ? $arrSegmentsRes['NoOfSeatAvailable'] : 0,
                                        "CurrencyType" => isset($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1',
                                        "PublishedFare" => isset($result['Fare']['OfferedFare']) ? $result['Fare']['OfferedFare'] : $result['FairRules']['PublishedFare'],
                                        "CommissionEarned" => isset($result['Fare']['CommissionEarned']) ? $result['Fare']['CommissionEarned'] : $result['FairRules']['CommissionEarned'],
                                        "CreateDate" => date('Y-m-d H:i:s'),
                                        "UpdateDate" => date('Y-m-d H:i:s'),
                                        "IsActive" => 1,
                                        "IsMarkForDelete" => 0
                                    );
                                    // echo "<pre>";
                                    // print_r($arrFlightStopsInsert);die;
                                    $AirStopInvenSysId = $objFlight->addFlightStopsDetails($arrFlightStopsInsert);
                                    $AirInvenSysId = $AirStopInvenSysId;
                                    $Sequance++;

                                }
                            }
                        }

                        // InOutBound/InBound Flights Data Ends...
                        return $AirInvenSysIdArr;
                    }
                } // Foreach ends
                // exit;
            } catch (Zend_Exception $e) {
                print_r($e->getMessage());die;
                return $AirInvenSysIdArr;
		    }

        }
    }
    public function bookNowAction()
    {
        Zend_Session::namespaceUnset('FlightBookingDataRoundInter');
        Zend_Session::namespaceUnset('FlightBookingDataInbound');
        Zend_Session::namespaceUnset('FlightBookingData');
        $post = json_decode(file_get_contents('php://input'), true);
        $roundSelect = isset($post['roundSelect']) ? $post['roundSelect'] : 0;
        $SingleSelect = isset($post['SingleSelect']) ? $post['SingleSelect'] : 0;
        $ProposaltraceID = isset($post['traceID']) ? $post['traceID'] : 0;
        $multiSelect = isset($post['multiSelect']) ? $post['multiSelect'] : [];
        if (isset($post['sessionFlightSearchParams']) && !empty($post['sessionFlightSearchParams'])) {
            $sessionParams = json_decode($post['sessionFlightSearchParams'], true);
        }
        $route = ($sessionParams['route']);
        $interNationalSearch = ($sessionParams['interNationalSearch']);
        $Outbound = json_decode($post['Outbound'], true);
        $Inbound = json_decode(($post['Inbound']) ? $post['Inbound'] : json_encode([]), true);
        $sessionFlightSearchParams = json_decode(($post['sessionFlightSearchParams']) ? $post['sessionFlightSearchParams'] : json_encode([]), true);
        $SearchTraceId = $Outbound['SearchTraceId'];
        $ICSourceSysId = $Outbound['ICSourceSysId'];
        $bookingAllowed = $Outbound['bookingAllowed'];

        if ($ICSourceSysId == 8) {
            $sessionParams['departure_dates'] = $Outbound['FromDate'];
            $sessionParams['return_dates'] = $Outbound['FromDate'];
        }
        $objFlight = new Travel_Model_TblFlight();
        $FlightTempData = $objFlight->GetFlightTempData($ProposaltraceID);
        $arrData = json_decode($FlightTempData['APIBookingData'], true);
        $TPSysId = $FlightTempData['TPSysId'];
        $bookingAllowed = $this->view->bookingAllowed = isset($arrData['postData']['bookingAllowed']) ? $arrData['postData']['bookingAllowed'] : 0;
        // echo "<pre>";
        // print_r($bookingAllowed);
        // die; //bookingAllowed
        $FairRules = [];
        if($route == 3 && $interNationalSearch != 1){
            if ($Outbound) {
                foreach ($Outbound as $key=>$priceVal) {
                    $FairRules = [];
                    $SearchTraceId = $priceVal['SearchTraceId'];
                    $Outbound[$key] = $priceVal;
                    if ($priceVal['FairRules']) {
                        foreach ($priceVal['FairRules'] as $price) {
                            if (in_array($price['PriceID'], $multiSelect)) {
                                $FairRules = $price;
                            }
                        }
                    }
                    $Outbound[$key]['FairRules'] = $FairRules;
                }
            }
        }else{
            if ($Outbound['FairRules']) {
                foreach ($Outbound['FairRules'] as $price) {
                    if ($price['PriceID'] == $SingleSelect) {
                        $FairRules = $price;
                    }
                }
            }
            if ($ICSourceSysId != 3) {
                $Outbound['apiTraceId'] = $SingleSelect;
            }
            $Outbound['FairRules'] = $FairRules;
        }
        
        $FlightBookingData = new Zend_Session_Namespace('FlightBookingData');
        $FlightBookingDataRoundInter = new Zend_Session_Namespace('FlightBookingDataRoundInter');
        $FlightBookingDataInbound = new Zend_Session_Namespace('FlightBookingDataInbound');
        //$FlightBookingData->params[0] = $Outbound; // Putting all form data to Session
        if($route == 3 && $interNationalSearch != 1){
            $FlightBookingData->params = $Outbound; // Putting all form data to Session
        }else{
            $FlightBookingData->params[0] = $Outbound;
        }
        $FlightBookingDataRoundInter->params[0] = $Outbound; // Putting all form data to Session
        $apiTraceId = $SingleSelect;
        if (!empty($Inbound)) {
            $RoundFairRules = [];
            if ($Inbound['FairRules']) {
                foreach ($Inbound['FairRules'] as $price2) {
                    if ($price2['PriceID'] == $roundSelect) {
                        $RoundFairRules = $price2;
                    }
                }
            }
            if ($ICSourceSysId != 3) {
                $Outbound['apiTraceId'] = $roundSelect;
            }
            $Inbound['FairRules'] = $RoundFairRules;
            $FlightBookingData->params[1] = $Inbound; // Putting all form data to Session
            $FlightBookingDataInbound->params = $Inbound; // Putting all form data to Session
            $apiTraceId = $SingleSelect . ',' . $roundSelect;
        }

       
        $arrData['FlightBookingData'] = $FlightBookingData->params;
        $arrData['apiTraceId'] = $apiTraceId;
        $arrData['SearchTraceId'] = $SearchTraceId;

        $arrData['AirInvenSysIdArr'] = [];
        $sessionFlightSearchParams['bookingAllowed'] = $bookingAllowed;
        if (!empty($sessionParams)) {
            $arrData['sessionFlightSearchParams'] = $sessionFlightSearchParams;
        }
        
        $tempData = array(
            'TraceId' => $SearchTraceId,
            'TPSysId' => $TPSysId,
            'APIBookingData' => json_encode($arrData),
        );

        $objFlight->deleteFlightTempData($SearchTraceId);
        $objFlight->insertFlightTempData($tempData);
        //$strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
        if ($FlightBookingData->params) {
            if (!empty($ProposaltraceID)) {
                $response = array('success' => true, 'message' => 'Plase wait...', 'url' => $this->baseUrl . '/flight-proposal/view-flight-proposal-travellers/data/' . $SearchTraceId . '/id/' . $ProposaltraceID);
                echo json_encode($response);
                exit;
            } else {
                $response = array('success' => true, 'message' => 'Plase wait...', 'url' => $this->baseUrl . '/flight/travellers/data/' . $SearchTraceId);
                echo json_encode($response);
                exit;
            }
        } else {
            $response = array('success' => false, 'message' => 'Oops something went wrong', 'url' => '');
            echo json_encode($response);
            exit;
        }
        die('ddd');
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($sessionParams['editLeadId']);
        $AgencySysId = $arrAgencyDetails['AgencySysId'];
        $AgentSysId = $arrAgencyDetails['AgentSysId'];

        //$sessionFlightSearchParams = new Zend_Session_Namespace('sessionFlightSearchParams');

        $strFlightRoute = trim($sessionFlightSearchParams['route']);
        $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
        $strSourceAirportCode = $sessionFlightSearchParams['from'];
        $strDestinationAirportCode = $sessionFlightSearchParams['to'];
        $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
        $strReturnDate = !empty($sessionFlightSearchParams['return_dates']) ? $sessionFlightSearchParams['return_dates'] : '';
        $adultCount = $sessionFlightSearchParams['adults'];
        $childCount = $sessionFlightSearchParams['child'];
        $infantCount = $sessionFlightSearchParams['infant'];
        $intMemberCount = $adultCount + $childCount + $infantCount;
        $origin = $sessionFlightSearchParams['sourceCityAirportCode'];
        $destination = $sessionFlightSearchParams['destinationCityAirportCode'];
        $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
        $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);

        if (!empty($sessionParams)) {
            $sessionFlightSearchParams = $sessionParams;
            $strFlightRoute = trim($sessionFlightSearchParams['route']);
            $interNationalSearch = trim($sessionFlightSearchParams['interNationalSearch']);
            $strSourceAirportCode = $sessionFlightSearchParams['from'];
            $strDestinationAirportCode = $sessionFlightSearchParams['to'];
            $strDepatureDate = $sessionFlightSearchParams['departure_dates'];
            $strReturnDate = !empty($sessionFlightSearchParams['return_dates']) ? $sessionFlightSearchParams['return_dates'] : '';
            $adultCount = $sessionFlightSearchParams['adults'];
            $childCount = $sessionFlightSearchParams['child'];
            $infantCount = $sessionFlightSearchParams['infant'];
            $intMemberCount = $adultCount + $childCount + $infantCount;
            $origin = $sessionFlightSearchParams['sourceCityAirportCode'];
            $destination = $sessionFlightSearchParams['destinationCityAirportCode'];
            $intSourceCityId = trim($sessionFlightSearchParams['sourceCityId']);
            $intDestinationCityId = trim($sessionFlightSearchParams['destinationCityId']);
        }

        /* Common Variable For API Call */

        $arrDepatureDate = explode("/", $strDepatureDate);
        if (!empty($arrDepatureDate) ) {
            $strDepatureDate = $arrDepatureDate[2] . "-" . $arrDepatureDate[1] . "-" . $arrDepatureDate[0];
        }

        if (!empty($strReturnDate)) {
            $arrReturnDepatureDate = explode("/", $strReturnDate);
            if (!empty($arrReturnDepatureDate) ) {
                $strReturnDate = $arrReturnDepatureDate[2] . "-" . $arrReturnDepatureDate[1] . "-" . $arrReturnDepatureDate[0];
            }
        }

        $localFromDateTime = date("Y-m-d h:i", strtotime($strDepatureDate));
        $localToDateTime = date("Y-m-d h:i", strtotime($strReturnDate));
        $data = $FlightBookingData->params;
        $arrCommonInsVariables = array(
            'strTraceId' => $apiTraceId,
            'localFromDateTime' => $localFromDateTime,
            'localToDateTime' => $localToDateTime,
            'strSourceAirportCode' => $strSourceAirportCode,
            'strDestinationAirportCode' => $strDestinationAirportCode,
            'intMemberCount' => $intMemberCount,
            'intSourceCityId' => $intSourceCityId,
            'intDestinationCityId' => $intDestinationCityId,
            'JourneyType' => 1, // For Single Trips API Search
            'TripType' => 1,
            'interNationalSearch' => isset($interNationalSearch) ? $interNationalSearch : 0
        );
        // echo "<pre>";
        // print_r($data);
        // die;

        $AirInvenSysIdArr = [];
        if (!empty($data) ) {

            $objFlight = new Travel_Model_TblFlight();

            // For getting All Airlines Array
            $objAirline = new Travel_Model_TblAirline();
            $arrAirlineList = $objAirline->getAirlineIdsAndCodeList();

            // For getting All currency Array
            $objCurrency = new Travel_Model_TblCurrency();
            $arrCurrencyList = $objCurrency->getCurrencyIdsAndSymbolList();

            // For getting All Source & Destination CitySysId Array  IsRefundable
            $objAirport = new Travel_Model_TblAirport();
            $arrCityIds = $objAirport->getCityIdsAndAirPortCodeList();

            // Fix Values.....

            $strTraceId         = $arrCommonInsVariables['strTraceId'];
            $localFromDateTime  = $arrCommonInsVariables['localFromDateTime'];
            $localToDateTime    = $arrCommonInsVariables['localToDateTime'];

            $strSourceAirportCode    = $arrCommonInsVariables['strSourceAirportCode'];
            $strDestinationAirportCode    = $arrCommonInsVariables['strDestinationAirportCode'];
            $intMemberCount    = $arrCommonInsVariables['intMemberCount'];
            $intSourceCityId    = $arrCommonInsVariables['intSourceCityId'];
            $intDestinationCityId    = $arrCommonInsVariables['intDestinationCityId'];
            $intJourneyType    = $arrCommonInsVariables['JourneyType'];
            $intTripType    = $arrCommonInsVariables['TripType'];
            $interNationalSearch    = isset($arrCommonInsVariables['interNationalSearch']) ? $arrCommonInsVariables['interNationalSearch'] : '0';

            //$ICSourceSysId = 7;
            $IsFromAgency = 1;
            $DayLightSavingDiff = 0;
            $AirportHaultMinutes = 0;
            $Rating = 0;
            $FllightFeatureMask = 0;
            $UpdatedByISSysId = $AgentSysId;
            $CreatedByISSysId = $AgentSysId;
            $ImageTN = '';
            $ImgForList = '';
            $ImgeDetails = '';
            $UpdateDate = date('Y-m-d H:i:s');
            $CreateDate = date('Y-m-d H:i:s');
            $ApproveBy = $AgentSysId;
            $ApprovalDate = date('Y-m-d H:i:s');
            $IsApproved = '1';
            $IsActive = '1';
            $IsMarkForDel = 0;

            foreach ($data as $result) {


                $ICSourceSysId = $result['ICSourceSysId'];
                $ResultIndex = $result['ResultIndex'];
                $IsLCC = !empty($result['IsLCC'])?$result['IsLCC']:$result['origin']['IsLCC'];
                $IsRefundable = isset($result['IsRefundable']) ? $result['IsRefundable'] : 0;
                $AirlineCode = $result['AirlineCode'];


                // Fare
                $Currency = $result['FairRules']['Currency'];
                $currencySysId = !empty($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1';
                $BaseFare = $result['FairRules']['BaseFare'];
                $Tax = !empty($result['FairRules']['Tax']) ? $result['FairRules']['Tax'] : 0;

                $YQTax = !empty($result['FairRules']['YQTax']) ? $result['FairRules']['YQTax'] : 0;
                $AdditionalTxnFeeOfrd = $result['FairRules']['AdditionalTxnFeeOfrd'];
                $AdditionalTxnFeePub = $result['FairRules']['AdditionalTxnFeePub'];
                $OtherCharges = $result['FairRules']['OtherCharges'];
                $Discount = $result['FairRules']['Discount'];
                $PublishedFare = $result['FairRules']['PublishedFare'];
                $CommissionEarned = $result['FairRules']['CommEarned'];
                $PLBEarned = $result['FairRules']['PLBEarned'];
                $IncentiveEarned = $result['FairRules']['IncentiveEarned'];
                $OfferedFare = $result['FairRules']['OfferedFare'];
                $TdsOnCommission = $result['FairRules']['TdsOnCommission'];
                $TdsOnPLB = $result['FairRules']['TdsOnPLB'];
                $TdsOnIncentive = $result['FairRules']['TdsOnIncentive'];
                $ServiceFee = $result['FairRules']['ServiceFee'];
                $ExtraMarkup = $result['FairRules']['ExtraMarkup'];
                $ExtraMarkupOnGST = $result['FairRules']['ExtraMarkupOnGST'];


                $arrFairRules = array(
                    "TBOAirInvenAPISysId" => "",
                    "Currency" => $currencySysId,
                    "BaseFare" => $BaseFare,
                    "Tax" => $Tax,
                    "YQTax" => $YQTax,
                    "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                    "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                    "OtherCharges" => $OtherCharges,
                    "Discount" => $Discount,
                    "ServiceFee" => $ServiceFee,
                    "PublishedFare" => $PublishedFare,
                    "CommissionEarned" => $CommissionEarned,
                    "PLBEarned" => $PLBEarned,
                    "IncentiveEarned" => $IncentiveEarned,
                    "OfferedFare" => $OfferedFare,
                    "TdsOnCommission" => ($TdsOnCommission) ? $TdsOnCommission : 0,
                    "TdsOnPLB" => ($TdsOnPLB) ? $TdsOnPLB : 0,
                    "TdsOnIncentive" => ($TdsOnIncentive) ? $TdsOnIncentive : 0,
                    "UpdateDate" => $UpdateDate,
                    "CreateDate" => $CreateDate,
                    "IsActive" => $IsActive,
                    "IsMarkForDel" => $IsMarkForDel
                );

                $strFlightNumber = !empty($result['FlightNumber'])?$result['FlightNumber']:$result['origin']['OrFlightNumber'];
                $strFareClass = !empty( $result['FairRules']['FareClass'])?$result['FairRules']['FareClass']: $result['FareClass'];
                //$initialOriginDepTime = $result['Segments'][0]['originDepTime'];

                $localFromDateTime = $result['LocalFromTime'];
                $initialOriginDepTime = $result['FromUTCTime'];
                $localToDateTime = $result['LocalToTime'];
                $ToUTCTime = $result['ToUTCTime'];

                if (!empty($result['Segments'])) {
                    $FlyingMinutes = 0;
                    //$initialOriginDepTime = $result['Segments'][0][0]['Origin']['DepTime'];
                    foreach ($result['Segments'] as $segmentsResult) {
                        $Duration = $segmentsResult['Duration'];

                        $FlyingMinutes = $FlyingMinutes + ((isset($segmentsResult['Duration']) ? $segmentsResult['Duration'] : 0) + (!empty($segmentsResult['GroundTime']) ? $segmentsResult['GroundTime'] : (isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : 0)));
                        $destinationArrTime = $segmentsResult['Destination']['ArrTime'];

                        // FOR FLIGHT SEGMENTS.....
                        $strBaggage = $segmentsResult['Baggage'];
                        $strCabinBaggage = $segmentsResult['CabinBaggage'];
                        $TripIndicator = $segmentsResult['TripIndicator'];
                        $SegmentIndicator = $segmentsResult['TripIndicator'];

                        $AirlineName = $segmentsResult['AirlineName'];
                        $FlightNumber = $segmentsResult['SegFlightNumber'];
                        $FareClass = $segmentsResult['FareClass'];

                        $originAirportCode = $segmentsResult['originAirportCode'];
                        $originDepTime = $segmentsResult['originDepTime'];

                        $destinationAirportCode = $segmentsResult['destinationAirportCode'];
                        $destinationArrTime = $segmentsResult['destinationArrTime'];

                        $Duration = $segmentsResult['Duration'];
                        $GroundTime = $segmentsResult['GroundTime'];
                        $Mile = $segmentsResult['Mile'];
                        $StopOver = $segmentsResult['StopOver'];
                        $StopPoint = $segmentsResult['StopPoint'];
                        $StopPointArrivalTime = $segmentsResult['StopPointArrivalTime'];
                        $Craft = $segmentsResult['Craft'];
                        $Remark = $segmentsResult['Remark'];
                        $IsETicketEligible = $segmentsResult['IsETicketEligible'];
                        $NoOfSeatAvailable = !empty($segmentsResult['NoOfSeatAvailable']) ? $segmentsResult['NoOfSeatAvailable'] : 0;
                        $FlightStatus = $segmentsResult['FlightStatus'];
                        $Status = $segmentsResult['Status'];

                        $arrSegments = array(
                            "AirInvenAPISysId" => '',
                            "TripIndicator" => $TripIndicator,
                            "Baggage" => $strBaggage,
                            "CabinBaggage" => $strCabinBaggage,
                            "SegmentIndicator" => ($SegmentIndicator) ? $SegmentIndicator : 1,
                            "Duration" => $Duration,
                            "GroundTime" => $GroundTime,
                            "Mile" => $Mile,
                            "StopOver" => $StopOver,
                            "StopPoint" => $StopPoint,
                            "StopPointArrivalTime" => $StopPointArrivalTime,
                            "Craft" => $Craft,
                            "Remark" => $Remark,
                            "IsETicketEligible" => $IsETicketEligible,
                            "FlightStatus" => $FlightStatus,
                            "Status" => $Status
                        );
                        // FOR FLIGHT SEGMENTS.....

                    }
                }

                // Fare
                $airlineSysId = !empty($arrAirlineList[$result['AirlineCode']]) ? $arrAirlineList[$result['AirlineCode']] : '0';


                $FlyingMinutes = $FlyingMinutes;
                if (count($result['Segments']) > 1) {
                    $SegmentsCount = count($result['Segments']);
                    $StopCount = $SegmentsCount - 1;
                    $IsDirect = '0';
                } else {
                    $StopCount = '0';
                    $IsDirect = '1';
                }

                $arrInsertFlightData = array();
                $arrInsertFlightData['FlightNumber'] = $strFlightNumber;
                $arrInsertFlightData['AirInvenSysId'] = 0;
                $arrInsertFlightData['IsLCC'] = $IsLCC;
                $arrInsertFlightData['IsRefundable'] = $IsRefundable;
                $arrInsertFlightData['apiTraceId'] = $strTraceId;
                $arrInsertFlightData['AirlineSysId'] = $airlineSysId;
                $arrInsertFlightData['ICSourceSysId'] = $ICSourceSysId;
                $arrInsertFlightData['IsFromAgency'] = $IsFromAgency;
                $arrInsertFlightData['LocalFromTime'] = $localFromDateTime;
                $arrInsertFlightData['FromUTCTime'] = str_replace('T', ' ', $initialOriginDepTime);
                $arrInsertFlightData['LocalToTime'] = str_replace('T', ' ', $localToDateTime);
                $arrInsertFlightData['ToUTCTime'] = str_replace('T', ' ', $ToUTCTime);
                $arrInsertFlightData['IsDirect'] = $IsDirect;
                $arrInsertFlightData['FareClass'] = $strFareClass;
                $arrInsertFlightData['DayLightSavingDiff'] = $DayLightSavingDiff;
                $arrInsertFlightData['FlyingMinutes'] = $FlyingMinutes;
                $arrInsertFlightData['SourcePlaceSysId'] = $intSourceCityId;
                $arrInsertFlightData['DestPlaceSysId'] = $intDestinationCityId;
                $arrInsertFlightData['SourceAirportCode'] = $strSourceAirportCode;
                $arrInsertFlightData['DestAirportCode'] = $strDestinationAirportCode;
                $arrInsertFlightData['AirportHaultMinutes'] = $AirportHaultMinutes;
                $arrInsertFlightData['StopCount'] = $StopCount;
                $arrInsertFlightData['Stops'] = '';
                $arrInsertFlightData['NoOfSeatAvailable'] = $NoOfSeatAvailable;
                $arrInsertFlightData['TotalFlightMembers'] = $intMemberCount;
                $arrInsertFlightData['CurrencyType'] = $currencySysId;
                $arrInsertFlightData['PublishedFare'] = $OfferedFare; // As Discussed with GG
                $arrInsertFlightData['CommissionEarned'] = $CommissionEarned;
                $arrInsertFlightData['ApiResultIndex'] = $strTraceId;
                $arrInsertFlightData['JourneyType'] = $intJourneyType;
                $arrInsertFlightData['TripType'] = $intTripType;
                $arrInsertFlightData['Rating'] = $Rating;
                $arrInsertFlightData['FllightFeatureMask'] = $FllightFeatureMask;
                $arrInsertFlightData['UpdatedByISSysId'] = $UpdatedByISSysId;
                $arrInsertFlightData['CreatedByISSysId'] = $CreatedByISSysId;
                $arrInsertFlightData['ImageTN'] = $ImageTN;
                $arrInsertFlightData['ImgForList'] = $ImgForList;
                $arrInsertFlightData['ImgeDetails'] = $ImgeDetails;
                $arrInsertFlightData['UpdateDate'] = $UpdateDate;
                $arrInsertFlightData['CreateDate'] = $CreateDate;
                $arrInsertFlightData['ApproveBy'] = $ApproveBy;
                $arrInsertFlightData['ApprovalDate'] = $ApprovalDate;
                $arrInsertFlightData['IsApproved'] = $IsApproved;
                $arrInsertFlightData['IsActive'] = $IsActive;
                $arrInsertFlightData['IsMarkForDel'] = $IsMarkForDel;
                $arrInsertFlightData['IsInternational'] = !empty($interNationalSearch) ? $interNationalSearch : 0;
                // echo '<pre>';
                // print_r($arrInsertFlightData);
                // echo '</pre>';

                $intFlightLastInsertId = $objFlight->addFlightDetails($arrInsertFlightData);
                $AirInvenSysId = $AirInvenSysIdArr[] = $intFlightLastInsertId;

                // FOR FLIGHT FAIR-RULES.....
                try {
                    $arrFairRules['TBOAirInvenAPISysId'] = $AirInvenSysId;
                    $objFlight->addFlightFairRuleDetails($arrFairRules);
                } catch (Exception $e) {
                    echo $e->getMessage();
                }
                // die('ww');
                // FOR FLIGHT FAIR-RULES.....
                // FOR FLIGHT SEGMENTS.....
                try {
                    $arrSegments['AirInvenAPISysId'] = $AirInvenSysId;
                    $objFlight->addFlightSegmentsDetails($arrSegments);
                } catch (Exception $e) {
                    echo $e->getMessage();
                }

                // FOR FLIGHT SEGMENTS.....

                if (!empty($result['FairRules']['FareBreakdown']) ) {
                    foreach ($result['FairRules']['FareBreakdown'] as $fareBreakdown) {
                        $Currency = $fareBreakdown['Currency'];
                        $PassengerType = $fareBreakdown['PassengerType'];
                        $PassengerCount = $fareBreakdown['PassengerCount'];
                        $BaseFare = $fareBreakdown['BaseFare'];
                        $Tax = isset($fareBreakdown['Tax']) ? $fareBreakdown['Tax'] : $fareBreakdown['TaxIN'];
                        $YQTax = isset($fareBreakdown['YQTax']) ? $fareBreakdown['YQTax'] : $fareBreakdown['YQ'];
                        $AdditionalTxnFeeOfrd = $fareBreakdown['AdditionalTxnFeeOfrd'];
                        $AdditionalTxnFeePub = $fareBreakdown['AdditionalTxnFeePub'];

                        $intCommisionEarnedForAgency = isset($fareBreakdown['CommissionEarned']) ? $fareBreakdown['CommissionEarned'] : 0; // New fields
                        $OtherCharges = isset($fareBreakdown['OtherCharges']) ? $fareBreakdown['OtherCharges'] : 0; // New fields
                        $FixedMarkUp = isset($fareBreakdown['FixedMarkUp']) ? $fareBreakdown['FixedMarkUp'] : 0; // New fields
                        $GSTOnMarkUp = isset($fareBreakdown['GSTOnMarkUp']) ? $fareBreakdown['GSTOnMarkUp'] : 0; // New fields
                        $DiscountValue = isset($fareBreakdown['DiscountValue']) ? $fareBreakdown['DiscountValue'] : 0; // New fields

                        $arrFareBreakdown = array(
                            "TBQAirInvenAPISysId" => $AirInvenSysId,
                            "Currency" => $currencySysId,
                            "PassengerType" => $PassengerType,
                            "PassengerCount" => $PassengerCount,
                            "BaseFare" => ($BaseFare) ? $BaseFare : 0,
                            "Tax" => $Tax,
                            "YQTax" => $YQTax,
                            "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                            "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                            "CommissionEarned" => ($intCommisionEarnedForAgency),
                            "OtherCharges" => $OtherCharges,
                            "FixedMarkUp" => $FixedMarkUp,
                            "GSTOnMarkUp" => $GSTOnMarkUp,
                            "Discount" => $DiscountValue,
                        );

                        $objFlight->addFlightFareBreakdown($arrFareBreakdown);
                    }
                }


                if ($IsDirect == 0) {
                    $tempFlightNumber = "";
                    $IsFlightChange = 0;
                    //$changedFlightNumber = "";
                    $FlyingMinutes = 0;
                    $intSegmentsCount = 0;
                    //$firstFlightNumber = "";
                    foreach ($result['Segments'] as $sgkey=>$segmentsResult) {

                        $isReturnSegment = isset($segmentsResult['isReturnSegment'])?$segmentsResult['isReturnSegment']:0;
                        $TripIndicator = $segmentsResult['TripIndicator'];
                        $SegmentIndicator = $segmentsResult['TripIndicator'];
                        $FlightNumber = $segmentsResult['SegFlightNumber'];

                        //                                            if($firstFlightNumber == ""){
                        //                                                $firstFlightNumber = $FlightNumber;
                        //                                            }

                        if (!empty($tempFlightNumber) && $tempFlightNumber != $FlightNumber) {
                            $IsFlightChange = 1;
                            $NewFInvenSysId = $AirInvenSysId;
                        } elseif (!empty($tempFlightNumber) && $tempFlightNumber == $FlightNumber) {
                            $IsFlightChange = 2;
                            $NewFInvenSysId = $AirInvenSysId;
                        } else {
                            $IsFlightChange = 0;
                            $NewFInvenSysId = '';
                        }
                        $tempFlightNumber = $FlightNumber;

                        $AirlineName = $segmentsResult['AirlineName'];
                        $FareClass = $segmentsResult['FareClass'];

                        $originAirportCode = $segmentsResult['originAirportCode'];
                        $originDepTime = $segmentsResult['originDepTime'];

                        $destinationAirportCode = $segmentsResult['destinationAirportCode'];
                        $destinationArrTime = $segmentsResult['destinationArrTime'];

                        $SourcePlaceSysId = !empty($arrCityIds[$originAirportCode]) ? $arrCityIds[$originAirportCode] : '0';
                        $DestPlaceSysId = !empty($arrCityIds[$destinationAirportCode]) ? $arrCityIds[$destinationAirportCode] : '0';
                        $Duration = $segmentsResult['Duration'];
                        $FlyingMinutes = $FlyingMinutes + ((isset($segmentsResult['Duration']) ? $segmentsResult['Duration'] : 0) + (!empty($segmentsResult['GroundTime']) ? $segmentsResult['GroundTime'] : (isset($segmentsResult['AccumulatedDuration']) ? $segmentsResult['AccumulatedDuration'] : 0)));
                        $GroundTime = $segmentsResult['GroundTime'];
                        $Mile = $segmentsResult['Mile'];
                        $StopOver = $segmentsResult['StopOver'];
                        $StopPoint = $segmentsResult['StopPoint'];
                        $StopPointArrivalTime = $segmentsResult['StopPointArrivalTime'];
                        $StopPointDepartureTime = $segmentsResult['StopPointDepartureTime'];
                        $Craft = $segmentsResult['Craft'];
                        $Remark = $segmentsResult['Remark'];
                        $IsETicketEligible = $segmentsResult['IsETicketEligible'];
                        $NoOfSeatAvailable = !empty($segmentsResult['NoOfSeatAvailable']) ? $segmentsResult['NoOfSeatAvailable'] : 0;
                        $FlightStatus = $segmentsResult['FlightStatus'];
                        $Status = $segmentsResult['Status'];

                        try {
                            $arrFlightStopsInsert = array(
                                "TBQAirInvenSysId" => $AirInvenSysId,
                                "SourcePlaceSysId" => $SourcePlaceSysId,
                                "Sequance" => $intSegmentsCount,//($SegmentIndicator) ? $SegmentIndicator : 1,
                                "DestPlaceSysId" => $DestPlaceSysId,
                                "StayDuration" => $GroundTime,
                                "FlightDuration" => $Duration,
                                "AirlineCode" => $AirlineCode,
                                "AirlineName" => $AirlineName,
                                "FlightNumber" => $FlightNumber,
                                "FareClass" => $FareClass,
                                "NoOfSeatAvailable" => $NoOfSeatAvailable,
                                "OriginAirportCode" => $originAirportCode,
                                "DestinationAirportCode" => $destinationAirportCode,
                                "IsFlightChange" => $IsFlightChange,
                                "NewFInvenSysId" => $NewFInvenSysId,
                                "ArrivalTime" => str_replace('T', ' ', $originDepTime),
                                "DepartureTime" => str_replace('T', ' ', $destinationArrTime),
                                "HaultInclusions" => '',
                                "CurrencyType" => $currencySysId,
                                "PublishedFare" => $PublishedFare,
                                "CommissionEarned" => ($CommissionEarned) ? $CommissionEarned : 0,
                                "CreateDate" => $CreateDate,
                                "UpdateDate" => $UpdateDate,
                                "IsActive" => $IsActive,
                                "IsMarkForDelete" => $IsMarkForDel
                            );
                            // echo '<pre>';
                            // print_r($arrFlightStopsInsert);
                            // echo '</pre>';
                            $objFlight->addFlightStopsDetails($arrFlightStopsInsert);
                            $intSegmentsCount++;
                        } catch (Exception $e) {
                            echo $e->getMessage();exit;
                        }
                    }
                }
            } // Foreach ends
        }


        //$TraceId = implode('-', str_split(substr(strtolower(md5(time() . rand(1000, 9999))), 0, 20), 5));
        $arrData['AirInvenSysIdArr'] = $AirInvenSysIdArr;
        $sessionFlightSearchParams['bookingAllowed'] = $bookingAllowed;
        if (!empty($sessionParams)) {
            $arrData['sessionFlightSearchParams'] = $sessionFlightSearchParams;
        }
        $tempData = array(
            'TraceId' => $SearchTraceId,
            'TPSysId' => $TPSysId,
            'APIBookingData' => json_encode($arrData),
        );

        $objFlight->deleteFlightTempData($SearchTraceId);
        $objFlight->insertFlightTempData($tempData);
        //$strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
        if ($FlightBookingData->params) {
            if (!empty($ProposaltraceID)) {
                $response = array('success' => true, 'message' => 'Plase wait...', 'url' => $this->baseUrl . '/flight-proposal/view-flight-proposal-travellers/data/' . $SearchTraceId . '/id/' . $ProposaltraceID);
                echo json_encode($response);
                exit;
            } else {
                $response = array('success' => true, 'message' => 'Plase wait...', 'url' => $this->baseUrl . '/flight/travellers/data/' . $SearchTraceId);
                echo json_encode($response);
                exit;
            }
        } else {
            $response = array('success' => false, 'message' => 'Oops something went wrong', 'url' => '');
            echo json_encode($response);
            exit;
        }
    }
    public function viewmoreAction()
    {
        $post = json_decode(file_get_contents('php://input'), true);
        if ($post['item']) {
            $PriceID = $post['PriceID'];
            $FairRules = [];
            if ($post['item']['FairRules']) {
                foreach ($post['item']['FairRules'] as $price) {
                    if ($price['PriceID'] == $PriceID) {
                        $FairRules = $price;
                    }
                }
            }
            $post['item']['FairRules'] = $FairRules;
            $ArrayData[0] = $post['item'];
            // echo '<pre>';
            // print_r($ArrayData);
            // die;
            $this->view->CurrencyRate = $this->CurrencyRate;
            $this->view->CurrencyTitle = $this->CurrencyTitle;
            $html = new Zend_View();
            $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
            $html->assign(array('Data' => $ArrayData, 'DataInbound' => [], 'CurrencyRate' => $this->CurrencyRate, 'CurrencyTitle' => $this->CurrencyTitle));
            $bodyText = $html->render('viewmore.phtml');
            $response = array('success' => true, 'message' => 'success', 'html' => $bodyText);
            echo json_encode($response);
            exit;
        } else {
            $response = array('success' => false, 'message' => 'failed', 'html' => '');
            echo json_encode($response);
            exit;
        }
    }
    public function getflightfarerulesAction()
    {
        if ($this->getRequest()->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();
            $getData = $this->getRequest()->getParams();
            $sessionFlightSearchParams = json_decode($getData['sessionFlightSearchParams'], true);
            $FlightBooking = json_decode($getData['intOutBoundId'], true);
            $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
            $supplier = $getData['supplier'];
            $Pages = isset($getData['Pages'])?$getData['Pages']:'';
            $adultCount = $sessionFlightSearchParams['adults'];
            $childCount = $sessionFlightSearchParams['child'];
            $infantCount = $sessionFlightSearchParams['infant'];
            $leadId     = $sessionFlightSearchParams['editLeadId'];
            $interNationalSearch     = $sessionFlightSearchParams['interNationalSearch'];
             $ApiResultIndexRequest = isset($getData['ApiResultIndex'])?$getData['ApiResultIndex']:$getData['TraceId'];
            $objFlightProposal = new Travel_Model_TblFlightProposal();
            if($Pages == 'Review'){
                $FlightBooking = $FlightBooking[0];
                if($FlightBooking['ICSourceSysId'] == 7){
                    $supplier = 1;
                }else{
                    $supplier = 2;
                }
            }
           
            $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId);
            $AgencySysId = $arrAgencyDetails['AgencySysId'];
            $AgentSysId = $arrAgencyDetails['AgentSysId'];
            $intMemberCount = $adultCount + $childCount + $infantCount;
            $intMarkUp = $this->getCancelCharge($intCountryCode, $AgencySysId);
            $IsSeriesFareData = isset($FlightBooking['IsSeriesFareData']) ? $FlightBooking['IsSeriesFareData'] : 0;
            $ICSourceSysId = isset($FlightBooking['ICSourceSysId']) ? $FlightBooking['ICSourceSysId'] : 0;
            $apiTraceId = isset($FlightBooking['apiTraceId']) ? $FlightBooking['apiTraceId'] : 0;
            $FareRuleData = isset($FlightBooking['FareRuleData']) ? $FlightBooking['FareRuleData'] : 0;
            $FareRulesCancel = [];
            // echo '<pre>';
            // print_r($ICSourceSysId);
            // echo '<pre>';
            // print_r($FlightBooking);
            // die;
           
            if($Pages == 'Review' && $ICSourceSysId == 7){
                $apiResponse = $FareRuleData;
                $FareRulesCancel = $FareRuleData;
            }else{
                if ($ICSourceSysId == 7) {
                    $getData['flowType'] = 'SEARCH';
                    
                    $apiResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->GetApiFlightsFareRulesTripJack($getData, $AgencySysId);
                    $FareRules = isset($apiResponse['fareRule']) ? $apiResponse['fareRule'] : [];
					$success = $apiResponse['status']['success'];
                    
					if ($success && $FareRules) {
						foreach ($FareRules as $key => $val) {
							$CANCELLATION = isset($val['tfr']['CANCELLATION']) ? $val['tfr']['CANCELLATION'] : '';
							$DATECHANGE = isset($val['tfr']['DATECHANGE']) ? $val['tfr']['DATECHANGE'] : '';
							$NO_SHOW = isset($val['tfr']['NO_SHOW']) ? $val['tfr']['NO_SHOW'] : '';
							$SEAT_CHARGEABLE = isset($val['tfr']['SEAT_CHARGEABLE']) ? $val['tfr']['SEAT_CHARGEABLE'] : '';
							$cancel = [];
							if($CANCELLATION){
								foreach($CANCELLATION as $keys=>$cl){
									$policyInfo_ = isset($cl['policyInfo']) ? array_values(array_filter(explode('__nls__',$cl['policyInfo']))) : ['Airline Cancellation Charges + Taxes + Surcharges'];
									$startTime = (isset($cl['st']) && !empty($cl['st']))?$cl['st']:0;
									$endTime = (isset($cl['et']) && !empty($cl['et']))?$cl['et']:0;
									$additionalFee = (isset($cl['additionalFee']) && !empty($cl['additionalFee']))?$cl['additionalFee']:0;
									$amount = (isset($cl['amount']) && !empty($cl['amount']))?$cl['amount']:0;
									$policyperiod = (isset($cl['pp']) && !empty($cl['pp']))?$cl['pp']:'';
									$st = $this->hoursTodays($startTime);
									$et = $this->hoursTodays($endTime);
									$TimeFrame = $st.' to '.$et;
                                    
									$cancel[$keys] = $cl;
									$cancel[$keys]['CurrencyTitle'] = $this->CurrencyTitle;
									$cancel[$keys]['amount'] = $amount;
									$cancel[$keys]['sector'] = $key;
									$cancel[$keys]['policyInfo'] = $policyInfo_;
									$cancel[$keys]['TimeFrame'] = (!empty($policyperiod))?$policyperiod:$TimeFrame;
									$cancel[$keys]['additionalFee'] = round($additionalFee + (float) ($intMarkUp * $intMemberCount));
								}
							}else{
								$cancel[0]['sector'] = $key;
								$cancel[0]['TimeFrame'] = 'As Per Airline';
								$cancel[0]['policyInfo'] = ['As Per Airline'];
							}
							$datechange = [];
							if($DATECHANGE){
								foreach($DATECHANGE as $keys=>$cl){
									$policyInfo_ = (isset($cl['policyInfo']) && !empty($cl['policyInfo'])) ? array_values(array_filter(explode('__nls__',$cl['policyInfo']))) : ['Difference in Fare + Taxes + Surcharges'];
									$startTime = (isset($cl['st']) && !empty($cl['st']))?$cl['st']:0;
									$endTime = (isset($cl['et']) && !empty($cl['et']))?$cl['et']:0;
									$additionalFee = (isset($cl['additionalFee']) && !empty($cl['additionalFee']))?$cl['additionalFee']:0;
									$amount = (isset($cl['amount']) && !empty($cl['amount']))?$cl['amount']:0;
									$policyperiod = (isset($cl['pp']) && !empty($cl['pp']))?$cl['pp']:'';
									$st = $this->hoursTodays($startTime);
									$et = $this->hoursTodays($endTime);
									$TimeFrame = $st.' to '.$et;
									$datechange[$keys] = $cl;
									$datechange[$keys]['CurrencyTitle'] = $this->CurrencyTitle;
									$datechange[$keys]['amount'] = $amount;
									$datechange[$keys]['sector'] = $key;
									$datechange[$keys]['policyInfo'] = $policyInfo_;
									$datechange[$keys]['TimeFrame'] = (!empty($policyperiod))?$policyperiod:$TimeFrame;
									$datechange[$keys]['additionalFee'] = round($additionalFee + (float) ($intMarkUp * $intMemberCount));
								}
							}else{
								$datechange[0]['sector'] = $key;
								$datechange[0]['TimeFrame'] = 'As Per Airline';
								$datechange[0]['policyInfo'] = ['As Per Airline'];
							}
							$noshow = [];
							if($NO_SHOW){
								foreach($NO_SHOW as $keys=>$cl){
									$policyInfo_ = (isset($cl['policyInfo']) && !empty($cl['policyInfo'])) ? array_values(array_filter(explode('__nls__',$cl['policyInfo']))) : ['Fees As Per Airline Rule + Surcharges'];
									$startTime = (isset($cl['st']) && !empty($cl['st']))?$cl['st']:0;
									$endTime = (isset($cl['et']) && !empty($cl['et']))?$cl['et']:0;
									$additionalFee = (isset($cl['additionalFee']) && !empty($cl['additionalFee']))?$cl['additionalFee']:0;
									$amount = (isset($cl['amount']) && !empty($cl['amount']))?$cl['amount']:0;
									$policyperiod = (isset($cl['pp']) && !empty($cl['pp']))?$cl['pp']:'';
									$st = $this->hoursTodays($startTime);
									$et = $this->hoursTodays($endTime);
									$TimeFrame = $st.' to '.$et;
									$noshow[$keys] = $cl;
									$noshow[$keys]['CurrencyTitle'] = $this->CurrencyTitle;
									$noshow[$keys]['amount'] = $amount;
									$noshow[$keys]['sector'] = $key;
									$noshow[$keys]['policyInfo'] = $policyInfo_;
									$noshow[$keys]['TimeFrame'] = (!empty($policyperiod))?$policyperiod:$TimeFrame;
									$noshow[$keys]['additionalFee'] = round($additionalFee + (float) ($intMarkUp * $intMemberCount));
								}
							}else{
								$noshow[0]['sector'] = $key;
								$noshow[0]['TimeFrame'] = 'As Per Airline';
								$noshow[0]['policyInfo'] = ['As Per Airline'];
							}
							$seatchange = [];
							if($SEAT_CHARGEABLE){
								foreach($SEAT_CHARGEABLE as $keys=>$cl){
									$policyInfo_ = (isset($cl['policyInfo']) && !empty($cl['policyInfo'])) ? array_values(array_filter(explode('__nls__',$cl['policyInfo']))) : ['As per Airlines'];
									$startTime = (isset($cl['st']) && !empty($cl['st']))?$cl['st']:0;
									$endTime = (isset($cl['et']) && !empty($cl['et']))?$cl['et']:0;
									$additionalFee = (isset($cl['additionalFee']) && !empty($cl['additionalFee']))?$cl['additionalFee']:0;
									$amount = (isset($cl['amount']) && !empty($cl['amount']))?$cl['amount']:0;
									$policyperiod = (isset($cl['pp']) && !empty($cl['pp']))?$cl['pp']:'';
									$st = $this->hoursTodays($startTime);
									$et = $this->hoursTodays($endTime);
									$TimeFrame = $st.' to '.$et;
									$seatchange[$keys] = $cl;
									$seatchange[$keys]['CurrencyTitle'] = $this->CurrencyTitle;
									$seatchange[$keys]['amount'] = $amount;
									$seatchange[$keys]['sector'] = $key;
									$seatchange[$keys]['policyInfo'] = $policyInfo_;
									$seatchange[$keys]['TimeFrame'] = (!empty($policyperiod))?$policyperiod:$TimeFrame;
									$seatchange[$keys]['additionalFee'] = round($additionalFee + (float) ($intMarkUp * $intMemberCount));
								}
							}else{
								$seatchange[0]['sector'] = $key;
								$seatchange[0]['TimeFrame'] = 'As Per Airline';
								$seatchange[0]['policyInfo'] = ['Fees As Per Airline Rule + Surcharges'];
							}
							$FareRulesCancel['CANCELLATION'] = $cancel;
							$FareRulesCancel['DATECHANGE'] = $datechange;
							$FareRulesCancel['NO_SHOW'] = $noshow;
							$FareRulesCancel['SEAT_CHARGEABLE'] = $seatchange;
						}
					}
                } elseif ($ICSourceSysId == 3) {

                    $getData['ResultIndex'] = $ApiResultIndexRequest;
                    $getData['TraceId'] = $apiTraceId;
                    
                    $apiResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->fareRuleDetails($getData, $AgencySysId);
                }
            }
            // echo '<pre>';
            // print_r($FareRulesCancel);
            // echo '</pre>';die;
            $this->view->apiResponse = $apiResponse;
            $this->view->FareRulesCancel = $FareRulesCancel;
            $this->view->getData = $getData;
            $this->view->intMarkUp = ((int)$intMarkUp * (int)$intMemberCount);
            $this->view->IsLCC = $getData['IsLCC'];
            $this->view->ICSourceSysId = $ICSourceSysId;
            $html = new Zend_View();
            $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
            $html->assign(array('apiResponse' => $apiResponse,'FareRulesCancel'=>$FareRulesCancel, 'getData' => $getData, 'interNationalSearch' => $interNationalSearch, 'intMarkUp' => ((int)$intMarkUp * (int)$intMemberCount), 'supplier' => $supplier, 'ICSourceSysId' => $ICSourceSysId, 'FlightBooking' => $FlightBooking, 'IsLCC' => $getData['IsLCC']));
            $bodyText = $html->render('getflightfarerules.phtml');
            $response = array('success' => true, 'message' => 'success', 'html' => $bodyText);
            echo json_encode($response);
            exit;
        } else {
            die('Page not found!');
        }
    }
    public function hoursTodays($hours){
		$hid = 24; // Hours in a day - could be 24, 8, etc
		if($hours > $hid){
			$days = round($hours/$hid);
		}else{
			$days = -1;
		}
		$Final = '';
		if( $days < 0 )
		{
			$Final = "$hours hrs";
		}
		else
		{
			$Final = "$days days";
		}
		return $Final;
	}
    public function viewFlightProposalTravellersAction()
    {
        $objFlight = new Travel_Model_TblFlight();
        $traceID  = $this->view->traceID = ($this->_request->getParam('id'));
        $data  = $this->view->data = ($this->_request->getParam('data'));
        $GeoCountry = $this->view->GeoCountry = $objFlight->GetGeoCountry();
        $FlightTempData = $objFlight->GetFlightTempData($data);
        $arrUrlData = json_decode($FlightTempData['APIBookingData'], true);
        $FlightBookingData = $arrUrlData['FlightBookingData'];
        $AirInvenSysIdArr = $arrUrlData['AirInvenSysIdArr'];
        $apiTraceId = $arrUrlData['apiTraceId'];
        $sessionFlightSearchParams = $arrUrlData['sessionFlightSearchParams'];
        $param = $this->getRequest()->getParams();
        $leadId     = $sessionFlightSearchParams['editLeadId'];
        // echo "<pre>";
        // print_r($sessionFlightSearchParams);
        // die;
        $bookingAllowed     = $sessionFlightSearchParams['bookingAllowed'];
        $departureDates     = $sessionFlightSearchParams['departure_dates'];
        $route = $sessionFlightSearchParams['route'];
        if($route == '3'){
            $departureDates = $sessionFlightSearchParams['departure_dates'][0];
        }
        $arrDepartureDates  = explode("/", $departureDates);
        $this->view->departureDates       = $arrDepartureDates[2] . "/" . $arrDepartureDates[1] . "/" . ($arrDepartureDates[0] - 1);
        $this->view->departureMonthInfant       = $arrDepartureDates[1];
        $this->view->departureDayInfant         = ($arrDepartureDates[0] + 1);

        $this->view->departureMonthChild       = $arrDepartureDates[1];
        $this->view->departureDayChild         = ($arrDepartureDates[0]);
        $this->view->intFlightRoute   = $intFlightRoute  = isset($sessionFlightSearchParams['route'])  ? $sessionFlightSearchParams['route']  : 0;
        $this->view->intAdultsCount   = $adultCount   = isset($sessionFlightSearchParams['adults']) ? $sessionFlightSearchParams['adults'] : 0;
        $this->view->intChildrenCount = $childCount   = isset($sessionFlightSearchParams['child'])  ? $sessionFlightSearchParams['child']  : 0;
        $this->view->intInfantCount   = $infantCount  = isset($sessionFlightSearchParams['infant'])  ? $sessionFlightSearchParams['infant']  : 0;
        $this->view->totalPaxCount = $adultCount + $childCount + $infantCount;
        $this->view->bookingAllowed = $bookingAllowed;
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId, 'query');
        $AgencySysId = $this->view->AgencySysId = $arrAgencyDetails['AgencySysId'];
        $AgentSysId = $arrAgencyDetails['AgentSysId'];
        $arrPaxCount = array(
            'intAdultsCount'   => $adultCount,
            'intChildCount' => $childCount,
            'intInfantCount'  =>  $infantCount
        );
        $this->view->arrPaxCount = $arrPaxCount;
        $ARR_SALUTION = unserialize(ARR_SALUTION);
        $ARR_CUSTOMER_RELATION = unserialize(ARR_CUSTOMER_RELATION);
        $this->view->ARR_CUSTOMER_RELATION     = $ARR_CUSTOMER_RELATION;
        $this->view->ARR_SALUTION     = $ARR_SALUTION;

        $this->view->FlightBookingData = $FlightBookingData;
        $this->view->AirInvenSysIdArr = json_encode($AirInvenSysIdArr);
        $this->view->apiTraceId = ($apiTraceId);
        $roomjson = array();
        // $roomjson[1]['Adult']  = $adultCount;
        // $roomjson[1]['Child']  = $childCount;
        // $roomjson[1]['paxType'] = 1;
        $intPaxCount = 1;
        for ($i = 1; $i <= $adultCount; $i++) {
            $roomjson[$i]['Title']  = 'Adult';
            $roomjson[$i]['paxType'] = 1;
            $roomjson[$i]['intPaxCount'] = $intPaxCount;
            $intPaxCount++;
        }
        if (!empty($childCount)) {
            $intPaxCount = 1;
            for ($j = $i; $j <= ($adultCount + $childCount); $j++) {
                $roomjson[$j]['Title']  = 'Child';
                $roomjson[$j]['paxType'] = 2;
                $roomjson[$j]['intPaxCount'] = $intPaxCount;
                $intPaxCount++;
            }
        }

        $this->view->roomjson = $roomjson;
        $this->view->traceId = $arrUrlData['apiTraceId'];
        $this->view->SearchTraceId = $arrUrlData['SearchTraceId'];
        $this->view->param = $param;
        $this->view->sessionFlightSearchParams = $sessionFlightSearchParams;

        $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
        $customerDetails = isset($sessionFlightSearchParams['customerID']) ? $this->_crmcustomerObj->GetAgencyCustomerById(trim($sessionFlightSearchParams['customerID'])) : '';
        $this->view->arrTrevllerDetails = $customerDetails;
        $this->view->CurrencyRate = $this->CurrencyRate;
        $this->view->CurrencyTitle = $this->CurrencyTitle;
    }
    public function farebreackupmobileAction()
    {
        $this->_helper->layout->disableLayout();
        $param = $this->getRequest()->getParams();
        // echo "<pre>";
        // print_r($param);
        // die;
        $sessionFlightSearchParams = json_decode($param['sessionFlightSearchParams'], true);
        $SelectedMeal = json_decode($param['SelectedMeal'], true);
        $SelectedBagg = json_decode($param['SelectedBagg'], true);
        $SelectedSeat = json_decode($param['SelectedSeat'], true);
        $FlightBookingData = json_decode(base64_decode($param['intOutBoundId']), true);

        $this->view->CurrencyRate = $this->CurrencyRate;
        $this->view->CurrencyRate = $this->CurrencyRate;
        $this->view->baseUrl = $this->baseUrl;
        $this->view->Data = $FlightBookingData;
        $this->view->SelectedMealSessionNew = $SelectedMeal;
        $this->view->SelectedBaggSessionNew = $SelectedBagg;
        $this->view->selectedSeatSession = $SelectedSeat;
        $this->view->sessionFlightSearchParams = $sessionFlightSearchParams;
    }
    public function viewFlightProposalPaymentAction()
    {
        $objFlight = new Travel_Model_TblFlight();
        $traceID  = $this->view->traceID = ($this->_request->getParam('id', NULL));
        $data  = $this->view->data = ($this->_request->getParam('data', NULL));
        $isagencySession = new Zend_Session_Namespace('isagencySession');
        $isagency = $this->view->isagencySession = isset($isagencySession->params) ? $isagencySession->params : 0;
        if ($data && $traceID) {
            $FlightTempData = $objFlight->GetFlightTempData($data);
            $arrUrlData = json_decode($FlightTempData['APIBookingData'], true);
            $FlightBookingData = $this->view->FlightBookingData = $arrUrlData['intOutBoundId'];
            $SelectedBaggSessionNew = $this->view->SelectedBaggSessionNew = $arrUrlData['SelectedBaggSessionNew'];
            $SelectedMealSessionNew = $this->view->SelectedMealSessionNew = $arrUrlData['SelectedMealSessionNew'];
            $selectedSeatSession = $this->view->selectedSeatSession = $arrUrlData['selectedSeatSession'];
            $intCustomerSysId = $this->view->intCustomerSysId = $arrUrlData['intCustomerSysId'];
            $intTPSysId = $this->view->intTPSysId = $arrUrlData['intTPSysId'];
            $arrIntTpAirId = $this->view->arrIntTpAirId = $arrUrlData['arrIntTpAirId'];
            $IsTripjack = $this->view->IsTripjack = $arrUrlData['IsTripjack'];
            $AirInvenSysIdArr = $arrUrlData['AirInvenSysIdArr'];
            $apiTraceId = $arrUrlData['apiTraceId'];
            $sessionFlightSearchParams = $arrUrlData['sessionFlightSearchParams'];
            $param = $this->getRequest()->getParams();
            $leadId     = $sessionFlightSearchParams['editLeadId'];
            $this->view->trace_IDs = $data;
            $this->view->CurrencyRate = $this->CurrencyRate;
            $this->view->CurrencyTitle = $this->CurrencyTitle;
            $this->view->intFlightRoute   = $intFlightRoute  = isset($sessionFlightSearchParams['route'])  ? $sessionFlightSearchParams['route']  : 0;
            $this->view->intAdultsCount   = $adultCount   = isset($sessionFlightSearchParams['adults']) ? $sessionFlightSearchParams['adults'] : 0;
            $this->view->intChildrenCount = $childCount   = isset($sessionFlightSearchParams['child'])  ? $sessionFlightSearchParams['child']  : 0;
            $this->view->intInfantCount   = $infantCount  = isset($sessionFlightSearchParams['infant'])  ? $sessionFlightSearchParams['infant']  : 0;
            $this->view->route   = $route  = isset($sessionFlightSearchParams['route'])  ? $sessionFlightSearchParams['route']  : 0;
            $this->view->interNationalSearch   = $interNationalSearch  = isset($sessionFlightSearchParams['interNationalSearch'])  ? $sessionFlightSearchParams['interNationalSearch']  : 0;
            $intTatalPaxCTForMarkUp = $adultCount + $childCount + $infantCount;
            $intCountryCode = $sessionFlightSearchParams['intCountryCode'];
            $objFlightProposal = new Travel_Model_TblFlightProposal();
            $objAgency = new Travel_Model_TblAgency();
            $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId, 'query');
            $AgencySysId = $this->view->AgencySysId = $arrAgencyDetails['AgencySysId'];
            $objPaymentDetail = new Payment_Model_Payment();
            $objPaymentDetail = new Payment_Model_Payment();
            $getPaymentCompanyName = $objPaymentDetail->getPaymentCompanyNameAllDetail($AgencySysId);
            $PaymentMerchantId = $getPaymentCompanyName['PaymentMerchantId'];
            $PaymentOption = $getPaymentCompanyName['PaymentOption'];
            $this->view->getPaymentCompanyName = $PaymentOption;
            $this->view->PaymentMerchantId = $PaymentMerchantId;
            // echo "<pre>";
            // print_r($getPaymentCompanyName); 
            // echo "</pre>";die;
            // if ($getPaymentCompanyName > 0) {
            //     $this->view->getPaymentCompanyName = $getPaymentCompanyName;
            // } else {
            //     $this->view->getPaymentCompanyName = 1;
            // }

            $AgentSysId = $arrAgencyDetails['AgentSysId'];
            $arrAgencyDetails = $objAgency->getAgencyDataById($AgencySysId);
            $this->view->CurrencySymbol = $AgencyBaseCurrency = $arrAgencyDetails['TrxCurrency'];
            $intNetPublishedFare = 0;
            $intGTXMarkUpForStringData = 0;
            $AgentsCustomServiceTaxAmount = 0;
            $AgentsCustomMarkUp = 0;
            $GSTOnMarkUp = 0;
            $CommEarned = 0;
            $FixedMarkUp = 0;
            $TotalTaxsandFees = 0;
            $TotalBaseFare = 0;
            $TotalExtraMarkUpSum = 0;
            $TotalDiscountValueSum = 0;
            $SegmentsArr = [];
            if ($FlightBookingData) {
                foreach ($FlightBookingData as $Data) {
                    $ExtraMarkup = isset($Data['FairRules']['ExtraMarkup']) ? $Data['FairRules']['ExtraMarkup'] : 0;
                    $ExtraMarkupOnGST = isset($Data['FairRules']['ExtraMarkupOnGST']) ? $Data['FairRules']['ExtraMarkupOnGST'] : 0;
                    $DiscountValue = isset($Data['FairRules']['DiscountValue']) ? $Data['FairRules']['DiscountValue'] : 0;
                    $AgentsCustomMarkUp += $ExtraMarkup;
                    $AgentsCustomServiceTaxAmount += $ExtraMarkupOnGST;
                    $TotalExtraMarkUpSum += ($ExtraMarkup + $ExtraMarkupOnGST);
                    $TotalDiscountValueSum += ($DiscountValue);
                    $CommEarned += isset($Data['FairRules']['CommEarned']) ? $Data['FairRules']['CommEarned'] : 0;
                    $FixedMarkUp += isset($Data['FairRules']['FixedMarkUp']) ? $Data['FairRules']['FixedMarkUp'] : 0;
                    $GSTOnMarkUp += isset($Data['FairRules']['GSTOnMarkUp']) ? $Data['FairRules']['GSTOnMarkUp'] : 0;
                    $intGTXMarkUpForStringData += isset($Data['FairRules']['intGTXMarkUp']) ? $Data['FairRules']['intGTXMarkUp'] : 0;
                    // $intNetPublishedFare += $Data['FairRules']['intPublishedFare'] + $ExtraMarkup + $ExtraMarkupOnGST;
                    $intNetPublishedFare += $Data['FairRules']['PublishedFare'];
                    if ($Data['FairRules']['FareBreakdown']) {
                        foreach ($Data['FairRules']['FareBreakdown'] as $value) {
                            $TDS = $value['TDS']; //Management Fee
                            $MF = $value['MF']; //Management Fee
                            $YQ = $value['YQ']; //Fuel Surcharge
                            $AGST = $value['AGST']; //Airline GST Component
                            $MFT = $value['MFT']; //Management Fee Tax
                            $OT = $value['OT']; //Other Charges
                            $YR = $value['YR'];
                            $other = $MF + $YQ + $AGST + $MFT + $OT + $YR;
                            $PBaseFare = $value['BaseFare'];
                            $CommEarned = $value['CommEarned'];
                            $intGTXMarkUp = $value['intGTXMarkUp'];
                            $GTXMarkUpGST = $value['GTXMarkUpGST'];
                            $apiMarkup = $value['apiMarkup'];
                            $FixedMarkUp = $value['FixedMarkUp'];
                            $intTotalGST = $value['intTotalGST'];
                            $IntCommission = $value['IntCommission'];
                            $CommissionEarned = $value['CommissionEarned'];
                            $OtherCharges = isset($value['OtherCharges']) ? $value['OtherCharges'] : 0;
                            $customerDiscount = ($CommissionEarned - $IntCommission);
                            $PassengerType = $value['PassengerType'];
                            $PassengerCount = $value['PassengerCount'];
                            $otherCharge = (($YQ + $AGST + $MFT + $MF + $OT + $YR + $intGTXMarkUp + $GTXMarkUpGST + $OtherCharges) - ($customerDiscount));
                            $TaxesFees = ($otherCharge + $intTotalGST + $FixedMarkUp + $apiMarkup);
                            $TotalBaseFare += ($PBaseFare);
                            $TotalTaxsandFees += ($TaxesFees);
                        }
                    }
                    // echo "<pre>";
                    // print_r($Data['FairRules']);
                    // echo "</pre>";
                    foreach ($Data['Segments'] as $seg) {
                        $SegmentsArr[] = $seg;
                    }
                }
            }

            $BagPrice = 0;
            $InbBagPrice = 0;
            $MealPrice = 0;
            $InbMealPrice = 0;
            $SeatPrice = 0;
            if ($SelectedBaggSessionNew) {
                foreach ($SelectedBaggSessionNew as $values) {
                    foreach ($values as $val) {
                        $BagPrice += $val['Price'];
                    }
                }
            }
            if ($SelectedMealSessionNew) {
                foreach ($SelectedMealSessionNew as $values) {
                    foreach ($values as $val) {
                        $MealPrice += $val['Price'];
                    }
                }
            }
            if ($selectedSeatSession) {
                foreach ($selectedSeatSession as $values) {
                    foreach ($values as $val) {
                        $SeatPrice += $val['amount'];
                    }
                }
            }
            $MealFare = ($MealPrice + $InbMealPrice);
            $BaggFare = ($BagPrice + $InbBagPrice);

            $intPublishFareNew = ($TotalBaseFare + $TotalExtraMarkUpSum + $TotalTaxsandFees + $MealFare + $BaggFare + $SeatPrice - $TotalDiscountValueSum);
            $this->view->SegmentsArr = $SegmentsArr;


            $arrPaxCount = array(
                'intAdultsCount'   => $adultCount,
                'intChildCount' => $childCount,
                'intInfantCount'  =>  $infantCount
            );
            $this->view->arrPaxCount = $arrPaxCount;

            if (!empty($intCustomerSysId)) {
                $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
                $this->view->arrTrevllerDetails = $arrTrevllerDetails;
                if (isset($intCustomerSysId) && !empty($intCustomerSysId) && $intCustomerSysId > 0) {
                    $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
                    $customerDetsils = $this->_crmcustomerObj->GetAgencyCustomerById($intCustomerSysId);
                    $this->view->customerDetsils = $customerDetsils;
                }
            }
            $this->view->leadCustEmailIdSelf = $customerDetsils['EmailId'];
            // echo "<pre>";
            // print_r($AgencyBaseCurrency);
            // echo "<pre>";
            // print_r($arrAgencyDetails);
            // die;
            $arrPriceAndMarkups = array(
                "intAgentMarkUpAmount" => 0,
                "intAgencyMarkUpAmount" => ($FixedMarkUp - $GSTOnMarkUp) + $AgentsCustomMarkUp,
                "intGTXMarkUpAmount" => $intGTXMarkUpForStringData,
                "intTotalAmount" => $intPublishFareNew,
                "intTax" => 0,
                "GTXServiceTaxAmount" => 0,
                "AgentServiceTaxAmount" => $GSTOnMarkUp + $AgentsCustomServiceTaxAmount,
                "AgentsCustomServiceTaxAmount" => "0",
                "Pax" => $intTatalPaxCTForMarkUp,
                "SupplierSourceStr" => "API",
                "MarketPlaceId" => "1",
                "TotalDiscount" => 0,
                "CurrencyType" => 1
            );

            //echo "<pre>";print_r($arrPriceAndMarkups); IsCardChrgToCustomer
            $strPriceAndMarkups = json_encode($arrPriceAndMarkups);
            $this->view->stringData = $strStringData = $this->getEnc($strPriceAndMarkups);
            $IsPaymentGateway = !empty($arrAgencyDetails['IsPaymentGateway']) ? $arrAgencyDetails['IsPaymentGateway'] : 0;
            $IsCheckWallet = !empty($arrAgencyDetails['IsCheckWallet']) ? $arrAgencyDetails['IsCheckWallet'] : 0;
            if ($IsPaymentGateway == true && $IsCheckWallet == true) {
                $this->view->strPayWithPaymentGatewayUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay-by-agency";
            } else {
                //$this->view->strPayWithPaymentGatewayUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay";
                $this->view->strPayWithPaymentGatewayUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay-by-agency";
            }
            $this->view->TPSysId = $TPSysId = $intTPSysId;
            $this->view->intPlanType = "1";
            $this->view->strTrxType = "A";
            $this->view->strReturnURL = "/flight-proposal/book-proposal-flight-new/data/" . $data . '/id/' . $traceID;
            $this->view->strErrorURL = "/flight-proposal/view-flight-proposal-payment/data/" . $data . '/id/' . $traceID;
            $this->view->intLoggedinAgencySysId = $AgencySysId;
            $this->view->IsCardChrgToCustomer = 1;
            $this->view->intLoggedinUserAgencySysId = $AgentSysId;
            $this->view->intPublishFare = ceil($intPublishFareNew);
            $this->view->intPublishFareNew = $intPublishFareNew;
            $this->view->Symbol = !empty($arrAgencyDetails['Symbol']) ? $arrAgencyDetails['Symbol'] : '';

            $this->view->guid = $this->GUID();
            $this->view->walletCode = $this->walletCode($AgentSysId, $this->view->guid, ceil($intPublishFareNew), $AgencySysId, $TPSysId, $intCustomerSysId, $strStringData);
            $this->view->securecode = $this->secureCode($AgencySysId, $this->view->guid);
        } else {
        }
    }
    public function bookProposalFlightNewAction()
    {
        $post = $this->getRequest()->getPost();
        $strTrxStatus = $this->view->strTrxStatus = !empty($this->getRequest()->getParam('status')) ? $this->getRequest()->getParam('status') : '';
        $TrxSysId = $this->view->TrxSysId = $this->getRequest()->getParam('TrxSysId');
        $TPSysId = $this->view->TPSysId = $this->getRequest()->getParam('TPSysId');
        $guid = $this->view->guid = $this->getRequest()->getParam('guid');
        $objFlight = new Travel_Model_TblFlight();
        $objAgency = new Travel_Model_TblAgency();
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
        $traceID  = $SearchTraceId = $this->view->traceID = ($this->_request->getParam('id'));
        $data  = $this->view->data = ($this->_request->getParam('data'));
        $FlightTempData = $objFlight->GetFlightTempData($data);
        $arrUrlData = json_decode($FlightTempData['APIBookingData'], true);
        $FlightBookingData = $this->view->FlightBookingData = $arrUrlData['intOutBoundId'];
        $SelectedBaggSessionNew = $this->view->SelectedBaggSessionNew = $arrUrlData['SelectedBaggSessionNew'];
        $SelectedMealSessionNew = $this->view->SelectedMealSessionNew = $arrUrlData['SelectedMealSessionNew'];
        $selectedSeatSession = $this->view->selectedSeatSession = $arrUrlData['selectedSeatSession'];
        $ForCustomerSession = $this->view->ForCustomerSession = $arrUrlData['ForCustomerSession'];
        $intCustomerSysId = $this->view->intCustomerSysId = $arrUrlData['intCustomerSysId'];
        $intTPSysId = $this->view->intCustomerSysId = $arrUrlData['intTPSysId'];
        $arrIntTpAirId = $this->view->arrIntTpAirId = $arrUrlData['arrIntTpAirId'];
        $IsTripjack = $this->view->IsTripjack = $arrUrlData['IsTripjack'];
        $AirInvenSysIdArr = $arrUrlData['AirInvenSysIdArr'];
        $apiTraceId = $arrUrlData['apiTraceId'];
        $sessionFlightSearchParams = $arrUrlData['sessionFlightSearchParams'];
        $param = $this->getRequest()->getParams();
        $leadId     = $sessionFlightSearchParams['editLeadId'];
        $route     = $sessionFlightSearchParams['route'];
        $bookingAllowed     = $sessionFlightSearchParams['bookingAllowed'];
        $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId);
        $AgencySysId = $this->view->AgencySysId = $arrAgencyDetails['AgencySysId'];
        $AgentSysId = $arrAgencyDetails['AgentSysId'];
        $arrAgencyDetails = $objAgency->getAgencyDataById($AgencySysId);
        $AgencyBaseCurrency = $arrAgencyDetails['TrxCurrency'];
        $strFilePath = "flight/bookproposal/" . date('Y-m-d-H-i-s') . "_payment_response.json";
        Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, json_encode($post));
        $IsSeriesFareData = isset($FlightBookingData[0]['IsSeriesFareData']) ? $FlightBookingData[0]['IsSeriesFareData'] : 0;
        $ICSourceSysId = isset($FlightBookingData[0]['ICSourceSysId']) ? $FlightBookingData[0]['ICSourceSysId'] : 0;
        $EmailId = isset($ForCustomerSession[0]['EmailId']) ? $ForCustomerSession[0]['EmailId'] : 0;
        $Contacts = isset($ForCustomerSession[0]['Contacts']) ? $ForCustomerSession[0]['Contacts'] : 0;
        $isgstapply = isset($ForCustomerSession[0]['isgstapply']) ? $ForCustomerSession[0]['isgstapply'] : 0;
        $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
        $MasterTPSysId = isset($travelPlanDetais[0]['MasterTPSysId']) ? $travelPlanDetais[0]['MasterTPSysId'] : 0;
        // if ($arrAgencyDetails['IsPaymentGateway'] == '0' && $arrAgencyDetails['IsCheckWallet'] == '0') {
        //     echo 'ook';
        // }

        $isagencySession = new Zend_Session_Namespace('isagencySession');
        $isagency = isset($isagencySession->params) ? $isagencySession->params : 0;
        if ($isagency == 1) {
            $arrUrlData['GUIDPost'] = $post['GUID'];
            $TrxSysId = $this->addCustomerTrx($TPSysId, $arrUrlData);
        }



        if ($strTrxStatus == "success") {

            $crmcustomerObj = new Travel_Model_CRM_Customer();
            $arrAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
            $LoggedinUserEmailId = $arrAgencyDetail['PrimaryEmail'];
            $objFlight = new Travel_Model_TblFlight();
            $this->paymentMdl = new Payment_Model_Payment();

            $GetBookingAmountData = $objFlight->GetBookingAmountData($AgencySysId, $arrIntTpAirId);
            $wallet = $this->paymentMdl->getDetailsByUniqueId("TB_Agency_Wallet", "AgencySysId", $AgencySysId);

            if (isset($IsSeriesFareData) && $IsSeriesFareData == 1 && $route == 1) {
                $arrAgentDetail = $this->_crmcusttravelplan->getAgentDetails($AgencySysId);
                $SecurityKey = $arrAgentDetail['SecurityKey'];
                Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->CheckSoldInventory($FlightBookingData[0]['bookingId'], $SecurityKey);
            }
            if (isset($IsSeriesFareData) && $IsSeriesFareData == 1 && $route == 2 && isset($FlightBookingData[1]['bookingId'])) {
                $arrAgentDetail = $this->_crmcusttravelplan->getAgentDetails($AgencySysId);
                $SecurityKey = $arrAgentDetail['SecurityKey'];
                Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->CheckSoldInventory($FlightBookingData[1]['bookingId'], $SecurityKey);
            }


            $GSTTYPE = ($arrAgencyDetails['TaxLabelId'] == 1) ? '18' : '5';
            $SecurityKey = isset($arrAgencyDetails['SecurityKey']) ? $arrAgencyDetails['SecurityKey'] : 1;
            $CurrencyType = isset($FlightBookingData[0]['CurrencyType']) ? $FlightBookingData[0]['CurrencyType'] : 1;

            // echo "<pre>";
            // print_r($arrAgencyDetails);
            // echo "<pre>";
            // die;

            $TaxTotal = 0;
            $CostTotal = 0;
            $MarkupTotal = 0;
            $TotalCostTotal = 0;
            $PublishedFare = 0;
            $misxItems_name = [];
            if ($FlightBookingData) {
                foreach ($FlightBookingData as $k => $value) {

                    $TotalCostTotal += $value['FairRules']['PublishedFare'];
                    if ($value['FairRules']['FareBreakdown']) {
                        foreach ($value['FairRules']['FareBreakdown'] as $kb => $breack) {
                            $BaseFare_ = $breack['BaseFare'];
                            $FixedMarkUp_ = $breack['FixedMarkUp'];
                            $GSTOnMarkUp_ = $breack['GSTOnMarkUp'];
                            $TaxTotal += $GSTOnMarkUp_;
                            $CostTotal += $BaseFare_;
                            $MarkupTotal += $FixedMarkUp_;
                        }
                    }
                    $PublishedFare__ = isset($value['FairRules']['PublishedFare']) ? $value['FairRules']['PublishedFare'] : 0;
                    $FixedMarkUp__ = isset($value['FairRules']['FixedMarkUp']) ? $value['FairRules']['FixedMarkUp'] : 0;
                    $GSTOnMarkUp__ = isset($value['FairRules']['GSTOnMarkUp']) ? $value['FairRules']['GSTOnMarkUp'] : 0;
                    $SourceAirportCode = $value['SourceAirportCode'];
                    $DestAirportCode = $value['DestAirportCode'];
                    $FlightNumber = $value['FlightNumber'];
                    $AirlineName = $value['AirlineName'];

                    $Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;

                    $TotalFare = ($PublishedFare__ - $FixedMarkUp__ - $GSTOnMarkUp__);
                    $TotalAmount = $PublishedFare__;
                    $SubTotal = ($PublishedFare__ - $GSTOnMarkUp__);
                    $TotalGST = ($GSTOnMarkUp__);
                    $TotalFixedMarkUp = $FixedMarkUp__;
                    $TotalcouponVal = 0;

                    $PublishedFare += $PublishedFare__;
                    $misxItems_name[] = [
                        'AgencySysId' => $AgencySysId,
                        'AgentSysId' => $AgentSysId,
                        'MisxItems_name' => 'Flight',
                        'Description' => $Description,
                        'ItemQty' => 1,
                        'ItemRates' => ($TotalFare),
                        'Total' => $TotalFare,
                        'DiscountType' => $TotalcouponVal,
                        'Discount' => 1,
                        'TotalDiscount' => $TotalcouponVal,
                        'TotalAmount' => $TotalAmount,
                        'MarkupType' => '',
                        'Markup' => $TotalFixedMarkUp,
                        'TotalMarkup' => $TotalFixedMarkUp,
                        'SubTotal' => $SubTotal,
                        'ServiceFeeTotal' => 0,
                        'GSTPercentage' => '18',
                        'TotalGST' => $TotalGST,
                        'SGST' => ($TotalGST / 2),
                        'CGST' => ($TotalGST / 2),
                        'IGST' => $TotalGST,
                        'ItemsSACCode' => '',
                    ];
                }
            }
            $BagPrice = 0;
            $MealPrice = 0;
            $SeatPrice = 0;
            if ($SelectedBaggSessionNew) {
                foreach ($SelectedBaggSessionNew as $values) {
                    foreach ($values as $val) {
                        $BagPrice += $val['Price'];
                    }
                }
            }
            if ($SelectedMealSessionNew) {
                foreach ($SelectedMealSessionNew as $values) {
                    foreach ($values as $val) {
                        $MealPrice += $val['Price'];
                    }
                }
            }
            if ($selectedSeatSession) {
                foreach ($selectedSeatSession as $values) {
                    foreach ($values as $val) {
                        $SeatPrice += $val['amount'];
                    }
                }
            }
            $agencyMarkUpGST = $TaxTotal;
            $TotalDiscount = 0;
            $PublishedFare = ($PublishedFare + $BagPrice + $MealPrice + $SeatPrice);
            $TotalInvoiceValue = ($PublishedFare - $agencyMarkUpGST);

            $itemCount = count($misxItems_name);
            if (!empty($BagPrice)) {
                $misxItems_name[$itemCount] = array(
                    'MisxItems_name' => 'Add ons',
                    'Description' => 'Baggage',
                    'ItemQty' => 1,
                    'ItemRates' => ($BagPrice),
                    'Total' => $BagPrice,
                    'DiscountType' => 0,
                    'Discount' => 0,
                    'TotalDiscount' => 0,
                    'TotalAmount' => 0,
                    'MarkupType' => '',
                    'Markup' => 0,
                    'TotalMarkup' => 0,
                    'SubTotal' => $BagPrice,
                    'ServiceFeeTotal' => 0,
                    'GSTPercentage' => 0,
                    'TotalGST' => 0,
                    'SGST' => 0,
                    'CGST' => 0,
                    'IGST' => 0,
                    'ItemsSACCode' => '',
                );
            }
            $itemCount = count($misxItems_name);
            if (!empty($MealPrice)) {
                $misxItems_name[$itemCount] = array(
                    'MisxItems_name' => 'Add ons',
                    'Description' => 'Meal',
                    'ItemQty' => 1,
                    'ItemRates' => ($MealPrice),
                    'Total' => $MealPrice,
                    'DiscountType' => 0,
                    'Discount' => 0,
                    'TotalDiscount' => 0,
                    'TotalAmount' => 0,
                    'MarkupType' => '',
                    'Markup' => 0,
                    'TotalMarkup' => 0,
                    'SubTotal' => $MealPrice,
                    'ServiceFeeTotal' => 0,
                    'GSTPercentage' => 0,
                    'TotalGST' => 0,
                    'SGST' => 0,
                    'CGST' => 0,
                    'IGST' => 0,
                    'ItemsSACCode' => '',
                );
            }
            $itemCount = count($misxItems_name);
            if (!empty($SeatPrice)) {
                $misxItems_name[$itemCount] = array(
                    'MisxItems_name' => 'Add ons',
                    'Description' => 'Seat',
                    'ItemQty' => 1,
                    'ItemRates' => ($SeatPrice),
                    'Total' => $SeatPrice,
                    'DiscountType' => 0,
                    'Discount' => 0,
                    'TotalDiscount' => 0,
                    'TotalAmount' => 0,
                    'MarkupType' => '',
                    'Markup' => 0,
                    'TotalMarkup' => 0,
                    'SubTotal' => $SeatPrice,
                    'ServiceFeeTotal' => 0,
                    'GSTPercentage' => 0,
                    'TotalGST' => 0,
                    'SGST' => 0,
                    'CGST' => 0,
                    'IGST' => 0,
                    'ItemsSACCode' => '',
                );
            }
            $Invoicedata = [
                'AgentSysId' => $AgencySysId,
                'CustomerSysId' => $intCustomerSysId,
                'TPSysId' => $intTPSysId,
                'MasterTPSysId' => $MasterTPSysId,
                'ProposalID' => $intTPSysId . '/V1',
                'InvoiceDate' => date('Y-m-d'),
                'isDisplayMarkup' => true,
                'PaymentDueDate' => date('Y-m-d'),
                'PaymentDate' => date('Y-m-d'),
                'ClientGST' => $isgstapply,
                'ClientGSTNumber' => '',
                'Currency' => 1,
                'TotalInvoiceValue' => $TotalInvoiceValue,
                'InvoiceStatus' => true,
                'TotalCGST' => ($agencyMarkUpGST / 2),
                'TotalSGST' => ($agencyMarkUpGST / 2),
                'TotalIGST' => $agencyMarkUpGST,
                'SumdiscountItem' => 0,
                'OtherDiscount' => $TotalDiscount,
                'otherDiscountVal' => $TotalDiscount,
                'TotalAdvance' => $PublishedFare,
                'TotalDueAmount' => 0,
                'InvoiceValue' => $PublishedFare,
                'notes' => 'Flight Ticket',
                'termsandcondition' => '',
                'client_state' => '',
                'Advance' => 0,
                'PaymentType' => 4,
                'paymentNote' => 'Online',
                'misxItems_name' => $misxItems_name,

            ];

            $addonFlightData = array(
                'AgencySysId' => $AgencySysId,
                'TPSysId' => $intTPSysId,
                'CustomerSysId' => $intCustomerSysId,
                'CurrencyType' => $CurrencyType,
                'GSTTYPE' => $GSTTYPE,
                'ServiceTitle' => 'Flight',
                'Tax' => $TaxTotal,
                'Cost' => ($TotalCostTotal - $TaxTotal - $MarkupTotal),
                'Markup' => $MarkupTotal,
                'TotalCost' => $TotalCostTotal,
            );

            $this->ExtraAddAddons($addonFlightData);
            if ($BagPrice && $BagPrice > 0) {
                $addonFlightData = array(
                    'AgencySysId' => $AgencySysId,
                    'TPSysId' => $intTPSysId,
                    'CustomerSysId' => $intCustomerSysId,
                    'CurrencyType' => $CurrencyType,
                    'GSTTYPE' => $GSTTYPE,
                    'ServiceTitle' => 'Baggage',
                    'Tax' => 0,
                    'Cost' => ($BagPrice),
                    'Markup' => 0,
                    'TotalCost' => $BagPrice,
                );
                $this->ExtraAddAddons($addonFlightData);
            }
            if ($MealPrice && $MealPrice > 0) {
                $addonFlightData = array(
                    'AgencySysId' => $AgencySysId,
                    'TPSysId' => $intTPSysId,
                    'CustomerSysId' => $intCustomerSysId,
                    'CurrencyType' => $CurrencyType,
                    'GSTTYPE' => $GSTTYPE,
                    'ServiceTitle' => 'Meal',
                    'Tax' => 0,
                    'Cost' => ($MealPrice),
                    'Markup' => 0,
                    'TotalCost' => $MealPrice,
                );
                $this->ExtraAddAddons($addonFlightData);
            }
            if ($SeatPrice && $SeatPrice > 0) {
                $addonFlightData = array(
                    'AgencySysId' => $AgencySysId,
                    'TPSysId' => $intTPSysId,
                    'CustomerSysId' => $intCustomerSysId,
                    'CurrencyType' => $CurrencyType,
                    'GSTTYPE' => $GSTTYPE,
                    'ServiceTitle' => 'Seat',
                    'Tax' => 0,
                    'Cost' => ($SeatPrice),
                    'Markup' => 0,
                    'TotalCost' => $SeatPrice,
                );
                $this->ExtraAddAddons($addonFlightData);
            }

            // Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->InvoiceCreate($Invoicedata, $FlightBookingData, $SecurityKey, $AgencySysId);
            // echo "<pre>";
            // print_r($Invoicedata);
            // echo "<pre>";
            // echo "<pre>";
            // print_r($ForCustomerSession);
            // echo "<pre>";
            // die;

            if (!empty($intCustomerSysId)) {
                $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            }
            $BookingdataAPI = array(
                'FlightBookingData' => $FlightBookingData,
                'IsInternational' => $FlightBookingData[0]['IsInternational'],
                'CustomerSession' => $arrTrevllerDetails,
                'SelectedBaggSessionNew' => $SelectedBaggSessionNew,
                'SelectedMealSessionNew' => $SelectedMealSessionNew,
                'selectedSeatSession' => $selectedSeatSession,
                'sessionFlightSearchParams' => $sessionFlightSearchParams,
            );
            if ($IsSeriesFareData == 1) {
                $Bookres = [
                    'status' => array('success' => true),
                ];
            } elseif ($ICSourceSysId != 3 && $bookingAllowed == 1) {
                $Bookres = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->apiFlightTicketTripJack($BookingdataAPI, $AgencySysId);
            } elseif ($bookingAllowed == 1) { //// TBO booking
                $IsLCC = false;
                if ($FlightBookingData) {
                    $arrTrevllerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId);
                    $TravelArray = [];
                    if ($arrTrevllerList) {
                        foreach ($arrTrevllerList as $KT => $travel) {
                            $TravelArray[$travel['IsReturn']][$KT] = $travel;
                        }
                    }
                    $TrevllerList = array_map('array_values', $TravelArray);
                    $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
                    $FlightBookingTicketArr = [];
                    $$PassengerArray = [];
                    $$responseReturn = [];
                    $$FlightBookingTicketArr = [];

                    foreach ($FlightBookingData as $k => $value) {

                        $TPintSysId = isset($arrIntTpAirId[$k]) ? $arrIntTpAirId[$k] : 0;
                        $checkNonLccBooking = $objFlight->checkNonLccBooking($TPintSysId);
                        $APIBookingRes__ = isset($checkNonLccBooking['APIBookingRes']) ? json_decode($checkNonLccBooking['APIBookingRes'], true) : [];
                        $IsBookingStatus = isset($checkNonLccBooking['IsBookingStatus']) ? $checkNonLccBooking['IsBookingStatus'] : 0;

                        $BookingdataAPI = array(
                            'FlightBookingData' => $value,
                            'IsInternational' => $FlightBookingData[0]['IsInternational'],
                            'CustomerSession' => $arrTrevllerDetails,
                            'ForCustomerSession' => $ForCustomerSession,
                            'SelectedBaggSessionNew' => $SelectedBaggSessionNew,
                            'SelectedMealSessionNew' => $SelectedMealSessionNew,
                            'selectedSeatSession' => $selectedSeatSession,
                            'sessionFlightSearchParams' => $sessionFlightSearchParams,
                        );


                        if ($value['IsLCC'] == 1) {
                            $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->apiFlightTicket($BookingdataAPI, $AgencySysId);
                        } else {
                            $IsLCC = false;
                            $API_Response_Ticket = $APIBookingRes__['response'];
                            $apiTraceId = isset($API_Response_Ticket['Response']['TraceId']) ? $API_Response_Ticket['Response']['TraceId'] : '0';
                            $strBookingIdLCC = isset($API_Response_Ticket['Response']['Response']['BookingId']) ? $API_Response_Ticket['Response']['Response']['BookingId'] : '';
                            $strTicketPNRLCC = isset($API_Response_Ticket['Response']['Response']['PNR']) ? $API_Response_Ticket['Response']['Response']['PNR'] : '';

                            $dataTicket = [
                                "TraceId" => $apiTraceId,
                                "PNR" => $strTicketPNRLCC,
                                "BookingId" => $strBookingIdLCC,
                                "FlightBookingData" => $value,
                            ];

                            $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->generateNonLccTicket($dataTicket, $AgencySysId);
                            //$response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->apiFlightBooking($BookingdataAPI, $AgencySysId);
                        }
                        // $apiFlightTicket = new Zend_Session_Namespace('apiFlightTicket');
                        // $response = $apiFlightTicket->params;
                        // echo "<pre>";
                        // print_r($response);
                        // echo "<pre>";
                        // die;
                        $FlightBookingTicketArr[$k] = $response;
                        $ResponseStatus = isset($response['Response']['ResponseStatus']) ? $response['Response']['ResponseStatus'] : '0';
                        $apiTraceId = isset($response['Response']['TraceId']) ? $response['Response']['TraceId'] : '0';
                        $ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
                        $ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
                        $strBookingIdLCC = isset($response['Response']['Response']['BookingId']) ? $response['Response']['Response']['BookingId'] : '';
                        $strTicketPNRLCC = isset($response['Response']['Response']['PNR']) ? $response['Response']['Response']['PNR'] : '';
                        $Passenger = $PassengerArray[] = isset($response['Response']['Response']['FlightItinerary']['Passenger']) ? $response['Response']['Response']['FlightItinerary']['Passenger'] : '';
                        $statusType = 1;
                        if ($ResponseStatus == 1) {
                            Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->InvoiceCreate($Invoicedata, $FlightBookingData, $SecurityKey, $AgencySysId);
                            // $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '123'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED
                            $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '104', 'PaymentStatus'=>130,'BookingStatus'=>142), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED
                            $TPintSysId = $arrIntTpAirId[$k];
                            $responseArray = array(
                                'value' => $value,
                                'response' => $response
                            );
                            $data = array(
                                "AirlineRefPNR" => $strTicketPNRLCC,
                                "XRefBookingId" => $strBookingIdLCC,
                                "APIBookingRes" => json_encode($responseArray),
                                "XRefPNR" => 1,
                                "IsBookingStatus" => 1
                            );

                            $objFlight->updateBookingDetails($data, $TPintSysId); // FOR BOOKING CONFIRMED

                            if (isset($TrevllerList[$k]) && !empty($TrevllerList[$k]) && $ResponseStatus == 1) {
                                foreach ($TrevllerList[$k] as $key => $value) {
                                    $pax = $Passenger[$key];
                                    $TicketId = $pax['Ticket']['TicketId'];
                                    $TicketNumber = $pax['Ticket']['TicketNumber'];
                                    $data = array(
                                        "TicketId" => !empty($TicketId) ? $TicketId : '',
                                        "TicketNumber" => $TicketNumber,
                                        "TicketFullJson" => json_encode($pax)
                                    );
                                    $objFlight->updateTravelPlanPax($data, $value['TPPaxSysId']); // FOR TRAVELLERS DETAILS CONFIRMED
                                }
                            }
                            $responseReturn[$k] = array('success' => true, 'message' => $ErrorMessage, 'IsLCC' => $value['IsLCC']);
                        } else {
                            $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '7'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING Fail
                            $TPintSysId = $arrIntTpAirId[$k];
                            $responseArray = array(
                                'value' => $value,
                                'response' => $response
                            );
                            $data = array(
                                "AirlineRefPNR" => '',
                                "XRefBookingId" => $strBookingIdLCC,
                                "APIBookingRes" => json_encode($responseArray),
                                "XRefPNR" => '',
                                "IsBookingStatus" => 0
                            );
                            $objFlight->updateBookingDetails($data, $TPintSysId); // FOR BOOKING FAILED
                            $responseReturn[$k] = array('success' => false, 'message' => $ErrorMessage, 'IsLCC' => $value['IsLCC']);
                        }
                    }
                    $arrData['customerSysId']   = $intCustomerSysId;
                    $arrData['TPSysId']         = $TPSysId;
                    $arrData['guid']            = $guid;
                    $arrData['TrxSysId']        = $TrxSysId;
                    $arrData['intOutBoundId']   = $FlightBookingData;
                    $arrData['intInBoundId']    = '';
                    $arrData['tripType']        = 1;
                    $arrData['arrBookingResponse']   = json_encode($FlightBookingTicketArr);
                    $arrData['intTPSysId']      = $intTPSysId;
                    $arrData['arrIntTpAirId']   = $arrIntTpAirId;
                    $arrData['sessionFlightSearchParams']   = $sessionFlightSearchParams;
                    $arrData['post']   = $post;
                    $arrData['ForCustomerSession']   = $ForCustomerSession;
                    $arrUrlData['responseReturn'] = $responseReturn;
                    $arrData['IsTripjack']   = false;
                    $tempData = array(
                        'TPSysId' => $intTPSysId,
                        'TraceId' => $SearchTraceId,
                        'APIBookingData' => json_encode($arrData),
                    );

                    $objFlight->deleteFlightTempData($SearchTraceId);
                    $objFlight->insertFlightTempData($tempData);
                    $this->_redirect('/flight-proposal/booking-confirmation/id/' . $SearchTraceId);
                    //$this->_helper->redirector('booking-confirmation/id/' . $SearchTraceId, 'flight-proposal', 'default');

                    $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                    $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/booking-confirmation");
                    echo json_encode($response);
                    exit;
                    $FlightBookingTicket = new Zend_Session_Namespace('FlightBookingTicket');
                    $FlightBookingTicket->params = $FlightBookingTicket;
                }
            }

            // $FlightBookingTicket = new Zend_Session_Namespace('FlightBookingTicket');
            // $Bookres = $FlightBookingTicket->params;

            if ($FlightBookingData) {
                foreach ($FlightBookingData as $k => $flightRounds) {
                    $ExtraMarkup = ($flightRounds['FairRules']['ExtraMarkup']) ? $flightRounds['FairRules']['ExtraMarkup'] : 0;
                    $ExtraMarkupOnGST = ($flightRounds['FairRules']['ExtraMarkupOnGST']) ? $flightRounds['FairRules']['ExtraMarkupOnGST'] : 0;
                    $intPublishedFare = ($flightRounds['FairRules']['PublishedFare'] + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                    //$intOfferedFare = ($flightRounds['FairRules']['OfferedFare'] + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                    $intCommissionEarned = $flightRounds['FairRules']['CommEarned'];
                    $intPLBEarned = $flightRounds['FairRules']['PLBEarned'];
                    $intIncentiveEarned = $flightRounds['FairRules']['IncentiveEarned'];
                    $intGTXMarkUp = $flightRounds['FairRules']['intGTXMarkUp'];
                    $GTXMarkUpGST = $flightRounds['FairRules']['GTXMarkUpGST'];
                    $intAgencyFixMarkUp = $flightRounds['FairRules']['FixedMarkUp'];
                    $apiMarkup = ($flightRounds['FairRules']['apiMarkup']) ? $flightRounds['FairRules']['apiMarkup'] : 0;
                    $intTotalGST = ($flightRounds['FairRules']['intTotalGST']) ? $flightRounds['FairRules']['intTotalGST'] : 0;
                    $BaseAmount = 0;
                    $AgentServiceTaxAmount = 0;
                    if ($flightRounds['FairRules']['FareBreakdown']) {
                        foreach ($flightRounds['FairRules']['FareBreakdown'] as $key => $value) {
                            $Segments = $flightRounds['Segments'];
                            $SeatPriceSeg = 0;
                            $MealPriceSeg = 0;
                            $BagPriceSeg = 0;
                            foreach ($Segments as $seg) {
                                $segmentid = $seg['segmentid'];
                                $SelectedBagg = isset($SelectedBaggSessionNew[$segmentid]) ? $SelectedBaggSessionNew[$segmentid] : [];
                                $SelectedMeal = isset($SelectedMealSessionNew[$segmentid]) ? $SelectedMealSessionNew[$segmentid] : [];
                                $SelectedSeat = isset($selectedSeatSession[$segmentid]) ? $selectedSeatSession[$segmentid] : [];
                                if (!empty($SelectedSeat)) {
                                    foreach ($SelectedSeat as $val) {
                                        $SeatPriceSeg += $val['amount'];
                                    }
                                }
                                if (!empty($SelectedMeal)) {
                                    foreach ($SelectedMeal as $val) {
                                        $MealPriceSeg += $val['Price'];
                                    }
                                }
                                if (!empty($SelectedBagg)) {
                                    foreach ($SelectedBagg as $val) {
                                        $BagPriceSeg += $val['Price'];
                                    }
                                }
                            }
                            //////////////////////////////////
                            $IntCommission_ = $value['IntCommission'];
                            $CommissionEarned_ = $value['CommissionEarned'];
                            $PBaseFare_ = $value['BaseFare'];
                            $MF = $value['MF']; //Management Fee
                            $YQ = $value['YQ']; //Fuel Surcharge
                            $AGST = $value['AGST']; //Airline GST Component
                            $MFT = $value['MFT']; //Management Fee Tax
                            $OT = $value['OT']; //Other Charges
                            $MU = $value['MU']; //Markup
                            $YR = $value['YR']; //Carrier Misc Fee
                            $otherCharge_ = ($YQ + $AGST + $MFT + $MF + $OT + $YR);
                            $FixedMarkUp_ = $value['FixedMarkUp'];
                            $GSTOnMarkUp = $value['GSTOnMarkUp'];
                            $intGTXMarkUp_ = $value['intGTXMarkUp'];
                            $GTXMarkUpGST_ = $value['GTXMarkUpGST'];
                            $intTotalGST_ = $value['intTotalGST'];
                            $apiMarkup_ = $value['apiMarkup'];
                            $CommEarned_ = $value['CommEarned'];
                            $customerDiscount_ = ($CommissionEarned_ - $IntCommission_);

                            $GrandTotalBaseFare = (($PBaseFare_ - $CommEarned_ + $otherCharge_ + $FixedMarkUp_ + $apiMarkup_ + $intGTXMarkUp_ + $GTXMarkUpGST_) - $customerDiscount_);
                            $BaseAmount += $GrandTotalBaseFare;

                            $AgentServiceTaxAmount += $intTotalGST_;
                        }
                    }
                }
            }
            $TotalExtraCharge = ($ExtraMarkup + $ExtraMarkupOnGST);
            $intOfferedFare = ($BaseAmount + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
            $totalCost = ($intPublishedFare);


            // echo "<pre>";
            // print_r($Bookres);
            // echo "<pre>";
            // die;
            $BookStatus = isset($Bookres['status']['success']) ? $Bookres['status']['success'] : 0;
            $BookErrorMessage = isset($Bookres['errors'][0]['message']) ? $Bookres['errors'][0]['message'] : 0;
            $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
            $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
            $arrTrevllerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId);
            if ($BookStatus == 1 && $bookingAllowed == 1) {

                $modelAgency = new Travel_Model_TblAgencyCustomerTrx();
                $modelAgency->updateFirstEntryInBalanceSheet($intTPSysId, $AgencySysId);
                $modelAgency->updateSecondEntryInBalanceSheet($intTPSysId, $AgencySysId, $TrxSysId, $intPublishedFare);

                Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->InvoiceCreate($Invoicedata, $FlightBookingData, $SecurityKey, $AgencySysId);
                $objTrx = new Travel_Model_TblAgencyCustomerTrx();
                //    comment By Prashant
                //    $strInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
                //    $data = array("InvoiceId" => $strInvoiceNumber);
                //    $objTrx->updateInvoiceNumber($data, $TrxSysId);
                //    $dataInvoice = [
                //        "AgencySysId" => $AgencySysId,
                //        "InvoiceNumber" => $strInvoiceNumber,
                //        "CreateDate" => date('Y-m-d H:i:s')
                //    ];
                //    $objTrx->insertInvoiceNumber($dataInvoice);

                if ($IsSeriesFareData == 1) {
                    $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->bookingDetailsSeriesFareNew($FlightBookingData, $ForCustomerSession);
                } else {
                    $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->bookingDetailsTripJack($Bookres, $AgencySysId);
                }

                $ResponseStatus = isset($response['status']['success']) ? $response['status']['success'] : '0';
                $strTicketPNRLCC = isset($response['itemInfos']['AIR']['travellerInfos'][0]['pnrDetails']) ? $response['itemInfos']['AIR']['travellerInfos'][0]['pnrDetails'] : '';
                $Passengers = isset($response['itemInfos']['AIR']['travellerInfos']) ? $response['itemInfos']['AIR']['travellerInfos'] : '';
                $strBookingIdLCC = isset($response['order']['bookingId']) ? $response['order']['bookingId'] : '0';
                $ErrorMessage = isset($response['errors'][0]['message']) ? $response['errors'][0]['message'] : '';
                $TicketId = [];
                if ($Passengers) {
                    foreach ($Passengers as $pax) {
                        $TicketId = implode('-', $pax['pnrDetails']);
                    }
                }
                $pnr = explode('-', $TicketId);
                if (count($pnr) > 2) {
                    $PNR_Number = $pnr[0] . '-' . $pnr[1];
                } else {
                    $PNR_Number = $pnr[0];
                }
                $SectorArray = [];
                // $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '123'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED
                $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '104', 'PaymentStatus'=>130,'BookingStatus'=>142), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED
                if ($FlightBookingData) {
                    foreach ($FlightBookingData as $k => $value) {
                        $SourceAirportCode = $value['SourceAirportCode'];
                        $DestAirportCode = $value['DestAirportCode'];
                        $SectorArray[] = $SourceAirportCode . '-' . $DestAirportCode;
                        if (isset($IsSeriesFareData) && $IsSeriesFareData == 1) {
                            $strBookingIdLCC = isset($response['order']['bookingId'][$k]) ? $response['order']['bookingId'][$k] : '0';
                            $PNR_Number = isset($pnr[$k]) ? $pnr[$k] : '';
                        }
                        // Booking details to transaction table...
                        $TPintSysId = $arrIntTpAirId[$k];
                        $responseArray = array(
                            'value' => $value,
                            'response' => $response
                        );
                        $data = array(
                            "AirlineRefPNR" => $PNR_Number,
                            "XRefBookingId" => $strBookingIdLCC,
                            "APIBookingRes" => json_encode($responseArray),
                            "XRefPNR" => 1,
                            "IsBookingStatus" => 1
                        );
                        $objFlight->updateBookingDetails($data, $TPintSysId); // FOR BOOKING CONFIRMED
                    }
                }
                $statusMap = [];
                $TicketId = [];
                $TicketNumber = [];
                if ($Passengers) {
                    foreach ($Passengers as $pax) {
                        $statusMap = implode('-', $pax['statusMap']);
                        $TicketId = implode('-', $pax['pnrDetails']);
                        $statusMap = implode('-', $pax['statusMap']);
                        $TicketNumber = isset($pax['ticketNumberDetails']) ? implode('-', $pax['ticketNumberDetails']) : '';
                    }
                }

                if (isset($arrTrevllerList) && !empty($arrTrevllerList) && $ResponseStatus == 1) {
                    foreach ($arrTrevllerList as $key => $value) {
                        if ($value['MemberSysId'] == 0) {
                            $CustomerSysId = $value['CustomerSysId'];
                            $IsAgencyCusTExist = $objFlight->GetCustomersById($CustomerSysId, $AgencySysId);
                        } else {
                            $MemberSysId = $value['MemberSysId'];
                            $IsAgencyCusTExist = $objFlight->GetCustomerMembersById($MemberSysId, $AgencySysId, $value['CustomerSysId']);
                        }
                        $FirstName = $IsAgencyCusTExist['FirstName'];
                        $LastName = $IsAgencyCusTExist['LastName'];
                        $paxType = $IsAgencyCusTExist['paxType'];
                        $Title = $IsAgencyCusTExist['Title'];
                        if ($paxType == 1) {
                            $CustomerTitle = $ARR_SALUTION[$Title];
                        } elseif ($paxType == 2) {
                            $CustomerTitle = $ARR_SALUTION_CHILD[$Title];
                        } else {
                            $CustomerTitle = $ARR_SALUTION_CHILD[$Title];
                        }
                        // $pax = $Passengers[$key];
                        // $TicketId = implode('-', $pax['pnrDetails']);
                        // $statusMap = implode('-', $pax['statusMap']);
                        // $TicketNumber = isset($pax['ticketNumberDetails']) ? implode('-', $pax['ticketNumberDetails']) : '';
                        $data = array(
                            "FirstName" => $FirstName,
                            "LastName" => $LastName,
                            "Title" => $CustomerTitle,
                            "Salutation" => $Title,
                            "Sectors" => implode(' ', $SectorArray),
                            "TicketId" => !empty($TicketId) ? $TicketId : '',
                            "TicketNumber" => $TicketNumber,
                            "TicketFullJson" => json_encode($Passengers)
                        );

                        $objFlight->updateTravelPlanPax($data, $value['TPPaxSysId']);
                    }
                }
                //echo "<pre>";print_r($FlightBookingData);die('d');
                $arrData['customerSysId']   = $intCustomerSysId;
                $arrData['TPSysId']         = $TPSysId;
                $arrData['guid']            = $guid;
                $arrData['TrxSysId']        = $TrxSysId;
                $arrData['intOutBoundId']   = $FlightBookingData;
                $arrData['intInBoundId']    = '';
                $arrData['tripType']        = 1;
                $arrData['arrBookingResponse']   = json_encode($response);
                $arrData['intTPSysId']      = $intTPSysId;
                $arrData['arrIntTpAirId']   = $arrIntTpAirId;
                $arrData['sessionFlightSearchParams']   = $sessionFlightSearchParams;
                $arrData['post']   = $post;
                $arrData['ForCustomerSession']   = $ForCustomerSession;
                $arrData['Invoicedata']   = $Invoicedata;
                $arrData['IsTripjack']   = true;
                $tempData = array(
                    'TraceId' => $SearchTraceId,
                    'APIBookingData' => json_encode($arrData),
                );

                $objFlight->deleteFlightTempData($SearchTraceId);
                $objFlight->insertFlightTempData($tempData);
                $this->_redirect('/flight-proposal/booking-confirmation/id/' . $SearchTraceId);
                //$this->_helper->redirector('booking-confirmation/id/' . $SearchTraceId, 'flight-proposal', 'default');

                $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/booking-confirmation");
                echo json_encode($response);
                exit;
            } else {

                if ($bookingAllowed == 2) {
                    $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '70', 'PaymentStatus'=>22,'BookingStatus'=>141), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED
                } else {
                    $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '7'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING Fail CAse
                }
                $SectorArray = [];
                // Booking details to transaction table...
                if ($FlightBookingData) {
                    foreach ($FlightBookingData as $k => $value) {
                        $SourceAirportCode = $value['SourceAirportCode'];
                        $DestAirportCode = $value['DestAirportCode'];
                        $SectorArray[] = $SourceAirportCode . '-' . $DestAirportCode;
                        // Booking details to transaction table...
                        $TPintSysId = $arrIntTpAirId[$k];
                        $responseArray = array(
                            'value' => $value,
                            'response' => $Bookres
                        );
                        $data = array(
                            "XRefBookingId" => '',
                            "APIBookingRes" => json_encode($responseArray),
                            "XRefPNR" => '',
                            "IsBookingStatus" => 0
                        );
                        if ($bookingAllowed == 2) {
                            $data = array(
                                "AirlineRefPNR" => '',
                                "XRefBookingId" => '',
                                "APIBookingRes" => json_encode($responseArray),
                                "XRefPNR" => 1,
                                "IsBookingStatus" => 1
                            );
                        }
                        $objFlight->updateBookingDetails($data, $TPintSysId); // FOR BOOKING FAILED
                    }
                }

                if (isset($arrTrevllerList) && !empty($arrTrevllerList)) {
                    $ARR_SALUTION = unserialize(ARR_SALUTION);
                    $ARR_SALUTION_CHILD = unserialize(ARR_SALUTION_CHILD);
                    foreach ($arrTrevllerList as $key => $value) {
                        if ($value['MemberSysId'] == 0) {
                            $CustomerSysId = $value['CustomerSysId'];
                            $IsAgencyCusTExist = $objFlight->GetCustomersById($CustomerSysId, $AgencySysId);
                        } else {
                            $MemberSysId = $value['MemberSysId'];
                            $IsAgencyCusTExist = $objFlight->GetCustomerMembersById($MemberSysId, $AgencySysId, $value['CustomerSysId']);
                        }
                        $FirstName = $IsAgencyCusTExist['FirstName'];
                        $LastName = $IsAgencyCusTExist['LastName'];
                        $paxType = $IsAgencyCusTExist['paxType'];
                        $Title = $IsAgencyCusTExist['Title'];
                        if ($paxType == 1) {
                            $CustomerTitle = $ARR_SALUTION[$Title];
                        } elseif ($paxType == 2) {
                            $CustomerTitle = $ARR_SALUTION_CHILD[$Title];
                        } else {
                            $CustomerTitle = $ARR_SALUTION_CHILD[$Title];
                        }

                        $data = array(
                            "FirstName" => $FirstName,
                            "LastName" => $LastName,
                            "Title" => $CustomerTitle,
                            "Salutation" => $Title,
                            "Sectors" => implode(' ', $SectorArray),
                            "TicketId" => '',
                            "TicketNumber" => '',
                            "TicketFullJson" => ''
                        );
                        $objFlight->updateTravelPlanPax($data, $value['TPPaxSysId']);
                    }
                }
                // echo '<pre>';
                // print_r($arrTrevllerList);

                // die('sabirrrr');
                // Proccess Refund Starts.......
                $arrData['customerSysId']   = $intCustomerSysId;
                $arrData['TPSysId']         = $TPSysId;
                $arrData['guid']            = $guid;
                $arrData['TrxSysId']        = $TrxSysId;
                $arrData['intOutBoundId']   = $FlightBookingData;
                $arrData['intInBoundId']    = 0;
                $arrData['outBoundIdForRefund']   = $FlightBookingData;
                $arrData['inBoundIdForRefund']    = 0;
                $arrData['arrBookingResponse']   = json_encode($Bookres);
                $arrData['intTPSysId']   = $intTPSysId;
                $arrData['arrIntTpAirId']   = $arrIntTpAirId;
                $arrData['AirInvenSysIdArr']   = $AirInvenSysIdArr;
                $arrData['sessionFlightSearchParams']   = $sessionFlightSearchParams;
                $arrData['ForCustomerSession']   = $ForCustomerSession;
                $arrData['Invoicedata']   = $Invoicedata;
                $arrData['post']   = $post;
                $arrData['IsTripjack']   = true;
                $tempData = array(
                    'TPSysId' => $intTPSysId,
                    'TraceId' => $SearchTraceId,
                    'APIBookingData' => json_encode($arrData),
                );

                $objFlight->deleteFlightTempData($SearchTraceId);
                $objFlight->insertFlightTempData($tempData);
                $this->_redirect('/flight-proposal/booking-confirmation/id/' . $SearchTraceId);
                //$this->_helper->redirector('booking-confirmation/id/' . $SearchTraceId, 'flight-proposal', 'default');

                $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                $response = array('success' => false, 'msg' => 'Error', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/process-refund");
                echo json_encode($response);
                exit;
            }
            // echo "<pre>";
            // print_r($BookingdataAPI);
            // echo "<pre>";
            // $objTrx = new Travel_Model_TblAgencyCustomerTrx();
            // $strInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
            // $data = array("InvoiceId" => $strInvoiceNumber);
            // $objTrx->updateInvoiceNumber($data, $TrxSysId);
        } elseif ($strTrxStatus == "failure") {
            $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
            $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
            $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '6'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING Fail CAse
            $arrData['customerSysId']   = $intCustomerSysId;
            $arrData['TPSysId']         = $TPSysId;
            $arrData['guid']            = $guid;
            $arrData['TrxSysId']        = $TrxSysId;
            $arrData['intOutBoundId']   = $FlightBookingData;
            $arrData['intInBoundId']    = 0;
            $arrData['outBoundIdForRefund']   = $FlightBookingData;
            $arrData['inBoundIdForRefund']    = 0;
            $arrData['arrBookingResponse']   = [];
            $arrData['intTPSysId']   = $intTPSysId;
            $arrData['arrIntTpAirId']   = $arrIntTpAirId;
            $arrData['AirInvenSysIdArr']   = $AirInvenSysIdArr;
            $arrData['sessionFlightSearchParams']   = $sessionFlightSearchParams;
            $arrData['post']   = $post;
            $arrData['IsTripjack']   = true;
            $tempData = array(
                'TraceId' => $SearchTraceId,
                'APIBookingData' => json_encode($arrData),
            );

            $objFlight->deleteFlightTempData($SearchTraceId);
            $objFlight->insertFlightTempData($tempData);
            $this->_redirect('/flight-proposal/booking-confirmation/id/' . $SearchTraceId);
        }
    }

    public function generateNumericOTP($n) {
        $generator = "1357902468";
        $result = "";

        for ($i = 1; $i <= $n; $i++) {
            $result .= substr($generator, (rand() % (strlen($generator))), 1);
        }
        // Return result
        return $result;
    }
    public function verifyingbookingAction()
    {
        if ($this->getRequest()->isXmlHttpRequest() && $this->getRequest()->getPost()) {
            $post = $this->getRequest()->getPost();
            $isagencySession = new Zend_Session_Namespace('isagencySession');
            $isagency = $this->view->isagencySession = isset($isagencySession->params) ? $isagencySession->params : 0;
            $objFlight = new Travel_Model_TblFlight();
            $objAgency = new Travel_Model_TblAgency();
            $objFlightProposal = new Travel_Model_TblFlightProposal();
            $traceID  = $SearchTraceId = $this->view->traceID = ($this->_request->getParam('id'));
            $data  = $this->view->data = ($this->_request->getParam('data'));
            $AgencySysId  = $this->view->AgencySysId = ($this->_request->getParam('AgencySysId'));
            $FlightTempData = $objFlight->GetFlightTempData($data);
            $arrUrlData = json_decode($FlightTempData['APIBookingData'], true);
            $FlightBookingData = $this->view->FlightBookingData = $arrUrlData['intOutBoundId'];
            $SelectedBaggSessionNew = $this->view->SelectedBaggSessionNew = $arrUrlData['SelectedBaggSessionNew'];
            $SelectedMealSessionNew = $this->view->SelectedMealSessionNew = $arrUrlData['SelectedMealSessionNew'];
            $selectedSeatSession = $this->view->selectedSeatSession = $arrUrlData['selectedSeatSession'];
            $ForCustomerSession = $this->view->ForCustomerSession = $arrUrlData['ForCustomerSession'];
            $intCustomerSysId = $this->view->intCustomerSysId = $arrUrlData['intCustomerSysId'];
            $intTPSysId = $this->view->intCustomerSysId = $arrUrlData['intTPSysId'];
            $arrIntTpAirId = $this->view->arrIntTpAirId = $arrUrlData['arrIntTpAirId'];
            $IsTripjack = $this->view->IsTripjack = $arrUrlData['IsTripjack'];
            $AirInvenSysIdArr = $arrUrlData['AirInvenSysIdArr'];
            $apiTraceId = $arrUrlData['apiTraceId'];
            $sessionFlightSearchParams = $arrUrlData['sessionFlightSearchParams'];
            $IsSeriesFareData = isset($FlightBookingData[0]['IsSeriesFareData']) ? $FlightBookingData[0]['IsSeriesFareData'] : 0;
            $ICSourceSysId = isset($FlightBookingData[0]['ICSourceSysId']) ? $FlightBookingData[0]['ICSourceSysId'] : 0;
            if (!empty($intCustomerSysId)) {
                $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            }
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            $getAgentDetailById = $crmcustomerObj->getAgentDetailById($AgencySysId);

            $agencyDetails = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
            $PrimaryEmail = isset($agencyDetails['PrimaryEmail']) ? $agencyDetails['PrimaryEmail'] : 0;
            $IsAllowFlightBooking = isset($getAgentDetailById[0]['IsAllowFlightBooking']) ? $getAgentDetailById[0]['IsAllowFlightBooking'] : 0;
            $ContactNo1 = isset($getAgentDetailById[0]['ContactNo1']) ? trim($getAgentDetailById[0]['ContactNo1']) : 0;
            $countrycode = isset($getAgentDetailById[0]['countrycode']) ? trim($getAgentDetailById[0]['countrycode']) : 0;
            $EmailId = isset($getAgentDetailById[0]['EmailId']) ? trim($getAgentDetailById[0]['EmailId']) : 0;
            $EmailId_cus = isset($ForCustomerSession[0]['EmailId']) ? trim($ForCustomerSession[0]['EmailId']) : 0;
            $Contacts_cus = isset($ForCustomerSession[0]['Contacts']) ? trim($ForCustomerSession[0]['Contacts']) : 0;
            $MobileNumber = $countrycode . $Contacts_cus;
            $LoggedinUserMobileNumber = $countrycode . $ContactNo1;
            $generateNumericOTP = $this->generateNumericOTP(6);
            if($isagency == '1'){
                $smsemail = $EmailId;
                $smsmobile = $LoggedinUserMobileNumber;
                if($IsAllowFlightBooking == 0){
                    $response = array('success' => false, 'checkOTP' => false, 'msg' => 'Booking not allowed', 'urlData' => '');
                    echo json_encode($response);
                    exit;
                }
            }else{
                $smsemail = $EmailId_cus;
                $smsmobile = $Contacts_cus;
            }


            $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
            $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
            $customHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom');
            $IsSMSApi = isset($agencyDetails['IsSMSApi'])?trim($agencyDetails['IsSMSApi']):0;

            if (isset($post['verifying']) && $post['verifying'] == 'true' && !empty($post['verifying'])) {
                $getBooingOTP = $objFlight->getBooingOTP($intTPSysId);
                $OTPNumber = trim($post['OTPNumber']);

                if ($getBooingOTP == $OTPNumber) {
                    $objFlight->updateBookingStatusTravelPlan(array("CustomerRemark" => '1'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']);
                    $response = array('success' => true, 'checkOTP' => false, 'msg' => 'success', 'urlData' => '');
                    echo json_encode($response);
                    exit;
                } else {
                    $response = array('success' => false, 'checkOTP' => false, 'msg' => 'Invalid otp', 'urlData' => '');
                    echo json_encode($response);
                    exit;
                }

            }

            $objFlight->updateBookingStatusTravelPlan(array("CustomerRemark" => $generateNumericOTP), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']);
            $currentDate = date('Y-m-d H:i:s');
            $dateTime = new DateTime($currentDate);
            $dateTime->modify('+2 minutes');
            $RandomCodeValidTo = $dateTime->format('Y-m-d H:i:s');

            $col = array('RandomCode' => $generateNumericOTP, 'RandomCodeValidFrom' => $currentDate, 'RandomCodeValidTo' => $RandomCodeValidTo);
            $message = "OTP for CRM access is $generateNumericOTP do not share it with anyone.\nTRVCRM";
            $this->postFields = "";
            $this->postFields .= "&method=$this->SMSMETHOD";
            $this->postFields .= "&api_key=$this->SMSAPIKEY";
            $this->postFields .= "&sender=$this->SMSSENDER";
            $this->postFields .= "&message=$message";
            $this->postFields .= "&format=$this->SMSFORMAT";
            $postURL = $this->SMSURL;
            $data = new Payment_Model_Checkotp();
            $html = new Zend_View();
            $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
            $html->assign(array('getBooingOTP' => $generateNumericOTP, 'agencyDetails' => $agencyDetails));
            $bodyText = $html->render('OTPEmail.phtml');
            $fromName = (isset($agencyDetails['DisplayName']) && !empty($agencyDetails['DisplayName'])) ? trim($agencyDetails['DisplayName']) : trim(trim($agencyDetails['Title']));
            $emailData = array(
                'fromEmail' => $PrimaryEmail,
                'fromName' => $fromName,
                'subject' => 'OTP for booking '.date('Y-m-d H:i:s'),
                'to' => array($smsemail),
                'bodyHtml' => $bodyText,
                'bodyText' => ''
            );
            // echo "<pre>";
            // print_r($emailData);die;
            $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
            $arrEmailStatistics = array(
                "TPSysId" => 0,
                "TypeSysId" => 1, // 1 For Email 2 For SMS
                "AgencySysId" => $AgencySysId,
                "AgentSysId" => 0,
                "Title" => $bodyText,
                "Source" => $arrEmailStatisticsType[1], // 1 For Vouchers
                "Status" => 0,
                "RefSysId" => "",
                "RefSysStatus" => "",
                "CreateDate" => date('Y-m-d H:i:s')
            );
            $smsmobile = $smsmobile;
            $this->postFields .= "&to=" . substr($smsmobile, -10);
            $hidePhoneNumberDigit = $customHelper->hidePhoneNumberDigit($smsmobile, 1);
            $emailResponse = json_decode($this->mailSentByElastice($emailData, $arrEmailStatistics), true);
            $resultVal = $data->sendSmsDetails($postURL, $this->postFields, $arrEmailStatistics, $IsSMSApi);


            if ($FlightBookingData && $ICSourceSysId == 3) {

                $FlightBookingTicketArr = [];
                $$PassengerArray = [];
                $$responseReturn = [];
                $$FlightBookingTicketArr = [];

                foreach ($FlightBookingData as $k => $value) {
                    $TPintSysId = isset($arrIntTpAirId[$k]) ? $arrIntTpAirId[$k] : 0;
                    $checkNonLccBooking = $objFlight->checkNonLccBooking($TPintSysId);
                    $IsBookingStatus = isset($checkNonLccBooking['IsBookingStatus']) ? $checkNonLccBooking['IsBookingStatus'] : 0;
                    $AirlineName = $value['AirlineName'];
                    $FlightNumber = $value['FlightNumber'];
                    if ($value && $IsBookingStatus != 1) {
                        $BookingdataAPI = array(
                            'FlightBookingData' => $value,
                            'IsInternational' => $FlightBookingData[0]['IsInternational'],
                            'CustomerSession' => $arrTrevllerDetails,
                            'ForCustomerSession' => $ForCustomerSession,
                            'SelectedBaggSessionNew' => $SelectedBaggSessionNew,
                            'SelectedMealSessionNew' => $SelectedMealSessionNew,
                            'selectedSeatSession' => $selectedSeatSession,
                            'sessionFlightSearchParams' => $sessionFlightSearchParams,
                        );

                        if ($value['IsLCC'] == 1 || $value['IsLCC'] == '1') {
                            ///// This action perform on bookflight action
                        } else {
                            $IsLCC = true;
                            $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->apiFlightBooking($BookingdataAPI, $AgencySysId);
                            $FlightBookingTicketArr[$k] = $response;
                            $ResponseStatus = isset($response['Response']['ResponseStatus']) ? $response['Response']['ResponseStatus'] : '0';
                            $apiTraceId = isset($response['Response']['TraceId']) ? $response['Response']['TraceId'] : '0';
                            $ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
                            $ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
                            $strBookingIdLCC = isset($response['Response']['Response']['BookingId']) ? $response['Response']['Response']['BookingId'] : '';
                            $strTicketPNRLCC = isset($response['Response']['Response']['PNR']) ? $response['Response']['Response']['PNR'] : '';
                            $Passenger = $PassengerArray[] = isset($response['Response']['Response']['FlightItinerary']['Passenger']) ? $response['Response']['Response']['FlightItinerary']['Passenger'] : '';
                            $statusType = 1;
                            if ($ResponseStatus == 1) {

                                $responseArray = array(
                                    'value' => $value,
                                    'response' => $response
                                );
                                $data = array(
                                    "AirlineRefPNR" => $strTicketPNRLCC,
                                    "XRefBookingId" => $strBookingIdLCC,
                                    "APIBookingRes" => json_encode($responseArray),
                                    "XRefPNR" => 1,
                                    "IsBookingStatus" => 1 //Booking Requested. Booking Confirmed Ticket In Process
                                );

                                $objFlight->updateBookingDetails($data, $TPintSysId); // FOR BOOKING CONFIRMED
                            } else {
                                $response = array('success' => false, 'msg' => 'Unable to book ' . $AirlineName . ' ' . $FlightNumber . ' please choose another flight.', 'urlData' => '');
                                echo json_encode($response);
                                exit;
                            }
                        }
                    }
                }

                $response = array('success' => true, 'checkOTP' => true, 'msg' => '', 'urlData' => '',  'PhoneNumberDigit' => $hidePhoneNumberDigit);
                echo json_encode($response);
                exit;
            } else {
                $response = array('success' => true, 'checkOTP' => true, 'msg' => '', 'urlData' => '',  'PhoneNumberDigit' => $hidePhoneNumberDigit);
                echo json_encode($response);
                exit;
                // $response = array('success' => true, 'checkOTP' => false, 'msg' => '', 'urlData' => '');
                // echo json_encode($response);
                // exit;
            }
        }

    }
    public function bookingConfirmationAction()
    {
        $post = $this->getRequest()->getParams();
        $traceID  =  $this->view->traceID = ($post['id']);

        $objFlight = new Travel_Model_TblFlight();
        $objAgency = new Travel_Model_TblAgency();
        $objFlightProposal = new Travel_Model_TblFlightProposal();

        //  ini_set('display_errors', 1);
		// 	ini_set('display_startup_errors', 1);
		// 	error_reporting(E_ALL);
        $data  = $this->view->data = ($this->_request->getParam('data'));
        $FlightTempData = $objFlight->GetFlightTempData($traceID);
        $arrUrlData = json_decode($FlightTempData['APIBookingData'], true);
        $FlightBookingData = $this->view->FlightBookingData = $arrUrlData['intOutBoundId'];
        $arrBookingResponse = $this->view->arrBookingResponse = json_decode($arrUrlData['arrBookingResponse'], true);
        $SelectedBaggSessionNew = $this->view->SelectedBaggSessionNew = $arrUrlData['SelectedBaggSessionNew'];
        $SelectedMealSessionNew = $this->view->SelectedMealSessionNew = $arrUrlData['SelectedMealSessionNew'];
        $selectedSeatSession = $this->view->selectedSeatSession = $arrUrlData['selectedSeatSession'];
        $this->view->post = $arrUrlData['post'];
        $intTPSysId = $this->view->intTPSysId = $arrUrlData['intTPSysId'];
        $customerSysId = $this->view->customerSysId = $arrUrlData['customerSysId'];
        $sessionFlightSearchParams = $this->view->sessionFlightSearchParams = $arrUrlData['sessionFlightSearchParams'];
        $leadId     = $sessionFlightSearchParams['editLeadId'];
        $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId, 'query');
        $AgencySysId = $this->view->AgencySysId = $arrAgencyDetails['AgencySysId'];
        $AgentSysId = $arrAgencyDetails['AgentSysId'];
        $arrAgencyDetails = $objAgency->getAgencyDataById($AgencySysId);
        $AgencyBaseCurrency = $arrAgencyDetails['TrxCurrency'];
        $bookingAllowed     = $sessionFlightSearchParams['bookingAllowed'];

        $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($customerSysId, $intTPSysId);
        $this->view->arrTrevllerDetails = $arrTrevllerDetails['AgencySysId'];

        $SegmentsArr = [];
        if ($FlightBookingData) {
            foreach ($FlightBookingData as $Data) {
                foreach ($Data['Segments'] as $seg) {
                    $SegmentsArr[] = $seg;
                }
            }
        }
        $this->view->SegmentsArr = $SegmentsArr;
        $ICSourceSysId = isset($FlightBookingData[0]['ICSourceSysId']) ? $FlightBookingData[0]['ICSourceSysId'] : 0;
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId);
        $APIBookingRes = isset($arrCustomerInvoiceData[0]['APIBookingRes']) ? json_decode($arrCustomerInvoiceData[0]['APIBookingRes'], true) : [];
        $ResponseStatus = isset($APIBookingRes['response']['Response']['ResponseStatus']) ? $APIBookingRes['response']['Response']['ResponseStatus'] : 0;
        $$TBOArray = [];
        if ($arrCustomerInvoiceData) {
            foreach ($arrCustomerInvoiceData as $v) {
                $TBOArray[] = array(
                    'SourceAirportCode' => trim($v['SourceAirportCode']),
                    'DestAirportCode' => trim($v['DestAirportCode']),
                    'TPSysId' => $v['TPSysId'],
                    'AirVersionId' => $v['AirVersionId'],
                );
            }
        }
        $this->view->TBOArray = $TBOArray;
        $this->view->bookingAllowed = $bookingAllowed;
        $this->view->CurrencyRate = $this->CurrencyRate;
        $this->view->CurrencyTitle = $this->CurrencyTitle;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        // echo "<pre>";
        // print_r($customerSysId);
        // echo "<pre>";
        // print_r($intTPSysId);
        // echo "<pre>";
        // print_r($arrTrevllerDetails);
        // die;
        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
        $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
        $getAgencyDetail = $this->_crmcustomerObj->GetAgencyDetailById($AgencySysId);
        $emailId = $arrTrevllerDetails[0][0]['EmailId'];
        $this->view->CustomerEmailId = $emailId;
        $fromName = (isset($getAgencyDetail['DisplayName']) && !empty($getAgencyDetail['DisplayName'])) ? trim($getAgencyDetail['DisplayName']) : trim(trim($getAgencyDetail['Title']));
        $emailSendId = trim($getAgencyDetail['PrimaryEmail']);
        // echo "<pre>";
        // print_r($emailId);
        // die;
        $objFlight = new Travel_Model_TblFlight();
        $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);


        $html = new Zend_View();
        $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
        $html->assign(array('arrtravellerList' => $arrtravellerList, 'FlightBookingData' => $FlightBookingData, 'arrTrevllerDetails' => $arrTrevllerDetails, 'arrCustomerInvoiceData' => $arrCustomerInvoiceData, 'CurrencyRate' => $this->CurrencyRate, 'CurrencyTitle' => $this->CurrencyTitle, 'post' => $arrUrlData['post'], 'intTPSysId' => ($intTPSysId)));
        if ($ICSourceSysId == 3) {
            $bodyText = $html->render('e-ticket.phtml');
        } else {
            $bodyText = $html->render('e-tickettj.phtml');
        }

        $emailData = array(
            'fromEmail' => $emailSendId,
            'fromName' => $fromName,
            'subject' => 'Your Ticket Has Been Booked',
            'to' => array($emailId),
            'bodyHtml' => $bodyText,
            'bodyText' => ''
        );
        // echo "<pre>";
        // print_r($emailData);
        // die;

        $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
        $arrEmailStatistics = array(
            "TPSysId" => 0,
            "TypeSysId" => 1,  // 1 For Email 2 For SMS
            "AgencySysId" => $AgencySysId,
            "AgentSysId" => $AgencySysId,
            "Title" => $bodyText,
            "Source" => $arrEmailStatisticsType[1], // 1 For Vouchers
            "Status" => 0,
            "RefSysId" => "",
            "RefSysStatus" => "",
            "CreateDate" => date('Y-m-d H:i:s')
        );

        if ($ResponseStatus == 1 && $bookingAllowed == 1) {
            //////////////$emailResponse = json_decode($this->mailSentByElastice($emailData, $arrEmailStatistics), 1);
            $mailstatus = isset($emailResponse['success']) ? $emailResponse['success'] : 0;
            //if ($mailstatus) {
            // $this->_redirect('/flight-proposal/booking-confirmation/id/' . $traceID . '/status/true');
            //}
        } else {
            $bodyText = $html->render('send_email_payment.phtml');
            $emailDataOffline = array(
                'fromEmail' => $emailSendId,
                'fromName' => $fromName,
                'subject' => 'Payment Receipt',
                'to' => array($emailId),
                'bodyHtml' => $bodyText,
                'bodyText' => ''
            );
            $emailDataOfflineAg = array(
                'fromEmail' => $emailSendId,
                'fromName' => $fromName,
                'subject' => 'Payment Receipt',
                'to' => array($emailSendId),
                'bodyHtml' => $bodyText,
                'bodyText' => ''
            );
            // echo "<pre>";
            // print_r($emailDataOffline);
            // echo "<pre>";
            // die;


            //$emailResponse = json_decode($this->mailSentByElastice($emailDataOfflineAg, $arrEmailStatistics), 1);
            //$emailResponse = json_decode($this->mailSentByElastice($emailDataOffline, $arrEmailStatistics), 1);
        }
    }

    public function ExtraAddAddons($UpdateData)
    {
        if ($UpdateData && !empty($UpdateData)) {
            $objPackage = new Travel_Model_TblPackage();
            $addonFlightData = [
                'AgencySysId' => (int)$UpdateData['AgencySysId'],
                'TPSysId' => (int)$UpdateData['TPSysId'],
                'CustomerSysId' => (int)$UpdateData['CustomerSysId'],
                'SupplierSysId' => 0,
                'PlanType' => 1,
                'InvnSysId' => 0,
                'ServiceTitle' => $UpdateData['ServiceTitle'],
                'CurrencyType' => $UpdateData['CurrencyType'], // Currency Id
                'GSTTYPE' => $UpdateData['GSTTYPE'], // GST 18,15
                'Tax' => (float)($UpdateData['Tax']), // GST Tax
                'Cost' => ($UpdateData['Cost']),
                'Markup' => (float)$UpdateData['Markup'],
                'TotalCost' => (int) ($UpdateData['TotalCost']),
                'IsActive' => 1,
                'IsApplyTax' => 0,
            ];
            // echo "<pre>";
            // print_r($addonFlightData);
            $objPackage->saveAddonServicesData($addonFlightData);
        }
    }

    public function addCustomerTrx($TPSysId, $arrUrlData)
    {
        $GUIDPost = $arrUrlData['GUIDPost'];
        $FlightBookingData = $this->view->FlightBookingData = $arrUrlData['intOutBoundId'];
        $SelectedBaggSessionNew = $this->view->SelectedBaggSessionNew = $arrUrlData['SelectedBaggSessionNew'];
        $SelectedMealSessionNew = $this->view->SelectedMealSessionNew = $arrUrlData['SelectedMealSessionNew'];
        $selectedSeatSession = $this->view->selectedSeatSession = $arrUrlData['selectedSeatSession'];
        $ForCustomerSession = $this->view->ForCustomerSession = $arrUrlData['ForCustomerSession'];
        $intCustomerSysId = $this->view->intCustomerSysId = $arrUrlData['intCustomerSysId'];
        $sessionFlightSearchParams = $arrUrlData['sessionFlightSearchParams'];
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $leadId     = $sessionFlightSearchParams['editLeadId'];

        $arrAgencyDetails = $this->view->arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($leadId);
        $AgencySysId = $this->view->AgencySysId = $arrAgencyDetails['AgencySysId'];
        $AgentSysId = $arrAgencyDetails['AgentSysId'];

        $fname = $ForCustomerSession[0]['FirstName'];
        // echo '<pre>';
        // print_r($arrAgencyDetails);
        // die;
        $AgencyMarkUp = 0;
        $GTXMarkUp = 0;
        $AgentCommisionEarned = 0;
        $BaseAmount = 0;
        $PublishedFare = 0;
        $TotalDiscountValue = 0;
        $AgentServiceTaxAmount = 0;
        if (!empty($FlightBookingData)) {
            foreach ($FlightBookingData as $keys => $flightRounds) {
                $Segments = $flightRounds['Segments'];
                $SeatPriceSeg = 0;
                $MealPriceSeg = 0;
                $BagPriceSeg = 0;
                foreach ($Segments as $seg) {
                    $segmentid = $seg['segmentid'];
                    $SelectedBagg = isset($SelectedBaggSessionNew[$segmentid]) ? $SelectedBaggSessionNew[$segmentid] : [];
                    $SelectedMeal = isset($SelectedMealSessionNew[$segmentid]) ? $SelectedMealSessionNew[$segmentid] : [];
                    $SelectedSeat = isset($selectedSeatSession[$segmentid]) ? $selectedSeatSession[$segmentid] : [];
                    if (!empty($SelectedSeat)) {
                        foreach ($SelectedSeat as $val) {
                            $SeatPriceSeg += $val['amount'];
                        }
                    }
                    if (!empty($SelectedMeal)) {
                        foreach ($SelectedMeal as $val) {
                            $MealPriceSeg += $val['Price'];
                        }
                    }
                    if (!empty($SelectedBagg)) {
                        foreach ($SelectedBagg as $val) {
                            $BagPriceSeg += $val['Price'];
                        }
                    }
                }
                $DiscountValue = ($flightRounds['FairRules']['DiscountValue']) ? $flightRounds['FairRules']['DiscountValue'] : 0;
                $ExtraMarkup = ($flightRounds['FairRules']['ExtraMarkup']) ? $flightRounds['FairRules']['ExtraMarkup'] : 0;
                $ExtraMarkupOnGST = ($flightRounds['FairRules']['ExtraMarkupOnGST']) ? $flightRounds['FairRules']['ExtraMarkupOnGST'] : 0;
                $intPublishedFare = ($flightRounds['FairRules']['PublishedFare'] + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                //$intOfferedFare = ($flightRounds['FairRules']['OfferedFare'] + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                $intCommissionEarned = $flightRounds['FairRules']['CommEarned'];
                $intPLBEarned = $flightRounds['FairRules']['PLBEarned'];
                $intIncentiveEarned = $flightRounds['FairRules']['IncentiveEarned'];
                $intGTXMarkUp = $flightRounds['FairRules']['intGTXMarkUp'];
                $GTXMarkUpGST = $flightRounds['FairRules']['GTXMarkUpGST'];
                $intAgencyFixMarkUp = $flightRounds['FairRules']['FixedMarkUp'];
                $apiMarkup = ($flightRounds['FairRules']['apiMarkup']) ? $flightRounds['FairRules']['apiMarkup'] : 0;
                $intTotalGST = ($flightRounds['FairRules']['intTotalGST']) ? $flightRounds['FairRules']['intTotalGST'] : 0;
                $BaseAmount = 0;
                if ($flightRounds['FairRules']['FareBreakdown']) {
                    foreach ($flightRounds['FairRules']['FareBreakdown'] as $key => $value) {

                        //////////////////////////////////
                        $IntCommission_ = $value['IntCommission'];
                        $CommissionEarned_ = $value['CommissionEarned'];
                        $PBaseFare_ = $value['BaseFare'];
                        $MF = $value['MF']; //Management Fee
                        $YQ = $value['YQ']; //Fuel Surcharge
                        $AGST = $value['AGST']; //Airline GST Component
                        $MFT = $value['MFT']; //Management Fee Tax
                        $OT = $value['OT']; //Other Charges
                        $MU = $value['MU']; //Markup
                        $YR = $value['YR']; //Carrier Misc Fee
                        $otherCharge_ = ($YQ + $AGST + $MFT + $MF + $OT + $YR);
                        $FixedMarkUp_ = $value['FixedMarkUp'];
                        $GSTOnMarkUp = $value['GSTOnMarkUp'];
                        $intGTXMarkUp_ = $value['intGTXMarkUp'];
                        $GTXMarkUpGST_ = $value['GTXMarkUpGST'];
                        $intTotalGST_ = $value['intTotalGST'];
                        $apiMarkup_ = $value['apiMarkup'];
                        $CommEarned_ = $value['CommEarned'];
                        $customerDiscount_ = ($CommissionEarned_ - $IntCommission_);

                        $GrandTotalBaseFare = (($PBaseFare_ - $CommEarned_ + $otherCharge_ + $FixedMarkUp_ + $apiMarkup_ + $intGTXMarkUp_ + $GTXMarkUpGST_) - $customerDiscount_);
                        $BaseAmount += $GrandTotalBaseFare;

                        $AgentServiceTaxAmount += $intTotalGST_;
                    }
                }
                $TotalExtraCharge = ($ExtraMarkup + $ExtraMarkupOnGST);
                $intOfferedFare = ($BaseAmount + $BagPriceSeg + $MealPriceSeg + $SeatPriceSeg);
                $totalCost = ($intPublishedFare + $TotalExtraCharge);

                $AgencyMarkUp += ($intAgencyFixMarkUp + $apiMarkup);
                $GTXMarkUp += ($GTXMarkUpGST);
                $AgentCommisionEarned += ($intCommissionEarned);
                $BaseAmount += ($intOfferedFare);
                $PublishedFare += ($intPublishedFare);
                $TotalDiscountValue += ($DiscountValue);
            }
        }
        $paymentMdl = new Payment_Model_Payment();
        $offlinePaymentModeData = $paymentMdl->getDetailsByUniqueId("TB_Master_PaymentMediaType", "Title", "CC");
        $TrxPayMediaType = $offlinePaymentModeData['PaymentMediaType'];
        $addData_Trx = array(
            'MPSysId' => 1,
            'InvoiceId' => '',
            'TrxOrdDocId' => 1,
            'TrxType' => "A",
            'TrxOrdDocId' => $TrxPayMediaType,
            'TrxDate' => date('Y-m-d H:i:s'),
            'TrxPayMediaType' => $TrxPayMediaType,
            'CrPartyAccSysId' => 1,
            'DrPartyAccSysId' => "",
            'CrPartyName' => '', //Agency Name
            'DrPartyName' => $fname,
            'CurrencyType' => 1,
            'Markup' => 0,
            "AgencyMarkUp" => $AgencyMarkUp,
            "GTXMarkup" => $GTXMarkUp,
            "TrxFee" => 0,
            "Commission" => $AgentCommisionEarned,
            "GTXCommission" => 0,
            'TotalDiscount' => $TotalDiscountValue,
            'Amount' => $BaseAmount,
            'PaidAmount' => $PublishedFare,
            'NetAmount' => $PublishedFare,
            'TrxStatus' => true,
            'TBPoints' => 0,
            'IsActive' => true
        );
        // echo '<pre>';
        // print_r($addData_Trx);
        // die;
        $TrxSysId = $paymentMdl->insertTable("TB_Trx", $addData_Trx);


        $addDataAgency_Customer_Trx = array(
            "CustomerSysId" => $intCustomerSysId,
            "AgencySysId" => $AgencySysId,
            "UserSysId" => $AgentSysId,
            "TrxSysId" => $TrxSysId,
            'XRefTrxNo' => $GUIDPost,
            'TPSysId' => $TPSysId,
            'MPSysId' => 1,
            'TrxDate' => date('Y-m-d H:i:s'),
            'TrxUpdatedOn' => "",
            'PaymentModeType' => 1,
            'InvoiceId' => '',
            'TrxOrdDocId' => 1,
            'TrxType' => "A",
            'TrxPayMediaRefNo' => "",
            'CrPartyAccSysId' => 1,
            "DrPartyAccSysId" => 0,
            "CrPartyName" => "", //Agency Name
            "DrPartyName" => $fname,
            'TrxPayMediaType' => 1,
            'CurrencyType' => 1,
            'Amount' => $BaseAmount,
            'Markup' => 0,
            "AgencyMarkUp" => $AgencyMarkUp,
            "GTXMarkup" => $GTXMarkUp,
            "TrxFee" => 0,
            "Commission" => $AgentCommisionEarned,
            'TotalDiscount' => $TotalDiscountValue,
            'PaidAmount' => $PublishedFare,
            'NetAmount' => $PublishedFare,
            'TBPoints' => 0,
            'TrxStatus' => true,
            'IsActive' => true
        );

        $dddd = $paymentMdl->insertTable("TB_Agency_Customer_Trx", $addDataAgency_Customer_Trx); /// by sabir
        return $TrxSysId;
    }

    public function eTickettjAction()
    {

        // $this->_helper->layout->disableLayout();
        // $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        // $versionId = ($this->getRequest()->getParam("version"));
        // $objFlight = new Travel_Model_TblFlight();
        // //$arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
        // $arrtravellerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId,0);
        // $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);
        // //echo "<pre>";print_r($arrtravellerList);
        // $this->view->arrtravellerList = $arrtravellerList;
        // $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        // $this->view->intTPSysId = $this->getRequest()->getParam("id");
        // $this->view->version = $versionId;
        // $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        // if (!empty($intCustomerSysId)) {
        //     $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
        //     //
        //     $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        // }

        $this->_helper->layout->disableLayout();
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $versionId = ($this->getRequest()->getParam("version"));
        $objFlight = new Travel_Model_TblFlight();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);
        $ICSourceSysId = $arrCustomerInvoiceData[0]['ICSourceSysId'];
        $TripType = $arrCustomerInvoiceData[0]['TripType'];
        $AgencySysId = $arrCustomerInvoiceData[0]['AgencySysId'];
        $IsInternational = !empty($arrCustomerInvoiceData[0]['IsInternational']) ? $arrCustomerInvoiceData[0]['IsInternational'] : 0;
        if ($ICSourceSysId == 3) {
            $arrtravellerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId, 0);
        } else {
            $arrtravellerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId);
            if ($TripType == '3') {
                $arrtravellerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId, 0);
            }
        }

        $agencyDetails = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
       
        $this->view->arrtravellerList = $arrtravellerList;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        $this->view->intTPSysId = $this->getRequest()->getParam("id");
        $this->view->version = $versionId;
        $this->view->withprice = 1;
        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];

        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }

        if ($IsInternational == 1) {
            $ItemSourceType = 2;
        } else {
            $ItemSourceType = 1;
        }
        $getSupportContact = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getSupportContact(1, 1, $ItemSourceType, '', $agencyDetails['SecurityKey']);

        $this->view->getSupportContact = $getSupportContact;
        // echo '<pre>';
        // print_r($getSupportContact);
        // die;
    }

    public function eTickettjwebsiteAction()
    {

        $this->_helper->layout->disableLayout();
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $versionId = ($this->getRequest()->getParam("version"));
        $objFlight = new Travel_Model_TblFlight();
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);
        $ICSourceSysId = $arrCustomerInvoiceData[0]['ICSourceSysId'];
        if ($ICSourceSysId == 3) {
            $arrtravellerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId, 0);
        } else {
            $arrtravellerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId);
        }


        $this->view->arrtravellerList = $arrtravellerList;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        $this->view->intTPSysId = $this->getRequest()->getParam("id");
        $this->view->version = $versionId;
        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];

        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }

    public function eTicketAction()
    {

        $this->_helper->layout->disableLayout();
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $versionId = ($this->getRequest()->getParam("version"));
        $objFlight = new Travel_Model_TblFlight();
        $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);

        $this->view->arrtravellerList = $arrtravellerList;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        $this->view->intTPSysId = $this->getRequest()->getParam("id");
        $this->view->version = $versionId;
        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }
    public function eTicketwebsiteAction()
    {

        $this->_helper->layout->disableLayout();
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $versionId = ($this->getRequest()->getParam("version"));
        $objFlight = new Travel_Model_TblFlight();
        $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);
        $TBQAirInvenSysId = $arrCustomerInvoiceData[0]['TBQAirInvenSysId'];
        $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $TBQAirInvenSysId . "') ";
        $FlightFareBreakdown = $objFlight->getSelectedFlightFareDetails();
        //$arrTrevllerList = $objFlight->GetCustomerListForFlightBooking(23890);
        // echo "<pre>";
        // print_r($arrCustomerInvoiceData);
        // echo "</pre>";
        $this->view->arrtravellerList = $arrtravellerList;
        $this->view->FlightFareBreakdown = $FlightFareBreakdown;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        $this->view->intTPSysId = $this->getRequest()->getParam("id");
        $this->view->version = $versionId;
        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }

    public function sendeticketAction()
    {

        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
        if ($this->_request->isXmlHttpRequest()) {
            $intTPSysId = base64_decode($this->getRequest()->getParam("intTPSysId"));
            $versionId = ($this->getRequest()->getParam("version"));
            $emailId = ($this->getRequest()->getParam("emailId"));
            $objFlight = new Travel_Model_TblFlight();
            $objTbltbbcuser = new Travel_Model_Tbltbbcuser();
            $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
            $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);
            $CustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
            $TBQAirInvenSysId = $arrCustomerInvoiceData[0]['TBQAirInvenSysId'];
            $AgentSysId = $arrCustomerInvoiceData[0]['AgentSysId'];
            $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $TBQAirInvenSysId . "') ";
            $FlightFareBreakdown = $objFlight->getSelectedFlightFareDetails();

            $getCustomerDetails = $objTbltbbcuser->getCustomerDetails($CustomerSysId, $AgentSysId);
            $arrtravellerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId);

            //$arrTrevllerList = $objFlight->GetCustomerListForFlightBooking(23890);

            $this->view->arrtravellerList = $arrtravellerList;
            $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
            $this->view->intTPSysId = $this->getRequest()->getParam("intTPSysId");
            $this->view->version = $versionId;
            $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];

            if (!empty($intCustomerSysId)) {
                $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
                //echo "<pre>";print_r($arrTrevllerDetails);
                $this->view->arrTrevllerDetails = $arrTrevllerDetails;
            }

            $ICSourceSysId = $arrCustomerInvoiceData[0]['ICSourceSysId'];
            $TripType = $arrCustomerInvoiceData[0]['TripType'];
            $SourceAirportCode = $arrCustomerInvoiceData[0]['SourceAirportCode'];
            $DestAirportCode = $arrCustomerInvoiceData[0]['DestAirportCode'];
            $AgencySysId = $arrCustomerInvoiceData[0]['AgencySysId'];
            $AgentSysId = $arrCustomerInvoiceData[0]['AgentSysId'];
            $intLoggedinUserEmailId = $arrCustomerInvoiceData[0]['PrimaryEmail'];
            $navarrow = ($TripType == 1) ? "→" : "⇄";
            $html = new Zend_View();
            $html->setScriptPath(APPLICATION_PATH . '/views/scripts/booking-flight/');
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            $arrAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
            $html->assign('type', 'mailToCustomer');
            $html->assign('getCustomerDetails', $getCustomerDetails);
            $html->assign('FlightFareBreakdown', $FlightFareBreakdown);
            $html->assign('arrtravellerList', $arrtravellerList);
            $html->assign('arrCustomerInvoiceData', $arrCustomerInvoiceData);
            $html->assign('arrTrevllerDetails', $arrTrevllerDetails);
            $html->assign('intTPSysId', $this->getRequest()->getParam("intTPSysId"));
            $html->assign('version', $versionId);
            if ($ICSourceSysId == 7 || $ICSourceSysId == 8 || $ICSourceSysId == 9) {
                $bodyText = $html->render('e-tickettj.phtml');
            } else {
                $bodyText = $html->render('e-ticket.phtml');
            }
            // echo "<pre>";
            // print_r($bodyText);
            // die;
            $subject = "Flight Booking Itinerary From " . trim($SourceAirportCode) . " " . $navarrow . " " . trim($DestAirportCode);
            //$customerEmailId = isset($arrTrevllerDetails[0][0]['EmailId'])?$arrTrevllerDetails[0][0]['EmailId']:'';
            $customerEmailId = $emailId;
            $emailData = array('fromEmail' => trim($intLoggedinUserEmailId), 'fromName' => trim($arrAgencyDetail['DisplayName']), 'subject' => $subject, 'to' => array($customerEmailId, $intLoggedinUserEmailId), 'bodyHtml' => $bodyText, 'bodyText' => '');
            try {
                // Added By Pardeep Panchal For Email Count...
                $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" => date('Y-m-d H:i:s')
                );

                // Added By Pardeep Panchal For Email Count Ends...
                $sent = $this->mailSentByElastice($emailData, $arrEmailStatistics);
                if ($sent) {
                    $response = array('success' => true, 'msg' => 'Email sent successfully.');
                    echo json_encode($response);
                    exit;
                }
            } catch (Exception $err) {
                print_r($err, true);
            }
        }
    }

    public function customerInvoicetjAction()
    {

        // $this->_helper->layout->disableLayout();
        // $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        // $versionId = ($this->getRequest()->getParam("version"));
        // $objFlight = new Travel_Model_TblFlight();
        // $objTbltbbcuser = new Travel_Model_Tbltbbcuser();
        // $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
        // $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);

        // $this->view->arrtravellerList = $arrtravellerList;
        // $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        // $this->view->intTPSysId = $this->getRequest()->getParam("id");
        // $this->view->version = $versionId;
        // $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        // $CustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        // $B2BAgencySysId = $arrCustomerInvoiceData[0]['B2BAgencySysId'];
        // $getCustomerDetails = $objTbltbbcuser->getCustomerDetails($CustomerSysId, $B2BAgencySysId);
        // $this->view->getCustomerDetails = $getCustomerDetails;
        // $this->view->arrtravellerList = $arrtravellerList;
        // $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        // $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        // if (!empty($intCustomerSysId)) {
        //     $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
        //     //echo "<pre>";print_r($arrTrevllerDetails);
        //     $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        // }

        $this->_helper->layout->disableLayout();
        // $intTPSysId = base64_decode($this->getRequest()->getParam("id"));  old
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $versionId = ($this->getRequest()->getParam("version"));
        $bookingId = ($this->getRequest()->getParam("bkid"));
        $objFlight = new Travel_Model_TblFlight();
        $objTbltbbcuser = new Travel_Model_Tbltbbcuser();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);
        $CustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        $B2BAgencySysId = $arrCustomerInvoiceData[0]['B2BAgencySysId'];
        $AgencySysId = $arrCustomerInvoiceData[0]['AgencySysId'];
        $IsB2BProposal = $arrCustomerInvoiceData[0]['IsB2BProposal'];
        $AgentSysId = $arrCustomerInvoiceData[0]['AgentSysId'];
        $arrAgencyDetail = [];
        if ($IsB2BProposal == 1) {
            $arrAgencyDetail = $crmcustomerObj->GetAgencyDetailById($B2BAgencySysId);
        }

        // echo "<pre>";print_r($arrCustomerInvoiceData[0]);
        $getCustomerDetails = $objTbltbbcuser->getCustomerDetails($CustomerSysId, $AgentSysId);
        //$arrTrevllerList = $objFlight->GetCustomerListForFlightBooking(23890);arrAgencyDetail

        $this->view->getCustomerDetails = $getCustomerDetails;
        $this->view->arrtravellerList = $arrtravellerList;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        $this->view->intTPSysId = $this->getRequest()->getParam("id");
        $this->view->version = $versionId;
        $this->view->arrAgencyDetail = $arrAgencyDetail;
        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }
    public function customerInvoicetjwebsiteAction()
    {

        $this->_helper->layout->disableLayout();
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $versionId = ($this->getRequest()->getParam("version"));
        $bookingId = ($this->getRequest()->getParam("bkid"));
        $objFlight = new Travel_Model_TblFlight();
        $objTbltbbcuser = new Travel_Model_Tbltbbcuser();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);
        $CustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        $B2BAgencySysId = $arrCustomerInvoiceData[0]['B2BAgencySysId'];
        $AgencySysId = $arrCustomerInvoiceData[0]['AgencySysId'];
        $IsB2BProposal = $arrCustomerInvoiceData[0]['IsB2BProposal'];
        $arrAgencyDetail = [];
        if ($IsB2BProposal == 1) {
            $arrAgencyDetail = $crmcustomerObj->GetAgencyDetailById($B2BAgencySysId);
        }


        $getCustomerDetails = $objTbltbbcuser->getCustomerDetails($CustomerSysId,  $AgencySysId);
        //$arrTrevllerList = $objFlight->GetCustomerListForFlightBooking(23890);arrAgencyDetail

        $this->view->getCustomerDetails = $getCustomerDetails;
        $this->view->arrtravellerList = $arrtravellerList;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        $this->view->intTPSysId = $this->getRequest()->getParam("id");
        $this->view->version = $versionId;
        $this->view->arrAgencyDetail = $arrAgencyDetail;
        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }
    public function customerInvoiceAction()
    {

        $this->_helper->layout->disableLayout();
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $versionId = ($this->getRequest()->getParam("version"));
        $objFlight = new Travel_Model_TblFlight();
        $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);

        $this->view->arrtravellerList = $arrtravellerList;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;
        $this->view->intTPSysId = $this->getRequest()->getParam("id");
        $this->view->version = $versionId;
        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }
    public function customerInvoicewebsiteAction()
    {

        $this->_helper->layout->disableLayout();
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $versionId = ($this->getRequest()->getParam("version"));
        $objFlight = new Travel_Model_TblFlight();
        $objTbltbbcuser = new Travel_Model_Tbltbbcuser();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $versionId);
        $CustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
        $AgencySysId = $arrCustomerInvoiceData[0]['AgencySysId'];
        $IsB2BProposal = $arrCustomerInvoiceData[0]['IsB2BProposal'];
        $B2BAgencySysId = $arrCustomerInvoiceData[0]['B2BAgencySysId'];
        // echo "<pre>";
        // print_r($arrCustomerInvoiceData[0]);
        // exit;
        $TBQAirInvenSysId = $arrCustomerInvoiceData[0]['TBQAirInvenSysId'];
        $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $TBQAirInvenSysId . "') ";
        $FlightFareBreakdown = $objFlight->getSelectedFlightFareDetails();
        $getCustomerDetails = $objTbltbbcuser->getCustomerDetails($CustomerSysId, $AgencySysId);
        $arrAgencyDetail = [];
        if ($IsB2BProposal == 1) {
            $arrAgencyDetail = $crmcustomerObj->GetAgencyDetailById($B2BAgencySysId);
        }
        $this->view->getCustomerDetails = $getCustomerDetails;
        $this->view->FlightFareBreakdown = $FlightFareBreakdown;
        $this->view->arrAgencyDetail = $arrAgencyDetail;

        $this->view->getCustomerDetails = $getCustomerDetails;
        $this->view->FlightFareBreakdown = $FlightFareBreakdown;
        // echo "<pre>";
        // print_r($FlightFareBreakdown);
        // exit;
        $RoomInfoJson = $arrCustomerInvoiceData[0]['RoomInfoJson'];
        $intAdultsCT = 0;
        $intChildsCT = 0;
        $intInfantsCT = 0;
        $paxTOtalArr = json_decode($RoomInfoJson);
        if (!empty($paxTOtalArr)) {
            foreach ($paxTOtalArr as $PaxTotal) {
                $intAdultsCT += @$PaxTotal->Adult;
                $intChildsCT += @$PaxTotal->Child;
                $intInfantsCT += @$PaxTotal->Infant;
                $departuredate = @$PaxTotal->departuredate;
                $returndate = trim(@$PaxTotal->returndate);
                $totalmember = trim(@$PaxTotal->totalmember);
            }
        }
        $intTatalPaxCT = $intAdultsCT + $intChildsCT;
        $TBQAirInvenSysId = $arrCustomerInvoiceData[0]['TBQAirInvenSysId'];
        $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $TBQAirInvenSysId . "') ";
        $arrSelectedFlightFareDetails = $objFlight->getSelectedFlightFareDetails();



        // echo "<pre>";print_r($arrCustomerInvoiceData[0]);echo "</pre>";die;
        $this->view->intTotalOfferedForAllPax = $intTotalOfferedForAllPax;
        $this->view->intTPSysId = $this->getRequest()->getParam("id");
        $this->view->version = $versionId;
        $this->view->arrtravellerList = $arrtravellerList;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;

        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];

        $arrAPIBookingRes = json_decode($arrCustomerInvoiceData[0]['APIBookingRes'], true);
        if (is_array($arrAPIBookingRes)) {
            $arrAPIBookingRes = $arrAPIBookingRes;
        } else {
            $arrAPIBookingRes = json_decode($arrAPIBookingRes, true);
        }
        $arrPassenger = isset($arrAPIBookingRes['Response']['Response']['FlightItinerary']['Passenger']) ? $arrAPIBookingRes['Response']['Response']['FlightItinerary']['Passenger'] : '';
        $Segments = isset($arrAPIBookingRes['Response']['Response']['FlightItinerary']['Segments']) ? $arrAPIBookingRes['Response']['Response']['FlightItinerary']['Segments'] : '';
        $InvoiceNo = isset($arrAPIBookingRes['Response']['Response']['FlightItinerary']['InvoiceNo']) ? $arrAPIBookingRes['Response']['Response']['FlightItinerary']['InvoiceNo'] : '';
        $InvoiceCreatedOn = isset($arrAPIBookingRes['Response']['Response']['FlightItinerary']['InvoiceCreatedOn']) ? $arrAPIBookingRes['Response']['Response']['FlightItinerary']['InvoiceCreatedOn'] : '';
        $CancellationCharges = isset($arrAPIBookingRes['Response']['Response']['FlightItinerary']['CancellationCharges']) ? $arrAPIBookingRes['Response']['Response']['FlightItinerary']['CancellationCharges'] : '';
        $FareRuleDetails = isset($arrAPIBookingRes['Response']['Response']['FlightItinerary']['FareRules']) ? $arrAPIBookingRes['Response']['Response']['FlightItinerary']['FareRules'] : '';

        //        echo "<pre>";print_r($invoiceData);die;
        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }
    public function getMax($array)
    {
        // Returns maximum in array
        $n = count($array);
        $max = $array[0];
        for ($i = 1; $i < $n; $i++)
            if ($max < $array[$i])
                $max = $array[$i];
        return $max;
    }
    public function getMin($array)
    {
        $n = count($array);
        $min = $array[0];
        for ($i = 1; $i < $n; $i++)
            if ($min > $array[$i])
                $min = $array[$i];
        return $min;
    }

    public function viewFlightProposalAction()
    {

        $this->view->MasterTPSysId = $MasterTPSysId = base64_decode($this->_request->getParam('id'));
        //Zend_Session::namespaceUnset('sessionFlightProposalParams');
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        if (!empty($MasterTPSysId)) {
            $arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($MasterTPSysId,'query');
            if (count($arrAgencyDetails) == 0) {
                echo 'Details not found.';
                exit;
            }

            $this->view->arrAgencyDetails = $arrAgencyDetails;
            $arrFlightDetails = $objFlightProposal->getFlightProposalDetails($MasterTPSysId);
            $CustomerSysId = trim($arrFlightDetails[0]['CustomerSysId']);
            $this->view->IsInternational = $IsInternational = trim($arrFlightDetails[0]['IsInternational']);
            $this->view->JourneyType = $JourneyType = trim($arrFlightDetails[0]['JourneyType']);
            //echo "<pre>";print_r($arrFlightDetails[0]['StatusType']);echo "</pre>";
            $this->view->arrAirDetails = $arrFlightDetails;
            if ($arrFlightDetails[0]['StatusType'] == 17) {
                die('Oops this proposal has been expired.');
            }
            //            echo "<pre>";print_r($arrFlightDetails);echo "</pre>";

            $this->view->SourceAirportCode = $SourceAirportCode = trim($arrFlightDetails[0]['SourceAirportCode']);
            if (!empty($SourceAirportCode)) {
                $arrSourceAirport = $objFlightProposal->getAirPortByAirportCode($SourceAirportCode);
            }
            $this->view->SourceAirport = isset($arrSourceAirport['label']) ? $arrSourceAirport['label'] : '';

            $this->view->DestAirportCode = $DestAirportCode = trim($arrFlightDetails[0]['DestAirportCode']);
            if (!empty($DestAirportCode)) {
                $arrDestinationAirport = $objFlightProposal->getAirPortByAirportCode($DestAirportCode);
            }
            $this->view->DestinationAirport = isset($arrDestinationAirport['label']) ? $arrDestinationAirport['label'] : '';
            //echo "<pre>";print_r($arrSourceAirport);

            $route = $arrFlightDetails[0]['route'];
            $AgencySysId = $arrAgencyDetails['AgencySysId'];
            $AgentSysId = $arrAgencyDetails['AgentSysId'];
            $arrRoomInfoJson = json_decode($arrAgencyDetails['RoomInfoJson'], true);

            /* Selected Flight Specific Session Values */
            $intAdultCount = $arrRoomInfoJson[1]['Adult'];
            $intChildCount = $arrRoomInfoJson[1]['Child'];
            $intInfantCount = $arrRoomInfoJson[1]['Infant'];
            $departuredate = $arrRoomInfoJson[1]['departuredate'];
            $returndate = $arrRoomInfoJson[1]['returndate'];
            $strOriginAirPortCode = $arrRoomInfoJson[1]['fromaircode'];
            $strDestinationAirPortCode = $arrRoomInfoJson[1]['toaircode'];
            $strairclass = $arrRoomInfoJson[1]['airclass'];


            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
            $sessionFlightProposalParams->params['MasterTPSysId'] = $MasterTPSysId;
            $sessionFlightProposalParams->params['AgencySysId'] = $AgencySysId;
            $sessionFlightProposalParams->params['AgentSysId'] = $AgentSysId;
            $sessionFlightProposalParams->params['CustomerSysId'] = $CustomerSysId;
            $sessionFlightProposalParams->params['AdultCount'] = $intAdultCount;
            $sessionFlightProposalParams->params['ChildCount'] = $intChildCount;
            $sessionFlightProposalParams->params['InfantCount'] = $intInfantCount;
            $sessionFlightProposalParams->params['departuredate'] = $departuredate;
            $sessionFlightProposalParams->params['returndate'] = $returndate;
            $sessionFlightProposalParams->params['airclass'] = $strairclass;
            $sessionFlightProposalParams->params['route'] = $route;


            $objAirport = new Travel_Model_TblAirport();
            $objAirport->strAirportCode = $strOriginAirPortCode;
            $arrSourceCityId = $objAirport->getAirportList();

            if (!empty($arrSourceCityId) ) {
                $intSourceCityId = $arrSourceCityId[0]['CityId'];
                $intCountryCode = $arrSourceCityId[0]['CountryCode'];
                $intOriginCountryCode = trim($arrSourceCityId[0]['CountryCode']);
            } else {
                $intSourceCityId = "";
                $intCountryCode = "";
            }



            $objAirport->strAirportCode = $strDestinationAirPortCode;
            $arrDestinationCityId = $objAirport->getAirportList();


            if (!empty($arrDestinationCityId) ) {
                $intDestinationCityId = $arrDestinationCityId[0]['CityId'];
                $intDestinationCountryCode = trim($arrDestinationCityId[0]['CountryCode']);
            } else {
                $intDestinationCityId = "";
            }



            if ($intOriginCountryCode != "IN" || empty($intOriginCountryCode)) {
                $sessionFlightProposalParams->params['IsInterNational'] = true;
                $sessionFlightProposalParams->params['intCountryCode'] = trim($intOriginCountryCode);
            } else if ($intDestinationCountryCode != "IN" || empty($intDestinationCountryCode)) {
                $sessionFlightProposalParams->params['IsInterNational'] = true;
                $sessionFlightProposalParams->params['intCountryCode'] = trim($intDestinationCountryCode);
            } else {
                $sessionFlightProposalParams->params['IsInterNational'] = false;
                $sessionFlightProposalParams->params['intCountryCode'] = trim($intDestinationCountryCode);
            }
            /* Selected Flight Specific Session Values Ends */
            $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
            $getcustomerDetail = $this->_crmcusttravelplan->GetTravelPlanDetailsofCustomer($MasterTPSysId);
            $agencyStaffObj = new Travel_Model_TblAgencyStaff();
            $agentDetail = $agencyStaffObj->getUserDetailsById($arrFlightDetails[0]['AgentSysId']);
            $AgencySysId = $arrFlightDetails[0]['AgencySysId'];
            $getAgentDetail = array('AgentName' => $agentDetail['FirstName'] . " " . $agentDetail['LastName'], 'AgentContact' => $agentDetail['ContactNo1']);
            $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
            $getAgencyDetail = $this->_crmcustomerObj->GetAgencyDetailById($AgencySysId);
            $getAgencyDetail['fullAddress'] = isset($agencyAddress['CityName']) ? $agencyAddress['CityName'] . $agencyState . $agencyCountry : '';
            //send email to agent when customer open proposal
            //echo "<pre>";print_r($getcustomerDetail);die;
            //echo $arrFlightDetails[0]['IsPlanViewed'];die;
            if ($arrFlightDetails[0]['IsPlanViewed'] == 0) {
                $emailSendId = trim($getAgencyDetail['PrimaryEmail']);
                $fromName = (isset($getAgencyDetail['DisplayName']) && !empty($getAgencyDetail['DisplayName'])) ? trim($getAgencyDetail['DisplayName']) : trim(trim($getAgencyDetail['Title']));
                $emailId = trim($agentDetail['EmailId']);
                $html = new Zend_View();
                $html->setScriptPath(APPLICATION_PATH . '/views/scripts/proposal/');
                $html->assign('type', 'proposalViewFlightSendEmailToAgent');
                $html->assign('customerDetails', $getcustomerDetail);
                $html->assign('agentDetails', $agentDetail);
                $html->assign('agencyDetails', $getAgencyDetail);
                $link = $this->view->baseUrl("/flight-proposal/view-flight-proposal/id/" . base64_encode($MasterTPSysId));
                $html->assign('link', $link);
                $html->assign('data', $arrFlightDetails);
                $html->assign('destination', trim(stripslashes($arrDestinationAirport['label'])));
                //$html->assign('data', $hotelValues);
                $bodyText = $html->render('email-template.phtml');
                $subject = 'HelloGTX - Proposal Open Alert !';
                if($getAgencyDetail['IsDisplayHelloGTX'] == 1){
                    $subject = $fromName.' - Proposal Open Alert !';
                }

                //$bodyText='Customer open your proposal' .$this->view->baseUrl("/proposal/preview-hotel-result/mid/".base64_encode($mid)."/pid/".base64_encode($pid)."/uid/".base64_encode($uid)."/type/".base64_encode($type));
                //$bodyText='Customer open your proposal' .$this->view->baseUrl("/proposal/preview-hotel-result/mid/".base64_encode($mid)."/pid/".base64_encode($pid)."/uid/".base64_encode($uid)."/type/".base64_encode($type));
                $emailData = array('fromEmail' => trim($emailSendId), 'fromName' => trim($fromName), 'subject' => $subject, 'to' => array(trim($emailId)), 'bodyHtml' => $bodyText, 'bodyText' => '');

                $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
                $arrEmailStatistics = array(
                    "TPSysId" => $MasterTPSysId,
                    "TypeSysId" => 1, // 1 For Email 2 For SMS
                    "AgencySysId" => $AgencySysId,
                    "AgentSysId" => $arrFlightDetails[0]['AgentSysId'],
                    "Title" => $bodyText,
                    "Source" => $arrEmailStatisticsType[2], // 1 For Misc
                    "Status" => 0,
                    "RefSysId" => "",
                    "RefSysStatus" => "",
                    "CreateDate" => date('Y-m-d H:i:s')
                );

                $this->mailSentByElastice($emailData, $arrEmailStatistics, 0, 0);

                //send sms
                $mobile_no = trim($agentDetail['ContactNo1']);
                $updateData = new Payment_Model_Checkotp();
                $bitly_response = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->getSmallLinkFromBitlyAPI($link, $this->BITLYLOGIN, $this->BITLYAPIKEY);
                if ($bitly_response['errorCode'] == 0) {
                    $link = $bitly_response['results'][$link]['shortUrl'];
                }
                $massage = "Your Customer(" . trim($getcustomerDetail[0]['FirstName']) . " " . trim($getcustomerDetail[0]['LastName']) . "-" . trim($getcustomerDetail[0]['Contacts']) . ") has just opened the proposal for " . trim(stripslashes($arrDestinationAirport['label'])) . ",Click: " . $link . " to view and assist for finalizing.";
                $this->postFields = "";
                $this->postFields .= "&method=$this->SMSMETHOD";
                $this->postFields .= "&api_key=$this->SMSAPIKEY";
                $this->postFields .= "&to=$mobile_no";
                $this->postFields .= "&sender=$this->SMSSENDER";
                $this->postFields .= "&message=$massage";
                $this->postFields .= "&format=$this->SMSFORMAT";
                $postURL = $this->SMSURL;
                $arrSMSStatisticsType = array_keys(unserialize(ARR_SMS_STATISTICS_TYPE));
                $arrSMSStatistics = array(
                    "TPSysId" => $arrFlightDetails[0]['TPSysId'],
                    "TypeSysId" => 2, // 1 For Email 2 For SMS
                    "AgencySysId" => $arrFlightDetails[0]['AgencySysId'],
                    "AgentSysId" => $arrFlightDetails[0]['AgentSysId'],
                    "Title" => $massage,
                    "Source" => $arrSMSStatisticsType[0], // 2 For Resend
                    "Status" => 0,
                    "RefSysId" => "",
                    "RefSysStatus" => "",
                    "CreateDate" => date('Y-m-d H:i:s')
                );
                //$resultVal = $updateData->sendSmsDetails($postURL, $this->postFields, $arrSMSStatistics);
                $resultVal['status'] = 'OK';
                if (isset($resultVal['status']) && $resultVal['status'] == 'OK') {
                    $errorMessage = "";
                } else {
                    $errorMessage = "Oops! Please try again";
                }
                //echo $errorMessage."/".print_r($resultVal)."/".$massage."/".$mobile_no;
                //end of send sms

                if (!empty($MasterTPSysId)) {
                    $data = array(
                        'isPlanViewed' => 1,
                        'UpdateDate' => date('Y-m-d H:i:s'),
                    );
                    $where = "MasterTPSysId = " . $MasterTPSysId;
                    $updatetravelplanrecord = $this->_crmcusttravelplan->UpdateCustomerTravelPlan($data, $where);
                }
            }
            //#end

            $this->view->getcustomerDetail = $getcustomerDetail;
        }
    }



    public function savePassengerDetailsAction()
    {






        if ($this->_request->isXmlHttpRequest()) {

            $this->_helper->layout->disableLayout();
            $this->_helper->viewRenderer->setNoRender(true);

            $objFlight = new Travel_Model_TblFlight();
            $objFlightProposal = new Travel_Model_TblFlightProposal();

            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
            //echo "<pre>";print_r($sessionFlightProposalParams->params);exit;
            $TPSysId = $sessionFlightProposalParams->params['TPSysId'];
            $MasterTPSysId = $sessionFlightProposalParams->params['MasterTPSysId'];
            $intCustomerSysId = $sessionFlightProposalParams->params['CustomerSysId'];
            $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];

            $AdultCount = $sessionFlightProposalParams->params['AdultCount'];
            $ChildCount = $sessionFlightProposalParams->params['ChildCount'];
            $InfantCount = $sessionFlightProposalParams->params['InfantCount'];
            $departureDates = $sessionFlightProposalParams->params['departuredate'];
            $totalPassengers = $AdultCount + $ChildCount + $InfantCount;

            $interNationalSearch = $sessionFlightProposalParams->params['IsInterNational'];

            $post = $this->getRequest()->getPost();
            $arrIntTpAirId = isset($post['arrIntTpAirId']) ? json_decode($post['arrIntTpAirId']) : [];
            $AirInvenSysId = $post['AirInvenSysId'];
            //echo "<pre>";print_r($arrIntTpAirId);exit;
            $ReturnAirInvenSysId = $post['ReturnAirInvenSysId'];
            $arrCustomer = array();
            $arrCustomerMembers = array();
            $objFlight->strCondition = " TBQAirInvenSysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
            $arrSelectedFlightFareDetails = $objFlight->getSelectedFlightDetails();
            $getTravelPlanByTPSysIds = $objFlightProposal->getVersionIdByTPSysIds($MasterTPSysId);
            $getflightData = $objFlight->getFlightSearchListForProposal("'" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "'");


            $departure_dates_string = $sessionFlightProposalParams->params['departuredate'];
            $explode_date = explode("/", $departure_dates_string);
            $departure_dates = $explode_date[2] . '-' . $explode_date[1] . '-' . $explode_date[0];

            $return_dates_string = $sessionFlightProposalParams->params['returndate'];
            $explode_return_date = explode("/", $return_dates_string);
            $return_dates = (isset($sessionFlightProposalParams->params['return_dates']) && !empty($sessionFlightProposalParams->params['return_dates'])) ? $explode_return_date[2] . '-' . $explode_return_date[1] . '-' . $explode_return_date[0] : '1900-01-01';
            //echo "<pre>";print_r($TPSysId);die;
            //echo "<pre>";print_r($sessionFlightProposalParams->params);exit;
            for ($i = 1; $i <= $totalPassengers; $i++) {

                $paxType = $post['paxType-' . $i];
                $firstName = $post['passenger-firstname-' . $i];
                $lastName = $post['passenger-lastname-' . $i];
                $relation = $post['relation-' . $i];
                $salutation = $post['passenger-salutation-' . $i];
                $mobileNumber = $post['mobile_number'];
                $email_id = $post['email_id'];

                $passengerDob = $post['passenger-dob-' . $i];
                $passengerPassportNo       = isset($post['passenger-PassportNo-' . $i]) ? $post['passenger-PassportNo-' . $i] : '';
                $passengerPassportExpiry       = isset($post['passenger-PassportExpiry-' . $i]) ? $post['passenger-PassportExpiry-' . $i] : '';
                if (!empty($passengerDob)) {
                    $passengerDob = explode("/", $passengerDob);
                    $passengerDob = $passengerDob[2] . "-" . $passengerDob[1] . "-" . $passengerDob[0];
                }
                if (!empty($passengerPassportExpiry)) {
                    $passengerPassportExpiry       = explode("/", $passengerPassportExpiry);
                    $passengerPassportExpiry       = $passengerPassportExpiry[2] . "-" . $passengerPassportExpiry[1] . "-" . $passengerPassportExpiry[0];
                }

                $passengerCity = $post['passenger-city-1'];
                $passengerCountry = $post['passenger-country-1'];
                $passengerAddress = $post['passenger-address-1'];



                if (empty($mobileNumber)) {
                    $response = array('succes' => false, 'msg' => 'Please enter mobile number.', 'index' => 'mobile_number');
                    echo json_encode($response);
                    exit;
                }

                if (strlen($mobileNumber) != 10 && strlen($mobileNumber) != 11) {
                    $response = array('succes' => false, 'msg' => 'Please enter a valid mobile number.', 'index' => 'mobile_number');
                    echo json_encode($response);
                    exit;
                }


                if (empty($email_id)) {
                    $response = array('succes' => false, 'msg' => 'Please enter Email ID.', 'index' => 'email_id');
                    echo json_encode($response);
                    exit;
                }

                if (!filter_var($email_id, FILTER_VALIDATE_EMAIL)) {
                    $msg = "Email address is not valid.";
                    $response = array('success' => false, 'msg' => $msg, 'index' => 'email_id');
                    echo json_encode($response);
                    exit;
                }



                if (empty($firstName)) {
                    $response = array('succes' => false, 'msg' => 'Please enter first name.', 'index' => 'passenger-firstname-' . $i);
                    echo json_encode($response);
                    exit;
                }


                if (empty($passengerDob)) {
                    $response = array('succes' => false, 'msg' => 'Please enter date of birth.', 'index' => 'passenger-dob-' . $i);
                    echo json_encode($response);
                    exit;
                }

                if (isset($post['passenger-PassportNo-' . $i]) && empty($passengerPassportNo)) {
                    $response = array('succes' => false, 'msg' => 'Please enter passenger passport no.', 'index' => 'passenger-PassportNo-' . $i);
                    echo json_encode($response);
                    exit;
                }
                if (isset($post['passenger-PassportExpiry-' . $i]) && empty($passengerPassportExpiry)) {
                    $response = array('succes' => false, 'msg' => 'Please enter passenger expiry date.', 'index' => 'passenger-PassportExpiry-' . $i);
                    echo json_encode($response);
                    exit;
                }

                if (isset($post['passenger-PassportExpiry-' . $i]) && strtotime($departure_dates) > strtotime($passengerPassportExpiry)) {
                    $response = array('succes' => false, 'msg' => 'Please enter passenger valid expiry date.', 'index' => 'passenger-PassportExpiry-' . $i);
                    echo json_encode($response);
                    exit;
                }

                if ($paxType == 1) {
                    if (!empty($departureDates)) {
                        $arrDepartureDates = explode("/", $sessionFlightProposalParams->params['departuredate']);
                        $departureDatesAD = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];
                        $AdultAge = date_diff(date_create($passengerDob), date_create($departureDatesAD))->y;

                        if ($AdultAge < 12) {
                            $response = array('succes' => false, 'msg' => "Adult age should be greater than 12 years. ", 'index' => 'passenger-dob-' . $i);
                            echo json_encode($response);
                            exit;
                        }
                    } else {
                        $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                        echo json_encode($response);
                        exit;
                    }
                }

                if (!empty($paxType) && $paxType == 2) {
                    //$departureDates = $sessionFlightSearchParams->params['departure_dates'];
                    if (!empty($departureDates)) {
                        $arrDepartureDates = explode("/", $sessionFlightProposalParams->params['departuredate']);
                        //echo '<pre>';print_r($arrDepartureDates[2]);
                        $departureDates = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];

                        $childAge = date_diff(date_create($passengerDob), date_create($departureDates))->y;
                        if ($childAge < 2 || $childAge >= 12) {
                            $response = array('succes' => false, 'msg' => "Child age should be 2 years or less than 12 years. ", 'index' => 'passenger-dob-' . $i);
                            echo json_encode($response);
                            exit;
                        }
                    } else {
                        $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                        echo json_encode($response);
                        exit;
                    }
                }

                if (!empty($paxType) && $paxType == 3) {
                    //$departureDates = $sessionFlightSearchParams->params['departure_dates'];
                    if (!empty($departureDates)) {
                        $arrDepartureDates = explode("/", $departureDates);
                        $departureDates       = $arrDepartureDates[2] . "-" . $arrDepartureDates[1] . "-" . $arrDepartureDates[0];
                        $infantAge = date_diff(date_create($passengerDob), date_create($departureDates))->y;
                        if ($infantAge >= 2) {
                            $response = array('succes' => false, 'msg' => "Infant age should be less than 2 years. ", 'index' => 'passenger-dob-' . $i);
                            echo json_encode($response);
                            exit;
                        }
                    } else {
                        $response = array('succes' => false, 'msg' => "Departure date can not be empty.", 'index' => 'mobile_number');
                        echo json_encode($response);
                        exit;
                    }
                }
                //echo $departureDates;die('dd');



                if (empty($passengerCity)) {
                    $response = array('succes' => false, 'msg' => 'Please enter City.', 'index' => 'passenger-city-' . $i);
                    echo json_encode($response);
                    exit;
                }

                if (empty($passengerAddress)) {
                    $response = array('succes' => false, 'msg' => 'Please enter Address.', 'index' => 'passenger-address-' . $i);
                    echo json_encode($response);
                    exit;
                }



                $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
                $intLeadSourceSysId = $this->_crmcustomerObj->getLeadSource($AgencySysId, 'Agency'); // for Master LeadSouce Creation
                $leadsource = (isset($intLeadSourceSysId[0]['LeadSourceSysId']) && !empty($intLeadSourceSysId[0]['LeadSourceSysId'])) ? $intLeadSourceSysId[0]['LeadSourceSysId'] : 0;

                $this->_leadstageObj = new Travel_Model_TblLeadStage();
                $getStageList = $this->_leadstageObj->getLeadStageSatus('New');
                $leadstage = (isset($getStageList[0]['TPStatusSysId']) && !empty($getStageList[0]['TPStatusSysId'])) ? $getStageList[0]['TPStatusSysId'] : 0;



                if ($i == 1 && $relation == 0) {
                    $arrCustomer = array(
                        'AgencySysId' => $AgencySysId, 'CRMCustSysId' => 0, 'EmailId' => $email_id, 'Salutation' => $salutation, 'Relation' => $relation,
                        'Logo' => '', 'IsfromSM' => '0', 'SMTypeId' => '0', 'SMId' => '', 'UserId' => '0', 'IsEmployee' => '0',
                        'Contacts' => $mobileNumber, 'ExitDate' => EMPTY_DATE, 'UserName' => '', 'FirstName' => $firstName, 'LastName' => $lastName,
                        'Designation' => '', 'Password' => '', 'RandStr' => '', 'PasswordExpiryDate' => EMPTY_DATE, 'IsPswExpire' => 0,
                        'OtherEmail' => '', 'SecondaryEmail' => '', 'LastLoginTime' => EMPTY_DATE, 'IsLogInNow' => 0, 'CreatedByUserSysId' => $AgencySysId,
                        'RandomCode' => '', 'Gender' => '', 'UserNickName' => '', 'UserPicPath' => '', 'ContactNo1' => '', 'ContactNo2' => '',
                        'HomePhone' => '', 'SecondaryPhone' => '', 'UserDetails' => '', 'DOB' => $passengerDob, 'PassportNo' => $passengerPassportNo, 'PassportExpiry' => $passengerPassportExpiry, 'Address' => $passengerAddress, 'CitySysId' => $passengerCity, 'paxType' => $paxType,
                        'StateOrZoneSysId' => 0, 'CountrySysId' => $passengerCountry, 'PinCode' => '', 'SecondaryAddress' => '', 'Fax' => '',
                        'MacIp' => '', 'SpeakingLangSysId' => 0, 'Signature' => '', 'UpdateDate' => EMPTY_DATE,
                        'RegisterDate' => EMPTY_DATE, 'IsApproved' => 0, 'IsActive' => 1, 'IsMarkForDelete' => '0',
                        'LeadSourceSysId' => $leadsource, 'LeadStageSysId' => $leadstage
                    );


                    if (empty($intCustomerSysId)) {
                        $objGest = new Travel_Model_Tbltbbcuser();
                        $arrCustomer['ContactNumber'] = $mobileNumber;
                        $intCustomerSysId = $objGest->createAgencyCustomer($arrCustomer, $AgencySysId);
                    } else {
                        $objGest = new Travel_Model_Tbltbbcuser();
                        $arrCustomer['ContactNumber'] = $mobileNumber;
                        $intCustomerSysId = $objGest->createAgencyCustomer($arrCustomer, $AgencySysId);
                    }
                } else {
                    if (!empty($passengerPassportNo)) {
                        $arrCustomerMembers[] = array(
                            'AgencySysId' => $AgencySysId, 'EmailId' => $email_id, 'Title' => $salutation, 'Relation' => $relation,
                            'Logo' => '', 'IsfromSM' => '0', 'SMTypeId' => '0', 'SMId' => '', 'UserId' => '0', 'IsEmployee' => '0',
                            'Contacts' => $mobileNumber, 'ExitDate' => EMPTY_DATE, 'UserName' => '', 'FirstName' => $firstName, 'LastName' => $lastName,
                            'Designation' => '', 'Password' => '', 'RandStr' => '', 'PasswordExpiryDate' => EMPTY_DATE, 'IsPswExpire' => 0,
                            'OtherEmail' => '', 'SecondaryEmail' => '', 'LastLoginTime' => EMPTY_DATE, 'IsLogInNow' => 0, 'CreatedByUserSysId' => $AgencySysId,
                            'RandomCode' => '', 'Gender' => '', 'UserNickName' => '', 'UserPicPath' => '', 'ContactNo1' => '', 'ContactNo2' => '',
                            'HomePhone' => '', 'SecondaryPhone' => '', 'UserDetails' => '', 'DOB' => $passengerDob, 'PassportNo' => $passengerPassportNo, 'PassportExpiry' => $passengerPassportExpiry, 'Address' => $passengerAddress, 'CitySysId' => $passengerCity, 'paxType' => $paxType,
                            'StateOrZoneSysId' => 0, 'CountrySysId' => $passengerCountry, 'PinCode' => '', 'SecondaryAddress' => '', 'Fax' => '',
                            'MacIp' => '', 'SpeakingLangSysId' => 0, 'Signature' => '', 'UpdateDate' => EMPTY_DATE,
                            'RegisterDate' => EMPTY_DATE, 'IsApproved' => 0, 'IsActive' => 1, 'IsMarkForDelete' => '0'
                        );
                    } else {
                        $arrCustomerMembers[] = array(
                            'AgencySysId' => $AgencySysId, 'EmailId' => $email_id, 'Title' => $salutation, 'Relation' => $relation,
                            'Logo' => '', 'IsfromSM' => '0', 'SMTypeId' => '0', 'SMId' => '', 'UserId' => '0', 'IsEmployee' => '0',
                            'Contacts' => $mobileNumber, 'ExitDate' => EMPTY_DATE, 'UserName' => '', 'FirstName' => $firstName, 'LastName' => $lastName,
                            'Designation' => '', 'Password' => '', 'RandStr' => '', 'PasswordExpiryDate' => EMPTY_DATE, 'IsPswExpire' => 0,
                            'OtherEmail' => '', 'SecondaryEmail' => '', 'LastLoginTime' => EMPTY_DATE, 'IsLogInNow' => 0, 'CreatedByUserSysId' => $AgencySysId,
                            'RandomCode' => '', 'Gender' => '', 'UserNickName' => '', 'UserPicPath' => '', 'ContactNo1' => '', 'ContactNo2' => '',
                            'HomePhone' => '', 'SecondaryPhone' => '', 'UserDetails' => '', 'DOB' => $passengerDob, 'Address' => $passengerAddress, 'CitySysId' => $passengerCity, 'paxType' => $paxType,
                            'StateOrZoneSysId' => 0, 'CountrySysId' => $passengerCountry, 'PinCode' => '', 'SecondaryAddress' => '', 'Fax' => '',
                            'MacIp' => '', 'SpeakingLangSysId' => 0, 'Signature' => '', 'UpdateDate' => EMPTY_DATE,
                            'RegisterDate' => EMPTY_DATE, 'IsApproved' => 0, 'IsActive' => 1, 'IsMarkForDelete' => '0'
                        );
                    }
                }
            }

            if (empty($intCustomerSysId)) {
                throw new Exception('Customer Id not found.');
            }



            $arrCustomerMembersIds = array();
            if (!empty($arrCustomerMembers) ) {
                $arrCustomerMembersIds = $objFlight->createAgencyCustomerMembers($arrCustomerMembers, $AgencySysId, $intCustomerSysId);
                //                echo "<pre>";print_r($arrCustomerMembersIds);exit;
            }

            //$intCRMCustSysId = $objFlight->getCRMCustSysId($arrCustomer);

            if (!empty($intCustomerSysId)) {
                $currentDate = date('Y-m-d H:i:s');


                $arrPaxData = array();

                if (!empty($TPSysId)) {

                    $objFlight->deleteTravelPlanPax($TPSysId);
                    foreach ($arrSelectedFlightFareDetails as $ks => $flightRounds) {
                        if (!empty($arrCustomer) ) {
                            $arrPaxData['TPSysId'] = $TPSysId;
                            $arrPaxData['VersionId'] = '1';
                            $arrPaxData['CustomerSysId'] = $intCustomerSysId;
                            $arrPaxData['MemberSysId'] = 0;
                            $arrPaxData['UpdateDate'] = date('Y-m-d H:i:s');
                            $arrPaxData['IsApproved'] = '1';
                            $arrPaxData['IsActive'] = '1';
                            $arrPaxData['IsMarkForDelete'] = '0';
                            $arrPaxData['IsReturn'] = $ks;
                            $objFlight->insertTravelPlanPax($arrPaxData);
                        }

                        if (!empty($arrCustomerMembersIds) ) {
                            $VersionId = 2;
                            foreach ($arrCustomerMembersIds as $memberSysId) {
                                $arrPaxData['TPSysId'] = $TPSysId;
                                $arrPaxData['VersionId'] = $VersionId;
                                $arrPaxData['CustomerSysId'] = $intCustomerSysId;
                                $arrPaxData['MemberSysId'] = $memberSysId;
                                $arrPaxData['UpdateDate'] = date('Y-m-d H:i:s');
                                $arrPaxData['IsApproved'] = '1';
                                $arrPaxData['IsActive'] = '1';
                                $arrPaxData['IsMarkForDelete'] = '0';
                                $arrPaxData['IsReturn'] = $ks;
                                $objFlight->insertTravelPlanPax($arrPaxData);
                                $VersionId++;
                            }
                        }
                    }
                }
            }


            $urlData = array(
                "MasterTPSysId" => $MasterTPSysId,
                "TPSysId" => $TPSysId,
                "AirInvenSysId" => $AirInvenSysId,
                "ReturnAirInvenSysId" => !empty($ReturnAirInvenSysId) ? $ReturnAirInvenSysId : 0,
                "CustomerSysId" => $intCustomerSysId,
                "arrIntTpAirId" => $arrIntTpAirId
            );

            $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($urlData);

            $response = array('success' => true, 'intCustomerSysId' => $intCustomerSysId, 'strUrlData' => $strUrlData);
            echo json_encode($response);
            exit;
        } else {



            $strUrlData = $this->view->strUrlData = $this->getRequest()->getParam('data');
            $arrUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataDecode($strUrlData);
            //echo "<pre>"; print_r($arrUrlData);
            $this->view->MasterTPSysId = $MasterTPSysId = trim($arrUrlData['MasterTPSysId']);
            $this->view->TPSysId = $TPSysId = trim($arrUrlData['TPSysId']);
            $this->view->AirInvenSysId = $AirInvenSysId = trim($arrUrlData['AirInvenSysId']);
            $this->view->ReturnAirInvenSysId = $ReturnAirInvenSysId = isset($arrUrlData['ReturnAirInvenSysId']) ? trim($arrUrlData['ReturnAirInvenSysId']) : 0;
            $strConditionNewVersionId = isset($arrUrlData['arrIntTpAirId']) ? ($arrUrlData['arrIntTpAirId']) : 0;
            $this->view->arrIntTpAirId = $arrIntTpAirId = isset($arrUrlData['arrIntTpAirId']) ? json_encode($arrUrlData['arrIntTpAirId']) : 0;

            $objFlightProposal = new Travel_Model_TblFlightProposal();
            $arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($MasterTPSysId);
            // echo "<pre>";print_r($arrAgencyDetails);exit;
            $this->view->arrAgencyDetails = $arrAgencyDetails;

            $arrProposalDetails = $objFlightProposal->getFlightProposalDetails($MasterTPSysId);
            $this->view->arrProposalDetails = $arrProposalDetails;

            /* Selected Flight Fare Details */
            $objFlight = new Travel_Model_TblFlight();
            $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
            if (!empty($ReturnAirInvenSysId)) {
                $objFlight->strConditionNew = " InvnItemSysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
                if (!empty($strConditionNewVersionId)) {
                    //                    $objFlight->strConditionNewVersionId = " VersionId IN ('" . implode(',',$strConditionNewVersionId) . "') ";
                }
            } else {
                $objFlight->strConditionNew = " InvnItemSysId IN ('" . $AirInvenSysId . "') ";
                if (!empty($strConditionNewVersionId)) {
                    $objFlight->strConditionNewVersionId = " VersionId IN ('" . implode(',', $strConditionNewVersionId) . "') ";
                }
            }
            $arrSelectedFlightFareDetails = $objFlight->getSelectedFlightFareDetails();
            $getSlectedFlightBookFareDetails = $objFlight->getSlectedFlightBookFareDetails();
            $this->view->arrSelectedFlightFareDetails = $arrSelectedFlightFareDetails;
            $this->view->getSlectedFlightBookFareDetails = $getSlectedFlightBookFareDetails;

            $ARR_SALUTION = unserialize(ARR_SALUTION);
            $ARR_CUSTOMER_RELATION = unserialize(ARR_CUSTOMER_RELATION);
            $this->view->ARR_CUSTOMER_RELATION = $ARR_CUSTOMER_RELATION;
            $this->view->ARR_SALUTION = $ARR_SALUTION;

            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
            $CustomerSysId = isset($arrAgencyDetails['CustomerSysId']) ? $arrAgencyDetails['CustomerSysId'] : $sessionFlightProposalParams->params['CustomerSysId'];

            if (isset($CustomerSysId) && !empty($CustomerSysId) && $CustomerSysId > 0) {
                $objFlightProposal = new Travel_Model_TblFlightProposal();

                $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
                $getcustomerDetail = $this->_crmcusttravelplan->GetTravelPlanDetailsofCustomer($MasterTPSysId);
                $customerDetails = $objFlightProposal->GetFlightProposalAgencyCustomerDetails($CustomerSysId);
                $this->view->customerDetails = $customerDetails;
                $this->view->getcustomerDetail = $getcustomerDetail;
            }
            //echo "<pre>";print_r($customerDetails);echo "</pre>";

            /* Proposal Customer Related Details Ends */






            if (!empty($MasterTPSysId)) {
                $objFlightProposal = new Travel_Model_TblFlightProposal();
                $arrFlightDetails = $objFlightProposal->getFlightProposalDetails($MasterTPSysId);
                //echo "<pre>";print_r($arrFlightDetails);
                $this->view->arrAirDetails = $arrFlightDetails;

                $SourceAirportCode = trim($arrFlightDetails[0]['SourceAirportCode']);
                if (!empty($SourceAirportCode)) {
                    $arrSourceAirport = $objFlightProposal->getAirPortByAirportCode($SourceAirportCode);
                }
                $this->view->SourceAirport = isset($arrSourceAirport['label']) ? $arrSourceAirport['label'] : '';

                $DestAirportCode = trim($arrFlightDetails[0]['DestAirportCode']);
                if (!empty($DestAirportCode)) {
                    $arrDestinationAirport = $objFlightProposal->getAirPortByAirportCode($DestAirportCode);
                }
                $this->view->DestinationAirport = isset($arrDestinationAirport['label']) ? $arrDestinationAirport['label'] : '';

                $arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($TPSysId);
                $this->view->arrAgencyDetails = $arrAgencyDetails;
            }
        }
    }
    

    public function getFlightDetailsAction()
    {

        if ($this->_request->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();
            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');

            $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
            $MasterTPSysId = $sessionFlightProposalParams->params['MasterTPSysId'];
            $intAdultCount = $sessionFlightProposalParams->params['AdultCount'];
            $intChildCount = $sessionFlightProposalParams->params['ChildCount'];
            $intInfantCount = $sessionFlightProposalParams->params['InfantCount'];
            $IsInterNational = $sessionFlightProposalParams->params['IsInterNational'];
            $returndate = $sessionFlightProposalParams->params['returndate'];
            $route = $sessionFlightProposalParams->params['route'];
            $post = $this->getRequest()->getPost();
            $SelectedResultIndex = $post['APIResultIndex'];
            if (!empty($returndate)) {
                $arrRreturndate = explode("/", $returndate);
                $returndate = $arrRreturndate[2] . "-" . $arrRreturndate[1] . "-" . $arrRreturndate[0];
            } else {
                $returndate = "";
            }
            $AirInvenSysId = trim($this->getRequest()->getParam('AirInvenSysId'));
            $TPSysId = trim($this->getRequest()->getParam('TPSysId'));
            $IsInterNational = trim($this->getRequest()->getParam('IsInterNational'));
            $sessionFlightProposalParams->params['TPSysId'] = $TPSysId;
            if (!empty($AirInvenSysId)) {
                $objFlightProposal = new Travel_Model_TblFlightProposal();
                $arrFlightDetails = $objFlightProposal->getFlightProposalDetails($MasterTPSysId, $TPSysId, $AirInvenSysId);
                $AgentExtraMarkUP = $arrFlightDetails[0]['MarkUp'] + $arrFlightDetails[0]['AgentsCustomServiceTaxAmount'];
                $TotalCost = $arrFlightDetails[0]['TotalCost'];
                $VersionId = $arrFlightDetails[0]['VersionId'];
                $arrIntTpAirId[] = $VersionId;
                $objFlight = new Travel_Model_TblFlight();
                $arrFlightDetails = $objFlight->getFlightDetailsByTBQAirInvenSysId($AirInvenSysId, $IsInterNational);
                $JourneyType = $arrFlightDetails['JourneyType'];
                $ArrivalTime = (array) $arrFlightDetails['ArrivalTime'];
                $arrArrivalTime = explode(" ", $ArrivalTime['date']);
                $ArrivalTime = $arrArrivalTime[0];
                $DepartureTime = (array) $arrFlightDetails['DepartureTime'];
                $arrDepartureTime = explode(" ", $DepartureTime['date']);
                $DepartureTime = $arrDepartureTime[0];
                $FlightNumberDB = trim($arrFlightDetails['FlightNumber']);
                $OfferedFareDB = round($arrFlightDetails['PublishedFare']);
                $FareClassDB = trim($arrFlightDetails['FareClass']);
                $arrData = array(
                    'JourneyType' => trim($JourneyType),
                    'Origin' => trim($arrFlightDetails['OriginAirportCode']),
                    'Destination' => trim($arrFlightDetails['DestinationAirportCode']),
                    'PreferredDepartureTime' => trim($ArrivalTime),
                    'PreferredReturnDate' => trim($returndate),
                    "AdultCount" => $intAdultCount,
                    "ChildCount" => $intChildCount,
                    "InfantCount" => $intInfantCount,
                    "PreferredAirlines" => trim($arrFlightDetails['AirlineCode']),
                    "Sources" => trim($arrFlightDetails['AirlineCode']),
                    "AirlineName" => trim($arrFlightDetails['AirlineName']),
                    "FlightNumber" => trim($arrFlightDetails['FlightNumber']),
                    "IsInterNational" => $IsInterNational,
                    "IsLCC" => trim($arrFlightDetails['IsLCC']),
                    "apiTraceId" => trim($arrFlightDetails['apiTraceId']),
                    "IsRefundable" => trim($arrFlightDetails['IsRefundable']),
                    "FareClass" => trim($arrFlightDetails['FareClass']),
                    "ResultIndex" => trim($arrFlightDetails['ApiResultIndex']),
                    "IsLCCReturn" => '0'
                );
                $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->searchApiProposalFlights($arrData);
                if (isset($response['ResponseStatus']) && $response['ResponseStatus'] == 1) {
                    if (!empty($response['FlightResults'])) {
                        $TraceId = $response['TraceId'];
                        $flightFound = false;
                        foreach ($response['FlightResults'] as $result) {
                            $ResultIndex = $result['ResultIndex'];
                            $OfferedFare = round($result['Fare']['OfferedFare']);
                            $CommissionEarned = $result['Fare']['CommissionEarned'];
                            $AirlineCode = $result['Segments'][0][0]['Airline']['AirlineCode'];
                            $FlightNumber = $result['Segments'][0][0]['Airline']['FlightNumber'];
                            $FlightNumberAPI = $AirlineCode . "-" . $FlightNumber;
                            $FareClass = $result['Segments'][0][0]['Airline']['FareClass'];
                            $IsGSTMandatory = isset($result['IsGSTMandatory']) ? $result['IsGSTMandatory'] : '0';
                            if (trim($FlightNumberAPI) === $FlightNumberDB && $FareClass === $FareClassDB) {
                                $checkArray = array(
                                    "FlightNumberAPI" => $FlightNumberAPI,
                                    "FlightNumberDB" => $FlightNumberDB,
                                    "OfferedFareDB" => $OfferedFareDB,
                                    "OfferedFare" => $OfferedFare,
                                );
                                $flightFound = true;
                                $arrData = array(
                                    "apiTraceId" => $TraceId,
                                    "ApiResultIndex" => $ResultIndex,
                                    "AirInvenSysId" => $AirInvenSysId,
                                    "AgencySysId" => $AgencySysId
                                );
                                $sessionFlightProposalParams->params['TraceId'] = $TraceId;
                                $sessionFlightProposalParams->params['ResultIndex'] = $ResultIndex;
                                $responseFareQuote = $this->proposalFareQuoteDetailsAction($arrData);
                                //echo "<pre>";print_r($responseFareQuote);exit;
                                $updateData = array(
                                    "Cost" => $responseFareQuote['intOfferedFare'],
                                    "TotalCost" => number_format(($responseFareQuote['UpdatedFare'] + $AgentExtraMarkUP), 2, '.', '')
                                );
                                $updateDataFare = array(
                                    "IsGSTMandatory" => $IsGSTMandatory
                                );
                                $objFlight->updateBookingDetails($updateData, $VersionId, $AirInvenSysId);
                                $objFlight->updateFlightFareDetails($updateDataFare, $AirInvenSysId);
                                $FareQuoteErrorCode = $responseFareQuote['ErrorCode'];
                                $FareQuoteErrorMessage = $responseFareQuote['ErrorMessage'];
                                if (empty($FareQuoteErrorCode)) {
                                    $arrIsPriceChanged = $responseFareQuote['arrIsPriceChanged'];
                                    $UpdatedFare = $responseFareQuote['UpdatedFare'];
                                    $urlData = array(
                                        "MasterTPSysId" => $MasterTPSysId,
                                        "TPSysId" => $TPSysId,
                                        "AirInvenSysId" => $AirInvenSysId,
                                        "arrIntTpAirId" => $arrIntTpAirId
                                    );
                                    $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($urlData);
                                    $response = array('success' => true, 'msg' => '', 'arrIsPriceChanged' => $arrIsPriceChanged, 'UpdatedFare' => ($UpdatedFare + $AgentExtraMarkUP), 'OldFare' => $TotalCost, 'urlData' => $strUrlData);
                                    echo json_encode($response);
                                    exit;
                                } else {
                                    $response = array('success' => false, 'msg' => $FareQuoteErrorMessage);
                                    echo json_encode($response);
                                    exit;
                                }
                                break;
                            }
                        }
                        // if flight not found in response...
                        if (!$flightFound) {
                            $response = array('success' => false, 'msg' => "Oops! This flight is no longer available.Please contact administrator for more details.");
                            echo json_encode($response);
                            exit;
                        }
                    } else {
                        //Error
                        $ErrorMessage = $response['ErrorMessage'];
                        if (!empty($ErrorMessage)) {
                            $response = array('success' => false, 'msg' => $ErrorMessage);
                            echo json_encode($response);
                            exit;
                        }
                    }
                } else {
                    //Error
                    $ErrorMessage = $response['ErrorMessage'];
                    if (!empty($ErrorMessage)) {
                        $response = array('success' => false, 'msg' => $ErrorMessage);
                        echo json_encode($response);
                        exit;
                    }
                }
            } else {
                //Error
                $response = array('success' => false, 'msg' => "Oops! There might be some technical error.Please contact administrator for more details.");
                echo json_encode($response);
                exit;
            }
        }
        exit;
    }

    public function getRoundTripFlightDetailsAction()
    {

        if ($this->_request->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();


            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
            $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
            $MasterTPSysId = $sessionFlightProposalParams->params['MasterTPSysId'];
            $intAdultCount = $sessionFlightProposalParams->params['AdultCount'];
            $intChildCount = $sessionFlightProposalParams->params['ChildCount'];
            $intInfantCount = $sessionFlightProposalParams->params['InfantCount'];
            $IsInterNational = $sessionFlightProposalParams->params['IsInterNational'];
            $returndate = $sessionFlightProposalParams->params['returndate'];
            if (!empty($returndate)) {
                $arrRreturndate = explode("/", $returndate);
                $returndate = $arrRreturndate[2] . "-" . $arrRreturndate[1] . "-" . $arrRreturndate[0];
            } else {
                $returndate = "";
            }

            $AirInvenSysId = trim($this->getRequest()->getParam('AirInvenSysId'));
            $ReturnAirInvenSysId = trim($this->getRequest()->getParam('ReturnAirInvenSysId'));

            $arrAirInvenSysIds[] = $AirInvenSysId;
            $arrAirInvenSysIds[] = $ReturnAirInvenSysId;
            //            $objFlightProposal = new Travel_Model_TblFlightProposal();
            //            $objFlightProposal->strCondition = " t3.InvnItemSysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
            //            $arrVersionId = $objFlightProposal->getVersionIdByTPSysIds($intTPSysId);

            $TPSysId = trim($this->getRequest()->getParam('TPSysId'));

            $IsInterNational = trim($this->getRequest()->getParam('IsInterNational'));
            $sessionFlightProposalParams->params['TPSysId'] = $TPSysId;
            $objFlightProposal = new Travel_Model_TblFlightProposal();
            $arrFlightDetails = $objFlightProposal->getFlightProposalDetails($MasterTPSysId, $TPSysId);
            $DetailsByAirInvenSysId = $objFlightProposal->getFlightProposalDetailsByAirInvenSysId($AirInvenSysId);
            $DetailsByReturnAirInvenSysId = $objFlightProposal->getFlightProposalDetailsByAirInvenSysId($ReturnAirInvenSysId);
            $AgentExtraMarkUP = $DetailsByAirInvenSysId['MarkUp'] + $DetailsByAirInvenSysId['AgentsCustomServiceTaxAmount'];
            $ReturnAgentExtraMarkUP = $DetailsByReturnAirInvenSysId['MarkUp'] + $DetailsByReturnAirInvenSysId['AgentsCustomServiceTaxAmount'];
            $arrIntTpAirId[] = $DetailsByAirInvenSysId['VersionId'];
            $arrIntTpAirId[] = $DetailsByReturnAirInvenSysId['VersionId'];

            //            echo "<pre>";print_r($arrIntTpAirId);
            //            echo "<pre>";print_r($TPSysId);
            //            echo "<pre>";print_r($arrAirInvenSysIds);
            // echo "<pre>";print_r($arrIntTpAirId);exit;
            if (!empty($arrAirInvenSysIds) ) {

                $arrIsPriceChanged = array();
                $UpdatedFare = array();
                $OfferedFareNew = array();
                $arrResultIndex = array();
                $sessionFlightProposalParams->params['ResultIndex'] = '';
                $arrNew = array();
                //foreach ($arrAirInvenSysIds as $AirInvenSysId){
                $objFlight = new Travel_Model_TblFlight();
                $arrFlightDetails = $objFlight->getFlightDetailsByTBQAirInvenSysId($AirInvenSysId, $IsInterNational);

                //echo "<pre>";print_r($arrFlightDetails);exit;
                $JourneyType = $arrFlightDetails['JourneyType'];
                $ArrivalTime = (array) $arrFlightDetails['ArrivalTime'];
                $arrArrivalTime = explode(" ", $ArrivalTime['date']);
                $ArrivalTime = $arrArrivalTime[0];
                $DepartureTime = (array) $arrFlightDetails['DepartureTime'];
                $arrDepartureTime = explode(" ", $DepartureTime['date']);
                $DepartureTime = $arrDepartureTime[0];

                $FlightNumberDB = trim($arrFlightDetails['FlightNumber']);
                $OfferedFareDB = round($arrFlightDetails['PublishedFare']);

                if (!empty($ReturnAirInvenSysId)) {
                    $arrReturnFlightDetails = $objFlight->getFlightDetailsByTBQAirInvenSysId($ReturnAirInvenSysId, $IsInterNational);
                    $ReturnFlightNumberDB = trim($arrReturnFlightDetails['FlightNumber']);
                    $ReturnOfferedFareDB = round($arrReturnFlightDetails['PublishedFare']);
                } else {
                    $ReturnFlightNumberDB = "";
                    $ReturnOfferedFareDB = 0;
                }

                $arrData = array(
                    'JourneyType' => trim($JourneyType),
                    'Origin' => trim($arrFlightDetails['OriginAirportCode']),
                    'Destination' => trim($arrFlightDetails['DestinationAirportCode']),
                    'PreferredDepartureTime' => trim($ArrivalTime),
                    'PreferredReturnDate' => trim($returndate),
                    "AdultCount" => $intAdultCount,
                    "ChildCount" => $intChildCount,
                    "InfantCount" => $intInfantCount,
                    "PreferredAirlines" => trim($arrFlightDetails['AirlineCode']),
                    "PreferredAirlinesReturn" => trim($arrReturnFlightDetails['AirlineCode']),
                    "Sources" => trim($arrFlightDetails['AirlineCode']),
                    "IsInterNational" => $IsInterNational,
                    "IsLCC" => trim($arrFlightDetails['IsLCC']),
                    "IsLCCReturn" => trim($arrReturnFlightDetails['IsLCC'])
                );

                $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->searchApiProposalFlights($arrData);

                if (isset($response['ResponseStatus']) && $response['ResponseStatus'] == 1) {
                    if (!empty($response['FlightResults']) ) {
                        $TraceId = $response['TraceId'];
                        $flightFound = false;
                        $flightFoundReturn = false;

                        $arrNew = array_merge($response['FlightResults'], $response['FlightResultsInBound']);

                        $FareQuoteComputed = false;
                        $FareQuoteComputedReturn = false;
                        foreach ($arrNew as $result) {
                            //echo $result['ResultIndex']."<br/>";
                            $OfferedFare = round($result['Fare']['OfferedFare']);
                            $CommissionEarned = $result['Fare']['CommissionEarned'];
                            $AirlineCode = $result['Segments'][0][0]['Airline']['AirlineCode'];
                            $FlightNumber = $result['Segments'][0][0]['Airline']['FlightNumber'];
                            $FlightNumberAPI = $AirlineCode . "-" . $FlightNumber;

                            if (($FlightNumberAPI === $FlightNumberDB) && ($OfferedFareDB == $OfferedFare) && !$FareQuoteComputed) {
                                $flightFound = true;
                                $arrData = array(
                                    "apiTraceId" => $TraceId,
                                    "ApiResultIndex" => $result['ResultIndex'],
                                    "AirInvenSysId" => $AirInvenSysId,
                                    "AgencySysId" => $AgencySysId
                                );
                                $arrResultIndex[] = $result['ResultIndex'];
                                $sessionFlightProposalParams->params['ResultIndex'] = $arrResultIndex;
                                $sessionFlightProposalParams->params['TraceId'] = $TraceId;

                                $responseFareQuote = $this->proposalFareQuoteDetailsAction($arrData);

                                //echo "<pre>";print_r($responseFareQuote);echo "</pre>";
                                $NewFateData = array(
                                    "Cost" => $responseFareQuote['intOfferedFare'],
                                    "TotalCost" => ($responseFareQuote['UpdatedFare'] + $AgentExtraMarkUP)
                                );
                                $objFlight->updateBookingDetailsByInvnItemSysId($NewFateData, $arrData['AirInvenSysId']);

                                $FareQuoteErrorCode = $responseFareQuote['ErrorCode'];
                                $FareQuoteErrorMessage = $responseFareQuote['ErrorMessage'];
                                if (empty($FareQuoteErrorCode)) {
                                    $arrIsPriceChanged[] = $responseFareQuote['arrIsPriceChanged'];
                                    $UpdatedFare[] = ($responseFareQuote['UpdatedFare'] + $AgentExtraMarkUP);
                                    $OfferedFareNew[] = $responseFareQuote['intOfferedFare'];
                                    $FareQuoteComputed = $responseFareQuote['FareQuoteComputed'];
                                } else {
                                    $response = array('success' => false, 'msg' => 'Oops! Error, please choose another departure flight. ' . $FareQuoteErrorMessage);
                                    echo json_encode($response);
                                    exit;
                                }
                            }

                            //continue;
                            //$flightFound = false;
                            if (($FlightNumberAPI === $ReturnFlightNumberDB) && ($ReturnOfferedFareDB == $OfferedFare) && !$FareQuoteComputedReturn) {
                                //echo $result['ResultIndex']; exit;
                                $flightFoundReturn = true;
                                $arrData = array(
                                    "apiTraceId" => $TraceId,
                                    "ApiResultIndex" => $result['ResultIndex'],
                                    "AirInvenSysId" => $ReturnAirInvenSysId,
                                    "AgencySysId" => $AgencySysId
                                );
                                $arrResultIndex[] = $result['ResultIndex'];
                                $sessionFlightProposalParams->params['ResultIndex'] = $arrResultIndex;
                                $sessionFlightProposalParams->params['TraceId'] = $TraceId;

                                $responseFareQuote = $this->proposalFareQuoteDetailsAction($arrData);
                                //echo "<pre>";print_r($arrData);
                                //echo "<pre>";print_r($responseFareQuote);
                                $NewFateData = array(
                                    "Cost" => $responseFareQuote['intOfferedFare'],
                                    "TotalCost" => ($responseFareQuote['UpdatedFare'] + $ReturnAgentExtraMarkUP)
                                );
                                $objFlight->updateBookingDetailsByInvnItemSysId($NewFateData, $arrData['AirInvenSysId']);

                                $FareQuoteErrorCode = $responseFareQuote['ErrorCode'];
                                $FareQuoteErrorMessage = $responseFareQuote['ErrorMessage'];
                                if (empty($FareQuoteErrorCode)) {
                                    $arrIsPriceChanged[] = $responseFareQuote['arrIsPriceChanged'];
                                    $UpdatedFare[] = ($responseFareQuote['UpdatedFare'] + $ReturnAgentExtraMarkUP);
                                    $OfferedFareNew[] = $responseFareQuote['intOfferedFare'];
                                    $FareQuoteComputedReturn = $responseFareQuote['FareQuoteComputed'];
                                } else {
                                    $response = array('success' => false, 'msg' => 'Oops! Error, please choose another return flight. ' . $FareQuoteErrorMessage);
                                    echo json_encode($response);
                                    exit;
                                }
                            }
                        }
                        //die('ddd');

                        // if flight not found in response...
                        if (!$flightFound) {
                            $response = array('success' => false, 'msg' => "Oops! The depature flight you are looking is no longer available,Please choose another flight or please contact administrator for more details.");
                            echo json_encode($response);
                            exit;
                        }

                        if (!$flightFoundReturn) {
                            $response = array('success' => false, 'msg' => "Oops! The return flight you are looking is no longer available,Please choose another flight or please contact administrator for more details.");
                            echo json_encode($response);
                            exit;
                        }
                    } else {
                        //Error
                        $ErrorMessage = $response['ErrorMessage'];
                        if (!empty($ErrorMessage)) {
                            $response = array('success' => false, 'msg' => $ErrorMessage);
                            echo json_encode($response);
                            exit;
                        }
                    }
                } else {
                    //Error
                    $ErrorMessage = $response['ErrorMessage'];
                    if (!empty($ErrorMessage)) {
                        $response = array('success' => false, 'msg' => $ErrorMessage);
                        echo json_encode($response);
                        exit;
                    }
                }


                //}// Foreach Ends..
                //echo "<pre>";print_r($UpdatedFare);
                //echo "<pre>";print_r($arrIsPriceChanged);exit;
                //$arrIsPriceChangedint_r($arrResultIndex);exit;
                $urlData = array(
                    "MasterTPSysId" => $MasterTPSysId,
                    "TPSysId" => $TPSysId,
                    "AirInvenSysId" => trim($this->getRequest()->getParam('AirInvenSysId')),
                    "ReturnAirInvenSysId" => trim($this->getRequest()->getParam('ReturnAirInvenSysId')),
                    "arrIntTpAirId" => $arrIntTpAirId
                );
                $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($urlData);

                $response = array('success' => true, 'msg' => '', 'arrIsPriceChanged' => $arrIsPriceChanged, 'UpdatedFare' => $UpdatedFare, 'urlData' => $strUrlData);
                //echo "<pre>";print_r($response);exit;
                echo json_encode($response);
                exit;
            } else {
                //Error
                $response = array('success' => false, 'msg' => "Oops! There might be some technical error.Please contact administrator for more details.");
                echo json_encode($response);
                exit;
            }
        }
        exit;
    }

    public function getFlightItineraryAction()
    {

        if ($this->_request->isXmlHttpRequest()) {
            /* Disable Layout */
            $this->_helper->layout->disableLayout();

            $AirInvenSysId = trim($this->getRequest()->getParam('AirInvenSysId'));
            $IsInterNational = trim($this->getRequest()->getParam('IsInterNational'));
            if (!empty($AirInvenSysId)) {

                $objFlight = new Travel_Model_TblFlight();
                $arrFlightItenairy = $objFlight->getFlightItinerary($AirInvenSysId, $IsInterNational);
                $this->view->arrFlightItenairy = $arrFlightItenairy;

                $this->render('get-flight-itinerary');
            }
        }
    }

    public function getFlightFareRuleAction()
    {
        if ($this->_request->isXmlHttpRequest()) {
            /* Disable Layout */
            $this->_helper->layout->disableLayout();
            $AirInvenSysId = trim($this->getRequest()->getParam('AirInvenSysId'));
            if (!empty($AirInvenSysId)) {

                $objFlight = new Travel_Model_TblFlight();
                $arrFlightFareRule = $objFlight->getFlightFareRuleInformation($AirInvenSysId);
                //echo "<pre>"; print_r($arrFlightFareRule); exit;
                $this->view->arrFlightFareRule = $arrFlightFareRule;


                $objCity = new Travel_Model_TblCity();
                $SourcePlaceSysId = $arrFlightFareRule[0]['SourcePlaceSysId'];
                if (!empty($SourcePlaceSysId)) {
                    $this->view->strSourceCity = $strSourceCity = $objCity->getCityNameById($SourcePlaceSysId);
                }
                $DestPlaceSysId = $arrFlightFareRule[0]['DestPlaceSysId'];
                if (!empty($DestPlaceSysId)) {
                    $this->view->strDestinationCity = $strDestinationCity = $objCity->getCityNameById($DestPlaceSysId);
                }




                $objFlight = new Travel_Model_TblFlight();
                $objFlight->strCondition = " TBQAirInvenSysId IN ('" . $AirInvenSysId . "') ";
                $arrSelectedFlightDetails = $objFlight->getSelectedFlightDetails();
                //echo "<pre>";print_r($arrSelectedFlightDetails);exit;

                if (!empty($arrSelectedFlightDetails) ) {
                    $TraceId = trim($arrSelectedFlightDetails[0]['apiTraceId']);
                    $ResultIndex = trim($arrSelectedFlightDetails[0]['ApiResultIndex']);
                    $data = array(
                        "TraceId" => $TraceId,
                        "ResultIndex" => $ResultIndex
                    );
                    $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->fareRuleDetails($data);

                    if (isset($response['Response']['Error']['ErrorCode']) && $response['Response']['Error']['ErrorCode'] == '0') {
                        $this->view->FareRuleDetail = isset($response['Response']['FareRules'][0]['FareRuleDetail']) ? $response['Response']['FareRules'][0]['FareRuleDetail'] : '';
                    }

                    //echo "<pre>";print_r($response);exit;
                }
            }
            $this->render('get-flight-fare-rule');
        }
    }

    public function getFlightBaggageInformationAction()
    {


        if ($this->_request->isXmlHttpRequest()) {
            /* Disable Layout */
            $this->_helper->layout->disableLayout();
            $AirInvenSysId = trim($this->getRequest()->getParam('AirInvenSysId'));
            $IsInterNational = trim($this->getRequest()->getParam('IsInterNational'));
            if (!empty($AirInvenSysId)) {
                $objFlight = new Travel_Model_TblFlight();
                $arrFlightBaggage = $objFlight->getFlightBaggageInformation($AirInvenSysId, $IsInterNational);
                $this->view->arrFlightBaggage = $arrFlightBaggage;
            }
            $this->render('get-flight-baggage-information');
        }
    }

    public function validatePaymentAction()
    {
        if ($this->_request->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();
            $this->paymentMdl = new Payment_Model_Payment();
            $AgencySysId = $this->getRequest()->getParam('AgencySysId');
            $intPublishFare = $this->getRequest()->getParam('intPublishFare');
            $wallet = $this->paymentMdl->getDetailsByUniqueId("TB_Agency_Wallet", "AgencySysId", $AgencySysId);
            $post = $this->getRequest()->getPost();
            $crmcustomerObj     = new Travel_Model_CRM_Customer();
            // $arrAgencyDetail    = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
            // $IsCheckWallet = isset($arrAgencyDetail['IsCheckWallet']) ? $arrAgencyDetail['IsCheckWallet'] : 0;
            // echo '<pre>';
            // print_r($IsCheckWallet);
            // print_r($post);
            // die;
            $response = array('success' => true, 'message' => '');
            echo json_encode($response);
            exit;
            if ($wallet['BalanceAmount'] >= $intPublishFare) {
                $response = array('success' => true, 'message' => '');
                echo json_encode($response);
                exit;
            } else {
                $response = array('success' => false, 'message' => 'Unable to  continue payment! please contact agency with this message');
                echo json_encode($response);
                exit;
            }
            echo '<pre>';
            print_r($wallet['BalanceAmount']);
            echo $intPublishFare = $this->getRequest()->getParam('intPublishFare');
            die;
        }
    }
    public function reviewProposalBookingAction()
    {

        $strUrlData = $this->view->strUrlData = $this->getRequest()->getParam('data');
        $arrUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataDecode($strUrlData);
        //echo '<pre>';print_r($arrUrlData);

        $this->view->MasterTPSysId = $MasterTPSysId = trim($arrUrlData['MasterTPSysId']);
        $this->view->TPSysId = $TPSysId = trim($arrUrlData['TPSysId']);
        $arrIntTpAirId = isset($arrUrlData['arrIntTpAirId']) ? $arrUrlData['arrIntTpAirId'] : '';
        $AirInvenSysId = trim($arrUrlData['AirInvenSysId']);
        $intCustomerSysId = !empty($arrUrlData['CustomerSysId']) ? $arrUrlData['CustomerSysId'] : 0;
        $this->view->ReturnAirInvenSysId = $ReturnAirInvenSysId = isset($arrUrlData['ReturnAirInvenSysId']) ? trim($arrUrlData['ReturnAirInvenSysId']) : 0;

        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $arrProposalDetails = $objFlightProposal->getFlightProposalDetails($MasterTPSysId);
        $this->view->arrProposalDetails = $arrProposalDetails;

        $arrPriceDetails = [];
        if (!empty($arrProposalDetails) ) {
            foreach ($arrProposalDetails as $pDetails) {
                $InvnItemSysId = trim($pDetails['InvnItemSysId']);
                $extraMarkUp = trim($pDetails['MarkUp']);
                $extraMarkUpTaxAmount = trim($pDetails['AgentsCustomServiceTaxAmount']);
                $arrPriceDetails[$InvnItemSysId] = [
                    "extraMarkUp" => $extraMarkUp,
                    "extraMarkUpTaxAmount" => $extraMarkUpTaxAmount
                ];
            }
        }


        /* Selected Flight Fare Details */
        $objFlight = new Travel_Model_TblFlight();
        $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
        if (!empty($ReturnAirInvenSysId)) {
            $objFlight->strConditionNew = " InvnItemSysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
            if (!empty($arrIntTpAirId)) {
                $objFlight->strConditionNewVersionId = " VersionId IN ('" . implode(',', $arrIntTpAirId) . "') ";
            }
        } else {
            $objFlight->strConditionNew = " InvnItemSysId IN ('" . $AirInvenSysId . "') ";
            if (!empty($arrIntTpAirId)) {
                $objFlight->strConditionNewVersionId = " VersionId IN ('" . implode(',', $arrIntTpAirId) . "') ";
            }
        }
        if (!empty($arrIntTpAirId) && isset($arrIntTpAirId[0]) && isset($arrIntTpAirId[1])) {
            $objFlight->strConditionNewVersionId = " VersionId IN ('" . $arrIntTpAirId[0] . "','" . $arrIntTpAirId[1] . "') ";
        }
        $getSlectedFlightBookFareDetails = $objFlight->getSlectedFlightBookFareDetails();
        $this->view->getSlectedFlightBookFareDetails = $getSlectedFlightBookFareDetails;
        $arrSelectedFlightFareDetails = $objFlight->getSelectedFlightFareDetails();
        $this->view->arrSelectedFlightFareDetails = $arrSelectedFlightFareDetails;
        //        echo '<pre>';print_r($arrSelectedFlightFareDetails);echo '</pre>';

        if (!empty($getSlectedFlightBookFareDetails) ) {
            $intPublishFareNew = 0;
            foreach ($getSlectedFlightBookFareDetails as $Val) {
                $intPublishFareNew += !empty($Val['TotalCost']) ? $Val['TotalCost'] : '0';
            }
        }
        if (!empty($arrSelectedFlightFareDetails) ) {
            $intPublishFare = 0;
            $intOfferedFareForStringData = 0;
            $intGTXMarkUpForStringData = 0;
            $intTotalEarningsForAgencyForStringData = 0;
            $intSTaxOnAgencyFixMarkUpForStringData = 0;
            foreach ($arrSelectedFlightFareDetails as $fareVal) {

                $OfferedFare = $fareVal['OfferedFare'];
                $CommissionEarned = $fareVal['CommissionEarned'];
                $PLBEarned = $fareVal['PLBEarned'];
                $IncentiveEarned = $fareVal['IncentiveEarned'];
                $Currency = $fareVal['Currency'];
                $TBQAirInvenAPISysId = trim($fareVal['TBQAirInvenAPISysId']);


                $AgentsCustomMarkUp = isset($arrPriceDetails[$TBQAirInvenAPISysId]['extraMarkUp']) ? $arrPriceDetails[$TBQAirInvenAPISysId]['extraMarkUp'] : 0;
                $AgentsCustomServiceTaxAmount = isset($arrPriceDetails[$TBQAirInvenAPISysId]['extraMarkUpTaxAmount']) ? $arrPriceDetails[$TBQAirInvenAPISysId]['extraMarkUpTaxAmount'] : 0;

                $arrAllCommissions = array(
                    'intCommissionEarned' => $CommissionEarned,
                    'intPLBEarned' => $PLBEarned,
                    'intIncentiveEarned' => $IncentiveEarned
                );

                $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
                $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
                $intAdultCount = $sessionFlightProposalParams->params['AdultCount'];
                $intChildCount = $sessionFlightProposalParams->params['ChildCount'];
                $intInfantCount = $sessionFlightProposalParams->params['InfantCount'];

                $intTatalPaxCTForMarkUp = $intAdultCount + $intChildCount + $intInfantCount;


                $IsInterNational = $sessionFlightProposalParams->params['IsInterNational'];
                if ($IsInterNational) {
                    $intCountryCode = "INTERNATIONAL";
                } else {
                    $intCountryCode = "IN";
                }

                $arrPriceAndMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getApiPriceWithMarkupAndServiceTax($arrAllCommissions, $OfferedFare, $intCountryCode, $AgencySysId);
                $intOfferedFare = $arrPriceAndMarkUps['intOfferedFare'];
                $intGTXMarkUp = ($arrPriceAndMarkUps['intGTXMarkUp'] * $intTatalPaxCTForMarkUp);
                $intSTaxOnGTXMarkUp = ($arrPriceAndMarkUps['intSTaxOnGTXMarkUp'] * $intTatalPaxCTForMarkUp);
                $intAgencyFixMarkUp = ($arrPriceAndMarkUps['intAgencyFixMarkUp'] * $intTatalPaxCTForMarkUp);
                $intSTaxOnAgencyFixMarkUp = ($arrPriceAndMarkUps['intSTaxOnAgencyFixMarkUp'] * $intTatalPaxCTForMarkUp);


                $intOfferedFareForStringData += $arrPriceAndMarkUps['intOfferedFare'];
                $intGTXMarkUpForStringData += ($arrPriceAndMarkUps['intGTXMarkUp'] * $intTatalPaxCTForMarkUp);

                $intSTaxOnAgencyFixMarkUpForStringData += ($arrPriceAndMarkUps['intSTaxOnAgencyFixMarkUp'] * $intTatalPaxCTForMarkUp);


                $intCommisionEarnedForAgency = $arrPriceAndMarkUps['intCommisionEarnedForAgency'];
                $intPLBEarnedForAgency = $arrPriceAndMarkUps['intPLBEarnedForAgency'];
                $intIncentiveEarnedForAgency = $arrPriceAndMarkUps['intIncentiveEarnedForAgency'];
                $intTotalEarningsForAgency = $intCommisionEarnedForAgency + $intPLBEarnedForAgency + $intIncentiveEarnedForAgency + $intAgencyFixMarkUp;


                $intTotalEarningsForAgencyForStringData += $intTotalEarningsForAgency;




                $intGSTOnAgencyCommisionEarned = $arrPriceAndMarkUps['intGSTOnAgencyCommisionEarned'];
                $intGSTOnAgencyPLBEarned = $arrPriceAndMarkUps['intGSTOnAgencyPLBEarned'];
                $intGSTOnAgencyIncentiveEarned = $arrPriceAndMarkUps['intGSTOnAgencyIncentiveEarned'];
                $intTotalGSTAgencyEarnings = $intSTaxOnAgencyFixMarkUp + $intGSTOnAgencyCommisionEarned + $intGSTOnAgencyPLBEarned + $intGSTOnAgencyIncentiveEarned;

                $intPublishFare += $intOfferedFare + $intGTXMarkUp + $intTotalEarningsForAgency + $intTotalGSTAgencyEarnings + $AgentsCustomMarkUp + $AgentsCustomServiceTaxAmount;
                //$intPublishFare += $intOfferedFare + $intGTXMarkUp + $intTotalEarningsForAgencyForStringData + $intTotalGSTAgencyEarnings + $AgentsCustomMarkUp + $AgentsCustomServiceTaxAmount;
            }
        }

        //echo $intPublishFare;
        /* Selected Flight Fare Details Ends */

        /* Selected Flight Details */
        $objFlight->strCondition = " TBQAirInvenSysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
        $arrSelectedFlightDetails = $objFlight->getSelectedFlightDetails();
        $this->view->arrSelectedFlightDetails = $arrSelectedFlightDetails;
        /* Selected Flight Details */

        /* Proposal Customer Related Details */
        $ARR_SALUTION = unserialize(ARR_SALUTION);
        $ARR_CUSTOMER_RELATION = unserialize(ARR_CUSTOMER_RELATION);
        $this->view->ARR_CUSTOMER_RELATION = $ARR_CUSTOMER_RELATION;
        $this->view->ARR_SALUTION = $ARR_SALUTION;

        $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        $this->view->CustomerSysId = $CustomerSysId = $sessionFlightProposalParams->params['CustomerSysId'];


        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $TPSysId);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
            if (isset($intCustomerSysId) && !empty($intCustomerSysId) && $intCustomerSysId > 0) {
                $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
                $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
                $getcustomerDetail = $this->_crmcusttravelplan->GetTravelPlanDetailsofCustomer($MasterTPSysId);
                $customerDetsils = $this->_crmcustomerObj->GetAgencyCustomerById($intCustomerSysId);
                $this->view->customerDetsils = $customerDetsils;
                $this->view->getcustomerDetail = $getcustomerDetail;
            }
        }
        //echo $TPSysId.'='.$intCustomerSysId;
        //echo "<pre>";print_r($arrTrevllerDetails);echo "</pre>";

        /* Proposal Customer Related Details Ends */


        if (!empty($MasterTPSysId)) {
            $objFlightProposal = new Travel_Model_TblFlightProposal();
            $arrFlightDetails = $objFlightProposal->getFlightProposalDetails($MasterTPSysId);
            //echo "<pre>";print_r($arrFlightDetails);

            $this->view->arrAirDetails = $arrFlightDetails;

            $SourceAirportCode = trim($arrFlightDetails[0]['SourceAirportCode']);
            if (!empty($SourceAirportCode)) {
                $arrSourceAirport = $objFlightProposal->getAirPortByAirportCode($SourceAirportCode);
            }
            $this->view->SourceAirport = isset($arrSourceAirport['label']) ? $arrSourceAirport['label'] : '';

            $DestAirportCode = trim($arrFlightDetails[0]['DestAirportCode']);
            if (!empty($DestAirportCode)) {
                $arrDestinationAirport = $objFlightProposal->getAirPortByAirportCode($DestAirportCode);
            }
            $this->view->DestinationAirport = isset($arrDestinationAirport['label']) ? $arrDestinationAirport['label'] : '';

            $arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($TPSysId);
            $this->view->arrAgencyDetails = $arrAgencyDetails;



            //            $Cost = 0;
            //            $TotalCost = 0;
            //            $CurrencyType = 0;
            //            $Discount = 0;
            //            $XServiceTaxAmount = 0;
            //            $GTXServiceTaxAmount = 0;
            //            $AgentServiceTaxAmount = 0;
            //            $AgentsCustomServiceTaxAmount = 0;
            //            $MarkUp = 0;
            //            $AgencyMarkUp = 0;
            //            $GTXMarkup = 0;
            //            $Taxes = 0;
            //
            //        foreach ($arrFlightDetails as $costBreakDown){
            //            $Cost += trim($costBreakDown['Cost']);
            //            $TotalCost += trim($costBreakDown['TotalCost']);
            //            $CurrencyType += trim($costBreakDown['CurrencyType']);
            //            $Discount += trim($costBreakDown['Discount']);
            //            $XServiceTaxAmount += trim($costBreakDown['XServiceTaxAmount']);
            //            $GTXServiceTaxAmount += trim($costBreakDown['GTXServiceTaxAmount']);
            //            $AgentServiceTaxAmount += trim($costBreakDown['AgentServiceTaxAmount']);
            //            $AgentsCustomServiceTaxAmount += trim($costBreakDown['AgentsCustomServiceTaxAmount']);
            //            $MarkUp += trim($costBreakDown['MarkUp']);
            //            $AgencyMarkUp += trim($costBreakDown['AgencyMarkUp']);
            //            $GTXMarkup += trim($costBreakDown['GTXMarkup']);
            //            $Taxes += trim($costBreakDown['Taxes']);
            //        }


            $arrPriceAndMarkups = array(
                "intAgentMarkUpAmount" => 0,
                "intAgencyMarkUpAmount" => ($intTotalEarningsForAgencyForStringData - $intSTaxOnAgencyFixMarkUpForStringData) + $AgentsCustomMarkUp,
                "intGTXMarkUpAmount" => $intGTXMarkUpForStringData,
                "intTotalAmount" => $intOfferedFareForStringData,
                "intTax" => 0,
                "GTXServiceTaxAmount" => 0,
                "AgentServiceTaxAmount" => $intSTaxOnAgencyFixMarkUpForStringData + $AgentsCustomServiceTaxAmount,
                "AgentsCustomServiceTaxAmount" => "0",
                "Pax" => $intTatalPaxCTForMarkUp,
                "SupplierSourceStr" => "API",
                "MarketPlaceId" => "1",
                "TotalDiscount" => 0,
                "CurrencyType" => 1
            );

            //echo "<pre>";print_r($arrPriceAndMarkups);
            $strPriceAndMarkups = json_encode($arrPriceAndMarkups);
            $this->view->stringData = $strStringData = $this->getEnc($strPriceAndMarkups);
        }
        $objAgency = new Travel_Model_TblAgency();
        $objPkg = new Travel_Model_TblPackage();
        //echo $intPublishFare;
        $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
        $arrAgencyDetails = $objAgency->getAgencyDataById($AgencySysId);
        $AgencyBaseCurrency = $arrAgencyDetails['TrxCurrency'];
        $packageSharedCurrency = isset($arrSelectedFlightFareDetails[0]['Currency']) ? $arrSelectedFlightFareDetails[0]['Currency'] : '1';
        $exchangerate = $objPkg->currencyExchangeRate($packageSharedCurrency, $AgencyBaseCurrency);
        $intPublishFareNew = $packageBaseCurrencyNetPrice = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($intPublishFareNew, $exchangerate);
        //$this->view->strPayWithPaymentGatewayUrl = Catabatic_Helper::getSiteUrl()."payment/payment-options/customer-pay";
        // $this->view->strPayWithPaymentGatewayUrl = Catabatic_Helper::getSiteUrl()."payment/atom-payment/customer-payment";
        //echo "<pre>";print_r($arrAgencyDetails);die;
        $IsPaymentGateway = !empty($arrAgencyDetails['IsPaymentGateway']) ? $arrAgencyDetails['IsPaymentGateway'] : 0;
        if (!empty($IsPaymentGateway)) {
            $this->view->strPayWithPaymentGatewayUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay-by-agency";
        } else {
            $this->view->strPayWithPaymentGatewayUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay";
        }



        $this->view->intPlanType = "1";
        $this->view->strTrxType = "A";
        $this->view->strReturnURL = "/flight-proposal/book-proposal-flight/data/" . $strUrlData;
        $this->view->strErrorURL = "/flight-proposal/review-proposal-booking/data/" . $strUrlData;
        $this->view->intLoggedinAgencySysId = $AgencySysId;
        $this->view->IsCardChrgToCustomer = 1;
        $this->view->intLoggedinUserAgencySysId = $AgencySysId;
        $this->view->intPublishFare = ceil($intPublishFareNew);
        $this->view->intPublishFareNew = $intPublishFareNew;
        $this->view->Symbol = !empty($arrAgencyDetails['Symbol']) ? $arrAgencyDetails['Symbol'] : '';

        $this->view->guid = $this->GUID();
        $this->view->walletCode = $this->walletCode($AgencySysId, $this->view->guid, ceil($intPublishFareNew), $AgencySysId, $TPSysId, $CustomerSysId, $strStringData);
        $this->view->securecode = $this->secureCode($AgencySysId, $this->view->guid);
    }


    public function bookProposalFlightAction()
    {

        //        echo "<pre>";
        //        print_r($_REQUEST); //exit;
        //        echo "</pre>";
        //        exit;

        if ($this->_request->isXmlHttpRequest()) {


            $this->_helper->layout->disableLayout();


            $strTrxStatus = !empty($this->getRequest()->getParam('trxstatus')) ? $this->getRequest()->getParam('trxstatus') : '';
            $TrxSysId = $this->getRequest()->getParam('TrxSysId');
            $TPSysId = $this->getRequest()->getParam('TPSysId');
            $guid = $this->getRequest()->getParam('guid');

            //        echo "<pre>";
            //        print_r($_REQUEST); //exit;
            //        echo "</pre>";
            //        exit;


            $objFlight = new Travel_Model_TblFlight();
            if ($strTrxStatus == "success") {

                $strUrlData = $this->getRequest()->getParam('strUrlData');
                $arrUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataDecode($strUrlData);
                //echo "<pre>";print_r($arrUrlData);die;
                $intOutBoundId = !empty($arrUrlData['AirInvenSysId']) ? $arrUrlData['AirInvenSysId'] : 0;
                $intInBoundId = !empty($arrUrlData['ReturnAirInvenSysId']) ? $arrUrlData['ReturnAirInvenSysId'] : 0;
                $intCustomerSysId = !empty($arrUrlData['CustomerSysId']) ? $arrUrlData['CustomerSysId'] : 0;
                $intTPSysId = !empty($arrUrlData['TPSysId']) ? $arrUrlData['TPSysId'] : 0;
                $MasterTPSysId = !empty($arrUrlData['MasterTPSysId']) ? $arrUrlData['MasterTPSysId'] : 0;
                $arrIntTpAirId = !empty($arrUrlData['arrIntTpAirId']) ? $arrUrlData['arrIntTpAirId'] : 0;



                // Getting travel plan details...
                $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
                $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
                // Getting travel plan details Ends...

                $AgencySysId = !empty($travelPlanDetais[0]['AgencySysId']) ? $travelPlanDetais[0]['AgencySysId'] : 0;
                $AgentSysId = !empty($travelPlanDetais[0]['AgentSysId']) ? $travelPlanDetais[0]['AgentSysId'] : 0;

                $crmcustomerObj = new Travel_Model_CRM_Customer();
                $arrAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                $LoggedinUserEmailId = $arrAgencyDetail['PrimaryEmail'];
                $objFlight = new Travel_Model_TblFlight();
                $this->paymentMdl = new Payment_Model_Payment();
                $GetBookingAmountData = $objFlight->GetBookingAmountData($AgencySysId, $arrIntTpAirId);
                $wallet = $this->paymentMdl->getDetailsByUniqueId("TB_Agency_Wallet", "AgencySysId", $AgencySysId);
                if ($wallet['BalanceAmount'] >= $GetBookingAmountData['TotalCost']) {
                } else {
                    die('Unable to  continue payment! please contact agency with this message');
                }

                //Invoice Number...
                $objTrx = new Travel_Model_TblAgencyCustomerTrx();
//                $strInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
//                $data = array("InvoiceId" => $strInvoiceNumber);
//                $objTrx->updateInvoiceNumber($data, $TrxSysId);
                //Invoice Number...

                /* deduct From wallet */
                $modelFlight = new Api_Model_TblFlight();
                //                $this->paymentMdl = new Payment_Model_Payment();
                //                $wallet = $this->paymentMdl->getDetailsByUniqueId("TB_Agency_Wallet", "AgencySysId", $AgencySysId);
                $walletReflect = $modelFlight->checkTranHistory($guid, $TrxSysId, $AgencySysId);
                if ($walletReflect == TRUE) {
                    if (!empty($intOutBoundId) && empty($intInBoundId)) { // For OneWay Flight Only...
                        $objFlight = new Travel_Model_TblFlight();
                        $objFlight->strCondition = " TBQAirInvenSysId IN ('" . $intOutBoundId . "') ";
                        $arrSelectedFlightDetails = $objFlight->getSelectedFlightDetails();

                        if (!empty($arrSelectedFlightDetails)) {

                            if (!empty($intCustomerSysId)) {
                                $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
                            }
                            $arrTrevllerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId);
                            $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $intOutBoundId . "') ";
                            $arrSelectedFlightFareDetails = $objFlight->getSelectedFlightFareDetails();
                            if (isset($arrSelectedFlightDetails[0]['IsQuickProposal']) && $arrSelectedFlightDetails[0]['IsQuickProposal'] == 1) {
                                //echo'<pre>';print_r($arrSelectedFlightDetails);
                                //echo'<pre>';print_r($arrTrevllerDetails);die('dd');
                                $arrFlightSearchResponse = [];
                                $arrFlightSearchResponse['Response'] = array(
                                    'Error' => array(
                                        'ErrorCode' => 0, 'ErrorMessage' => ''
                                    ),
                                    'ResponseStatus' => 1,
                                    'TraceId' => '',
                                    'Response' => array(
                                        'PNR' => '',
                                        'BookingId' => date('ymdhis'),
                                        'Status' => 1,
                                        'FlightItinerary' => array(
                                            'TripIndicator' => 1,
                                            'BookingId' => '',
                                            'PNR' => '',
                                            'Status' => 1,
                                            'IsDomestic' => $arrSelectedFlightDetails[0]['IsInternational'],
                                            'Source' => 6,
                                            'Origin' => $arrSelectedFlightDetails[0]['SourceAirportCode'],
                                            'Destination' => $arrSelectedFlightDetails[0]['DestAirportCode'],
                                            'AirlineCode' => $arrSelectedFlightDetails[0]['AirlineCode'],
                                            'NonRefundable' => $arrSelectedFlightDetails[0]['PublishedFare'],
                                            'Fare' => array(
                                                'Currency' => 'INR',
                                                'BaseFare' => $arrSelectedFlightDetails[0]['PublishedFare'],
                                                'Tax' => '',
                                                'OtherCharges' => $arrSelectedFlightDetails[0]['ServiceFee'],
                                                'PublishedFare' => $arrSelectedFlightDetails[0]['PublishedFare'],
                                                'CommissionEarned' => '10',
                                                'OfferedFare' => $arrSelectedFlightDetails[0]['OfferedFare'],
                                            )
                                        )
                                    )
                                );
                                $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '17'), $intTPSysId, $MasterTPSysId);
                                $objFlightProposal = new Travel_Model_TblFlightProposal();
                                $VersionId = $objFlightProposal->getVersionIdByTPSysId($intTPSysId, $intOutBoundId);
                                $data = array(
                                    "XRefBookingId" => date('ymdhis'),
                                    "APIBookingRes" => json_encode($arrFlightSearchResponse),
                                    "XRefPNR" => 1,
                                    "IsBookingStatus" => 1
                                );
                                $objFlight->updateBookingDetails($data, $VersionId);
                                $arrData['customerSysId'] = $intCustomerSysId;
                                $arrData['TPSysId'] = $TPSysId;
                                $arrData['guid'] = $guid;
                                $arrData['TrxSysId'] = $TrxSysId;
                                $arrData['intOutBoundId'] = $intOutBoundId;
                                $arrData['arrBookingResponse'] = json_encode($arrFlightSearchResponse);
                                $arrData['intTPSysId'] = $intTPSysId;
                                $arrData['arrIntTpAirId'] = $arrIntTpAirId;
                                $arrData['IsQuickProposal'] = $arrSelectedFlightDetails[0]['IsQuickProposal'];

                                $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                                $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                                echo json_encode($response);
                                exit;
                            }



                            $data = array();
                            $arrBookingId = array();
                            $arrBookingResponse = array();


                            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
                            $TraceId = $sessionFlightProposalParams->params['TraceId'];
                            $ResultIndex = $sessionFlightProposalParams->params['ResultIndex'];


                            $SourceAirportCode = trim($arrSelectedFlightDetails[0]['SourceAirportCode']);
                            $DestAirportCode = trim($arrSelectedFlightDetails[0]['DestAirportCode']);
                            $IsLCC = trim($arrSelectedFlightDetails[0]['IsLCC']);

                            $JourneyType = trim($arrSelectedFlightDetails[0]['JourneyType']);
                            $TripType = trim($arrSelectedFlightDetails[0]['TripType']);
                            $IsInternational = trim($arrSelectedFlightDetails[0]['IsInternational']);
                            $IsGSTMandatory           = isset($arrSelectedFlightDetails[0]['IsGSTMandatory']) ? trim($arrSelectedFlightDetails[0]['IsGSTMandatory']) : '0';
                            $crmcustomerObj = new Travel_Model_CRM_Customer();
                            $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                            $data = array(
                                "TraceId" => $TraceId,
                                "ResultIndex" => $ResultIndex,
                                "Origin" => $SourceAirportCode,
                                "Destination" => $DestAirportCode,
                                "JourneyType" => $JourneyType,
                                "TripType" => $TripType,
                                "IsLCC" => $IsLCC,
                                "arrFairDetails" => $arrSelectedFlightFareDetails,
                                "arrTrevllerDetails" => $arrTrevllerDetails,
                                "agencyEmailId" => $LoggedinUserEmailId,
                                "IsInternational" => $IsInternational
                            );
                            if ($IsGSTMandatory == 1) {
                                $data['getAgencyDetail'] = $getAgencyDetail;
                            }


                            if ($IsLCC == '1') { //For LCC Flights Direct Ticket Method Called According to API...
                                $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->apiFlightTicket($data);
                                //echo "<pre>";print_r($response);die('lcc');
                                $ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
                                $ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
                                $strBookingIdLCC = isset($response['Response']['Response']['BookingId']) ? $response['Response']['Response']['BookingId'] : '';
                                $strTicketPNRLCC = isset($response['Response']['Response']['PNR']) ? $response['Response']['Response']['PNR'] : '';
                                //$arrBookingId[] = $strBookingId."/".$strTicketPNR;

                                if ($ErrorCode == 0) {
                                    $arrBookingResponse[0]['ErrorCode'] = $ErrorCode;
                                    $arrBookingResponse[0]['ErrorMessage'] = $ErrorMessage;
                                    $arrBookingResponse[0]['BookingId'] = $strBookingIdLCC . "/" . $strTicketPNRLCC;
                                    $arrBookingResponse[0]['BookingResponse'] = json_encode($response);
                                    $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '17'), $intTPSysId, $MasterTPSysId); // FOR BOOKING CONFIRMED
                                } else {
                                    //echo "<pre>";print_r($response);exit;
                                    $arrBookingResponse[0]['ErrorCode'] = $ErrorCode;
                                    $arrBookingResponse[0]['ErrorMessage'] = $ErrorMessage;
                                    $arrBookingResponse[0]['BookingId'] = $strBookingIdLCC . "/" . $strTicketPNRLCC;
                                    $arrBookingResponse[0]['BookingResponse'] = json_encode($response);
                                    $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '7'), $intTPSysId, $MasterTPSysId); // FOR BOOKING Fail CAse
                                }
                                if ($ErrorCode == 0 && $ErrorMessage == "") {
                                    // Booking details to transaction table...
                                    $objFlightProposal = new Travel_Model_TblFlightProposal();
                                    $VersionId = $objFlightProposal->getVersionIdByTPSysId($intTPSysId, $intOutBoundId);
                                    $data = array(
                                        "XRefBookingId" => $strBookingIdLCC . "/" . $strTicketPNRLCC,
                                        "APIBookingRes" => json_encode($response),
                                        "XRefPNR" => 1,
                                        "IsBookingStatus" => 1
                                    );
                                } else {
                                    // Booking details to transaction table...
                                    $objFlightProposal = new Travel_Model_TblFlightProposal();
                                    $VersionId = $objFlightProposal->getVersionIdByTPSysId($intTPSysId, $intOutBoundId);
                                    $data = array(
                                        "XRefBookingId" => '',
                                        "APIBookingRes" => json_encode($response),
                                        "XRefPNR" => '',
                                        "IsBookingStatus" => 0
                                    );
                                }
                                $objFlight->updateBookingDetails($data, $VersionId); // FOR BOOKING CONFIRMED
                                // Booking details to transaction Ends...
                                if ($ErrorCode == 0) {
                                    if (isset($arrTrevllerList) && !empty($arrTrevllerList)) {
                                        $Passenger = $response['Response']['Response']['FlightItinerary']['Passenger'];
                                        foreach ($arrTrevllerList as $key => $value) {
                                            $Ticket = $Passenger[$key]['Ticket'];
                                            $data = array(
                                                "TicketId" => !empty($Ticket['TicketId']) ? $Ticket['TicketId'] : '0',
                                                "TicketNumber" => $Ticket['TicketNumber'],
                                                "TicketFullJson" => json_encode($Passenger[$key])
                                            );
                                            $objFlight->updateTravelPlanPax($data, $value['TPPaxSysId']);
                                        }
                                    }
                                }

                                //echo "<pre>";print_r($arrBookingId);exit;
                            } else { //For Non LCC Flights Booking Method Called Then it the Ticket Method According to API...
                                $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->apiFlightBooking($data);

                                //                                $objFlightProposal = new Travel_Model_TblFlightProposal();
                                //                                $VersionId = $objFlightProposal->getVersionIdByTPSysId($intTPSysId,$intOutBoundId);
                                //                                ECHO $intTPSysId;
                                //                                echo "<pre>";print_r($arrTrevllerList);
                                //                                echo "<pre>";print_r($response);exit;
                                $ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
                                $ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
                                $strBookingId = isset($response['Response']['Response']['BookingId']) ? $response['Response']['Response']['BookingId'] : '';
                                $strTicketPNR = isset($response['Response']['Response']['PNR']) ? $response['Response']['Response']['PNR'] : '';

                                if ($ErrorCode == 0) {
                                    $arrBookingResponse[0]['ErrorCode'] = $ErrorCode;
                                    $arrBookingResponse[0]['ErrorMessage'] = $ErrorMessage;
                                    $arrBookingResponse[0]['BookingId'] = $strBookingId . "/" . $strTicketPNR;
                                    $arrBookingResponse[0]['BookingResponse'] = json_encode($response);
                                    $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '17'), $intTPSysId, $MasterTPSysId); // FOR BOOKING CONFIRMED
                                } else {
                                    $arrBookingResponse[0]['ErrorCode'] = $ErrorCode;
                                    $arrBookingResponse[0]['ErrorMessage'] = $ErrorMessage;
                                    $arrBookingResponse[0]['BookingId'] = $strBookingId . "/" . $strTicketPNR;
                                    $arrBookingResponse[0]['BookingResponse'] = json_encode($response);
                                    $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '7'), $intTPSysId, $MasterTPSysId); // FOR BOOKING Fail CAse
                                }



                                // Booking details to transaction table...
                                if ($ErrorCode == 0 && $ErrorMessage == "") {
                                    $objFlightProposal = new Travel_Model_TblFlightProposal();
                                    $VersionId = $objFlightProposal->getVersionIdByTPSysId($intTPSysId, $intOutBoundId);
                                    $data = array(
                                        "XRefBookingId" => $strBookingId . "/" . $strTicketPNR,
                                        "APIBookingRes" => json_encode($response),
                                        "XRefPNR" => '',
                                        "IsBookingStatus" => 1
                                    );
                                    $objFlight->updateBookingDetails($data, $VersionId); // FOR BOOKING CONFIRMED
                                    // Booking details to transaction Ends...
                                } else {
                                    $objFlightProposal = new Travel_Model_TblFlightProposal();
                                    $VersionId = $objFlightProposal->getVersionIdByTPSysId($intTPSysId, $intOutBoundId);
                                    $data = array(
                                        "XRefBookingId" => '',
                                        "APIBookingRes" => json_encode($response),
                                        "XRefPNR" => '',
                                        "IsBookingStatus" => 0
                                    );
                                    $objFlight->updateBookingDetails($data, $VersionId); // FOR BOOKING CONFIRMED
                                }
                            }

                            if ($ErrorCode == 0 && $ErrorMessage == "") {

                                //Mail Booking Itenary To Customer
                                $objFlight = new Travel_Model_TblFlight();
                                $arrFlightFare = $objFlight->customerInvoiceData($intTPSysId);
                                if ($arrFlightFare && $IsLCC == '1') {
                                    foreach ($arrFlightFare as $k => $values) {
                                        $AgencySysId = $values['AgencySysId'];
                                        $AgentSysId = $values['AgentSysId'];
                                        $intLoggedinUserEmailId = $values['PrimaryEmail'];
                                        $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
                                        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $values['AirVersionId']);
                                        //echo '<pre>';print_r($arrCustomerInvoiceData);echo '</pre>';
                                        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
                                        if (!empty($intCustomerSysId)) {
                                            $arrTrevllerDetailsNew = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
                                        }
                                        $html = new Zend_View();
                                        $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
                                        $crmcustomerObj     = new Travel_Model_CRM_Customer();
                                        $arrAgencyDetail    = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                                        $html->assign('type', 'mailToCustomer');
                                        $html->assign('arrResponse', $response);
                                        $html->assign('arrTrevllerDetails', $arrTrevllerDetailsNew);
                                        $html->assign('arrtravellerList', $arrtravellerList);
                                        $html->assign('arrCustomerInvoiceData', $arrCustomerInvoiceData);
                                        $bodyText = $html->render('mail-booking-content-new.phtml');
                                        $subject = "Flight Booking Itinerary From " . $SourceAirportCode . " To " . $DestAirportCode;
                                        $customerEmailId = isset($arrTrevllerDetails[0][0]['EmailId']) ? $arrTrevllerDetails[0][0]['EmailId'] : '';
                                        $emailData = array('fromEmail' => trim($intLoggedinUserEmailId), 'fromName' => trim($arrAgencyDetail['DisplayName']), 'subject' => $subject, 'to' => array($customerEmailId, $intLoggedinUserEmailId, "gaurav@hellogtx.com", "prashant@catpl.co.in"), 'bodyHtml' => $bodyText, 'bodyText' => '');
                                        try {
                                            // Added By Pardeep Panchal For Email Count...
                                            $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" => date('Y-m-d H:i:s')
                                            );

                                            // Added By Pardeep Panchal For Email Count Ends...
                                            $this->mailSentByElastice($emailData, $arrEmailStatistics);
                                        } catch (Exception $err) {
                                            print_r($err, true);
                                        }
                                    }
                                }

                                //                                $arrFlightFare = $objFlight->customerInvoiceData($intTPSysId, $AgencySysId);
                                //
                                //                                $objFlightProposal = new Travel_Model_TblFlightProposal();
                                //                                $arrProposalDetails = $objFlightProposal->getFlightProposalDetails("", $TPSysId);
                                //
                                //                                $html = new Zend_View();
                                //                                $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight-proposal/');
                                //                                $html->assign('type', 'mailToCustomer');
                                //                                $html->assign('arrResponse', $response);
                                //                                $html->assign('arrAgencyDetail', $arrAgencyDetail);
                                //                                $html->assign('arrFlightFare', $arrFlightFare[0]);
                                //                                $html->assign('arrProposalDetails', $arrProposalDetails[0]);
                                //                                $bodyText = $html->render('mail-booking-content.phtml');
                                //                                $subject = "Flight Booking Itinerary From " . $SourceAirportCode . " To " . $DestAirportCode;
                                //                                $customerEmailId = isset($arrTrevllerDetails[0][0]['EmailId']) ? $arrTrevllerDetails[0][0]['EmailId'] : '';
                                //                                $emailData = array('fromEmail' => trim($LoggedinUserEmailId), 'fromName' => trim($arrAgencyDetail['DisplayName']), 'subject' => $subject, 'to' => array($customerEmailId, $LoggedinUserEmailId, "gaurav@hellogtx.com"), 'bodyHtml' => $bodyText, 'bodyText' => '');
                                //                                try {
                                //                                    // Added By Pardeep Panchal For Email Count...
                                //                                    $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" => date('Y-m-d H:i:s')
                                //                                    );
                                //
                                //                                    // Added By Pardeep Panchal For Email Count Ends...
                                //                                    $this->mailSentByElastice($emailData, $arrEmailStatistics, 1, $arrTrevllerDetails[0][0]['CustomerSysId']);
                                //                                } catch (Exception $err) {
                                //                                    print_r($err, true);
                                //                                }

                                //Mail Booking Itenary To Customer






                                $arrData['customerSysId'] = $intCustomerSysId;
                                $arrData['TPSysId'] = $TPSysId;
                                $arrData['guid'] = $guid;
                                $arrData['TrxSysId'] = $TrxSysId;
                                $arrData['intOutBoundId'] = $intOutBoundId;
                                $arrData['arrBookingResponse'] = json_encode($response);
                                $arrData['intTPSysId'] = $intTPSysId;
                                $arrData['arrIntTpAirId'] = $arrIntTpAirId;

                                $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                                $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                                echo json_encode($response);
                                exit;
                            } else {

                                $arrData['customerSysId'] = $intCustomerSysId;
                                $arrData['TPSysId'] = $TPSysId;
                                $arrData['guid'] = $guid;
                                $arrData['TrxSysId'] = $TrxSysId;
                                $arrData['intOutBoundId'] = $intOutBoundId;
                                $arrData['arrBookingResponse'] = json_encode($response);
                                $arrData['intTPSysId'] = $intTPSysId;
                                $arrData['arrIntTpAirId'] = $arrIntTpAirId;

                                $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                                $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                                echo json_encode($response);
                                exit;
                            }
                        } else {  // Flight details not found in DB then Process refund....
                            $arrError = [
                                "Response" => [
                                    "Error" => [
                                        "ErrorCode" => 2,
                                        "ErrorMessage" => "Oops! There might be some technical error. Please contact administrator for more information."
                                    ]
                                ]
                            ];

                            $arrData['customerSysId'] = $intCustomerSysId;
                            $arrData['TPSysId'] = $TPSysId;
                            $arrData['guid'] = $guid;
                            $arrData['TrxSysId'] = $TrxSysId;
                            $arrData['intOutBoundId'] = $intOutBoundId;
                            $arrData['intInBoundId'] = $intInBoundId;
                            $arrData['arrBookingResponse'] = json_encode($response);
                            $arrData['intTPSysId'] = $intTPSysId;
                            $arrData['arrIntTpAirId'] = $arrIntTpAirId;



                            $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                            $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                            echo json_encode($response);
                            exit;
                        }
                    } else if (!empty($intOutBoundId) && !empty($intInBoundId)) { // For RoundTrip Flights...
                        if (!empty($intCustomerSysId)) {
                            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
                        }

                        $arrTrevllerList = $objFlight->GetCustomerListForFlightBooking($intTPSysId);
                        $objFlight = new Travel_Model_TblFlight();
                        $objFlight->strCondition = " TBQAirInvenSysId IN ('" . $intOutBoundId . "','" . $intInBoundId . "') ";
                        $arrSelectedFlightDetails = $objFlight->getSelectedFlightDetails();
                        $SourceAirportCode = trim($arrSelectedFlightDetails[0]['SourceAirportCode']);
                        $DestAirportCode = trim($arrSelectedFlightDetails[0]['DestAirportCode']);
                        $IsLCC = trim($arrSelectedFlightDetails[0]['IsLCC']);

                        if (isset($arrSelectedFlightDetails[0]['IsQuickProposal']) && $arrSelectedFlightDetails[0]['IsQuickProposal'] == 1) {
                            $objFlightProposal = new Travel_Model_TblFlightProposal();
                            $objFlightProposal->strCondition = " t3.InvnItemSysId IN ('" . $intOutBoundId . "','" . $intInBoundId . "') ";
                            $arrVersionId = $objFlightProposal->getVersionIdByTPSysIds($MasterTPSysId);
                            //echo $intTPSysId;
                            $arrFlightSearchResponseConfirm = [];
                            foreach ($arrVersionId as $k => $res) {
                                $TPintSysId = trim($res['VersionId']);
                                $arrFlightSearchResponse = [];
                                $arrFlightSearchResponseConfirm[]['Response'] = $arrFlightSearchResponse['Response'] = array(
                                    'Error' => array(
                                        'ErrorCode' => 0, 'ErrorMessage' => ''
                                    ),
                                    'ResponseStatus' => 1,
                                    'TraceId' => '',
                                    'Response' => array(
                                        'PNR' => '',
                                        'BookingId' => date('ymdhis') . $k,
                                        'Status' => 1,
                                        'FlightItinerary' => array(
                                            'TripIndicator' => 1,
                                            'BookingId' => '',
                                            'PNR' => '',
                                            'Status' => 1,
                                            'IsDomestic' => $arrSelectedFlightDetails[$k]['IsInternational'],
                                            'Source' => 6,
                                            'Origin' => $arrSelectedFlightDetails[$k]['SourceAirportCode'],
                                            'Destination' => $arrSelectedFlightDetails[$k]['DestAirportCode'],
                                            'AirlineCode' => $arrSelectedFlightDetails[$k]['AirlineCode'],
                                            'NonRefundable' => $arrSelectedFlightDetails[$k]['PublishedFare'],
                                            'Fare' => array(
                                                'Currency' => 'INR',
                                                'BaseFare' => $arrSelectedFlightDetails[$k]['PublishedFare'],
                                                'Tax' => '',
                                                'OtherCharges' => $arrSelectedFlightDetails[$k]['ServiceFee'],
                                                'PublishedFare' => $arrSelectedFlightDetails[$k]['PublishedFare'],
                                                'CommissionEarned' => '10',
                                                'OfferedFare' => $arrSelectedFlightDetails[$k]['OfferedFare'],
                                            )
                                        )
                                    )
                                );

                                $objFlight->updateBookingStatusTravelPlanOnly(array("StatusType" => '17'), $res['TPSysId'], $res['MasterTPSysId']); // FOR BOOKING CONFIRMED

                                //                                $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '17'), $intTPSysId, $MasterTPSysId);
                                //                                $objFlightProposal = new Travel_Model_TblFlightProposal();
                                //                                $VersionId = $objFlightProposal->getVersionIdByTPSysId($intTPSysId, $intOutBoundId);
                                $data = array(
                                    "XRefBookingId" => date('ymdhis') . $k,
                                    "APIBookingRes" => json_encode($arrFlightSearchResponse),
                                    "XRefPNR" => 1,
                                    "IsBookingStatus" => 1
                                );
                                $objFlight->updateBookingDetails($data, $TPintSysId);
                            }

                            $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '17'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED

                            $arrData['customerSysId'] = $intCustomerSysId;
                            $arrData['TPSysId'] = $TPSysId;
                            $arrData['guid'] = $guid;
                            $arrData['TrxSysId'] = $TrxSysId;
                            $arrData['intOutBoundId'] = $intOutBoundId;
                            $arrData['intInBoundId'] = $intInBoundId;
                            $arrData['tripType'] = 2;
                            $arrData['arrBookingResponse'] = json_encode($arrFlightSearchResponseConfirm);
                            $arrData['intTPSysId'] = $intTPSysId;
                            $arrData['arrIntTpAirId'] = $arrIntTpAirId;
                            $arrData['IsQuickProposal'] = $arrSelectedFlightDetails[0]['IsQuickProposal'];

                            $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                            $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                            echo json_encode($response);
                            exit;
                        }


                        $responseMain = $this->bookRoundTripFlightsAction($LoggedinUserEmailId);
                        //                        $a = '{"Response":{"Error":{"ErrorCode":0,"ErrorMessage":""},"TraceId":"e32d48d1-7c1e-4b75-aebc-d2a74dea372f","ResponseStatus":1,"Response":{"PNR":"JWNW4Q","BookingId":1401138,"SSRDenied":false,"SSRMessage":null,"Status":1,"IsPriceChanged":false,"IsTimeChanged":false,"FlightItinerary":{"TripIndicator":2,"BookingAllowedForRoamer":true,"BookingId":1401138,"ParentBookingId":1401137,"IsManual":false,"PNR":"JWNW4Q","IsDomestic":true,"Source":4,"Origin":"GOI","Destination":"BOM","AirlineCode":"9W","LastTicketDate":"2018-10-10T00:00:00","ValidatingAirlineCode":"9W","AirlineRemark":"","IsLCC":false,"NonRefundable":true,"FareType":"RP","CreditNoteNo":null,"Fare":{"Currency":"INR","BaseFare":1890,"Tax":2564,"TaxBreakup":[],"YQTax":1200,"AdditionalTxnFeeOfrd":0,"AdditionalTxnFeePub":0,"PGCharge":0,"OtherCharges":278.48,"ChargeBU":[{"key":"TBOMARKUP","value":0},{"key":"OTHERCHARGE","value":278.48},{"key":"CONVENIENCECHARGE","value":0}],"Discount":0,"PublishedFare":4732.48,"CommissionEarned":16.06,"PLBEarned":0,"IncentiveEarned":0.00,"OfferedFare":4716.42,"TdsOnCommission":4.82,"TdsOnPLB":0,"TdsOnIncentive":0.00,"ServiceFee":0,"TotalBaggageCharges":0,"TotalMealCharges":0,"TotalSeatCharges":0,"TotalSpecialServiceCharges":0},"CreditNoteCreatedOn":null,"Passenger":[{"PaxId":1979533,"Title":"Mr","FirstName":"Sabir","LastName":"Noor","PaxType":1,"DateOfBirth":"1990-10-07T00:00:00","Gender":1,"PassportNo":"","AddressLine1":"Nahi Bataiyenge","AddressLine2":"","Fare":{"Currency":"INR","BaseFare":945,"Tax":1282,"TaxBreakup":null,"YQTax":600,"AdditionalTxnFeeOfrd":0,"AdditionalTxnFeePub":0,"PGCharge":0,"OtherCharges":139.24,"ChargeBU":[{"key":"TBOMARKUP","value":0},{"key":"OTHERCHARGE","value":139.24},{"key":"CONVENIENCECHARGE","value":0}],"Discount":0,"PublishedFare":2366.24,"CommissionEarned":8.03,"PLBEarned":0,"IncentiveEarned":0.00,"OfferedFare":2358.21,"TdsOnCommission":2.41,"TdsOnPLB":0,"TdsOnIncentive":0.00,"ServiceFee":0,"TotalBaggageCharges":0,"TotalMealCharges":0,"TotalSeatCharges":0,"TotalSpecialServiceCharges":0},"City":"Samastipur","CountryCode":"IN","CountryName":"India","Nationality":"IN","ContactNo":"9234674005","Email":"gaurav@hellogtx.com","IsLeadPax":true,"FFAirlineCode":null,"FFNumber":"","Meal":{"Code":"AVML","Description":"Asian - Vegetarian"},"Seat":{"Code":"A","Description":"Aisle"},"Ssr":[],"GSTCompanyAddress":"","GSTCompanyContactNumber":"","GSTCompanyEmail":"","GSTCompanyName":"","GSTNumber":""},{"PaxId":1979534,"Title":"Miss","FirstName":"Hiba","LastName":"Noor","PaxType":2,"DateOfBirth":"2007-02-23T00:00:00","Gender":2,"PassportNo":"","Fare":{"Currency":"INR","BaseFare":945,"Tax":1282,"TaxBreakup":null,"YQTax":600,"AdditionalTxnFeeOfrd":0,"AdditionalTxnFeePub":0,"PGCharge":0,"OtherCharges":139.24,"ChargeBU":[{"key":"TBOMARKUP","value":0},{"key":"OTHERCHARGE","value":139.24},{"key":"CONVENIENCECHARGE","value":0}],"Discount":0,"PublishedFare":2366.24,"CommissionEarned":8.03,"PLBEarned":0,"IncentiveEarned":0.00,"OfferedFare":2358.21,"TdsOnCommission":2.41,"TdsOnPLB":0,"TdsOnIncentive":0.00,"ServiceFee":0,"TotalBaggageCharges":0,"TotalMealCharges":0,"TotalSeatCharges":0,"TotalSpecialServiceCharges":0},"CountryCode":"IN","CountryName":"India","Nationality":"IN","IsLeadPax":false,"FFAirlineCode":null,"FFNumber":"","Meal":{"Code":"AVML","Description":"Asian - Vegetarian"},"Seat":{"Code":"A","Description":"Aisle"},"Ssr":[],"GSTCompanyAddress":"","GSTCompanyContactNumber":"","GSTCompanyEmail":"","GSTCompanyName":"","GSTNumber":""}],"CancellationCharges":null,"Segments":[{"Baggage":null,"CabinBaggage":null,"TripIndicator":1,"SegmentIndicator":1,"Airline":{"AirlineCode":"9W","AirlineName":"Jet Airways","FlightNumber":"762","FareClass":"O","OperatingCarrier":"9W"},"AirlinePNR":"","Origin":{"Airport":{"AirportCode":"GOI","AirportName":"Dabolim","Terminal":"","CityCode":"GOI","CityName":"Goa","CountryCode":"IN","CountryName":"India"},"DepTime":"2018-10-27T04:05:00"},"Destination":{"Airport":{"AirportCode":"BOM","AirportName":"Mumbai","Terminal":"2","CityCode":"BOM","CityName":"Mumbai","CountryCode":"IN","CountryName":"India"},"ArrTime":"2018-10-27T05:20:00"},"AccumulatedDuration":75,"Duration":75,"GroundTime":0,"Mile":0,"StopOver":false,"StopPoint":"","StopPointArrivalTime":"2018-10-27T05:20:00","StopPointDepartureTime":"2018-10-27T04:05:00","Craft":"738","Remark":"010 EY 8888, 010 MH 4111  PG 4442, SEE RTSVC","IsETicketEligible":false,"FlightStatus":"Confirmed","Status":"HK"}],"FareRules":[{"Origin":"GOI","Destination":"BOM","Airline":"9W","FareBasisCode":"O2IPOC","FareRuleDetail":"<b>These Are Non Refundable Fares.<\/b><\/br><ul><li><b>There is no Minimum Stay requirement<\/b><br><li><b>There is no Maximum Stay requirement<\/b><br><fieldset><legend><b><b>Child<\/b><br><\/b><\/legend><ul><li><b>Revalidation\/Reissue<\/b><br>Fare Component <b>O2IPOC<\/b>&emsp; Sector <b>GOI-BOM<\/b> &nbsp;<ul><li>Revalidation before\/after departure, including failure to show at first\/subsequent flight(s) : <b>Not Allowed<\/b><\/li><li>Reissue, including failure to show at first flight : <b>Allowed with Restrictions<\/b><\/li><li>Revalidation\/Reissue request, including failure to show at first flight, must be made prior to <b>10OCT19  0000<\/b><\/li><li><b>Prior to Departure of journey<\/b><ul><u>Reissue<\/u><li>Penalty fee : <b>3900 INR(at today exchange rates 3900 INR) <\/b><\/li><li>Maximum reissue penalty fee for entire ticket (per reissue) : <b>3900 INR<\/b><\/li><\/ul><\/li><li><b>Failure to show at first flight<\/b><ul><u>Reissue<\/u><li>Penalty fee : <b>7800 INR(at today exchange rates 7800 INR) <\/b><\/li><li>Maximum reissue penalty fee for entire ticket (per reissue) : <b>7800 INR<\/b><\/li><\/ul><\/li><li><b>After departure of journey<\/b><ul><li>Revalidation\/Reissue request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>Failure to show at subsequent flight(s)<\/b><ul><li>Revalidation\/Reissue request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><\/ul><\/li><li><b>Refund<\/b><br>Fare Component <b>O2IPOC<\/b>&emsp; Sector <b>GOI-BOM<\/b> &nbsp;<ul><li>Refund before\/after departure, including failure to show at first\/subsequent flight(s) : <b>Not Allowed<\/b><\/li><li><b>Prior to Departure of journey<\/b><ul><li>Refund request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>Failure to show at first flight<\/b><ul><li>Refund request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>After departure of journey<\/b><ul><li>Refund request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>Failure to show at subsequent flight(s)<\/b><ul><li>Refund request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><\/ul><\/li><br><b>* Revalidation is a modification of the original ticket without any reissue of a new ticket.<\/b><br><b>* For Reissue, Penalty fees are in addition to any difference in fare.<\/b><br><b>* For Refund, certain Taxes are non-refundable.<\/b><\/ul><\/fieldset><\/ul><ul><fieldset><legend><b><b>Adult<\/b><br><\/b><\/legend><ul><li><b>Revalidation\/Reissue<\/b><br>Fare Component <b>O2IPOC<\/b>&emsp; Sector <b>GOI-BOM<\/b> &nbsp;<ul><li>Revalidation before\/after departure, including failure to show at first\/subsequent flight(s) : <b>Not Allowed<\/b><\/li><li>Reissue, including failure to show at first flight : <b>Allowed with Restrictions<\/b><\/li><li><b>Prior to Departure of journey<\/b><ul><u>Reissue<\/u><li>Penalty fee : <b>1500 INR(at today exchange rates 1500 INR) <\/b><\/li><li>Maximum reissue penalty fee for entire ticket (per reissue) : <b>1500 INR<\/b><\/li><li>Revalidation\/Reissue request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>Failure to show at first flight<\/b><ul><u>Reissue<\/u><li>Penalty fee : <b>1500 INR(at today exchange rates 1500 INR) <\/b><\/li><li>Maximum reissue penalty fee for entire ticket (per reissue) : <b>1500 INR<\/b><\/li><li>Revalidation\/Reissue request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>After departure of journey<\/b><ul><li>Revalidation\/Reissue request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>Failure to show at subsequent flight(s)<\/b><ul><li>Revalidation\/Reissue request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><\/ul><\/li><li><b>Refund<\/b><br>Fare Component <b>O2IPOC<\/b>&emsp; Sector <b>GOI-BOM<\/b> &nbsp;<ul><li>Refund before\/after departure, including failure to show at first\/subsequent flight(s) : <b>Not Allowed<\/b><\/li><li><b>Prior to Departure of journey<\/b><ul><li>Refund request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>Failure to show at first flight<\/b><ul><li>Refund request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>After departure of journey<\/b><ul><li>Refund request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><li><b>Failure to show at subsequent flight(s)<\/b><ul><li>Refund request must be made prior to : <b>No restriction<\/b><\/li><\/ul><\/li><\/ul><\/li><br><b>* Revalidation is a modification of the original ticket without any reissue of a new ticket.<\/b><br><b>* For Reissue, Penalty fees are in addition to any difference in fare.<\/b><br><b>* For Refund, certain Taxes are non-refundable.<\/b><\/ul><\/fieldset><\/ul><br \/><b>These Are Non Refundable Fares.<\/b><br \/>RateClass : O2IPOC<br\/>FareClass : O2IPOC<br\/>marketing Company : 9W<br\/>Booking Class : O<br\/>Origin : GOI<br\/>destination : BOM<br\/>ruleSectionLocalId : 1<br\/>ruleCategoryCode : (5)<br\/>AP.ADVANCE RES\/TKTFOR O2IPOC TYPE FARES  THE PROVISIONS BELOW APPLY ONLY AS FOLLOWS -  TICKETS MAY ONLY BE SOLD IN INDIA.    RESERVATIONS FOR EACH SECTOR ARE REQUIRED FOR DEPARTURE    OF EACH TRIP ON THE FARE COMPONENT.    RESERVATIONS AND TICKETING MUST BE COMPLETED AT THE SAME    TIME.    WAITLIST NOT PERMITTED.         NOTE -          OPEN DATED AND REQUEST TICKETS ARE NOT ALLOWED.          THE TRAVEL VIA INTERMEDIATE POINT MUST BE          CONFIRMED AT THE TIME OF TICKETING. STOPOVER          AT INTERMEDIATE POINT NOT PERMITTED.          -------------------------          DIFFERENCE MAY EXIST BETWEEN FARE RULE LAST          TICKETING DATE AND SYSTEM GENERATED TICKETING          DEADLINE DUE TO AUTOMATED TICKETING CONTROL          MORE RESTRICTIVE TICKETING DEADLINE WILL APPLY.  THE PROVISIONS BELOW APPLY ONLY AS FOLLOWS -  TICKETS MAY NOT BE SOLD IN INDIA.  TICKETS MAY ONLY BE SOLD IN AREA 1\/AREA 2\/AREA 3.    RESERVATIONS ARE REQUIRED FOR EACH SECTOR FOR DEPARTURE    OF EACH TRIP ON THE FARE COMPONENT.    WAITLIST NOT PERMITTED.         NOTE -          OPEN DATED AND REQUEST TICKETS ARE NOT ALLOWED.          THE TRAVEL VIA INTERMEDIATE POINT MUST BE          CONFIRMED AT THE TIME OF TICKETING. STOPOVER          AT INTERMEDIATE POINT NOT PERMITTED.          -------------------------          DIFFERENCE MAY EXIST BETWEEN FARE RULE LAST          TICKETING DATE AND SYSTEM GENERATED TICKETING          DEADLINE DUE TO AUTOMATED TICKETING CONTROL          MORE RESTRICTIVE TICKETING DEADLINE WILL APPLY.<br\/>ruleSectionLocalId : 2<br\/>ruleCategoryCode : (16)<br\/>PE.PENALTIESFROM\/TO INDIA FOR O2IPOC TYPE FARES  CHANGES    CHARGE INR 3900.         NOTE -          ABOVE CHARGE IS APPLICABLE PER FARE COMPONENT          FOR DATE\/FLIGHT\/ROUTING CHANGE.          .....          IF ANY PASSENGER CHOSE TO OFFLOAD HIMSELF\/HERSELF          AFTER BOARDING ANY DOMESTIC FLIGHT FARE ALONG          WITH YR\/YQ WILL BE FORFEITED. ONLY STATUTORY          TAXES WILL BE REFUNDED.    CHARGE INR 3900 FOR NO-SHOW.         NOTE -          NO PENALTY FOR INFANT WITHOUT A SEAT.          ADULT PENALTY APPLY FOR CHILD AND INFANT WITH SEAT          .....  CANCELLATIONS    BEFORE DEPARTURE      CHARGE INR 4200 FOR CANCEL\/REFUND.         NOTE -          BASE FARE PLUS FUEL SURCHARGE OR          CANCELLATON\/REFUND FEES WHICHEVER IS LOWER WILL          BE DEDUCTED WHEN PROCESSING REFUND.          FOR NON-REFUNDABLE TICKETS - SERVICE TAX-GOODS          AND SERVICE TAX GST-K3 ARE ALSO          NON-REFUNDABLE ALONG WITH BASIC PLUS YQ PLUS YR          IN CASE OF CANCELLATION OR REFUNDS. ONLY          UNUTILIZED STATUTORY TAXES WILL BE REFUNDED          .....          FULLY UNUTILISED TICKTET - ABOVE CHARGE IS          APPLICABLE PER FARE COMPONENT.          .....          NO SHOW - NON REFUNDABLE IN CASE OF CANCELLATION.          FARES IS NON REFUNDABLE ONLY STATUTORY TAXES WILL          BE REFUNDED.          .....    AFTER DEPARTURE      CHARGE INR 4200 FOR CANCEL\/REFUND.         NOTE -          BASE FARE PLUS FUEL SURCHARGE OR          CANCELLATON\/REFUND FEES WHICHEVER IS LOWER WILL          BE DEDUCTED WHEN PROCESSING REFUND.          FOR NON-REFUNDABLE TICKETS - SERVICE TAX-GOODS          AND SERVICE TAX GST-K3 ARE ALSO          NON-REFUNDABLE ALONG WITH BASIC PLUS YQ PLUS YR          IN CASE OF CANCELLATION OR REFUNDS. ONLY          UNUTILIZED STATUTORY TAXES WILL BE REFUNDED          .....          PARTIALLY UTILISED TICKETS - FARE APPLICABLE PLUS          YR\/YQ PLUS TAXES OF THE UTILISED SECTOR ALONG WITH          THE PENALTY MUST BE CHARGED FOR PARTIALLY USED          TICKETS AND REFUND THE RESIDUAL IF ANY.          CHARGES APPLY PER FARE COMPONENT.          .....          NO SHOW - NON REFUNDABLE IN CASE OF CANCELLATION.          FARES IS NON REFUNDABLE ONLY STATUTORY TAXES WILL          BE REFUNDED.          .....          FOR REFUND-          ON SECTORS WHERE FIRST CLASS\/PREMIERE SERVICE IS          NOT OFFERED\/AVAILABLE AT THE TIME OF TICKETING          PASSENGERS MAY BE BOOKED IN THE NEXT LOWER CABIN.          NO REFUND WILL BE PERMITTED FOR CLASS DIFFERENCE          IN SUCH CASES.          .....          GENERAL RULE - APPLY UNLESS OTHERWISE SPECIFIED.          NOTE - TEXT BELOW NOT VALIDATED FOR AUTOPRICING.          ONE FREE POSTPONEMENT IS PERMITTED TO INBOUND          JOURNEY WHEN INBOUND IS REQUIRED OUTSIDE SYSTEM          RANGE. IN SUCH CASES RESERVATION FOR INBOUND          JOURNEY MUST BE MADE FOR LAST DATE IN SYSTEM          RANGE AS ON DATE OF TICKET ISSUE. ANY OTHER          CHANGES OR SUBSEQUENT CHANGES WILL BE SUBJECT TO          CHARGES MENTIONED IN PENALTIES.          .....          FOR VOLUNTARY REVALIDATION OF THE FIRST TICKETED          FLIGHT SEGMENT THE ITINERARY MUST BE RE-PRICED          USING CURRENT AND APPLICABLE FARES IN EFFECT ON          THE DATE THE TICKET IS REISSUED AND WITH THE          FOLLOWING CONDITIONS          1. THE ITINERARY MUST MEET ALL RULE PROVISIONS OF          THE NEWLY TICKETED FARE I.E. ADVANCE          RESERVATIONS\/TICKETING DEADLINE\/MINIMUM\/MAXIMUM          STAY\/BOOKING CLASSES\/SEASONALITY ETC.          2. THE ORIGINAL NON-REFUNDABLE AMOUNT IF ANY          REMAINS NON-REFUNDABLE AND MUST BE CARRIED          TOWARDS THE NEW REISSUED TICKET.          3. ANY PENALTIES APPLICABLE WILL ALSO NEED TO BE          COLLECTED.          .....          INCASE OF COMBINATIONS BETWEEN MULTIPLE FARES THE          MOST RESTRICTIVE CONDITIONS WILL BE APPLICABLE          FOR THE ENTIRE PRICING UNIT.          .....          CHANGES TO RESERVATION IS NOT PERMITTED WITHIN          TWO HOURS OF FLIGHT DEPARTURE.ANY CHANGES MADE TO          THE RESERVATION WITHIN TWO HOURS OF FLIGHT          DEPARTURE WILL BE TREATED AS NO SHOW AND WILL BE          LIABLE FOR APPLICABLE PENALTIES.          .....          ADDITIONAL GST WILL APPLY FOR ANY PENALTY AMOUNT.          .....<br\/><br\/> <br\/>","FareRestriction":null}],"Status":1}}}}';
                        //                        $b = '{"Response":{"B2B2BStatus":false,"Error":{"ErrorCode":0,"ErrorMessage":""},"ResponseStatus":1,"TraceId":"e32d48d1-7c1e-4b75-aebc-d2a74dea372f","Response":{"PNR":"BYZF4A","BookingId":1401137,"SSRDenied":false,"SSRMessage":null,"Status":1,"IsPriceChanged":false,"IsTimeChanged":false,"FlightItinerary":{"IssuancePcc":"Agenttest","TripIndicator":1,"BookingAllowedForRoamer":true,"BookingId":1401137,"IsManual":false,"PNR":"BYZF4A","IsDomestic":true,"Source":25,"Origin":"BOM","Destination":"GOI","AirlineCode":"SG","LastTicketDate":"9999-12-31T00:00:00","ValidatingAirlineCode":"SG","AirlineRemark":"","IsLCC":true,"NonRefundable":false,"FareType":"PUB","CreditNoteNo":null,"Fare":{"Currency":"INR","BaseFare":2798,"Tax":930,"TaxBreakup":[{"key":"K3","value":152.00},{"key":"PSF","value":300.00},{"key":"YR","value":100.00},{"key":"OtherTaxes","value":278.00},{"key":"TotalTax","value":930.00}],"TransactionFee":251.82,"YQTax":0,"AdditionalTxnFeeOfrd":0,"AdditionalTxnFeePub":0,"PGCharge":0,"OtherCharges":0,"ChargeBU":[{"key":"TBOMARKUP","value":0},{"key":"OTHERCHARGE","value":0},{"key":"CONVENIENCECHARGE","value":0}],"Discount":0.00,"PublishedFare":3979.82,"CommissionEarned":0.00,"PLBEarned":0.00,"IncentiveEarned":0.00,"OfferedFare":3979.82,"TdsOnCommission":0.00,"TdsOnPLB":0.00,"TdsOnIncentive":0.00,"ServiceFee":0,"TotalBaggageCharges":0,"TotalMealCharges":0,"TotalSeatCharges":0,"TotalSpecialServiceCharges":0},"CreditNoteCreatedOn":null,"Passenger":[{"PaxId":1979531,"Title":"Mr","FirstName":"Sabir","LastName":"Noor","PaxType":1,"DateOfBirth":"1990-10-07T00:00:00","Gender":1,"PassportNo":"","AddressLine1":"Nahi Bataiyenge","AddressLine2":"","Fare":{"Currency":"INR","BaseFare":1399,"Tax":465,"TaxBreakup":[{"key":"K3","value":76.00},{"key":"PSF","value":150.00},{"key":"YR","value":50.00},{"key":"OtherTaxes","value":139.00},{"key":"TotalTax","value":465.00}],"TransactionFee":125.91,"YQTax":0,"AdditionalTxnFeeOfrd":0,"AdditionalTxnFeePub":0,"PGCharge":0,"OtherCharges":0,"ChargeBU":[{"key":"TBOMARKUP","value":0},{"key":"OTHERCHARGE","value":0},{"key":"CONVENIENCECHARGE","value":0}],"Discount":0.00,"PublishedFare":1989.91,"CommissionEarned":0.00,"PLBEarned":0.00,"IncentiveEarned":0.00,"OfferedFare":1989.91,"TdsOnCommission":0.00,"TdsOnPLB":0.00,"TdsOnIncentive":0.00,"ServiceFee":0,"TotalBaggageCharges":0,"TotalMealCharges":0,"TotalSeatCharges":0,"TotalSpecialServiceCharges":0},"City":"Samastipur","CountryCode":"IN","CountryName":"India","Nationality":"IN","ContactNo":"9234674005","Email":"anshul@catpl.co.in","IsLeadPax":true,"FFAirlineCode":null,"FFNumber":"","Baggage":[{"AirlineCode":"SG","FlightNumber":"612","WayType":2,"Code":"No Baggage","Description":2,"Weight":0,"Currency":"INR","Price":0,"Origin":"BOM","Destination":"GOI"}],"Ssr":[],"Ticket":{"TicketId":1670583,"TicketNumber":"BYZF4A","IssueDate":"2018-10-10T12:46:29","ValidatingAirline":"001","Remarks":"","ServiceFeeDisplayType":"ShowInTax","Status":"OK","ConjunctionNumber":"     ","TicketType":"N"},"GSTCompanyAddress":"","GSTCompanyContactNumber":"","GSTCompanyEmail":"","GSTCompanyName":"","GSTNumber":"","SegmentAdditionalInfo":[{"FareBasis":"CSAVER","NVA":"","NVB":"","Baggage":"10 Kg","Meal":"0 Platter","Seat":"","SpecialService":""}]},{"PaxId":1979532,"Title":"Miss","FirstName":"Hiba","LastName":"Noor","PaxType":2,"DateOfBirth":"2007-02-23T00:00:00","Gender":2,"PassportNo":"","Fare":{"Currency":"INR","BaseFare":1399,"Tax":465,"TaxBreakup":[{"key":"K3","value":76.00},{"key":"PSF","value":150.00},{"key":"YR","value":50.00},{"key":"OtherTaxes","value":139.00},{"key":"TotalTax","value":465.00}],"TransactionFee":125.91,"YQTax":0,"AdditionalTxnFeeOfrd":0,"AdditionalTxnFeePub":0,"PGCharge":0,"OtherCharges":0,"ChargeBU":[{"key":"TBOMARKUP","value":0},{"key":"OTHERCHARGE","value":0},{"key":"CONVENIENCECHARGE","value":0}],"Discount":0.00,"PublishedFare":1989.91,"CommissionEarned":0.00,"PLBEarned":0.00,"IncentiveEarned":0.00,"OfferedFare":1989.91,"TdsOnCommission":0.00,"TdsOnPLB":0.00,"TdsOnIncentive":0.00,"ServiceFee":0,"TotalBaggageCharges":0,"TotalMealCharges":0,"TotalSeatCharges":0,"TotalSpecialServiceCharges":0},"CountryCode":"IN","CountryName":"India","Nationality":"IN","IsLeadPax":false,"FFAirlineCode":null,"FFNumber":"","Baggage":[{"AirlineCode":"SG","FlightNumber":"612","WayType":2,"Code":"No Baggage","Description":2,"Weight":0,"Currency":"INR","Price":0,"Origin":"BOM","Destination":"GOI"}],"Ssr":[],"Ticket":{"TicketId":1670584,"TicketNumber":"BYZF4A","IssueDate":"2018-10-10T12:46:30","ValidatingAirline":"001","Remarks":"","ServiceFeeDisplayType":"ShowInTax","Status":"OK","ConjunctionNumber":"     ","TicketType":"N"},"GSTCompanyAddress":"","GSTCompanyContactNumber":"","GSTCompanyEmail":"","GSTCompanyName":"","GSTNumber":"","SegmentAdditionalInfo":[{"FareBasis":"CSAVER","NVA":"","NVB":"","Baggage":"10 Kg","Meal":"0 Platter","Seat":"","SpecialService":""}]}],"CancellationCharges":null,"Segments":[{"Baggage":null,"CabinBaggage":null,"TripIndicator":1,"SegmentIndicator":1,"Airline":{"AirlineCode":"SG","AirlineName":"SpiceJet","FlightNumber":"612","FareClass":"C","OperatingCarrier":""},"AirlinePNR":"","Origin":{"Airport":{"AirportCode":"BOM","AirportName":"Mumbai","Terminal":"1","CityCode":"BOM","CityName":"Mumbai","CountryCode":"IN","CountryName":"India"},"DepTime":"2018-10-30T23:45:00"},"Destination":{"Airport":{"AirportCode":"GOI","AirportName":"Dabolim","Terminal":"1B","CityCode":"GOI","CityName":"Goa","CountryCode":"IN","CountryName":"India"},"ArrTime":"2018-10-31T00:55:00"},"Duration":70,"GroundTime":0,"Mile":0,"StopOver":false,"StopPoint":"","StopPointArrivalTime":"2018-10-31T00:55:00","StopPointDepartureTime":"2018-10-30T23:45:00","Craft":"737","Remark":null,"IsETicketEligible":false,"FlightStatus":"Confirmed","Status":"HK"}],"FareRules":[{"Origin":"BOM","Destination":"GOI","Airline":"SG","FareBasisCode":"CSAVER","FareRuleDetail":" \u000d\u000a You have booked a Saver Fare for # and # sector(s). Changes and cancellations are permitted as per applicable rules and charges. \u000d <br\/> <br\/>","FareRestriction":null}],"Status":5,"InvoiceAmount":3980.00,"InvoiceNo":"DW\/1819\/28702","InvoiceStatus":3,"InvoiceCreatedOn":"2018-10-10T12:46:29","Remarks":""},"TicketStatus":1}}}';
                        //$response = [$a,$b];
                        //$responseMain = [$a,$b];
                        //echo "<pre>";print_r($responseMain);
                        //$ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
                        //$ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
                        $outBoundId = 0;
                        $inBoundId = 0;
                        if ($responseMain) {
                            foreach ($responseMain as $keys => $response) {
                                //$arrIntTpAirId = $arrVersionId[$keys]['VersionId'];
                                //$TPSysIdLoop = $arrVersionId[$keys]['TPSysId'];
                                //$MasterTPSysIdLoop = $arrVersionId[$keys]['MasterTPSysId'];
                                $response = json_decode($response, true);
                                $IsLCC = isset($response['Response']['Response']['FlightItinerary']['IsLCC']) ? $response['Response']['Response']['FlightItinerary']['IsLCC'] : '';
                                $ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
                                $ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
                                if ($keys == 0) {
                                    if ($ErrorCode != 0) {
                                        $outBoundId = $intOutBoundId;
                                    }
                                } else {
                                    if ($ErrorCode != 0) {
                                        $inBoundId = $intInBoundId;
                                    }
                                }
                                if ($ErrorCode == 0 && $ErrorMessage == "") {
                                    $Arrticket = [];
                                    $ArrPassenger = [];
                                    $Passenger = isset($response['Response']['Response']['FlightItinerary']['Passenger']) ? $response['Response']['Response']['FlightItinerary']['Passenger'] : array();
                                    if ($Passenger) {
                                        foreach ($Passenger as $k => $val) {
                                            $Arrticket[] = isset($val['Ticket']) ? $val['Ticket'] : '';
                                            $ArrPassenger[] = $val;
                                        }
                                    }
                                    $strBookingId = isset($response['Response']['Response']['BookingId']) ? $response['Response']['Response']['BookingId'] : '';
                                    $strTicketPNR = isset($response['Response']['Response']['PNR']) ? $response['Response']['Response']['PNR'] : '';
                                    $ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
                                    $ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
                                    $data = array(
                                        "XRefBookingId" => $strBookingId . "/" . $strTicketPNR,
                                        "APIBookingRes" => json_encode($response),
                                        "IsBookingStatus" => 1
                                    );
                                    if ($IsLCC == '1') {
                                        $data['XRefPNR'] = 1;
                                    } else {
                                        $data['XRefPNR'] = '';
                                    }
                                    //echo '<pre>';print_r($data);
                                    //echo $arrIntTpAirId;
                                    $objFlight->updateBookingDetails($data, $arrIntTpAirId[$keys]);
                                    if (isset($arrTrevllerList) && !empty($arrTrevllerList)) {
                                        foreach ($arrTrevllerList as $key => $value) {
                                            if (isset($Arrticket[$key])) {
                                                $Ticket = $Arrticket[$key];
                                                $dataTravel = array(
                                                    "TicketId" => isset($Ticket['TicketId']) ? $Ticket['TicketId'] : '',
                                                    "TicketNumber" => isset($Ticket['TicketNumber']) ? $Ticket['TicketNumber'] : '',
                                                    "TicketFullJson" => json_encode(isset($ArrPassenger[$key]) ? $ArrPassenger[$key] : [])
                                                );
                                                $objFlight->updateTravelPlanPax($dataTravel, $value['TPPaxSysId']);
                                            }
                                        }
                                    }
                                    $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '17'), $TPSysId, $MasterTPSysId);
                                } else {

                                    $data = array(
                                        "XRefBookingId" => '',
                                        "APIBookingRes" => json_encode($response),
                                        "XRefPNR" => '',
                                        "IsBookingStatus" => 0
                                    );
                                    $objFlight->updateBookingDetails($data, $arrIntTpAirId[$keys]);
                                }
                                //$objFlight->updateBookingStatusTravelPlan(array("StatusType" => '7'), $intTPSysId, $MasterTPSysId);

                            }
                        }
                        if ($outBoundId == 0 || $inBoundId == 0) {
                            $objFlight = new Travel_Model_TblFlight();
                            $arrFlightFare = $objFlight->customerInvoiceData($intTPSysId);
                            //echo '<pre>';print_r($arrFlightFare);die;
                            if ($arrFlightFare) {
                                foreach ($arrFlightFare as $k => $values) {
                                    $AgencySysId = $values['AgencySysId'];
                                    $AgentSysId = $values['AgentSysId'];
                                    $intLoggedinUserEmailId = $values['PrimaryEmail'];
                                    $arrtravellerList = $objFlight->travellerListBySabir($intTPSysId);
                                    $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($intTPSysId, $values['AirVersionId']);
                                    //echo '<pre>';print_r($arrCustomerInvoiceData);echo '</pre>';
                                    $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
                                    if (!empty($intCustomerSysId)) {
                                        $arrTrevllerDetailsNew = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
                                    }
                                    $html = new Zend_View();
                                    $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
                                    $crmcustomerObj     = new Travel_Model_CRM_Customer();
                                    $arrAgencyDetail    = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                                    $html->assign('type', 'mailToCustomer');
                                    $html->assign('arrResponse', $response);
                                    $html->assign('arrTrevllerDetails', $arrTrevllerDetailsNew);
                                    $html->assign('arrtravellerList', $arrtravellerList);
                                    $html->assign('arrCustomerInvoiceData', $arrCustomerInvoiceData);
                                    $bodyText = $html->render('mail-booking-content-new.phtml');
                                    //echo $bodyText;die;
                                    $subject = "Flight Booking Itinerary From " . $SourceAirportCode . " To " . $DestAirportCode;
                                    $customerEmailId = isset($arrTrevllerDetails[0][0]['EmailId']) ? $arrTrevllerDetails[0][0]['EmailId'] : '';
                                    $emailData = array('fromEmail' => trim($intLoggedinUserEmailId), 'fromName' => trim($arrAgencyDetail['DisplayName']), 'subject' => $subject, 'to' => array($customerEmailId, $intLoggedinUserEmailId, "gaurav@hellogtx.com", "prashant@catpl.co.in"), 'bodyHtml' => $bodyText, 'bodyText' => '');
                                    try {
                                        // Added By Pardeep Panchal For Email Count...
                                        $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" => date('Y-m-d H:i:s')
                                        );

                                        // Added By Pardeep Panchal For Email Count Ends...
                                        $this->mailSentByElastice($emailData, $arrEmailStatistics);
                                    } catch (Exception $err) {
                                        print_r($err, true);
                                    }
                                }
                            }
                        }

                        if ($outBoundId == 0 && $inBoundId == 0) {


                            $arrData['customerSysId'] = $intCustomerSysId;
                            $arrData['TPSysId'] = $TPSysId;
                            $arrData['guid'] = $guid;
                            $arrData['TrxSysId'] = $TrxSysId;
                            $arrData['intOutBoundId'] = $intOutBoundId;
                            $arrData['intInBoundId'] = $intInBoundId;
                            $arrData['tripType'] = 2;
                            $arrData['arrBookingResponse'] = json_encode($responseMain);
                            $arrData['intTPSysId'] = $intTPSysId;
                            $arrData['arrIntTpAirId'] = $arrIntTpAirId;

                            $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                            $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                            echo json_encode($response);
                            exit;
                        } else {

                            $arrData['customerSysId'] = $intCustomerSysId;
                            $arrData['TPSysId'] = $TPSysId;
                            $arrData['guid'] = $guid;
                            $arrData['TrxSysId'] = $TrxSysId;
                            $arrData['intOutBoundId'] = $intOutBoundId;
                            $arrData['intInBoundId'] = $intInBoundId;
                            $arrData['tripType'] = 2;
                            $arrData['arrBookingResponse'] = json_encode($responseMain);
                            $arrData['intTPSysId'] = $intTPSysId;
                            $arrData['arrIntTpAirId'] = $arrIntTpAirId;
                            //echo "<pre>";print_r($arrData);exit;
                            $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                            $response = array('success' => true, 'msg' => 'Error', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                            echo json_encode($response);
                            exit;
                            // Proccess Refund Ends Here.......
                        }
                        //echo '<pre>';print_r($intTPSysId);
                        //echo '<pre>';print_r($MasterTPSysId);

                        die('old start');
                        if ($ErrorCode == 0 && $ErrorMessage == "") {

                            $arrDepartureResponse = json_decode($response[0], true);
                            $arrReturnResponse = json_decode($response[1], true);

                            $Arrticket = [];
                            $ArrPassenger = [];

                            if ($response && $IsLCC == '1') {
                                foreach ($response as $value) {
                                    $valuedE = json_decode($value, TRUE);
                                    $Passenger = isset($valuedE['Response']['Response']['FlightItinerary']['Passenger']) ? $valuedE['Response']['Response']['FlightItinerary']['Passenger'] : array();
                                    if ($Passenger) {
                                        foreach ($Passenger as $k => $val) {
                                            $Arrticket[] = isset($val['Ticket']) ? $val['Ticket'] : '';
                                            $ArrPassenger[] = $val;
                                        }
                                    }
                                }
                            }

                            $objFlightProposal = new Travel_Model_TblFlightProposal();
                            $objFlightProposal->strCondition = " t3.InvnItemSysId IN ('" . $intOutBoundId . "','" . $intInBoundId . "') ";
                            $arrVersionId = $objFlightProposal->getVersionIdByTPSysIds($intTPSysId);
                            //echo $intTPSysId;
                            //echo "<pre>";print_r($arrVersionId);exit;
                            $i = 0;
                            $outBoundId = 0;
                            $inBoundId = 0;
                            foreach ($arrVersionId as $res) {

                                $TPintSysId = trim($res['VersionId']);

                                // Booking details to transaction table...
                                if ($i == 0) {
                                    $strBookingId = isset($arrDepartureResponse['Response']['Response']['BookingId']) ? $arrDepartureResponse['Response']['Response']['BookingId'] : '';
                                    $strTicketPNR = isset($arrDepartureResponse['Response']['Response']['PNR']) ? $arrDepartureResponse['Response']['Response']['PNR'] : '';
                                    $ErrorCode = isset($arrDepartureResponse['Response']['Error']['ErrorCode']) ? $arrDepartureResponse['Response']['Error']['ErrorCode'] : '0';
                                    if ($arrDepartureResponse['Response']['Error']['ErrorCode'] != 0) {
                                        $outBoundId = $intOutBoundId;
                                    }
                                    $ErrorMessage = isset($arrDepartureResponse['Response']['Error']['ErrorMessage']) ? $arrDepartureResponse['Response']['Error']['ErrorMessage'] : '';
                                } else {
                                    $strBookingId = isset($arrReturnResponse['Response']['Response']['BookingId']) ? $arrReturnResponse['Response']['Response']['BookingId'] : '';
                                    $strTicketPNR = isset($arrReturnResponse['Response']['Response']['PNR']) ? $arrReturnResponse['Response']['Response']['PNR'] : '';
                                    $ErrorCode = isset($arrReturnResponse['Response']['Error']['ErrorCode']) ? $arrReturnResponse['Response']['Error']['ErrorCode'] : '0';
                                    if ($arrReturnResponse['Response']['Error']['ErrorCode'] != 0) {
                                        $inBoundId = $intInBoundId;
                                    }
                                    $ErrorMessage = isset($arrReturnResponse['Response']['Error']['ErrorMessage']) ? $arrReturnResponse['Response']['Error']['ErrorMessage'] : '';
                                }

                                $data = array(
                                    "XRefBookingId" => $strBookingId . "/" . $strTicketPNR,
                                    "APIBookingRes" => ($response[$i]),
                                    "IsBookingStatus" => 1
                                );
                                $objFlight->updateBookingDetails($data, $TPintSysId); // FOR BOOKING CONFIRMED
                                if (isset($arrTrevllerList) && !empty($arrTrevllerList && $IsLCC == '1')) {
                                    foreach ($arrTrevllerList as $key => $value) {
                                        if (isset($Arrticket[$key])) {
                                            $Ticket = $Arrticket[$key];
                                            $data = array(
                                                "TicketId" => $Ticket['TicketId'],
                                                "TicketNumber" => $Ticket['TicketNumber'],
                                                "TicketFullJson" => json_encode(isset($ArrPassenger[$key]) ? $ArrPassenger[$key] : [])
                                            );
                                            $objFlight->updateTravelPlanPax($data, $value['TPPaxSysId']);
                                        }
                                    }
                                }
                            }

                            // Booking details to transaction Ends...
                            //Mail Booking Itenary To Customer
                            if ($ErrorCode == 0 && $ErrorMessage == "") {
                                $objFlight = new Travel_Model_TblFlight();
                                $arrFlightFare = $objFlight->flightFairDetailsForEmail($TPintSysId, $AgencySysId);
                                //echo "<pre>";print_r($arrFlightFare);exit;

                                $objFlightProposal = new Travel_Model_TblFlightProposal();
                                $arrProposalDetails = $objFlightProposal->getFlightProposalDetails("", $MasterTPSysId);


                                $html = new Zend_View();
                                $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
                                $crmcustomerObj = new Travel_Model_CRM_Customer();
                                $arrAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                                $html->assign('type', 'mailToCustomer');

                                if ($i == 0) {
                                    $html->assign('arrResponse', $arrDepartureResponse);
                                } else {
                                    $html->assign('arrResponse', $arrReturnResponse);
                                }


                                $html->assign('arrAgencyDetail', $arrAgencyDetail);
                                $html->assign('arrFlightFare', isset($arrFlightFare[$i]) ? $arrFlightFare[$i] : array());
                                $html->assign('arrProposalDetails', $arrProposalDetails[0]);
                                $bodyText = $html->render('mail-booking-content.phtml');

                                if ($i == 0) {
                                    $subject = "Flight Booking Itinerary From " . $SourceAirportCode . " To " . $DestAirportCode;
                                } else {
                                    $subject = "Flight Booking Itinerary From " . $DestAirportCode . " To " . $SourceAirportCode;
                                }


                                $customerEmailId = isset($arrTrevllerDetails[0][0]['EmailId']) ? $arrTrevllerDetails[0][0]['EmailId'] : '';
                                //$emailData = array('fromEmail'=>trim($LoggedinUserEmailId),'fromName'=>trim($arrAgencyDetail['DisplayName']),'subject'=> $subject,'to'=>array($customerEmailId,$LoggedinUserEmailId,"gaurav@hellogtx.com"),'bodyHtml'=>$bodyText,'bodyText'=>'');
                                $emailData = array('fromEmail' => trim($LoggedinUserEmailId), 'fromName' => trim($arrAgencyDetail['DisplayName']), 'subject' => $subject, 'to' => array($customerEmailId), 'bodyHtml' => $bodyText, 'bodyText' => '');
                                try {
                                    // Added By Pardeep Panchal For Email Count...
                                    $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
                                    $arrEmailStatistics = array(
                                        "TPSysId" => $TPintSysId,
                                        "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" => date('Y-m-d H:i:s')
                                    );

                                    // Added By Pardeep Panchal For Email Count Ends...
                                    $this->mailSentByElastice($emailData, $arrEmailStatistics, 1, $arrTrevllerDetails[0][0]['CustomerSysId']);
                                } catch (Exception $err) {
                                    print_r($err, true);
                                }
                            }
                            //Mail Booking Itenary To Customer


                            $i++;

                            // update status travelplan

                            if ($outBoundId == 0 || $inBoundId == 0) {
                                $objFlight->updateBookingStatusTravelPlanOnly(array("StatusType" => '17'), $res['TPSysId'], $res['MasterTPSysId']); // FOR BOOKING CONFIRMED
                            } else {
                                $objFlight->updateBookingStatusTravelPlanOnly(array("StatusType" => '7'), $res['TPSysId'], $res['MasterTPSysId']); // FOR BOOKING CONFIRMED
                            }
                        }


                        if ($outBoundId == 0 || $inBoundId == 0) {
                            $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '17'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED
                        } else {
                            $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '7'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED
                        }

                        if ($outBoundId == 0 && $inBoundId == 0) {


                            $objFlight->updateBookingStatusTravelPlan(array("StatusType" => '17'), $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']); // FOR BOOKING CONFIRMED

                            $arrData['customerSysId'] = $intCustomerSysId;
                            $arrData['TPSysId'] = $TPSysId;
                            $arrData['guid'] = $guid;
                            $arrData['TrxSysId'] = $TrxSysId;
                            $arrData['intOutBoundId'] = $intOutBoundId;
                            $arrData['intInBoundId'] = $intInBoundId;
                            $arrData['tripType'] = 2;
                            $arrData['arrBookingResponse'] = json_encode($response);
                            $arrData['intTPSysId'] = $intTPSysId;
                            $arrData['arrIntTpAirId'] = $arrIntTpAirId;

                            $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                            $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                            echo json_encode($response);
                            exit;
                        } else {

                            $arrData['customerSysId'] = $intCustomerSysId;
                            $arrData['TPSysId'] = $TPSysId;
                            $arrData['guid'] = $guid;
                            $arrData['TrxSysId'] = $TrxSysId;
                            $arrData['intOutBoundId'] = $intOutBoundId;
                            $arrData['intInBoundId'] = $intInBoundId;
                            $arrData['tripType'] = 2;
                            $arrData['arrBookingResponse'] = json_encode($response);
                            $arrData['intTPSysId'] = $intTPSysId;
                            $arrData['arrIntTpAirId'] = $arrIntTpAirId;
                            //echo "<pre>";print_r($arrData);exit;
                            $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                            $response = array('success' => true, 'msg' => 'Error', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                            echo json_encode($response);
                            exit;
                            // Proccess Refund Ends Here.......
                        }
                    }
                } else {
                    // Payment Failed Error

                    $strUrlData = $this->getRequest()->getParam('strUrlData');
                    $arrUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataDecode($strUrlData);
                    $intOutBoundId = !empty($arrUrlData['AirInvenSysId']) ? $arrUrlData['AirInvenSysId'] : 0;
                    $intInBoundId = !empty($arrUrlData['ReturnAirInvenSysId']) ? $arrUrlData['ReturnAirInvenSysId'] : 0;
                    $intCustomerSysId = !empty($arrUrlData['CustomerSysId']) ? $arrUrlData['CustomerSysId'] : 0;
                    $intTPSysId = !empty($arrUrlData['TPSysId']) ? $arrUrlData['TPSysId'] : 0;
                    $MasterTPSysId = !empty($arrUrlData['MasterTPSysId']) ? $arrUrlData['MasterTPSysId'] : 0;

                    $arrError = [
                        "Response" => [
                            "Error" => [
                                "ErrorCode" => 2,
                                "ErrorMessage" => "Oops! Some error."
                            ]
                        ]
                    ];

                    $arrData['customerSysId'] = $intCustomerSysId;
                    $arrData['TPSysId'] = $TPSysId;
                    $arrData['guid'] = $guid;
                    $arrData['TrxSysId'] = $TrxSysId;
                    $arrData['intOutBoundId'] = $intOutBoundId;
                    $arrData['intInBoundId'] = $intInBoundId;
                    $arrData['arrBookingResponse'] = json_encode($arrError);
                    $arrData['intTPSysId'] = $intTPSysId;



                    $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                    $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                    echo json_encode($response);
                    exit;
                }
            } else {
                // Payment Failed Error

                $strUrlData = $this->getRequest()->getParam('strUrlData');
                $arrUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataDecode($strUrlData);
                $intOutBoundId = !empty($arrUrlData['AirInvenSysId']) ? $arrUrlData['AirInvenSysId'] : 0;
                $intInBoundId = !empty($arrUrlData['ReturnAirInvenSysId']) ? $arrUrlData['ReturnAirInvenSysId'] : 0;
                $intCustomerSysId = !empty($arrUrlData['CustomerSysId']) ? $arrUrlData['CustomerSysId'] : 0;
                $intTPSysId = !empty($arrUrlData['TPSysId']) ? $arrUrlData['TPSysId'] : 0;
                $MasterTPSysId = !empty($arrUrlData['MasterTPSysId']) ? $arrUrlData['MasterTPSysId'] : 0;

                $arrError = [
                    "Response" => [
                        "Error" => [
                            "ErrorCode" => 2,
                            "ErrorMessage" => "Oops! Payment cancelled by User."
                        ]
                    ]
                ];

                $arrData['customerSysId'] = $intCustomerSysId;
                $arrData['TPSysId'] = $TPSysId;
                $arrData['guid'] = $guid;
                $arrData['TrxSysId'] = $TrxSysId;
                $arrData['intOutBoundId'] = $intOutBoundId;
                $arrData['intInBoundId'] = $intInBoundId;
                $arrData['arrBookingResponse'] = json_encode($arrError);
                $arrData['intTPSysId'] = $intTPSysId;



                $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($arrData);
                $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData, 'formAction' => "/flight-proposal/proposal-booking-confirmation");
                echo json_encode($response);
                exit;
            }
        } else {

            $this->view->status = !empty($this->getRequest()->getParam('status')) ? $this->getRequest()->getParam('status') : '';
            $this->view->strUrlData = $this->view->strUrlData = $this->getRequest()->getParam('data');
            $this->view->TrxSysId = $this->getRequest()->getParam('TrxId');
            $this->view->TPSysId = $this->getRequest()->getParam('TpSysId');
            $this->view->guid = $this->getRequest()->getParam('GUID');
        }
    }

    public function proposalBookingConfirmationAction()
    {


        $strUrlData = $this->view->strUrlData = $this->getRequest()->getParam('data');
        $arrUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataDecode($strUrlData);
        $post = $this->getRequest()->getPost();
        //echo '<pre>';print_r($arrUrlData);echo '</pre>';die;
        $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        $IsInterNational = $this->view->IsInterNational = isset($sessionFlightProposalParams->params['IsInterNational']) ? $sessionFlightProposalParams->params['IsInterNational'] : 0;

        $tripType = $this->view->tripType = !empty($arrUrlData['tripType']) ? $arrUrlData['tripType'] : 1;
        $IsQuickProposal = isset($arrUrlData['IsQuickProposal']) ? $arrUrlData['IsQuickProposal'] : '0';
        $arrIntTpAirId = isset($arrUrlData['arrIntTpAirId'][0]) ? $arrUrlData['arrIntTpAirId'][0] : '0';

        /* API Booking Response */
        $arrBookingResponse = $this->view->arrBookingResponse = isset($arrUrlData['arrBookingResponse']) ? json_decode($arrUrlData['arrBookingResponse'], true) : '';

        //echo "<pre>";print_r($arrBookingResponse);die('dddddd');

        $TraceId = isset($arrBookingResponse['Response']['TraceId']) ? $arrBookingResponse['Response']['TraceId'] : '';
        $this->view->TraceId = $TraceId;
        $intTPSysId = $this->view->intTPSysId = !empty($arrUrlData['TPSysId']) ? $arrUrlData['TPSysId'] : (!empty($this->getRequest()->getParam('TPSysId')) ? $this->getRequest()->getParam('TPSysId') : 0);
        $TrxSysId = $this->view->TrxSysId = !empty($arrUrlData['TrxSysId']) ? $arrUrlData['TrxSysId'] : (!empty($this->getRequest()->getParam('TrxSysId')) ? $this->getRequest()->getParam('TrxSysId') : 0);
        $guid = $this->view->guid = !empty($arrUrlData['guid']) ? $arrUrlData['guid'] : (!empty($this->getRequest()->getParam('guid')) ? $this->getRequest()->getParam('guid') : '');
        $objFlight = new Travel_Model_TblFlight();
        $arrTravelPlanAir = $objFlight->getTravelPlanAirData($intTPSysId);
        $this->view->arrTravelPlanAir = $arrTravelPlanAir;
        //        $dfdfdfd = '{"Response":{"B2B2BStatus":false,"Error":{"ErrorCode":0,"ErrorMessage":""},"ResponseStatus":1,"TraceId":"1c52c04b-e981-44bc-864b-4ae2b4ad3ef6","Response":{"PNR":"R4TNPR","BookingId":1377383,"SSRDenied":false,"SSRMessage":null,"Status":1,"IsPriceChanged":false,"IsTimeChanged":false,"FlightItinerary":{"IssuancePcc":"OTI011","TripIndicator":1,"BookingId":1377383,"IsManual":false,"PNR":"R4TNPR","IsDomestic":true,"Source":6,"Origin":"GOI","Destination":"BOM","AirlineCode":"6E","LastTicketDate":"9999-12-31T00:00:00","ValidatingAirlineCode":"6E","AirlineRemark":"","AirlineTollFreeNo":"1800-0001-5456-51515","IsLCC":true,"NonRefundable":false,"FareType":"PUB","CreditNoteNo":null,"Fare":{"Currency":"INR","BaseFare":1600,"Tax":1066.18,"TaxBreakup":[{"key":"K3","value":103.68},{"key":"PSF","value":239.00},{"key":"YR","value":50.00},{"key":"YQTax","value":500.00},{"key":"TransactionFee","value":73.50},{"key":"TotalTax","value":1066.18}],"YQTax":500,"AdditionalTxnFeeOfrd":0,"AdditionalTxnFeePub":0,"PGCharge":0,"OtherCharges":236.00,"ChargeBU":[{"key":"TBOMARKUP","value":0},{"key":"OTHERCHARGE","value":236.00},{"key":"CONVENIENCECHARGE","value":0}],"Discount":0.00,"PublishedFare":2902.18,"CommissionEarned":30.70,"PLBEarned":32.36,"IncentiveEarned":21.88,"OfferedFare":2817.24,"TdsOnCommission":9.21,"TdsOnPLB":9.71,"TdsOnIncentive":6.56,"ServiceFee":0,"TotalBaggageCharges":0,"TotalMealCharges":0,"TotalSeatCharges":0,"TotalSpecialServiceCharges":0},"CreditNoteCreatedOn":null,"Passenger":[{"PaxId":1906916,"Title":"Mr","FirstName":"Md","LastName":"Sabir","PaxType":1,"DateOfBirth":"1990-10-07T00:00:00","Gender":1,"PassportNo":"","AddressLine1":"H65 Ground Floor Jamia Nagar","AddressLine2":"","Fare":{"Currency":"INR","BaseFare":1600,"Tax":1066.18,"TaxBreakup":[{"key":"K3","value":103.68},{"key":"PSF","value":239.00},{"key":"YR","value":50.00},{"key":"YQTax","value":500.00},{"key":"TransactionFee","value":73.50},{"key":"TotalTax","value":1066.18}],"YQTax":500,"AdditionalTxnFeeOfrd":0,"AdditionalTxnFeePub":0,"PGCharge":0,"OtherCharges":236.00,"ChargeBU":[{"key":"TBOMARKUP","value":0},{"key":"OTHERCHARGE","value":236.00},{"key":"CONVENIENCECHARGE","value":0}],"Discount":0.00,"PublishedFare":2902.18,"CommissionEarned":30.70,"PLBEarned":32.36,"IncentiveEarned":21.88,"OfferedFare":2817.24,"TdsOnCommission":9.21,"TdsOnPLB":9.71,"TdsOnIncentive":6.56,"ServiceFee":0,"TotalBaggageCharges":0,"TotalMealCharges":0,"TotalSeatCharges":0,"TotalSpecialServiceCharges":0},"City":"Delhi","CountryCode":"IN","CountryName":"India","Nationality":"IN","ContactNo":"8447455883","Email":"anshul@catpl.co.in","IsLeadPax":true,"FFAirlineCode":null,"FFNumber":"","Ticket":{"TicketId":1647595,"TicketNumber":"R4TNPR","IssueDate":"2018-07-23T13:50:04","ValidatingAirline":"708","Remarks":"","ServiceFeeDisplayType":"ShowInTax","Status":"OK","ConjunctionNumber":"     ","TicketType":"N"},"SegmentAdditionalInfo":[{"FareBasis":"JZ15AP","NVA":"","NVB":"","Baggage":"0 Kg","Meal":"0 Platter","Seat":"","SpecialService":""}]}],"CancellationCharges":null,"Segments":[{"Baggage":null,"CabinBaggage":null,"TripIndicator":1,"SegmentIndicator":1,"Airline":{"AirlineCode":"6E","AirlineName":"IndiGo","FlightNumber":"418","FareClass":"HO","OperatingCarrier":""},"AirlinePNR":"","Origin":{"Airport":{"AirportCode":"GOI","AirportName":"Dabolim","Terminal":"","CityCode":"GOI","CityName":"Goa","CountryCode":"IN","CountryName":"India"},"DepTime":"2018-07-24T17:10:00"},"Destination":{"Airport":{"AirportCode":"BOM","AirportName":"Mumbai","Terminal":"","CityCode":"BOM","CityName":"Mumbai","CountryCode":"IN","CountryName":"India"},"ArrTime":"2018-07-24T18:30:00"},"Duration":80,"GroundTime":0,"Mile":0,"StopOver":false,"StopPoint":"","StopPointArrivalTime":"2018-07-24T18:30:00","StopPointDepartureTime":"2018-07-24T17:10:00","Craft":"320","Remark":null,"IsETicketEligible":false,"FlightStatus":"Confirmed","Status":"HK"}],"FareRules":[{"Origin":"GOI","Destination":"BOM","Airline":"6E","FareBasisCode":"JZ15AP","FareRuleDetail":"These are just hand bag fares there is no checked in baggage for this fare.<\/B>
        // \u000d\u000a IndiGo Fares Terms & Conditions\u000d\u000a============================================================\u000d\u000a Regular \/ Promo Fare\u000d\u000a-------------------------------------------------------------------------------------\u000d\u000aBaggage Conditions:\u000d\u000aCheck-in Baggage Allowance: 15 kg for Domestic sectors and 20 kg for International Sectors except 30 Kg for Dubai, Muscat, Sharjah, Doha and Singapore.\u000d\u000aHand Baggage Allowance: 7 Kg.\u000d\u000aChange Fee:\u000d\u000aDomestic India & Nepal Travel: Rs 2,250 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if changed within 2 hrs from scheduled departure.\u000d\u000aInternational except Nepal: Rs 2,500 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 4hrs before the scheduled departure. No-show charges will be levied if changed within 4 hrs from scheduled departure. \u000d\u000aCancellation Fee:\u000d\u000aDomestic India & Nepal Travel: Rs 3,000 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if cancelled within 2 hrs from scheduled departure.     \u000d\u000aInternational except Nepal: Rs 3,500 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 4hrs before the scheduled departure. No-show charges will be levied if cancelled within 4 hrs from scheduled departure. \u000d\u000a============================================================\u000d\u000a Return Fare\u000d\u000a-------------------------------------------------------------------------------------\u000d\u000aApplicable for Round-Trip journey.\u000d\u000aBaggage Conditions:\u000d\u000aCheck-in Baggage Allowance: 15 kg for Domestic sectors and 20 kg for International Sectors except 30 Kg for Dubai, Muscat, Sharjah, Doha and Singapore.\u000d\u000aHand Baggage Allowance:  7 Kg.\u000d\u000aChange Fee:\u000d\u000aDomestic India & Nepal Travel: Rs 2,250 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if changed within 2 hrs from scheduled departure.     \u000d\u000aInternational except Nepal: Rs 2,500 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 4hrs before the schedule departure. No-show charges will be levied if changed within 4 hrs from scheduled departure. \u000d\u000aCancellation Fee:\u000d\u000aDomestic India & Nepal Travel: Rs 3,000 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if cancelled within 2 hrs from scheduled departure.     \u000d\u000aInternational except Nepal: Rs 3,500 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 4hrs before the scheduled departure. No-show charges will be levied if cancelled within 4 hrs from scheduled departure. \u000d\u000a============================================================\u000d\u000a Family Fare\u000d\u000a-------------------------------------------------------------------------------------\u000d\u000aApplicable on a minimum of 4 pax booked on the same PNR.\u000d\u000aNot available on international sectors.\u000d\u000aBaggage Conditions:\u000d\u000aCheck-in Baggage Allowance: 15 kg for Domestic sectors.\u000d\u000aHand Baggage Allowance:  7 Kg.\u000d\u000aChange Fee:\u000d\u000aDomestic India: Rs 2,250 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if changed within 2 hrs from scheduled departure.     \u000d\u000aCancellation Fee:\u000d\u000aDomestic India: Rs 3,000 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if cancelled within 2 hrs from scheduled departure.     \u000d\u000a============================================================\u000d\u000a  Flexi Fare\u000d\u000a Allows unlimited changes till 2 hours before the scheduled departure for domestic sectors and 4 hours before the scheduled departure for international sectors. Fare difference applies.\u000d\u000aBaggage Conditions:\u000d\u000aCheck-in Baggage Allowance: 15 kg for Domestic sectors and 20 kg for International Sectors except 30 Kg for Dubai, Muscat, Sharjah, Doha and Singapore.\u000d\u000aHand Baggage Allowance:  7 Kg.\u000d\u000aChange Fee:\u000d\u000aDomestic India & Nepal Travel: No Change Fee: if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if changed within 2 hrs from scheduled departure.\u000d\u000aInternational except Nepal: No Change Fee: if changed at least 4hrs before the scheduled departure. No-show charges will be levied if changed within 4 hrs from scheduled departure. \u000d\u000aCancellation Fee:\u000d\u000aDomestic India & Nepal Travel: Rs 3,000 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if cancelled within 2 hrs from scheduled departure.     \u000d\u000aInternational except Nepal: Rs 3,500 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 4hrs before the scheduled departure. No-show charges will be levied if cancelled within 4 hrs from scheduled departure. \u000d\u000a============================================================\u000d\u000a Lite Fare\u000d\u000a-------------------------------------------------------------------------------------\u000d\u000aApplicable for travel without a check-in baggage. Applicable for travel beyond 15 days from the booking date.\u000d\u000aFor a multi-leg\/return journey, Lite Fare will be available only if it is available and selected on each of the individual legs.\u000d\u000aNot available on international sectors.\u000d\u000aBaggage Conditions:\u000d\u000aCheck-in Baggage Allowance: No check-in baggage allowed.\u000d\u000aHand Baggage Allowance:  7 Kg.\u000d\u000aChange Fee:\u000d\u000aDomestic India: Rs 2,250 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if changed within 2 hrs from scheduled departure.     \u000d\u000aCancellation Fee:\u000d\u000aDomestic India: Rs 3,000 or 100% of airfare charge (whichever is lower) per passenger per segment will be levied if changed at least 2 hrs before the scheduled departure. No-show charges will be levied if cancelled within 2 hrs from scheduled departure.     \u000d\u000a============================================================\u000d\u000a Corporate \/ Coupon Fare\u000d\u000a-------------------------------------------------------------------------------------\u000d\u000aAvailable for contracted Corporate Customers only. Allows unlimited flexibility to change \/ cancel, extra hand-baggage allowance, complimentary seat and meal (1 food item & 1 beverage). \u000d\u000aBaggage Conditions:\u000d\u000aCheck-in Baggage Allowance: 15 kg for Domestic sectors and 20 kg for International Sectors except 30 Kg for Dubai, Muscat, Sharjah, Doha and Singapore.\u000d\u000aHand Baggage Allowance: 10 Kg.\u000d\u000aChange Fee:\u000d\u000aDomestic India & Nepal Travel: No Change Fee: if changed at least 1 hr before the scheduled departure. No-show charges will be levied if changed within 1 hrs from scheduled departure.     \u000d\u000aInternational except Nepal: No Change Fee: if changed at least 4 hr before the scheduled departure. No-show charges will be levied if changed within 4 hrs from scheduled departure. \u000d\u000aCancellation Fee:\u000d\u000aDomestic India & Nepal Travel: No Cancellation Fee: if cancelled at least 1 hr before the scheduled departure. No-show charges will be levied if cancelled within 1 hrs from scheduled departure.     \u000d\u000aInternational except Nepal: No Cancellation Fee: if changed at least 4 hrs before the scheduled departure. No-show charges will be levied if cancelled within 4 hrs from scheduled departure. \u000d  ","FareRestriction":null}],"Status":5,"InvoiceAmount":2843.00,"InvoiceNo":"DW\/1819\/18535","InvoiceStatus":3,"InvoiceCreatedOn":"2018-07-23T13:50:04","Remarks":""},"TicketStatus":1}}}';
        //        $arrFlightSearchResponse = [];
        //        $arrFlightSearchResponse['Response'] = array(
        //            'Error'=>array(
        //                'ErrorCode'=>0,'ErrorMessage'=>''
        //            ),
        //            'ResponseStatus'=>1,
        //            'TraceId'=>'',
        //            'Response'=>array(
        //                'PNR'=>'',
        //                'BookingId'=>'',
        //                'Status'=>1,
        //                'FlightItinerary'=>array(
        //                    'TripIndicator'=>1,
        //                    'BookingId'=>'',
        //                    'PNR'=>'',
        //                    'IsDomestic'=>true,
        //                    'Source'=>6,
        //                    'Origin'=>'GOI',
        //                    'Destination'=>'BOM',
        //                    'AirlineCode'=>'',
        //                    'NonRefundable'=>true,
        //                    'Fare'=>array(
        //                        'Currency'=>'INR',
        //                        'BaseFare'=>'3012',
        //                        'Tax'=>'',
        //                        'OtherCharges'=>'',
        //                        'PublishedFare'=>'3012',
        //                        'CommissionEarned'=>'10',
        //                        'OfferedFare'=>'3012',
        //                    )
        //                )
        //            )
        //        );
        //        echo "<pre>";echo json_encode($arrFlightSearchResponse);
        //        echo "<pre>";print_r($dfdfdfd);
        //echo "<pre>";print_r($arrBookingResponse);die('dddddd');
        //    $arra = '';
        if ($tripType == 2 && !$IsInterNational) {
            if ($IsQuickProposal == 0) {
                $arrDepartBookingResponse = json_decode($arrBookingResponse[0], true);
                $arrReturnBookingResponse = json_decode($arrBookingResponse[1], true);
            } else {
                $arrDepartBookingResponse = $arrBookingResponse[0];
                $arrReturnBookingResponse = $arrBookingResponse[1];
            }
            //echo '<pre>';print_r($arrReturnBookingResponse['Response']['Response']['BookingId']);echo '</pre>';
            //echo '<pre>';print_r($arrBookingResponse[1]);echo '</pre>';die;
            $DepartErrorMessageAPI = isset($arrDepartBookingResponse['Response']['Error']['ErrorMessage']) ? $arrDepartBookingResponse['Response']['Error']['ErrorMessage'] : '';
            $this->view->ErrorMessage = !empty($DepartErrorMessageAPI) ? $DepartErrorMessageAPI : '';
            //(!empty($this->getRequest()->getParam('error_Message'))?$this->getRequest()->getParam('error_Message'):'')
            $this->view->PNR = $PNR = isset($arrDepartBookingResponse['Response']['Response']['PNR']) ? $arrDepartBookingResponse['Response']['Response']['PNR'] : '';
            $this->view->BookingId = $BookingId = isset($arrDepartBookingResponse['Response']['Response']['BookingId']) ? $arrDepartBookingResponse['Response']['Response']['BookingId'] : '';
            $this->view->IsLCC = $IsLCC = isset($arrDepartBookingResponse['Response']['Response']['FlightItinerary']['IsLCC']) ? $arrDepartBookingResponse['Response']['Response']['FlightItinerary']['IsLCC'] : '';

            $ReturnErrorMessageAPI = isset($arrReturnBookingResponse['Response']['Error']['ErrorMessage']) ? $arrReturnBookingResponse['Response']['Error']['ErrorMessage'] : '';
            $this->view->ReturnErrorMessage = !empty($ReturnErrorMessageAPI) ? $ReturnErrorMessageAPI : '';
            $this->view->ReturnPNR = $PNR = $ReturnPNR = isset($arrReturnBookingResponse['Response']['Response']['PNR']) ? $arrReturnBookingResponse['Response']['Response']['PNR'] : '';
            $this->view->ReturnBookingId = $ReturnBookingId = $BookingId = isset($arrReturnBookingResponse['Response']['Response']['BookingId']) ? $arrReturnBookingResponse['Response']['Response']['BookingId'] : '';
            $this->view->IsLCCReturn = $IsLCCReturn = isset($arrReturnBookingResponse['Response']['Response']['FlightItinerary']['IsLCC']) ? $arrReturnBookingResponse['Response']['Response']['FlightItinerary']['IsLCC'] : '';
            //echo $arrTravelPlanAir[1]['XRefPNR'];
            //            if(!$IsLCC && (isset($arrTravelPlanAir[0]['XRefPNR']) && $arrTravelPlanAir[0]['XRefPNR'] == "")){
            //                if(isset($arrDepartBookingResponse) && !empty($arrDepartBookingResponse)){
            //                   //if(!empty($DepartErrorMessageAPI)){die('dd');
            //                        $generateNonLccTicketCustom = $this->generateNonLccTicketCustomAction($TraceId,$PNR,$BookingId,$intTPSysId,0,0);
            //                        $res = json_decode($generateNonLccTicketCustom,true);
            //                        $this->view->msg = $res['msg'];
            //                    //}
            //                }
            //            }
            //            if(!$IsLCCReturn && (isset($arrTravelPlanAir[1]['XRefPNR']) && $arrTravelPlanAir[1]['XRefPNR'] == "")){
            //                if(isset($arrReturnBookingResponse) && !empty($arrReturnBookingResponse)){
            //                   //if(!empty($ReturnErrorMessageAPI)){
            //                        $generateNonLccTicketCustom1 = $this->generateNonLccTicketCustomAction($TraceId,$ReturnPNR,$ReturnBookingId,$intTPSysId,1,1);
            //                        $res1 = json_decode($generateNonLccTicketCustom1,true);
            //                        $this->view->Returnmsg = $res1['msg'];
            //                    //}
            //                }
            //            }
            //die('ddd');
        } else if ($tripType == 2 && $IsInterNational) {
            $arrDepartBookingResponse = $arrBookingResponse;

            $DepartErrorMessageAPI = isset($arrDepartBookingResponse['Response']['Error']['ErrorMessage']) ? $arrDepartBookingResponse['Response']['Error']['ErrorMessage'] : '';
            $this->view->ErrorMessage = !empty($DepartErrorMessageAPI) ? $DepartErrorMessageAPI : '';
            //(!empty($this->getRequest()->getParam('error_Message'))?$this->getRequest()->getParam('error_Message'):'')
            $this->view->PNR = $PNR = isset($arrDepartBookingResponse['Response']['Response']['PNR']) ? $arrDepartBookingResponse['Response']['Response']['PNR'] : '';
            $this->view->BookingId = $BookingId = isset($arrDepartBookingResponse['Response']['Response']['BookingId']) ? $arrDepartBookingResponse['Response']['Response']['BookingId'] : '';
        } else {
            $ErrorMessageAPI = isset($arrBookingResponse['Response']['Error']['ErrorMessage']) ? $arrBookingResponse['Response']['Error']['ErrorMessage'] : '';
            $this->view->ErrorMessage = !empty($ErrorMessageAPI) ? $ErrorMessageAPI : (!empty($this->getRequest()->getParam('error_Message')) ? $this->getRequest()->getParam('error_Message') : '');
            $this->view->PNR = $PNR = isset($arrBookingResponse['Response']['Response']['PNR']) ? $arrBookingResponse['Response']['Response']['PNR'] : '';
            $this->view->BookingId = $BookingId = isset($arrBookingResponse['Response']['Response']['BookingId']) ? $arrBookingResponse['Response']['Response']['BookingId'] : '';
            $this->view->IsLCC = $IsLCC = isset($arrBookingResponse['Response']['Response']['FlightItinerary']['IsLCC']) ? $arrBookingResponse['Response']['Response']['FlightItinerary']['IsLCC'] : '';
            if (!$IsLCC && (isset($arrTravelPlanAir[0]['XRefPNR']) && $arrTravelPlanAir[0]['XRefPNR'] == "") && $IsQuickProposal == 0) {
                if (isset($arrBookingResponse) && !empty($arrBookingResponse)) {
                    //echo "<pre>";print_r($arrUrlData);
                    $generateNonLccTicketCustom = $this->generateNonLccTicketCustomAction($TraceId, $PNR, $BookingId, $intTPSysId, 0, 0, $arrIntTpAirId);
                    $res = json_decode($generateNonLccTicketCustom, true);
                    $this->view->msg = $res['msg'];
                }
            }
        }

        /* API Booking Response */




        //    echo "<pre>";
        //    unset($arrBookingResponse[0]['BookingResponse']);
        //    print_r($arrBookingResponse);
        //    exit;


        $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        //    echo "<pre>";print_r($sessionFlightProposalParams->params);exit;
        $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
        $intAdultCount = $sessionFlightProposalParams->params['AdultCount'];
        $intChildCount = $sessionFlightProposalParams->params['ChildCount'];
        $intInfantCount = $sessionFlightProposalParams->params['InfantCount'];

        $this->view->MasterTPSysId = $MasterTPSysId = trim($sessionFlightProposalParams->params['MasterTPSysId']);



        //echo "<pre>"; print_r($arrUrlData);exit;

        $this->view->TPSysId = $TPSysId = trim($arrUrlData['intTPSysId']);


        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $arrProposalDetails = $objFlightProposal->getFlightProposalDetails("", $TPSysId);
        $this->view->arrProposalDetails = $arrProposalDetails;


        $AirInvenSysId = trim($arrUrlData['intOutBoundId']);
        $ReturnAirInvenSysId = isset($arrUrlData['intInBoundId']) ? trim($arrUrlData['intInBoundId']) : 0;

        /* Selected Flight Fare Details */
        $objFlight = new Travel_Model_TblFlight();
        $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
        $arrSelectedFlightFareDetails = $objFlight->getSelectedFlightFareDetails();
        $this->view->arrSelectedFlightFareDetails = $arrSelectedFlightFareDetails;
        if (!empty($ReturnAirInvenSysId)) {
            $objFlight->strConditionNew = " InvnItemSysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
        } else {
            $objFlight->strConditionNew = " InvnItemSysId IN ('" . $AirInvenSysId . "') ";
        }
        $getSlectedFlightBookFareDetails = $objFlight->getSlectedFlightBookFareDetails();
        $this->view->getSlectedFlightBookFareDetails = $getSlectedFlightBookFareDetails;
        //echo "<pre>";print_r($arrSelectedFlightFareDetails);

        if (!empty($getSlectedFlightBookFareDetails)) {
            $intPublishFareNew = 0;
            foreach ($getSlectedFlightBookFareDetails as $Val) {
                $intPublishFareNew += !empty($Val['TotalCost']) ? $Val['TotalCost'] : '0';
            }
        }
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        $arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($TPSysId);
        $this->view->arrAgencyDetails = $arrAgencyDetails;
        $objAgency = new Travel_Model_TblAgency();
        $objPkg = new Travel_Model_TblPackage();
        $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
        $arrAgencyDetails = $objAgency->getAgencyDataById($AgencySysId);

        $AgencyBaseCurrency = $arrAgencyDetails['TrxCurrency'];
        $packageSharedCurrency = isset($arrSelectedFlightFareDetails[0]['Currency']) ? $arrSelectedFlightFareDetails[0]['Currency'] : '1';
        $exchangerate = $objPkg->currencyExchangeRate($packageSharedCurrency, $AgencyBaseCurrency);
        $intPublishFareNew = $packageBaseCurrencyNetPrice = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($intPublishFareNew, $exchangerate);
        $this->view->intPublishFareNew = $intPublishFareNew;
        $this->view->Symbol = !empty($arrAgencyDetails['Symbol']) ? $arrAgencyDetails['Symbol'] : '';
        /* Selected Flight Fare Details Ends */

        /* Selected Flight Details */
        $objFlight->strCondition = " TBQAirInvenSysId IN ('" . $AirInvenSysId . "','" . $ReturnAirInvenSysId . "') ";
        $arrSelectedFlightDetails = $objFlight->getSelectedFlightDetails();
        //echo "<pre>";print_r($arrSelectedFlightDetails);exit;
        $this->view->arrSelectedFlightDetails = $arrSelectedFlightDetails;
        /* Selected Flight Details */

        /* Proposal Customer Related Details */
        $ARR_SALUTION = unserialize(ARR_SALUTION);
        $ARR_CUSTOMER_RELATION = unserialize(ARR_CUSTOMER_RELATION);
        $this->view->ARR_CUSTOMER_RELATION = $ARR_CUSTOMER_RELATION;
        $this->view->ARR_SALUTION = $ARR_SALUTION;

        //$sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        $this->view->CustomerSysId = $CustomerSysId = $sessionFlightProposalParams->params['CustomerSysId'];
        //echo "<pre>";print_r($sessionFlightProposalParams->params);

        if (!empty($CustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($CustomerSysId, $TPSysId);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
            if (isset($CustomerSysId) && !empty($CustomerSysId) && $CustomerSysId > 0) {
                $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
                $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById($CustomerSysId);
                $this->view->customerDetails = $customerDetails;
            }
        }


        /* Proposal Customer Related Details Ends */

        if (!empty($MasterTPSysId)) {
            $objFlightProposal = new Travel_Model_TblFlightProposal();
            $arrFlightDetails = $objFlightProposal->getFlightProposalDetails($MasterTPSysId);
            //echo "<pre>";print_r($arrFlightDetails);
            $this->view->arrAirDetails = $arrFlightDetails;
            $SourceAirportCode = trim($arrFlightDetails[0]['SourceAirportCode']);
            if (!empty($SourceAirportCode)) {
                $arrSourceAirport = $objFlightProposal->getAirPortByAirportCode($SourceAirportCode);
            }
            $this->view->SourceAirport = isset($arrSourceAirport['label']) ? $arrSourceAirport['label'] : '';
            $DestAirportCode = trim($arrFlightDetails[0]['DestAirportCode']);
            if (!empty($DestAirportCode)) {
                $arrDestinationAirport = $objFlightProposal->getAirPortByAirportCode($DestAirportCode);
            }
            $this->view->DestinationAirport = isset($arrDestinationAirport['label']) ? $arrDestinationAirport['label'] : '';
        }
    }

    public function memberguestdetailAction()
    {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
        if ($this->_request->isXmlHttpRequest()) {
            $mobilNo = trim($this->getRequest()->getParam('mobilNo'));
            $email_id = trim($this->getRequest()->getParam('email_id'));
            $AgencySysId = trim($this->getRequest()->getParam('AgencySysId'));
            // echo "<pre>";
            // print_r($mobilNo);

            $intMemberSysIdRequest = trim($this->getRequest()->getParam('intMemberSysId'));
            if (!empty($mobilNo)) {

                //check customer agency
                $this->_crmcustomerObj = new Travel_Model_CRM_Customer();

                $IsAgencyCusTExist = $this->_crmcustomerObj->ChkMobileWithResponseUpdate($mobilNo, $AgencySysId, null, $email_id);
                $result = array();
                if (!empty($IsAgencyCusTExist) ) {
                    $result['MEMBERS'] = $this->_crmcustomerObj->GetCustomerMembersById($AgencySysId, $IsAgencyCusTExist['CustomerSysId']);
                    $result['SELF'] = $IsAgencyCusTExist;
                    $resultNew = array_values(array_merge([$IsAgencyCusTExist], $this->_crmcustomerObj->GetCustomerMembersById($AgencySysId, $IsAgencyCusTExist['CustomerSysId'])));
                } else {
                    $resultNew = [$IsAgencyCusTExist];
                }
                $responseArray = [];
                if ($resultNew) {
                    foreach ($resultNew as $key => $val) {
                        $DOB_ = (array)$val['DOB'];
                        $PassportExpiry_ = (array)$val['PassportExpiry'];
                        $PassportIssue_ = (array)$val['PassportIssue'];

                        if (!empty($DOB_['date']) && date('Y-m-d', strtotime($DOB_['date'])) != '1900-01-01') {
                            $DOB = ($DOB_['date'] != '0000-00-00') ? date('d/m/Y', strtotime($DOB_['date'])) : '';
                        } else {
                            $DOB = '';
                        }

                        if (!empty($PassportExpiry_['date']) && date('Y-m-d', strtotime($PassportExpiry_['date'])) != '1900-01-01') {
                            $PassportExpiry = ($PassportExpiry_['date'] != '0000-00-00') ? date('d/m/Y', strtotime($PassportExpiry_['date'])) : '';
                        } else {
                            $PassportExpiry = '';
                        }
                        if (!empty($PassportIssue_['date']) && date('Y-m-d', strtotime($PassportIssue_['date'])) != '1900-01-01') {
                            $PassportIssue = ($PassportIssue_['date'] != '0000-00-00') ? date('d/m/Y', strtotime($PassportIssue_['date'])) : '';
                        } else {
                            $PassportIssue = '';
                        }
                        $val['DOB'] = $DOB;
                        $val['PassportExpiry'] = $PassportExpiry;
                        $val['PassportIssue'] = $PassportIssue;
                        if ($key == 0) {
                            $val['MemberSysId'] = $val['CustomerSysId'];

                            $responseArray['_' . $val['CustomerSysId']] = $val;
                        } else {

                            $responseArray['_' . $val['MemberSysId']] = $val;
                        }
                    }
                }
                $response = '';
                if (!empty($result) ) {
                    $html = new Zend_View();
                    $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
                    $html->assign('type', 'customerMembersList');
                    $html->assign('data', $result);
                    $bodyText = $html->render('ajax-html.phtml');
                    $response = array('status' => 'success', 'data' => $bodyText, 'resultNew' => $resultNew, 'responseArray' => $responseArray, 'CustomerSysId' => $result['SELF']['CustomerSysId'], 'EmailId' => trim($result['SELF']['EmailId']), 'Title' => trim($result['SELF']['Title']), 'FirstName' => trim($result['SELF']['FirstName']), 'LastName' => trim($result['SELF']['LastName']), 'DOB' => trim($result['SELF']['DOB']->format('d-M-y')), 'PassportExpiry' => trim($result['SELF']['PassportExpiry']->format('d-M-y')), 'PassportNo' => trim($result['SELF']['PassportNo']), 'Address' => trim($result['SELF']['Address']), 'Contacts' => trim($result['SELF']['Contacts']), 'CitySysId' => trim(@$result['SELF']['CitySysId']), 'cityTitle' => trim(@$result['SELF']['cityTitle']), 'CountrySysId' => trim(@$result['SELF']['CountrySysId']));
                } else {
                    $response = array('status' => 'failed', 'msg' => 'No Record Availbale!');
                }

                echo json_encode($response);

                exit;
            }
        }
    }

    // public function memberguestdetailAction()
    // {
    //     $this->_helper->viewRenderer->setNoRender(true);
    //     $this->_helper->layout->disableLayout();
    //     if ($this->_request->isXmlHttpRequest()) {
    //         $getData = $this->getRequest()->getParams();
    //         $AgencySysId = trim($this->getRequest()->getParam('AgencySysId'));
    //         $mobilNo = trim($this->getRequest()->getParam('mobilNo'));
    //         $intMemberSysIdRequest = trim($this->getRequest()->getParam('intMemberSysId'));
    //         $email_id = trim($this->getRequest()->getParam('email_id'));
    //         // echo '<pre>';
    //         // print_r($getData);
    //         // die;
    //         if (!empty($mobilNo)) {
    //             //$objGest = new Travel_Model_Tbltbbcuser();
    //             //$result = $objGest->getCustomerAndMembersDetails($mobilNo);
    //             //check customer agency added by Er Amit Kumar Dubey on 2 march 2017 at 4:50 PM
    //             $this->_crmcustomerObj = new Travel_Model_CRM_Customer();

    //             $IsAgencyCusTExist = $this->_crmcustomerObj->ChkMobileWithResponseUpdate($mobilNo, $AgencySysId);
    //             $result = array();
    //             if (!empty($IsAgencyCusTExist) > 0) {
    //                 $result['MEMBERS'] = $this->_crmcustomerObj->GetCustomerMembersById($AgencySysId, $IsAgencyCusTExist['CustomerSysId']);
    //                 $result['SELF'] = $IsAgencyCusTExist;
    //             }
    //             //print_r($IsAgencyCusTExist);die;
    //             $response = '';
    //             if (!empty($result) > 0) {
    //                 $html = new Zend_View();
    //                 $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
    //                 $html->assign('type', 'customerMembersList');
    //                 $html->assign('data', $result);
    //                 $bodyText = $html->render('ajax-html.phtml');
    //                 $response = array('status' => 'success', 'data' => $bodyText, 'CustomerSysId' => $result['SELF']['CustomerSysId'], 'EmailId' => trim($result['SELF']['EmailId']), 'Title' => trim($result['SELF']['Title']), 'FirstName' => trim($result['SELF']['FirstName']), 'LastName' => trim($result['SELF']['LastName']), 'DOB' => trim($result['SELF']['DOB']->format('d-M-y')), 'Address' => trim($result['SELF']['Address']), 'Contacts' => trim($result['SELF']['Contacts']), 'CitySysId' => trim(@$result['SELF']['CitySysId']), 'cityTitle' => trim(@$result['SELF']['cityTitle']));
    //             } else {
    //                 $response = array('status' => 'failed', 'msg' => 'No Record Availbale!');
    //             }
    //             echo json_encode($response);

    //             exit;
    //         }
    //     }
    // }



    public function proposalFareQuoteDetailsAction($data = array())
    {

        $intAirInvenSysId = $data['AirInvenSysId'];

        $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
        $intAdultCount = $sessionFlightProposalParams->params['AdultCount'];
        $intChildCount = $sessionFlightProposalParams->params['ChildCount'];
        $intInfantCount = $sessionFlightProposalParams->params['InfantCount'];
        $route = $sessionFlightProposalParams->params['route'];

        $intTatalPaxCTForMarkUp = $intAdultCount + $intChildCount + $intInfantCount;

        $IsInterNational = $sessionFlightProposalParams->params['IsInterNational'];
        if ($IsInterNational) {
            $intCountryCode = "INTERNATIONAL";
        } else {
            $intCountryCode = "IN";
        }


        $objFlight = new Travel_Model_TblFlight();
        if (!empty($data['apiTraceId']) && !empty($data['ApiResultIndex'])) {
            $arrData = array(
                "apiTraceId" => $data['apiTraceId'],
                "ApiResultIndex" => $data['ApiResultIndex']
            );
            $response = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->fareQuoteDetails($arrData);
            //echo "<pre>";print_r($response);exit;
            $arrIsPriceChanged = '';
            if ($response['Response']['ResponseStatus'] == '1') {

                $arrIsPriceChanged = $response['Response']['IsPriceChanged'];

                $result = $response['Response']['Results'];
                $Currency = $result['Fare']['Currency'];
                $currencySysId = !empty($arrCurrencyList[$Currency]) ? $arrCurrencyList[$Currency] : '1';
                $BaseFare = $result['Fare']['BaseFare'];
                $Tax = $result['Fare']['Tax'];

                $YQTax = $result['Fare']['YQTax'];
                $AdditionalTxnFeeOfrd = $result['Fare']['AdditionalTxnFeeOfrd'];
                $AdditionalTxnFeePub = $result['Fare']['AdditionalTxnFeePub'];
                $OtherCharges = $result['Fare']['OtherCharges'];
                $Discount = $result['Fare']['Discount'];
                $PublishedFare = $result['Fare']['PublishedFare'];
                $CommissionEarned = $result['Fare']['CommissionEarned'];
                $PLBEarned = $result['Fare']['PLBEarned'];
                $IncentiveEarned = $result['Fare']['IncentiveEarned'];
                $OfferedFare = $result['Fare']['OfferedFare'];
                $TdsOnCommission = $result['Fare']['TdsOnCommission'];
                $TdsOnPLB = $result['Fare']['TdsOnPLB'];
                $TdsOnIncentive = $result['Fare']['TdsOnIncentive'];
                $ServiceFee = $result['Fare']['ServiceFee'];


                $arrAllCommissions = array(
                    'intCommissionEarned' => $CommissionEarned,
                    'intPLBEarned' => $PLBEarned,
                    'intIncentiveEarned' => $IncentiveEarned
                );

                $arrPriceAndMarkUps = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getApiPriceWithMarkupAndServiceTax($arrAllCommissions, $OfferedFare, $intCountryCode, $AgencySysId);
                //echo "<pre>";print_r($arrPriceAndMarkUps);


                $intOfferedFare = $arrPriceAndMarkUps['intOfferedFare'];
                if ($IsInterNational) {
                    $intGTXMarkUp = (($arrPriceAndMarkUps['intGTXMarkUp'] * $intTatalPaxCTForMarkUp) * $route);
                    $intSTaxOnGTXMarkUp = (($arrPriceAndMarkUps['intSTaxOnGTXMarkUp'] * $intTatalPaxCTForMarkUp) * $route);
                    $intAgencyFixMarkUp = (($arrPriceAndMarkUps['intAgencyFixMarkUp'] * $intTatalPaxCTForMarkUp) * $route);
                    $intSTaxOnAgencyFixMarkUp = (($arrPriceAndMarkUps['intSTaxOnAgencyFixMarkUp'] * $intTatalPaxCTForMarkUp) * $route);
                } else {
                    $intGTXMarkUp = ($arrPriceAndMarkUps['intGTXMarkUp'] * $intTatalPaxCTForMarkUp);
                    $intSTaxOnGTXMarkUp = ($arrPriceAndMarkUps['intSTaxOnGTXMarkUp'] * $intTatalPaxCTForMarkUp);
                    $intAgencyFixMarkUp = ($arrPriceAndMarkUps['intAgencyFixMarkUp'] * $intTatalPaxCTForMarkUp);
                    $intSTaxOnAgencyFixMarkUp = ($arrPriceAndMarkUps['intSTaxOnAgencyFixMarkUp'] * $intTatalPaxCTForMarkUp);
                }
                $intCommisionEarnedForAgency = $arrPriceAndMarkUps['intCommisionEarnedForAgency'];
                $intPLBEarnedForAgency = $arrPriceAndMarkUps['intPLBEarnedForAgency'];
                $intIncentiveEarnedForAgency = $arrPriceAndMarkUps['intIncentiveEarnedForAgency'];
                $intTotalEarningsForAgency = $arrPriceAndMarkUps['intTotalEarningsForAgency'] + $intAgencyFixMarkUp + $intSTaxOnAgencyFixMarkUp;

                $intTotalEarningsForAgency22 = $intCommisionEarnedForAgency + $intPLBEarnedForAgency + $intIncentiveEarnedForAgency + $intAgencyFixMarkUp;

                $intPublishFare = $intOfferedFare + $intGTXMarkUp + $intAgencyFixMarkUp + $intSTaxOnAgencyFixMarkUp + $intCommisionEarnedForAgency + $intPLBEarnedForAgency + $intIncentiveEarnedForAgency;
                //$intTotalUpdatedFare = $intPublishFare;

                $intGSTOnAgencyCommisionEarned = $arrPriceAndMarkUps['intGSTOnAgencyCommisionEarned'];
                $intGSTOnAgencyPLBEarned = $arrPriceAndMarkUps['intGSTOnAgencyPLBEarned'];
                $intGSTOnAgencyIncentiveEarned = $arrPriceAndMarkUps['intGSTOnAgencyIncentiveEarned'];

                $intGSTOnTotalEarnings = $intGSTOnAgencyCommisionEarned + $intGSTOnAgencyPLBEarned + $intGSTOnAgencyIncentiveEarned + $intSTaxOnAgencyFixMarkUp;
                $intTotalUpdatedFare = $intOfferedFare + $intGTXMarkUp + $intTotalEarningsForAgency22 + $intGSTOnTotalEarnings;

                $arrFairRules = array(
                    "Currency" => $currencySysId,
                    "BaseFare" => $BaseFare,
                    "Tax" => $Tax,
                    "YQTax" => $YQTax,
                    "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                    "AdditionalTxnFeePub" => $AdditionalTxnFeePub,
                    "OtherCharges" => $OtherCharges,
                    "Discount" => $Discount,
                    "ServiceFee" => $ServiceFee,
                    "PublishedFare" => $PublishedFare,
                    "CommissionEarned" => $CommissionEarned,
                    "PLBEarned" => $PLBEarned,
                    "IncentiveEarned" => $IncentiveEarned,
                    "OfferedFare" => $OfferedFare,
                    "TdsOnCommission" => $TdsOnCommission,
                    "TdsOnPLB" => $TdsOnPLB,
                    "TdsOnIncentive" => $TdsOnIncentive
                );
                //echo $intGSTOnTotalEarnings.'=='.$intPublishFarerrrrrrr;
                //echo "<pre>";print_r($arrFairRules); exit;
                $objFlight->updateFlightFareDetails($arrFairRules, $intAirInvenSysId);

                //echo "<pre>";print_r($arrFairRules);//exit;
                if (!empty($result['FareBreakdown'])) {
                    foreach ($result['FareBreakdown'] as $fareBreakdown) {

                        $Currency = $fareBreakdown['Currency'];
                        $PassengerType = $fareBreakdown['PassengerType'];
                        $PassengerCount = $fareBreakdown['PassengerCount'];
                        $BaseFare = $fareBreakdown['BaseFare'];
                        $Tax = $fareBreakdown['Tax'];
                        $YQTax = $fareBreakdown['YQTax'];
                        $AdditionalTxnFeeOfrd = $fareBreakdown['AdditionalTxnFeeOfrd'];
                        $AdditionalTxnFeePub = $fareBreakdown['AdditionalTxnFeePub'];
                        $arrFareBreakdown = array(
                            //"TBQAirInvenAPISysId" => $intAirInvenSysId,
                            "Currency" => $currencySysId,
                            "PassengerType" => $PassengerType,
                            "PassengerCount" => $PassengerCount,
                            "BaseFare" => $BaseFare,
                            "Tax" => $Tax,
                            "YQTax" => $YQTax,
                            "AdditionalTxnFeeOfrd" => $AdditionalTxnFeeOfrd,
                            "AdditionalTxnFeePub" => $AdditionalTxnFeePub
                        );

                        $objFlight->updateFlightFareBreakdown($arrFareBreakdown, $intAirInvenSysId);
                        //echo "<pre>";print_r($arrFareBreakdown);exit;
                    }
                }

                $arrResponseStatus['arrIsPriceChanged'] = $arrIsPriceChanged;
                $arrResponseStatus['ErrorCode'] = $response['Response']['Error']['ErrorCode'];
                $arrResponseStatus['ErrorMessage'] = $response['Response']['Error']['ErrorMessage'];
                $arrResponseStatus['UpdatedFare'] = !empty($intTotalUpdatedFare) ? $intTotalUpdatedFare : 0;
                $arrResponseStatus['intOfferedFare'] = !empty($intOfferedFare) ? $intOfferedFare : 0;
                $arrResponseStatus['FareQuoteComputed'] = true;
            } else {
                $arrResponseStatus['arrIsPriceChanged'] = $arrIsPriceChanged;
                $arrResponseStatus['ErrorCode'] = $response['Response']['Error']['ErrorCode'];
                $arrResponseStatus['ErrorMessage'] = $response['Response']['Error']['ErrorMessage'];
                $arrResponseStatus['UpdatedFare'] = !empty($intTotalUpdatedFare) ? $intTotalUpdatedFare : 0;
                $arrResponseStatus['intOfferedFare'] = !empty($intOfferedFare) ? $intOfferedFare : 0;
                $arrResponseStatus['FareQuoteComputed'] = false;
            }
        }

        return $arrResponseStatus;
    }

    public function proposalCustomerInvoiceAction()
    {

        $this->_helper->layout->disableLayout();

        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
        $objFlight = new Travel_Model_TblFlight();
        $arrCustomerInvoiceData = $objFlight->customerInvoiceData($intTPSysId, $AgencySysId);
        //echo "<pre>";print_r($arrCustomerInvoiceData);echo "</pre>";exit;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;

        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];

        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }

    public function viewBookingVoucherAction()
    {

        $this->_helper->layout->disableLayout();

        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $intTPSysId = base64_decode($this->getRequest()->getParam("id"));
        $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
        $objFlight = new Travel_Model_TblFlight();
        $arrCustomerInvoiceData = $objFlight->customerInvoiceData($intTPSysId, $AgencySysId);
        //        echo "<pre>";print_r($arrCustomerInvoiceData);echo "</pre>";exit;
        $this->view->arrCustomerInvoiceData = $arrCustomerInvoiceData;

        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];

        if (!empty($intCustomerSysId)) {
            $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            //echo "<pre>";print_r($arrTrevllerDetails);
            $this->view->arrTrevllerDetails = $arrTrevllerDetails;
        }
    }

    public function bookRoundTripFlightsAction($LoggedinUserEmailId)
    {


        $strUrlData = $this->getRequest()->getParam('strUrlData');
        $arrUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataDecode($strUrlData);
        $intOutBoundId = !empty($arrUrlData['AirInvenSysId']) ? $arrUrlData['AirInvenSysId'] : 0;
        $intInBoundId = !empty($arrUrlData['ReturnAirInvenSysId']) ? $arrUrlData['ReturnAirInvenSysId'] : 0;
        $intCustomerSysId = !empty($arrUrlData['CustomerSysId']) ? $arrUrlData['CustomerSysId'] : 0;
        $intTPSysId = !empty($arrUrlData['TPSysId']) ? $arrUrlData['TPSysId'] : 0;
        $MasterTPSysId = !empty($arrUrlData['MasterTPSysId']) ? $arrUrlData['MasterTPSysId'] : 0;
        //        $arrIntTpAirId      =  $arrUrlData['arrIntTpAirId'];
        $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
        $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
        // Getting travel plan details Ends...

        $AgencySysId = !empty($travelPlanDetais[0]['AgencySysId']) ? $travelPlanDetais[0]['AgencySysId'] : 0;
        $AgentSysId = !empty($travelPlanDetais[0]['AgentSysId']) ? $travelPlanDetais[0]['AgentSysId'] : 0;

        //echo "<pre>";print_r($travelPlanDetais);
        $objFlight = new Travel_Model_TblFlight();
        $objFlight->strCondition = " TBQAirInvenSysId IN ('" . $intOutBoundId . "','" . $intInBoundId . "') ";
        $arrSelectedFlightDetails = $objFlight->getSelectedFlightDetails();
        //echo "<pre>";print_r($arrSelectedFlightDetails);exit;
        if (!empty($arrSelectedFlightDetails) ) {

            if (!empty($intCustomerSysId)) {
                $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $intTPSysId);
            }

            $request = [];
            $i = 0;
            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
            foreach ($arrSelectedFlightDetails as $result) {

                $AirInvenSysId = trim($result['AirInvenSysId']);


                $apiTraceId = $sessionFlightProposalParams->params['TraceId'];
                $ApiResultIndex = $sessionFlightProposalParams->params['ResultIndex'][$i];


                $SourceAirportCode = trim($result['SourceAirportCode']);
                $DestAirportCode = trim($result['DestAirportCode']);
                $IsLCC = trim($result['IsLCC']);

                $JourneyType = trim($result['JourneyType']);
                $TripType = trim($result['TripType']);


                $objFlight->strCondition = " TBQAirInvenAPISysId IN ('" . $AirInvenSysId . "') ";
                $arrSelectedFlightFareDetails = $objFlight->getSelectedFlightFareDetails();

                $crmcustomerObj = new Travel_Model_CRM_Customer();
                $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);

                $data = [
                    "TraceId" => $apiTraceId,
                    "ResultIndex" => $ApiResultIndex,
                    "Origin" => $SourceAirportCode,
                    "Destination" => $DestAirportCode,
                    "JourneyType" => $JourneyType,
                    "TripType" => $TripType,
                    "IsLCC" => $IsLCC,
                    "arrFairDetails" => $arrSelectedFlightFareDetails,
                    "arrTrevllerDetails" => $arrTrevllerDetails,
                    "agencyEmailId" => $LoggedinUserEmailId,
                    "getAgencyDetail" => $getAgencyDetail
                ];
                //echo "<pre>";print_r($data);exit;
                $requestData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->generateRoundTripRequest($data, $IsLCC);

                if ($IsLCC) {
                    $request[$i]['url'] = FLIGHT_API_TICKET_URL;
                } else {
                    $request[$i]['url'] = FLIGHT_API_BOOKING_URL;
                }
                $request[$i]['post'] = $requestData;

                $i++;
            }

            $response = $this->multiRequest($request);
        } else {
            // Error
        }
        return $response;
    }

    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'])) {
                    $data_stringh = json_encode($d['post']);
                    curl_setopt($curly[$id], CURLOPT_POST, true);
                    curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $data_stringh);
                    curl_setopt($curly[$id], CURLOPT_HTTPHEADER, array(
                        'Content-Type: application/json',
                        'Content-Length: ' . strlen($data_stringh)
                    ));
                }
            }

            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 generateNonLccTicketCustomAction($TraceId, $PNR, $BookingId, $TPSysId, $TicketFor, $IsReturn, $arrIntTpAirId)
    {
        //$this->_helper->viewRenderer->setNoRender(true);
        //$this->_helper->layout->disableLayout();
        //        echo $TraceId.'<br>';
        //        echo $PNR.'<br>';
        //        echo $BookingId.'<br>';
        //        echo $TPSysId.'<br>';
        //        echo $TicketFor.'<br>';
        //        echo $IsReturn.'<br>';
        //if($this->_request->isXmlHttpRequest()) {
        //           $TraceId = $this->getRequest()->getParam('TraceId');
        //           $BookingId = $this->getRequest()->getParam('BookingId');
        //           $PNR = $this->getRequest()->getParam('PNR');
        //           $TPSysId = $this->getRequest()->getParam('TPSysId');
        //           $TicketFor = $this->getRequest()->getParam('TicketFor');
        //           $CustomerEmailId = $this->getRequest()->getParam('CustomerEmailId');
        //           $IsReturn = $this->getRequest()->getParam('IsReturn');

        $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
        //echo $sessionFlightProposalParams->params['AgencySysId'];
        //exit;

        $objFlight = new Travel_Model_TblFlight();
        $arrTravelPlanAir = $objFlight->getTravelPlanAirData($TPSysId);
        $arrTrevllerList = $objFlight->GetCustomerListForFlightBooking($TPSysId, $IsReturn);
        //$VersionId = isset($arrTravelPlanAir[$TicketFor]['VersionId']) ? $arrTravelPlanAir[$TicketFor]['VersionId'] : '';
        $VersionId = $arrIntTpAirId;
        $SourceAirportCode = isset($arrTravelPlanAir[$TicketFor]['SourceAirportCode']) ? $arrTravelPlanAir[$TicketFor]['SourceAirportCode'] : '';
        $DestAirportCode = isset($arrTravelPlanAir[$TicketFor]['DestAirportCode']) ? $arrTravelPlanAir[$TicketFor]['DestAirportCode'] : '';
        if (!empty($VersionId)) {
            $data = [
                "TraceId" => $TraceId,
                "PNR" => $PNR,
                "BookingId" => $BookingId
            ];
            //echo "<pre>";print_r($data);
            $strJsonResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->generateNonLccTicket($data);
            $response = json_decode($strJsonResponse, true);
            //echo "<pre>";print_r($response);exit;

            $ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
            $ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
            $strBookingId = isset($response['Response']['Response']['BookingId']) ? $response['Response']['Response']['BookingId'] : '';
            $strTicketPNR = isset($response['Response']['Response']['PNR']) ? $response['Response']['Response']['PNR'] : '';
            $TicketStatus = isset($response['Response']['Response']['TicketStatus']) ? $response['Response']['Response']['TicketStatus'] : '';
            $Passenger = isset($response['Response']['Response']['FlightItinerary']['Passenger']) ? $response['Response']['Response']['FlightItinerary']['Passenger'] : '';
            $Message = isset($response['Response']['Response']['Message']) ? $response['Response']['Response']['Message'] : '';
            $AirlineRefPNR = (isset($response['Response']['Response']['FlightItinerary']['Segments'][0]['AirlinePNR']) && !empty($response['Response']['Response']['FlightItinerary']['Segments'][0]['AirlinePNR']) ? $response['Response']['Response']['FlightItinerary']['Segments'][0]['AirlinePNR'] : '');

            //            if($TicketStatus!= 1 || $TicketStatus!= 0){
            //               $ErrorCode = ($TicketStatus!=0)?$TicketStatus:1;
            //               $ErrorMessage = isset($response['Response']['Response']['Message']) ? $response['Response']['Response']['Message'] : '';
            //            }
            //echo $ErrorMessage."=============="; exit;
            if ($ErrorCode == 0 && $TicketStatus == 1) {
                $data = array(
                    "XRefBookingId" => $strBookingId . "/" . $strTicketPNR,
                    "APIBookingRes" => json_encode($response),
                    "XRefPNR" => 1,
                    "IsBookingStatus" => 1,
                    "AirlineRefPNR" => $AirlineRefPNR
                );
                //echo "<pre>";print_r($data);exit;
                $objFlight->updateBookingDetails($data, $VersionId); // FOR Ticket CONFIRMED

                if (isset($arrTrevllerList) && !empty($arrTrevllerList)) {
                    foreach ($arrTrevllerList as $key => $value) {
                        if (isset($Passenger[$key]['Ticket'])) {
                            $Ticket = $Passenger[$key]['Ticket'];
                            $data = array(
                                "TicketId" => $Ticket['TicketId'],
                                "TicketNumber" => $Ticket['TicketNumber'],
                                "TicketFullJson" => json_encode($Passenger[$key])
                            );
                            $objFlight->updateTravelPlanPax($data, $value['TPPaxSysId']);
                        }
                    }
                }
                //Mail Booking Itenary To Customer
                $objFlight = new Travel_Model_TblFlight();
                $arrFlightFare = $objFlight->customerInvoiceData($TPSysId);

                if (!empty($intCustomerSysId)) {
                    $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $TPSysId);
                }
                if ($arrFlightFare) {
                    foreach ($arrFlightFare as $k => $values) {
                        $AgencySysId = $values['AgencySysId'];
                        $AgentSysId = $values['AgentSysId'];
                        $intLoggedinUserEmailId = $values['PrimaryEmail'];
                        $arrtravellerList = $objFlight->travellerListBySabir($TPSysId);
                        $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($TPSysId, $values['AirVersionId']);
                        //echo '<pre>';print_r($arrCustomerInvoiceData);echo '</pre>';
                        $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
                        if (!empty($intCustomerSysId)) {
                            $arrTrevllerDetailsNew = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $TPSysId);
                        }
                        $html = new Zend_View();
                        $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
                        $crmcustomerObj     = new Travel_Model_CRM_Customer();
                        $arrAgencyDetail    = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                        $html->assign('type', 'mailToCustomer');
                        $html->assign('arrResponse', $response);
                        $html->assign('arrTrevllerDetails', $arrTrevllerDetailsNew);
                        $html->assign('arrtravellerList', $arrtravellerList);
                        $html->assign('arrCustomerInvoiceData', $arrCustomerInvoiceData);
                        $bodyText = $html->render('mail-booking-content-new.phtml');
                        $subject = "Flight Booking Itinerary From " . $SourceAirportCode . " To " . $DestAirportCode;
                        $customerEmailId = isset($arrTrevllerDetailsNew[0][0]['EmailId']) ? $arrTrevllerDetailsNew[0][0]['EmailId'] : '';
                        $emailData = array('fromEmail' => trim($intLoggedinUserEmailId), 'fromName' => trim($arrAgencyDetail['DisplayName']), 'subject' => $subject, 'to' => array($customerEmailId, $intLoggedinUserEmailId, "gaurav@hellogtx.com", "prashant@catpl.co.in"), 'bodyHtml' => $bodyText, 'bodyText' => '');
                        try {
                            // Added By Pardeep Panchal For Email Count...
                            $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
                            $arrEmailStatistics = array(
                                "TPSysId" => $TPSysId,
                                "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" => date('Y-m-d H:i:s')
                            );

                            // Added By Pardeep Panchal For Email Count Ends...
                            $this->mailSentByElastice($emailData, $arrEmailStatistics);
                        } catch (Exception $err) {
                            print_r($err, true);
                        }
                    }
                }

                //                $html = new Zend_View();
                //                $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
                //                $crmcustomerObj     = new Travel_Model_CRM_Customer();
                //                $arrAgencyDetail    = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                //                $html->assign('type', 'mailToCustomer');
                //                $html->assign('arrResponse', $response);
                //                $html->assign('arrAgencyDetail', $arrAgencyDetail);
                //                $html->assign('arrFlightFare', $arrFlightFare[0]);
                //                $bodyText = $html->render('mail-booking-content.phtml');
                //                $subject = "Flight Booking Itinerary From ".$SourceAirportCode." To ".$DestAirportCode;
                //                $emailData = array('fromEmail'=>trim($this->intLoggedinUserEmailId),'fromName'=>trim($arrAgencyDetail['DisplayName']),'subject'=> $subject,'to'=>array($CustomerEmailId,$this->intLoggedinUserEmailId,"gaurav@hellogtx.com","prashant@catpl.co.in"),'bodyHtml'=>$bodyText,'bodyText'=>'');
                //                try {
                //                    // Added By Pardeep Panchal For Email Count...
                //                    $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
                //                    $arrEmailStatistics = array(
                //                            "TPSysId" => $TPSysId,
                //                            "TypeSysId" => 1,  // 1 For Email 2 For SMS
                //                            "AgencySysId" => $AgencySysId,
                //                            "AgentSysId" => $this->intLoggedinUserId,
                //                            "Title" => $subject,
                //                            "Source" => $arrEmailStatisticsType[1], // 1 For Vouchers Emailing
                //                            "Status" => 0,
                //                            "RefSysId" => "",
                //                            "RefSysStatus" => "",
                //                            "CreateDate" => date('Y-m-d H:i:s')
                //                        );
                //
                //                    // Added By Pardeep Panchal For Email Count Ends...
                //                    $this->mailSentByElastice($emailData,$arrEmailStatistics);
                //                } catch (Exception $err) {
                //                    print_r($err, true);
                //                }
                //Mail Booking Itenary To Customer

                $response = array('success' => true, 'msg' => 'Flight is confirmed Successfully. Please check your inbox for flight Itinerary.');
                return json_encode($response);
                //exit;
            } elseif ($ErrorCode == 0 && $TicketStatus == 0) {
                $data = array(
                    "StatusType" => 72,
                    "ErrorMessage" => $Message
                );
                $objFlight->updateBookingStatusTravelPlan($data, $TPSysId);
                $response = array('success' => false, 'msg' => $Message . "<br/>Please contact administrator for more information");
                return json_encode($response);
                //exit;
            } else {
                $data = array(
                    "StatusType" => 72,
                    "ErrorMessage" => $ErrorMessage
                );
                $objFlight->updateBookingStatusTravelPlan($data, $TPSysId);
                $response = array('success' => false, 'msg' => $ErrorMessage . "<br/>Please contact administrator for more information");
                return json_encode($response);
                //exit;
            }
        }



        //        }else{
        //            die('Invalid Request..!');
        //        }
    }

    public function generateNonLccTicketAction()
    {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();


        if ($this->_request->isXmlHttpRequest()) {

            $TraceId = $this->getRequest()->getParam('TraceId');
            $BookingId = $this->getRequest()->getParam('BookingId');
            $PNR = $this->getRequest()->getParam('PNR');
            $TPSysId = $this->getRequest()->getParam('TPSysId');
            $TicketFor = $this->getRequest()->getParam('TicketFor');
            $CustomerEmailId = $this->getRequest()->getParam('CustomerEmailId');
            $IsReturn = $this->getRequest()->getParam('IsReturn');

            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
            //echo $sessionFlightProposalParams->params['AgencySysId'];
            //exit;

            $objFlight = new Travel_Model_TblFlight();
            $arrTravelPlanAir = $objFlight->getTravelPlanAirData($TPSysId);
            $arrTrevllerList = $objFlight->GetCustomerListForFlightBooking($TPSysId, $IsReturn);
            $VersionId = isset($arrTravelPlanAir[$TicketFor]['VersionId']) ? $arrTravelPlanAir[$TicketFor]['VersionId'] : '';
            $SourceAirportCode = isset($arrTravelPlanAir[$TicketFor]['SourceAirportCode']) ? $arrTravelPlanAir[$TicketFor]['SourceAirportCode'] : '';
            $DestAirportCode = isset($arrTravelPlanAir[$TicketFor]['DestAirportCode']) ? $arrTravelPlanAir[$TicketFor]['DestAirportCode'] : '';
            if (!empty($VersionId)) {
                $data = [
                    "TraceId" => $TraceId,
                    "PNR" => $PNR,
                    "BookingId" => $BookingId
                ];
                //echo "<pre>";print_r($data);exit;
                $strJsonResponse = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->generateNonLccTicket($data);
                $response = json_decode($strJsonResponse, true);
                //echo "<pre>";print_r($response);exit;

                $ErrorCode = isset($response['Response']['Error']['ErrorCode']) ? $response['Response']['Error']['ErrorCode'] : '0';
                $ErrorMessage = isset($response['Response']['Error']['ErrorMessage']) ? $response['Response']['Error']['ErrorMessage'] : '';
                $strBookingId = isset($response['Response']['Response']['BookingId']) ? $response['Response']['Response']['BookingId'] : '';
                $strTicketPNR = isset($response['Response']['Response']['PNR']) ? $response['Response']['Response']['PNR'] : '';
                $TicketStatus = isset($response['Response']['Response']['TicketStatus']) ? $response['Response']['Response']['TicketStatus'] : '';
                $Passenger = isset($response['Response']['Response']['FlightItinerary']['Passenger']) ? $response['Response']['Response']['FlightItinerary']['Passenger'] : '';
                $Message = isset($response['Response']['Response']['Message']) ? $response['Response']['Response']['Message'] : '';
                $AirlineRefPNR = (isset($response['Response']['Response']['FlightItinerary']['Segments'][0]['AirlinePNR']) && !empty($response['Response']['Response']['FlightItinerary']['Segments'][0]['AirlinePNR']) ? $response['Response']['Response']['FlightItinerary']['Segments'][0]['AirlinePNR'] : '');

                //            if($TicketStatus!= 1 || $TicketStatus!= 0){
                //               $ErrorCode = ($TicketStatus!=0)?$TicketStatus:1;
                //               $ErrorMessage = isset($response['Response']['Response']['Message']) ? $response['Response']['Response']['Message'] : '';
                //            }
                //echo $ErrorMessage."=============="; exit;
                if ($ErrorCode == 0 && $TicketStatus == 1) {
                    $data = array(
                        "XRefBookingId" => $strBookingId . "/" . $strTicketPNR,
                        "APIBookingRes" => json_encode($response),
                        "XRefPNR" => 1,
                        "IsBookingStatus" => 1,
                        "AirlineRefPNR" => $AirlineRefPNR
                    );
                    //echo "<pre>";print_r($data);exit;
                    $objFlight->updateBookingDetails($data, $VersionId); // FOR Ticket CONFIRMED

                    if (isset($arrTrevllerList) && !empty($arrTrevllerList)) {
                        foreach ($arrTrevllerList as $key => $value) {
                            if (isset($Passenger[$key]['Ticket'])) {
                                $Ticket = $Passenger[$key]['Ticket'];
                                $data = array(
                                    "TicketId" => $Ticket['TicketId'],
                                    "TicketNumber" => $Ticket['TicketNumber'],
                                    "TicketFullJson" => json_encode($Passenger[$key])
                                );
                                $objFlight->updateTravelPlanPax($data, $value['TPPaxSysId']);
                            }
                        }
                    }
                    //Mail Booking Itenary To Customer
                    $objFlight = new Travel_Model_TblFlight();
                    $arrFlightFare = $objFlight->customerInvoiceData($TPSysId);

                    if (!empty($intCustomerSysId)) {
                        $arrTrevllerDetails = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $TPSysId);
                    }
                    if ($arrFlightFare) {
                        foreach ($arrFlightFare as $k => $values) {
                            $AgencySysId = $values['AgencySysId'];
                            $AgentSysId = $values['AgentSysId'];
                            $intLoggedinUserEmailId = $values['PrimaryEmail'];
                            $arrtravellerList = $objFlight->travellerListBySabir($TPSysId);
                            $arrCustomerInvoiceData = $objFlight->customerInvoiceDataBySabir($TPSysId, $values['AirVersionId']);
                            //echo '<pre>';print_r($arrCustomerInvoiceData);echo '</pre>';
                            $intCustomerSysId = $arrCustomerInvoiceData[0]['CustomerSysId'];
                            if (!empty($intCustomerSysId)) {
                                $arrTrevllerDetailsNew = $objFlight->GetAgencyCustomerDetailsForBooking($intCustomerSysId, $TPSysId);
                            }
                            $html = new Zend_View();
                            $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
                            $crmcustomerObj     = new Travel_Model_CRM_Customer();
                            $arrAgencyDetail    = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                            $html->assign('type', 'mailToCustomer');
                            $html->assign('arrResponse', $response);
                            $html->assign('arrTrevllerDetails', $arrTrevllerDetailsNew);
                            $html->assign('arrtravellerList', $arrtravellerList);
                            $html->assign('arrCustomerInvoiceData', $arrCustomerInvoiceData);
                            $bodyText = $html->render('mail-booking-content-new.phtml');
                            $subject = "Flight Booking Itinerary From " . $SourceAirportCode . " To " . $DestAirportCode;
                            $customerEmailId = isset($arrTrevllerDetails[0][0]['EmailId']) ? $arrTrevllerDetails[0][0]['EmailId'] : '';
                            $emailData = array('fromEmail' => trim($intLoggedinUserEmailId), 'fromName' => trim($arrAgencyDetail['DisplayName']), 'subject' => $subject, 'to' => array($customerEmailId, $intLoggedinUserEmailId, "gaurav@hellogtx.com", "prashant@catpl.co.in"), 'bodyHtml' => $bodyText, 'bodyText' => '');
                            try {
                                // Added By Pardeep Panchal For Email Count...
                                $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
                                $arrEmailStatistics = array(
                                    "TPSysId" => $TPSysId,
                                    "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" => date('Y-m-d H:i:s')
                                );

                                // Added By Pardeep Panchal For Email Count Ends...
                                $this->mailSentByElastice($emailData, $arrEmailStatistics);
                            } catch (Exception $err) {
                                print_r($err, true);
                            }
                        }
                    }

                    //                $html = new Zend_View();
                    //                $html->setScriptPath(APPLICATION_PATH . '/views/scripts/flight/');
                    //                $crmcustomerObj     = new Travel_Model_CRM_Customer();
                    //                $arrAgencyDetail    = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                    //                $html->assign('type', 'mailToCustomer');
                    //                $html->assign('arrResponse', $response);
                    //                $html->assign('arrAgencyDetail', $arrAgencyDetail);
                    //                $html->assign('arrFlightFare', $arrFlightFare[0]);
                    //                $bodyText = $html->render('mail-booking-content.phtml');
                    //                $subject = "Flight Booking Itinerary From ".$SourceAirportCode." To ".$DestAirportCode;
                    //                $emailData = array('fromEmail'=>trim($this->intLoggedinUserEmailId),'fromName'=>trim($arrAgencyDetail['DisplayName']),'subject'=> $subject,'to'=>array($CustomerEmailId,$this->intLoggedinUserEmailId,"gaurav@hellogtx.com","prashant@catpl.co.in"),'bodyHtml'=>$bodyText,'bodyText'=>'');
                    //                try {
                    //                    // Added By Pardeep Panchal For Email Count...
                    //                    $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
                    //                    $arrEmailStatistics = array(
                    //                            "TPSysId" => $TPSysId,
                    //                            "TypeSysId" => 1,  // 1 For Email 2 For SMS
                    //                            "AgencySysId" => $AgencySysId,
                    //                            "AgentSysId" => $this->intLoggedinUserId,
                    //                            "Title" => $subject,
                    //                            "Source" => $arrEmailStatisticsType[1], // 1 For Vouchers Emailing
                    //                            "Status" => 0,
                    //                            "RefSysId" => "",
                    //                            "RefSysStatus" => "",
                    //                            "CreateDate" => date('Y-m-d H:i:s')
                    //                        );
                    //
                    //                    // Added By Pardeep Panchal For Email Count Ends...
                    //                    $this->mailSentByElastice($emailData,$arrEmailStatistics);
                    //                } catch (Exception $err) {
                    //                    print_r($err, true);
                    //                }
                    //Mail Booking Itenary To Customer

                    $response = array('success' => true, 'msg' => 'Flight is confirmed Successfully. Please check your inbox for flight Itinerary.');
                    echo json_encode($response);
                    exit;
                } elseif ($ErrorCode == 0 && $TicketStatus == 0) {
                    $data = array(
                        "StatusType" => 72,
                        "ErrorMessage" => $Message
                    );
                    $objFlight->updateBookingStatusTravelPlan($data, $TPSysId);
                    $response = array('success' => false, 'msg' => $Message . "<br/>Please contact administrator for more information");
                    echo json_encode($response);
                    exit;
                } else {
                    $data = array(
                        "StatusType" => 72,
                        "ErrorMessage" => $ErrorMessage
                    );
                    $objFlight->updateBookingStatusTravelPlan($data, $TPSysId);
                    $response = array('success' => false, 'msg' => $ErrorMessage . "<br/>Please contact administrator for more information");
                    echo json_encode($response);
                    exit;
                }
            }
        } else {
            die('Invalid Request..!');
        }
    }

    ////========================= Quick flight propsal functions ==================================////

    public function viewFlightProposalQuickAction()
    {

        $this->view->TPSysId = $TPSysId = base64_decode($this->_request->getParam('id'));
        //Zend_Session::namespaceUnset('sessionFlightProposalParams');
        $objFlightProposal = new Travel_Model_TblFlightProposal();
        if (!empty($TPSysId)) {
            $arrFlightDetails = $objFlightProposal->getFlightProposalDetails(0, $TPSysId);
            if (isset($arrFlightDetails[0]['MasterTPSysId']) && !empty($arrFlightDetails[0]['MasterTPSysId'])) {
                $this->view->MasterTPSysId = $MasterTPSysId =  $arrFlightDetails[0]['MasterTPSysId'];
                $arrAgencyDetails = $objFlightProposal->getProposalAgencyDetails($MasterTPSysId,'query');


                if (!empty($arrAgencyDetails) == 0 || empty($MasterTPSysId)) {
                    echo 'Details not found.';
                    exit;
                }

                $this->view->arrAgencyDetails = $arrAgencyDetails;
                
                $CustomerSysId = trim($arrFlightDetails[0]['CustomerSysId']);
                $this->view->IsInternational = $IsInternational = trim($arrFlightDetails[0]['IsInternational']);
                $this->view->JourneyType = $JourneyType = trim($arrFlightDetails[0]['JourneyType']);

                $this->view->arrAirDetails = $arrFlightDetails;


                $this->view->SourceAirportCode = $SourceAirportCode = trim($arrFlightDetails[0]['SourceAirportCode']);
                if (!empty($SourceAirportCode)) {
                    $arrSourceAirport = $objFlightProposal->getAirPortByAirportCode($SourceAirportCode);
                }
                $this->view->SourceAirport = isset($arrSourceAirport['label']) ? $arrSourceAirport['label'] : '';

                $this->view->DestAirportCode = $DestAirportCode = trim($arrFlightDetails[0]['DestAirportCode']);
                if (!empty($DestAirportCode)) {
                    $arrDestinationAirport = $objFlightProposal->getAirPortByAirportCode($DestAirportCode);
                }
                $this->view->DestinationAirport = isset($arrDestinationAirport['label']) ? $arrDestinationAirport['label'] : '';
                //echo "<pre>";print_r($arrSourceAirport);

                $AgencySysId = $arrAgencyDetails['AgencySysId'];
                $arrRoomInfoJson = json_decode($arrAgencyDetails['RoomInfoJson'], true);

                /* Selected Flight Specific Session Values */
                $intAdultCount = $arrRoomInfoJson[1]['Adult'];
                $intChildCount = $arrRoomInfoJson[1]['Child'];
                $intInfantCount = $arrRoomInfoJson[1]['Infant'];
                $departuredate = $arrRoomInfoJson[1]['departuredate'];
                $returndate = $arrRoomInfoJson[1]['returndate'];
                $strOriginAirPortCode = $arrRoomInfoJson[1]['fromaircode'];
                $strDestinationAirPortCode = $arrRoomInfoJson[1]['toaircode'];


                $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
                $sessionFlightProposalParams->params['MasterTPSysId'] = $MasterTPSysId;
                $sessionFlightProposalParams->params['TPSysId'] = $TPSysId;
                $sessionFlightProposalParams->params['AgencySysId'] = $AgencySysId;
                $sessionFlightProposalParams->params['CustomerSysId'] = $CustomerSysId;
                $sessionFlightProposalParams->params['AdultCount'] = $intAdultCount;
                $sessionFlightProposalParams->params['ChildCount'] = $intChildCount;
                $sessionFlightProposalParams->params['InfantCount'] = $intInfantCount;
                $sessionFlightProposalParams->params['departuredate'] = $departuredate;
                $sessionFlightProposalParams->params['returndate'] = $returndate;


                $objAirport = new Travel_Model_TblAirport();
                $objAirport->strAirportCode = $strOriginAirPortCode;
                $arrSourceCityId = $objAirport->getAirportList();

                if (!empty($arrSourceCityId) ) {
                    $intSourceCityId = $arrSourceCityId[0]['CityId'];
                    $intCountryCode = $arrSourceCityId[0]['CountryCode'];
                    $intOriginCountryCode = trim($arrSourceCityId[0]['CountryCode']);
                } else {
                    $intSourceCityId = "";
                    $intCountryCode = "";
                }



                $objAirport->strAirportCode = $strDestinationAirPortCode;
                $arrDestinationCityId = $objAirport->getAirportList();


                if (!empty($arrDestinationCityId)) {
                    $intDestinationCityId = $arrDestinationCityId[0]['CityId'];
                    $intDestinationCountryCode = trim($arrDestinationCityId[0]['CountryCode']);
                } else {
                    $intDestinationCityId = "";
                }



                if ($intOriginCountryCode != "IN" || empty($intOriginCountryCode)) {
                    $sessionFlightProposalParams->params['IsInterNational'] = true;
                    $sessionFlightProposalParams->params['intCountryCode'] = trim($intOriginCountryCode);
                } else if ($intDestinationCountryCode != "IN" || empty($intDestinationCountryCode)) {
                    $sessionFlightProposalParams->params['IsInterNational'] = true;
                    $sessionFlightProposalParams->params['intCountryCode'] = trim($intDestinationCountryCode);
                } else {
                    $sessionFlightProposalParams->params['IsInterNational'] = false;
                    $sessionFlightProposalParams->params['intCountryCode'] = trim($intDestinationCountryCode);
                }
                /* Selected Flight Specific Session Values Ends */
                $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
                $getcustomerDetail = $this->_crmcusttravelplan->GetTravelPlanDetailsofCustomer($TPSysId);
                $agencyStaffObj = new Travel_Model_TblAgencyStaff();
                $agentDetail = $agencyStaffObj->getUserDetailsById($arrFlightDetails[0]['AgentSysId']);
                $AgencySysId = $arrFlightDetails[0]['AgencySysId'];
                $getAgentDetail = array('AgentName' => $agentDetail['FirstName'] . " " . $agentDetail['LastName'], 'AgentContact' => $agentDetail['ContactNo1']);
                $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
                $getAgencyDetail = $this->_crmcustomerObj->GetAgencyDetailById($AgencySysId);
                $getAgencyDetail['fullAddress'] = isset($agencyAddress['CityName']) ? $agencyAddress['CityName'] . $agencyState . $agencyCountry : '';
                //send email to agent when customer open proposal
                //echo "<pre>";print_r($getcustomerDetail);die;
                //echo $arrFlightDetails[0]['IsPlanViewed'];die;
                if ($arrFlightDetails[0]['IsPlanViewed'] == 0) {
                    $emailSendId = trim($getAgencyDetail['PrimaryEmail']);
                    $fromName = (isset($getAgencyDetail['DisplayName']) && !empty($getAgencyDetail['DisplayName'])) ? trim($getAgencyDetail['DisplayName']) : trim(trim($getAgencyDetail['Title']));
                    $emailId = trim($agentDetail['EmailId']);
                    $html = new Zend_View();
                    $html->setScriptPath(APPLICATION_PATH . '/views/scripts/proposal/');
                    $html->assign('type', 'proposalViewFlightSendEmailToAgent');
                    $html->assign('customerDetails', $getcustomerDetail);
                    $html->assign('agentDetails', $agentDetail);
                    $html->assign('agencyDetails', $getAgencyDetail);
                    $link = $this->view->baseUrl("/flight-proposal/view-flight-proposal/id/" . base64_encode($TPSysId));
                    $html->assign('link', $link);
                    $html->assign('data', $arrFlightDetails);
                    $html->assign('destination', trim(stripslashes($arrDestinationAirport['label'])));
                    //$html->assign('data', $hotelValues);
                    $bodyText = $html->render('email-template.phtml');

                    $subject = 'HelloGTX - Proposal Open Alert !';
                    if($getAgencyDetail['IsDisplayHelloGTX'] == 1){
                        $subject = $fromName.' - Proposal Open Alert !';
                    }
                    //$bodyText='Customer open your proposal' .$this->view->baseUrl("/proposal/preview-hotel-result/mid/".base64_encode($mid)."/pid/".base64_encode($pid)."/uid/".base64_encode($uid)."/type/".base64_encode($type));
                    //$bodyText='Customer open your proposal' .$this->view->baseUrl("/proposal/preview-hotel-result/mid/".base64_encode($mid)."/pid/".base64_encode($pid)."/uid/".base64_encode($uid)."/type/".base64_encode($type));
                    $emailData = array('fromEmail' => trim($emailSendId), 'fromName' => trim($fromName), 'subject' => $subject, 'to' => array(trim($emailId)), 'bodyHtml' => $bodyText, 'bodyText' => '');

                    $arrEmailStatisticsType = array_keys(unserialize(ARR_EMAIL_STATISTICS_TYPE));
                    $arrEmailStatistics = array(
                        "TPSysId" => $TPSysId,
                        "TypeSysId" => 1, // 1 For Email 2 For SMS
                        "AgencySysId" => $AgencySysId,
                        "AgentSysId" => $arrFlightDetails[0]['AgentSysId'],
                        "Title" => $bodyText,
                        "Source" => $arrEmailStatisticsType[2], // 1 For Misc
                        "Status" => 0,
                        "RefSysId" => "",
                        "RefSysStatus" => "",
                        "CreateDate" => date('Y-m-d H:i:s')
                    );

                    $this->mailSentByElastice($emailData, $arrEmailStatistics, 0, 0);

                    //send sms
                    $mobile_no = trim($agentDetail['ContactNo1']);
                    $updateData = new Payment_Model_Checkotp();
                    $bitly_response = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->getSmallLinkFromBitlyAPI($link, $this->BITLYLOGIN, $this->BITLYAPIKEY);
                    if ($bitly_response['errorCode'] == 0) {
                        $link = $bitly_response['results'][$link]['shortUrl'];
                    }
                    $massage = "Your Customer(" . trim($getcustomerDetail[0]['FirstName']) . " " . trim($getcustomerDetail[0]['LastName']) . "-" . trim($getcustomerDetail[0]['Contacts']) . ") has just opened the proposal for " . trim(stripslashes($arrDestinationAirport['label'])) . ",Click: " . $link . " to view and assist for finalizing.";
                    $this->postFields = "";
                    $this->postFields .= "&method=$this->SMSMETHOD";
                    $this->postFields .= "&api_key=$this->SMSAPIKEY";
                    $this->postFields .= "&to=$mobile_no";
                    $this->postFields .= "&sender=$this->SMSSENDER";
                    $this->postFields .= "&message=$massage";
                    $this->postFields .= "&format=$this->SMSFORMAT";
                    $postURL = $this->SMSURL;
                    $arrSMSStatisticsType = array_keys(unserialize(ARR_SMS_STATISTICS_TYPE));
                    $arrSMSStatistics = array(
                        "TPSysId" => $arrFlightDetails[0]['TPSysId'],
                        "TypeSysId" => 2, // 1 For Email 2 For SMS
                        "AgencySysId" => $arrFlightDetails[0]['AgencySysId'],
                        "AgentSysId" => $arrFlightDetails[0]['AgentSysId'],
                        "Title" => $massage,
                        "Source" => $arrSMSStatisticsType[0], // 2 For Resend
                        "Status" => 0,
                        "RefSysId" => "",
                        "RefSysStatus" => "",
                        "CreateDate" => date('Y-m-d H:i:s')
                    );
                    //$resultVal = $updateData->sendSmsDetails($postURL, $this->postFields, $arrSMSStatistics);
                    $resultVal['status'] = 'OK';
                    if (isset($resultVal['status']) && $resultVal['status'] == 'OK') {
                        $errorMessage = "";
                    } else {
                        $errorMessage = "Oops! Please try again";
                    }
                    //echo $errorMessage."/".print_r($resultVal)."/".$massage."/".$mobile_no;
                    //end of send sms
                    if (!empty($MasterTPSysId)) {
                        $data = array(
                            'isPlanViewed' => 1,
                            'UpdateDate' => date('Y-m-d H:i:s'),
                        );
                        $where = "MasterTPSysId = " . $MasterTPSysId;
                        $updatetravelplanrecord = $this->_crmcusttravelplan->UpdateCustomerTravelPlan($data, $where);
                    }
                }
                //#end

                $this->view->getcustomerDetail = $getcustomerDetail;
            } else {
                echo 'Details not found.';
                exit;
            }
        } else {
            echo 'Details not found.';
            exit;
        }
    }

    public function getFlightDetailsQuickAction()
    {

        if ($this->_request->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();


            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
            $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
            $MasterTPSysId = $sessionFlightProposalParams->params['MasterTPSysId'];
            $intAdultCount = $sessionFlightProposalParams->params['AdultCount'];
            $intChildCount = $sessionFlightProposalParams->params['ChildCount'];
            $intInfantCount = $sessionFlightProposalParams->params['InfantCount'];
            $IsInterNational = $sessionFlightProposalParams->params['IsInterNational'];
            $returndate = $sessionFlightProposalParams->params['returndate'];
            if (!empty($returndate)) {
                $arrRreturndate = explode("/", $returndate);
                $returndate = $arrRreturndate[2] . "-" . $arrRreturndate[1] . "-" . $arrRreturndate[0];
            } else {
                $returndate = "";
            }

            //echo "<pre>";print_r($sessionFlightProposalParams->params);exit;
            $AirInvenSysId = trim($this->getRequest()->getParam('AirInvenSysId'));
            $TPSysId = trim($this->getRequest()->getParam('TPSysId'));
            $IsInterNational = trim($this->getRequest()->getParam('IsInterNational'));
            $sessionFlightProposalParams->params['TPSysId'] = $TPSysId;

            $urlData = array(
                "MasterTPSysId" => $MasterTPSysId,
                "TPSysId" => $TPSysId,
                "AirInvenSysId" => $AirInvenSysId
            );
            //echo '<pre>';print_r($urlData);die('ddd');
            if (!empty($AirInvenSysId)) {
                if (!empty($TPSysId)) {

                    $urlData = array(
                        "MasterTPSysId" => $MasterTPSysId,
                        "TPSysId" => $TPSysId,
                        "AirInvenSysId" => $AirInvenSysId
                    );
                    $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($urlData);

                    $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData);
                    echo json_encode($response);
                    exit;
                } else {
                    $response = array('success' => false, 'msg' => 'Invalid query');
                    echo json_encode($response);
                    exit;
                }
            } else {
                $response = array('success' => false, 'msg' => "Oops! There might be some technical error.Please contact administrator for more details.");
                echo json_encode($response);
                exit;
            }
        }
        exit;
    }
    public function getRoundTripFlightDetailsQuickAction()
    {

        if ($this->_request->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();


            $sessionFlightProposalParams = new Zend_Session_Namespace('sessionFlightProposalParams');
            $AgencySysId = $sessionFlightProposalParams->params['AgencySysId'];
            $MasterTPSysId = $sessionFlightProposalParams->params['MasterTPSysId'];
            $intAdultCount = $sessionFlightProposalParams->params['AdultCount'];
            $intChildCount = $sessionFlightProposalParams->params['ChildCount'];
            $intInfantCount = $sessionFlightProposalParams->params['InfantCount'];
            $IsInterNational = $sessionFlightProposalParams->params['IsInterNational'];
            $returndate = $sessionFlightProposalParams->params['returndate'];
            if (!empty($returndate)) {
                $arrRreturndate = explode("/", $returndate);
                $returndate = $arrRreturndate[2] . "-" . $arrRreturndate[1] . "-" . $arrRreturndate[0];
            } else {
                $returndate = "";
            }

            //echo "<pre>";print_r($sessionFlightProposalParams->params);exit;
            $AirInvenSysId = trim($this->getRequest()->getParam('AirInvenSysId'));
            $TPSysId = trim($this->getRequest()->getParam('TPSysId'));
            $IsInterNational = trim($this->getRequest()->getParam('IsInterNational'));
            $sessionFlightProposalParams->params['TPSysId'] = $TPSysId;

            //            $urlData = array(
            //                "MasterTPSysId" => $MasterTPSysId,
            //                "TPSysId" => $TPSysId,
            //                "AirInvenSysId" => $AirInvenSysId
            //            );
            //
            if (!empty($AirInvenSysId)) {
                if (!empty($TPSysId)) {

                    $urlData = array(
                        "MasterTPSysId" => $MasterTPSysId,
                        "TPSysId" => $TPSysId,
                        "AirInvenSysId" => trim($this->getRequest()->getParam('AirInvenSysId')),
                        "ReturnAirInvenSysId" => trim($this->getRequest()->getParam('ReturnAirInvenSysId'))
                    );
                    //echo '<pre>';print_r($urlData);die('ddd');
                    $strUrlData = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->dataEncode($urlData);

                    $response = array('success' => true, 'msg' => '', 'urlData' => $strUrlData);
                    echo json_encode($response);
                    exit;
                } else {
                    $response = array('success' => false, 'msg' => 'Invalid query');
                    echo json_encode($response);
                    exit;
                }
            } else {
                $response = array('success' => false, 'msg' => "Oops! There might be some technical error.Please contact administrator for more details.");
                echo json_encode($response);
                exit;
            }
        }
        exit;
    }


    public function pnrmigrationAction()
    {
        //

        $objFlight = new Travel_Model_TblFlight();
        $strFlightBookingListSQL = $objFlight->getFlightBookingListCron(null, true);
        // echo "<pre>";
        // print_r(count($strFlightBookingListSQL));
        // die();

        $UpdatedVersionid = [];
        $NotUpdatedVersionid = [];
        if ($strFlightBookingListSQL) {
            foreach ($strFlightBookingListSQL as $value) {
                $ICSourceSysId = $value['ICSourceSysId'];
                $intTPSysId = $value['TPSysId'];
                $AirVersionId = $value['AirVersionId'];
                $strBookingId = $value['XRefBookingId'];
                $TPIntSysId = $value['TPIntSysId'];

                $arrBookingId = explode("/", $strBookingId);
                $strXRefBookingId = trim($arrBookingId[0]);
                $APIBookingRes = json_decode($value['APIBookingRes'], true);
                $bookingId_TJ = isset($APIBookingRes['value']['bookingId_TJ']) ? $APIBookingRes['value']['bookingId_TJ'] : '';
                if (!empty($bookingId_TJ)) {
                    $bookingId_TJ = $bookingId_TJ;
                } else {
                    $bookingId_TJ = isset($APIBookingRes['value']['bookingId']) ? $APIBookingRes['value']['bookingId'] : '';
                }

                $TicketId = [];
                if ($ICSourceSysId == 3) {
                    $Passengers = isset($APIBookingRes['response']['Response']['Response']['PNR']) ? $APIBookingRes['response']['Response']['Response']['PNR'] : '';
                } else {
                    $Passengers = isset($APIBookingRes['response']['itemInfos']['AIR']['travellerInfos']) ? $APIBookingRes['response']['itemInfos']['AIR']['travellerInfos'] : '';
                }
                if ($Passengers) {
                    foreach ($Passengers as $pax) {
                        //$statusMap = implode('-', $pax['statusMap']);
                        $TicketId = implode('-', $pax['pnrDetails']);
                    }
                }

                $pnr = explode('-', $TicketId);
                if (count($pnr) > 2) {
                    $PNR_Number = $pnr[0] . '-' . $pnr[1];
                } else {
                    $PNR_Number = $pnr[0];
                }
                $OnwardAutoTicket = isset($APIBookingRes['value']['OnwardAutoTicket']) ? $APIBookingRes['value']['OnwardAutoTicket'] : 1;
                if ($OnwardAutoTicket == 0) {
                    $PNR_Number = '';
                }
                if ($ICSourceSysId == 7 || $ICSourceSysId == 8) {
                    if (isset($arrBookingId[1]) && !empty($arrBookingId[1])) {
                        $strXRefBookingId = $strXRefBookingId . '<br><a style="color: #0061f1;">' . $arrBookingId[1] . '</a>';
                    } else {

                        if (!empty($PNR_Number)) {
                            $strXRefBookingId = $strXRefBookingId . '<br><a style="color: #0061f1;">' . $PNR_Number . ' </a>';
                        } else {
                            $strXRefBookingId = $strXRefBookingId . '<br><a class="updatepnr" style="color: red;" id="' . base64_encode($value['TPSysId']) . '"  TPIntSysId="' . $TPIntSysId . '">Update PNR </a>';
                        }
                    }
                } else {
                    if ($ICSourceSysId == 3) {
                        $strXRefBookingId = $strXRefBookingId . '<br><a style="color: #0061f1;">' . $Passengers . '</a>';
                    } else {
                        $strXRefBookingId = $strXRefBookingId;
                    }
                }
                if (!empty($PNR_Number)) {
                    $updateField = array(
                        'AirlineRefPNR' => $PNR_Number
                    );
                    $upadsted = $objFlight->updatePNR($updateField, $AirVersionId);
                    if ($upadsted) {
                        $UpdatedVersionid[] = $AirVersionId;
                    } else {
                        $NotUpdatedVersionid[] = $AirVersionId;
                    }
                } else {
                    $PNR_Number = $arrBookingId[1];
                    $updateField = array(
                        'AirlineRefPNR' => $PNR_Number
                    );
                    $upadsted = $objFlight->updatePNR($updateField, $AirVersionId);
                    if ($upadsted) {
                        $UpdatedVersionid[] = $AirVersionId;
                    } else {
                        $NotUpdatedVersionid[] = $AirVersionId;
                    }
                }
            }
            echo json_encode(array('updaterecord' => $UpdatedVersionid, 'notupdaterecord' => $NotUpdatedVersionid, 'totalupdate' => count($UpdatedVersionid), 'totalnotupdate' => count($NotUpdatedVersionid)));
            exit;
        } else {
            echo json_encode(array('updaterecord' => [], 'notupdaterecord' => [], 'totalupdate' => 0, 'totalnotupdate' => 0));
            exit;
        }
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit