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/PackageBookingController.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).
 * Create Date 14-09-2016
 * Update Date 14-09-2016
 * CustomerControoler (It will allow users to add different masters)
 * *** */

class PackageBookingController extends Catabatic_ValidateCustomer
{

    public function init()
    {

        parent::init();

        $IsB2Csite = (int) $this->getRequest()->getParam('Iswebsite');
        if ($IsB2Csite == 1) {
            $this->_helper->layout->setLayout('layout-package-book-website');
        } else {
            $this->_helper->layout->setLayout('layout-package-book');
        }
        ############## For HTML Purifer ####################
        $this->_HtmlPurifier = new Zend_Filter_HtmlPurifier();

        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $this->intLoggedinUserId = $sessionLogin_user->intLoggedinUserId;
        $this->intLoggedinUserGroupSysId = $sessionLogin_user->intLoggedinUserGroupSysId;
        $this->intLoggedinUserAgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;

        $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
        $aConfig = $this->getInvokeArg('bootstrap')->getOptions();
        $this->baseUrl = $aConfig['bootstrap']['siteUrl'];
    }

    public function packageBookingViewAction()
    {
        $this->view->intLoggedinUserAgencySysId = $intLoggedinUserAgencySysId = !empty($this->intLoggedinUserAgencySysId) ? $this->intLoggedinUserAgencySysId : 0;
        $this->view->view = $view = $this->getRequest()->getParam('view', null);
        $this->view->paytype = $paytype = $this->getRequest()->getParam('paytype');
        $this->view->strTxnStatus = $strTxnStatus = $this->getRequest()->getParam('status', "");
        $error_Message = $this->getRequest()->getParam('error_Message');
        $this->view->strTxnId = $strTxnId = $this->getRequest()->getParam('TrxId');
        $this->view->getPaymentCompanyName = 1;
        $this->view->GUID = $GUID = $this->getRequest()->getParam('GUID');
        $this->view->TpSysId = $TpSysId = $this->getRequest()->getParam('TpSysId');
        $pid = $this->_request->getParam('pid');
        $this->view->intTPSysId = $intTPSysId = base64_decode($pid);
        $this->view->intCustSysId = $intCustSysId = base64_decode(trim($this->_request->getParam('cid')));
        $this->view->paymentType = $paymentType = $this->_request->getParam('ptype');
        $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
        $this->view->code = $code = $this->getRequest()->getParam('code');
        $this->view->token = $token = $this->getRequest()->getParam('token');
        $secureCode = Catabatic_ValidateCustomer::secureCode(trim($pid), 1);

        if ($secureCode != $code) {
            echo "Please check your request parameters";
            exit;
        }
        $objAgency = new Travel_Model_TblAgency();
        if (!empty($intTPSysId)) {
            $objPkg = new Travel_Model_TblPackage();
            $objPkgBooking = new Travel_Model_TblPackageBooking();

            $objPkgBooking->TPSysId = $intTPSysId;
            $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
            $amountPaid = $objPkgBooking->getAmountPaidForProposalByTPSysId($intTPSysId);
            // $amountPaidToCustomer = $objPkgBooking->getAmountPaidtoCustomerForProposalByTPSysId($intTPSysId);
            //            echo "<pre>";print_r($amountPaid);die;
            $this->view->TotalAmountPaid = $TotalAmountPaid = !empty($amountPaid['TotalAmountPaid']) ? $amountPaid['TotalAmountPaid'] : 0;
            $objTrx = new Travel_Model_TblAgencyCustomerTrx();
            $this->view->arrPaymentHistory = $arrPaymentHistory = $objTrx->getTrasactionProposalByTPSysId($intTPSysId);
            $this->view->arrCustomerPaymentHistory = $arrCustomerPaymentHistory = $objTrx->getCustomerTrasactionProposalByTPSysId($intTPSysId);

            if ($TotalAmountPaid > 0 && $strTxnStatus == "") {
                $this->view->paymentType = "b";
                $this->view->intCustSysId = $intCustSysId = $travelPlanDetais[0]['CustomerSysId'];
            }
            $flexiPackageList = $objPkg->getCustPackageList($intTPSysId);
            $IsBusRoutePackage = isset($flexiPackageList['IsBusRoutePackage']) ? $flexiPackageList['IsBusRoutePackage'] : 0;
            $PackageBusData = [];
            $AllBusPickupLocation = [];
            $BusPickupLocation = [];
            if ($IsBusRoutePackage == 1) {
                $pickupLocationSysId = isset($flexiPackageList['pickupLocationSysId']) ? $flexiPackageList['pickupLocationSysId'] : 0;
                $StartDateTime = (array) $flexiPackageList['StartDate'];
                $InventoryDate = date("Y-m-d", strtotime($StartDateTime['date']));
                $PackageBusData = $objPkg->getBusDetailswithSeat($intTPSysId, $flexiPackageList['TPId'], $flexiPackageList['AgencySysId'], $InventoryDate);
                $BusPickupLocation = $objPkg->SelectedBusPickupLocation($flexiPackageList['AgencySysId'], $pickupLocationSysId);

                $AllBusPickupLocation = $objPkg->AllBusPickupLocation($flexiPackageList['AgencySysId'], $flexiPackageList['TPSysId']);
            }
            $this->view->AllBusPickupLocation = $AllBusPickupLocation;
            $this->view->BusPickupLocation = $BusPickupLocation;
            $this->view->PackageBusData = $PackageBusData;
            // echo "<pre>";
            // print_r($PackageBusData['HoldBookedSeat']); pickupLocationSysId
            // echo "<pre>";
            // print_r($AllBusPickupLocation);
            // echo "<pre>";
            // print_r($BusPickupLocation);
            // die;
            $flexiPackageList['NetPrice'] = $flexiPackageList['TotalCostGen'] + $flexiPackageList['NetPrice'];
            $flexiPackageList['XServiceTaxAmount'] = $flexiPackageList['ServiceProiderFee'] + $flexiPackageList['XServiceTaxAmount'];
            $objPaymentDetail = new Payment_Model_Payment();
            $getPaymentCompanyName = $objPaymentDetail->getPaymentCompanyNameAllDetail($flexiPackageList['AgencySysId']);
            $this->view->insuranceData = $insuranceData = $objPkgBooking->GetAgencyInsuranceData($flexiPackageList['AgencySysId']);
            $this->view->getCancellationProtectionPrice = $objPkg->getCancellationProtectionPrice($flexiPackageList['AgencySysId']);
            $this->view->TcsSettingDetail = $TcsSettingDetail = $objAgency->getTcsSettingDetail($flexiPackageList['AgencySysId'], 1);
            $this->view->getAgencyBookingFromField = $getAgencyBookingFromField = $objAgency->getAgencyBookingFromField($flexiPackageList['AgencySysId']);
            $addonsData = $addonsDataSuccess = $addonsVisaData = $addonsFlightData = array();
            //$addonsDataArr = $objPkg->getTravelPlanAddonServicesMultipleIds($flexiPackageList['AgencySysId'], $intTPSysId, array(21, 6), array());
            $this->view->addonsDataArr = $addonsDataArr = $objPkg->getTravelPlanAddonServicesMultipleIds($flexiPackageList['AgencySysId'], $intTPSysId, array(6, 1, 5, 21), array());
            //echo "<pre>";print_r($addonsDataArr);exit;
            foreach ($addonsDataArr as $adkey => $advalue) {
                if ($advalue['PlanType'] == 21) {
                    $addonsData[] = $advalue;
                } else if ($advalue['PlanType'] == 6) {
                    $addonsVisaData[] = $advalue;
                } else if ($advalue['PlanType'] == 1) {
                    $addonsFlightData[] = $advalue;
                }
            }
            $visaTAx = 0;
            if ($flexiPackageList['PlanType'] == 5 && $flexiPackageList['EconomyMask'] > 5) {
                $visaTAx = isset($addonsVisaData[0]['Tax']) ? (float) $addonsVisaData[0]['Tax'] : 0;
            }

            $this->view->addonsData = $addonsData;
            $this->view->addonsDataSuccess = $addonsDataSuccess;
            $this->view->addonsVisaData = $addonsVisaData;
            $arrAgencyDetails = $objAgency->getAgencyDataById($flexiPackageList['AgencySysId']);
            $getCustomerDetail = $objPkgBooking->GetTravelPlanCustomerById($flexiPackageList['CustomerSysId']);
            $PartnerLoginAgencySysId = $PartnerTPSysId = $PartnerLoginCustomerSysId = 0;
            if (isset($token) && !empty($token)) {
                $tokenDec = $this->getDec(base64_decode($token), $arrAgencyDetails['SecurityKey']);
                $tokenDecDecode = json_decode($tokenDec, 1);
                $PartnerLoginAgencySysId = isset($tokenDecDecode['AgencySysId']) ? (int) $tokenDecDecode['AgencySysId'] : 0;
                $PartnerLoginCustomerSysId = isset($tokenDecDecode['CustomerSysId']) ? (int) $tokenDecDecode['CustomerSysId'] : 0;
                $PartnerTPSysId = isset($tokenDecDecode['TPSysId']) ? (int) $tokenDecDecode['TPSysId'] : 0;
            }
            //echo "<pre>";print_r($tokenDecDecode);die;
            $CheckPartnerLogin = ($intLoggedinUserAgencySysId > 0) ? 1 : 0;
            if ($flexiPackageList['IsB2BProposal'] == 1) {
                if (($PartnerLoginAgencySysId == $getCustomerDetail['AgencySysId'] && $PartnerTPSysId == $intTPSysId) || ($flexiPackageList['AgencySysId'] == 12416)) {
                    $CheckPartnerLogin = 1;
                }
            } else {
                if (($PartnerLoginCustomerSysId == $getCustomerDetail['CustomerSysId'] && $PartnerTPSysId == $intTPSysId)) {
                    $CheckPartnerLogin = 1;
                }
            }

            $this->view->AgencyDetail = $arrAgencyDetails;
            $this->view->getPaymentCompanyName = isset($getPaymentCompanyName['PaymentOption']) ? $getPaymentCompanyName['PaymentOption'] : '';
            $this->view->PaymentMerchantId = isset($getPaymentCompanyName['PaymentMerchantId']) ? $getPaymentCompanyName['PaymentMerchantId'] : '';
            if ($flexiPackageList['IsB2BProposal'] == 1) {
                $MarketPlaceId = 2;
            } else {
                $MarketPlaceId = 1;
            }
            $objPackageSearch = new Gtxnetwork_Model_PackageSearch();
            $this->view->arrTNCData = $arrTNCData = $objPackageSearch->packageCustomizeTermsAndConditions($flexiPackageList['AgencySysId'], $flexiPackageList['TPId']);
            $this->view->IsGTXNetwork = !empty($flexiPackageList['IsGTXNetwork']) ? $flexiPackageList['IsGTXNetwork'] : '0';
            $this->view->flexiPackageList = $flexiPackageList;
            $gettransportdata = $this->_crmcusttravelplan->getCustomerTranportDetail($intTPSysId, 1);
            $this->view->gettransportdata = $gettransportdata;
            $flexiPackageItenList = $objPkg->getCustPackageItenList($intTPSysId);
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            if ($flexiPackageList['IsPaymentFrom'] == 1) {
                $this->_helper->layout->setLayout('layout-package-book-website');
            } else {
                $this->_helper->layout->setLayout('layout-package-book');
            }
            $gettransportoption = $objPkg->GetTransPortOption($intTPSysId);
            $totaltransport = array_sum(array_column($gettransportoption, 'total'));
            $this->view->totaltransportCount = $totaltransport;
            $packType = $flexiPackageList['PackSpecType'];
            if ($flexiPackageList['PlanType'] == 11) {
            } else {
                if ($flexiPackageList['PackSpecType'] == '3') { // only for dynamic proposal
                    $gettransportoption = $objPkg->GetTransPortOption($intTPSysId);
                    $totaltransport = array_sum(array_column($gettransportoption, 'total'));
                    $this->view->totaltransportCount = $totaltransport;
                    $catID = $this->getRequest()->getParam('cID');
                    $mealID = $this->getRequest()->getParam('mID');
                    $this->view->catID = $catID = !empty($catID) ? $catID : $flexiPackageList['EconomyMask']; // only for dynamic
                    $flexiPackageHotelsList = $objPkg->getCustPackageHotelsList($intTPSysId, @$catID, $packType);
                    $getotherservices = $this->_crmcusttravelplan->GetCustomerTravelPlanOtherServicesDisplay($intTPSysId);
                    $gettransportdata = $this->_crmcusttravelplan->GetAllTransportOption($intTPSysId);
                    $this->view->getotherservices = $getotherservices;
                    $this->view->gettransportdata = $gettransportdata;
                    $flexiPackageHotelListArr1 = $flexiPackageHotelMealPlanWiseListArr = array();
                    for ($h = 0; $h < count(@$flexiPackageHotelsList); $h++) {
                        if ($flexiPackageHotelsList[$h]['IsSelectedOnPkg'] == '1') {
                            $flexiPackageHotelListArr1[] = $flexiPackageHotelsList[$h];
                            $flexiPackageHotelMealPlanWiseListArr[$flexiPackageHotelsList[$h]['MealPlanType']][] = $flexiPackageHotelsList[$h];
                        }
                    }
                    $totalDaysNightsArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageTotalNoOfDays($flexiPackageItenList);
                    $totalNight = $totalDaysNightsArr['totalnights'];
                    $PackageCostCalType = $flexiPackageList['PackageCostCalType'];
                    if ($PackageCostCalType) {
                        $PossibleCombinationsOfMealPlanArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPossibleCombinationsOfMealPlan($flexiPackageHotelListArr1, $totalNight, $catID);
                        $this->view->possibleCombinationsOfMealPlanArr = $PossibleCombinationsOfMealPlanArr;
                    }
                    $this->view->mID = $mID = !empty($mealID) ? $mealID : $flexiPackageList['SharedMealPlanType'];
                    $this->view->flexiPackageHotelsList = !empty($PackageCostCalType) ? $flexiPackageHotelMealPlanWiseListArr[$mID] : $flexiPackageHotelsList;
                    $marketwiseratebyo = $this->_crmcusttravelplan->GetMarketWiseRateBYOReadyMade($intTPSysId, @$catID, @$tourID, $mID, $MarketPlaceId);
                    $this->view->marketwiseratebyo = $marketwiseratebyo;
                } else { // condition for readymade package
                    $flexiPackageHotelsList = $objPkg->getCustPackageHotelsListReadymade($intTPSysId);
                    $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;
                    $getotherservices = $this->_crmcusttravelplan->GetCustomerTravelPlanOtherServicesDisplay($intTPSysId, 1);
                    $this->view->getotherservices = $getotherservices;
                }

                // new Updated Code added on 09/11/2017....

                /* Baljeet Code starts */


                //Get Package Places
                $flexiPackagePlaces = $objPkg->getCustomerPackagePlacesList($intTPSysId);
                $this->view->flexiPackagePlaces = $flexiPackagePlaces;

                //Get Package Activity
                //            $flexiPackageActivityList = $objPkg->getCustPackageActivityList($intTPSysId);
                $flexiPackageActivityList = array();
                $this->view->flexiPackageActivityList = $flexiPackageActivityList;
                //Get Package Sightseen
                $flexiPackageSightseenList = $objPkg->getCustPackageSightseenList($intTPSysId);
                $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;

                //Get Package Flight
                $flexiPackageFlight = $objPkg->getCustPackageAir($intTPSysId);
                $this->view->flexiPackageFlight = $flexiPackageFlight;
            }
            $arrPkgDetails = $objPkgBooking->getPackageTravelPlanDetails();

            //            echo "<pre>";print_r($arrPkgDetails[0]['CouponCode']);echo "</pre>";die('die');
            if (!empty($arrPkgDetails)) {
                $arrPkg = array();
                $intTPintSysId = '';
                $strIteneryCities = '';
                foreach ($arrPkgDetails as $Pkgresult) {
                    $arrPkg['PkgTitle'] = $Pkgresult['PkgTitle'];
                    $arrPkg['StartDate'] = $Pkgresult['StartDate'];
                    $arrPkg['ValidTill'] = $Pkgresult['ValidTill'];
                    if (stripos($strIteneryCities, $Pkgresult['Cities']) === false) {
                        $strIteneryCities .= $Pkgresult['Cities'] . ' ';
                    }
                    $intTPintSysId .= $Pkgresult['TPintSysId'] . ',';
                    $arrPkg['CustomerSysId'] = $Pkgresult['CustomerSysId'];
                    $arrPkg['AgencySysId'] = $Pkgresult['AgencySysId'];
                    $strStatusType = $Pkgresult['StatusType'];
                }



                $arrPkg['TPintSysId'] = trim($intTPintSysId, ',');
                $arrPkg['IteneryCities'] = trim($strIteneryCities, ' ');
                $arrPkg['PkgDuration'] = $Pkgresult['Sequence'];
                $arrPkg['DiscountType'] = $Pkgresult['DiscountType'];
                $arrPkg['DiscountVal'] = $Pkgresult['DiscountVal'];
                $arrPkg['MarkUp'] = $Pkgresult['MarkUp'];
                $arrPkg['CustomDiscount'] = $Pkgresult['CustomDiscount'];
                $arrPkg['AdvBookingPercent'] = $Pkgresult['AdvBookingPercent'];
                $arrPkg['AdvBookingDays'] = $Pkgresult['AdvBookingDays'];
                $arrPkg['AgentSysId'] = $Pkgresult['AgentSysId'];
                $arrPkg['SupplierSysId'] = $Pkgresult['SupplierSysId'];
                $arrPkg['PlanType'] = $Pkgresult['PlanType'];
                $arrPkg['IsCardChrgToCustomer'] = $Pkgresult['IsCardChrgToCustomer'];
                $arrPkg['EconomyMask'] = $Pkgresult['EconomyMask'];

                $strRoomInfoJson = $arrPkgDetails[0]['RoomInfoJson'];

                $arrAgentDetails = $objAgency->getAgencyUserDataById($arrPkg['AgentSysId']); //get agent details

                $AgencySysId = $arrAgentDetails['AgencySysId'];

                //get agent details

                $agentDetails = $arrAgentDetails['FirstName'] . ' ' . $arrAgentDetails['LastName'] . ', ' . $arrAgentDetails['ContactNo1'] . ', ' . $arrAgentDetails['EmailId'];
                $this->view->AgentDetails = $agentDetails;
                $this->view->arrPkgDetails = $arrPkg;

                $arrTrevllerDetails = $objPkgBooking->GetAgencyCustomerDetailsForBooking($intTPSysId);
                //                                echo "<pre>";print_r($arrTrevllerDetails);die;
                if (!empty($arrTrevllerDetails)) {
                    foreach ($arrTrevllerDetails as $paxRes) {
                        $IsLeadPax = trim($paxRes[0]['IsLeadPax']);
                        if ($IsLeadPax == 1) {
                            $this->view->leadCustRelation = trim($paxRes[0]['Relation']);
                            $leadCustSalutation = $this->view->leadCustSalutation = trim($paxRes[0]['Title']);
                            $leadCustFirstName = $this->view->leadCustFirstName = trim($paxRes[0]['FirstName']);
                            $leadCustLastName = $this->view->leadCustLastName = trim($paxRes[0]['LastName']);
                            $leadCustMemberSysId = $this->view->leadCustMemberSysId = (int) $paxRes[0]['MemberSysId'];
                            $this->view->leadCustDOB = $paxRes[0]['DOB'];
                            $this->view->leadCustPassportNo = $paxRes[0]['PassportNo'];
                            $this->view->leadCustPassportIssue = $paxRes[0]['PassportIssue'];
                            $this->view->leadCustPassportExpiry = $paxRes[0]['PassportExpiry'];
                            $this->view->leadCustCityId = trim($paxRes[0]['CitySysId']);
                            $this->view->leadCustCountrySysId = ((int) $paxRes[0]['ContSysId'] > 0) ? trim($paxRes[0]['ContSysId']) : $paxRes[0]['CountrySysId'];
                            $this->view->leadCustStateOrZoneSysId = trim($paxRes[0]['StateOrZoneSysId']);
                            $this->view->leadCustPinCode = trim($paxRes[0]['PinCode']);
                            $this->view->leadCustAddress = trim($paxRes[0]['Address']);
                            $leadCustEmailId = $this->view->leadCustEmailId = trim($paxRes[0]['EmailId']);
                            $SecondaryEmail = $this->view->leadSecondaryEmail = trim($paxRes[0]['SecondaryEmail']);
                            $SecondaryPhone = $this->view->leadSecondaryPhone = trim($paxRes[0]['SecondaryPhone']);
                            $this->view->leadCustContacts = (isset($paxRes[0]['ContactsMember']) && $paxRes[0]['ContactsMember'] != '') ? $paxRes[0]['ContactsMember'] : trim($paxRes[0]['Contacts']);
                            $this->view->leadCustCountrycodeSelf = (isset($paxRes[0]['countrycodeMember']) && $paxRes[0]['countrycodeMember'] != '') ? $paxRes[0]['countrycodeMember'] : trim($paxRes[0]['countrycodeCustomer']);
                            $this->view->PanCard = trim($paxRes[0]['PanCardMember']);
                            $this->view->GstNumber = trim($paxRes[0]['GstNumberMember']);
                        }
                    }
                    $this->view->arrTrevllerDetails = $arrTrevllerDetails;
                }
                $getCreditBalanceForAgency = array();
                if (!empty($arrPkg['CustomerSysId'])) {
                    if ($getCustomerDetail['IsB2bAgent'] == 1 && $flexiPackageList['IsB2BProposal'] == 1) {
                        $getCreditBalanceForAgency = $objAgency->getCreditBalanceForAgency($getCustomerDetail['AgencySysId']);
                        if (is_array($getCreditBalanceForAgency)) {
                            $CheckPartnerLogin = 1;
                        } else {
                            $CheckPartnerLogin = 0;
                        }
                    } else {
                        $URL = $this->baseUrl . '/gtxwebservices/customer-wallet/check-wallet-balance/';
                        $updateCreditBalance = array(
                            'CustomerSysId' => $arrPkg['CustomerSysId']
                        );
                        $SecurityKey = $arrAgencyDetails['SecurityKey'];
                        $updateBalance = Zend_Controller_Action_HelperBroker::getStaticHelper("Flight")->getBalanceFromB2CWallet($updateCreditBalance, $URL, $SecurityKey);
                        if ($updateBalance['status'] == 1) {
                            $BalanceAmount = isset($updateBalance['WalletBalance']['0']['BalanceAmount']) ? $updateBalance['WalletBalance']['0']['BalanceAmount'] : 0;
                            $getCreditBalanceForAgency = array("BalanceAmount" => $BalanceAmount);
                            $CheckPartnerLogin = 1;
                        } else {
                            $CheckPartnerLogin = 0;
                        }
                    }
                    $this->view->CheckPartnerLogin = $CheckPartnerLogin;
                    $this->view->getCreditBalanceForAgency = $getCreditBalanceForAgency;
                    $leadCustEmailId = $this->view->leadCustEmailIdSelf = trim($getCustomerDetail['EmailId']);
                    $leadCustContacts = $this->view->leadCustContactsSelf = trim($getCustomerDetail['Contacts']);
                    $leadCustCountrycodeSelf = $this->view->leadCustCountrycodeSelf = trim($getCustomerDetail['countrycode']);
                    if ($flexiPackageList['IsB2BProposal'] != 1) {

                        $this->view->leadCustSalutationSelf = trim($getCustomerDetail['Title']);
                        $this->view->leadCustFirstNameSelf = trim($getCustomerDetail['FirstName']);
                        $this->view->leadCustLastNameSelf = trim($getCustomerDetail['LastName']);

                        if ($leadCustFirstName == '') {
                            $leadCustFirstName = $this->view->leadCustFirstName = trim($getCustomerDetail['FirstName']);
                        }
                        if ($leadCustLastName == '') {
                            $leadCustLastName = $this->view->leadCustLastName = trim($getCustomerDetail['LastName']);
                        }
                        $this->view->leadCustDOBSelf = $getCustomerDetail['DOB'];
                        $this->view->leadCustCityIdSelf = trim($getCustomerDetail['CitySysId']);
                        $this->view->leadCustAddressSelf = trim($getCustomerDetail['Address']);
                        $this->view->leadCustEmailId = trim($leadCustEmailId);
                        $this->view->leadCustContacts = trim($leadCustContacts);
                        $this->view->leadCustCountrycodeSelf = trim($leadCustCountrycodeSelf);
                        $this->view->leadCustPassportNoSelf = trim($getCustomerDetail['PassportNo']);
                        $this->view->leadCustPassportIssueSelf = $getCustomerDetail['PassportIssue'];
                        $this->view->leadCustPassportExpirySelf = ($getCustomerDetail['PassportExpiry']);
                        $this->view->leadCustPinCodeSelf = trim($getCustomerDetail['PinCode']);
                        $this->view->leadCustRelationSelf = trim($getCustomerDetail['Relation']);
                        $this->view->leadCustCountrySysIdSelf = trim($getCustomerDetail['CountrySysId']);
                        $this->view->leadCustStateOrZoneSysIdSelf = trim($getCustomerDetail['StateOrZoneSysId']);
                        $this->view->PanCard = trim($getCustomerDetail['PanCard']);
                        $this->view->GstNumber = trim($getCustomerDetail['GstNumber']);
                        $this->view->leadSecondaryEmail = trim($getCustomerDetail['SecondaryEmail']);
                        $this->view->leadSecondaryPhone = trim($getCustomerDetail['SecondaryPhone']);
                    } else {
                    }
                }
                //                echo "<pre>";print_r($getCustomerDetail);die;
                $AgentsCustomServiceTaxAmountFlight = 0;
                if (!empty($arrPkg['TPintSysId'])) {
                    $arrAirDetails = $objPkgBooking->getPackageTravelPlanAir($arrPkg['TPintSysId']);
                    $AgentsCustomServiceTaxAmountFlight = isset($arrAirDetails[0]['AgentsCustomServiceTaxAmount']) ? (float) $arrAirDetails[0]['AgentsCustomServiceTaxAmount'] : 0;
                    $this->view->arrAirDetails = $arrAirDetails;

                    $arrSightSeeingDetails = $objPkgBooking->getPackageTravelPlanSightSeeing($arrPkg['TPintSysId']);
                    $this->view->arrSightSeeingDetails = $arrSightSeeingDetails;
                }
                if ($flexiPackageList['EconomyMask'] < 6) {
                    $AgentsCustomServiceTaxAmountFlight = 0;
                }
                if ($flexiPackageList['PlanType'] == 5 && $flexiPackageList['EconomyMask'] == 8) {
                    $AgentsCustomServiceTaxAmountFlight = isset($addonsFlightData[0]['Tax']) ? (float) $addonsFlightData[0]['Tax'] : 0;
                }
                $arrPackageTermsAndConditions = $objPkgBooking->getPackageTermsAndConditions($intTPSysId);
                $this->view->arrPackageTermsAndConditions = $arrPackageTermsAndConditions;
                //echo "<pre>";print_r($arrPackageTermsAndConditions);die;
                if ($flexiPackageList['PlanType'] == 11) {
                    $arrPkg['ShareCurrency'] = "1_INR";
                }
                $objCust = new Travel_Model_CRM_CustomerTravelPlan();
                $StartDateTime = (array) $arrPkg['StartDate'];
                $TripDate = date("Y-m-d", strtotime($StartDateTime['date']));

                $this->view->marketPlaceRateArr = $marketPlaceRateArr = $objCust->getCustPackRate($intTPSysId, $TripDate, $MarketPlaceId);
                $tppackRate = $objCust->getCustTravelPackRate($intTPSysId, $TripDate, $MarketPlaceId);
                // Package Cost.....
                // echo "exxit"; exit;
                //                echo "<pre>";print_r($arrPkg);
                //                echo "<pre>";print_r($marketPlaceRateArr);
                //                echo "<pre>";print_r($tppackRate);exit;
                $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($intTPSysId, $strRoomInfoJson, $arrPkg, @$marketPlaceRateArr[0], @$tppackRate[0]);
                //                echo "<pre>";print_r($arrPkgDetails);exit;
                $BaseCurrencySymbol = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->getCurrencySymbolById($arrPkgCost['baseCurrencyId']);
                $finalPackageCostWith_extramarkupNdiscount = round($arrPkgDetails[0]['NetPrice']);
                $packageServiceTaxCost = round((int) $arrPkgDetails[0]['AgentServiceTaxAmount'] + (int) $arrPkgDetails[0]['XServiceTaxAmount'] + (int) $arrPkgDetails[0]['AgentsCustomServiceTaxAmount'] - (int) $arrPkgDetails[0]['ServiceTaxOnCustomDiscount']);
                $ExtraMarkUp = round((int) $arrPkgDetails[0]['ExtraMarkUp']);
                $Discount = (int) $arrPkgDetails['CustomDiscount'];
                $CouponDiscount = (int) $arrPkgDetails['DiscountVal'];
                $taxdetailforagency = Zend_Controller_Action_HelperBroker::getStaticHelper('Hotel')->getApiServiceTax('', "P", 0);
                $tax = (trim($taxdetailforagency['ServiceTaxPercentage']) > 0) ? trim(floatval($taxdetailforagency['ServiceTaxPercentage'])) : 0;
                $serviceTax = round(($arrPkg['MarkUp'] - $arrPkg['CustomDiscount']) * $tax / 100);
                $exchangerateM = 1;
                if ($flexiPackageList['PackSpecType'] != 3) {
                    /* -----------------Change curr Code--------------------------- */
                    $packageSharedCurrency = $flexiPackageList['CurrencyType'];
                    $StartDateTime = (array) $flexiPackageList['StartDate'];
                    $TripDate = date("Y-m-d", strtotime($StartDateTime['date']));
                    //                $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', @$_REQUEST['tripdate'])));
                    $marketwiserate = $objPkg->getCustPackRate($flexiPackageList['TPSysId'], '', $TripDate);
                    $packageBaseCurrency = $marketwiserate[0]['CurrencyType'];

                    if (!empty($flexiPackageList['BookingConversionRate'])) {
                        $exchangerateM = $flexiPackageList['BookingConversionRate'];
                    } else {
                        $exchangerateM = $objPkg->currencyExchangeRate($packageSharedCurrency, $arrPkgCost['baseCurrencyId'], $flexiPackageList['AgencySysId']);
                    }

                    $exchangerate = 1; //because price alresy converted in $flexiPackageList['NetPrice']
                    //                                        echo '<pre>';print_r($flexiPackageList);die;
                    $finalPackageCostWith_extramarkupNdiscount = $packageBaseCurrencyNetPrice = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($flexiPackageList['NetPrice'], $exchangerate);
                    $packageServiceTaxCostSum = round(((float) $flexiPackageList['AgentServiceTaxAmount'] + (float) $flexiPackageList['XServiceTaxAmount'] + (float) $flexiPackageList['AgentsCustomServiceTaxAmount'] - (float) $flexiPackageList['ServiceTaxOnCustomDiscount'] + $AgentsCustomServiceTaxAmountFlight + $visaTAx), 2);
                    $packageServiceTaxCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($packageServiceTaxCostSum, $exchangerate);
                    $Discount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($flexiPackageList['CustomDiscount'], $exchangerate);
                    $CouponDiscount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($flexiPackageList['DiscountVal'], $exchangerate);
                    //echo "<pre>";print_r($TotalAmountPaid);exit;
                    $this->view->finalPackageCostWithMarkupnTaxM = $finalPackageCostWithMarkupnTax = round($packageBaseCurrencyNetPrice, 2);
                    $this->view->finalPackageCostWithMarkupnTax = $finalPackageCostWithMarkupnTaxM = round(($packageBaseCurrencyNetPrice * $exchangerateM), 2);

                    /* -----------------Change curr Code--------------------------- */
                } else {
                    // echo "shagdahsgdhjgsdjsa"; exit;
                    $this->view->finalPackageCostWithMarkupnTaxM = $finalPackageCostWithMarkupnTaxM = $finalPackageCostWith_extramarkupNdiscount;
                    $this->view->finalPackageCostWithMarkupnTax = $finalPackageCostWithMarkupnTax = $finalPackageCostWith_extramarkupNdiscount;
                }
                $this->view->exchangerateM = $exchangerateM;
                $this->view->BaseCurrencySymbol = $BaseCurrencySymbol;
                $this->view->packageServiceTaxCost = $packageServiceTaxCost;
                $this->view->Discount = $Discount;
                $this->view->CouponDiscount = $CouponDiscount;
                $this->view->CouponCode = (isset($arrPkgDetails[0]['CouponCode']) && trim($arrPkgDetails[0]['CouponCode']) != '' && (int) $arrPkgDetails[0]['IsCoupon'] == 1) ? trim($arrPkgDetails[0]['CouponCode']) : '';
                $advanceBookingAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $finalPackageCostWithMarkupnTaxM);

                $advancePkgBookingArray['AdvBookingPercent'] = $arrPkg['AdvBookingPercent'];
                $advancePkgBookingArray['bookingAmount'] = $advanceBookingAmount;
                $this->view->advanceBookingDetailsArray = $advancePkgBookingArray;
                $this->view->arrPkgCost = $arrPkgCost;
                //}
                $Customer = new Zend_Session_Namespace('CustomerPkgEntries');
                if (isset($Customer->PkgCustomerMembersEntries[0]['paymentType']) && (int) $Customer->PkgCustomerMembersEntries[0]['paymentVal'] > 0 && $Customer->PkgCustomerMembersEntries[0]['paymentType'] == 'advance') { // advanceBooking with combination of (Baseprce + markup+Tax)
                    $premiumAmount = $Customer->PkgCustomerMembersEntries[0]['paymentVal'];
                    $baseAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalCost']);
                    $tax = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['Tax']);
                    $finalDiscount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalDiscount']);
                    $finalMarkUp = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalMarkUp']);
                } else if (isset($Customer->PkgCustomerMembersEntries[0]['paymentType']) && $Customer->PkgCustomerMembersEntries[0]['paymentType'] == 'flex') { // advanceBooking with combination of (Baseprce + markup+Tax)
                    $premiumAmount = $Customer->PkgCustomerMembersEntries[0]['paymentVal'];
                    $baseAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalCost']);
                    $tax = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['Tax']);
                    $finalDiscount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalDiscount']);
                    $finalMarkUp = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalMarkUp']);
                } else {
                    $premiumAmount = $finalPackageCostWith_extramarkupNdiscount; // combination of (Baseprce + markup+Tax)
                    $baseAmount = $arrPkgCost['FinalCost'];
                    $tax = $arrPkgCost['Tax'];
                    $finalDiscount = $arrPkgCost['FinalDiscount'];
                    $finalMarkUp = $arrPkgCost['FinalMarkUp'];
                }
                $premiumAmountM = $premiumAmount * $exchangerateM;
                $checkVisaFinalDocument = array();
                if ($flexiPackageList['PlanType'] == 6) {
                    $finalMarkUp = $flexiPackageList['MarkUp'] + $flexiPackageList['AgencyMarkUp'] + $flexiPackageList['GTXMarkUp'];
                    $TblVisa = new Travel_Model_TblVisa();
                    $checkVisaFinalDocument = $TblVisa->checkVisaFinalDocument($flexiPackageList['TPSysId']);
                    $VisaRatesDeList = $TblVisa->VisaInventoryDeList($flexiPackageList['TPId'], $flexiPackageList['AgencySysId']);
                    $this->view->ChildAge = isset($VisaRatesDeList['ChildAge']) && !empty($VisaRatesDeList['ChildAge']) ? $VisaRatesDeList['ChildAge'] : '';
                    $this->view->PassportExpiryDays = isset($VisaRatesDeList['PassportExpiryDays']) && !empty($VisaRatesDeList['PassportExpiryDays']) ? $VisaRatesDeList['PassportExpiryDays'] : '';
                }
                $this->view->checkVisaFinalDocument = $checkVisaFinalDocument;
                $finalMarkUpM = $finalMarkUp * $exchangerateM;
                $packageServiceTaxCostM = $packageServiceTaxCost * $exchangerateM;
                $ExtraMarkUpM = $ExtraMarkUp * $exchangerateM;
                $this->view->finalMarkUp = $finalMarkUp;
                $markuparray['intAgentMarkUpAmount'] = $ExtraMarkUpM;
                $markuparray['intAgencyMarkUpAmount'] = $finalMarkUpM;
                $markuparray['intGTXMarkUpAmount'] = 0;
                $markuparray['intTotalAmount'] = $baseAmount;
                $markuparray['intTax'] = $tax;
                $markuparray['intTotalGTXTaxAmount'] = 0;
                $markuparray['GTXServiceTaxAmount'] = 0;
                $markuparray['AgentServiceTaxAmount'] = 0;
                $markuparray['AgentsCustomServiceTaxAmount'] = 0;
                $markuparray['Pax'] = $arrPkgCost['TotalPax'];
                $markuparray['SupplierSourceStr'] = $arrPkg['SupplierSysId'] . '/myinventory';
                $markuparray['TotalDiscount'] = $finalDiscount;
                $markuparray['CurrencyType'] = $arrPkgCost['CurrencyId']; //currency Id
                $markuparray['MarketPlaceId'] = 1; //b2b or b2c
                $markuparray['packageServiceTaxCost'] = $packageServiceTaxCostM;
                $markuparray['exchangerateM'] = $exchangerateM;
                //                echo "<pre>";print_r($markuparray);exit;
                $encryptMarkUpData = $this->getEnc(json_encode($markuparray));
                $this->view->guid = $this->GUID();
                $CancellationProtectionData['CancellationProtection'] = $flexiPackageList['IsCancellationProtection'];
                $CancellationProtectionData['CancellationProtectionPrice'] = $flexiPackageList['CancellationProtectionPrice'];
                $CancellationProtectionData['finalPackageCostWithMarkupnTax'] = $finalPackageCostWithMarkupnTax;
                $encryptCancellationProtectionData = $this->getEnc(json_encode($CancellationProtectionData));
                $this->view->encryptCancellationProtectionData = $encryptCancellationProtectionData;
                $Tax = isset($addonsData[0]['Tax']) ? (int) trim($addonsData[0]['Tax'] * $exchangerateM) : 0;
                $walletBlance = (($flexiPackageList['IsCancellationProtection'] == 1) ? (int) ($premiumAmountM + $flexiPackageList['CancellationProtectionPrice'] + $Tax - $TotalAmountPaid) : $premiumAmountM + $Tax - $TotalAmountPaid);
                $this->view->walletCode = $this->walletCode($arrPkg['AgentSysId'], $this->view->guid, round($walletBlance), $arrPkg['AgencySysId'], $intTPSysId, $intCustSysId, $encryptMarkUpData);
                $this->view->securecode = $this->secureCode($intCustSysId, $this->view->guid);
                $IsB2CSite = !empty($arrAgencyDetails['IsB2CSite']) ? $arrAgencyDetails['IsB2CSite'] : 0;
                $IsPaymentGateway = !empty($arrAgencyDetails['IsPaymentGateway']) ? $arrAgencyDetails['IsPaymentGateway'] : 0;
                if ($IsPaymentGateway == 1) {
                    $paymentModel = new Payment_Model_Payment();
                    $checkPyamentgatewayType = $paymentModel->checkPyamentgatewayType($arrPkg['AgencySysId']);
                    $this->view->paymentgatewayDetail = $checkPyamentgatewayType;
                    if (!empty($checkPyamentgatewayType) && $checkPyamentgatewayType[0]['PaymentOption'] == 2) {
                        $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/razor-pay/success";
                    } else if (!empty($checkPyamentgatewayType) && $checkPyamentgatewayType[0]['PaymentOption'] == 5) {
                        $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/converge-pay";
                    } else {
                        if (!empty($IsB2CSite) && !empty($IsPaymentGateway)) {
                            $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay-by-agency";
                        } else {
                            if (!empty($IsPaymentGateway)) {
                                $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay-by-agency";
                            } else {
                                $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay";
                            }
                        }
                    }
                }
                $this->view->strRechargeNowUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options";
                $this->view->strTrxType = ($flexiPackageList['PlanType'] == 2) ? 'H' : 'P'; //TrxType
                $this->view->intPlanType = $arrPkg['PlanType'];
                $this->view->IsCardChrgToCustomer = $arrPkg['IsCardChrgToCustomer'];
                $this->view->encryptMarkUpData = $encryptMarkUpData;

                // for wallet use
                $fullBaseUrl = $this->view->baseUrl();
                $this->view->strReturnURL = $fullBaseUrl . "/package-booking/package-booking-view/pid/" . base64_encode($intTPSysId) . "/cid/" . base64_encode($intCustSysId) . "/code/" . $code;
                $this->view->strErrorURL = $fullBaseUrl . "/package-booking/package-booking-view/pid/" . base64_encode($intTPSysId) . "/cid/" . base64_encode($intCustSysId) . "/code/" . $code;

                /* Baljeet Code ends */
                $Customer = new Zend_Session_Namespace('CustomerPkgEntries');
                if ($strStatusType == '8' && empty($Customer->PkgCustomerMembersEntries)) {
                    $this->view->ErrorCode = 8;
                } else {
                    $this->view->ErrorCode = 5;
                }
            } else {
                $this->view->ErrorCode = 1;
            }
        } else {
            $this->view->ErrorCode = 1;
        }

        //$strTxnStatus = $paytype = 'success';
        if (!empty($strTxnStatus) && $paytype != 2) {
            $path = SITE_FULL_URL . 'public/assets/images';
            $pathAgency = SITE_FULL_URL . 'public/upload/media/agency/' . $AgencySysId;
            if (isset($arrAgencyDetails['Logo']) && $arrAgencyDetails['Logo'] != '') {
                $AgencyLogo = $pathAgency . '/' . $arrAgencyDetails['Logo'];
            } else {
                $AgencyLogo = $path . '/default_company_logo.jpg';
            }
            $paramArray = $this->_crmcusttravelplan->GetTravelPlanByCustomer($intTPSysId);
            $getAgencyFinanceUserDetail = $objAgency->getAgencyFinanceUserDetail($paramArray[0]['AgencySysId']);
            if (empty($getAgencyFinanceUserDetail)) {
                $getAgencyFinanceUserDetail['SignatureType'] = $arrAgencyDetails['SignatureType'];
                $getAgencyFinanceUserDetail['Signature'] = $arrAgencyDetails['Signature'];
                $getAgencyFinanceUserDetail['EmailId'] = $arrAgencyDetails['EmailId'];
                $getAgencyFinanceUserDetail['ContactNo1'] = $arrAgencyDetails['ContactNo1'];
            }
            //echo "<pre>";print_r($getAgencyFinanceUserDetail);die;
            $paramArrayPackage = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageDetailsForEmailTemplate($intTPSysId, $paramArray[0], $paramArray[0]['EconomyMask']); //$paramArray['PackageArray']['EconomyMask'] package category
            $getCurrencyType = isset($paramArray[0]['CurrencyType']) ? $paramArray[0]['CurrencyType'] : 1;
            $GSTSharedModeVal = isset($paramArray[0]['GSTSharedMode']) ? $paramArray[0]['GSTSharedMode'] : 1;
            $getCurrencySymbolArray = $this->_crmcusttravelplan->GetCurrencyByCurrencyType($getCurrencyType);
            $currencySymbol = isset($getCurrencySymbolArray['Symbol']) ? $getCurrencySymbolArray['Symbol'] : 'INR';
            $GSTF = (float) $arrPkgDetails[0]['XServiceTaxAmount'] + (float) $arrPkgDetails[0]['AgentServiceTaxAmount'] + (float) $arrPkgDetails[0]['AgentsCustomServiceTaxAmount'] - (float) $arrPkgDetails[0]['ServiceTaxOnCustomDiscount'];
            if ($exchangerate > 0) {
                $exchangerate = $exchangerate;
            } else {
                $exchangerate = 1;
            }
            $PickupTime = "";
            $PickUpLocation = "";
            $GST = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($GSTF, $exchangerate);
            if (isset($paramArray[0]['IsBusRoutePackage']) && $paramArray[0]['IsBusRoutePackage'] == 1) {
                $pickuplocationId = $paramArray[0]['pickupLocationSysId'];
                $getPickupLocationData = $this->_crmcusttravelplan->getPickupLocation($pickuplocationId);
                if (isset($getPickupLocationData['pickupLocation'])) {
                    $PickUpLocation = $getPickupLocationData['pickupLocation'];
                    $PickupTime = $getPickupLocationData['PickupTime'] != '' ? $getPickupLocationData['PickupTime']->format("H:i A") : '';
                }
            }
            $paymentListArr = array();
            $refundGUID = '';
            foreach ($arrPaymentHistory as $kkey => $kval) {
                if ($kval['TrxOrdDocId'] != 19) {
                    $strtime = strtotime($kval['TrxDate']->format('Y-m-d'));
                    $paymentListArr[$strtime . $kkey] = $kval;
                } else {
                    $refundGUID = $kval['GUID'];
                }
            }
            //echo $premiumAmountM.'--'.$TcsTax;die;
            $TcsAddonServicesData = (isset($addonsData[0])) ? $addonsData[0] : 0;
            $TcsTax = (isset($TcsAddonServicesData['Tax'])) ? $TcsAddonServicesData['Tax'] * $exchangerateM : 0;
            $CancellationProtectionprice = (isset($paramArray[0]['IsCancellationProtection']) && $paramArray[0]['IsCancellationProtection'] == 1 && empty($paymentListArr)) ? $paramArray[0]['CancellationProtectionPrice'] : 0;
            $premiumAmount1 = $premiumAmountM + $CancellationProtectionprice + $TcsTax;
            $ARR_SALUTION = unserialize(ARR_SALUTION);
            $leadCustSalutationName = (isset($leadCustSalutation) && !empty($leadCustSalutation)) ? $ARR_SALUTION[$leadCustSalutation] : '';
            $TotalAmountPaidForMail = $TotalAmountPaid + $amountPaid['TcsTwentyPercentage'] + $amountPaid['TcsFivePercentage'];
            $params['GSTSharedModeVal'] = $GSTSharedModeVal;
            $params['currencySymbol'] = $currencySymbol;
            $params['PickUpLocation'] = $PickUpLocation;
            $params['PickUpTime'] = $PickupTime;
            $params['AgencySysId'] = $arrAgencyDetails['AgencySysId'];
            $params['agency_logo'] = $AgencyLogo;
            $params['company_name'] = $arrAgencyDetails['DisplayName'];
            $params['booking_date'] = date("d/m/Y");
            $params['package_cost'] = $premiumAmount;
            $params['paid_amount'] = $TotalAmountPaidForMail;
            $params['paid_amount_currency'] = $amountPaid['Symbol'];
            $params['balance_amount'] = round($premiumAmount1 - $TotalAmountPaidForMail);
            $params['baseCurrencySymbol'] = $BaseCurrencySymbol;
            $params['GST'] = round($GST);
            $params['shared_url'] = "";
            $params['cust_name'] = trim($leadCustSalutationName . ' ' . $leadCustFirstName . ' ' . $leadCustLastName);
            $params['cust_email'] = $leadCustEmailId;
            $params['about_package'] = "";
            $params['destination_city'] = $arrPkgDetails[0]['Cities'];
            $params['agent_firstname'] = '';
            $params['SignatureType'] = $getAgencyFinanceUserDetail['SignatureType'];
            $params['agent_primarycontact'] = $getAgencyFinanceUserDetail['Signature'];
            $params['file_path_location'] = $path;
            $params['sendersEmailId'] = $getAgencyFinanceUserDetail['EmailId'];
            $params['ContactNo1'] = $getAgencyFinanceUserDetail['ContactNo1'];
            $params['agencyDisplayName'] = $arrAgencyDetails['DisplayName'] ? $arrAgencyDetails['DisplayName'] : $arrAgencyDetails['Title'];
            $params['PrimaryEmail'] = $arrAgentDetails['PrimaryEmail'];
            $params['arrPackage'] = $paramArrayPackage;
            $params['customer_contact'] = $getCustomerDetail['Contacts'];
            $params['countrycode'] = (strpos($getCustomerDetail['countrycode'], '+') !== false) ? $getCustomerDetail['countrycode'] : "+" . $getCustomerDetail['countrycode'];
            $params['ProposalId'] = $intTPSysId;
            $params['strTxnId'] = $strTxnId;
            $params['AgentContactForSMS'] = array_unique(array($getAgencyFinanceUserDetail['ContactNo1'], $arrAgencyDetails['PrimaryContactNo']));
            $params['GUID'] = @$this->getRequest()->getParam('GUID');
            $params['TpSysId'] = @$this->getRequest()->getParam('TpSysId');
            $params['IsCancellationProtection'] = $paramArray[0]['IsCancellationProtection'];
            $params['CancellationProtectionPrice'] = $paramArray[0]['CancellationProtectionPrice'];
            $params['TcsAddonServicesData'] = $TcsAddonServicesData;
            $params['PlanType'] = $paramArray[0]['PlanType'];
            $DisplayName = $arrAgencyDetails['DisplayName'] ? $arrAgencyDetails['DisplayName'] : $arrAgencyDetails['Title'];
            $subject = 'Payment Confirmation from ' . $DisplayName . ' for ' . trim($paramArray[0]['Title']) . ' trip';
            $bookNowLink = '';
            if ($paramArray[0]['PlanType'] == 5) { //5 for package
                $typename = 'package';
                $isPkgReadymade = $paramArray[0]['Readymade'];
                $pkgId = $paramArray[0]['TPSysId'];
                $modifyPackageLink = '';
                $secureCode = Zend_Controller_Action_HelperBroker::getStaticHelper('SecureCode')->secureCode(base64_encode($paramArray[0]['TPSysId']), 1);
                if ($paramArray[0]['PackSpecType'] == 4) {
                    $modifyLink = '#';
                    $viewLink = $this->baseUrl . '/publicpackage/view-customer-final-package/code/' . $secureCode . '/id/' . base64_encode($paramArray[0]['TPSysId']);
                } else if ($isPkgReadymade == 0) {
                    $viewLink = $this->baseUrl . '/package/view-byo-pkg/id/' . base64_encode($paramArray[0]['TPSysId']);
                } else {
                    $modifyLink = '#';
                    $viewLink = $this->baseUrl . '/publicpackage/view-customer-final-package/code/' . $secureCode . '/id/' . base64_encode($paramArray[0]['TPSysId']);
                }
                $bookNowLink = $viewLink;
                $paybalance = $this->baseUrl . '/package-booking/package-booking-view/pid/' . base64_encode($paramArray[0]['TPSysId']) . '/cid/' . base64_encode($paramArray[0]['CustomerSysId']) . "/code/" . $code;
            }
            $params['bookNowLink'] = ($bookNowLink != '') ? '<a href="' . $bookNowLink . '" style="text-decoration: none;">View Detail</a>' : '';
            $params['paybalance'] = ($bookNowLink != '') ? '(<a href="' . $paybalance . '" style="text-decoration: none;">Click here to Pay Balance</a>)' : '';
            $FirstName = (isset($paramArray[0]['FirstName']) && $paramArray[0]['FirstName'] != '') ? $paramArray[0]['FirstName'] : '';
            $LastName = (isset($paramArray[0]['LastName']) && $paramArray[0]['LastName'] != '') ? $paramArray[0]['LastName'] : '';
            $params['customerName'] = $FirstName . ' ' . $LastName;
            $params['customer_contact'] = $paramArray[0]['Contacts'];
            //echo $premiumAmount1.'--'.$TotalAmountPaid;die;
            if ($strTxnStatus == "success" && (round($premiumAmount1) <= round($TotalAmountPaidForMail))) {
                $StatusType = 143; //8 = Proposal Booked
                $PaymentStatue = 22;
                $BookingStatus = ($paramArray[0]['PlanType'] == 6) ? 108 : 21;
                $objTrx = new Travel_Model_TblAgencyCustomerTrx();
                $strInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
                $data = array("InvoiceId" => $strInvoiceNumber);
                $objTrx->updateInvoiceNumber($data, $strTxnId);
                $params['last_payment'] = $arrPaymentHistory[0]['NetAmount'];
                $params['payment_type'] = "Full Payment";
                $params['paymentStatus'] = "full";
                $params['txn_status'] = "Successful";

                $ccEmail = array($arrAgentDetails['EmailId']);
                //echo "<pre>";print_r($params);
                $emailStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('EmailTemplate')->sendTransactionStatusToCustomer($leadCustEmailId, $subject, $params, $ccEmail);

                $current_time = new DateTime();
                $current_time->add(new DateInterval('PT1M'));
                $schedule_time = $current_time->format('Y-m-d H:i:s');
                $TotalPaidAmount = trim($params['paid_amount_currency']) . ' ' . $params['paid_amount'];
                $destinationPlace = trim($params['destination_city']);
                $CustomerMobileNumber = trim($params['countrycode']) . '' . trim($params['customer_contact']);
                $PlanTypeName = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->getPlanTypeName($paramArray[0]['PlanType']);
                $PackagePlan = $PlanTypeName . " Booking";
                $postData = array(
                    "UserSysId" => $arrPkg['AgentSysId'],
                    // "IsSchedule" => False,
                    "schedule_time" => $schedule_time,
                    "title" => $PackagePlan,
                    "body" => "Hurray! $FirstName made a booking for $destinationPlace for $TotalPaidAmount.",
                    //"IsButton" => True,
                    "URL" => $bookNowLink,
                    "IsCall" => true,
                    "mobileNo" => trim($CustomerMobileNumber)
                );
                if (isset($arrAgentDetails['SecurityKey'])) {
                    $curl = curl_init();
                    curl_setopt_array($curl, array(
                        CURLOPT_URL => 'https://globaltravelexchange.com/gtxwebservices/agency/create-fire-base-message',
                        CURLOPT_RETURNTRANSFER => true,
                        CURLOPT_ENCODING => '',
                        CURLOPT_MAXREDIRS => 10,
                        CURLOPT_TIMEOUT => 0,
                        CURLOPT_FOLLOWLOCATION => true,
                        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                        CURLOPT_CUSTOMREQUEST => 'POST',
                        CURLOPT_POSTFIELDS => $postData,
                        CURLOPT_HTTPHEADER => array(
                            'securitykey:' . trim($arrAgentDetails['SecurityKey']),
                            //'Content-Type: application/json'
                        ),
                    ));
                    $response = curl_exec($curl);
                    curl_close($curl);
                }

                if ($paramArray[0]['Contacts'] != '') {
                    $arrSMSStatisticsType = array_keys(unserialize(ARR_SMS_STATISTICS_TYPE));
                    $params['arrSMSStatisticsType'] = $arrSMSStatisticsType[0];
                    $FirstName = (isset($paramArray[0]['FirstName']) && $paramArray[0]['FirstName'] != '') ? $paramArray[0]['FirstName'] : '';
                    $LastName = (isset($paramArray[0]['LastName']) && $paramArray[0]['LastName'] != '') ? $paramArray[0]['LastName'] : '';

                    $params['customerName'] = $FirstName . ' ' . $LastName;
                    $params['Contacts'] = $paramArray[0]['Contacts'];
                    $params['DestinationPlaces'] = $paramArray[0]['DestinationPlaces'];

                    $params['TPSysId'] = $paramArray[0]['TPSysId'];
                    // $smsStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->SendSmsToCustomerBooking($params);
                    // $smsStatusAGent = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->SendSmsToCustomerBookingAgent($params);
                    //$booknowurl = $smsStatus['shortlink'];
                }
            } else if ($strTxnStatus == "success" && (round($premiumAmount1) > round($TotalAmountPaidForMail))) {
                $StatusType = 143; //8 = Proposal Booked
                $PaymentStatue = 23;
                $BookingStatus = ($paramArray[0]['PlanType'] == 6) ? 108 : 21;

                $objTrx = new Travel_Model_TblAgencyCustomerTrx();
                $strInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
                $data = array("InvoiceId" => $strInvoiceNumber);
                $objTrx->updateInvoiceNumber($data, $strTxnId);

                $params['last_payment'] = $arrPaymentHistory[0]['NetAmount'];
                $params['payment_type'] = "Partial Payment";
                $params['txn_status'] = "Successful";
                $params['paymentStatus'] = "part";
                //                 echo "<pre>";print_r($params);die;
                $ccEmail = array($arrAgentDetails['EmailId']);
                $emailStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('EmailTemplate')->sendTransactionStatusToCustomer($leadCustEmailId, $subject, $params, $ccEmail);

                $TotalPaidAmount = trim($params['paid_amount_currency']) . ' ' . $params['paid_amount'];
                $destinationPlace = trim($params['destination_city']);
                $CustomerMobileNumber = trim($params['countrycode']) . '' . trim($params['customer_contact']);
                $PlanTypeName = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->getPlanTypeName($paramArray[0]['PlanType']);
                $PackagePlan = $PlanTypeName . " Booking";
                $postData = array(
                    "UserSysId" => $arrPkg['AgentSysId'],
                    // "IsSchedule" => False,
                    "schedule_time" => "",
                    "title" => $PackagePlan,
                    "body" => "Hurray! $FirstName made a booking for $destinationPlace for $TotalPaidAmount.",
                    //"IsButton" => True,
                    "URL" => $bookNowLink,
                    "IsCall" => true,
                    "mobileNo" => trim($CustomerMobileNumber)
                );
                if (isset($arrAgentDetails['SecurityKey'])) {
                    $curl = curl_init();
                    curl_setopt_array($curl, array(
                        CURLOPT_URL => 'https://globaltravelexchange.com/gtxwebservices/agency/create-fire-base-message',
                        CURLOPT_RETURNTRANSFER => true,
                        CURLOPT_ENCODING => '',
                        CURLOPT_MAXREDIRS => 10,
                        CURLOPT_TIMEOUT => 0,
                        CURLOPT_FOLLOWLOCATION => true,
                        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                        CURLOPT_CUSTOMREQUEST => 'POST',
                        CURLOPT_POSTFIELDS => $postData,
                        CURLOPT_HTTPHEADER => array(
                            'securitykey:' . trim($arrAgentDetails['SecurityKey']),
                            //'Content-Type: application/json'
                        ),
                    ));
                    $response = curl_exec($curl);
                    curl_close($curl);
                }



                if ($paramArray[0]['Contacts'] != '') {
                    $arrSMSStatisticsType = array_keys(unserialize(ARR_SMS_STATISTICS_TYPE));
                    $params['arrSMSStatisticsType'] = $arrSMSStatisticsType[0];
                    $FirstName = (isset($paramArray[0]['FirstName']) && $paramArray[0]['FirstName'] != '') ? $paramArray[0]['FirstName'] : '';
                    $LastName = (isset($paramArray[0]['LastName']) && $paramArray[0]['LastName'] != '') ? $paramArray[0]['LastName'] : '';
                    $params['customerName'] = trim($FirstName) . ' ' . trim($LastName);
                    $params['Contacts'] = $paramArray[0]['Contacts'];
                    $params['DestinationPlaces'] = trim($paramArray[0]['DestinationPlaces']);
                    $params['TPSysId'] = $paramArray[0]['TPSysId'];
                    // $smsStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->SendSmsToCustomerBooking($params);
                    // $smsStatusAGent = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->SendSmsToCustomerBookingAgent($params);
                    $booknowurl = $smsStatus['shortlink'];
                }
            } else if ($strTxnStatus == "failure") {
                if ($TotalAmountPaidForMail > 0 && ($premiumAmount > $TotalAmountPaidForMail)) {
                    $StatusType = 143; //8 = Proposal Booked
                    $PaymentStatue = 23;
                    $BookingStatus = ($paramArray[0]['PlanType'] == 6) ? 108 : 21;
                } else {
                    $StatusType = 3;
                    $PaymentStatue = 20;
                    $BookingStatus = null;
                }
                $params['last_payment'] = $arrPaymentHistory[0]['NetAmount'];
                $params['txn_status'] = "Failed";
                $params['paymentStatus'] = "Failed";
                //$emailStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('EmailTemplate')->sendTransactionStatusToCustomer($leadCustEmailId, $subject, $params);
            } else {
                $StatusType = 3;
                $PaymentStatue = null;
                $BookingStatus = null;
            }
            //            echo $StatusType;die;
            $objPkgBooking->updateProposalStatus($StatusType, $PaymentStatue, $BookingStatus, $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']);
        }
    }

    public function seatmapAction()
    {
        if ($this->_request->isXmlHttpRequest()) {
            $post = $this->getRequest()->getPost();

            $intTPSysId = $post['TPSysId'];
            $ActionType = isset($post['ActionType']) ? $post['ActionType'] : '';
            $objPkg = new Travel_Model_TblPackage();
            $flexiPackageList = $objPkg->getCustPackageList($intTPSysId);
            $IsBusRoutePackage = isset($flexiPackageList['IsBusRoutePackage']) ? $flexiPackageList['IsBusRoutePackage'] : 0;
            $PackageBusData = [];
            if ($IsBusRoutePackage == 1) {
                $StartDateTime = (array) $flexiPackageList['StartDate'];
                $InventoryDate = date("Y-m-d", strtotime($StartDateTime['date']));
                $PackageBusData = $objPkg->getBusDetailswithSeat($intTPSysId, $flexiPackageList['TPId'], $flexiPackageList['AgencySysId'], $InventoryDate, $ActionType);
                $SeatJson = isset($PackageBusData['SeatMap']['SeatData']) ? ($PackageBusData['SeatMap']['SeatData']) : '';
                $HoldBookedSeat = isset($PackageBusData['HoldBookedSeat']) ? (($PackageBusData['HoldBookedSeat'])) : '';
                $BusSeatsId = $BusSeatsId_prev = isset($PackageBusData['BusSeatsId']) ? (($PackageBusData['BusSeatsId'])) : [];
                $BusSeatType = !empty($PackageBusData['SeatMap']['BusSeatType']) ? $PackageBusData['SeatMap']['BusSeatType'] : [];
                $BusSysId = !empty($PackageBusData['BusData']['BusSysId']) ? $PackageBusData['BusData']['BusSysId'] : 0;

                if ($ActionType === 'change') {
                    $objBus = new Travel_Model_TblBus();
                    $busModel = new Bus_Model_Bus();
                    $selectedSeats = isset($post['selectedSeats']) ? $post['selectedSeats'] : [];
                    $selectedSeatsId = isset($post['selectedSeatsId']) ? $post['selectedSeatsId'] : [];
                    $PickupTime = (isset($post['pick_up_time']) && $post['pick_up_time'] != '') ? explode('_', $post['pick_up_time']) : '';
                    $PickupTime = isset($PickupTime[0]) ? $PickupTime[0] : '0';
                    // echo '<pre>';
                    // print_r($PickupTime);
                    // die;
                    $BusSeatsId = !empty($BusSeatsId) ? $BusSeatsId : $selectedSeatsId;
                    $travelplandata = $this->_crmcusttravelplan->GetTravelPlan($flexiPackageList['TPId']);
                    $BusRouteSysId = $travelplandata[0]['BusRouteSysId'];
                    $getBusRouteArray = $busModel->getBusRoute($BusRouteSysId);
                    $SourcePlaceSysId = $getBusRouteArray['StartCitySysId'] ? $getBusRouteArray['StartCitySysId'] : 0;
                    $EndCitySysId = $getBusRouteArray['EndCitySysId'] ? $getBusRouteArray['EndCitySysId'] : 0;
                    $roomsArray = Zend_Json::decode($flexiPackageList['RoomInfoJson']);
                    $countRooms = count($roomsArray);
                    $LayoutSysId = $PackageBusData['BusData']['BusLayoutsId'] ? $PackageBusData['BusData']['BusLayoutsId'] : 0;
                    $Title = $PackageBusData['BusData']['Title'] ? $PackageBusData['BusData']['Title'] : '';
                    $flexiPackageItenList = $objPkg->getCustPackageItenList($intTPSysId);
                    $lasttravelitenaryID = isset($flexiPackageItenList[(count($flexiPackageItenList) - 1)]['TPIntSysId']) ? $flexiPackageItenList[(count($flexiPackageItenList) - 1)]['TPIntSysId'] : 0;

                    $totalchild = 0;
                    $totaladult = 0;
                    $totalInfant = 0;
                    for ($k = 1; $k <= $countRooms; $k++) {
                        $roomjson[$k]['Adult'] = $roomsArray[$k]['Adult'];
                        $roomjson[$k]['adult_type'] = $roomsArray[$k]['adult_type'];
                        if ($roomjson[$k]['Adult'] == 3) {
                            $roomjson[$k]['AdultBedType'] = @$roomsArray[$k]['bedtype'];
                        }
                        $totaladult = $totaladult + $roomjson[$k]['Adult'];
                        $roomjson[$k]['Child'] = $roomsArray[$k]['Child'];
                        $totalchild = $totalchild + $roomjson[$k]['Child'];
                        $roomjson[$k]['Infant'] = $roomsArray[$k]['Infant'];
                        $totalInfant = $totalInfant + $roomjson[$k]['Infant'];
                        for (
                            $j = 1;
                            $j <= $roomjson[$k]['Child'];
                            $j++
                        ) {
                            $roomjson[$k]['ChildAge_' . $j] = $roomsArray[$k]['ChildAge_' . $j];
                            $roomjson[$k]['ChildBedType_' . $j] = $roomsArray[$k]['ChildBedType_' . $j];
                        }
                    }
                    $totalPax = $totaladult + $totalchild + $totalInfant;

                    $CreateDate = date('Y-m-d H:i:s');
                    $tpproposalID = $flexiPackageList['TPSysId'];
                    $SeatNoUpdated = [];

                    if (!empty($BusSeatsId)) {
                        foreach ($BusSeatsId as $key => $value) {
                            $SeatIdArray = isset($selectedSeatsId[$key]) ? [$selectedSeatsId[$key]] : 0;
                            $SeatNo = isset($selectedSeats[$key]) ? $selectedSeats[$key] : '';
                            $SeatNoUpdated[] = $SeatNo;
                            $checkBusInventory = $busModel->checkBusInventory($flexiPackageList['TPId'], $BusSysId, $InventoryDate, $SeatIdArray);

                            if ($checkBusInventory == true) {
                                $updateArr = array(
                                    'IsMarkForDelete' => 0,
                                    "Status" => 3,
                                    "IsActive" => 1,
                                    "SeatNo" => 0,
                                    'TPSysId' => $flexiPackageList['TPId'],
                                    'InventoryDate' => $InventoryDate,
                                    'AgencySysId' => $flexiPackageList['AgencySysId'],
                                    'SeatType' => isset($BusSeatType[$SeatNo]) ? $BusSeatType[$SeatNo] : 0,
                                    'SeatId' => isset($selectedSeatsId[$key]) ? $selectedSeatsId[$key] : 0,
                                    'UpdatedDate' => $CreateDate,
                                );

                                $where = array(
                                    'BusSeatsId =?' => $value,
                                    'ProposalSysId =?' => $intTPSysId,
                                    'TPSysId =?' => $flexiPackageList['TPId'],
                                    'InventoryDate =?' => $InventoryDate,
                                    'AgencySysId =?' => $flexiPackageList['AgencySysId'],
                                );
                                $whereCheck = array(
                                    'SeatType' => isset($BusSeatType[$SeatNo]) ? $BusSeatType[$SeatNo] : 0,
                                    'SeatId' => trim($value),
                                    'ProposalSysId' => $intTPSysId,
                                    'TPSysId' => trim($flexiPackageList['TPId']),
                                    'InventoryDate' => $InventoryDate,
                                    'AgencySysId' => trim($flexiPackageList['AgencySysId']),
                                );

                                $updateArrTrvaelplan['pickupLocationSysId'] = $PickupTime;
                                $whereQR = "TPSysId = " . (int) $flexiPackageList['MasterTPSysId'];
                                $this->_crmcusttravelplan->UpdateCustomerTravelPlanQuery($updateArrTrvaelplan, $whereQR);
                                $whereTP = "TPSysId = " . (int) $flexiPackageList['TPSysId'];
                                $this->_crmcusttravelplan->UpdateCustomerTravelPlan($updateArrTrvaelplan, $whereTP);
                                $checkExist = $objBus->CheckHoldUnholdSeatExist($whereCheck);

                                if (empty($checkExist) && empty($BusSeatsId_prev)) {
                                    $updateArr['CreatedDate'] = $CreateDate;
                                    $updateArr['ProposalSysId'] = $tpproposalID;
                                    $busModel->insertTable("TB_TravelPlan_Bus_Seats", $updateArr);
                                    if ($key == 0) {
                                        $BusArray = array(
                                            "TPSysId" => $tpproposalID,
                                            "TPIntSysId" => $lasttravelitenaryID ? $lasttravelitenaryID : 0,
                                            "SeqId" => 0,
                                            "AgencySysId" => $flexiPackageList['AgencySysId'],
                                            'AdultPax' => $totaladult,
                                            'ChildPax' => $totalchild,
                                            'InfentPax' => $totalInfant,
                                            'TotalPax' => $totalPax,
                                            "encodedata" => implode(',', $selectedSeats),
                                            "SourcePlaceSysId" => $SourcePlaceSysId,
                                            "DestPlaceSysId" => $EndCitySysId,
                                            "SupplierSysId" => 0,
                                            "BusSysId" => $BusSysId,
                                            "BusRouteSysId" => $BusRouteSysId,
                                            "LayoutSysId" => $LayoutSysId,
                                            "LocalFromTime" => "",
                                            "LocalToTime" => "",
                                            "IsVoucher" => 0,
                                            "EmailId" => "",
                                            "Mobile" => "",
                                            "ConfirmationNo" => "",
                                            "Remark" => "",
                                            "IsActive" => 1,
                                            "IsMarkForDel" => 0
                                        );
                                        $busModel->insertTable("TB_Agency_Customer_TravelPlan_Bus", $BusArray);
                                    }
                                } else {
                                    $result = $objPkg->updateData('TB_TravelPlan_Bus_Seats', $updateArr, $where);
                                }

                                // print_r($updateArr);
                                // echo "</pre>";
                                //die('die');
                            }
                        }
                        $returnArray = ['status' => true, 'message' => 'Change successfully', 'SeatNoUpdated' => implode(', ', $SeatNoUpdated), 'Title' => $Title];
                        echo json_encode($returnArray);
                        exit;
                    }
                }
                if ($SeatJson) {
                    $returnArray = ['status' => true, 'message' => 'success', 'SeatJson' => $SeatJson, 'HoldBookedSeat' => $HoldBookedSeat];
                    echo json_encode($returnArray);
                    exit;
                } else {
                    $returnArray = ['status' => false, 'message' => 'Seat map not found', 'SeatJson' => [], 'BusData' => [], 'HoldBookedSeat' => []];
                    echo json_encode($returnArray);
                    exit;
                }
            } else {
                $returnArray = ['status' => false, 'message' => 'Bus Route Package not found'];
                echo json_encode($returnArray);
                exit;
            }
        } else {
            $returnArray = ['status' => false, 'message' => 'Invalid Request'];
            echo json_encode($returnArray);
            exit;
        }
    }
    public function packageBookingPaxDetailAction()
    {
        $this->view->intLoggedinUserAgencySysId = !empty($this->intLoggedinUserAgencySysId) ? $this->intLoggedinUserAgencySysId : 0;
        $this->view->strTxnStatus = $strTxnStatus = $this->getRequest()->getParam('status');
        $error_Message = $this->getRequest()->getParam('error_Message');
        $this->view->strTxnId = $strTxnId = $this->getRequest()->getParam('TrxId');
        $this->view->getPaymentCompanyName = 1;
        $this->view->GUID = $GUID = $this->getRequest()->getParam('GUID');
        $this->view->TpSysId = $TpSysId = $this->getRequest()->getParam('TpSysId');
        $this->view->intTPSysId = $intTPSysId = base64_decode($this->_request->getParam('pid'));
        $this->view->intCustSysId = $intCustSysId = base64_decode(trim($this->_request->getParam('cid')));
        $this->view->paymentType = $paymentType = $this->_request->getParam('ptype');
        $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
        $this->view->code = $code = $this->getRequest()->getParam('code');

        if (!empty($intTPSysId)) {
            $secureCode = Catabatic_ValidateCustomer::secureCode(trim($this->_request->getParam('pid')), 1);
            if ($secureCode != $code) {
                echo "Please check your request parameters";
                exit;
            }
            $objPkg = new Travel_Model_TblPackage();
            $objPkgBooking = new Travel_Model_TblPackageBooking();
            $objAgency = new Travel_Model_TblAgency();
            $objPkgBooking->TPSysId = $intTPSysId;
            $travelPlanDetais = $this->_crmcusttravelplan->CheckCustomerWithLeadId($intTPSysId);
            $amountPaid = $objPkgBooking->getAmountPaidForProposalByTPSysId($intTPSysId);
            $this->view->TotalAmountPaid = $TotalAmountPaid = !empty($amountPaid['TotalAmountPaid']) ? $amountPaid['TotalAmountPaid'] : 0;
            $objTrx = new Travel_Model_TblAgencyCustomerTrx();
            $this->view->arrPaymentHistory = $arrPaymentHistory = $objTrx->getTrasactionProposalByTPSysId($intTPSysId);
            if ($TotalAmountPaid > 0 && $strTxnStatus == "") {
                $this->view->paymentType = "b";
                $this->view->intCustSysId = $intCustSysId = $travelPlanDetais[0]['CustomerSysId'];
            }
            // new Updated Code added on 09/11/2017....
            $flexiPackageList = $objPkg->getCustPackageList($intTPSysId);

            $objPaymentDetail = new Payment_Model_Payment();
            $getPaymentCompanyName = $objPaymentDetail->getPaymentCompanyName($flexiPackageList['AgencySysId']);
            $this->view->insuranceData = $insuranceData = $objPkgBooking->GetAgencyInsuranceData($flexiPackageList['AgencySysId']);
            // echo $flexiPackageList['AgencySysId']; exit;
            // echo $getPaymentCompanyName; exit;
            $arrAgencyDetails = $objAgency->getAgencyDataById($flexiPackageList['AgencySysId']);
            $this->view->AgencyDetail = $arrAgencyDetails;
            $this->view->getPaymentCompanyName = $getPaymentCompanyName;
            if ($flexiPackageList['IsB2BProposal'] == 1) {
                $MarketPlaceId = 2;
            } else {
                $MarketPlaceId = 1;
            }
            //echo "<pre>";print_r($flexiPackageList);exit;
            $objPackageSearch = new Gtxnetwork_Model_PackageSearch();
            $this->view->arrTNCData = $arrTNCData = $objPackageSearch->packageCustomizeTermsAndConditions($flexiPackageList['AgencySysId'], $flexiPackageList['TPId']);
            $this->view->IsGTXNetwork = !empty($flexiPackageList['IsGTXNetwork']) ? $flexiPackageList['IsGTXNetwork'] : '0';
            //echo '<pre>';print_r($arrTNCData);die;
            $this->view->flexiPackageList = $flexiPackageList;
            $getotherservices = $this->_crmcusttravelplan->GetOtherServices($intTPSysId);
            $gettransportdata = $this->_crmcusttravelplan->GetAllTransportOption($intTPSysId);
            $this->view->getotherservices = $getotherservices;
            $this->view->gettransportdata = $gettransportdata;
            $flexiPackageItenList = $objPkg->getCustPackageItenList($intTPSysId);
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            if ($flexiPackageList['IsPaymentFrom'] == 1) {
                $this->_helper->layout->setLayout('layout-package-book-website');
            } else {
                $this->_helper->layout->setLayout('layout-package-book');
            }
            $gettransportoption = $objPkg->GetTransPortOption($intTPSysId);
            $totaltransport = array_sum(array_column($gettransportoption, 'total'));
            $this->view->totaltransportCount = $totaltransport;
            $packType = $flexiPackageList['PackSpecType'];
            //Get Package Hotels
            if ($flexiPackageList['PlanType'] == 11) {
            } else {
                if ($flexiPackageList['PackSpecType'] == '3') { // only for dynamic proposal
                    $gettransportoption = $objPkg->GetTransPortOption($intTPSysId);
                    $totaltransport = array_sum(array_column($gettransportoption, 'total'));
                    $this->view->totaltransportCount = $totaltransport;
                    $catID = $this->getRequest()->getParam('cID');
                    $mealID = $this->getRequest()->getParam('mID');
                    $this->view->catID = $catID = !empty($catID) ? $catID : $flexiPackageList['EconomyMask']; // only for dynamic
                    $flexiPackageHotelsList = $objPkg->getCustPackageHotelsList($intTPSysId, @$catID, $packType);
                    $getotherservices = $this->_crmcusttravelplan->GetOtherServices($intTPSysId);
                    $gettransportdata = $this->_crmcusttravelplan->GetAllTransportOption($intTPSysId);
                    $this->view->getotherservices = $getotherservices;
                    $this->view->gettransportdata = $gettransportdata;
                    $flexiPackageHotelListArr1 = $flexiPackageHotelMealPlanWiseListArr = array();
                    for ($h = 0; $h < count(@$flexiPackageHotelsList); $h++) {
                        if ($flexiPackageHotelsList[$h]['IsSelectedOnPkg'] == '1') {
                            $flexiPackageHotelListArr1[] = $flexiPackageHotelsList[$h];
                            $flexiPackageHotelMealPlanWiseListArr[$flexiPackageHotelsList[$h]['MealPlanType']][] = $flexiPackageHotelsList[$h];
                        }
                    }

                    $totalDaysNightsArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageTotalNoOfDays($flexiPackageItenList);
                    $totalNight = $totalDaysNightsArr['totalnights'];
                    $PackageCostCalType = $flexiPackageList['PackageCostCalType'];
                    if ($PackageCostCalType) {
                        $PossibleCombinationsOfMealPlanArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPossibleCombinationsOfMealPlan($flexiPackageHotelListArr1, $totalNight, $catID);
                        $this->view->possibleCombinationsOfMealPlanArr = $PossibleCombinationsOfMealPlanArr;
                    }
                    $this->view->mID = $mID = !empty($mealID) ? $mealID : $flexiPackageList['SharedMealPlanType'];
                    $this->view->flexiPackageHotelsList = !empty($PackageCostCalType) ? $flexiPackageHotelMealPlanWiseListArr[$mID] : $flexiPackageHotelsList;
                    $marketwiseratebyo = $this->_crmcusttravelplan->GetMarketWiseRateBYOReadyMade($intTPSysId, @$catID, @$tourID, $mID, $MarketPlaceId);
                    $this->view->marketwiseratebyo = $marketwiseratebyo;
                } else { // condition for readymade package
                    $flexiPackageHotelsList = $objPkg->getCustPackageHotelsListReadymade($intTPSysId);
                    $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;
                }

                // new Updated Code added on 09/11/2017....

                /* Baljeet Code starts */


                //Get Package Places
                $flexiPackagePlaces = $objPkg->getCustomerPackagePlacesList($intTPSysId);
                $this->view->flexiPackagePlaces = $flexiPackagePlaces;

                //Get Package Activity
                //            $flexiPackageActivityList = $objPkg->getCustPackageActivityList($intTPSysId);
                $flexiPackageActivityList = array();
                $this->view->flexiPackageActivityList = $flexiPackageActivityList;
                //Get Package Sightseen
                $flexiPackageSightseenList = $objPkg->getCustPackageSightseenList($intTPSysId);
                $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;

                //Get Package Flight
                $flexiPackageFlight = $objPkg->getCustPackageAir($intTPSysId);
                $this->view->flexiPackageFlight = $flexiPackageFlight;
            }
            $arrPkgDetails = $objPkgBooking->getPackageTravelPlanDetails();

            //echo "<pre>";print_r($arrPkgDetails);echo "</pre>";
            if (!empty($arrPkgDetails)) {
                $arrPkg = array();
                $intTPintSysId = '';
                $strIteneryCities = '';
                foreach ($arrPkgDetails as $Pkgresult) {
                    $arrPkg['PkgTitle'] = $Pkgresult['PkgTitle'];
                    $arrPkg['StartDate'] = $Pkgresult['StartDate'];
                    $arrPkg['ValidTill'] = $Pkgresult['ValidTill'];
                    if (stripos($strIteneryCities, $Pkgresult['Cities']) === false) {
                        $strIteneryCities .= $Pkgresult['Cities'] . ' ';
                    }
                    $intTPintSysId .= $Pkgresult['TPintSysId'] . ',';
                    $arrPkg['CustomerSysId'] = $Pkgresult['CustomerSysId'];
                    $arrPkg['AgencySysId'] = $Pkgresult['AgencySysId'];
                    $strStatusType = $Pkgresult['StatusType'];
                }



                $arrPkg['TPintSysId'] = trim($intTPintSysId, ',');
                $arrPkg['IteneryCities'] = trim($strIteneryCities, ' ');
                $arrPkg['PkgDuration'] = $Pkgresult['Sequence'];
                $arrPkg['DiscountType'] = $Pkgresult['DiscountType'];
                $arrPkg['DiscountVal'] = $Pkgresult['DiscountVal'];
                $arrPkg['MarkUp'] = $Pkgresult['MarkUp'];
                $arrPkg['CustomDiscount'] = $Pkgresult['CustomDiscount'];
                $arrPkg['AdvBookingPercent'] = $Pkgresult['AdvBookingPercent'];
                $arrPkg['AdvBookingDays'] = $Pkgresult['AdvBookingDays'];
                $arrPkg['AgentSysId'] = $Pkgresult['AgentSysId'];
                $arrPkg['SupplierSysId'] = $Pkgresult['SupplierSysId'];
                $arrPkg['PlanType'] = $Pkgresult['PlanType'];
                $arrPkg['IsCardChrgToCustomer'] = $Pkgresult['IsCardChrgToCustomer'];

                $strRoomInfoJson = $arrPkgDetails[0]['RoomInfoJson'];

                $arrAgentDetails = $objAgency->getAgencyUserDataById($arrPkg['AgentSysId']); //get agent details

                $AgencySysId = $arrAgentDetails['AgencySysId'];

                //get agent details

                $agentDetails = $arrAgentDetails['FirstName'] . ' ' . $arrAgentDetails['LastName'] . ', ' . $arrAgentDetails['ContactNo1'] . ', ' . $arrAgentDetails['EmailId'];
                $this->view->AgentDetails = $agentDetails;
                $this->view->arrPkgDetails = $arrPkg;

                $arrTrevllerDetails = $objPkgBooking->GetAgencyCustomerDetailsForBooking($intTPSysId);

                if (!empty($arrTrevllerDetails)) {
                    foreach ($arrTrevllerDetails as $paxRes) {
                        $IsLeadPax = trim($paxRes[0]['IsLeadPax']);
                        if ($IsLeadPax == 1) {
                            $this->view->leadCustRelation = trim($paxRes[0]['Relation']);
                            $this->view->leadCustSalutation = trim($paxRes[0]['Title']);
                            $leadCustFirstName = $this->view->leadCustFirstName = trim($paxRes[0]['FirstName']);
                            $leadCustLastName = $this->view->leadCustLastName = trim($paxRes[0]['LastName']);
                            $this->view->leadCustDOB = $paxRes[0]['DOB'];
                            $this->view->leadCustPassportNo = $paxRes[0]['PassportNo'];
                            $this->view->leadCustPassportIssue = $paxRes[0]['PassportIssue'];
                            $this->view->leadCustPassportExpiry = $paxRes[0]['PassportExpiry'];
                            $this->view->leadCustCityId = trim($paxRes[0]['CitySysId']);
                            $this->view->leadCustAddress = trim($paxRes[0]['Address']);
                            $leadCustEmailId = $this->view->leadCustEmailId = trim($paxRes[0]['EmailId']);
                            $this->view->leadCustContacts = trim($paxRes[0]['Contacts']);
                        }
                    }
                    $this->view->arrTrevllerDetails = $arrTrevllerDetails;
                }

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

                if (!empty($arrPkg['CustomerSysId'])) {
                    $getCustomerDetail = $objPkgBooking->GetTravelPlanCustomerById($arrPkg['CustomerSysId']);
                    $leadCustEmailId = $this->view->leadCustEmailIdSelf = trim($getCustomerDetail['EmailId']);
                    $this->view->leadCustContactsSelf = trim($getCustomerDetail['Contacts']);
                    $this->view->leadCustCountrycodeSelf = trim($getCustomerDetail['countrycode']);
                    if ($flexiPackageList['IsB2BProposal'] != 1) {
                        $this->view->leadCustSalutationSelf = trim($getCustomerDetail['Title']);
                        $leadCustFirstName = $this->view->leadCustFirstName = $this->view->leadCustFirstNameSelf = trim($getCustomerDetail['FirstName']);
                        $leadCustLastName = $this->view->leadCustLastNameSelf = trim($getCustomerDetail['LastName']);
                        $this->view->leadCustDOBSelf = $getCustomerDetail['DOB'];
                        $this->view->leadCustCityIdSelf = trim($getCustomerDetail['CitySysId']);
                        $this->view->leadCustAddressSelf = trim($getCustomerDetail['Address']);

                        $this->view->leadCustPassportNoSelf = trim($getCustomerDetail['PassportNo']);
                        $this->view->leadCustPassportIssueSelf = ($getCustomerDetail['PassportIssue']);
                        $this->view->leadCustPassportExpirySelf = ($getCustomerDetail['PassportExpiry']);
                        $this->view->leadCustPinCodeSelf = trim($getCustomerDetail['PinCode']);
                        $this->view->leadCustRelationSelf = trim($getCustomerDetail['Relation']);
                        $this->view->leadCustCountrySysIdSelf = trim($getCustomerDetail['CountrySysId']);
                        $this->view->leadCustStateOrZoneSysIdSelf = trim($getCustomerDetail['StateOrZoneSysId']);
                    }
                }







                if (!empty($arrPkg['TPintSysId'])) {
                    $arrAirDetails = $objPkgBooking->getPackageTravelPlanAir($arrPkg['TPintSysId']);
                    $this->view->arrAirDetails = $arrAirDetails;

                    $arrSightSeeingDetails = $objPkgBooking->getPackageTravelPlanSightSeeing($arrPkg['TPintSysId']);
                    $this->view->arrSightSeeingDetails = $arrSightSeeingDetails;
                }

                $arrPackageTermsAndConditions = $objPkgBooking->getPackageTermsAndConditions($intTPSysId);
                $this->view->arrPackageTermsAndConditions = $arrPackageTermsAndConditions;
                //echo "<pre>";print_r($arrPackageTermsAndConditions);die;
                if ($flexiPackageList['PlanType'] == 11) {
                    $arrPkg['ShareCurrency'] = "1_INR";
                }
                $objCust = new Travel_Model_CRM_CustomerTravelPlan();
                $StartDateTime = (array) $arrPkg['StartDate'];
                $TripDate = date("Y-m-d", strtotime($StartDateTime['date']));
                $this->view->marketPlaceRateArr = $marketPlaceRateArr = $objCust->getCustPackRate($intTPSysId, $TripDate, $MarketPlaceId);
                $tppackRate = $objCust->getCustTravelPackRate($intTPSysId, $TripDate, $MarketPlaceId);
                // Package Cost.....
                // echo "exxit"; exit;
                //echo "<pre>";print_r(@$tppackRate);exit;
                $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($intTPSysId, $strRoomInfoJson, $arrPkg, @$marketPlaceRateArr[0], @$tppackRate[0]);
                //echo "<pre>";print_r($arrPkgDetails);exit;
                $finalPackageCostWith_extramarkupNdiscount = round($arrPkgDetails[0]['NetPrice']);
                $packageServiceTaxCost = round((int) $arrPkgDetails[0]['AgentServiceTaxAmount'] + (int) $arrPkgDetails[0]['XServiceTaxAmount'] + (int) $arrPkgDetails[0]['AgentsCustomServiceTaxAmount'] - (int) $arrPkgDetails[0]['ServiceTaxOnCustomDiscount']);
                $Discount = (int) $arrPkgDetails['CustomDiscount'];
                $taxdetailforagency = Zend_Controller_Action_HelperBroker::getStaticHelper('Hotel')->getApiServiceTax('', "P", 0);
                $tax = (trim($taxdetailforagency['ServiceTaxPercentage']) > 0) ? trim(floatval($taxdetailforagency['ServiceTaxPercentage'])) : 0;
                $serviceTax = round(($arrPkg['MarkUp'] - $arrPkg['CustomDiscount']) * $tax / 100);
                if ($flexiPackageList['PackSpecType'] != 3) {
                    /* -----------------Change curr Code--------------------------- */
                    $packageSharedCurrency = $flexiPackageList['CurrencyType'];
                    $StartDateTime = (array) $flexiPackageList['StartDate'];
                    $TripDate = date("Y-m-d", strtotime($StartDateTime['date']));
                    //                $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', @$_REQUEST['tripdate'])));
                    $marketwiserate = $objPkg->getCustPackRate($flexiPackageList['TPSysId'], '', $TripDate);
                    $packageBaseCurrency = $marketwiserate[0]['CurrencyType'];

                    $exchangerate = $objPkg->currencyExchangeRate($packageSharedCurrency, $packageBaseCurrency);
                    //echo '<pre>';print_r($marketwiserate);die;
                    $finalPackageCostWith_extramarkupNdiscount = $packageBaseCurrencyNetPrice = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($flexiPackageList['NetPrice'], $exchangerate);
                    $packageServiceTaxCostSum = round((int) $flexiPackageList['AgentServiceTaxAmount'] + (int) $flexiPackageList['XServiceTaxAmount'] + (int) $flexiPackageList['AgentsCustomServiceTaxAmount'] - (int) $flexiPackageList['ServiceTaxOnCustomDiscount']);
                    $packageServiceTaxCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($packageServiceTaxCostSum, $exchangerate);
                    $Discount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($flexiPackageList['CustomDiscount'], $exchangerate);
                    //echo "<pre>";print_r($TotalAmountPaid);exit;
                    $this->view->finalPackageCostWithMarkupnTax = round($packageBaseCurrencyNetPrice);

                    /* -----------------Change curr Code--------------------------- */
                } else {
                    // echo "shagdahsgdhjgsdjsa"; exit;
                    $this->view->finalPackageCostWithMarkupnTax = $finalPackageCostWith_extramarkupNdiscount;
                }
                $this->view->packageServiceTaxCost = $packageServiceTaxCost;
                $this->view->Discount = $Discount;
                $advanceBookingAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $finalPackageCostWith_extramarkupNdiscount);

                $advancePkgBookingArray['AdvBookingPercent'] = $arrPkg['AdvBookingPercent'];
                $advancePkgBookingArray['bookingAmount'] = $advanceBookingAmount;
                $this->view->advanceBookingDetailsArray = $advancePkgBookingArray;
                $this->view->arrPkgCost = $arrPkgCost;
                //}
                $Customer = new Zend_Session_Namespace('CustomerPkgEntries');
                if (isset($Customer->PkgCustomerMembersEntries[0]['paymentType']) && $Customer->PkgCustomerMembersEntries[0]['paymentType'] == 'advance') { // advanceBooking with combination of (Baseprce + markup+Tax)
                    $premiumAmount = $Customer->PkgCustomerMembersEntries[0]['paymentVal'];
                    $baseAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalCost']);
                    $tax = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['Tax']);
                    $finalDiscount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalDiscount']);
                    $finalMarkUp = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalMarkUp']);
                } else if (isset($Customer->PkgCustomerMembersEntries[0]['paymentType']) && $Customer->PkgCustomerMembersEntries[0]['paymentType'] == 'flex') { // advanceBooking with combination of (Baseprce + markup+Tax)
                    $premiumAmount = $Customer->PkgCustomerMembersEntries[0]['paymentVal'];
                    $baseAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalCost']);
                    $tax = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['Tax']);
                    $finalDiscount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalDiscount']);
                    $finalMarkUp = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $arrPkgCost['FinalMarkUp']);
                } else {
                    $premiumAmount = $finalPackageCostWith_extramarkupNdiscount; // combination of (Baseprce + markup+Tax)
                    $baseAmount = $arrPkgCost['FinalCost'];
                    $tax = $arrPkgCost['Tax'];
                    $finalDiscount = $arrPkgCost['FinalDiscount'];
                    $finalMarkUp = $arrPkgCost['FinalMarkUp'];
                }
                $markuparray['intAgentMarkUpAmount'] = 0;
                $markuparray['intAgencyMarkUpAmount'] = $finalMarkUp;
                $markuparray['intGTXMarkUpAmount'] = 0;
                $markuparray['intTotalAmount'] = $baseAmount;
                $markuparray['intTax'] = $tax;
                $markuparray['intTotalGTXTaxAmount'] = 0;
                $markuparray['GTXServiceTaxAmount'] = 0;
                $markuparray['AgentServiceTaxAmount'] = 0;
                $markuparray['AgentsCustomServiceTaxAmount'] = 0;
                $markuparray['Pax'] = $arrPkgCost['TotalPax'];
                $markuparray['SupplierSourceStr'] = $arrPkg['SupplierSysId'] . '/myinventory';
                $markuparray['TotalDiscount'] = $finalDiscount;
                $markuparray['CurrencyType'] = $arrPkgCost['CurrencyId']; //currency Id
                $markuparray['MarketPlaceId'] = 1; //b2b or b2c
                $markuparray['packageServiceTaxCost'] = $packageServiceTaxCost;
                $encryptMarkUpData = $this->getEnc(json_encode($markuparray));
                $this->view->guid = $this->GUID();
                $this->view->walletCode = $this->walletCode($arrPkg['AgentSysId'], $this->view->guid, round($premiumAmount - $TotalAmountPaid), $arrPkg['AgencySysId'], $intTPSysId, $intCustSysId, $encryptMarkUpData);
                $this->view->securecode = $this->secureCode($intCustSysId, $this->view->guid);

                $IsB2CSite = !empty($arrAgencyDetails['IsB2CSite']) ? $arrAgencyDetails['IsB2CSite'] : 0;
                $IsPaymentGateway = !empty($arrAgencyDetails['IsPaymentGateway']) ? $arrAgencyDetails['IsPaymentGateway'] : 0;
                if ($IsPaymentGateway == 1) {
                    $paymentModel = new Payment_Model_Payment();
                    $checkPyamentgatewayType = $paymentModel->checkPyamentgatewayType($arrPkg['AgencySysId']);
                    $this->view->paymentgatewayDetail = $checkPyamentgatewayType;
                    if (!empty($checkPyamentgatewayType) && $checkPyamentgatewayType[0]['PaymentOption'] == 2) {
                        $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/razor-pay/success";
                    } else if (!empty($checkPyamentgatewayType) && $checkPyamentgatewayType[0]['PaymentOption'] == 5) {
                        $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/converge-pay";
                    } else {
                        if (!empty($IsB2CSite) && !empty($IsPaymentGateway)) {
                            $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay-by-agency";
                            //                            if ($arrPkg['AgencySysId'] == 1757) {
                            //                                $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/atom-payment/customer-payment";
                            //                            } else {
                            //                                $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay-by-agency";
                            //                            }
                        } else {
                            if (!empty($IsPaymentGateway)) {
                                $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay-by-agency";
                            } else {
                                $this->view->strPayWithWalletUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options/customer-pay";
                            }
                        }
                    }
                }

                $this->view->strRechargeNowUrl = Catabatic_Helper::getSiteUrl() . "payment/payment-options";
                $this->view->strTrxType = 'P'; //TrxType
                $this->view->intPlanType = $arrPkg['PlanType'];
                $this->view->IsCardChrgToCustomer = $arrPkg['IsCardChrgToCustomer'];
                $this->view->encryptMarkUpData = $encryptMarkUpData;

                // for wallet use
                $fullBaseUrl = $this->view->baseUrl();
                $this->view->strReturnURL = $fullBaseUrl . "/package-booking/package-booking-view/pid/" . base64_encode($intTPSysId) . "/cid/" . base64_encode($intCustSysId) . "/code/" . $code;
                $this->view->strErrorURL = $fullBaseUrl . "/package-booking/package-booking-view/pid/" . base64_encode($intTPSysId) . "/cid/" . base64_encode($intCustSysId) . "/code/" . $code;

                /* Baljeet Code ends */
                $Customer = new Zend_Session_Namespace('CustomerPkgEntries');
                if ($strStatusType == '8' && empty($Customer->PkgCustomerMembersEntries)) {
                    $this->view->ErrorCode = 8;
                } else {
                    $this->view->ErrorCode = 5;
                }
            } else {
                $this->view->ErrorCode = 1;
            }
        } else {
            $this->view->ErrorCode = 1;
        }

        //echo "<pre>";print_r($arrAgencyDetails);exit;
        if (!empty($strTxnStatus)) {


            $path = SITE_FULL_URL . 'public/assets/images';

            $pathAgency = SITE_FULL_URL . 'public/upload/media/agency/' . $AgencySysId;
            if (isset($arrAgencyDetails['Logo']) && $arrAgencyDetails['Logo'] != '') {
                $AgencyLogo = $pathAgency . '/' . $arrAgencyDetails['Logo'];
            } else {
                $AgencyLogo = $path . '/default_company_logo.jpg';
            }


            $paramArray = $this->_crmcusttravelplan->GetTravelPlanByCustomer($intTPSysId);

            $paramArrayPackage = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageDetailsForEmailTemplate($intTPSysId, $paramArray[0], $paramArray[0]['EconomyMask']); //$paramArray['PackageArray']['EconomyMask'] package category
            //echo "<pre>";print_r($paramArrayPackage);exit;

            $getCurrencyType = isset($paramArray[0]['CurrencyType']) ? $paramArray[0]['CurrencyType'] : 1;
            $GSTSharedModeVal = isset($paramArray[0]['GSTSharedMode']) ? $paramArray[0]['GSTSharedMode'] : 1;
            $getCurrencySymbolArray = $this->_crmcusttravelplan->GetCurrencyByCurrencyType($getCurrencyType);
            $currencySymbol = isset($getCurrencySymbolArray['Symbol']) ? $getCurrencySymbolArray['Symbol'] : 'INR';
            $GSTF = (float) $arrPkgDetails[0]['XServiceTaxAmount'] + (float) $arrPkgDetails[0]['AgentServiceTaxAmount'] + (float) $arrPkgDetails[0]['AgentsCustomServiceTaxAmount'] - (float) $arrPkgDetails[0]['ServiceTaxOnCustomDiscount'];

            if ($exchangerate > 0) {
                $exchangerate = $exchangerate;
            } else {
                $exchangerate = 1;
            }
            $PickupTime = "";
            $PickUpLocation = "";
            $GST = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->convertRatetoBaseCurrency($GSTF, $exchangerate);
            if (isset($paramArray[0]['IsBusRoutePackage']) && $paramArray[0]['IsBusRoutePackage'] == 1) {
                $pickuplocationId = $paramArray[0]['pickupLocationSysId'];
                $getPickupLocationData = $this->_crmcusttravelplan->getPickupLocation($pickuplocationId);
                $PickUpLocation = $getPickupLocationData['pickupLocation'];
                $PickupTime = $getPickupLocationData['PickupTime']->format("H:i A");
            }
            $params['GSTSharedModeVal'] = $GSTSharedModeVal;
            $params['currencySymbol'] = $currencySymbol;
            $params['PickUpLocation'] = $PickUpLocation;
            $params['PickUpTime'] = $PickupTime;
            $params['AgencySysId'] = $arrAgencyDetails['AgencySysId'];
            $params['agency_logo'] = $AgencyLogo;
            $params['company_name'] = $arrAgencyDetails['DisplayName'];
            $params['booking_date'] = date("d/m/Y");
            $params['package_cost'] = $premiumAmount;
            $params['paid_amount'] = $TotalAmountPaid;
            $params['balance_amount'] = round($premiumAmount - $TotalAmountPaid);
            $params['GST'] = round($GST);
            $params['shared_url'] = "";
            $params['cust_name'] = trim(@$leadCustFirstName) . " " . trim(@$leadCustLastName);
            $params['cust_email'] = $leadCustEmailId;
            $params['about_package'] = "";
            $params['destination_city'] = $arrPkgDetails[0]['Cities'];
            $params['agent_firstname'] = '';
            $params['agent_primarycontact'] = $arrAgentDetails['Signature'];
            $params['file_path_location'] = $path;
            $params['sendersEmailId'] = $arrAgentDetails['EmailId'];
            $params['ContactNo1'] = $arrAgentDetails['ContactNo1'];
            $params['agencyDisplayName'] = $arrAgencyDetails['DisplayName'] ? $arrAgencyDetails['DisplayName'] : $arrAgencyDetails['Title'];
            $params['PrimaryEmail'] = $arrAgentDetails['PrimaryEmail'];
            $params['arrPackage'] = $paramArrayPackage;
            $params['customer_contact'] = $getCustomerDetail['Contacts'];
            $params['ProposalId'] = $intTPSysId;
            $params['strTxnId'] = $strTxnId;
            $params['AgentContactForSMS'] = array_unique(array($arrAgentDetails['ContactNo1'], $arrAgencyDetails['PrimaryContactNo']));
            $params['GUID'] = @$this->getRequest()->getParam('GUID');
            $params['TpSysId'] = @$this->getRequest()->getParam('TpSysId');
            // echo "<pre>";print_r($params);exit;
            $subject = 'Payment Transaction';
            //echo round($premiumAmount)."<br/>".$TotalAmountPaid;exit;
            $params['IsCancellationProtection'] = $paramArray[0]['IsCancellationProtection'];
            $params['CancellationProtectionPrice'] = $paramArray[0]['CancellationProtectionPrice'];
            $params['PlanType'] = $paramArray[0]['PlanType'];
            $FirstName = (isset($paramArray[0]['FirstName']) && $paramArray[0]['FirstName'] != '') ? $paramArray[0]['FirstName'] : '';
            $LastName = (isset($paramArray[0]['LastName']) && $paramArray[0]['LastName'] != '') ? $paramArray[0]['LastName'] : '';
            $params['customerName'] = $FirstName . ' ' . $LastName;
            $params['customer_contact'] = $paramArray[0]['Contacts'];

            if ($strTxnStatus == "success" && (round($premiumAmount) == round($TotalAmountPaid))) {
                // Update Proposal Status to booked...
                $StatusType = 17; //8 = Proposal Booked
                $objTrx = new Travel_Model_TblAgencyCustomerTrx();
                $strInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
                $data = array("InvoiceId" => $strInvoiceNumber);
                $objTrx->updateInvoiceNumber($data, $strTxnId);

                $params['last_payment'] = $arrPaymentHistory[0]['NetAmount'];
                $params['payment_type'] = "Full Payment";
                $params['paymentStatus'] = "full";
                $params['txn_status'] = "Successful";

                $emailStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('EmailTemplate')->sendTransactionStatusToCustomer($leadCustEmailId, $subject, $params);

                if ($paramArray[0]['Contacts'] != '') {
                    $arrSMSStatisticsType = array_keys(unserialize(ARR_SMS_STATISTICS_TYPE));
                    $params['arrSMSStatisticsType'] = $arrSMSStatisticsType[0];
                    $FirstName = (isset($paramArray[0]['FirstName']) && $paramArray[0]['FirstName'] != '') ? $paramArray[0]['FirstName'] : '';
                    $LastName = (isset($paramArray[0]['LastName']) && $paramArray[0]['LastName'] != '') ? $paramArray[0]['LastName'] : '';

                    $params['customerName'] = $FirstName . ' ' . $LastName;
                    $params['Contacts'] = $paramArray[0]['Contacts'];
                    $params['DestinationPlaces'] = $paramArray[0]['DestinationPlaces'];

                    $params['TPSysId'] = $paramArray[0]['TPSysId'];
                    // $smsStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->SendSmsToCustomerBooking($params);
                    // $smsStatusAGent = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->SendSmsToCustomerBookingAgent($params);
                    //$booknowurl = $smsStatus['shortlink'];
                }
            } else if ($strTxnStatus == "success" && ($premiumAmount > $TotalAmountPaid)) {
                $StatusType = 13; //13 = Advance booking

                $objTrx = new Travel_Model_TblAgencyCustomerTrx();
                $strInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
                $data = array("InvoiceId" => $strInvoiceNumber);
                $objTrx->updateInvoiceNumber($data, $strTxnId);
                //echo "<pre>";print_r($arrPaymentHistory[0]['NetAmount']);
                $params['last_payment'] = $arrPaymentHistory[0]['NetAmount'];
                $params['payment_type'] = "Partial Payment";
                $params['txn_status'] = "Successful";
                $params['paymentStatus'] = "part";
                $emailStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('EmailTemplate')->sendTransactionStatusToCustomer($leadCustEmailId, $subject, $params);

                if ($paramArray[0]['Contacts'] != '') {
                    $arrSMSStatisticsType = array_keys(unserialize(ARR_SMS_STATISTICS_TYPE));
                    $params['arrSMSStatisticsType'] = $arrSMSStatisticsType[0];
                    $FirstName = (isset($paramArray[0]['FirstName']) && $paramArray[0]['FirstName'] != '') ? $paramArray[0]['FirstName'] : '';
                    $LastName = (isset($paramArray[0]['LastName']) && $paramArray[0]['LastName'] != '') ? $paramArray[0]['LastName'] : '';
                    $params['customerName'] = trim($FirstName) . ' ' . trim($LastName);
                    $params['Contacts'] = $paramArray[0]['Contacts'];
                    $params['DestinationPlaces'] = trim($paramArray[0]['DestinationPlaces']);
                    $params['TPSysId'] = $paramArray[0]['TPSysId'];
                    // $smsStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->SendSmsToCustomerBooking($params);
                    // $smsStatusAGent = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom')->SendSmsToCustomerBookingAgent($params);
                    $booknowurl = $smsStatus['shortlink'];
                }
            } else if ($strTxnStatus == "failure") {

                if ($TotalAmountPaid > 0 && ($premiumAmount > $TotalAmountPaid)) {
                    $StatusType = 13; //13 = Advance booking
                } else {
                    $StatusType = 5;  //5 = Payment Pending
                }
                $params['last_payment'] = $arrPaymentHistory[0]['NetAmount'];
                $params['txn_status'] = "Failed";
                $params['paymentStatus'] = "Failed";
                $emailStatus = Zend_Controller_Action_HelperBroker::getStaticHelper('EmailTemplate')->sendTransactionStatusToCustomer($leadCustEmailId, $subject, $params);
            } else {
                $StatusType = 7; //7 = Booking Pending
            }
            //echo $StatusType;exit;
            $objPkgBooking->updateProposalStatus($StatusType, $intTPSysId, $travelPlanDetais[0]['MasterTPSysId']);
        }
    }

    public function genrateSecureCodeAction()
    {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
        $returnArray = array("Status" => false);
        if ($this->_request->isXmlHttpRequest()) {
            $post = $this->_request->getParams();
            $AgentSysId = trim($post["AgencyUserSysId"]);
            $AgencySysId = trim($post["AgencySysId"]);
            $guid = trim($post["guid"]);
            $amount = trim($post["amount"]);
            $TPSysId = trim($post["TPSysId"]);
            $CustomerSysId = trim($post["CustomerSysId"]);
            $encryptMarkUpData = trim($post["stringData"]);
            $ISTcs = trim($post["ISTcs"]);
            $IsPanVarified = trim($post["IsPanVarified"]);
            $TcsPanCard = trim($post["TcsPanCard"]);
            $TcsPanCardFivePerCentage = trim($post["TcsPanCardFivePerCentage"]);
            $TcsPanCardTwentyPerCentage = trim($post["TcsPanCardTwentyPerCentage"]);
            $ISTcsRelation = trim($post["ISTcsRelation"]);
            try {
                $encodedMarkUpValue = $this->getDec($encryptMarkUpData);
                $decodedMarkUpValue = Zend_Json::decode(trim($encodedMarkUpValue), Zend_Json::TYPE_ARRAY);
                $decodedMarkUpValue['ISTcs'] = $ISTcs;
                $decodedMarkUpValue['IsPanVarified'] = $IsPanVarified;
                $decodedMarkUpValue['TcsPanCard'] = $TcsPanCard;
                $decodedMarkUpValue['TcsPanCardFivePerCentage'] = $TcsPanCardFivePerCentage;
                $decodedMarkUpValue['TcsPanCardTwentyPerCentage'] = $TcsPanCardTwentyPerCentage;
                $decodedMarkUpValue['ISTcsRelation'] = $ISTcsRelation;
                $encryptMarkUpData1 = $this->getEnc(json_encode($decodedMarkUpValue));
                $walletCode = $this->walletCode($AgentSysId, $guid, $amount, $AgencySysId, $TPSysId, $CustomerSysId, $encryptMarkUpData1);
                $returnArray = array("Status" => true, "walletCode" => $walletCode, "StringData" => $encryptMarkUpData1);
            } catch (Zend_Exception $e) {
                $returnArray = array("Status" => false);
            }
        }
        echo json_encode($returnArray);
        exit;
    }

    public function indexAction()
    {
        echo 'test';
    }

    public function autosuggestAction()
    {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
        //       print_r($this->getRequest()->getParam("term"));
        //       exit;
        try {
            $arrResponse = array();
            if ($this->getRequest()->getParam("term") or $this->getRequest()->getParam("query")) {
                $term = $this->getRequest()->getParam("term") ? $this->getRequest()->getParam("term") : $this->getRequest()->getParam("query");
                $objHotel = new Travel_Model_TblBuyHotel();
                $condCity = "tbl.Title like '" . $term . "%'";
                $arrResponse = $objHotel->getBuyHotelCityAutoSuggest($condCity);
                // print_r($arrResponse);die;
            }
            echo json_encode($arrResponse);
            exit;
        } catch (Exception $e) {
            $response = array('success' => false, 'msg' => $e->getMessage());
            echo json_encode($response);
            exit;
        }
    }

    public function saveLeadPassengerDetailsAction()
    {
        $this->_helper->layout->disableLayout();
        if ($this->_request->isXmlHttpRequest()) {
            $post = $this->getRequest()->getParams();
            $arrCustomer = array();
            $arrCustomerMembers = array();
            $TblVisa = new Travel_Model_TblVisa();
            $objCurd = new Visa_Model_Visa();
            $objFlight = new Travel_Model_TblFlight();
            $intAgencySysId = $post['intAgencySysId'];
            $intCustomerSysId = $post['CustomerSysId'];
            $intTPSysId = $post['intTPSysId'];
            $paramArray = $this->_crmcusttravelplan->GetTravelPlanType($intTPSysId);
            $getCustomerTravelPlanPax = $objFlight->getCustomerTravelPlanPax($intTPSysId);
            $checkCustomerTravelPlanPax = array();
            foreach ($getCustomerTravelPlanPax as $paxKey => $paxValue) {
                $checkCustomerTravelPlanPax[$paxValue['VersionId']] = $paxValue;
            }
            //echo "<pre>";print_r($checkCustomerTravelPlanPax);die;
            $IsB2BProposal = (isset($paramArray['IsB2BProposal'])) ? (int) $paramArray['IsB2BProposal'] : 0;
            $CustomerAgencySysId = (isset($paramArray['CustomerAgencySysId'])) ? (int) $paramArray['CustomerAgencySysId'] : 0;
            if ($IsB2BProposal == 1) {
                $intAgencySysId = $CustomerAgencySysId;
            }
            $PlanType = (isset($paramArray['PlanType'])) ? (int) $paramArray['PlanType'] : 0;
            $relationSelf = 9;
            for ($i = 1; $i <= (int) $post['TotalPax']; $i++) {

                $paxType = isset($post['paxType-' . $i]) ? $post['paxType-' . $i] : 0;
                $relation = (isset($post['relation-' . $i])) ? $post['relation-' . $i] : 9;
                $MemberSysIdP = (isset($post['MemberSysId-' . $i])) ? $post['MemberSysId-' . $i] : 0;

                $firstName = trim($post['passenger-firstname-' . $i]);
                $lastName = trim($post['passenger-lastname-' . $i]);
                $salutation = $post['passenger-salutation-' . $i];

                $strDob = isset($post['passenger-dob-' . $i]) ? $post['passenger-dob-' . $i] : '';
                $arrDOB = explode("/", $strDob);
                if (count($arrDOB) > 0 && $strDob != '') {
                    $strDob = $arrDOB[2] . "-" . $arrDOB[1] . "-" . $arrDOB[0];
                } else {
                    $strDob = "";
                }


                $mobileNumber = $post['mobile_number'];
                $email_id = $post['email_id'];

                $passengerCity = (isset($post['passenger-city-' . $i])) ? $post['passenger-city-' . $i] : '';
                $passengerCountry = (isset($post['passenger-country-' . $i])) ? $post['passenger-country-' . $i] : '';
                $passengerState = (isset($post['passenger-state-' . $i])) ? explode('__', $post['passenger-state-' . $i]) : '';

                $passengerState = isset($passengerState[0]) ? $passengerState[0] : '';
                $passengerAddress = (isset($post['passenger-address-' . $i])) ? $post['passenger-address-' . $i] : '';
                $postalCode = isset($post['passenger-postal-code-' . $i]) ? $post['passenger-postal-code-' . $i] : '';
                $PanCard = isset($post['passenger-pan-card-' . $i]) ? trim($post['passenger-pan-card-' . $i]) : '';
                $GstNumber = isset($post['passenger-gst-number-' . $i]) ? trim($post['passenger-gst-number-' . $i]) : '';
                $passengerPassport = (isset($post['passenger-passport-' . $i])) ? $post['passenger-passport-' . $i] : '';
                $PassportIssueDateStr = isset($post['passenger-passport-issue-' . $i]) ? $post['passenger-passport-issue-' . $i] : '';
                $PasswordExpiryDateStr = (isset($post['passenger-passport-expiry-' . $i])) ? $post['passenger-passport-expiry-' . $i] : '';

                $PassportIssueDateArr = !empty($PassportIssueDateStr) ? explode("/", $PassportIssueDateStr) : array();
                if (!empty($PassportIssueDateArr)) {
                    $PassportIssueDate = $PassportIssueDateArr[2] . "-" . $PassportIssueDateArr[1] . "-" . $PassportIssueDateArr[0];
                } else {
                    $PassportIssueDate = "";
                }

                $PasswordExpiryDateArr = !empty($PasswordExpiryDateStr) ? explode("/", $PasswordExpiryDateStr) : array();
                if (!empty($PasswordExpiryDateArr)) {
                    $PasswordExpiryDate = $PasswordExpiryDateArr[2] . "-" . $PasswordExpiryDateArr[1] . "-" . $PasswordExpiryDateArr[0];
                } else {
                    $PasswordExpiryDate = " ";
                }

                if (!empty($post['mandatory'])) {
                    foreach ($post['mandatory'] as $mKey => $mVal) {
                        if ($mVal == 1) {
                            if (isset($post[$mKey]) && empty($post[$mKey])) {
                                $inputname = explode('-', $mKey);
                                $travnum = array_pop($inputname);
                                unset($inputname[0]);
                                $inputnameStr = implode(' ', $inputname);

                                $response = array('succes' => false, 'msg' => 'Please enter ' . $inputnameStr . ' for traveller ' . $travnum, 'index' => $mKey);
                                echo json_encode($response);
                                exit;
                            }
                        }
                    }
                }
                if ($i == 1 && $relation == 0 && $IsB2BProposal != 1) {
                    $objGest = new Travel_Model_Tbltbbcuser();
                    $relationSelf = $relation;
                    $seconday_email_id = isset($post['passenger-email_id-' . $i]) ? trim($post['passenger-email_id-' . $i]) : '';
                    $SecondaryPhone = isset($post['passenger-mobile-' . $i]) ? trim($post['passenger-mobile-' . $i]) : 0;
                    $arrCustomer = array(
                        'AgencySysId' => $intAgencySysId,
                        'CRMCustSysId' => 0,
                        'EmailId' => $email_id,
                        'Salutation' => $salutation,
                        'Relation' => 0,
                        'Logo' => '',
                        'IsfromSM' => '0',
                        'SMTypeId' => '0',
                        'SMId' => '',
                        'UserId' => '0',
                        'IsEmployee' => '0',
                        'ExitDate' => EMPTY_DATE,
                        'UserName' => '',
                        'FirstName' => $firstName,
                        'LastName' => $lastName,
                        'Designation' => '',
                        'Password' => '',
                        'RandStr' => '',
                        'IsPswExpire' => 0,
                        'OtherEmail' => '',
                        'SecondaryEmail' => $seconday_email_id,
                        'LastLoginTime' => EMPTY_DATE,
                        'IsLogInNow' => 0,
                        'CreatedByUserSysId' => $intAgencySysId,
                        'RandomCode' => '',
                        'Gender' => '',
                        'UserNickName' => '',
                        'UserPicPath' => '',
                        'ContactNo1' => '',
                        'ContactNo2' => '',
                        'HomePhone' => '',
                        'SecondaryPhone' => $SecondaryPhone,
                        'UserDetails' => '',
                        'paxType' => $paxType,
                        'SecondaryAddress' => '',
                        'Fax' => '',
                        'MacIp' => '',
                        'SpeakingLangSysId' => 0,
                        'Signature' => '',
                        'UpdateDate' => EMPTY_DATE,
                        'RegisterDate' => EMPTY_DATE,
                        'IsApproved' => 0,
                        'IsActive' => 1,
                        'IsMarkForDelete' => '0',
                        'LeadSourceSysId' => '',
                        'LeadStageSysId' => ''
                    );
                    if (!empty($strDob)) {
                        $arrCustomer['DOB'] = $strDob;
                    }
                    if (!empty($passengerAddress)) {
                        $arrCustomer['Address'] = $passengerAddress;
                    }
                    if (!empty($passengerCountry)) {
                        $arrCustomer['CountrySysId'] = $passengerCountry;
                    }
                    if (!empty($passengerState)) {
                        $arrCustomer['StateOrZoneSysId'] = $passengerState;
                    }
                    if (!empty($passengerCity)) {
                        $arrCustomer['CitySysId'] = $passengerCity;
                    }
                    if (!empty($passengerPassport)) {
                        $arrCustomer['PassportNo'] = $passengerPassport;
                    }
                    if (!empty($PasswordExpiryDate)) {
                        $arrCustomer['PassportExpiry'] = $PasswordExpiryDate;
                    }
                    if (!empty($PasswordExpiryDate)) {
                        $arrCustomer['PassportExpiryDate'] = $PasswordExpiryDate;
                    }
                    if (!empty($PassportIssueDate)) {
                        $arrCustomer['PassportIssue'] = $PassportIssueDate;
                    }
                    if (!empty($mobileNumber)) {
                        $arrCustomer['ContactNumber'] = $mobileNumber;
                    }
                    if (!empty($postalCode)) {
                        $arrCustomer['PinCode'] = $postalCode;
                    }
                    if (!empty($PanCard)) {
                        $arrCustomer['PanCard'] = $PanCard;
                    }
                    if (!empty($GstNumber)) {
                        $arrCustomer['GstNumber'] = $GstNumber;
                    }
                    $intCustomerSysId = $objGest->createAgencyCustomer($arrCustomer, $intAgencySysId);
                    $arrCustomerMembersTemp = array(
                        'AgencySysId' => $intAgencySysId,
                        'Title' => $salutation,
                        'Relation' => $relation,
                        'Logo' => '',
                        'IsfromSM' => '0',
                        'SMTypeId' => '0',
                        'SMId' => '',
                        'UserId' => '0',
                        'IsEmployee' => '0',
                        'ExitDate' => EMPTY_DATE,
                        'UserName' => '',
                        'FirstName' => $firstName,
                        'LastName' => $lastName,
                        'Designation' => '',
                        'Password' => '',
                        'RandStr' => '',
                        'IsPswExpire' => 0,
                        'OtherEmail' => '',
                        'SecondaryEmail' => '',
                        'LastLoginTime' => EMPTY_DATE,
                        'IsLogInNow' => 0,
                        'CreatedByUserSysId' => $intAgencySysId,
                        'RandomCode' => '',
                        'Gender' => '',
                        'UserNickName' => '',
                        'UserPicPath' => '',
                        'ContactNo1' => '',
                        'ContactNo2' => '',
                        'HomePhone' => '',
                        'SecondaryPhone' => '',
                        'UserDetails' => '',
                        'paxType' => $paxType,
                        'SecondaryAddress' => '',
                        'Fax' => '',
                        'MacIp' => '',
                        'SpeakingLangSysId' => 0,
                        'Signature' => '',
                        'UpdateDate' => EMPTY_DATE,
                        'RegisterDate' => EMPTY_DATE,
                        'IsApproved' => 0,
                        'IsActive' => 1,
                        'IsMarkForDelete' => '0',
                    );
                    $arrCustomerMembersTempFirstCustomer = $arrCustomerMembersTemp;
                } else {
                    $email_id = isset($post['passenger-email_id-' . $i]) ? trim($post['passenger-email_id-' . $i]) : '';
                    $mobile = isset($post['passenger-mobile-' . $i]) ? trim($post['passenger-mobile-' . $i]) : 0;
                    $countrycode = isset($post['passenger-countrycode-' . $i]) ? trim($post['passenger-countrycode-' . $i]) : 0;
                    $arrCustomerMembersTemp = array(
                        'AgencySysId' => $intAgencySysId,
                        'Title' => $salutation,
                        'Relation' => $relation,
                        'Logo' => '',
                        'IsfromSM' => '0',
                        'SMTypeId' => '0',
                        'SMId' => '',
                        'UserId' => '0',
                        'IsEmployee' => '0',
                        'ExitDate' => EMPTY_DATE,
                        'UserName' => '',
                        'FirstName' => $firstName,
                        'LastName' => $lastName,
                        'Designation' => '',
                        'Password' => '',
                        'RandStr' => '',
                        'IsPswExpire' => 0,
                        'OtherEmail' => '',
                        'SecondaryEmail' => '',
                        'LastLoginTime' => EMPTY_DATE,
                        'IsLogInNow' => 0,
                        'CreatedByUserSysId' => $intAgencySysId,
                        'RandomCode' => '',
                        'Gender' => '',
                        'UserNickName' => '',
                        'UserPicPath' => '',
                        'ContactNo1' => '',
                        'ContactNo2' => '',
                        'HomePhone' => '',
                        'SecondaryPhone' => '',
                        'UserDetails' => '',
                        'paxType' => $paxType,
                        'SecondaryAddress' => '',
                        'Fax' => '',
                        'MacIp' => '',
                        'SpeakingLangSysId' => 0,
                        'Signature' => '',
                        'UpdateDate' => EMPTY_DATE,
                        'RegisterDate' => EMPTY_DATE,
                        'IsApproved' => 0,
                        'IsActive' => 1,
                        'IsMarkForDelete' => '0',
                    );
                    if ($i == 1) {
                        $arrCustomerMembersTempFirstCustomer = $arrCustomerMembersTemp;
                    }
                    if (!empty($email_id)) {
                        $arrCustomerMembersTemp['EmailId'] = $email_id;
                    }
                    if (!empty($mobile)) {
                        $arrCustomerMembersTemp['Contacts'] = $mobile;
                    }
                    if (!empty($countrycode)) {
                        $arrCustomerMembersTemp['countrycode'] = str_replace('+', '', trim($countrycode));
                    }
                    if (!empty($strDob)) {
                        $arrCustomerMembersTemp['DOB'] = $strDob;
                    }
                    if (!empty($passengerAddress)) {
                        $arrCustomerMembersTemp['Address'] = $passengerAddress;
                    }
                    if (!empty($passengerCountry)) {
                        $arrCustomerMembersTemp['CountrySysId'] = $passengerCountry;
                    }
                    if (!empty($passengerState)) {
                        $arrCustomerMembersTemp['StateOrZoneSysId'] = $passengerState;
                    }
                    if (!empty($passengerCity)) {
                        $arrCustomerMembersTemp['CitySysId'] = $passengerCity;
                    }
                    if (!empty($passengerPassport)) {
                        $arrCustomerMembersTemp['PassportNo'] = $passengerPassport;
                    }
                    if (!empty($PasswordExpiryDate)) {
                        $arrCustomerMembersTemp['PassportExpiry'] = $PasswordExpiryDate;
                    }

                    if (!empty($PassportIssueDate)) {
                        $arrCustomerMembersTemp['PassportIssue'] = $PassportIssueDate;
                    }
                    if (!empty($postalCode)) {
                        $arrCustomerMembersTemp['PinCode'] = $postalCode;
                    }
                    if (!empty($PanCard)) {
                        $arrCustomerMembersTemp['PanCard'] = $PanCard;
                    }
                    if (!empty($GstNumber)) {
                        $arrCustomerMembersTemp['GstNumber'] = $GstNumber;
                    }
                    if (!empty($MemberSysIdP)) {
                        $arrCustomerMembersTemp['MemberSysId'] = $MemberSysIdP;
                    }
                    $arrCustomerMembers[] = $arrCustomerMembersTemp;
                }
            }
            $getDocument = array();
            if ($PlanType == 6) {
                $getDocument = $TblVisa->VisaInventoryVisaDocumentList($paramArray['TPId'], $paramArray['AgencySysId']);
            }
            $VersionId = 1;
            if (!empty($intCustomerSysId) && $IsB2BProposal != 1 && $relationSelf == 0) {
                $arrPaxData['TPSysId'] = $intTPSysId;
                $arrPaxData['VersionId'] = $VersionId;
                $arrPaxData['CustomerSysId'] = $intCustomerSysId;
                $arrPaxData['MemberSysId'] = 0;
                $arrPaxData['IsLeadPax'] = ($relationSelf == 0) ? 1 : 0;
                $arrPaxData['UpdateDate'] = date('Y-m-d H:i:s');
                $arrPaxData['IsApproved'] = '1';
                $arrPaxData['IsActive'] = '1';
                $arrPaxData['IsMarkForDelete'] = '0';

                /* Code From 23/12/2024 Start */
                $arrPaxData['Title'] = $arrCustomerMembersTempFirstCustomer['Title'];
                $arrPaxData['FirstName'] = $arrCustomerMembersTempFirstCustomer['FirstName'];
                $arrPaxData['LastName'] = $arrCustomerMembersTempFirstCustomer['LastName'];
                $arrPaxData['paxType'] = $arrCustomerMembersTempFirstCustomer['paxType'];
                /* Code From 23/12/2024 End */

                if (isset($checkCustomerTravelPlanPax[$VersionId]) && !empty($checkCustomerTravelPlanPax[$VersionId])) {
                    $paxSysId = $UpdateTPPaxSysId = (int) $checkCustomerTravelPlanPax[$VersionId]['TPPaxSysId'];
                    $objFlight->updateTravelPlanPax($arrPaxData, $UpdateTPPaxSysId);
                } else {
                    $paxSysId = $objFlight->insertTravelPlanPax($arrPaxData);
                    if ($PlanType == 6 && !empty($getDocument)) {
                        $visaFinalDocumentArray = [
                            'TPSysId' => (int) $intTPSysId,
                            'TPPaxSysId' => (int) $paxSysId,
                            'VersionId' => 0,
                            'ApplicationNo' => '',
                            'UploadedVisaPath' => '',
                            'Remark' => '',
                            'Status' => 108,
                            'InterviwDate' => '',
                            'UpdatedBy' => 0,
                            'CreatedDate' => date('Y-m-d'),
                            'UpdateDate' => date('Y-m-d'),
                            'IsActive' => 1,
                            'IsMarkForDelete' => 0,
                        ];
                        $objCurd->insertTable("TB_Agency_Customer_TravelPlan_Visa_Final_Document", $visaFinalDocumentArray);
                        foreach ($getDocument as $dockey => $docvalue) {
                            $visaDocumentArray = [
                                'TPSysId' => $intTPSysId,
                                'TPPaxSysId' => $paxSysId,
                                'DocId' => $docvalue['DocVisaSysId'],
                                'DocName' => $docvalue['Title'],
                                'Label' => $docvalue['Label'],
                                'FieldType' => $docvalue['FieldType'],
                                'Options' => $docvalue['Options'],
                                'DocImagePath' => '',
                                'Remark' => '',
                                'UpdatedBy' => 0,
                                'CreatedDate' => date('Y-m-d'),
                                'UpdateDate' => date('Y-m-d'),
                                'Status' => 0,
                                'IsActive' => 1,
                                'IsMarkForDelete' => 0,
                                'IsMandatory' => (int) $docvalue['IsMandatory']
                            ];

                            $objCurd->insertTable("TB_Agency_Customer_TravelPlan_Visa_Document", $visaDocumentArray);
                        }
                    }
                }
                $VersionId++;
            }

            $arrCustomerMembersIds = array();
            if (!empty($arrCustomerMembers)) {
                foreach ($arrCustomerMembers as $acMKey => $acMValue) {
                    $acMValueArray[0] = $acMValue;
                    $arrCustomerMembersIds = $objFlight->createAgencyCustomerMembers($acMValueArray, $intAgencySysId, $intCustomerSysId, $intTPSysId, $IsB2BProposal);
                    $memberSysId = (isset($arrCustomerMembersIds[0])) ? $arrCustomerMembersIds[0] : 0;

                    $arrPaxData['TPSysId'] = $intTPSysId;
                    $arrPaxData['VersionId'] = $VersionId;
                    $arrPaxData['CustomerSysId'] = $intCustomerSysId;
                    $arrPaxData['MemberSysId'] = $memberSysId;
                    $arrPaxData['IsLeadPax'] = ($VersionId == 1) ? 1 : 0;
                    $arrPaxData['UpdateDate'] = date('Y-m-d H:i:s');
                    $arrPaxData['IsApproved'] = '1';
                    $arrPaxData['IsActive'] = '1';
                    $arrPaxData['IsMarkForDelete'] = '0';
                    /* Code From 23/12/2024 Start */
                    $arrPaxData['Title'] = $acMValue['Title'];
                    $arrPaxData['FirstName'] = $acMValue['FirstName'];
                    $arrPaxData['LastName'] = $acMValue['LastName'];
                    $arrPaxData['paxType'] = $acMValue['paxType'];
                    /* Code From 23/12/2024 End */

                    if (empty($memberSysId)) {
                        $arrPaxData['CustomerSysId'] = 0;
                        $arrPaxData['MemberSysId'] = 0;
                    }
                    if (isset($checkCustomerTravelPlanPax[$VersionId]) && !empty($checkCustomerTravelPlanPax[$VersionId])) {
                        $paxSysId = $UpdateTPPaxSysId = (int) $checkCustomerTravelPlanPax[$VersionId]['TPPaxSysId'];
                        $objFlight->updateTravelPlanPax($arrPaxData, $UpdateTPPaxSysId);
                    } else {
                        $paxSysId = $objFlight->insertTravelPlanPax($arrPaxData);
                        if ($PlanType == 6 && !empty($getDocument)) {
                            $visaFinalDocumentArray = [
                                'TPSysId' => (int) $intTPSysId,
                                'TPPaxSysId' => (int) $paxSysId,
                                'VersionId' => 0,
                                'ApplicationNo' => '',
                                'UploadedVisaPath' => '',
                                'Remark' => '',
                                'Status' => 108,
                                'InterviwDate' => '',
                                'UpdatedBy' => 0,
                                'CreatedDate' => date('Y-m-d'),
                                'UpdateDate' => date('Y-m-d'),
                                'IsActive' => 1,
                                'IsMarkForDelete' => 0,
                            ];
                            $objCurd->insertTable("TB_Agency_Customer_TravelPlan_Visa_Final_Document", $visaFinalDocumentArray);
                            foreach ($getDocument as $dockey => $docvalue) {
                                $visaDocumentArray = [
                                    'TPSysId' => $intTPSysId,
                                    'TPPaxSysId' => $paxSysId,
                                    'DocId' => $docvalue['DocVisaSysId'],
                                    'DocName' => $docvalue['Title'],
                                    'Label' => $docvalue['Label'],
                                    'FieldType' => $docvalue['FieldType'],
                                    'Options' => $docvalue['Options'],
                                    'DocImagePath' => '',
                                    'Remark' => '',
                                    'UpdatedBy' => 0,
                                    'CreatedDate' => date('Y-m-d'),
                                    'UpdateDate' => date('Y-m-d'),
                                    'Status' => 0,
                                    'IsActive' => 1,
                                    'IsMarkForDelete' => 0,
                                    'IsMandatory' => (int) $docvalue['IsMandatory']
                                ];

                                $objCurd->insertTable("TB_Agency_Customer_TravelPlan_Visa_Document", $visaDocumentArray);
                            }
                        }
                    }
                    $VersionId++;
                }
            }

            //echo "<pre>";print_r($DiffrencePax); exit;

            $arrCustomerMembers[0]['paymentVal'] = $post['paymentVal'];
            $arrCustomerMembers[0]['paymentType'] = $post['paymentType'];
            $Customer = new Zend_Session_Namespace('CustomerPkgEntries');
            $Customer->PkgCustomerEntries = $arrCustomer;
            $Customer->PkgCustomerMembersEntries = $arrCustomerMembers;
            $Customer->intCustomerSysId = $intCustomerSysId;
            $pickupLocation = (isset($post['pickupLocation']) && !empty($post['pickupLocation'])) ? trim($post['pickupLocation']) : '';
            $PickupTime = (isset($post['PickupTime']) && !empty($post['PickupTime'])) ? trim($post['PickupTime']) : '';
            $MetaWords = (isset($post['MetaWords']) && !empty($post['MetaWords'])) ? trim($post['MetaWords']) : '';
            $DropLocation = (isset($post['DropLocation']) && !empty($post['DropLocation'])) ? trim($post['DropLocation']) : '';
            $DropTime = (isset($post['DropTime']) && !empty($post['DropTime'])) ? trim($post['DropTime']) : '';
            $Description = (isset($post['Description']) && !empty($post['Description'])) ? trim($post['Description']) : '';
            if ((int) $intTPSysId > 0 && $pickupLocation != '') {
                $data = array(
                    'pickupLocation' => $pickupLocation,
                    'PickupTime' => $PickupTime,
                    'MetaWords' => $MetaWords,
                    'DropLocation' => $DropLocation,
                    'DropTime' => $DropTime,
                    'Description' => $Description,
                );
                $where = "TPSysId = " . $intTPSysId;
                $this->_crmcusttravelplan->UpdateCustomerTravelPlan($data, $where);
            }
            $response = array('success' => true, 'intCustomerSysId' => base64_encode($intCustomerSysId));
            echo json_encode($response);
            exit;
        }
    }

    public function savePassengerDetails_bkpAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();

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

            $post = $this->_request->getParams();
            //echo "<pre>";print_r($post);exit;
            $arrCustomer = array();
            $arrCustomerMembers = array();

            $totalPassengers = $post['intTotalPax'];
            //$totalPassengers = ($IsLeadPax)?1:$totalPassengers;
            $intAgencySysId = $post['intAgencySysId'];
            $intCustomerSysId = $post['CustomerSysId'];
            $intTPSysId = $post['intTPSysId'];

            $objFlight = new Travel_Model_TblFlight();
            $objFlight->deleteTravelPlanPax($intTPSysId);

            for ($i = 1; $i <= 1; $i++) {

                $paxType = $post['paxType-' . $i];
                $relation = $post['relation-' . $i];

                $firstName = $post['passenger-firstname-' . $i];
                $lastName = $post['passenger-lastname-' . $i];
                $salutation = $post['passenger-salutation-' . $i];

                $strDob = $post['passenger-dob-' . $i];
                $arrDOB = explode("/", $strDob);
                if (!empty($arrDOB)) {
                    $strDob = $arrDOB[2] . "-" . $arrDOB[1] . "-" . $arrDOB[0];
                } else {
                    $strDob = "";
                }


                $mobileNumber = $post['mobile_number'];
                $email_id = $post['email_id'];

                $passengerCity = $post['passenger-city-' . $i];
                $passengerAddress = $post['passenger-address-' . $i];

                $passengerPassport = $post['passenger-passport-' . $i];
                $PasswordExpiryDateStr = $post['passenger-passport-expiry-' . $i];

                $PasswordExpiryDateArr = !empty($PasswordExpiryDateStr) ? explode("/", $PasswordExpiryDateStr) : array();
                if (!empty($PasswordExpiryDateArr)) {
                    $PasswordExpiryDate = $PasswordExpiryDateArr[2] . "-" . $PasswordExpiryDateArr[1] . "-" . $PasswordExpiryDateArr[0];
                } else {
                    $PasswordExpiryDate = "";
                }
                if (empty($mobileNumber)) {
                    $response = array('succes' => false, 'msg' => 'Please enter mobile number.', 'index' => 'mobile_number');
                    echo json_encode($response);
                    exit;
                }

                if (strlen($mobileNumber) < 10) {
                    $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($strDob)) {
                    $response = array('succes' => false, 'msg' => 'Please enter date of birth.', 'index' => 'passenger-dob-' . $i);
                    echo json_encode($response);
                    exit;
                }

                if (empty($post['passenger-city-1'])) {
                    $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-' . $i);
                //                    echo json_encode($response);
                //                    exit;
                //                }
                //                $arrCustomerMembers[] = array('AgencySysId' => $intAgencySysId, 'EmailId' => $email_id, 'Title' => $salutation, 'Gender' => $salutation,
                //                    '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' => $intAgencySysId,
                //                    'RandomCode' => '', 'UserNickName' => '', 'UserPicPath' => '', 'ContactNo1' => '', 'ContactNo2' => '',
                //                    'HomePhone' => '', 'SecondaryPhone' => '', 'UserDetails' => '', 'DOB' => $strDob, 'Address' => $passengerAddress, 'CitySysId' => $passengerCity, 'paxType' => $paxType,
                //                    'StateOrZoneSysId' => 0, 'CountrySysId' => 0, 'PinCode' => '', 'SecondaryAddress' => '', 'Fax' => '',
                //                    'MacIp' => '', 'SpeakingLangSysId' => 0, 'Signature' => '', 'UpdateDate' => EMPTY_DATE,
                //                    'RegisterDate' => EMPTY_DATE, 'IsApproved' => 0, 'IsActive' => 0, 'IsMarkForDelete' => '0');



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

                    $objGest = new Travel_Model_Tbltbbcuser();
                    $arrCustomer['ContactNumber'] = $mobileNumber;
                    $intCustomerSysId = $objGest->createAgencyCustomer($arrCustomer, $intAgencySysId);
                } else {
                    $arrCustomerMembers[] = array(
                        'AgencySysId' => $intAgencySysId,
                        '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' => '',
                        'PassportNo' => $passengerPassport,
                        'PasswordExpiryDate' => $PasswordExpiryDate,
                        'IsPswExpire' => 0,
                        'OtherEmail' => '',
                        'SecondaryEmail' => '',
                        'LastLoginTime' => EMPTY_DATE,
                        'IsLogInNow' => 0,
                        'CreatedByUserSysId' => $intAgencySysId,
                        'RandomCode' => '',
                        'Gender' => '',
                        'UserNickName' => '',
                        'UserPicPath' => '',
                        'ContactNo1' => '',
                        'ContactNo2' => '',
                        'HomePhone' => '',
                        'SecondaryPhone' => '',
                        'UserDetails' => '',
                        'DOB' => $strDob,
                        'Address' => $passengerAddress,
                        'CitySysId' => $passengerCity,
                        'paxType' => $paxType,
                        'StateOrZoneSysId' => 0,
                        'CountrySysId' => 0,
                        'PinCode' => '',
                        'SecondaryAddress' => '',
                        'Fax' => '',
                        'MacIp' => '',
                        'SpeakingLangSysId' => 0,
                        'Signature' => '',
                        'UpdateDate' => EMPTY_DATE,
                        'RegisterDate' => EMPTY_DATE,
                        'IsApproved' => 0,
                        'IsActive' => 1,
                        'IsMarkForDelete' => '0'
                    );
                }
            }



            if (!empty($intCustomerSysId)) {
                $VersionId = 1;
                $arrPaxData['TPSysId'] = $intTPSysId;
                $arrPaxData['VersionId'] = $VersionId;
                $arrPaxData['CustomerSysId'] = $intCustomerSysId;
                $arrPaxData['MemberSysId'] = 0;
                $arrPaxData['IsLeadPax'] = ($relation == 0) ? 1 : 0;
                $arrPaxData['UpdateDate'] = date('Y-m-d H:i:s');
                $arrPaxData['IsApproved'] = '1';
                $arrPaxData['IsActive'] = '1';
                $arrPaxData['IsMarkForDelete'] = '0';
                $objFlight->insertTravelPlanPax($arrPaxData);
                $VersionId++;
            }



            $arrCustomerMembersIds = array();
            if (!empty($arrCustomerMembers)) {
                $arrCustomerMembersIds = $objFlight->createAgencyCustomerMembers($arrCustomerMembers, $intAgencySysId, $intCustomerSysId, $intTPSysId);
            }




            if (!empty($arrCustomerMembersIds)) {
                $VersionId = 2;
                foreach ($arrCustomerMembersIds as $memberSysId) {
                    $arrPaxData['TPSysId'] = $intTPSysId;
                    $arrPaxData['VersionId'] = $VersionId;
                    $arrPaxData['CustomerSysId'] = $intCustomerSysId;
                    $arrPaxData['MemberSysId'] = $memberSysId;
                    $arrPaxData['IsLeadPax'] = ($relation > 0 && $VersionId == 2) ? 1 : 0;
                    $arrPaxData['UpdateDate'] = date('Y-m-d H:i:s');
                    $arrPaxData['IsApproved'] = '1';
                    $arrPaxData['IsActive'] = '1';
                    $arrPaxData['IsMarkForDelete'] = '0';
                    $objFlight->insertTravelPlanPax($arrPaxData);
                    $VersionId++;
                }
            }






            $arrCustomerMembers[0]['paymentVal'] = $post['paymentVal'];
            $arrCustomerMembers[0]['paymentType'] = $post['paymentType'];
            $Customer = new Zend_Session_Namespace('CustomerPkgEntries');
            $Customer->PkgCustomerEntries = $arrCustomer;
            $Customer->PkgCustomerMembersEntries = $arrCustomerMembers;
            $Customer->intCustomerSysId = $intCustomerSysId;

            $response = array('success' => true, 'intCustomerSysId' => base64_encode($intCustomerSysId));
            echo json_encode($response);
            exit;
        }
    }

    public function checkCustomerDetailsExistsAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();

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

            $strSearchString = $this->getRequest()->getParam('strSearchString');

            $objFlight = new Travel_Model_TblFlight();
            $result = $objFlight->getAgencyCustomer($strSearchString);
            if (!empty($result)) {
                $arrCustData['EmailId'] = trim($result['EmailId']);
                $arrCustData['Contacts'] = trim($result['Contacts']);
                $arrDOB = (array) $result['DOB'];

                $arrDOB = explode(" ", $arrDOB['date']);
                $arrDOB = explode("-", $arrDOB[0]);

                $DOB = $arrDOB[2] . "/" . $arrDOB[1] . "/" . $arrDOB[0];
                $arrCustData['DOB'] = trim($DOB);
                $arrCustData['FirstName'] = trim($result['FirstName']);
                $arrCustData['LastName'] = trim($result['LastName']);
                $arrCustData['Gender'] = trim($result['Gender']);
                $arrCustData['CitySysId'] = trim($result['CitySysId']);
                $arrCustData['Address'] = trim($result['Address']);

                $response = array('success' => true, 'arrCustData' => $arrCustData);
            } else {
                $response = array('success' => false, 'arrCustData' => '');
            }

            echo json_encode($response);
            exit;
        }
    }

    public function packageBookingVoucherAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $intTPSysId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('pid'))));
        $intCustSysId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('cid'))));

        $objPkg = new Travel_Model_TblPackage();
        $objPkgBooking = new Travel_Model_TblPackageBooking();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $objCust = new Travel_Model_CRM_CustomerTravelPlan();

        //Customer Details
        $getCustomerDetail = $crmcustomerObj->GetAgencyMmbrById($intCustSysId);
        $this->view->getCustomerDetail = $getCustomerDetail;

        $getBookingId = $objPkgBooking->getPackageBookingId($intTPSysId);
        //echo "<pre>"; print_r($getBookingId);exit;

        $this->view->getBookingId = $getBookingId;

        $getMembersDetail = $objPkgBooking->GetCustomerMembersById($getCustomerDetail['AgencySysId'], $intCustSysId, $intTPSysId);
        //echo "<pre>";print_r($getMembersDetail);exit;
        $this->view->getMembersDetail = $getMembersDetail;

        if (!empty($intTPSysId)) {

            //Number of Passengers
            $flexiPackageList = $objPkg->getCustPackageList($intTPSysId);
            //print_r($flexiPackageList);
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
            $agencyObj = new Travel_Model_TblAgency();
            $getAgentDetail = $agencyObj->getAgencyUserDataById($flexiPackageList['AgentSysId']);
            //echo "<pre>".print_r($getAgentDetail);die;
            $flexiPackageList['agencyDetails'] = $getAgencyDetail;
            $flexiPackageList['agentDetails'] = $getAgentDetail;
            /* $inclusionMastArray=$objPkg->getPackageInclusionList();
              $inclusionArr = $objPkg->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
              $flexiPackageList['inclusionDetails']=$inclusionArr; */
            //echo "<pre>";print_r($flexiPackageList['inclusionDetails']);die;
            $this->view->flexiPackageList = $flexiPackageList;
            $flexiPackageItenList = $objPkg->getCustPackageItenList($intTPSysId);
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            $ArrFromRoomInfoJson = json_decode($flexiPackageList['RoomInfoJson']);
            $arrPassanger = array();
            foreach ($ArrFromRoomInfoJson as $key => $arr) {
                $arrPassanger['Room'] = $key;
                @$arrPassanger['Adult'] += $arr->Adult;
                @$arrPassanger['Infant'] += $arr->Infant;
                if (@$arr->bedtype == 'withbed') {
                    $arrPassanger['ChildWithBed'] += $arr->Child;
                }
                if (@$arr->bedtype == 'withoutbed') {
                    @$arrPassanger['ChildWithOutBed'] += $arr->Child;
                }
            }



            $arrPassanger['TotalPass'] = $arrPassanger['Adult'] + @$arrPassanger['Infant'] + @$arrPassanger['ChildWithBed'] + @$arrPassanger['ChildWithOutBed'];
            $this->view->arrPassanger = $arrPassanger;

            //Get Package Places (Destinations)
            $flexiPackagePlaces = $objPkgBooking->getCustomerPackagePlacesList($intTPSysId);

            $GetTravelPlanPACKINCLUSION = $objPkgBooking->GetTravelPlanPACKINCLUSION();
            $this->view->GetTravelPlanPACKINCLUSION = $GetTravelPlanPACKINCLUSION;
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;

            //Get Package Flight
            //  $flexiPackageFlight = $objPkg->getCustPackageAir($intTPSysId);
            //$this->view->flexiPackageFlight = $flexiPackageFlight;
            //            print_r($flexiPackageFlight); die;
            //Get Package Activity
            // $flexiPackageActivityList = $objPkgBooking->getCustPackageActivityList($intTPSysId);
            // $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            //Get Package Sightseen
            $flexiPackageSightseenList = $objPkg->getCustPackageSightseenList($intTPSysId);

            //            echo "<pre>";
            //            print_r($flexiPackageSightseenList);
            //            exit;

            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
            //Get Package Hotels
            $flexiPackageHotelsList = $objPkgBooking->getCustPackageHotelsList($intTPSysId);
            $termconditionData = $objPkgBooking->GetTravelPlanTNC($intTPSysId);
            $this->view->termconditionData = $termconditionData;
            $newflexiPackageHotelsArr = array();
            foreach ($flexiPackageHotelsList as $key => $newflexiPackageHotel) {

                $newflexiPackageHotelsArr[$newflexiPackageHotel['Title']] = $newflexiPackageHotel;
                //                }
            }
            $this->view->flexiPackageHotelsList = $newflexiPackageHotelsArr;
        }
    }

    public function packageBookingInvoiceAction()
    {
        $this->_helper->layout->disableLayout();
        $this->view->pid = $travelPlanId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('pid'))));
        $this->view->cid = $cid = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('cid'))));

        //$gsttype = 1;
        $trxid = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('trxid'))));
        $this->view->viewType = $viewType = base64_decode($this->getRequest()->getParam('viewtype'));
        $this->view->ispi = $ispi = $this->getRequest()->getParam('ispi');
        $CRMCustSysId = $cid;
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $getCustomerDetail = $crmcustomerObj->GetAgencyMmbrById($CRMCustSysId);

        $AgencySysId = !empty($getCustomerDetail['AgencySysId']) ? $getCustomerDetail['AgencySysId'] : '';
        $this->view->agencyInvoiceNumber = $agencyInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
        if (count($getCustomerDetail) > 0 && !empty($getCustomerDetail['AgencySysId'])) {
            $packageObj = new Travel_Model_TblPackage();
            $customerTravelPlanObj = new Travel_Model_CRM_CustomerTravelPlan();
            $AgencySysId = $getCustomerDetail['AgencySysId'];
            $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);

            //echo "<pre>";print_r($getAgencyDetail);echo "</pre>";

            $this->view->CityTitle = $getAgencyDetail['CityTitle'];

            $packageDetails = $customerTravelPlanObj->GetTravelPlanByCustomer($travelPlanId);
            //echo "<pre>";print_r($packageDetails);exit;
            $packageDetails[0]['Price'] = $packageDetails[0]['Price'] + $packageDetails[0]['TotalCostGen'] - $packageDetails[0]['ServiceProiderFee'];
            $packageDetails[0]['NetPrice'] = $packageDetails[0]['NetPrice'] + $packageDetails[0]['TotalCostGen'];
            //            echo "<pre>";print_r($packageDetails);exit;
            $this->view->gsttype = $gsttype = !empty($this->getRequest()->getParam('gsttype')) ? $this->getRequest()->getParam('gsttype') : $packageDetails[0]['GSTSharedMode'];
            $this->view->SACCode = $SACCode = $packageDetails[0]['SACCode'];
            $StartDateArr = (array) $packageDetails[0]['StartDate'];
            $StartDateArr = explode(" ", $StartDateArr['date']);
            //echo "<pre>";print_r($StartDateArr);

            $this->view->StartDate = date('d/m/Y', strtotime($StartDateArr[0]));
            $this->view->Cities = $packageDetails[0]['Cities'];
            //StartDate




            $TripDate = date("Y-m-d", strtotime($StartDateArr[0]));
            $objCust = new Travel_Model_CRM_CustomerTravelPlan();
            $marketPlaceRateArr = $objCust->getCustPackRate($travelPlanId, $TripDate);
            //echo "<pre>";print_r($marketPlaceRateArr);

            $taxType = trim($marketPlaceRateArr[0]['Tax']);
            $ExcludedPercent = !empty(trim($marketPlaceRateArr[0]['ExcludedPercent'])) ? trim($marketPlaceRateArr[0]['ExcludedPercent']) : 5;

            $packageDetails['Title'] = $packageDetails[0]['Title'];

            $price = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($travelPlanId, $packageDetails[0]['RoomInfoJson'], $getAgencyDetail, $marketPlaceRateArr[0]);
            //            $price = $customerTravelPlanObj->GetAgencyCustomerTravelPlanCost($travelPlanId, $packageDetails[0]['RoomInfoJson']);
            //echo "<pre>";print_r($price);exit;


            $adultPax = 0;
            $childPax = 0;
            $departuredate = '';
            if (!empty($price)) {
                $travellerDetail = json_decode($packageDetails[0]['RoomInfoJson']);
                foreach ($travellerDetail as $res) {
                    $adultPax += $res->Adult;
                    $childPax += $res->Child;
                    $departuredate = $res->departuredate;
                }
            }
            $packageDetails['adultPax'] = $adultPax;
            $packageDetails['childPax'] = $childPax;

            $address = $crmcustomerObj->GetNameOfContStateCity($getCustomerDetail['CountrySysId'], $getCustomerDetail['StateOrZoneSysId'], $getCustomerDetail['CitySysId']);

            $this->view->custState = $custState = strtolower(trim($address['StateName']));
            $this->view->custStateGSTNo = $custStateGSTNo = strtolower(trim($address['GSTNo']));

            $agencyAddress = $crmcustomerObj->GetNameOfContStateCity($getAgencyDetail['CountrySysId'], $getAgencyDetail['StateOrZoneSysId'], $getAgencyDetail['CitySysId']);
            $this->view->agecyState = $agecyState = strtolower(trim($agencyAddress['StateName']));
            $this->view->agecyStateGSTNo = $agecyStateStateGSTNo = strtolower(trim($agencyAddress['GSTNo']));
            $CustomerAddress = $getCustomerDetail['Address'] ? $getCustomerDetail['Address'] . "," : '';

            $objTrx = new Travel_Model_TblAgencyCustomerTrx();
            $arrPaymentHistory = $objTrx->getTrasactionProposalByTPSysId($travelPlanId, $trxid);
            //echo "<pre>";print_r($arrPaymentHistory);exit;

            if ($taxType == "Included") {
                $NetPrice = $arrPaymentHistory[0]['NetAmount'];
                $BasePrice = $NetPrice / ((100 + $ExcludedPercent) / 100);
            } else {
                $BasePrice = $arrPaymentHistory[0]['NetAmount'];
                $NetPrice = ($BasePrice * $ExcludedPercent) / 100 + $BasePrice;
            }

            $BasePrice = $arrPaymentHistory[0]['NetAmount'];

            $packageDetails['InvoiceId'] = $arrPaymentHistory[0]['InvoiceId'];

            $arrInvoiceDate = (array) $arrPaymentHistory[0]['TrxDate'];
            $arrInvoiceDate = explode(" ", $arrInvoiceDate['date']);
            $InvoiceDate = $arrInvoiceDate[0];

            $packageDetails['InvoiceDate'] = $InvoiceDate;
            $GSTSharedMode = $packageDetails[0]['GSTSharedMode'];

            if (!empty($gsttype) && $gsttype != 3) {
                $this->view->IS_GST_APPLICABLE = $IS_GST_APPLICABLE = true;
            } else {
                $this->view->IS_GST_APPLICABLE = $IS_GST_APPLICABLE = $packageDetails[0]['GSTSharedMode'] != 3 ? true : false;
            }



            if (!$IS_GST_APPLICABLE) {
                $ExcludedPercent = 0;
            } else if ($gsttype == 1) {
                $ExcludedPercent = 5;
            } else if ($gsttype == 2) {
                $ExcludedPercent = 18;
            }



            $packageDetails['BaseCost'] = $BasePrice;

            $GSTApplicableOn = $gsttype;
            $packageCost = $packageDetails[0]['Price'] + $packageDetails[0]['AgencyMarkUp'];
            $AgencyMarkUp = $packageDetails[0]['AgencyMarkUp'];
            $AgencyExtraMarkUp = $packageDetails[0]['MarkUp'];
            $AgencyDiscount = $packageDetails[0]['CustomDiscount'];
            $intProductType = 9;
            $intProductGeoType = 1; // 1 For Domestic, 2 For International


            $arrInputData = array(
                "GSTApplicableOn" => $GSTApplicableOn,
                "intProductType" => $intProductType,
                "intProductGeoType" => $intProductGeoType,
                "Cost" => $packageCost,
                "AgencyMarkUp" => $AgencyMarkUp,
                "AgencyExtraMarkUp" => $AgencyExtraMarkUp,
                "AgencyDiscount" => $AgencyDiscount
            );
            //echo "<pre>";print_r($arrInputData);exit;

            $arrGSTCalculations = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->calculateGST($arrInputData);

            // echo "<pre>";print_r($arrGSTCalculations);echo "</pre>";exit;


            $arrReverseInputData = array(
                "GSTApplicableOn" => $GSTApplicableOn,
                "intProductType" => $intProductType,
                "intProductGeoType" => $intProductGeoType,
                "CostWithGST" => $packageDetails[0]['NetPrice'],
                "GSTAmount" => $arrGSTCalculations['GSTAmount'],
                "AgencyMarkUp" => $AgencyMarkUp,
                "AgencyExtraMarkUp" => $AgencyExtraMarkUp,
                "AgencyDiscount" => $AgencyDiscount
            );

            $arrGSTCalculations = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->calculateReverseGST($arrReverseInputData);

            //echo "<pre>";print_r($arrGSTCalculations);echo "</pre>";
            //echo "<pre>";print_r($packageDetails);echo "</pre>";//exit;

            $ExcludedPercent = $arrGSTCalculations['TaxRate'];

            $packageDetails['NETTOTAL'] = $arrGSTCalculations['MyCost'] + $arrGSTCalculations['AgencyExtraMarkUp'];
            $packageDetails['Discount'] = $packageDetails[0]['CustomDiscount'];
            $packageDetails['TaxableCost'] = $packageDetails['NETTOTAL'] - $packageDetails['Discount'];

            $IGST = false;
            if ($agecyState != $custState) {
                $IGST = true;
                $packageDetails['IGST'] = $arrGSTCalculations['GSTAmount'];
                $packageDetails['IGSTPERCENT'] = $ExcludedPercent;
                $packageDetails['TOTALTAX'] = $arrGSTCalculations['GSTAmount'];
            } else {
                $IGST = false;
                $ExcludedPercent = $ExcludedPercent / 2;
                $packageDetails['SGSTPERCENT'] = $ExcludedPercent;
                $packageDetails['CGSTPERCENT'] = $ExcludedPercent;
                $packageDetails['SGST'] = $arrGSTCalculations['GSTAmount'] / 2;
                $packageDetails['CGST'] = $arrGSTCalculations['GSTAmount'] / 2;
                $packageDetails['TOTALTAX'] = $arrGSTCalculations['GSTAmount'];
            }
            $packageDetails['ISIGST'] = $IGST;
            $packageDetails['NETTOTALWITHOUTTAX'] = $arrGSTCalculations['AmountWithGST'] - $arrGSTCalculations['GSTAmount'];
            $packageDetails['NETTOTALWITHTAX'] = $arrGSTCalculations['AmountWithGST'];

            $state = '';
            $country = '';
            $agencyState = '';
            $agencyCountry = '';
            if (isset($address['StateName']) && !empty($address['StateName'])) {
                $state = $address['StateName'] ? " ," . $address['StateName'] : '';
            }
            if (isset($address['countryName']) && !empty($address['countryName'])) {
                $country = $address['countryName'] ? "(" . $address['countryName'] . ")" : '';
            }
            $getCustomerDetail['fullAddress'] = $address['CityName'] . $state . $country;
            if (isset($agencyAddress['StateName']) && !empty($agencyAddress['StateName'])) {
                $agencyState = $agencyAddress['StateName'] ? " ," . $agencyAddress['StateName'] : '';
            }
            if (isset($agencyAddress['countryName']) && !empty($agencyAddress['countryName'])) {
                $agencyCountry = $agencyAddress['countryName'] ? "(" . $agencyAddress['countryName'] . ")" : '';
            }
            $getCustomerDetail['fullAddress'] = $CustomerAddress . $address['CityName'] . $state . $country;
            $getCustomerDetail['FullName'] = $getCustomerDetail['FirstName'] . $getCustomerDetail['LastName'];
            $getAgencyDetail['fullAddress'] = $getAgencyDetail['CompanyAddress'] . "<br/>" . $getAgencyDetail['CityTitle'] . " " . trim($getAgencyDetail['Pincode']) . ", " . $getAgencyDetail['CountryTitle'];

            //echo "<pre>";print_r($packageDetails);exit;
            //echo "<pre>";print_r($arrGSTCalculations);
            $this->view->getCustomerDetail = $getCustomerDetail;
            $this->view->packageDetails = $packageDetails;
            $this->view->agencyDetails = $getAgencyDetail;
            //$this->view->serviceTaxrate=$curl_response['Percentage']?$curl_response['Percentage']:0;
            $this->view->serviceTaxrate = $price[0]['ExcludedPercent'] ? $price[0]['ExcludedPercent'] : 0;
            $isShareWithFlight = $isShareWithVisa = false;
            $flightArray = array();
            //&& ($packageDetails[0]['ShareCombinedFlightPricing'] == 0 || ($packageDetails[0]['EconomyMask'] == 8 || $packageDetails[0]['EconomyMask'] == 6))) {
            if ($packageDetails[0]['isShareWithFlight'] == 1) {
                $flightDetails = $customerTravelPlanObj->getTcsAmount($travelPlanId, 1);
                if (!empty($flightDetails)) {
                    $isShareWithFlight = true;
                }
            }
            //echo "<pre>";print_r($packageDetails);
            $getAdvancedBalance = $customerTravelPlanObj->getAdvancedBalance($travelPlanId);
            $TotalAmountPaid = isset($getAdvancedBalance[0]['TotalAmountPaid']) ? $getAdvancedBalance[0]['TotalAmountPaid'] : 0;
            $customhelper = Zend_Controller_Action_HelperBroker::getStaticHelper('Custom');
            $getPlanTypeArray = $customhelper->getPlanTypeName();
            $planName = strtolower($getPlanTypeArray[$packageDetails[0]['PlanType']]);
            $totalcost_wom_correction = $totalcost_markup_correction = 0;

            $totalcost_wom = isset($flightDetails['Cost']) ? (float) $flightDetails['Cost'] : 0;
            $total_markup = isset($flightDetails['Markup']) ? (float) $flightDetails['Markup'] : 0;
            //if ($packageDetails[0]['isShareWithFlight'] == 1 && ($packageDetails[0]['ShareCombinedFlightPricing'] == 0 || ($packageDetails[0]['EconomyMask'] == 8 || $packageDetails[0]['EconomyMask'] == 6))) {
            if ($packageDetails[0]['isShareWithFlight'] == 1) {
                $totalcost_wom_correction = $totalcost_wom;
                $totalcost_markup_correction = $total_markup;
            }
            $getTCSAmount = $customerTravelPlanObj->getTcsAmount($travelPlanId, 21);
            //echo "<pre>";print_r($getTCSAmount);exit;
            $getPkgAmount = $customerTravelPlanObj->getTcsAmount($travelPlanId, 5);
            $getVisaAmount = $customerTravelPlanObj->getTcsAmountWithTaxType($travelPlanId, 6);
            $othercost = 0;
            $visacost = isset($getVisaAmount['Cost']) ? (float) $getVisaAmount['Cost'] : 0;
            $visaMarkup = isset($getVisaAmount['Markup']) ? (float) $getVisaAmount['Markup'] : 0;
            if ($packageDetails[0]['EconomyMask'] != 8) {
                $GetAllServiceSelected = $this->_crmcusttravelplan->GetCustomerTravelPlanOtherServicesDisplay($travelPlanId, 1);
                foreach ($GetAllServiceSelected as $otherCostVal) {
                    if ($otherCostVal['RateType'] == 1) {
                        $othercost = $othercost + (($otherCostVal['AdultCost'] * $otherCostVal['TotalAdult']) + ($otherCostVal['ChildCost'] * $otherCostVal['TotalChild']));
                    } else {
                        $othercost = $othercost + (($otherCostVal['Cost'] * $otherCostVal['TotalItem']));
                    }
                }
            }
            $totalCost = isset($getPkgAmount['Cost']) ? $getPkgAmount['Cost'] + $othercost : 0;
            $totalMarkup = isset($getPkgAmount['Markup']) ? $getPkgAmount['Markup'] : 0;
            $misItemsFlightName = "";
            if ($isShareWithFlight == true) {
                $misItemsFlightName = "Flight";
            }
            //            echo "<pre>";print_r($getVisaAmount);
            if (isset($getVisaAmount['TaxType']) && $getVisaAmount['TaxType'] == 2) {
                $isShareWithVisa = true;
                $total_markup_visa = $visaMarkup;
                $totalcost_wom_visa = $visacost;
                $misItemsVisaName = "Visa";
            } else {
                $totalCost = $totalCost + $visacost;
                $totalMarkup = $totalMarkup + $visaMarkup;
            }

            $BookingConversionRate = (isset($packageDetails[0]['BookingConversionRate']) && !empty($packageDetails[0]['BookingConversionRate'])) ? (float) $packageDetails[0]['BookingConversionRate'] : 1;
            $invoiceData = array(
                'ProposalID' => $packageDetails[0]['TPSysId'] . "/V" . $packageDetails[0]['VersionId'],
                'TPSysId' => $packageDetails[0]['TPSysId'],
                'MasterTPSysId' => $packageDetails[0]['MasterTPSysId'],
                'GSTSharedMode' => $packageDetails[0]['GSTSharedMode'],
                'AgentSysId' => $packageDetails[0]['AgentSysId'],
                'CustomerSysId' => $packageDetails[0]['CustomerSysId'],
                'SACCode' => $packageDetails[0]['SACCode'],
                'Title' => $packageDetails['Title'],
                'InvoiceDate' => $packageDetails['InvoiceDate'],
                'Price' => round(($totalCost * $BookingConversionRate), 2),
                'DiscountVal' => round(((float) $packageDetails[0]['DiscountVal'] + (float) $packageDetails[0]['CustomDiscount']) * $BookingConversionRate, 2),
                'MarkUp' => round(($packageDetails[0]['MarkUp'] * $BookingConversionRate), 2),
                'AgencyMarkUp' => round(($packageDetails[0]['AgencyMarkUp'] - $totalcost_markup_correction) * $BookingConversionRate, 2),
                'GTXMarkup' => round(($packageDetails[0]['GTXMarkup'] * $BookingConversionRate), 2),
                'TotalMarkUpApply' => round(($totalMarkup * $BookingConversionRate), 2),
                'TotalAdvancedBalance' => round(($TotalAmountPaid), 2),
                'TCSTitle' => isset($getTCSAmount['ServiceTitle']) ? $getTCSAmount['ServiceTitle'] : 'TCS',
                'TCSTax' => isset($getTCSAmount['Tax']) ? round(($getTCSAmount['Tax'] * $BookingConversionRate), 2) : 0,
                'TCSTYPE' => isset($getTCSAmount['GSTTYPE']) ? $getTCSAmount['GSTTYPE'] : 0,
                'BaseCost' => $packageDetails['BaseCost'],
                'NETTOTAL' => round(($packageDetails['NETTOTAL'] * $BookingConversionRate), 2),
                'adultPax' => $packageDetails['adultPax'],
                'childPax' => $packageDetails['childPax'],
                'description' => $packageDetails['Title'] . ". Adult:-" . $packageDetails['adultPax'] . " Child:-" . $packageDetails['childPax'] . " Departure Date:-" . $departuredate,
                'departuredate' => $departuredate,
                'InvoiceType' => isset($planName) ? $planName : 'package',
                'CurrencyType' => $packageDetails[0]['TrxCurrency'],
                'isShareWithFlight' => $isShareWithFlight,
                'misItemsFlightName' => $misItemsFlightName,
                'Items_SAC_Code2' => '440063',
                'description2' => $misItemsFlightName,
                'rates2' => round(($totalcost_wom * $BookingConversionRate), 2),
                'markup2' => round(($total_markup * $BookingConversionRate), 2),
                'markup_type2' => 1,
                'servicefeetotal2' => 2,
                'GSTPercentage2' => 18,
                'isShareWithVisa' => $isShareWithVisa,
                'misItemsVisaName' => $misItemsVisaName,
                'Items_SAC_Code3' => '440063',
                'description3' => $misItemsVisaName,
                'rates3' => round(($totalcost_wom_visa * $BookingConversionRate), 2),
                'markup3' => round(($total_markup_visa * $BookingConversionRate), 2),
                'markup_type3' => 1,
                'servicefeetotal3' => 2,
                'GSTPercentage3' => 18,
                'ispi' => (isset($ispi)) ? (int) $ispi : 0, //for performa invoice
            );
            //            echo "<pre>";print_r($invoiceData); exit;
            $sessionInvoiceData = new Zend_Session_Namespace('sessionInvoiceData');
            $sessionInvoiceData->params = $invoiceData;
            $this->_redirect('finance/miscellaneous/newinvoice');
        }
    }

    public function savePackageBookingInvoiceAction()
    {

        ini_set('display_errors', 1); //for temp use only
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        if ($this->getRequest()->isPost()) {
            $request = Zend_Controller_Front::getInstance()->getRequest();
            $post = $request->getPost();
            $CreateDate = date('Y-m-d H:i:s');
            $this->view->pid = $travelPlanId = $post['pid'];
            $this->view->cid = $cid = $post['cid'];

            //$gsttype = 1;
            $trxid = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('trxid'))));
            $this->view->viewType = $viewType = base64_decode($this->getRequest()->getParam('viewtype'));
            $CRMCustSysId = $cid;
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            $getCustomerDetail = $crmcustomerObj->GetAgencyMmbrById($CRMCustSysId);

            $AgencySysId = !empty($getCustomerDetail['AgencySysId']) ? $getCustomerDetail['AgencySysId'] : '';
            $this->view->agencyInvoiceNumber = $agencyInvoiceNumber = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->generateInvoiceNumbers($AgencySysId);
            if (count($getCustomerDetail) > 0 && !empty($getCustomerDetail['AgencySysId'])) {
                $packageObj = new Travel_Model_TblPackage();
                $customerTravelPlanObj = new Travel_Model_CRM_CustomerTravelPlan();
                $AgencySysId = $getCustomerDetail['AgencySysId'];
                $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);

                //echo "<pre>";print_r($getAgencyDetail);echo "</pre>";

                $this->view->CityTitle = $getAgencyDetail['CityTitle'];

                $packageDetails = $customerTravelPlanObj->GetTravelPlanByCustomer($travelPlanId);
                //echo "<pre>";print_r($packageDetails);
                $this->view->gsttype = $gsttype = !empty($this->getRequest()->getParam('gsttype')) ? $this->getRequest()->getParam('gsttype') : $packageDetails[0]['GSTSharedMode'];
                $this->view->SACCode = $SACCode = $packageDetails[0]['SACCode'];
                $StartDateArr = (array) $packageDetails[0]['StartDate'];
                $StartDateArr = explode(" ", $StartDateArr['date']);
                //echo "<pre>";print_r($StartDateArr);

                $this->view->StartDate = date('d/m/Y', strtotime($StartDateArr[0]));
                $this->view->Cities = $packageDetails[0]['Cities'];
                //StartDate




                $TripDate = date("Y-m-d", strtotime($StartDateArr[0]));
                $objCust = new Travel_Model_CRM_CustomerTravelPlan();
                $marketPlaceRateArr = $objCust->getCustPackRate($travelPlanId, $TripDate);
                //echo "<pre>";print_r($marketPlaceRateArr);

                $taxType = trim($marketPlaceRateArr[0]['Tax']);
                $ExcludedPercent = !empty(trim($marketPlaceRateArr[0]['ExcludedPercent'])) ? trim($marketPlaceRateArr[0]['ExcludedPercent']) : 5;

                $packageDetails['Title'] = $packageDetails[0]['Title'];

                $price = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($travelPlanId, $packageDetails[0]['RoomInfoJson'], $getAgencyDetail, $marketPlaceRateArr[0]);
                //            $price = $customerTravelPlanObj->GetAgencyCustomerTravelPlanCost($travelPlanId, $packageDetails[0]['RoomInfoJson']);
                //echo "<pre>";print_r($price);exit;


                $adultPax = 0;
                $childPax = 0;
                if (!empty($price)) {
                    $travellerDetail = json_decode($packageDetails[0]['RoomInfoJson']);
                    foreach ($travellerDetail as $res) {
                        $adultPax += $res->Adult;
                        $childPax += $res->Child;
                    }
                }
                $packageDetails['adultPax'] = $adultPax;
                $packageDetails['childPax'] = $childPax;

                $address = $crmcustomerObj->GetNameOfContStateCity($getCustomerDetail['CountrySysId'], $getCustomerDetail['StateOrZoneSysId'], $getCustomerDetail['CitySysId']);

                $this->view->custState = $custState = strtolower(trim($address['StateName']));
                $this->view->custStateGSTNo = $custStateGSTNo = strtolower(trim($address['GSTNo']));

                $agencyAddress = $crmcustomerObj->GetNameOfContStateCity($getAgencyDetail['CountrySysId'], $getAgencyDetail['StateOrZoneSysId'], $getAgencyDetail['CitySysId']);
                $this->view->agecyState = $agecyState = strtolower(trim($agencyAddress['StateName']));
                $this->view->agecyStateGSTNo = $agecyStateStateGSTNo = strtolower(trim($agencyAddress['GSTNo']));
                $CustomerAddress = $getCustomerDetail['Address'] ? $getCustomerDetail['Address'] . "," : '';

                $objTrx = new Travel_Model_TblAgencyCustomerTrx();
                $arrPaymentHistory = $objTrx->getTrasactionProposalByTPSysId($travelPlanId, $trxid);
                //echo "<pre>";print_r($arrPaymentHistory);exit;

                if ($taxType == "Included") {
                    $NetPrice = $arrPaymentHistory[0]['NetAmount'];
                    $BasePrice = $NetPrice / ((100 + $ExcludedPercent) / 100);
                } else {
                    $BasePrice = $arrPaymentHistory[0]['NetAmount'];
                    $NetPrice = ($BasePrice * $ExcludedPercent) / 100 + $BasePrice;
                }

                $BasePrice = $arrPaymentHistory[0]['NetAmount'];

                $packageDetails['InvoiceId'] = $arrPaymentHistory[0]['InvoiceId'];

                $arrInvoiceDate = (array) $arrPaymentHistory[0]['TrxDate'];
                $arrInvoiceDate = explode(" ", $arrInvoiceDate['date']);
                $InvoiceDate = $arrInvoiceDate[0];

                $packageDetails['InvoiceDate'] = $InvoiceDate;
                $GSTSharedMode = $packageDetails[0]['GSTSharedMode'];

                if (!empty($gsttype) && $gsttype != 3) {
                    $this->view->IS_GST_APPLICABLE = $IS_GST_APPLICABLE = true;
                } else {
                    $this->view->IS_GST_APPLICABLE = $IS_GST_APPLICABLE = $packageDetails[0]['GSTSharedMode'] != 3 ? true : false;
                }



                if (!$IS_GST_APPLICABLE) {
                    $ExcludedPercent = 0;
                } else if ($gsttype == 1) {
                    $ExcludedPercent = 5;
                } else if ($gsttype == 2) {
                    $ExcludedPercent = 18;
                }



                $packageDetails['BaseCost'] = $BasePrice;

                $GSTApplicableOn = $gsttype;
                $packageCost = $packageDetails[0]['Price'] + $packageDetails[0]['AgencyMarkUp'];
                $AgencyMarkUp = $packageDetails[0]['AgencyMarkUp'];
                $AgencyExtraMarkUp = $packageDetails[0]['MarkUp'];
                $AgencyDiscount = $packageDetails[0]['CustomDiscount'];
                $intProductType = 9;
                $intProductGeoType = 1; // 1 For Domestic, 2 For International


                $arrInputData = array(
                    "GSTApplicableOn" => $GSTApplicableOn,
                    "intProductType" => $intProductType,
                    "intProductGeoType" => $intProductGeoType,
                    "Cost" => $packageCost,
                    "AgencyMarkUp" => $AgencyMarkUp,
                    "AgencyExtraMarkUp" => $AgencyExtraMarkUp,
                    "AgencyDiscount" => $AgencyDiscount
                );
                //echo "<pre>";print_r($arrInputData);exit;

                $arrGSTCalculations = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->calculateGST($arrInputData);

                // echo "<pre>";print_r($arrGSTCalculations);echo "</pre>";exit;


                $arrReverseInputData = array(
                    "GSTApplicableOn" => $GSTApplicableOn,
                    "intProductType" => $intProductType,
                    "intProductGeoType" => $intProductGeoType,
                    "CostWithGST" => $packageDetails[0]['NetPrice'],
                    "GSTAmount" => $arrGSTCalculations['GSTAmount'],
                    "AgencyMarkUp" => $AgencyMarkUp,
                    "AgencyExtraMarkUp" => $AgencyExtraMarkUp,
                    "AgencyDiscount" => $AgencyDiscount
                );

                $arrGSTCalculations = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->calculateReverseGST($arrReverseInputData);

                //echo "<pre>";print_r($arrGSTCalculations);echo "</pre>";
                //echo "<pre>";print_r($packageDetails);echo "</pre>";//exit;

                $ExcludedPercent = $arrGSTCalculations['TaxRate'];

                $packageDetails['NETTOTAL'] = $arrGSTCalculations['MyCost'] + $arrGSTCalculations['AgencyExtraMarkUp'];
                $packageDetails['Discount'] = $packageDetails[0]['CustomDiscount'];
                $packageDetails['TaxableCost'] = $packageDetails['NETTOTAL'] - $packageDetails['Discount'];

                $IGST = false;
                if ($agecyState != $custState) {
                    $IGST = true;
                    $packageDetails['IGST'] = $arrGSTCalculations['GSTAmount'];
                    $packageDetails['IGSTPERCENT'] = $ExcludedPercent;
                    $packageDetails['TOTALTAX'] = $arrGSTCalculations['GSTAmount'];
                } else {
                    $IGST = false;
                    $ExcludedPercent = $ExcludedPercent / 2;
                    $packageDetails['SGSTPERCENT'] = $ExcludedPercent;
                    $packageDetails['CGSTPERCENT'] = $ExcludedPercent;
                    $packageDetails['SGST'] = $arrGSTCalculations['GSTAmount'] / 2;
                    $packageDetails['CGST'] = $arrGSTCalculations['GSTAmount'] / 2;
                    $packageDetails['TOTALTAX'] = $arrGSTCalculations['GSTAmount'];
                }
                $packageDetails['ISIGST'] = $IGST;
                $packageDetails['NETTOTALWITHOUTTAX'] = $arrGSTCalculations['AmountWithGST'] - $arrGSTCalculations['GSTAmount'];
                $packageDetails['NETTOTALWITHTAX'] = $arrGSTCalculations['AmountWithGST'];

                $state = '';
                $country = '';
                $agencyState = '';
                $agencyCountry = '';
                if (isset($address['StateName']) && !empty($address['StateName'])) {
                    $state = $address['StateName'] ? " ," . $address['StateName'] : '';
                }
                if (isset($address['countryName']) && !empty($address['countryName'])) {
                    $country = $address['countryName'] ? "(" . $address['countryName'] . ")" : '';
                }
                $getCustomerDetail['fullAddress'] = $address['CityName'] . $state . $country;
                if (isset($agencyAddress['StateName']) && !empty($agencyAddress['StateName'])) {
                    $agencyState = $agencyAddress['StateName'] ? " ," . $agencyAddress['StateName'] : '';
                }
                if (isset($agencyAddress['countryName']) && !empty($agencyAddress['countryName'])) {
                    $agencyCountry = $agencyAddress['countryName'] ? "(" . $agencyAddress['countryName'] . ")" : '';
                }
                $getCustomerDetail['fullAddress'] = $CustomerAddress . $address['CityName'] . $state . $country;
                $getCustomerDetail['FullName'] = $getCustomerDetail['FirstName'] . $getCustomerDetail['LastName'];
                $getAgencyDetail['fullAddress'] = $getAgencyDetail['CompanyAddress'] . "<br/>" . $getAgencyDetail['CityTitle'] . " " . trim($getAgencyDetail['Pincode']) . ", " . $getAgencyDetail['CountryTitle'];

                //                echo "<pre>";print_r($packageDetails);exit;
                //echo "<pre>";print_r($arrGSTCalculations);
                $this->view->getCustomerDetail = $getCustomerDetail;
                $this->view->packageDetails = $packageDetails;
                $this->view->agencyDetails = $getAgencyDetail;
                //$this->view->serviceTaxrate=$curl_response['Percentage']?$curl_response['Percentage']:0;
                $this->view->serviceTaxrate = $price[0]['ExcludedPercent'] ? $price[0]['ExcludedPercent'] : 0;

                $invoiceData = array(
                    'TPSysId' => $packageDetails[0]['TPSysId'],
                    'MasterTPSysId' => $packageDetails[0]['MasterTPSysId'],
                    'AgentSysId' => $packageDetails[0]['AgentSysId'],
                    'CustomerSysId' => $packageDetails[0]['CustomerSysId'],
                    'SACCode' => $packageDetails[0]['SACCode'],
                    'Title' => $packageDetails['Title'],
                    'InvoiceDate' => $packageDetails['InvoiceDate'],
                    'BaseCost' => $packageDetails['BaseCost'],
                    'NETTOTAL' => $packageDetails['NETTOTAL'],
                );
                $sessionInvoiceData = new Zend_Session_Namespace('sessionInvoiceData');
                $sessionInvoiceData->params = $sessionInvoiceData;
                $this->_redirect('finance/miscellaneous/newinvoice');
            }
            echo "<pre>";
            print_r($invoiceData);
            exit;
        }
    }

    public function viewHotelDetailsAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        if (!$this->_request->isXmlHttpRequest()) {
            $this->view->layoutType = 'browser';
            $AccomSysId = base64_decode($this->getRequest()->getParam('hotelid'));
        } else {
            $AccomSysId = $this->getRequest()->getParam('hotelid');
        }


        $objAccom = new Travel_Model_TblICAccomdation();
        $objAccImg = new Travel_Model_TblAccomoImg();
        $accomoDetailArr = $objAccom->getAccomodation($AccomSysId);
        $this->view->accomoDetailsArr = $accomoDetailArr;
        //        echo '<pre>'; print_r($accomoDetails);
        $accImgArr = $objAccImg->getAccomoImage($AccomSysId);
        $this->view->accImgArr = $accImgArr;
    }

    public function getActivityDetailsAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
    }

    public function getSightDetailsAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
    }

    public function packageBookingReceiptAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $intTPSysId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('pid'))));
        $intCustSysId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('cid'))));

        $objPkg = new Travel_Model_TblPackage();
        $objPkgBooking = new Travel_Model_TblPackageBooking();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $objCust = new Travel_Model_CRM_CustomerTravelPlan();

        //Customer Details
        $getCustomerDetail = $crmcustomerObj->GetAgencyMmbrById($intCustSysId);
        $this->view->getCustomerDetail = $getCustomerDetail;

        $getBookingId = $objPkgBooking->getPackageBookingId($intCustSysId);
        $this->view->getBookingId = $getBookingId;

        $getMembersDetail = $objPkgBooking->GetCustomerMembersById($getCustomerDetail['AgencySysId'], $intCustSysId);
        $this->view->getMembersDetail = $getMembersDetail;

        if (!empty($intTPSysId)) {

            //Number of Passengers
            $flexiPackageList = $objPkg->getCustPackageList($intTPSysId);
            //print_r($flexiPackageList);
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
            $agencyObj = new Travel_Model_TblAgency();
            $getAgentDetail = $agencyObj->getAgencyUserDataById($flexiPackageList['AgentSysId']);
            //echo "<pre>".print_r($getAgentDetail);die;
            $flexiPackageList['agencyDetails'] = $getAgencyDetail;
            $flexiPackageList['agentDetails'] = $getAgentDetail;
            /* $inclusionMastArray=$objPkg->getPackageInclusionList();
              $inclusionArr = $objPkg->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
              $flexiPackageList['inclusionDetails']=$inclusionArr; */
            //echo "<pre>";print_r($flexiPackageList['inclusionDetails']);die;
            $this->view->flexiPackageList = $flexiPackageList;
            $flexiPackageItenList = $objPkg->getCustPackageItenList($intTPSysId);
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            $ArrFromRoomInfoJson = json_decode($flexiPackageList['RoomInfoJson']);
            $arrPassanger = array();
            foreach ($ArrFromRoomInfoJson as $key => $arr) {
                $arrPassanger['Room'] = $key;
                @$arrPassanger['Adult'] += $arr->Adult;
                @$arrPassanger['Infant'] += $arr->Infant;
                if ($arr->bedtype == 'withbed') {
                    $arrPassanger['ChildWithBed'] += $arr->Child;
                }
                if ($arr->bedtype == 'withoutbed') {
                    @$arrPassanger['ChildWithOutBed'] += $arr->Child;
                }
            }



            $arrPassanger['TotalPass'] = $arrPassanger['Adult'] + @$arrPassanger['Infant'] + @$arrPassanger['ChildWithBed'] + @$arrPassanger['ChildWithOutBed'];
            $this->view->arrPassanger = $arrPassanger;

            //Get Package Places (Destinations)
            $flexiPackagePlaces = $objPkgBooking->getCustomerPackagePlacesList($intTPSysId);
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;

            //Get Package Flight
            $flexiPackageFlight = $objPkg->getCustPackageAir($intTPSysId);
            $this->view->flexiPackageFlight = $flexiPackageFlight;
            //            print_r($flexiPackageFlight); die;
            //Get Package Activity
            $flexiPackageActivityList = $objPkgBooking->getCustPackageActivityList($intTPSysId);

            $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            //Get Package Sightseen
            $flexiPackageSightseenList = $objPkg->getCustPackageSightseenList($intTPSysId);

            //            echo "<pre>";
            //            print_r($flexiPackageSightseenList);
            //            exit;

            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
            //Get Package Hotels
            $flexiPackageHotelsList = $objPkgBooking->getCustPackageHotelsList($intTPSysId);

            $newflexiPackageHotelsArr = array();
            foreach ($flexiPackageHotelsList as $key => $newflexiPackageHotel) {

                $newflexiPackageHotelsArr[$newflexiPackageHotel['Title']] = $newflexiPackageHotel;
                //                }
            }
            $this->view->flexiPackageHotelsList = $newflexiPackageHotelsArr;
        }
    }

    public function getallserviceAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $tpsysID = $this->_request->getParam('tpsysID');
        if ($tpsysID > 0) {
            $this->view->tpsysID = $tpsysID;
            $this->view->catID = $this->_request->getParam('catID');
            $this->view->tourID = $this->_request->getParam('tourID');
            $this->view->totalprice = $this->_request->getParam('totalprice');
            $this->view->roominfojson = $this->_request->getParam('roominfojson');
            $this->view->mID = $this->_request->getParam('mID');
            $this->view->itenArr = $this->getRequest()->getPost('itenArr');
            $this->view->getallservice = $this->_crmcusttravelplan->GetAllService($tpsysID);
            $this->view->getselectedprice = $this->_crmcusttravelplan->GetSelectedOtherService($tpsysID);
        }
    }

    public function termsAndConditionAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $agencyObj = new Travel_Model_TblAgency();

        $tpID = $this->_request->getParam('TPSysId');
        $arrPackageTermsAndConditions = array();
        if ($tpID) {
            $arrPackageTermsAndConditions = $objPackage->getCustPackageTncList($tpID);
            //$getAgentDetail = $agencyObj->getAgencyUserDataById($arrPackageTermsAndConditions[0]['AgencySysId']);
            //             echo "<pre>";print_r($arrPackageTermsAndConditions);die;
        }
        $this->view->arrPackageTermsAndConditions = $arrPackageTermsAndConditions;
        //$this->view->getAgentDetail = $getAgentDetail;
    }

    public function getcardetailsAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $tpsysID = $this->_request->getParam('tpsysID');
        if ($tpsysID > 0) {
            $this->view->tpsysID = $tpsysID;
            $this->view->transtype = $this->_request->getParam('transtype');
            $this->view->tpintsysID = $this->_request->getParam('tpintsysID');
            $this->view->pkgprice = $this->_request->getParam('pkgprice');
            $this->view->roominfojson = $this->_request->getParam('roominfojson');
            $this->view->itenArr = $this->getRequest()->getPost('itenArr');
            $this->view->catID = $this->_request->getParam('catID');
            $this->view->tourID = $tourID = 1; //$this->_request->getParam('tourID');
            $this->view->markuptype = $this->_request->getParam('markuptype');
            $this->view->markupvalue = $this->_request->getParam('markupvalue');
            $this->view->mID = $this->_request->getParam('mID');
            $this->view->getallcartype = $this->_crmcusttravelplan->GetAllCarDetails($tpsysID, $tourID);
            $this->view->getselectedprice = $this->_crmcusttravelplan->GetSelectedCarVehiclePrice($tpsysID, $tourID);
        }
    }

    public function gettraindetailsAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $tpsysID = $this->_request->getParam('tpsysID');
        if ($tpsysID > 0) {
            $this->view->tpsysID = $tpsysID;
            $this->view->transtype = $this->_request->getParam('transtype');
            $this->view->tpintsysID = $this->_request->getParam('tpintsysID');
            $this->view->pkgprice = $this->_request->getParam('pkgprice');
            $this->view->tourID = $this->_request->getParam('tourID');
            $this->view->getalltraintype = $this->_crmcusttravelplan->GetVehicleDetailsByDay($tpsysID, 'train');
            $this->view->getselectedprice = $this->_crmcusttravelplan->GetSelectedVehiclePrice($tpsysID, 'train');
        }
    }

    public function getbusdetailsAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $tpsysID = $this->_request->getParam('tpsysID');
        if ($tpsysID > 0) {
            $this->view->tpsysID = $tpsysID;
            $this->view->transtype = $this->_request->getParam('transtype');
            $this->view->tpintsysID = $this->_request->getParam('tpintsysID');
            $this->view->pkgprice = $this->_request->getParam('pkgprice');
            $this->view->tourID = $this->_request->getParam('tourID');
            $this->view->getallbustype = $this->_crmcusttravelplan->GetVehicleDetailsByDay($tpsysID, 'bus');
            $this->view->getselectedprice = $this->_crmcusttravelplan->GetSelectedVehiclePrice($tpsysID, 'bus');
        }
    }

    public function packageBookingFullfillmentVoucherAction()
    {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $intTPSysId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('pid'))));
        $intCustSysId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('cid'))));

        $objPkg = new Travel_Model_TblPackage();
        $objPkgBooking = new Travel_Model_TblPackageBooking();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $objCust = new Travel_Model_CRM_CustomerTravelPlan();

        //Customer Details
        $getCustomerDetail = $crmcustomerObj->GetAgencyMmbrById($intCustSysId);
        $this->view->getCustomerDetail = $getCustomerDetail;

        $getBookingId = $objPkgBooking->getPackageBookingId($intCustSysId);
        $this->view->getBookingId = $getBookingId;

        $getMembersDetail = $objPkgBooking->GetCustomerMembersById($getCustomerDetail['AgencySysId'], $intCustSysId, $intTPSysId);

        $this->view->getMembersDetail = $getMembersDetail;

        if (!empty($intTPSysId)) {

            //Number of Passengers
            $flexiPackageList = $objPkg->getCustPackageList($intTPSysId);
            $hotelarr = $objPkg->getCustomerFlexiPackageFinalHotels($flexiPackageList['TPSysId']); // for only hotel overview
            $this->view->hotelarr = $hotelarr;
            //echo "<pre>";print_r($flexiPackageList);echo "<pre>";die;
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            $AgencySysId = trim($flexiPackageList['AgencySysId']);
            $AgentSysId = trim($flexiPackageList['AgentSysId']);
            $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
            $agencyObj = new Travel_Model_TblAgency();
            $getAgentDetail = $objCust->getAgentDetails($AgentSysId);
            $packageTncList = $objPkg->getCustPackageTncList($intTPSysId);
            $flexiPackageList['tncDetails'] = $packageTncList;
            //echo "<pre>".print_r($getAgentDetail);die;
            $flexiPackageList['agencyDetails'] = $getAgencyDetail;
            $flexiPackageList['agentDetails'] = $getAgentDetail;
            /* $inclusionMastArray=$objPkg->getPackageInclusionList();
              $inclusionArr = $objPkg->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
              $flexiPackageList['inclusionDetails']=$inclusionArr; */
            //echo "<pre>";print_r($flexiPackageList['inclusionDetails']);die;
            $this->view->flexiPackageList = $flexiPackageList;
            $flexiPackageItenList = $objPkg->getCustPackageItenList($intTPSysId);
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            $ArrFromRoomInfoJson = json_decode($flexiPackageList['RoomInfoJson']);
            $arrPassanger = array();
            foreach ($ArrFromRoomInfoJson as $key => $arr) {
                $arrPassanger['Room'] = $key;
                @$arrPassanger['Adult'] += $arr->Adult;
                @$arrPassanger['Infant'] += $arr->Infant;
                if (@$arr->bedtype == 'withbed') {
                    $arrPassanger['ChildWithBed'] += $arr->Child;
                }
                if (@$arr->bedtype == 'withoutbed') {
                    @$arrPassanger['ChildWithOutBed'] += $arr->Child;
                }
            }


            $flexiPackageAllDetailsList = $objPkg->getCustPackageAllDetailsListFullFill($flexiPackageList['TPSysId']);
            $this->view->flexiPackageAllDetailsList = $flexiPackageAllDetailsList;

            $arrPassanger['TotalPass'] = $arrPassanger['Adult'] + @$arrPassanger['Infant'] + @$arrPassanger['ChildWithBed'] + @$arrPassanger['ChildWithOutBed'];
            $this->view->arrPassanger = $arrPassanger;

            //Get Package Places (Destinations)
            $flexiPackagePlaces = $objPkgBooking->getCustomerPackagePlacesList($intTPSysId);
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;

            //Get Package Flight
            $flexiPackageFlight = $objPkg->getCustPackageAir($intTPSysId);
            $this->view->flexiPackageFlight = $flexiPackageFlight;
            //            print_r($flexiPackageFlight); die;
            //Get Package Activity
            $flexiPackageActivityList = $objPkgBooking->getCustPackageActivityList($intTPSysId);

            $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            //Get Package Sightseen
            $flexiPackageSightseenList = $objPkg->getCustPackageSightseenList($intTPSysId);

            //            echo "<pre>";
            //            print_r($flexiPackageSightseenList);
            //            exit;

            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
            //Get Package Hotels
            $flexiPackageHotelsList = $objPkgBooking->getCustPackageHotelsList($intTPSysId);

            $newflexiPackageHotelsArr = array();
            foreach ($flexiPackageHotelsList as $key => $newflexiPackageHotel) {

                $newflexiPackageHotelsArr[$newflexiPackageHotel['Title']] = $newflexiPackageHotel;
                //                }
            }
            $this->view->flexiPackageHotelsList = $newflexiPackageHotelsArr;
            //$thi->view->agencyDetails=$getAgencyDetail;
            //$thi->view->agentDetails=$getAgencyDetail;
        }
    }

    public function hotelFullfillmentVoucherAction()
    {
        /* Disable Layout */
        $request = Zend_Controller_Front::getInstance()->getRequest();
        $post = $request->getPost();
        if ($post) {

            $this->_helper->layout->disableLayout();
            $intTPSysId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('pid'))));
            $intCustSysId = $this->_HtmlPurifier->filter(intval(base64_decode($this->getRequest()->getParam('cid'))));

            $TPIntSysId = $this->getRequest()->getParam('TPIntSysId');
            $VersionId = $this->getRequest()->getParam('VersionId');

            $objPkg = new Travel_Model_TblPackage();
            $objPkgBooking = new Travel_Model_TblPackageBooking();
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            $objCust = new Travel_Model_CRM_CustomerTravelPlan();
            $objCustTravelPlanFull = new Travel_Model_CRM_CustomerTravelPlanFullfillment();

            //Customer Details
            $getCustomerDetail = $crmcustomerObj->GetAgencyMmbrById($intCustSysId);
            $this->view->getCustomerDetail = $getCustomerDetail;

            $getBookingId = $objPkgBooking->getPackageBookingId($intCustSysId);
            $this->view->getBookingId = $getBookingId;

            $getMembersDetail = $objPkgBooking->GetCustomerMembersById($getCustomerDetail['AgencySysId'], $intCustSysId, $intTPSysId);

            $this->view->getMembersDetail = $getMembersDetail;

            $GetMealPlan = $objCustTravelPlanFull->GetMealPlan();
            $GetMealPlanArr = array();
            if ($GetMealPlan) {
                foreach ($GetMealPlan as $value) {
                    $GetMealPlanArr[$value['MealTypeId']] = $value['Title'];
                }
            }
            $this->view->GetMealPlan = $GetMealPlanArr;
            $currencyarr = $objPkg->getCurrencyList();
            $Getcurrencyarr = array();
            if ($currencyarr) {
                foreach ($currencyarr as $value) {
                    $Getcurrencyarr[$value['CurrencyType']] = $value['Symbol'];
                }
            }
            $this->view->currencyarr = $Getcurrencyarr;
            //echo "<pre>";print_r($getMembersDetail);die;

            if (!empty($intTPSysId)) {

                //Number of Passengers
                $flexiPackageList = $objPkg->getCustPackageList($intTPSysId);
                $hotelarr = $objPkg->getCustomerFlexiPackageFullfilmentHotels($flexiPackageList['TPSysId'], $TPIntSysId); // for only hotel overview
                $this->view->hotelarr = $hotelarr;
                $SourcingCostSaleData = $objCustTravelPlanFull->ChkFullfillmentRecordExistSales($flexiPackageList['TPSysId']);
                $ArrSourcingCostSale = array();
                if ($SourcingCostSaleData) {
                    foreach ($SourcingCostSaleData as $k => $val) {
                        $ArrSourcingCostSale[$val['TPIntSysId']][] = $val;
                    }
                }
                $this->view->SourcingCostSaleData = $ArrSourcingCostSale;
                //echo "<pre>";print_r($ArrSourcingCostSale);echo "</pre>";
                $crmcustomerObj = new Travel_Model_CRM_Customer();
                $AgencySysId = trim($flexiPackageList['AgencySysId']);
                $AgentSysId = trim($flexiPackageList['AgentSysId']);
                $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
                $agencyObj = new Travel_Model_TblAgency();
                $getAgentDetail = $objCust->getAgentDetails($AgentSysId);
                $packageTncList = $objPkg->getCustPackageTncList($intTPSysId);
                $flexiPackageList['tncDetails'] = $packageTncList;
                //echo "<pre>";print_r($packageTncList);die;
                $flexiPackageList['agencyDetails'] = $getAgencyDetail;
                $flexiPackageList['agentDetails'] = $getAgentDetail;
                /* $inclusionMastArray=$objPkg->getPackageInclusionList();
                  $inclusionArr = $objPkg->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
                  $flexiPackageList['inclusionDetails']=$inclusionArr; */
                //echo "<pre>";print_r($flexiPackageList['inclusionDetails']);die;
                $this->view->flexiPackageList = $flexiPackageList;
                $flexiPackageItenList = $objPkg->getCustPackageItenList($intTPSysId);
                $this->view->flexiPackageItenList = $flexiPackageItenList;
                $ArrFromRoomInfoJson = json_decode($hotelarr[0]['RoomMemInfoJson']);
                //echo '<pre>';print_r($hotelarr[0]);die;
                $arrPassanger = array();
                foreach ($ArrFromRoomInfoJson as $key => $arr) {
                    $arrPassanger['Room'] = $key;
                    @$arrPassanger['Adult'] += $arr->Adult;
                    @$arrPassanger['Child'] += $arr->Child;
                    @$arrPassanger['Infant'] += $arr->Infant;
                    if (@$arr->bedtype == 'withbed') {
                        $arrPassanger['ChildWithBed'] += $arr->Child;
                    }
                    if (@$arr->bedtype == 'withoutbed') {
                        @$arrPassanger['ChildWithOutBed'] += $arr->Child;
                    }
                }
                $flexiPackageAllDetailsList = $objPkg->getCustPackageAllDetailsListFullFill($flexiPackageList['TPSysId']);
                $this->view->flexiPackageAllDetailsList = $flexiPackageAllDetailsList;
                $arrPassanger['TotalPass'] = $arrPassanger['Adult'] + $arrPassanger['Child'] + @$arrPassanger['Infant'] + @$arrPassanger['ChildWithBed'] + @$arrPassanger['ChildWithOutBed'];
                $this->view->arrPassanger = $arrPassanger;
                //echo "<pre>";print_r($arrPassanger);echo "<pre>";
            }
        } else {
            die('Oops wrong request!');
        }
    }

    public function updateLocationTimeDataAction()
    {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $pickupLocationSysId = $getData['pickupLocationSysId'];
        $tpsysID = $getData['packageId'];
        $data = array(
            'pickupLocationSysId' => $pickupLocationSysId,
        );
        $where = array('TPSysId = ? ' => $tpsysID);
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan', $data, $where);
        echo $updateId;
        exit;
    }

    /* Added by mangal for customer member list 14-07-2020 */

    public function customerContactMemberDataAction()
    {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $ARR_CUSTOMER_RELATION = unserialize(ARR_CUSTOMER_RELATION);
        $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
        $CustomerSysId = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getParam('id')));
        $AgencySysId = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getParam('AgencySysId')));
        $count = $this->getRequest()->getParam('count');
        if (isset($CustomerSysId) && !empty($CustomerSysId)) {
            $getCustomerMemberDetail = $this->_crmcustomerObj->GetCustomerMembersById($AgencySysId, $CustomerSysId);
            $html = 'No Record Found';
            if (!empty($getCustomerMemberDetail)) {
                $html = '';
                foreach ($getCustomerMemberDetail as $cKey => $cVal) {
                    $DOB = (isset($cVal["DOB"]) && $cVal["DOB"]->format('d/m/Y') != '01/01/1900') ? $cVal["DOB"]->format('d/m/Y') : '';
                    $PassportIssue = (isset($cVal["PassportIssue"]) && $cVal["PassportIssue"]->format('d/m/Y') != '01/01/1900') ? $cVal["PassportIssue"]->format('d/m/Y') : '';
                    $PassportExpiry = (isset($cVal["PassportExpiry"]) && $cVal["PassportExpiry"]->format('d/m/Y') != '01/01/1900') ? $cVal["PassportExpiry"]->format('d/m/Y') : '';
                    $html .= '<div class="customgst_savedlist1 gst_add_align2" >
                        <input type="hidden" id="Relation_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["Relation"] . '">
                        <input type="hidden" id="Title_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["Title"] . '">
                        <input type="hidden" id="FirstName_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["FirstName"] . '">
                        <input type="hidden" id="LastName_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["LastName"] . '">
                        <input type="hidden" id="email_id_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["EmailId"] . '">
                        <input type="hidden" id="DOB_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $DOB . '">
                        <input type="hidden" id="PassportNo_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["PassportNo"] . '">
                        <input type="hidden" id="PassportIssue_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $PassportIssue . '">
                        <input type="hidden" id="PassportExpiry_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $PassportExpiry . '">
                        <input type="hidden" id="CountrySysId_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["CountrySysId"] . '">
                        <input type="hidden" id="CountryTitle_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["CountryTitle"] . '">
                        <input type="hidden" id="StateOrZoneSysId_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["StateOrZoneSysId"] . '">
                        <input type="hidden" id="CitySysId_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["CitySysId"] . '">
                        <input type="hidden" id="stateTitle_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["stateTitle"] . '">
                        <input type="hidden" id="cityTitle_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["cityTitle"] . '">
                        <input type="hidden" id="PinCode_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["PinCode"] . '">
                        <input type="hidden" id="Address_' . $CustomerSysId . '_' . $cVal["MemberSysId"] . '" value="' . $cVal["Address"] . '">
                        <input onclick="fillCustomerMemberData(' . $count . ',' . $CustomerSysId . ',' . $cVal["MemberSysId"] . ')" type="radio" id="radioas" name="demo002" class="radioas"><a href="javascript://" onclick="fillCustomerMemberData(' . $count . ',' . $CustomerSysId . ',' . $cVal["MemberSysId"] . ')">' . trim($cVal["FirstName"]) . ' ' . trim($cVal["LastName"]) . '<br/> <span class="adult_listtitle">' . $ARR_CUSTOMER_RELATION[$cVal["Relation"]] . '</span></a>
                    </div>';
                }
            }
            echo $html;
            exit;
        }
    }

    public function updateInsurancePriceAction()
    {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $TblAgency = new Travel_Model_TblAgency();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            $TPSysId = $postData['TPSysId'];
            $insurancePrice = $postData['insurancePrice'];
            $isInsurance = $postData['isInsurance'];
            $transactiontravelplandata = $this->_crmcusttravelplan->GetTravelPlanByCustomer($TPSysId);
            if ($isInsurance == 1) {
                $NetPrice = $transactiontravelplandata[0]['NetPrice'] + $insurancePrice;
                $Price = $transactiontravelplandata[0]['Price'] + $insurancePrice;
            } else {
                $NetPrice = $transactiontravelplandata[0]['NetPrice'] - $insurancePrice;
                $Price = $transactiontravelplandata[0]['Price'] + $insurancePrice;
            }
            $data = array(
                'NetPrice' => $NetPrice,
                'Price' => $Price,
                'IsInsuranceExist' => $isInsurance,
                'UpdateDate' => date('Y-m-d H:i:s'),
            );
            $where = "TPSysId = " . $TPSysId;
            $AdvBookingPercent = (int) ($NetPrice * $transactiontravelplandata[0]['AdvBookingPercent']) / 100;
            $this->_crmcusttravelplan->UpdateCustomerTravelPlan($data, $where);
            echo json_encode(array('status' => 1, 'NetPrice' => $NetPrice, 'Price' => $Price, 'AdvBookingPercent' => $AdvBookingPercent));
            exit;
        }
    }

    public function getEncryptedCancellationProtectionCodeAction()
    {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $TblAgency = new Travel_Model_TblAgency();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            $TPSysId = $postData['TPSysId'];
            $IsCancellationProtection = $postData['IsCancellationProtection'];
            $CancellationProtectionPrice = $postData['CancellationProtectionPrice'];

            $data = array(
                'IsCancellationProtection' => $IsCancellationProtection,
                'CancellationProtectionPrice' => ($IsCancellationProtection == 1) ? $CancellationProtectionPrice : 0,
            );
            $where = "TPSysId = " . $TPSysId;

            $this->_crmcusttravelplan->UpdateCustomerTravelPlan($data, $where);
            if ($IsCancellationProtection == 1) {
                $CancellationProtectionData['CancellationProtection'] = $postData['IsCancellationProtection'];
                $CancellationProtectionData['CancellationProtectionPrice'] = $postData['CancellationProtectionPrice'];
                $CancellationProtectionData['finalPackageCostWithMarkupnTax'] = $postData['finalPackageCostWithMarkupnTax'];
                $encryptCancellationProtectionData = $this->getEnc(json_encode($CancellationProtectionData));

                echo json_encode(array('status' => true, 'code' => $encryptCancellationProtectionData));
                exit;
            } else {
                echo json_encode(array('status' => false, 'code' => ''));
                exit;
            }
        }
    }

    public function validateApplyCouponCodeAction()
    {
        $this->_helper->layout->disableLayout();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $TblAgency = new Travel_Model_TblAgency();
        $objPaymentDetail = new Payment_Model_Payment();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $objGstRates = new Travel_Model_TblGstRates();
        $CreateDate = date('Y-m-d');
        //        $COUPON_CODE_API = COUPON_CODE_API;
        $GET_COUPON_CODE_API = GET_COUPON_CODE_API;
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();

            $getProposalDetail = $this->_crmcusttravelplan->getTravelPlanDetailsByTPSysId($postData['TPSysId']);

            $packageServiceTaxCostSum = round(((float) $getProposalDetail[0]['AgentServiceTaxAmount'] + (float) $getProposalDetail[0]['XServiceTaxAmount'] + (float) $getProposalDetail[0]['AgentsCustomServiceTaxAmount'] - (float) $getProposalDetail[0]['ServiceTaxOnCustomDiscount']), 2);
            $CriteriaValue = round(($getProposalDetail[0]['NetPrice'] - $packageServiceTaxCostSum), 2);
            $ServiceFee = $getProposalDetail[0]['MarkUp'] + $getProposalDetail[0]['AgencyMarkUp'] + $getProposalDetail[0]['GTXMarkUp'];
            $PlanType = (int) $getProposalDetail[0]['PlanType'];
            //echo "<pre>";print_r($getProposalDetail);die;
            $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($getProposalDetail[0]['AgencySysId']);
            $SecurityKey = $getAgencyDetail['SecurityKey'];

            $GSTSharedMode = isset($getProposalDetail[0]['GSTSharedMode']) ? $getProposalDetail[0]['GSTSharedMode'] : 0;

            $TravelDate = (isset($postData['TravelDate']) && $postData['TravelDate'] != '') ? trim($postData['TravelDate']) : '';
            $DiscountCode = (isset($postData['couponcode']) && $postData['couponcode'] != '') ? trim($postData['couponcode']) : '';
            //$ServiceFee = (isset($postData['ServiceFee']) && $postData['ServiceFee'] != '') ? (int) ($postData['ServiceFee']) : '0';
            //$CriteriaValue = (isset($postData['CriteriaValue']) && $postData['CriteriaValue'] != '') ? (int) ($postData['CriteriaValue']) : '0';
            //$PlanType = (isset($postData['PlanType']) && $postData['PlanType'] != '') ? (int) ($postData['PlanType']) : 5;
            $TPSysId = (isset($postData['TPId']) && $postData['TPId'] != '') ? (int) ($postData['TPId']) : 0;
            //$TPSysId = 100;
            if ($DiscountCode != '') {
                $url = $GET_COUPON_CODE_API . '?SecurityKey=' . $SecurityKey . '&DiscountCode=' . $DiscountCode . '&Cost=' . $CriteriaValue . '&CreateDate=' . $CreateDate . '&Markup=' . $ServiceFee . '&TravelDate=' . $TravelDate . '&ProductType=' . $PlanType . '&TPSysId=' . $TPSysId;
                $response = $objPaymentDetail->getgtxapiinfo($url);
                if (isset($response['results'][0]['discount_value']) && (int) $response['results'][0]['discount_value'] > 0 && (int) $response['results'][0]['applicable_status'] == 1) {
                    $DiscountValue = trim($response['results'][0]['discount_value']);
                    $id = trim($response['results'][0]['id']);
                    //echo "<pre>";print_r($response);die;
                    $includedGSTAmount = 0;
                    if ($getProposalDetail[0]['AgencySysId'] == 119378 || $getProposalDetail[0]['AgencySysId'] == 21 || $getProposalDetail[0]['AgencySysId'] == 1) {

                        $TotalPriceForGst = $CriteriaValue - $DiscountValue;
                        $TotalMarkupForGst = $ServiceFee - $DiscountValue;
                        $arrInputData = array(
                            "GSTApplicableOn" => $GSTSharedMode,
                            "intProductType" => 9,
                            "intProductGeoType" => 1,
                            "Cost" => $TotalPriceForGst,
                            "AgencyMarkUp" => round($TotalMarkupForGst, 2),
                            "AgencyExtraMarkUp" => 0,
                            "AgencyDiscount" => 0,
                        );

                        $arrGSTCalculations = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->calculateGST($arrInputData);

                        $includedGSTAmount = round(($packageServiceTaxCostSum - $arrGSTCalculations['GSTAmount']), 2);
                    }

                    //echo "<pre>";print_r($includedGSTAmount);die;
                    $code = $DiscountCode;
                    $couponpriceArr = array('price' => $DiscountValue, 'includedGSTAmount' => $includedGSTAmount, 'code' => $code, 'CriteriaValue' => $CriteriaValue, 'SecurityKey' => $SecurityKey, 'id' => $id);
                    $encryptcouponpriceData = $this->getEnc(json_encode($couponpriceArr));
                    $responseArr = array('status' => true, 'couponprice' => round($DiscountValue, 2), 'couponpricetax' => $includedGSTAmount, 'code' => $encryptcouponpriceData);
                } else {
                    $responseArr = array('status' => false, 'couponprice' => 0, 'code' => '');
                }
                echo json_encode($responseArr);
                exit;
            } else {
                echo json_encode(array('status' => false));
                exit;
            }
        }
        echo json_encode(array('status' => false));
        exit;
    }

    public function applyCouponCodeAction()
    {
        $this->_helper->layout->disableLayout();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $TblAgency = new Travel_Model_TblAgency();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $COUPON_CODE_API = COUPON_CODE_API;
        $postData = $this->getRequest()->getParams();
        $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($postData['AgencySysId']);
        $SecurityKey = $getAgencyDetail['SecurityKey'];
        $DiscountCode = (isset($postData['couponcode']) && $postData['couponcode'] != '') ? trim($postData['couponcode']) : '';
        if ($DiscountCode != '') {
            $url = $COUPON_CODE_API . '?SecurityKey=' . $SecurityKey . '&DiscountCode=' . $DiscountCode;
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_ENCODING, "gzip");
            curl_setopt($ch, CURLOPT_POST, false);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array());
            $response = curl_exec($ch);
            $resultset = json_decode($response, 1);
            echo "<pre>";
            print_r($resultset);
            die;
        }
    }

    public function availableCouponCodesAction()
    {
        $this->_helper->layout->disableLayout();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $front = Zend_Controller_Front::getInstance();
        //$front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $TblAgency = new Travel_Model_TblAgency();
        $crmcustomerObj = new Travel_Model_CRM_Customer();
        $GET_COUPON_CODE_API = GET_COUPON_CODE_API;
        $postData = $this->getRequest()->getParams();
        //            echo "<pre>";print_r($postData);die;
        $AgencySysId = (int) $postData['AgencySysId'];
        $ServiceFee = (isset($postData['ServiceFee']) && $postData['ServiceFee'] != '') ? (int) ($postData['ServiceFee']) : '0';
        $CriteriaValue = (isset($postData['CriteriaValue']) && $postData['CriteriaValue'] != '') ? (int) ($postData['CriteriaValue']) : '0';
        $TravelDate = (isset($postData['TravelDate']) && $postData['TravelDate'] != '') ? trim($postData['TravelDate']) : '';
        $PlanType = (isset($postData['PlanType']) && $postData['PlanType'] != '') ? (int) ($postData['PlanType']) : 5;
        $TPSysId = (isset($postData['TPId']) && $postData['TPId'] != '') ? (int) ($postData['TPId']) : 0;
        if ($AgencySysId > 0) {
            $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($AgencySysId);
            $SecurityKey = $getAgencyDetail['SecurityKey'];
            $url = $GET_COUPON_CODE_API . '?SecurityKey=' . $SecurityKey . '&Cost=' . $CriteriaValue . '&Markup=' . $ServiceFee . '&ProductType=' . $PlanType . '&TPSysId=' . $TPSysId;
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_ENCODING, "gzip");
            curl_setopt($ch, CURLOPT_POST, false);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array());
            $response = curl_exec($ch);
            $responseArray = json_decode($response, 1);
            $results = (isset($responseArray['results']) && !empty($responseArray['results'])) ? $responseArray['results'] : array();
            //            echo "<pre>";print_r($response);die;
        } else {
            $results = array('status' => true, 'msg' => '');
        }
        $this->view->results = $results;
        $this->view->TravelDate = $TravelDate;
    }

    public function updateStatusRequestBookingAction()
    {
        $this->_helper->layout->disableLayout();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            $TPSysId = (int) $postData['TPSysId'];
            if ($TPSysId > 0) {
                $transactiontravelplandata = $this->_crmcusttravelplan->CheckCustomerWithLeadId($TPSysId);
                $MasterTPSysId = (int) $transactiontravelplandata[0]['MasterTPSysId'];
                $dataProposal = array(
                    'StatusType' => 126,
                );
                $whereProposal = "TPSysId = " . $TPSysId;
                $this->_crmcusttravelplan->UpdateCustomerTravelPlan($dataProposal, $whereProposal);

                $dataQuery = array(
                    'StatusType' => 125,
                );
                $whereQuery = "TPSysId = " . $MasterTPSysId;
                $this->_crmcusttravelplan->UpdateCustomerTravelPlanQuery($dataQuery, $whereQuery);
                echo json_encode(array('status' => true));
                exit;
            }
            echo json_encode(array('status' => false));
            exit;
        }
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit