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/PackageController.php
<?php

/**
 * Class PackageController
 *
 * @name		PackageController
 * @author		Baljeet Poonia
 * @version 	1.0
 * @copyright 	Catabatic India Pvt Ltdaddssdetailsreadymade
 * Handle Package Related function
 *
 */
class PackageController extends Catabatic_ValidateGtx {

    const ADMIN_ID = 1;
    const CONST_SOURCE_ADMIN = 3;

    private $intLoggedinUserId = '';
    public $agencyType = 0;
    private $intLoggedinUserGroupSysId = '';
    private $intLoggedinUserAgencySysId = '';
    private $intLoggedinUserTrxCurrency = '';
    private $getMasterAgencySysId = '';
    private $SupplierTypeSysId = '';
    private $InfoSourceSysId = '';
    public $baseUrl = '';
    public $_newpkgmodelObj;
    public $IsB2CSite = '';
    public $IsTG;
    public $IsGTXNetwork;
    public $IsGTXNetworkWeb;
    public $_crmcusttravelplan;
    public $_HtmlPurifier;
    public $_crmcustomerObj;

    public function init() {
        parent::init();
        $request = Zend_Controller_Front::getInstance()->getRequest();
        $this->baseUrl = $request->getScheme() . '://' . $request->getHttpHost();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $this->_newpkgmodelObj = new Travel_Model_Package_PackageModel();
        $sessionLogin_user->lock();

        $this->SupplierTypeSysId = 9;
        $this->intLoggedinUserId = $sessionLogin_user->intLoggedinUserId;
        $this->agencyType = $sessionLogin_user->agencyDetails['AgencyType'];
        //echo "<pre>";print_r($this->agencyType['AgencyType']);
        //exit;
        $this->intLoggedinUserGroupSysId = $sessionLogin_user->intLoggedinUserGroupSysId;
        $this->intLoggedinUserAgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->intLoggedinUserTrxCurrency = $sessionLogin_user->intLoggedinUserTrxCurrency;
        $this->getMasterAgencySysId = $sessionLogin_user->getMasterAgencySysId;
        $this->IsB2CSite = (int) $sessionLogin_user->IsB2CSite;
        $this->IsTG = (int) $sessionLogin_user->IsTG;
        $this->IsGTXNetwork = (int) $sessionLogin_user->IsGTXNetwork;
        $this->IsGTXNetworkWeb = (int) $sessionLogin_user->IsGTXNetworkWeb;
        $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
        if (!empty($this->intLoggedinUserAgencySysId)) {
            $this->InfoSourceSysId = '2'; // Information Source is Agent //
        }
        if ($sessionLogin_user->isLocked()) {
            $sessionLogin_user->unLock();
        }
        $this->_HtmlPurifier = new Zend_Filter_HtmlPurifier();
    }

    public function indexAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->view->AgencySysId = $intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->isPost()) {
            $getData = $this->getRequest()->getPost();
            $currentDate = date('Y-m-d H:i:s');
            $ExpiredInDays = (isset($getData['ExpiredInDays']) && !empty($getData['ExpiredInDays'])) ? $getData['ExpiredInDays']: 0;
            $futureDate = date('Y-m-d', strtotime('+' .$ExpiredInDays . 'days'));
            $getData['PkgSellValidTill'] = ($ExpiredInDays > 0)? $futureDate : '';
            //          echo"<pre>";print_r($getData);die('data');
            $this->view->searchArr = $getData;
            $objPackage->searchArr = $getData;
        }

        $objStaff = new Travel_Model_TblAgencyStaff();
        $AgencyStaffList = $objStaff->getAgencyStaffList(1, NULL, $intLoggedinUserAgencySysId, 0);
        $this->view->AgencyStaffList = $AgencyStaffList;

        $packageList = $objPackage->getPackageList($intLoggedinUserAgencySysId);
        $TPsysIdArr = array_column($packageList, 'TPSysId');
        $TPsysIds = implode(',', $TPsysIdArr);
        //echo '<pre>'; print_r($AgencyStaffList);
        if (!empty($packageList)) {
            $PackageCitiesList = $objPackage->getPackageCitiesList($TPsysIds);
            $PackageCitiesListArr = array();
            foreach ($PackageCitiesList as $PackageCities) {
                $PackageCitiesListArr[$PackageCities['TPSysId']][] = $PackageCities['CityName'];
            }
            foreach ($PackageCitiesListArr as $key => $PackageCities) {
                $PackageCitiesFinalArr[$key] = implode(', ', $PackageCities);
            }
            $this->view->PackageCitiesFinalArr = $PackageCitiesFinalArr;
        }

        $page = $this->_getParam('page', 1);
        $paginator = Zend_Paginator::factory($packageList);
        $paginator->setItemCountPerPage(GRID_PER_PAGE_RECORD_COUNT);
        $paginator->setCurrentPageNumber($page);
        $this->view->AgencyType = $this->agencyType;
        $this->view->paginator = $paginator;
        $this->view->messages = $this->_helper->flashMessenger->getMessages();
    }

    public function addNewActivityAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $code = $this->getRequest()->getParam('code');
        $this->view->code = $code;
        //echo '<pre>';
        //echo $this->getRequest()->getParam('code');
    }

    public function finishReadymadePackageAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $objPackage = new Travel_Model_TblPackage();
        $multipackres = $this->getRequest()->getParam('multipackres');
        $reslastint = json_decode(base64_decode(@$multipackres), true);
        $data = array(
            'IsActive' => '1',
            'IsAprooved' => '1',
            'UpdateDate' => @$currentDate
        );
        if (!empty($reslastint)) {
            for ($j = 0; $j < count($reslastint); $j++) {
                $where = array('TPSysId = ? ' => @$reslastint[$j]);
                $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
            }
        }
        exit;
    }

    public function addNewHotelAction() {

        $this->_helper->layout->disableLayout();
        $currentDate = date('Y-m-d H:i:s');
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;

        $post = $this->getRequest()->getPost();
        //                echo '<pre>'; print_r($post); die;
        if (trim($post['rating']) == '') {
            $rating = '0';
        } else {
            $rating = trim($post['rating']);
        }
        $namearr = explode(",", $post['txtDestinationName']);
        $objCity = new Travel_Model_TblCity();
        $objCity->intCityId = $post['intCity'];
        $cityArray = $objCity->getCityList();
        $countryId = $cityArray[0]['ContSysId'];

        $newAccomodation = array(
            'IsAgentSpec' => '1',
            'ICSourceSysId' => @$intLoggedinUserAgencySysId,
            'Title' => isset($namearr[0]) ? trim($namearr[0]) : '0',
            'PropertyType' => 1,
            'AccomGrSysId' => '0',
            'AliasAndMeta' => '',
            'ShortName' => '',
            'PlaceSysId_XRef' => isset($post['intCity']) ? trim($post['intCity']) : '0',
            'Icon' => '',
            'ThumnailImg' => '',
            'DetailImg' => '',
            'Stars' => '0',
            'Rating' => $rating,
            'Popularity' => '0',
            'AwardRecognizations' => '',
            'PropertyType' => '0',
            'EconomyType' => '0',
            'AccoAminitiesMask' => '',
            'MaxPaxCount' => '0',
            'RoomCounts' => '0',
            'Brief' => '',
            'CheckinTime' => '',
            'CheckOutTime' => '',
            'IsDayLightApp' => '',
            'GeoLat' => isset($post['place_lat']) ? ($post['place_lat']) : '0',
            'GeoLong' => isset($post['place_lng']) ? trim($post['place_lng']) : '0',
            'Address' => isset($post['formatted_address']) ? trim($post['formatted_address']) : '',
            'PinCode' => '0',
            'CitySysId' => isset($post['intCity']) ? $post['intCity'] : '0',
            'ZoneSysId' => '0',
            'ZoneType' => '0',
            'StateSysId' => '0',
            'ContSysId' => isset($countryId) ? $countryId : '0',
            'UpdateDate' => $currentDate,
            'ApproveDate' => $currentDate,
            'ApproveBy' => '0',
            'CreateDate' => $currentDate,
            'IsApproved' => '0',
            'IsActive' => '1',
            'IsMarkForDel' => '0'
        );
        $objHotel = new Travel_Model_TblHotel();
        $intLastInsertId = $objHotel->addAccomodation($newAccomodation, $hotel_chain = '1');
        echo @$intLastInsertId;
        exit;
    }

    public function newActivityAction() {

        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;

        $post = $this->getRequest()->getPost();
        if (trim($post['rating']) == '') {
            $rating = '0';
        } else {
            $rating = trim($post['rating']);
        }
        $namearr = explode(",", $post['txtDestinationName']);
        $objCity = new Travel_Model_TblCity();
        $objCity->intCityId = $post['intCity'];
        $cityArray = $objCity->getCityList();
        $countryId = $cityArray[0]['ContSysId'];
        $insert = array(
            'IsAgentSpec' => '1',
            'AgentSysId' => @$intLoggedinUserId,
            'ICSourceSysId' => @$intLoggedinUserAgencySysId,
            'StartPlaceSysId' => '0',
            'EndPlaceSysId' => '0',
            'Title' => @$namearr[0],
            'WriteUp' => '',
            'DifficultyLevel' => '0',
            'AliasAndMeta' => '0',
            'ActivityGrType' => '0',
            'ActivityType' => '0',
            'ActivityIncMask' => '0',
            'DurationInMin' => '0',
            'DurationStr' => '0',
            'Icon' => '',
            'ThumnailImg' => '0',
            'DetailImg' => '0',
            'MinPax' => '0',
            'MaxPax' => '0',
            'PeakMothMask' => '0',
            'LeanMonthMask' => '0',
            'SilentMonthMask' => '0',
            'IsTransferInc' => '0',
            'IsKidAllowed' => '0',
            'IsTeenAllowed' => '0',
            'IsAdultAllowed' => '0',
            'IsPetAllowed' => '0',
            'IsTrxAllowed' => '0',
            'IsPickAllowed' => '0',
            'StartAgeYr' => '0',
            'EndAgeYr' => '0',
            'Rating' => @$rating,
            'Popularity' => '0',
            'ThingsToCarry' => '0',
            'AwardRecognizations' => '0',
            'BookingType' => '0',
            'DifficultyType' => '0',
            'DaysWeekMask' => '0',
            'StartLocalTime' => '',
            'EndLocalTime' => '',
            'TimeSlots' => '0',
            'IsDayLightApp' => '0',
            'Address' => isset($post['formatted_address']) ? trim($post['formatted_address']) : '',
            'PinCode' => '0',
            'CitySysId' => isset($post['intCity']) ? $post['intCity'] : '0',
            'ZoneSysId' => '0',
            'ZoneType' => '0',
            'StateSysId' => '0',
            'ContSysId' => isset($countryId) ? $countryId : '0',
            'PickUpLocation' => '0',
            'PrimaryContact' => '0',
            'SecondaryContact' => '0',
            'OtherContacts' => '0',
            'UpdateDate' => $currentDate,
            'ApproveDate' => $currentDate,
            'ApproveBy' => '0',
            'CreateDate' => $currentDate,
            'IsApproved' => '0',
            'IsActive' => '1',
            'IsMarkForDel' => '0'
        );
        $aId = $objPackage->createActivityData(@$insert);
        echo @$aId;
        exit;
    }

    public function addNewSightseenAction() {

        $this->_helper->layout->disableLayout();
        $currentDate = date('Y-m-d H:i:s');
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;

        $post = $this->getRequest()->getPost();
        if (trim($post['rating']) == '') {
            $rating = '0';
        } else {
            $rating = trim($post['rating']);
        }
        $namearr = explode(",", $post['txtDestinationName']);

        $objCity = new Travel_Model_TblCity();
        $objCity->intCityId = $post['intCity'];
        $cityArray = $objCity->getCityList();
        $countryId = $cityArray[0]['ContSysId'];

        $insertss = array(
            'IsAgentSpec' => '1',
            'AgentSysId' => @$intLoggedinUserId,
            'ICSourceSysId' => @$intLoggedinUserAgencySysId,
            'StartPlaceSysId' => '0',
            'EndPlaceSysId' => '0',
            'Title' => @$namearr[0],
            'synonyms' => '0',
            'WriteUp' => '',
            'DifficultyLevel' => '0',
            'AliasAndMeta' => '0',
            'SSGrType' => '0',
            'SSType' => '0',
            'SSIncMask' => '0',
            'DurationInMin' => '0',
            'DurationStr' => '0',
            'Icon' => '',
            'ThumnailImg' => '0',
            'DetailImg' => '0',
            'MinPax' => '0',
            'MaxPax' => '0',
            'PeakMothMask' => '0',
            'LeanMonthMask' => '0',
            'SilentMonthMask' => '0',
            'IsTransferInc' => '0',
            'IsKidAllowed' => '0',
            'IsTeenAllowed' => '0',
            'IsAdultAllowed' => '0',
            'IsPetAllowed' => '0',
            'IsTrxAllowed' => '0',
            'IsPickAllowed' => '0',
            'StartAgeYr' => '0',
            'EndAgeYr' => '0',
            'Rating' => @$rating,
            'Popularity' => '0',
            'ThingsToCarry' => '0',
            'AwardRecognizations' => '0',
            'BookingType' => '0',
            'DifficultyType' => '0',
            'DaysWeekMask' => '0',
            'StartLocalTime' => '',
            'EndLocalTime' => '',
            'TimeSlots' => '0',
            'IsDayLightApp' => '0',
            'Address' => isset($post['formatted_address']) ? trim($post['formatted_address']) : '',
            'latitude' => isset($post['place_lat']) ? ($post['place_lat']) : '0',
            'longitude' => isset($post['place_lng']) ? trim($post['place_lng']) : '0',
            'PinCode' => '0',
            'CitySysId' => isset($post['intCity']) ? $post['intCity'] : '0',
            'ZoneSysId' => '0',
            'ZoneType' => '0',
            'StateSysId' => '0',
            'ContSysId' => isset($countryId) ? $countryId : '0',
            'PickUpLocation' => '0',
            'PrimaryContact' => isset($post['formatted_phone_number']) ? trim($post['formatted_phone_number']) : '0',
            'SecondaryContact' => '0',
            'OtherContacts' => '0',
            'UpdateDate' => $currentDate,
            'ApproveDate' => $currentDate,
            'ApproveBy' => '0',
            'CreateDate' => $currentDate,
            'IsApproved' => '0',
            'IsActive' => '1',
            'IsMarkForDel' => '0'
        );
        $objSightseeing = new Travel_Model_TblSightseeing();
        $intLastInsertId = $objSightseeing->addSightseeingDetails($insertss);
        echo @$intLastInsertId;
        exit;
    }

    public function getApiFlightAction() {

        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $tokenId = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->authenticateAPI();

        $strApiEndPointUrl = 'http://api.tektravels.com/BookingEngineService_Air/AirService.svc/rest/Search/';
        $strFlightRoute = '2';
        $origin = 'DEL';
        $destination = 'DXB';
        if ($strFlightRoute == '1') { // OneWay [ Return ] flight Search
            $datah = array(
                'EndUserIp' => $_SERVER['REMOTE_ADDR'],
                'TokenId' => $tokenId,
                "AdultCount" => '1',
                "ChildCount" => '0',
                "InfantCount" => '0',
                "DirectFlight" => "false",
                "OneStopFlight" => "false",
                "JourneyType" => "1",
                "PreferredAirlines" => NULL,
                "Segments" => [array(
                'Origin' => $origin,
                'Destination' => $destination,
                'FlightCabinClass' => '1',
                "PreferredDepartureTime" => '2016-10-08T00:00:00',
                'PreferredArrivalTime' => '2016-10-10T00:00:00'
                    )],
                "Sources" => NULL
            );
        } else {  // TwoWay [ Return ] flight Search 
            $datah = array(
                'EndUserIp' => $_SERVER['REMOTE_ADDR'],
                'TokenId' => $tokenId,
                "AdultCount" => '1',
                "ChildCount" => '0',
                "InfantCount" => '0',
                "DirectFlight" => "false",
                "OneStopFlight" => "false",
                "JourneyType" => "2",
                "ReturnDate" => '2016-10-10T00:00:00',
                "PreferredAirlines" => NULL,
                "Segments" => [
                    array(
                        'Origin' => $origin,
                        'Destination' => $destination,
                        'FlightCabinClass' => '1',
                        "PreferredDepartureTime" => '2016-10-08T00:00:00',
                        'PreferredArrivalTime' => '2016-10-10T00:00:00'
                    ),
                    array(
                        'Origin' => $destination,
                        'Destination' => $origin,
                        'FlightCabinClass' => '1',
                        'PreferredDepartureTime' => '2016-10-10T00:00:00',
                        'PreferredArrivalTime' => '2016-10-10T00:00:00'
                    )
                ],
                "Sources" => NULL
            );
        }

        echo "<pre>";
        print_r($datah);
        //exit;		
        $data_stringh = json_encode($datah);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $strApiEndPointUrl);
        curl_setopt($ch, CURLOPT_ENCODING, "gzip");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            //'Accept-Encoding: gzip',
            'Content-Length: ' . strlen($data_stringh)
        ));

        $outputH = curl_exec($ch);
        $response = json_decode($outputH, true);
        echo "<pre>";
        print_r($response);
        die();
    }

    public function getPackageRatePopupAction() {
        //        error_reporting(E_ALL);
        $responseArray = array();
        $markupMdl = new Markup_Model_Markup();
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $type = $this->getRequest()->getParam('type');
        $packid = @$_REQUEST['packid'];
        $MpType = @$_REQUEST['MpType'];
        $travelers = @$_REQUEST['travelers'];
        $selectedCustomerId = isset($_REQUEST['selectedCustomerId']) ? trim(base64_decode($_REQUEST['selectedCustomerId'])) : '';
        $customerDetails = array();
        $newCustomerId = '';
        if (isset($selectedCustomerId) && trim($selectedCustomerId) != '') {
            $newCustomerId = trim($selectedCustomerId);
        }
        if ($newCustomerId > 0) {
            $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
            $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById($newCustomerId);
            $this->view->customerDetails = $customerDetails;
        }
        $IsB2BCustomer = isset($customerDetails['IsB2BAgent']) ? $customerDetails['IsB2BAgent'] : 0;
        $B2BAgencySysId = isset($customerDetails['AgencySysId']) ? $customerDetails['AgencySysId'] : 0;
        $MarketPlaceId = !empty($MpType) ? $MpType : 1;
        if ($IsB2BCustomer == 1) {
            $MarketPlaceId = 2;
        }

        $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', @$_REQUEST['tripstartdate'])));
        //$packRate = $objPackage->getPackRate($packid, $tripdate,$MarketPlaceId);

        $roomjson = array();
        $totaladult = $totalchild = $totalInfant = 0;
        $roomlp = $this->_request->getParam('roomlp') ? $this->_request->getParam('roomlp') : '';
        for ($k = 1; $k <= $roomlp; $k++) {
            $roomjson[$k]['Adult'] = $this->_request->getParam('adult_' . $k);
            $roomjson[$k]['adult_type'] = $this->_request->getParam('adult_type_' . $k);
            if ($roomjson[$k]['Adult'] == 3) {
                $roomjson[$k]['AdultBedType'] = $this->_request->getParam('adultcl_extrabed_' . $k . '_3');
            }
            $totaladult = $totaladult + $roomjson[$k]['Adult'];
            $roomjson[$k]['Child'] = $this->_request->getParam('child_' . $k);
            $totalchild = $totalchild + $roomjson[$k]['Child'];
            $roomjson[$k]['Infant'] = $this->_request->getParam('infant_' . $k);
            $totalInfant = $totalInfant + $roomjson[$k]['Infant'];
            for ($j = 1; $j <= $roomjson[$k]['Child']; $j++) {
                $roomjson[$k]['ChildAge_' . $j] = $this->_request->getParam('child_age_' . $k . '_' . $j);
                $roomjson[$k]['ChildBedType_' . $j] = $this->_request->getParam('child_extrabed_' . $k . '_' . $j);
            }
        }

        $travelers = $totaladult + $totalchild;
        $arrPkg['DiscountType'] = $_REQUEST['DiscountType'];
        $arrPkg['DiscountVal'] = $_REQUEST['DiscountVal'];
        $arrPkg['AdvBookingPercent'] = $_REQUEST['AdvBookingPercent'];
        $arrPkg['ShareCurrency'] = $_REQUEST['ShareCurrency'];
        $strRoomInfoJson = json_encode($roomjson);
        $paxCount = array_sum((array_column($roomjson, 'Adult')));
        $packRate = $objPackage->getPackRateRowWise($packid, $tripdate, $MarketPlaceId, $paxCount, $strRoomInfoJson);
        $packMPRate = $objPackage->getPackMPRate($packid, $travelers, $tripdate, $MarketPlaceId);
        if (empty($packRate)) {
            echo json_encode('notexists');
            exit;
        } else {
            $getPackageTaxSettingDetail = $markupMdl->getGstTcsSettingsByTPSysId($packid);
            $flightCurrency = $totalFlightMarkup = $totalFlightCost = $totalactcost = $totalmarkup = 0;
            $responseArray['IsFixedDeparture'] = 0;
            $IsFixedPackage = $objPackage->checkFixedDeparturePackage($packid);
            if ($IsFixedPackage['IsFixedDeparturePackage'] == 1) {
                if ($IsFixedPackage['MasterRefId'] == '0') {
                    $childpackarr = $objPackage->getChildPackageList($IsFixedPackage['TPSysId']);
                } else {
                    $childpackarr = $objPackage->getChildPackageList($IsFixedPackage['MasterRefId']);
                }
                if (!empty($childpackarr)) {
                    $l = 0;
                    foreach ($childpackarr as $val) {
                        if ($val['MasterRefId'] == '0') {
                            $MasterId = $val['TPSysId'];
                        }
                        $inventoryData[$l] = $val['TPSysId'];
                        $l++;
                    }
                }
                $AdultCount = (int) array_sum((array_column($roomjson, 'Adult')));
                $ChildCount = (int) array_sum((array_column($roomjson, 'Child')));
                $InfentCount = (int) array_sum((array_column($roomjson, 'Infant')));
                $totalPaxCount = $AdultCount + $ChildCount + $InfentCount;
                $checkavalability = $objPackage->checkFixedDeparturePackageInventory($inventoryData, $tripdate, $totalPaxCount);
                $responseArray['IsFixedDeparture'] = 1;
                $responseArray['IsFixedInventory'] = 0;
                if (!empty($checkavalability)) {
                    $responseArray['IsFixedInventory'] = 1;
                }
                $FDCost = array();
                $dipartureCity = isset($_REQUEST['dipartureCity']) ? (int) $_REQUEST['dipartureCity'] : 0;
                if ($dipartureCity > 0) {
                    $FDCost = $objPackage->getFlightPriceForFixedDeparture($MasterId, $tripdate, $dipartureCity);
                }
                $FDAdultMarkup = $FDInfantMarkup = $FDAdultCost = $FDChildCost = 0;
                $FlightExchangeRate = 1;
                if (!empty($FDCost)) {
                    $CurrencyHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency');
                    $baseCurrencyId = $CurrencyHelperObj->getLoggedInAgencyBaseCurrencyId($intLoggedinUserAgencySysId); // agency's currency
                    if ($FDCost['CurrencySysId'] != $baseCurrencyId) {

                        $FlightExchangeRate = $objPackage->currencyExchangeRate($FDCost['CurrencySysId'], $baseCurrencyId);
                    }

                    $FDAdultCost = ((float) $FDCost['AdultCost']) * ($AdultCount + $ChildCount);
                    $FDChildCost = ((float) $FDCost['InfantCost']) * $InfentCount;
                    if ($MarketPlaceId == 1) {
                        if ($FDCost['MarkupType'] == 1) {
                            $FDAdultMarkup = $FDCost['B2CAdultMarkup'];
                            $FDInfantMarkup = $FDCost['B2CInfantMarkup'];
                        } else {
                            $FDAdultMarkup = ($FDAdultCost * $FDCost['B2CAdultMarkup']) / 100;
                            $FDInfantMarkup = ($FDChildCost * $FDCost['B2CInfantMarkup']) / 100;
                        }
                    } else {
                        if ($FDCost['MarkupType'] == 1) {
                            $FDAdultMarkup = $FDCost['B2BAdultMarkup'];
                            $FDInfantMarkup = $FDCost['B2BInfantMarkup'];
                        } else {
                            $FDAdultMarkup = ($FDAdultCost * $FDCost['B2BAdultMarkup']) / 100;
                            $FDInfantMarkup = ($FDChildCost * $FDCost['B2BInfantMarkup']) / 100;
                        }
                    }
                }
                $objAgency = new Travel_Model_TblAgency();
                $getTcsSettingDetail = $objAgency->getTcsSettingDetail($this->intLoggedinUserAgencySysId);
                $getTaxSettingFlight = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 1);
                foreach ($getTaxSettingFlight as $gstflightVal) {
                    if ($getPackageTaxSettingDetail['GstActivated'] == 1 && $getPackageTaxSettingDetail['GSTFlight'] == $gstflightVal['TaxSysId']) {
                        $flightGstPercentage = $gstflightVal['TaxPercentage'];
                        $taxTypeF = isset($gstflightVal['TaxType']) ? (int) $gstflightVal['TaxType'] : 0;
                    }
                }

                $FDAdultMarkup = $FDAdultMarkup * ($AdultCount + $ChildCount);
                $FDInfantMarkup = $FDInfantMarkup * $InfentCount;
                $totalFlightCost = $totalactcost1 = (float) (($FDAdultCost + $FDChildCost) * $FlightExchangeRate);
                $totalFlightMarkup = $totalmarkup1 = (float) (($FDAdultMarkup + $FDInfantMarkup) * $FlightExchangeRate);
                $flightCurrency = isset($FDCost['CurrencySysId']) ? $FDCost['CurrencySysId'] : $baseCurrencyId;

                $tcsAmountF = $GSTAmountF = 0;
                if ($flightGstPercentage > 0) {
                    if ($taxTypeF == 2) {
                        $GSTAmountF = $flightGstPercentage / 100 * (float) $totalFlightMarkup;
                    } else if ($taxTypeF == 1) {
                        $GSTAmountF = $flightGstPercentage / 100 * ((float) $totalFlightCost + (float) $totalFlightMarkup);
                    } else {
                        $GSTAmountF = 0;
                    }
                }

                if ($getPackageTaxSettingDetail['TcsActivated'] == 1 && $getPackageTaxSettingDetail['TcsFlight'] == $getTcsSettingDetail['TcsTaxSysId']) {
                    if ($getTcsSettingDetail['IsDefaultWeb'] == 1) {
                        $tcsPercentageF = $getTcsSettingDetail['IsPanCard'];
                    } else if ($getTcsSettingDetail['IsDefaultWeb'] == 2) {
                        $tcsPercentageF = $getTcsSettingDetail['IsNotPanCard'];
                    } else {
                        $tcsPercentageF = 0;
                    }
                }
                if ($tcsPercentageF > 0 && $getPackageTaxSettingDetail['TcsFlight'] == 1) {
                    $tcsAmountF = $tcsPercentageF / 100 * ((float) $FDAdultCost + (float) $FDChildCost + (float) $totalFlightMarkup + $GSTAmountF);
                }

                $flighttotalCost = $totalFlightCost + $totalFlightMarkup;
                $flighttotalCostwithgst = $totalFlightCost + $totalFlightMarkup + $GSTAmountF;
            }
            $optionalSightInclude = (isset($_REQUEST['optionalSightInclude'])) ? implode(', ', json_decode(base64_decode($_REQUEST['optionalSightInclude']))) : '';

            if (!empty($optionalSightInclude)) {
                $ssdaywisearr = $objPackage->getFlexiPackageOptionalSightseenListByItenarary(@$itenArray[0]['TPIntSysId'], 'Optional', '', $MarketPlaceId, $tripdate, $optionalSightInclude);
                $objActivities = new Travel_Model_TblActivities();
                $arrStandardMarkups = $objActivities->getStandardMarkupsActivities($this->intLoggedinUserAgencySysId, $MpType);
                foreach ($ssdaywisearr as $sightDetailsArr) {
                    $TotalCostArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getReadymadeOptionalSightseeingRatesnMarkup($sightDetailsArr, $arrStandardMarkups);
                    $totalactcost += ($totalchild * $TotalCostArr['ChildCost']) + ($totaladult * $TotalCostArr['AdultCost']);
                    $totalmarkup += ($totalchild * $TotalCostArr['ChildCostMarkup']) + ($totaladult * $TotalCostArr['AdultCostMarkup']);
                }
            }
            if ($MarketPlaceId == 2 && (int) $_REQUEST['aId'] > 0) {
                $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getMarkPercentageForAgent($_REQUEST['aId'], $B2BAgencySysId);
                if ($arrPkgCost > 0) {
                    $packMPRate[0]['MarkPercent'] = $arrPkgCost;
                }
            }

            $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($packid, $strRoomInfoJson, $arrPkg, $packMPRate[0], $packRate[0], $_REQUEST['ExchangeRate'], $type, $totalactcost, $totalmarkup);
            $flighttotalCostF = $flighttotalCostwithgst * $arrPkgCost['ExchangeRate'];
            $flighttotalCost = $flighttotalCost * $arrPkgCost['ExchangeRate'];
//                   $flightCost = $totalFlightCost * $arrPkgCost['ExchangeRate'];
//                   $flightMarkup = $totalFlightMarkup * $arrPkgCost['ExchangeRate'];

            $finalPackageCostWithDiscount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageCostwithDiscount($arrPkg, $arrPkgCost['FinalCost']);
            //            if ($MarketPlaceId == 2) {
            //                $B2BAgencyMarkUp = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addB2BAgencyMarkup($arrPkgCost['FinalCost'], (int) $_REQUEST['aId'], (float) $arrPkgCost['FinalMarkUp'],$B2BAgencySysId);
            //                $arrPkgCost['FinalMarkUp'] = $B2BAgencyMarkUp;
            //                $arrPkgCost['SourcingMarkUp'] = $B2BAgencyMarkUp;
            //                $arrPkgCost['SourcingNetPrice'] = $arrPkgCost['SourcingNetCost'] + $B2BAgencyMarkUp;
            //                $finalPackageCostWithMarkupnTax = $finalPackageCostWithDiscount + $arrPkgCost['FinalMarkUp'] + $arrPkgCost['Tax'];
            //            } else {

            $getTaxSettingDetail = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 5);
            foreach ($getTaxSettingDetail as $gstVal) {
                if ($getPackageTaxSettingDetail['GstActivated'] == 1 && $getPackageTaxSettingDetail['GSTLandPackage'] == $gstVal['TaxSysId']) {
                    $landPkgGstPercentage = $gstVal['TaxPercentage'];
                    $TaxType = isset($gstVal['TaxType']) ? (int) $gstVal['TaxType'] : 0;
                }
            }
            if ($getPackageTaxSettingDetail['TcsActivated'] == 1 && $getPackageTaxSettingDetail['TcsLandPackage'] == $getTcsSettingDetail['TcsTaxSysId']) {
                if ($getTcsSettingDetail['IsDefaultWeb'] == 1) {
                    $landPkgTcsPercentage = $getTcsSettingDetail['IsPanCard'];
                } else if ($getTcsSettingDetail['IsDefaultWeb'] == 2) {
                    $landPkgTcsPercentage = $getTcsSettingDetail['IsNotPanCard'];
                } else {
                    $landPkgTcsPercentage = 0;
                }
            }
            $tcsAmount = $GSTAmount = 0;
            if ($TaxType == 1 && $landPkgGstPercentage > 0) {
                $GSTAmount = ((float) ($arrPkgCost['FinalCost'] + $arrPkgCost['FinalMarkUp']) * $landPkgGstPercentage) / 100;
            } elseif ($TaxType == 2 && $landPkgGstPercentage > 0) {
                $GSTAmount = ((float) $arrPkgCost['FinalMarkUp'] * $landPkgGstPercentage) / 100;
            } else {
                $GSTAmount = 0;
            }
            if ($landPkgTcsPercentage > 0 && $getPackageTaxSettingDetail['TcsLandPackage'] == 1) {
                $tcsAmount = $landPkgTcsPercentage / 100 * ((float) $arrPkgCost['FinalCost'] + (float) $arrPkgCost['FinalMarkUp'] + $GSTAmount);
            }


            $totalPackageCostwithgst = (float) $arrPkgCost['FinalCost'] + (float) $arrPkgCost['FinalMarkUp'] + $GSTAmount;
            $totalPackageCost = (float) $arrPkgCost['FinalCost'] + (float) $arrPkgCost['FinalMarkUp'];
//     echo"<pre>";print_r( $GSTAmount);
//     echo"<pre>";print_r($arrPkgCost );die('sss');
            $finalPackageCostWithMarkupnTax = $finalPackageCostWithDiscount + $arrPkgCost['FinalMarkUp'] + $arrPkgCost['Tax'];
            //            }
            $advanceBookingAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $finalPackageCostWithMarkupnTax);
            $responseArray['AdvBookingPercent'] = $arrPkg['AdvBookingPercent'];
            $responseArray['bookingAmount'] = $advanceBookingAmount;
            $responseArray['TotalPrice'] = round($totalPackageCost + $flighttotalCost, 2);
            $responseArray['GrandTotal'] = round($totalPackageCostwithgst + $flighttotalCostF, 2);
            $responseArray['PricePerPax'] = round($responseArray['GrandTotal'] / $travelers, 2);
            $responseArray['DiscountedPrice'] = $arrPkgCost['FinalDiscount'];
            $responseArray['FinalMarkUp'] = round($arrPkgCost['FinalMarkUp'], 2);
            $responseArray['FinalCost'] = round($arrPkgCost['FinalCost'], 2);
            $responseArray['Tax'] = $arrPkgCost['Tax'];
            $responseArray['SourcingCurrency'] = $arrPkgCost['SourcingCurrency'];
            $responseArray['ExchangeRate'] = $arrPkgCost['ExchangeRate'];
            $responseArray['displayExchangeRate'] = $arrPkgCost['displayExchangeRate'];
            $responseArray['SourcingNetCost'] = round($arrPkgCost['SourcingNetCost'], 2);
            $responseArray['SourcingMarkUp'] = round($arrPkgCost['SourcingMarkUp'], 2);
            $responseArray['SourcingNetPrice'] = round($arrPkgCost['SourcingNetPrice'], 2);
            $responseArray['baseCurrExchange'] = $arrPkgCost['baseCurrExchange'];
            $responseArray['ShareCurrency'] = $arrPkgCost['ShareCurrency'];
            $responseArray['SourcingCurrencyId'] = $arrPkgCost['SourcingCurrencyId'];
            $responseArray['TotalFlightCost'] = $totalFlightCost;
            $responseArray['TotalFlightMarkup'] = $totalFlightMarkup;
            $responseArray['FlightCurrency'] = $flightCurrency;
            if (isset($_REQUEST['GTXNetworkAgencySysId']) && !empty($_REQUEST['GTXNetworkAgencySysId'])) {
                $objAgency = new Travel_Model_TblAgency();
                $getAgencyDetail = $objAgency->getAgencyUserList($intLoggedinUserAgencySysId);
                $MarkUpOnGTXNetworkPackage = $getAgencyDetail['MarkUpOnGTXNetworkPackage'];
                //echo "<pre>";print_r($responseArray);die; 
                $responseArray['FinalMarkUp'] = round((float) ($responseArray['FinalMarkUp'] + $responseArray['TotalFlightMarkup']), 2);
                $responseArray['bookingAmount'] = round(($advanceBookingAmount + (($responseArray['FinalMarkUp'] * $responseArray['AdvBookingPercent']) / 100)), 2);
                $responseArray['TotalPrice'] = round(($responseArray['TotalPrice'] + $responseArray['FinalMarkUp']), 2);
                $responseArray['GrandTotal'] = round(($responseArray['GrandTotal'] + $responseArray['FinalMarkUp']), 2);
                $responseArray['PricePerPax'] = round(($responseArray['GrandTotal'] / $travelers), 2);

                $responseArray['FinalCost'] = round(($arrPkgCost['FinalCost'] + $arrPkgCost['FinalMarkUp']), 2);

                $responseArray['SourcingNetCost'] = round(($arrPkgCost['SourcingNetCost'] + $arrPkgCost['FinalMarkUp']), 2);
                $responseArray['SourcingMarkUp'] = (float) (($responseArray['SourcingNetCost'] * $MarkUpOnGTXNetworkPackage) / 100);
                $responseArray['SourcingNetPrice'] = round(($responseArray['SourcingNetCost'] + $responseArray['SourcingMarkUp']), 2);
            }
            $responseArray['roomjson'] = base64_encode($strRoomInfoJson);
//            echo "<pre>";print_r($responseArray);exit;
            echo json_encode($responseArray);
            exit;
        }
    }

    public function getPackageRateAction() {
//                error_reporting(E_ALL);
        $responseArray = array();
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $type = $this->getRequest()->getParam('type');
        $packid = $_REQUEST['packid'];
        $MpType = $_REQUEST['MpType'];
        $travelers = @$_REQUEST['travelers'];
        $selectedCustomerId = isset($_REQUEST['selectedCustomerId']) ? trim(base64_decode($_REQUEST['selectedCustomerId'])) : '';
        $customerDetails = array();
        $newCustomerId = '';
        if (isset($selectedCustomerId) && trim($selectedCustomerId) != '') {
            $newCustomerId = trim($selectedCustomerId);
        }
        if ($newCustomerId > 0) {
            $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
            $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById($newCustomerId);
            $this->view->customerDetails = $customerDetails;
        }
        $IsB2BCustomer = isset($customerDetails['IsB2BAgent']) ? $customerDetails['IsB2BAgent'] : 0;
        $B2BAgencySysId = isset($customerDetails['AgencySysId']) ? $customerDetails['AgencySysId'] : 0;
        $MarketPlaceId = !empty($MpType) ? $MpType : 1;
        if ($IsB2BCustomer == 1) {
            $MarketPlaceId = 2;
        }

        $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', @$_REQUEST['tripstartdate'])));
        //$packRate = $objPackage->getPackRate($packid, $tripdate,$MarketPlaceId);

        $roomjson = array();
        $totaladult = $totalchild = $totalInfant = 0;
        $roomlp = $this->_request->getParam('roomlp') ? $this->_request->getParam('roomlp') : '';
        for ($k = 1; $k <= $roomlp; $k++) {
            $roomjson[$k]['Adult'] = $this->_request->getParam('adult_' . $k);
            $roomjson[$k]['adult_type'] = $this->_request->getParam('adult_type_' . $k);
            if ($roomjson[$k]['Adult'] == 3) {
                $roomjson[$k]['AdultBedType'] = $this->_request->getParam('adultcl_extrabed_' . $k . '_3');
            }
            $totaladult = $totaladult + $roomjson[$k]['Adult'];
            $roomjson[$k]['Child'] = $this->_request->getParam('child_' . $k);
            $totalchild = $totalchild + $roomjson[$k]['Child'];
            $roomjson[$k]['Infant'] = $this->_request->getParam('infant_' . $k);
            $totalInfant = $totalInfant + $roomjson[$k]['Infant'];
            for ($j = 1; $j <= $roomjson[$k]['Child']; $j++) {
                $roomjson[$k]['ChildAge_' . $j] = $this->_request->getParam('child_age_' . $k . '_' . $j);
                $roomjson[$k]['ChildBedType_' . $j] = $this->_request->getParam('child_extrabed_' . $k . '_' . $j);
            }
        }

        $travelers = $totaladult + $totalchild;
        $arrPkg['DiscountType'] = $_REQUEST['DiscountType'];
        $arrPkg['DiscountVal'] = $_REQUEST['DiscountVal'];
        $arrPkg['AdvBookingPercent'] = $_REQUEST['AdvBookingPercent'];
        $arrPkg['ShareCurrency'] = $_REQUEST['ShareCurrency'];
        $strRoomInfoJson = json_encode($roomjson);
        $paxCount = array_sum((array_column($roomjson, 'Adult')));
        $packRate = $objPackage->getPackRateRowWise($packid, $tripdate, $MarketPlaceId, $paxCount, $strRoomInfoJson);
        $packMPRate = $objPackage->getPackMPRate($packid, $travelers, $tripdate, $MarketPlaceId);
        if (empty($packRate)) {
            echo json_encode('notexists');
            exit;
        } else {
            $flightCurrency = $totalFlightMarkup = $totalFlightCost = $totalactcost = $totalmarkup = 0;
            $responseArray['IsFixedDeparture'] = 0;
            $IsFixedPackage = $objPackage->checkFixedDeparturePackage($packid);
            if ($IsFixedPackage['IsFixedDeparturePackage'] == 1) {
                if ($IsFixedPackage['MasterRefId'] == '0') {
                    $childpackarr = $objPackage->getChildPackageList($IsFixedPackage['TPSysId']);
                } else {
                    $childpackarr = $objPackage->getChildPackageList($IsFixedPackage['MasterRefId']);
                }
                if (!empty($childpackarr)) {
                    $l = 0;
                    foreach ($childpackarr as $val) {
                        if ($val['MasterRefId'] == '0') {
                            $MasterId = $val['TPSysId'];
                        }
                        $inventoryData[$l] = $val['TPSysId'];
                        $l++;
                    }
                }
                $AdultCount = (int) array_sum((array_column($roomjson, 'Adult')));
                $ChildCount = (int) array_sum((array_column($roomjson, 'Child')));
                $InfentCount = (int) array_sum((array_column($roomjson, 'Infant')));
                $totalPaxCount = $AdultCount + $ChildCount + $InfentCount;
                $responseArray['IsFixedDeparture'] = 1;
                $responseArray['IsFixedInventory'] = 0;
                if ($IsFixedPackage['IsCommonFlightPackage'] == 0) {
                    $checkavalability = $objPackage->checkFixedDeparturePackageInventory($inventoryData, $tripdate, $totalPaxCount);
                    if (!empty($checkavalability)) {
                        $responseArray['IsFixedInventory'] = 1;
                    }
                } else {
                    $responseArray['IsFixedInventory'] = 1;
                }
                $FDCost = array();
                $dipartureCity = isset($_REQUEST['dipartureCity']) ? (int) $_REQUEST['dipartureCity'] : 0;
                if ($dipartureCity > 0) {
                    if ($IsFixedPackage['IsCommonFlightPackage'] == 1) {
                        $FDCost = $objPackage->getFlightPriceForFixedDepartureCommon($MasterId, $tripdate, $dipartureCity);
//echo "<pre>";print_r($FDCost);die;
                    } else {
                        $FDCost = $objPackage->getFlightPriceForFixedDeparture($MasterId, $tripdate, $dipartureCity);
                    }
                }
                $FDAdultMarkup = $FDInfantMarkup = $FDAdultCost = $FDChildCost = 0;
                $FlightExchangeRate = 1;
                if (!empty($FDCost)) {
                    $CurrencyHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency');
                    $baseCurrencyId = $CurrencyHelperObj->getLoggedInAgencyBaseCurrencyId($intLoggedinUserAgencySysId); // agency's currency
                    if ($FDCost['CurrencySysId'] != $baseCurrencyId) {

                        $FlightExchangeRate = $objPackage->currencyExchangeRate($FDCost['CurrencySysId'], $baseCurrencyId);
                    }

                    $FDAdultCost = ((float) $FDCost['AdultCost']) * ($AdultCount + $ChildCount);
                    $FDChildCost = ((float) $FDCost['InfantCost']) * $InfentCount;
                    if ($MarketPlaceId == 1) {
                        if ($FDCost['MarkupType'] == 1) {
                            $FDAdultMarkup = $FDCost['B2CAdultMarkup'];
                            $FDInfantMarkup = $FDCost['B2CInfantMarkup'];
                        } else {
                            $FDAdultMarkup = ($FDAdultCost * $FDCost['B2CAdultMarkup']) / 100;
                            $FDInfantMarkup = ($FDChildCost * $FDCost['B2CInfantMarkup']) / 100;
                        }
                    } else {
                        if ($FDCost['MarkupType'] == 1) {
                            $FDAdultMarkup = $FDCost['B2BAdultMarkup'];
                            $FDInfantMarkup = $FDCost['B2BInfantMarkup'];
                        } else {
                            $FDAdultMarkup = ($FDAdultCost * $FDCost['B2BAdultMarkup']) / 100;
                            $FDInfantMarkup = ($FDChildCost * $FDCost['B2BInfantMarkup']) / 100;
                        }
                    }
                }
                $FDAdultMarkup = $FDAdultMarkup * ($AdultCount + $ChildCount);
                $FDInfantMarkup = $FDInfantMarkup * $InfentCount;
                $totalFlightCost = $totalactcost = (float) (($FDAdultCost + $FDChildCost) * $FlightExchangeRate);
                $totalFlightMarkup = $totalmarkup = (float) (($FDAdultMarkup + $FDInfantMarkup) * $FlightExchangeRate);
                $flightCurrency = isset($FDCost['CurrencySysId']) ? $FDCost['CurrencySysId'] : $baseCurrencyId;
            }
            $rominfojson = json_decode($strRoomInfoJson, 1);
            $VisaCostDetail = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getReadymadepackageVisaCostDetail($packid, $packMPRate['0']['MarketPlaceId'], $rominfojson);
            if (is_array($VisaCostDetail)) {
                $totalactcost += (float) isset($VisaCostDetail['visaTotalCost']) ? $VisaCostDetail['visaTotalCost'] : 0;
                $totalmarkup += (float) isset($VisaCostDetail['visaTotalMarkup']) ? $VisaCostDetail['visaTotalMarkup'] : 0;
            }
//            echo"<pre>";print_r($totalactcost);die('dd');

            $optionalSightInclude = (isset($_REQUEST['optionalSightInclude'])) ? implode(', ', json_decode(base64_decode($_REQUEST['optionalSightInclude']))) : '';

            if (!empty($optionalSightInclude)) {
                $ssdaywisearr = $objPackage->getFlexiPackageOptionalSightseenListByItenarary(@$itenArray[0]['TPIntSysId'], 'Optional', '', $MarketPlaceId, $tripdate, $optionalSightInclude);
                $objActivities = new Travel_Model_TblActivities();
                $arrStandardMarkups = $objActivities->getStandardMarkupsActivities($this->intLoggedinUserAgencySysId, $MpType);
                foreach ($ssdaywisearr as $sightDetailsArr) {
                    $TotalCostArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getReadymadeOptionalSightseeingRatesnMarkup($sightDetailsArr, $arrStandardMarkups);
                    $totalactcost += ($totalchild * $TotalCostArr['ChildCost']) + ($totaladult * $TotalCostArr['AdultCost']);
                    $totalmarkup += ($totalchild * $TotalCostArr['ChildCostMarkup']) + ($totaladult * $TotalCostArr['AdultCostMarkup']);
                }
            }
            if ($MarketPlaceId == 2 && (int) $_REQUEST['aId'] > 0) {
                $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getMarkPercentageForAgent($_REQUEST['aId'], $B2BAgencySysId);
                if ($arrPkgCost > 0) {
                    $packMPRate[0]['MarkPercent'] = $arrPkgCost;
                }
            }
            $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($packid, $strRoomInfoJson, $arrPkg, $packMPRate[0], $packRate[0], $_REQUEST['ExchangeRate'], $type, $totalactcost, $totalmarkup);
            $finalPackageCostWithDiscount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageCostwithDiscount($arrPkg, $arrPkgCost['FinalCost']);
            //            if ($MarketPlaceId == 2) {
            //                $B2BAgencyMarkUp = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addB2BAgencyMarkup($arrPkgCost['FinalCost'], (int) $_REQUEST['aId'], (float) $arrPkgCost['FinalMarkUp'],$B2BAgencySysId);
            //                $arrPkgCost['FinalMarkUp'] = $B2BAgencyMarkUp;
            //                $arrPkgCost['SourcingMarkUp'] = $B2BAgencyMarkUp;
            //                $arrPkgCost['SourcingNetPrice'] = $arrPkgCost['SourcingNetCost'] + $B2BAgencyMarkUp;
            //                $finalPackageCostWithMarkupnTax = $finalPackageCostWithDiscount + $arrPkgCost['FinalMarkUp'] + $arrPkgCost['Tax'];
            //            } else {
            $finalPackageCostWithMarkupnTax = $finalPackageCostWithDiscount + $arrPkgCost['FinalMarkUp'] + $arrPkgCost['Tax'];
            //            }
            $advanceBookingAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $finalPackageCostWithMarkupnTax);
            $responseArray['AdvBookingPercent'] = $arrPkg['AdvBookingPercent'];
            $responseArray['bookingAmount'] = $advanceBookingAmount;
            $responseArray['TotalPrice'] = round($finalPackageCostWithMarkupnTax + $arrPkgCost['FinalDiscount'], 2);
            $responseArray['GrandTotal'] = round($finalPackageCostWithMarkupnTax, 2);
            $responseArray['PricePerPax'] = round($responseArray['GrandTotal'] / $travelers, 2);
            $responseArray['DiscountedPrice'] = $arrPkgCost['FinalDiscount'];
            $responseArray['FinalMarkUp'] = round($arrPkgCost['FinalMarkUp'], 2);
            $responseArray['FinalCost'] = round($arrPkgCost['FinalCost'], 2);
            $responseArray['Tax'] = $arrPkgCost['Tax'];
            $responseArray['SourcingCurrency'] = $arrPkgCost['SourcingCurrency'];
            $responseArray['ExchangeRate'] = $arrPkgCost['ExchangeRate'];
            $responseArray['SourcingNetCost'] = round($arrPkgCost['SourcingNetCost'], 2);
            $responseArray['SourcingMarkUp'] = round($arrPkgCost['SourcingMarkUp'], 2);
            $responseArray['SourcingNetPrice'] = round($arrPkgCost['SourcingNetPrice'], 2);
            $responseArray['baseCurrExchange'] = $arrPkgCost['baseCurrExchange'];
            $responseArray['ShareCurrency'] = $arrPkgCost['ShareCurrency'];
            $responseArray['SourcingCurrencyId'] = $arrPkgCost['SourcingCurrencyId'];
            $responseArray['TotalFlightCost'] = $totalFlightCost;
            $responseArray['TotalFlightMarkup'] = $totalFlightMarkup;
            $responseArray['FlightCurrency'] = $flightCurrency;
//                            echo "<pre>";print_r($arrPkgCost);die; 

            if (isset($_REQUEST['GTXNetworkAgencySysId']) && !empty($_REQUEST['GTXNetworkAgencySysId'])) {
                $objAgency = new Travel_Model_TblAgency();
                $getAgencyDetail = $objAgency->getAgencyUserList($intLoggedinUserAgencySysId);
                $MarkUpOnGTXNetworkPackage = $getAgencyDetail['MarkUpOnGTXNetworkPackage'];
                //echo "<pre>";print_r($responseArray);die; 
                $responseArray['FinalMarkUp'] = round((float) (($responseArray['GrandTotal'] * $MarkUpOnGTXNetworkPackage) / 100), 2);
                $responseArray['bookingAmount'] = round(($advanceBookingAmount + (($responseArray['FinalMarkUp'] * $responseArray['AdvBookingPercent']) / 100)), 2);
                $responseArray['TotalPrice'] = round(($responseArray['TotalPrice'] + $responseArray['FinalMarkUp']), 2);
                $responseArray['GrandTotal'] = round(($responseArray['GrandTotal'] + $responseArray['FinalMarkUp']), 2);
                $responseArray['PricePerPax'] = round(($responseArray['GrandTotal'] / $travelers), 2);

                $responseArray['FinalCost'] = round(($arrPkgCost['FinalCost'] + $arrPkgCost['FinalMarkUp']), 2);

                $responseArray['SourcingNetCost'] = round(($arrPkgCost['SourcingNetCost'] + $arrPkgCost['FinalMarkUp']), 2);
                $responseArray['SourcingMarkUp'] = (float) (($responseArray['SourcingNetCost'] * $MarkUpOnGTXNetworkPackage) / 100);
                $responseArray['SourcingNetPrice'] = round(($responseArray['SourcingNetCost'] + $responseArray['SourcingMarkUp']), 2);
            }
            $responseArray['roomjson'] = base64_encode($strRoomInfoJson);
            //echo "<pre>";print_r($responseArray);exit;
            echo json_encode($responseArray);
            exit;
        }
    }

    public function getCustomerPackageRateAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $packid = @$_REQUEST['packid'];
        $travelers = @$_REQUEST['travelers'];
        $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', @$_REQUEST['tripdate'])));
        $packRate = $objPackage->getCustPackRate($packid, $travelers, $tripdate);
        $CostPPSO = @$packRate[0]['CostPPSO'];
        $CostPPDO = (@$packRate[0]['CostPPDO'] * 2);
        $CostPPTO = (@$packRate[0]['CostPPTO'] * 3);
        $CostExtraBed = @$packRate[0]['CostExtraBed'];
        $CostChildWithoutBed = @$packRate[0]['CostChildWithoutBed'];
        if (@$packRate[0]['Tax'] == 'Excluded') {
            $ExcludedPercent = @$packRate[0]['ExcludedPercent'];
        }
        $adultcost = '0';
        $childcost = '0';
        $extrabedcost = '0';
        $withoutbedcost = '0';
        for ($d = 1; $d <= @$_REQUEST['roomlp']; $d++) {
            $rmadlt = '';
            $rmchld = '';
            $rmadlt = @$_REQUEST['adult_' . @$d];
            $rmchld = @$_REQUEST['child_' . @$d];
            $extrabed = @$_REQUEST['extrabed_' . @$d];
            if ($rmadlt == '3') {
                $adultcost = @$adultcost + @$CostPPTO;
            } elseif ($rmadlt == '2') {
                $adultcost = @$adultcost + @$CostPPDO;
            } else {
                $adultcost = @$adultcost + @$CostPPSO;
            }
            if ($extrabed == 'extrabed') {
                $extrabedcost = @$extrabedcost + @$CostExtraBed;
            }
            if ($extrabed == 'withoutbed') {
                $withoutbedcost = @$withoutbedcost + @$CostChildWithoutBed;
            }
        }
        $totalcost = @$adultcost + @$extrabedcost + @$withoutbedcost;
        if (@$ExcludedPercent > 0) {
            $totalcost = @$totalcost + round((@$totalcost * @$ExcludedPercent) / 100);
        }

        echo $totalcost;
        exit;
    }

    public function updatePackageMinpaxAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $packid = @$_REQUEST['packid'];
        $minpax = @$_REQUEST['minpax'];
        //        $DiscountType = $_REQUEST['DiscountType'] ? @$_REQUEST['DiscountType'] : '';
        //        $DiscountVal = isset($_REQUEST['DiscountVal']) ? $_REQUEST['DiscountVal'] : '0';
        $reslastint = json_decode(base64_decode(@$_REQUEST['multipackres']), true);
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'MinPax' => @$minpax,
            'AdvBookingPercent' => isset($_REQUEST['advancerule']) ? $_REQUEST['advancerule'] : '10',
            'AdvBookingDays' => isset($_REQUEST['balancerule']) ? $_REQUEST['balancerule'] : '30',
            'AdvBookingType' => $_REQUEST['AdvBookingType'],
            'AdvFixedType' => isset($_REQUEST['AdvFixedType']) ? $_REQUEST['AdvFixedType'] : 0,
            //            'DiscountType' => $DiscountType,
            //            'DiscountVal' => $DiscountVal,
            'UpdateDate' => @$currentDate
        );
        echo "<pre>";
        print_r($data);
        if (!empty($reslastint)) {
            for ($j = 0; $j < count($reslastint); $j++) {
                $where = array('TPSysId = ? ' => @$reslastint[$j]);
                $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
            }
        }

        //         $multipackres = $this->getRequest()->getParam('multipackres');
        //        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
        $type = $this->getRequest()->getParam('type');
        if ($type == 1) {
            $Details = 5;
        }
        if ($type == 2) {
            $Details = 6;
        }
        if ($type == 3) {
            $Details = 7;
        }
        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => $Details,
            'UserSysId' => $this->intLoggedinUserId
        );
        Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);

        /* -------------------- end insert data for contributor tab----------------------- */
        exit;
    }

    public function updateplanpriceAction() {
        $objPackage = new Travel_Model_TblPackage();
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $totprice = $this->_request->getParam('totprice') ? $this->_request->getParam('totprice') : '';
        $tpID = $this->_request->getParam('tpID') ? $this->_request->getParam('tpID') : '';

        //  $where = "TPSysId = " . $tpID;
        $updatetravelplan = array(
            'NetPrice' => $totprice
        );

        $updateId = $objPackage->updateFlexiPackage($updatetravelplan, $tpID);
    }

    public function updateCustomerPackageMinpaxAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $packid = @$_REQUEST['packid'];
        $minpax = @$_REQUEST['minpax'];
        $advancerule = @$_REQUEST['advancerule'];
        $balancerule = @$_REQUEST['balancerule'];
        $discounttype = @$_REQUEST['DiscountType'];
        $discountval = @$_REQUEST['DiscountVal'] ? $_REQUEST['DiscountVal'] : 0;
        $balancerule = @$_REQUEST['balancerule'];
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'MinPax' => @$minpax,
            'AdvBookingPercent' => @$advancerule,
            'AdvBookingDays' => @$balancerule,
            'DiscountType' => $discounttype,
            'DiscountVal' => $discountval,
            'UpdateDate' => @$currentDate
        );
        $where = array('TPSysId = ? ' => @$packid);
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan', $data, $where);
        exit;
    }

    public function updateCustomerPackageMinpaxByoAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $packid = @$_REQUEST['packid'];
        $minpax = @$_REQUEST['minpax'];
        $advancerule = @$_REQUEST['advancerule'];
        $balancerule = @$_REQUEST['balancerule'];
        $discounttype = @$_REQUEST['DiscountType'];
        $discountval = @$_REQUEST['DiscountVal'] ? $_REQUEST['DiscountVal'] : 0;
        $balancerule = @$_REQUEST['balancerule'];
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'MinPax' => @$minpax,
            'AdvBookingPercent' => @$advancerule,
            'AdvBookingDays' => @$balancerule,
            'DiscountType' => $discounttype,
            'DiscountVal' => $discountval,
            'UpdateDate' => @$currentDate
        );
        $where = array('TPSysId = ? ' => @$packid);
        $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
        exit;
    }

    public function updateCustomerPackagePriceRangeAction() {
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = @$_REQUEST['tpsysID'];
        $pricerange = @$_REQUEST['pricerange'];
        $currdate = date('Y-m-d');
        $data = array(
            'PriceRange' => @$pricerange,
            'UpdateDate' => @$currdate
        );
        $where = array('TPSysId = ? ' => $tpsysID);
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan', $data, $where);
        exit;
    }

    public function updateCustomerPackageHotelApiAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $packageId = @$_REQUEST['packageId'];
        $apibook = @$_REQUEST['apibook'];

        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'IsHotelFromAPI' => @$apibook
        );
        $where = array('TPSysId = ? ' => @$packageId);
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan', $data, $where);
        exit;
    }

    public function deletePackRateAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $packid = @$_REQUEST['packid'];
        $MarketPlaceId = @$_REQUEST['MarketPlaceId'];
        $PackCategoryId = @$_REQUEST['PackCategoryId'];
        $fromDate = date("Y-m-d", strtotime($_REQUEST['fromdate']));
        $toDate = date("Y-m-d", strtotime($_REQUEST['todate']));
        $currentDate = date('Y-m-d H:i:s');
        $flexiPackageList = $objPackage->getFlexiPackageList($packid);
        //echo "<pre>";print_r($flexiPackageList['IsFixedDeparturePackage']);die;
        if ($flexiPackageList['IsFixedDeparturePackage'] == 1) {
            if (!empty($fromDate) && $packid > 0) {
                $getInventoryCount = $objPackage->checkFixedInventoryInPkg($fromDate, $packid);
                foreach ($getInventoryCount as $iKey => $iValue) {
                    $SoldInventory = (int) $iValue['SoldInventory'];
                    if ($SoldInventory > 0) {
                        echo json_encode(array("success" => false, 'message' => 'Can not delete (' . $SoldInventory . ' inventory sold for this date)!!'));
                        exit;
                    }
                }
            }
        }



        $data = array(
            'IsMarkForDel' => '1',
            'UpdateDate' => @$currentDate
        );
        $where = array(
            'TPIntSysId = ? ' => @$packid,
            'FromDate = ? ' => @$fromDate,
            'ToDate = ? ' => @$toDate,
            'MarketPlaceId = ? ' => $MarketPlaceId,
            'PackCategoryId = ? ' => $PackCategoryId
        );
        $updateId = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $data, $where);
        $where1 = array(
            'TPSysId = ? ' => @$packid,
            'StartDate = ? ' => @$fromDate,
            'ValidTill = ? ' => @$toDate,
            'MarketPlaceId = ? ' => $MarketPlaceId
        );
        $updateId1 = $objPackage->updateData('TB_TravelPlan_Rate', $data, $where1);

        $multipackres = $this->getRequest()->getParam('multipackres');
        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => 3,
            'UserSysId' => $this->intLoggedinUserId
        );
        Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
        /* -------------------- end insert data for contributor tab----------------------- */



        $packid = @$_REQUEST['packid'];
        $rateRowCount = $objPackage->CheckIfMarketWiseRateBYOReadyMadeB2bExists($packid);

        if ($rateRowCount == 0) {
            $dataArr = array(
                'IsGTXNetwork' => 0
            );
            $where = "TPSysId = " . $packid . "";
            $objPackage->updateData('TB_TravelPlan', $dataArr, $where);
        }

        /* Added By Mangal For Update Itenary FixedInventory TB_TravelPlan_Itenary_FixedInventory Data 18-11-2018 Start */


        if (@$flexiPackageList['MasterRefId'] == '0') {
            $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['TPSysId']);
        } else {
            $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['MasterRefId']);
        }
        $inventoryData = array();
        $l = 0;
        $MasterId = 0;
        if (!empty($childpackarr)) {
            foreach ($childpackarr as $val) {
                if ($val['MasterRefId'] == '0') {
                    $MasterId = $val['TPSysId'];
                }
                $inventoryData[$l] = $val['TPSysId'];
                $l++;
            }
        }
        $checkFixedInventory = $objPackage->checkMarketWiseRateForFixedInventoryByDate($inventoryData, $fromDate, $toDate);
        if (($checkFixedInventory[0]['total']) == 0) {
            $updateData = ['IsMarkForDel' => 1];
            $where = array('TPSysID = ? ' => $MasterId, 'FromDate = ? ' => $fromDate);
            $RefTPSysID = $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory', $updateData, $where);
        }
        echo json_encode(array("success" => true, "rateRowCount" => $rateRowCount));
        exit;
    }

    public function currencyExchangeRateAction() {
        $this->view->layout()->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $fromcurrency = @$_REQUEST['fromcurrency'];
        $tocurrency = @$_REQUEST['tocurrency'];
        $exchangerate = $objPackage->currencyExchangeRate($fromcurrency, $tocurrency);
        echo $exchangerate;
        exit;
        //echo '<pre>';
        //print_r($exchangerate);			
    }

    public function updateInsuranceAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $customerID = $this->getRequest()->getParam('customerID');
        $masterpolicy = $this->getRequest()->getParam('masterpolicy');
        $checkedval = $this->getRequest()->getParam('checkedval');
        $compsysID = $this->getRequest()->getParam('compsysID');
        $getlatesttrxgroupid = $objPackage->GetLatestTrxGrpID();
        $tpsysID = $this->getRequest()->getParam('tpsysID');
        if ($checkedval == 1) {
            if (!empty($tpsysID)) {
                $getinsuranceitineraray = $objPackage->GetInsuranceItinerary($tpsysID);
                $tpintsysID = $getinsuranceitineraray['TPIntSysId'];
                if (!empty($tpintsysID)) {
                    $insurearray = array();
                    $inusreoptiondetail = $objPackage->GetSelectedInsuranceOption($tpintsysID);
                    for ($i = 0; $i < count($inusreoptiondetail); $i++) {
                        $insurearray[] = $inusreoptiondetail[$i]['MasterPolicySysId'];
                    }
                }
            }
            if (empty($tpsysID)) {
                $tpsysID = $post['tpsysID'];
                $createddate = date('Y-m-d');
                $itinerarayarr = array(
                    "TPSysId" => $tpsysID,
                    "Sequence" => 0,
                    "AgencySysId" => $intLoggedinUserAgencySysId,
                    "Title" => "Insurance",
                    "Details" => '',
                    "InclMask" => '',
                    "ExclusionMask" => '',
                    "InclCatMask" => '',
                    "PackInclMask" => '',
                    "PackTypeMask" => '',
                    "ImageTN" => '',
                    "ImgForList" => '',
                    "ImgeDetails" => '',
                    "StartDate" => $createddate,
                    "EndDate" => '',
                    "Rating" => 0,
                    "TotalMinDays" => 0,
                    "TotalMaxDays" => 0,
                    "Hotels" => '',
                    "PopularPlaces" => '',
                    "CityCategoryMask" => '',
                    "CitySysId" => 0,
                    "Cities" => '',
                    "Countries" => '',
                    "CreateDate" => $createddate,
                    "UpdateDate" => $createddate,
                    "IsMarkForDel" => 0,
                    "IsActive" => 1
                );
                $itinerary = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Itenary', $itinerarayarr);
            } else {
                $createddate = date('Y-m-d');
                $insurance_array = array(
                    "TPIntSysId" => $tpintsysID,
                    "SuppPolicySysId" => 0,
                    "CustomerSysId" => $customerID,
                    "MasterPolicySysId" => $masterpolicy,
                    "TrxGroupId" => $getlatesttrxgroupid['TrxGroupId'],
                    "TrxSysId" => 0,
                    "PolicyDocPath" => '',
                    "OtherDoc" => '',
                    "TandC" => '',
                    "CurrencyType" => 0,
                    "SumInsured" => 0,
                    "Priminum" => 0,
                    "Commision" => 0,
                    "NetPaid" => 0,
                    "IsVarified" => 0,
                    "IsActive" => 0,
                    "IsMarkForDelete" => 0,
                    "IsApproved" => 0,
                    "CreateDate" => $createddate,
                    "UpdateDate" => $createddate,
                    "IsOptionalInsurance" => 0,
                    "IsSelected" => 0,
                    "Insurer" => $compsysID
                );
                $addinsurance = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Insurance', $insurance_array);
            }
            echo "Travel Insurance has been added in the package";
        } else {
            // $where = array("CustomerSysId = ".$customerID,"MasterPolicySysId =".$masterpolicy);
            $where = array('CustomerSysId = ? ' => $customerID, 'MasterPolicySysId = ? ' => @$masterpolicy);
            $objPackage->DeleteInsurance($where, 'TB_Agency_Customer_TravelPlan_Insurance');
            echo "Travel Insurance has been removed from the package";
        }
    }

    public function addCustomerPackageOtherAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {
            $objPackage->UnDraft($this->getRequest()->getParam('id'));
            $flexiPackageList = $objPackage->getCustPackageList($this->getRequest()->getParam('id'));
            $getservicedetail = $objPackage->GetAllServiceType($this->getRequest()->getParam('id'));
            $this->view->getservicedetail = $getservicedetail;
            $this->view->flexiPackageList = $flexiPackageList;
            $getallpolicydetails = $objPackage->GetAllPolicyDetails();
            $this->view->policydetails = $getallpolicydetails;
            $post = $this->getRequest()->getPost();
            $tpsysID = $this->getRequest()->getParam('id');
            if (!empty($tpsysID)) {
                $getinsuranceitineraray = $objPackage->GetInsuranceItinerary($tpsysID);
                $tpintsysID = $getinsuranceitineraray['TPIntSysId'];
                if (!empty($tpintsysID)) {
                    $insurearray = array();
                    $inusreoptiondetail = $objPackage->GetSelectedInsuranceOption($tpintsysID);
                    for ($i = 0; $i < count($inusreoptiondetail); $i++) {
                        $insurearray[] = $inusreoptiondetail[$i]['MasterPolicySysId'];
                    }
                }
                if (!empty($inusreoptiondetail)) {
                    $this->view->insureoption = $inusreoptiondetail;
                } else {
                    $inusreoptiondetail = array();
                    $this->view->insureoption = $inusreoptiondetail;
                }
            }
        }
    }

    public function addPackageOtherAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {
            $objPackage->UnDraft($this->getRequest()->getParam('id'));
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $pkgagencysysID = $flexiPackageList['AgencySysId'];
            if ($pkgagencysysID == $intLoggedinUserAgencySysId) {
                $getservicedetail = $objPackage->GetAllServiceTypeBYO($this->getRequest()->getParam('id'));
                $this->view->getservicedetail = $getservicedetail;
                $this->view->flexiPackageList = $flexiPackageList;
                $getallpolicydetails = $objPackage->GetAllPolicyDetails();
                $this->view->policydetails = $getallpolicydetails;
                $post = $this->getRequest()->getPost();
                $tpsysID = $this->getRequest()->getParam('id');
                $flexiPackageTransFixed = $objPackage->getFlexiPackageTransFixed($tpsysID);
                $this->view->flexiPackageTransFixed = $flexiPackageTransFixed;
                if (!empty($tpsysID)) {
                    $getinsuranceitineraray = $objPackage->GetInsuranceItineraryBYO($tpsysID);
                    $tpintsysID = $getinsuranceitineraray['TPIntSysId'];
                    if (!empty($tpintsysID)) {
                        $insurearray = array();
                        $inusreoptiondetail = $objPackage->GetSelectedInsuranceOptionBYO($tpintsysID);
                        for ($i = 0; $i < count($inusreoptiondetail); $i++) {
                            $insurearray[] = $inusreoptiondetail[$i]['MasterPolicySysId'];
                        }
                    }
                    if (!empty($inusreoptiondetail)) {
                        $this->view->insureoption = $inusreoptiondetail;
                    }
                }
            } else {
                $this->_redirect('/publicpackage/pagenotfound/');
            }
        }
    }

    public function addFlexiPackageOtherAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {
            //$this->getRequest()->getParam('id');
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
        }
    }

    public function getinsurancequoteAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $ageband1 = $this->_request->getParam('ageband1');
        $ageband2 = $this->_request->getParam('ageband2');
        $ageband3 = $this->_request->getParam('ageband3');
        $totaltraveler = $this->_request->getParam('totaltraveler');
        $totaldays = $this->_request->getParam('totaldays');
        $pkgstartdate = $this->_request->getParam('pkgstartdate');
        $pkgenddate = $this->_request->getParam('pkgenddate');
        $agencysysID = $this->_request->getParam('agencysysID');
        $agentID = $this->_request->getParam('agentID');
        $destinationplaces = $this->_request->getParam('destinationplaces');
        $tpsysID = $this->_request->getParam('tpsysID');
        $endpointurl = INSURANCE_URL;
        $imgpath = $this->view->baseUrl("public/upload/insurer/");
        $suminsured = $this->_request->getParam('suminsured');
        $apiData = array(
            'traveldestination' => 'Worldwide',
            'suminsured' => $suminsured,
            'age_band_0_40' => $ageband1,
            'age_band_41_60' => $ageband2,
            'age_band_61_70' => $ageband3,
            'travellers' => $totaltraveler,
            'trip_start_date' => $pkgstartdate,
            'trip_end_date' => $pkgenddate,
            'noofdays' => $totaltraveler,
            'AgencySysId' => $agencysysID,
            'UserSysId' => $agentID,
        );
        try {
            $curl = curl_init($endpointurl);
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($apiData));
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            $premium_response = curl_exec($curl);
            curl_close($curl);
            $this->view->premium_response = $premium_response; // send response to the view page
        } catch (Exception $error) {
            $this->view->error_msg = $error->getMessage();
            die;
        }
        $premiumarr = json_decode($premium_response, 1);
        $itinerarydetail = $objPackage->GetInsuranceItinerary($tpsysID);
        $tpitineraryID = $itinerarydetail['TPIntSysId'];
        $getselectedmasterpolicyID = $objPackage->GetSelectedPolicyIdByCustomer($tpitineraryID);
        $custinsurerID = array();
        for ($k = 0; $k < count($getselectedmasterpolicyID); $k++) {
            $custinsurerID[] = trim($getselectedmasterpolicyID[$k]['Insurer']);
        }
        ?>
        <div class="modal-body">

            <div style="width:95%; position: fixed; z-index: 99; display: none; background-color: #000;text-align: center;padding: 15px;height: 91%;opacity: .5;line-height: 20; color: #fff;" id="insurequote">Getting Insurance Price..</div>

            <div class="modal-header">
                <h3 class="no-margin no-padding">Select Insurer</h3>
            </div>
            <div class="col-md-12 no-padding">
                <div class="form-group form-group1 border-bottom" style="padding-top:15px;">
                    <label class="col-md-3 col-sm-3 no-padding" style="line-height:34px;">Sum Insured : </label>
                    <select style="width:200px; border: 1px solid #cccccc; border-radius: 4px; box-shadow: none; box-sizing: border-box; display: block; overflow: hidden; padding: 6px 4px; position: relative; width: 100%; z-index: 1;" id="suminusred" name="suminusred" class="selectize-inputnew col-md-12 col-sm-12" placeholder="Select">
                        <option value="50000" onclick="return ViewInsuranceOption('50000');" <?php if ($suminsured == "50000") { ?>selected="selected" <?php } ?>>50,000</option>
                        <option value="100000" onclick="return ViewInsuranceOption('100000');" <?php if ($suminsured == "100000") { ?>selected="selected" <?php } ?>>1,00,000</option>
                    </select>
                    <div class="clearfix"></div>
                </div>
                <?php
                for ($i = 0; $i < count($premiumarr); $i++) {
                    if (in_array($premiumarr[$i]['CompSysId'], $custinsurerID)) {
                        $premiumprice = $premiumarr[$i]['premium'];
                        $premiumpricewithtax = $premiumarr[$i]['premiumWithTax'];
                        $copmsysID = $premiumarr[$i]['CompSysId'];
                        $getcustselected = $objPackage->GetSelectedInsurer($copmsysID, $tpitineraryID);
                        $policyID = $getcustselected['PolicyNo'];
                        ?>
                        <div class="clear" style="padding-top:20px;">
                            <div class="col-md-3 col-sm-3 no-padding"> <img alt="insuranceimage" src="<?php echo $imgpath; ?>/<?php echo $premiumarr[$i]['logo']; ?>" style="max-width:80%;"> </div>
                            <div class="col-md-3 col-sm-3 text-center"> <strong class="orange"><i class="fa fa-rupee"></i>
                                    <?php echo $premiumarr[$i]['premiumWithTax']; ?></strong> </div>
                            <div class="col-md-3 col-sm-3 no-padding text-center">
                                <button data-target="#myModa1insuranceDetail" onclick="getpolicydetals('<?php echo $premiumarr[$i]['CompSysId'] ?>', 'Worldwide', '<?php echo $premiumarr[$i]['premiumWithTax'] ?>');" data-toggle="modal" class="btn btn-default btn-sm"><i class="fa fa-arrows"></i> Details</button>
                            </div>
                            <div class="col-md-3 col-sm-3 text-right">
                                <?php
                                if ($policyID) {
                                    ?>
                                    <button type="button" class="btn btn-warning" data-toggle="modal" onclick="removeinsurance('<?php echo $copmsysID; ?>', '<?php echo $tpitineraryID; ?>', '<?php echo $tpsysID; ?>');">Remove</button>
                                <?php } else { ?>
                                    <button type="button" class="btn btn-warning" data-toggle="modal" data-target="#memberdetail" onclick="showtravelerform('<?php echo $premiumarr[$i]['CompSysId'] ?>', '<?php echo $premiumarr[$i]['logo'] ?>', '<?php echo $premiumarr[$i]['name'] ?>', '<?php echo $premiumarr[$i]['premiumWithTax']; ?>', '<?php echo $premiumprice; ?>');">Select</button>
                                <?php } ?>
                            </div>
                        </div>
                        <div class="clear"></div>

                    </div>
                    <?php
                }
            }
            ?>
        </div>

        <div class="clear"></div>

        <div class="modal-footer" style="margin-top:12px;">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>

        <?php
    }

    public function addFlexiPackageReadymadeOtherAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {
            //$this->getRequest()->getParam('id');
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));

            if (isset($flexiPackageList['AgencySysId']) && $flexiPackageList['AgencySysId'] != ($this->intLoggedinUserAgencySysId || $this->getMasterAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
            $MasterRefId = (isset($flexiPackageList['MasterRefId']) && $flexiPackageList['MasterRefId'] > 0) ? $flexiPackageList['MasterRefId'] : $flexiPackageList['TPSysId'];
            $GetAllService = $objPackage->GetAllService($MasterRefId);
            $GetAllVisaMarkup = $objPackage->GetAllVisaMarkup($MasterRefId);
            $visaId = [];
            foreach ($GetAllVisaMarkup as $key => $val) {
                $InvnVisaSysId = $val['InvnVisaSysId'];
                if (!in_array($InvnVisaSysId, $visaId)) {
                    $visaId[] = $InvnVisaSysId;
                }
            }
            if (!empty($visaId)) {
                $GetAllVisa = $objPackage->VisaInventoryDetailByIds($visaId);
            }
            $this->view->GetAllService = $GetAllService;
            $this->view->GetAllVisa = $GetAllVisa;
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            $this->view->flexiPackageList = $flexiPackageList;
            $objCurrency = new Travel_Model_TblCurrency();
            $this->view->currencyDetail = $currencyDetail = $objCurrency->getCurrencySymbolByIdsList($flexiPackageList['CurrencyType']);
        }
    }

    public function addCustomerPackageTncAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $objAgency = new Travel_Model_TblAgency();
        $agencyTncList = $objAgency->getAgencyTnCDetails($intLoggedinUserAgencySysId);
        $this->view->agencyTncList = $agencyTncList;
        if ($this->getRequest()->getParam('id') > 0) {
            $packId = $this->getRequest()->getParam('id');
            $objPackage->UnDraft($packId);
            $flexiPackageList = $objPackage->getCustPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
            $packageTncList = $objPackage->getCustPackageTncList($this->getRequest()->getParam('id'));

            $this->view->packageTncList = $packageTncList;
            if (empty($packageTncList)) {
                $tncdata = array(
                    'AgencySysId' => @$intLoggedinUserAgencySysId,
                    'TPIntSysId' => @$packId,
                    'Inclusions' => 'Inclusions',
                    'Exclusions' => 'Exclusions',
                    'CancellationPolicy' => 'CancellationPolicy',
                    'TravelBasics' => 'TravelBasics',
                    'BookingTerms' => 'BookingTerms',
                    'WhyUseUs' => 'WhyUseUs',
                    'TermsAndConditions' => 'TermsAndConditions',
                    'CreateDate' => @$currentDate,
                    'UpdateDate' => @$currentDate,
                    'IsMarkForDel' => '0',
                    'IsActive' => '1'
                );
                $tncId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Terms_Conditions', $tncdata);
            }
        }
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost();
            if ($post) {
                $currentDate = date('Y-m-d H:i:s');
                $data = array(
                    'Inclusions' => $this->getRequest()->getParam('Inclusions'),
                    'Exclusions' => $this->getRequest()->getParam('Exclusions'),
                    'CancellationPolicy' => $this->getRequest()->getParam('CancellationPolicy'),
                    'TravelBasics' => $this->getRequest()->getParam('travelbasics'),
                    'BookingTerms' => $this->getRequest()->getParam('bookingterms'),
                    'WhyUseUs' => $this->getRequest()->getParam('whyuseus'),
                    'TermsAndConditions' => $this->getRequest()->getParam('termcond'),
                    'UpdateDate' => @$currentDate
                );
                $where = array('TPIntSysId = ? ' => $this->getRequest()->getParam('packageId'));
                $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Terms_Conditions', $data, $where);
                $this->_redirect('/package/costsheet/id/' . $this->getRequest()->getParam('packageId'));
                exit;
            }
        }
    }

    public function addFlexiPackageTncAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');

        if ($this->getRequest()->getParam('id') > 0) {
            $packageTncList = $objPackage->getPackageTncList($this->getRequest()->getParam('id'));
            $this->view->packageTncList = $packageTncList;
        }
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost();
            if ($post) {
                $currentDate = date('Y-m-d H:i:s');
                $data = array(
                    'Inclusions' => $this->getRequest()->getParam('Inclusions'),
                    'Exclusions' => $this->getRequest()->getParam('Exclusions'),
                    'CancellationPolicy' => $this->getRequest()->getParam('CancellationPolicy'),
                    'UpdateDate' => @$currentDate
                );
                $where = array('TPIntSysId = ? ' => $this->getRequest()->getParam('packageId'));
                $updateId = $objPackage->updateData('TB_TravelPlan_Terms_Conditions', $data, $where);

                $this->_redirect('/package/add-flexi-package-costsheet/id/' . $this->getRequest()->getParam('packageId'));
                exit;
            }
        }
    }

    public function addFlexiPackageReadymadeTncAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $TPSysId = (int) $this->getRequest()->getParam('id');
        if ($TPSysId > 0) {

            $packageTncList = $objPackage->getPackageTncList($this->getRequest()->getParam('id'));
            if (isset($packageTncList[0]['AgencySysId']) && $packageTncList[0]['AgencySysId'] != ($this->intLoggedinUserAgencySysId || $this->getMasterAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            //                       echo '<pre>'; print_r($packageTncList);  echo '</pre>';
            if (trim($packageTncList[0]['CancellationPolicy']) == 'CancellationPolicy') {
                $objAgency = new Travel_Model_TblAgency();
                $packageAgencyTncList = $objAgency->getAgencyTnCDetails($intLoggedinUserAgencySysId);
                $packageTncList[0] = $packageAgencyTncList;
            }
            //           echo '<pre>'; print_r($packageTncList);  echo '</pre>';
            $this->view->packageTncList = $packageTncList;
            //            $this->view->packageAgencyTncList = $packageAgencyTncList;

            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
        }
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost();
            //echo '<pre>'; print_r($post);  echo '</pre>';die;
            if ($post) {
                $reslastint = json_decode(base64_decode($post['lastintres']), true);
                $reseconomyid = json_decode(base64_decode($post['economyidtres']), true);
                $TermsAndConditionType = trim($post['TermsAndConditionType']);
                /* echo "<pre>";
                  print_r($post);
                  print_r($reslastint);
                  die(); */
                $currentDate = date('Y-m-d H:i:s');
                $packageId = isset($post['packageId']) ? $post['packageId'] : 0;
                $IsInclusions = isset($post['IsInclusions']) ? $post['IsInclusions'] : 0;
                $IsExclusions = isset($post['IsExclusions']) ? $post['IsExclusions'] : 0;
                $IsCancellationPolicy = isset($post['IsCancellationPolicy']) ? $post['IsCancellationPolicy'] : 0;
                $IsTravelBasics = isset($post['IsTravelBasics']) ? $post['IsTravelBasics'] : 0;
                $IsTermsAndConditions = isset($post['IsTermsAndConditions']) ? $post['IsTermsAndConditions'] : 0;
                $IsBookingTerms = isset($post['IsBookingTerms']) ? $post['IsBookingTerms'] : 0;
                $IsWhyUseUs = isset($post['IsWhyUseUs']) ? $post['IsWhyUseUs'] : 0;
                $IsREFUNDPOLICY = isset($post['IsREFUNDPOLICY']) ? $post['IsREFUNDPOLICY'] : 0;
                $data = array(
                    'TermsAndConditionType' => $TermsAndConditionType,
                    'Inclusions' => $this->getRequest()->getParam('Inclusions'),
                    'Exclusions' => $this->getRequest()->getParam('Exclusions'),
                    'CancellationPolicy' => $this->getRequest()->getParam('CancellationPolicy'),
                    'TravelBasics' => $this->getRequest()->getParam('TravelBasics'),
                    'TermsAndConditions' => $this->getRequest()->getParam('TermsAndConditions'),
                    'BookingTerms' => $this->getRequest()->getParam('BookingTerms'),
                    'WhyUseUs' => $this->getRequest()->getParam('WhyUseUs'),
                    'REFUNDPOLICY' => $this->getRequest()->getParam('REFUNDPOLICY'),
                    'IsInclusions' => $IsInclusions,
                    'IsExclusions' => $IsExclusions,
                    'IsCancellationPolicy' => $IsCancellationPolicy,
                    'IsTravelBasics' => $IsTravelBasics,
                    'IsTermsAndConditions' => $IsTermsAndConditions,
                    'IsBookingTerms' => $IsBookingTerms,
                    'IsWhyUseUs' => $IsWhyUseUs,
                    'IsREFUNDPOLICY' => $IsREFUNDPOLICY,
                    'UpdateDate' => @$currentDate
                );
                if (!empty($reslastint)) {
                    for ($j = 0; $j < count($reslastint); $j++) {
                        $where = array('TPIntSysId = ? ' => @$reslastint[$j]);
                        $updateId = $objPackage->updateData('TB_TravelPlan_Terms_Conditions', $data, $where);
                    }
                }
                /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
                $userHistoryData = array(
                    'TPSysId' => $packageId,
                    'StepId' => 5,
                    'Details' => 1,
                    'UserSysId' => $this->intLoggedinUserId
                );
                Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
                /* -------------------- end insert data for contributor tab----------------------- */
                $this->_redirect('/package/add-flexi-package-readymade-costsheet/id/' . $packageId);
                exit;
            }
        }
    }

    public function deleteFlexiPackageAction() {

        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $TPSysId = base64_decode($this->getRequest()->getParam('id'));
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $packageData = $objPackage->getChildPackageList($TPSysId);
        $packageAgencySysId = $packageData[0]['AgencySysId'];
        $IsFixedDeparturePackage = $packageData[0]['IsFixedDeparturePackage'];
        if ($IsFixedDeparturePackage == 1 && $TPSysId > 0) {
            $ItineraryFixedFlightInventory = $objPackage->getItineraryFixedFlightInventoryByo($TPSysId);
            foreach ($ItineraryFixedFlightInventory as $iKey => $iVal) {
                $SoldInventory = (int) $iVal['SoldInventory'];
                if ($SoldInventory > 0) {
                    echo json_encode(array("status" => false, 'message' => 'Can not delete (inventory already sold for this package)!!'));
                    exit;
                }
            }
        }
        $masterRefId = $TPSysId;
        if (!empty($packageData) && @$packageData[0]['MasterRefId'] > 0) {
            $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            $masterRefId = $packageData[1]['MasterRefId'];
        }
        $packageIdArr = array();
        $IsFixedDeparturePackage = 0;
        foreach ($packageData as $key => $package) {
            $IsFixedDeparturePackage = $package['IsFixedDeparturePackage'];
            $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
        }
        $packageIds = implode(',', $packageIdArr['TPSysId']);
        $where = "TPSysId IN (" . $packageIds . ")";
        $sessionLogin_user_url = new Zend_Session_Namespace('sessionLogin_user');
        if (trim($sessionLogin_user_url->agencyDetails['IsB2CSite']) == 1) {
            $dataArr = array(
                'IsWebsite' => 0,
                'IsGTXNetwork' => 0,
            );
            $objPackage->updateData('TB_TravelPlan', $dataArr, $where);
            $AgencySysId = Travel_Model_AgencyAuth::getIdentity()->AgencySysId;
            $pkgModel = new Travel_Model_TblPackage();
            $getAllURL = array();
            $packageData = $objPackage->getChildPackageList($masterRefId);
            $publishURLID = isset($packageData[0]['IsWebsite']) ? $packageData[0]['IsWebsite'] : '';
            if ($publishURLID != '') {
                $getAllURL = explode(',', $publishURLID);
            }
            $selectedWebsite = $pkgModel->getAgencgWebsiteNotSelected($AgencySysId, $getAllURL);
            if (!empty($selectedWebsite)) {
                $publishURLIDDeactivated = array();
                foreach ($selectedWebsite as $webVel) {
                    $publishURLIDDeactivated[] = $webVel['WebSysId'];
                }

                $url = Catabatic_Helper::getSiteUrl() . "gtxwebservices/push-package/deactivate-package";
                $this->postFields = "";
                $this->postFields .= "&AgencySysId=" . $AgencySysId;
                $this->postFields .= "&packageId=$masterRefId";
                $this->postFields .= "&publishURLID=" . implode(',', $publishURLIDDeactivated);
                $writeLogObj = new Payment_Model_Payment();
                $writeLogObj->writeLog($this->postFields . "\n");
                try {
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, $url);
                    curl_setopt($ch, CURLOPT_HEADER, 0);
                    curl_setopt($ch, CURLOPT_POST, 1);
                    if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
                        curl_setopt($ch, CURLOPT_PORT, 443);
                        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
                        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
                    }
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($ch, CURLOPT_POSTFIELDS, $this->postFields);
                    $output = curl_exec($ch);
                    $writeLogObj->writeLog($output . "\n");
                    curl_close($ch);
                } catch (Zend_Exception $ex) {
                    $ex->getMessage();
                }
            }
        }

        if ($IsFixedDeparturePackage == 1 && $packageAgencySysId > 0) {
            $updateDataFixed = array('IsMarkForDel' => '1', 'IsActive' => '0', 'UpdateDate' => date('Y-m-d'));
            $whereFixed = "RefTPSysID IN (" . $packageIds . ") AND AgencySysId = $packageAgencySysId";
            $objPackage->updateData('TB_TravelPlan_Itenary_FixedInventory', $updateDataFixed, $whereFixed);
        }
        if ($packageAgencySysId > 0) {
            $where = "TPSysId IN (" . $packageIds . ") AND AgencySysId = $packageAgencySysId";
            $updateData = array('IsMarkForDel' => '1');
            $objPackage->updateData('TB_TravelPlan', $updateData, $where);
        }
        $this->_helper->flashMessenger->addMessage("Package deleted successfully.");
        echo json_encode(array("status" => true, 'message' => 'Package deleted successfully'));
        exit;
    }

    //    public function deleteFlexiPackageAction() {
    //
    //        /* Disable Layout */
    //        $this->_helper->layout->disableLayout();
    //
    //        $TPSysId = base64_decode($this->getRequest()->getParam('id'));
    //
    //        $objPackage = new Travel_Model_TblPackage();
    //        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
    //
    //        $objPackage->deleteFlexiPackage($TPSysId, $intLoggedinUserAgencySysId);
    //
    //        $this->_helper->flashMessenger->addMessage("Package deleted successfully.");
    //        $this->_helper->redirector('index', 'package', 'default');
    //    }

    public function deleteByoPackageAction() {

        /* Disable Layout */
        $this->_helper->layout->disableLayout();

        $TPSysId = base64_decode($this->getRequest()->getParam('id'));

        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;

        $objPackage->deleteBYOPkg($TPSysId);

        $this->_helper->flashMessenger->addMessage("BYO Package  has been deleted successfully.");
        $this->_helper->redirector('byopackage', 'customer', 'default');
    }

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

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

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

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

    public function addCustomerActivityDetailsByoAction() {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $this->view->tourID = $this->_request->getParam('tourID');
    }

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

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

    public function updateOptionalTransportAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $tpintsysID = $this->getRequest()->getPost('tpintsysID');
        $FixTransSysId = $this->getRequest()->getPost('FixTransSysId');
        $adult = $this->getRequest()->getPost('adult');
        $child = $this->getRequest()->getPost('child');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->UpdateTransPort($tpsysID, $tpintsysID, $FixTransSysId, $adult, $child, $roominfojson);
    }

    public function removeOptionalTransportAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $tpintsysID = $this->getRequest()->getPost('tpintsysID');
        $FixTransSysId = $this->getRequest()->getPost('FixTransSysId');
        $adult = $this->getRequest()->getPost('adult');
        $child = $this->getRequest()->getPost('child');
        // $vtype = $this->getRequest()->getPost('vtype');
        // $sourceID = $this->getRequest()->getPost('sourceID');
        // $destID = $this->getRequest()->getPost('destID');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $objPackage = new Travel_Model_TblPackage();

        // if(count($getotheroption) > 1){
        $objPackage->RemoveTransPort($tpsysID, $tpintsysID, $FixTransSysId, $adult, $child, $roominfojson);
        //  }
    }

    public function updateOptionalActivityAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $versionID = $this->getRequest()->getPost('versionID');
        //$markup = $_REQUEST['markup'];

        $tpintsysID = $this->getRequest()->getPost('tpintsysID');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $adult = $this->getRequest()->getPost('adult');
        $child = $this->getRequest()->getPost('child');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $txt = $this->getRequest()->getPost('txt');
        $catID = $this->getRequest()->getPost('catID');
        $totaltraveler = $adult + $child;
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->UpdateOptionalActivity($versionID, $tpintsysID, $tpsysID, $adult, $child, $totaltraveler, $roominfojson, $txt, $catID);
    }

    public function updateOptionalSightSeeingAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $versionID = $this->getRequest()->getPost('versionID');
        $tpintsysID = $this->getRequest()->getPost('tpintsysID');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $adult = $this->getRequest()->getPost('adult');
        $child = $this->getRequest()->getPost('child');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $txt = $this->getRequest()->getPost('txt');
        $totaltraveler = $adult + $child;
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->UpdateOptionalSS($versionID, $tpintsysID, $tpsysID, $adult, $child, $totaltraveler, $roominfojson, $txt);
    }

    public function updateOptionalActivityByoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $versionID = $this->getRequest()->getPost('versionID');
        //$markup = $_REQUEST['markup'];
        $objPackage = new Travel_Model_TblPackage();
        // $tpintsysID = $this->getRequest()->getPost('tpintsysID');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $adult = $this->getRequest()->getPost('adult');
        $child = $this->getRequest()->getPost('child');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $txt = $this->getRequest()->getPost('txt');
        $catID = $this->getRequest()->getPost('catID');
        $actID = $this->getRequest()->getPost('actID');
        $seqnum = $this->getRequest()->getPost('seqnum');
        $totaltraveler = $adult + $child;
        $getitnID = $objPackage->GetItnBySeq($seqnum, $tpsysID);
        $TPIntSysId = $getitnID['TPIntSysId'];

        $objPackage->UpdateOptionalBYOActivity($TPIntSysId, $tpsysID, $actID, $adult, $child, $totaltraveler, $roominfojson, $txt, $catID);
    }

    public function updateOptionalSightSeeingByoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $versionID = $this->getRequest()->getPost('versionID');
        $TPIntSysId = $this->getRequest()->getPost('tpintsysID');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $adult = $this->getRequest()->getPost('adult');
        $child = $this->getRequest()->getPost('child');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $txt = $this->getRequest()->getPost('txt');
        $catID = $this->getRequest()->getPost('catID');
        $seqnum = $this->getRequest()->getPost('seqnum');
//        $objPackage = new Travel_Model_TblPackage();
//        $getitnID = $objPackage->GetItnBySeq($seqnum, $tpsysID);
//        $TPIntSysId = $getitnID['TPIntSysId'];
        $sightseeingID = $this->getRequest()->getPost('sightseeingID');
        $totaltraveler = $adult + $child;
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->UpdateOptionalSSBYO($TPIntSysId, $tpsysID, $sightseeingID, $adult, $child, $totaltraveler, $roominfojson, $txt, $catID);
    }

    public function updateOptionalSightSeeingCustomerAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $versionID = $this->getRequest()->getPost('versionID');
        $tpintsysID = $this->getRequest()->getPost('tpintsysID');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $adult = $this->getRequest()->getPost('adult');
        $child = $this->getRequest()->getPost('child');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $txt = $this->getRequest()->getPost('txt');
        $catID = $this->getRequest()->getPost('catID');
        $totaltraveler = $adult + $child;
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->UpdateOptionalSSBYOReadyMade($versionID, $tpintsysID, $tpsysID, $adult, $child, $totaltraveler, $roominfojson, $txt, $catID);
    }

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

    public function getcardetailsAction() {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $this->view->tourID = $this->_request->getParam('tourID');
    }

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

    public function gettraindetailsAction() {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $this->view->tourID = $this->_request->getParam('tourID');
    }

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

    public function getbusdetailsAction() {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $this->view->tourID = $this->_request->getParam('tourID');
    }

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

    public function getallserviceAction() {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $this->view->tourID = $this->_request->getParam('tourID');
    }

    public function addIncludedServiceReadymadeAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $this->_request->getParam('tpsysID');
        $checkedvals = $this->_request->getParam('checkedVals');
        $catID = $this->_request->getParam('catID');
        $updatedData1 = array(
            'IsCostInclInTP' => 0,
        );
        $whereclause1 = array('TPIntSysId = ? ' => $tpsysID);
        $updateservicedetails = $objPackage->updateData('TB_Agency_Customer_TravelPlan_OtherServices', $updatedData1, $whereclause1);
        for ($j = 0; $j < count($checkedvals); $j++) {
            $updatedData = array(
                'IsCostInclInTP' => 1,
            );
            $whereclause = array('OtherSrvSysId = ? ' => @$checkedvals[$j]);
            $updateprice = $objPackage->updateData('TB_Agency_Customer_TravelPlan_OtherServices', $updatedData, $whereclause);
        }

        $tpinfo = $objPackage->GetPkgInfo($tpsysID);
        $roominfojson = json_decode($tpinfo[0]['RoomInfoJson'], 1);
        $adult = 0;
        $child = 0;

        for ($i = 1; $i <= count($roominfojson); $i++) {
            $adult = $adult + $roominfojson[$i]['Adult'];
            $child = $child + $roominfojson[$i]['Child'];
        }
        $totaltraveler = $adult + $child;
        $objPackage->UpdatePkgDetail($tpsysID, $tpinfo[0]['RoomInfoJson'], $adult, $child, $totaltraveler, $catID);
        //$objPackage->UpdateBYOPackagePrice($tpsysID,$tpinfo[0]['RoomInfoJson'],$adult,$child,$totaltraveler,$catID);
    }

    public function changePackageFlightAction() {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $tpintsysId = $this->_request->getParam('tpintsysId');
        $invitemsysID = $this->_request->getParam('InvnItemSysId');
        $sourceplaceID = $this->_request->getParam('sourceplaceID');
        $getapiflight = $objPackage->GetFlightFromAPI($tpintsysId, $invitemsysID, $sourceplaceID);
        $totalselectedhotel = count($getapiflight);
        /*
          //die;
          // $strApiEndPointUrl = TBO_FLIGHT_URL;
          $getFlightDetailsURL = 'http://api.tektravels.com/BookingEngineService_Air/AirService.svc/rest/Search/';
          $tokenId = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->authenticateAPI();

          $datah = array(
          'EndUserIp' => $_SERVER['REMOTE_ADDR'],
          'TokenId' => $tokenId,
          "AdultCount" => $getapiflight[0]['AdultPax'],
          "ChildCount" => $getapiflight[0]['ChildPax'],
          "InfantCount" => $getapiflight[0]['InfentPax'],
          "JourneyType" => $getapiflight[0]['JourneyType'],
          "PreferredAirlines" => ["I5","9W"],
          "Segments" => [array('Origin' => $getapiflight[0]['SourceAirportCode'], 'Destination' => $getapiflight[0]['DestAirportCode'],
          'FlightCabinClass' => "1", "PreferredDepartureTime" => '2017-01-22T00:00:00',"PreferredArrivalTime" => '2017-01-22T19:00:00')],


          );

          $data_stringh = json_encode($datah);
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $getFlightDetailsURL);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
          curl_setopt($ch, CURLOPT_POST, true);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
          //curl_setopt($ch, CURLOPT_HEADER, true);
          curl_setopt($ch, CURLOPT_HTTPHEADER, array(
          'Content-Type: application/json',
          'Content-Length: ' . strlen($data_stringh)
          ));
          $outputH = curl_exec($ch);
          // print_r($outputH);
          $response = json_decode($outputH,true);
          echo '<pre>';
          print_r($response['Response']['Results'][0]);
          die;
          if($response['Response']['ResponseStatus'] != '1') {
          $this->view->ErrorCode    = $response['Response']['Error']['ErrorCode'];
          $this->view->ErrorMessage = $response['Response']['Error']['ErrorMessage'];
          } else if($response['Response']['ResponseStatus'] == '1') {
          $this->view->arrFlightResults = $response['Response']['Results'][0];
          $this->view->TraceId          = $response['Response']['TraceId'];
          }
         */
    }

    public function viewPackageFlightAction() {
        $this->_helper->layout->disableLayout();
    }

    public function viewPackageFlightByoAction() {
        $this->_helper->layout->disableLayout();
    }

    public function changePackageHotelAction() {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $this->view->economytype = $this->_request->getParam('economytype');
    }

    public function changePackageHotelByoAction() {
        /* Disable Layout */
        // ini_set('display_errors',0);
        $this->_helper->layout->disableLayout();
        $tpintsysId = $this->_request->getParam('itnID');
        $tpintsysId = $this->_request->getParam('itnID');
        $tpsysID = $this->_request->getParam('tpsysID');
        $objPackage = new Travel_Model_TblPackage();
    }

    public function changePackageHotelByoReadymadeAction() {
        /* Disable Layout */
        // ini_set('display_errors',0);
        $this->_helper->layout->disableLayout();
        $tpintsysId = $this->_request->getParam('itnID');
        $tpintsysId = $this->_request->getParam('itnID');
        $tpsysID = $this->_request->getParam('tpsysID');
        $this->view->tourID = $this->_request->getParam('tourID');
        $objPackage = new Travel_Model_TblPackage();
    }

    public function changePackageHotelReadymadeAction() {
        /* Disable Layout */
        // ini_set('display_errors',0);
        $this->_helper->layout->disableLayout();
        $tpintsysId = $this->_request->getParam('itnID');
        $tpintsysId = $this->_request->getParam('itnID');
        $tpsysID = $this->_request->getParam('tpsysID');
        $objPackage = new Travel_Model_TblPackage();
    }

    public function GetHotelfromTBO($getapihotel) {
        for ($i = 0; $i < count($getapihotel); $i++) {

            $tokenId = Zend_Controller_Action_HelperBroker::getStaticHelper('Flight')->authenticateAPI();
            $m = 0;
            $roominfojson = $getapihotel[$i]['RoomMemInfoJson'];
            $roominfojsondecode = json_decode($roominfojson, 1);
            $roominfoarr = array_values($roominfojsondecode);
            $arrMemberDetails = array();

            if (!empty($roominfoarr)) {
                for ($m = 0; $m < count($roominfoarr); $m++) {
                    $arrMemberDetails[$m]['NoOfAdults'] = $roominfoarr[$m]['adult'];
                    $arrMemberDetails[$m]['NoOfChild'] = $roominfoarr[$m]['child']['childcount'];
                    if ($roominfoarr[$m]['child']['childcount'] == 1) {
                        $arrChildAge = $roominfoarr[$m]['child']['childage'];
                        $arrMemberDetails[$m]['ChildAge'] = 1;
                    }
                    if ($roominfoarr[$m]['child']['childcount'] > 1) {
                        $arrChildAge = explode(",", $roominfoarr[$m]['child']['childage']);
                        $arrMemberDetails[$i]['ChildAge'] = $arrChildAge;
                    } else {
                        $arrMemberDetails[$i]['ChildAge'] = NULL;
                    }
                }
            }
            $grnsearch = $objPackage->GetICAccom($accomsysID);
            $checkintimestrto = explode('-', $checkintimestr);
            $checkinstring = $checkintimestrto[2] . '/' . $checkintimestrto[1] . '/' . $checkintimestrto[0];

            $datah = array(
                "CheckInDate" => $checkinstring,
                "NoOfNights" => 2,
                "CountryCode" => 'IN',
                "CityId" => $grnsearch[0]['APICityId'],
                "ResultCount" => null,
                "PreferredCurrency" => "INR",
                "GuestNationality" => 'IN',
                "NoOfRooms" => $getapihotel[$i]['TotalPax'],
                "RoomGuests" => $arrMemberDetails,
                'PreferredHotel' => '',
                'MaxRating' => $getapihotel[$i]['StarRating'],
                'MinRating' => '0',
                'ReviewScore' => null,
                'IsNearBySearchAllowed' => 'false',
                'EndUserIp' => $_SERVER['REMOTE_ADDR'],
                'PreferredHotel' => $getapihotel[$i]['Title'],
                'TokenId' => $tokenId
            );
            $data_stringh = json_encode($datah);

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_SEARCH_URL);
            curl_setopt($ch, CURLOPT_ENCODING, "gzip");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json',
                'Content-Length: ' . strlen($data_stringh)
            ));
            $outputH = curl_exec($ch);
            $responseTBO = json_decode($outputH, true);
            if (isset($responseTBO['HotelSearchResult']['HotelResults'])) {
                $hotelresults = $responseTBO['HotelSearchResult']['HotelResults'];
                $traceID = $responseTBO['HotelSearchResult']['TraceId'];

                for ($j = 0; $j < count($hotelresults); $j++) {
                    if ($hotelresults[$j]['HotelName'] == trim($getapihotel[$i]['Title']) && $hotelresults[$j]['HotelCode'] == trim($grnsearch[0]['ShortName'])) {
                        $hotelresultindex = $hotelresults[$j]['ResultIndex'];
                    }
                }

                $roomdata = array(
                    "EndUserIp" => $_SERVER['REMOTE_ADDR'],
                    "TokenId" => $tokenId,
                    "TraceId" => $traceID,
                    "ResultIndex" => $hotelresultindex,
                    "HotelCode" => trim($grnsearch[0]['ShortName'])
                );
                $roomencodedata = json_encode($roomdata);
                $roomsearchurl = 'http://api.tektravels.com/BookingEngineService_Hotel/hotelservice.svc/rest/GetHotelRoom/';
                $roomencodedata = json_encode($roomdata);
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $roomsearchurl);
                curl_setopt($ch, CURLOPT_ENCODING, "gzip");
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $roomencodedata);
                curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                    'Content-Type: application/json',
                    'Content-Length: ' . strlen($roomencodedata)
                ));
                $outputroomH = curl_exec($ch);
                $responsehotelresult = json_decode($outputroomH, true);
                @$currentDate = date('Y-m-d');
                $roominfodata = $responsehotelresult['GetHotelRoomResult']['HotelRoomsDetails'];

                for ($a = 0; $a < count($roominfodata); $a++) {
                    $apiprice = round($roominfodata[$a]['Price']['PublishedPrice']);

                    if ($roominfodata[$a]['RoomTypeCode'] == trim($getapihotel[$i]['RoomNumber']) && $totalprice == $apiprice) {
                        ############## Nothing to update #################
                    } else {
                        $updatedData = array(
                            'TotalCost' => $apiprice,
                            'UpdateDate' => @$currentDate,
                            'IsActive' => '0'
                        );
                        $where1 = array(
                            'TPIntSysId = ? ' => @$getapihotel[$i]['TPIntSysId'],
                            'VersionId = ? ' => @$getapihotel[$i]['VersionId']
                        );
                        $updateprice = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Accom', $updatedData, $where1);

                        if ($isselected == '1') {
                            $objPackage->UpdateHotelSelection($accomsysID, $tpintsysID, $VersionId, $tpsysID, 'API');
                        }
                    }
                }
            }
        }
    }

    public function GetHotelfromGRN($getapihotel) {
        for ($i = 0; $i < count($getapihotel); $i++) {
            $sourcesysID = $getapihotel[$i]['SourceSysId'];
            ########### GRN API SEARCH ####################
            $accomsysID = $getapihotel[$i]['AccoSysId'];
            $totalprice = $getapihotel[$i]['TotalCost'];
            $tpintsysID = $getapihotel[$i]['TPIntSysId'];
            $VersionId = $getapihotel[$i]['VersionId'];
            $isselected = $getapihotel[$i]['IsSelectedOnPkg'];
            $checkintime = $getapihotel[$i]['FromDate'];
            $checkintimestr = $checkintime->format('Y-m-d');
            $checkouttime = $getapihotel[$i]['ToDate'];
            $checkoutimestr = $checkouttime->format('Y-m-d');
            if ($sourcesysID == '4') {
                $roominfojson = $getapihotel[$i]['RoomMemInfoJson'];
                $roominfojsondecode = json_decode($roominfojson, 1);
                $roominfoarr = array_values($roominfojsondecode);
                $k = 0;
                $arrMemberDetails = array();
                $arrMemberDetails[$k]['adults'] = $roominfoarr[$k]['adult'];
                //$arrMemberDetails[$i]['NoOfChild'] = $memberDetails[$i]['ChildPax'];
                if ($roominfoarr[$k]['child']['childcount'] == 1) {
                    $arrChildAge = $roominfoarr[$k]['child']['childage'];
                    $arrMemberDetails[$k]['children_ages'][] = $arrChildAge;
                }
                if ($roominfoarr[$k]['child']['childcount'] > 1) {
                    $arrChildAge = explode(",", $roominfoarr[$k]['child']['childage']);
                    $arrMemberDetails[$k]['children_ages'][] = $arrChildAge;
                }

                $k = $k + 1;

                $grnsearch = $objPackage->GetICAccom($accomsysID);
                #################### GRN API CHECK #################
                $datah = array(
                    "hotel_codes" => [trim($grnsearch[0]['ShortName'])],
                    "checkin" => $checkintimestr,
                    "checkout" => $checkoutimestr,
                    "client_nationality" => 'IN',
                    "response" => "full",
                    "currency" => "INR",
                    "rates" => "comprehensive", //comprehensive //comprehensive
                    "hotel_category" => [$getapihotel[$i]['StarRating']],
                    "rooms" => $arrMemberDetails
                );

                $data_stringh = json_encode($datah);

                //Write Request Logs starts...
                //                $strFilePath = "apihotels/search/".time()."_search_request1.json";
                //                Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath,$data_stringh);
                //Write Request Logs starts...
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, GRN_HOTEL_API_SEARCH_URL);
                curl_setopt($ch, CURLOPT_ENCODING, "gzip");
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
                curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                    'Accept: application/json',
                    'Content-Type: application/json',
                    'api-key: ' . GRN_HOTEL_API_KEY
                ));
                $outputH = curl_exec($ch);
                $response = json_decode($outputH, true);

                $hotelinfo = $response['hotels'][0]['rates'][0]['rooms'][0]['description'];
                $room_type = $response['hotels'][0]['rates'][0]['rooms'][0]['room_type'];
                $netprice = round($response['hotels'][0]['rates'][0]['price']);
                @$currentDate = date('Y-m-d');
                if ($accomsysID == $room_type && $totalprice == $netprice) {
                    ############# No Action Required #################
                } else {

                    ############ Update Data and Cost Sheet ##########
                    $updatedData = array(
                        'TotalCost' => $netprice,
                        'UpdateDate' => @$currentDate,
                        'IsActive' => '0'
                    );
                    $where1 = array(
                        'TPIntSysId = ? ' => @$getapihotel[$i]['TPIntSysId'],
                        'VersionId = ? ' => @$getapihotel[$i]['VersionId']
                    );
                    $updateprice = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Accom', $updatedData, $where1);
                }
                if ($isselected == '1') {
                    $objPackage->UpdateHotelSelection($accomsysID, $tpintsysID, $VersionId, $tpsysID, 'API');
                }
            }
        }
    }

    public function addCustomerPackageAction() {
        $currentDate = date('Y-m-d H:i:s');
        $objPackage = new Travel_Model_TblPackage();
        $cityList = $objPackage->getCityList();
        $this->view->cityListArray = $cityList;
        $packageThemeList = $objPackage->getPackageThemeList();
        $this->view->packageThemeList = $packageThemeList;
        $packageInclList = $objPackage->getPackageInclusionList();
        $this->view->packageInclList = $packageInclList;
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $mode = $this->getRequest()->getParam('mode') ? $this->getRequest()->getParam('mode') : '';
        $tpID = trim($this->getRequest()->getParam('id'));

        //$travelplancustdetails = $this->_crmcusttravelplan->GetTravelPlanCustomerDetails($tpID);
        //$getmastertpsysID = $this->_crmcusttravelplan->GetTravelPlanByCustomer($tpID);
        //echo $travelplancustdetails[0]['TPSysId'];

        if ($this->getRequest()->getParam('id') > 0) {
            //$this->getRequest()->getParam('id');
            $flexiPackageList = $objPackage->getCustPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
        }
        $post = $this->getRequest()->getPost();

        if (@$post['is_source'] == 'CRM') {
            
        } else {
            if ($this->getRequest()->isPost()) {

                $thememask = '1';
                $char = '';
                for ($k = 0; $k < count($packageThemeList); $k++) {
                    $char = in_array(@$packageThemeList[$k]['PackType'], @$post['PackTypeMask']) ? '1' : '0';
                    $thememask .= $char;
                }
                $char = '';
                $inclmask = '1';
                for ($k = 0; $k < count($packageInclList); $k++) {
                    $char = in_array(@$packageInclList[$k]['InclId'], @$post['InclMask']) ? '1' : '0';
                    $inclmask .= $char;
                }
                $fromarr1 = explode("__", $post['search_going_from']);
                $search_starting_from = @$fromarr1[0];
                $search_starting_from_city = @$fromarr1[1];
                $pricearr1 = explode("__", $post['search_price_range']);
                $MinPrice = @$pricearr1[0];
                $MaxPrice = @$pricearr1[1];

                $desarr1 = explode("__", $post['search_going_to_id']);
                $desplaceID = @$desarr1[0];
                $desplace = @$desarr1[1];

                if (@$post['TravelInsurance'] == 'on') {
                    $TravelInsurance = '1';
                } else {
                    $TravelInsurance = '0';
                }
                if (@$post['istransport'] == 'yes') {
                    $istransport = '1';
                } else {
                    $istransport = '0';
                }
                $explodedate = explode("/", $post['from_date']);
                $pkgstartdate = $explodedate[2] . '-' . $explodedate[1] . '-' . $explodedate[0];
                $EconomyMask = @$post['PackageCategories'];
                $flexiPackage = array(
                    'PackRangeType' => isset($post['PackRangeType']) ? $post['PackRangeType'] : '0',
                    'Title' => isset($post['Title']) ? $post['Title'] : '',
                    'EconomyMask' => isset($EconomyMask) ? $EconomyMask : '0',
                    'SourcePlaces' => isset($post['search_starting_from']) ? $post['search_starting_from'] : '',
                    'MinPrice' => isset($MinPrice) ? $MinPrice : 0,
                    'MaxPrice' => isset($MaxPrice) ? $MaxPrice : 0,
                    'DestinationPlaces' => $post['search_going_to'] ? $post['search_going_to'] : '',
                    'DestinationPlacesSysId' => $desplaceID ? $desplaceID : 0,
                    'PackTypeMask' => $thememask ? $thememask : '',
                    'InclMask' => $inclmask ? $inclmask : '',
                    'PackSpecType' => isset($post['PackSpecType']) ? $post['PackSpecType'] : 0,
                    'StartDate' => $pkgstartdate,
                    'MinPax' => isset($post['totaltraveller']) ? $post['totaltraveller'] : '0',
                    'IsInsuranceExist' => isset($TravelInsurance) ? $TravelInsurance : '0',
                    'IsTransportInc' => isset($istransport) ? $istransport : '0',
                    'UpdateDate' => @$currentDate
                );

                $intLastInsertId = $objPackage->updateCustPackage($flexiPackage, $post['code']);
                $intLastInsertId = $post['code'];
                // $draftwhere = array('TPSysId = ? ' => $post['code']);
                //$draftupdateData = array('IsDraft'=>'0','DraftActiveTab'=>'');
                $objPackage->UnDraft($post['code']);
                $this->_redirect('/package/add-customer-package-itinerary/id/' . $intLastInsertId);
            }
        }
    }

    public function getbyopkgrateAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $getData = $this->getRequest()->getPost();
        $objPackage = new Travel_Model_TblPackage();
        $catID = $getData['catID'];
        $tourID = $getData['tourID'];
        $mealID = $getData['mID'];
        $totaladult = $getData['totaladult'];
        $totalchild = $getData['totalchild'];
        $tpID = $getData['tpID'];
        for ($k = 1; $k <= $getData['roomlp']; $k++) {
            $childcount = $getData['child_' . @$k];
            $roomjson[$k]['Adult'] = $getData['adult_' . @$k];
            $roomjson[$k]['Child'] = $getData['child_' . @$k];
            for ($c = 0; $c < $childcount; $c++) {
                $ccount = $c + 1;
                $childsage = @$getData['child_' . @$childcount . '_' . @$c];
                $roomjson[$k]['ChildAge_' . $ccount] = $childsage;
            }
            $roomjson[$k]['bedtype'] = $getData['extrabed_' . @$k];
        }
        $roominfojson = json_encode($roomjson);
        $totaltraveler = $totaladult + $totalchild;

        $PkgData = $objPackage->GetTravelPlanInfo($tpID); //only fixed discount
        $getpkgprice = $objPackage->GetBYOPackagePrice($tpID, $roominfojson, $totaladult, $totalchild, $totaltraveler, $catID, $PkgData['DiscountVal'], $tourID, $mealID);

        $getselectedprice = $objPackage->GetSelectedCarVehiclePrice($tpID);
        if ($tourID == 1 && $getselectedprice['Capacity'] < $totaltraveler) { // only for private
            $CapacityArr = array('successCapacity' => false, 'msgCapacity' => 'CapacityIsLess');
            echo json_encode(array_merge($getpkgprice, $CapacityArr));
            exit;
        }
        //        print_r($roomjson);

        echo json_encode($getpkgprice);
        exit;
    }

    public function getDynamicPackageRateAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $getData = $this->getRequest()->getPost();
        //        echo '<pre>'; print_r($getData['tripstartdate']); echo '</pre>';
        $objPackage = new Travel_Model_TblPackage();
        $catID = $getData['catID'];
        $tourID = $getData['tourID'];
        $mealID = $getData['mID'];
        $MpType = $getData['MpType'];
        $totaladult = $getData['totaladult'];
        $totalchild = $getData['totalchild'];
        $tripstartdate = date("Y-m-d", strtotime(str_replace('/', '-', @$getData['tripstartdate'])));
        $CustomerSysId = (NULL != $getData['selectedCustomerId'] && !empty($getData['selectedCustomerId'])) ? base64_decode($getData['selectedCustomerId']) : '';

        $customerDetails = array();
        if (isset($CustomerSysId) && $CustomerSysId > 0) {
            $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
            $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById(trim($CustomerSysId));
        }
        $IsB2BCustomer = isset($customerDetails['IsB2BAgent']) ? $customerDetails['IsB2BAgent'] : 0;
        $MarketPlaceId = !empty($MpType) ? $MpType : 1;
        if ($IsB2BCustomer == 1) {
            $MarketPlaceId = 2;
        }
        $AgencyMarkupPersentage = 0;
        $userSysId = isset($getData['aId']) ? (int) $getData['aId'] : 0;
        if ($MarketPlaceId == 2 && $userSysId > 0) {
            $AgencyMarkupPersentage = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getMarkPercentageForAgent($userSysId);
        }
        //echo $AgencyMarkupPersentage; exit;
        $tpID = $getData['tpID'];
        for ($k = 1; $k <= $getData['roomlp']; $k++) {
            $roomjson[$k]['Adult'] = $this->_request->getParam('adult_' . $k);
            if ($roomjson[$k]['Adult'] == 3) {
                $roomjson[$k]['AdultBedType'] = $this->_request->getParam('adultcl_extrabed_' . $k . '_3');
            }
            $roomjson[$k]['Child'] = $this->_request->getParam('child_' . $k);
            $roomjson[$k]['Infant'] = $this->_request->getParam('infant_' . $k);
            for ($j = 1; $j <= $roomjson[$k]['Child']; $j++) {
                $roomjson[$k]['ChildAge_' . $j] = $this->_request->getParam('child_age_' . $k . '_' . $j);
                $roomjson[$k]['ChildBedType_' . $j] = $this->_request->getParam('child_extrabed_' . $k . '_' . $j);
            }
        }
        $roominfojson = json_encode($roomjson);
        $totaltraveler = $totaladult + $totalchild;

        $getpkgprice = Zend_Controller_Action_HelperBroker::getStaticHelper('DynamicPackageSeasonCost')->GetDynamicPackagePrice($roominfojson, $tpID, $catID, $tourID, $mealID, $tripstartdate, 'Agent', 'Calculate', NULL, $MarketPlaceId, $AgencyMarkupPersentage);
        if (isset($getData['IsFromGTXNetwork']) && $getData['IsFromGTXNetwork'] == 1) {
            $objAgency = new Travel_Model_TblAgency();
            $getAgencyDetail = $objAgency->getAgencyUserList($getData['GTXNetworkAgencySysId']);
            $MarkUpOnGTXNetworkPackage = $getAgencyDetail['MarkUpOnGTXNetworkPackage'];
            $getpkgprice['cwom'] = $getpkgprice['cwom'] + $getpkgprice['m'];
            $getpkgprice['m'] = ($getpkgprice['cwom'] * $MarkUpOnGTXNetworkPackage) / 100;
            $getpkgprice['cwm'] = $getpkgprice['cwom'] + $getpkgprice['m'];
            $getpkgprice['cwmt'] = $getpkgprice['cwom'] + $getpkgprice['m'];
        }


        $objDynamicPackage = new Travel_Model_DynamicPackage('Agent');
        $CapacityCount = $objDynamicPackage->GetSelectedCarVehicleCapacity($tpID);
        if (!empty($CapacityCount) && $tourID == 1 && $CapacityCount < $totaltraveler) { // only for private
            $CapacityArr = array('successCapacity' => false, 'msgCapacity' => 'CapacityIsLess');
            echo json_encode(array_merge($getpkgprice, $CapacityArr));
            exit;
        }
        //        print_r($getselectedprice);

        echo json_encode($getpkgprice);
        exit;
    }

    public function getcustomerpkgrateAction() {

        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $getData = $this->getRequest()->getPost(); //print_r($getData);
        $objPackage = new Travel_Model_TblPackage();
        $catID = $getData['catID'];
        $tourID = $getData['tourID'];
        $totaladult = $getData['totaladult'];
        $totalchild = $getData['totalchild'];
        $tpID = $getData['tpID'];
        $mealID = $getData['mID'];
        $IsB2BAgent = $getData['IsB2BAgent'];
        $MarketPlaceId = ($IsB2BAgent == 1) ? 2 : 1;
        $tripstartdate = date("Y-m-d", strtotime(str_replace('/', '-', @$getData['tripstartdate'])));
        for ($k = 1; $k <= $getData['roomlp']; $k++) {
            $roomjson[$k]['Adult'] = $this->_request->getParam('adult_' . $k);
            if ($roomjson[$k]['Adult'] == 3) {
                $roomjson[$k]['AdultBedType'] = $this->_request->getParam('adultcl_extrabed_' . $k . '_3');
            }
            $roomjson[$k]['Child'] = $this->_request->getParam('child_' . $k);
            $roomjson[$k]['Infant'] = $this->_request->getParam('infant_' . $k);
            for ($j = 1; $j <= $roomjson[$k]['Child']; $j++) {
                $roomjson[$k]['ChildAge_' . $j] = $this->_request->getParam('child_age_' . $k . '_' . $j);
                $roomjson[$k]['ChildBedType_' . $j] = $this->_request->getParam('child_extrabed_' . $k . '_' . $j);
            }
        }
        $totaltraveler = $totaladult + $totalchild;
        $roominfojson = json_encode($roomjson);

        $AgencyMarkupPersentage = 0;
        $userSysId = isset($getData['selectedCustomerId']) ? (int) base64_decode($getData['selectedCustomerId']) : 0;
        if ($MarketPlaceId == 2 && $userSysId > 0) {
            $AgencyMarkupPersentage = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getB2bAgencyMarkPercentage($userSysId);
        }


        $pkgData = array('RoomInfoJson' => $roominfojson, 'StartDate' => $tripstartdate);
        $where = array('TPSysId = ? ' => $tpID);
        $objPackage->updateData('TB_Agency_Customer_TravelPlan', $pkgData, $where);
        $objDynamicPackage = new Travel_Model_DynamicPackage('Customer');
        $CapacityCount = $objDynamicPackage->GetSelectedCarVehicleCapacity($tpID);
        //       echo 'ppp'; print_r($getData);die;
        $getpkgprice = Zend_Controller_Action_HelperBroker::getStaticHelper('DynamicPackageSeasonCost')->GetDynamicPackagePrice($roominfojson, $tpID, $catID, $tourID, $mealID, $tripstartdate, 'Customer', 'Calculate', '', $MarketPlaceId, $AgencyMarkupPersentage);
        if (!empty($CapacityCount) && $tourID == 1 && $CapacityCount < $totaltraveler) {
            $CapacityArr = array('successCapacity' => false, 'msgCapacity' => 'CapacityIsLess');
            echo json_encode(array_merge($getpkgprice, $CapacityArr));
            //        echo json_encode(array('successCapacity' => false, 'msgCapacity' => 'CapacityIsLess', 'roomjson' => base64_encode($roominfojson)));
            exit;
        }
        //        $objPackage->UpdatePkgDetail($tpID,$roominfojson,$totaladult,$totalchild,$totaltraveler,$catID);
        //$getpkgprice = $objPackage->GetCustomerPackagePrice($tpID,$roominfojson,$totaladult,$totalchild,$totaltraveler,$catID);
        echo json_encode($getpkgprice);
        exit;
    }

    public function checkpkgvaliditycustomerAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $getData = $this->getRequest()->getPost();
        $tripsdate = explode("/", $getData['tripstartdate']);
        $tripstartdate = $tripsdate[2] . '-' . $tripsdate[1] . '-' . $tripsdate[0];
        $pkgstartdate = date('Y-m-d', strtotime($tripstartdate));

        $objPackage = new Travel_Model_TblPackage();
        $catID = $getData['catID'];
        $tpID = $getData['tpID'];
        $tpID = $objPackage->GetItenaryIdOnly($tpID);
        $objPackage = new Travel_Model_TblPackage();
        for ($i = 0; $i < count($tpID); $i++) {
            $intsysId = $tpID[$i]['TPIntSysId'];
            $hotelID = $objPackage->GetSelectedPkgAccomSysId($intsysId, $catID);
            $accomsysID[] = $hotelID['InvnItemSysId'];
            //$hotelcatprice[$catID] = array_sum($hotelprice);
        }
        for ($j = 0; $j < count($accomsysID); $j++) {
            if (!empty($accomsysID[$j])) {
                $getinventorydate = $objPackage->GetHotelValidity($accomsysID[$j]);
                $frominvdate = $getinventorydate[0]['FromDate']->format('Y-m-d');
                $fromdate = date('Y-m-d', strtotime($frominvdate));
                $toinvdate = $getinventorydate[0]['ToDate']->format('Y-m-d');
                $todate = date('Y-m-d', strtotime($toinvdate));
                //echo $todate;
                if (($pkgstartdate > $fromdate) && ($pkgstartdate < $todate)) {
                    // echo "is between";
                } else {
                    echo "Package is not available for this date";
                    exit;
                }
            }
        }
    }

    public function checkpkgvalidityAction() {

        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $getData = $this->getRequest()->getPost();
        $tripsdate = explode("/", $getData['tripstartdate']);
        $tripstartdate = $tripsdate[2] . '-' . $tripsdate[1] . '-' . $tripsdate[0];
        $pkgstartdate = date('Y-m-d', strtotime($tripstartdate));

        $objPackage = new Travel_Model_TblPackage();
        $catID = $getData['catID'];
        $tpID = $getData['tpID'];
        $tpID = $objPackage->GetTravelPlanBYOItenaryID($tpID);
        $objPackage = new Travel_Model_TblPackage();
        for ($i = 0; $i < count($tpID); $i++) {
            $intsysId = $tpID[$i]['TPIntSysId'];
            $hotelID = $objPackage->GetSelectedAccomSysId($intsysId, $catID);
            $accomsysID[] = $hotelID['InvnItemSysId'];
            //$hotelcatprice[$catID] = array_sum($hotelprice);
        }
        for ($j = 0; $j < count($accomsysID); $j++) {
            if (!empty($accomsysID[$j])) {
                $getinventorydate = $objPackage->GetHotelValidity($accomsysID[$j]);
                $frominvdate = $getinventorydate[0]['FromDate']->format('Y-m-d');
                $fromdate = date('Y-m-d', strtotime($frominvdate));
                $toinvdate = $getinventorydate[0]['ToDate']->format('Y-m-d');
                $todate = date('Y-m-d', strtotime($toinvdate));
                //echo $todate;
                if (($pkgstartdate > $fromdate) && ($pkgstartdate < $todate)) {
                    // echo "is between";
                } else {
                    echo "Package is not available for this date";
                    exit;
                }
            }
        }
    }

    public function addpackagedataAction() { 
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $agentsysID = $sessionLogin_user->intLoggedinUserId;
        $getData = $this->getRequest()->getPost();
        //        echo '<pre>'; print_r($getData); die;
        $objPackage = new Travel_Model_TblPackage();
        $packageThemeList = $objPackage->getPackageThemeList();
        $packagemastercategory = $objPackage->GetMasterPackageList();
        $this->view->packageThemeList = $packageThemeList;
        $packageInclList = $objPackage->getPackageInclusionList();
        $this->view->packageInclList = $packageInclList;
        $tplanID = $getData['tplanID'];
        $minpaxdetail = $getData['minPax'];
        $nooftraveler = $getData['travelers'];
        $search_going_to = $getData['search_going_to_id'];
        $pkgvalidity = $getData['pkgvalidity'];
        $bookingvalidity = $getData['bookingvalidity'];
        $IsFixedDeparturePackage = isset($getData['IsFixedDeparturePackage']) ? (int) $getData['IsFixedDeparturePackage'] : 0;
        $FlightDestinations = isset($getData['FlightDestinations']) ? trim($getData['FlightDestinations']) : '';
        $explodetrimpkgdate = explode(" - ", $pkgvalidity);
        //print_r($explodetrimpkgdate);die;
        $pkgstartdate = trim($explodetrimpkgdate[0]);
        $pkgvalidtill = trim($explodetrimpkgdate[1]);

        $explode_booking_validity = explode("/", $bookingvalidity);
        $PkgSellValidTill = $explode_booking_validity[2] . '-' . $explode_booking_validity[1] . '-' . $explode_booking_validity[0];
        $groupsize = $getData['groupsize'] ? $getData['groupsize'] : '0';
        $pricearr1 = explode("__", $getData['search_price_range']);
        $MinPrice = $pricearr1[0] ? $pricearr1[0] : 0;
        $MaxPrice = $pricearr1[1] ? $pricearr1[1] : 0;
        $pricerange = $MinPrice . '-' . $MaxPrice;
        $adultnum = 0;
        $childnum = 0;

        for ($k = 1; $k <= $getData['roomlp']; $k++) {
            $roomjson[$k]['Adult'] = $getData['adult_' . @$k];
            if ($roomjson[$k]['Adult'] == 3) {
                $roomjson[$k]['AdultBedType'] = $getData['adultcl_extrabed_' . $k . '_3'];
            }
            $totaladult = $totaladult + $roomjson[$k]['Adult'];
            $roomjson[$k]['Child'] = $getData['child_' . $k];
            $totalchild = $totalchild + $roomjson[$k]['Child'];
            $roomjson[$k]['Infant'] = $getData['infant_' . $k];
            $totalInfant = $totalInfant + $roomjson[$k]['Infant'];
            for ($j = 1; $j <= $roomjson[$k]['Child']; $j++) {
                $roomjson[$k]['ChildAge_' . $j] = $getData['child_age_' . $k . '_' . $j];
                $roomjson[$k]['ChildBedType_' . $j] = $getData['child_extrabed_' . $k . '_' . $j];
            }
            $roomjson[$k]['departuredate'] = $pkgstartdate;
            $roomjson[$k]['returndate'] = '';
        }
        //        for($k=1;$k<=$getData['roomlp'];$k++) {
        //         $childcount = $getData['child_'.@$k];  
        //         $adultnum = $adultnum + $getData['adult_'.@$k];
        //         $childnum = $childnum + $getData['child_'.@$k];
        //         $roomjson[$k]['Adult']  = $getData['adult_'.@$k];
        //         $roomjson[$k]['Child']  = $getData['child_'.@$k];
        //         for($c=1;$c<=$childcount;$c++){
        //            $childsage = @$getData['child_'.@$childcount.'_'.@$c];
        //            $roomjson[$k]['ChildAge_'.$c]  = $childsage;
        //         }
        //         $roomjson[$k]['bedtype'] = $getData['extrabed_'.@$k];
        //         $roomjson[$k]['departuredate']  = $pkgstartdate;
        //	 $roomjson[$k]['returndate']  = '';
        //        }
        if ($minpaxdetail > 0) {
            $minpax = $minpaxdetail;
        } else {
            $minpax = $totaladult + $totalchild;
        }


        if (!empty($search_going_to)) {
            $search_going_to_dest = explode('__', $search_going_to);
            $going_to_cityname = $search_going_to_dest[0];
            $going_to_cityid = $search_going_to_dest[1];
        }

        $search_going_from = $getData['search_going_from'];
        if (!empty($search_going_from)) {
            $search_going_to_source = explode('__', $search_going_from);
            $going_from_cityid = $search_going_to_source[0];
            $going_from_cityname = $search_going_to_source[1];
        }
        if (empty($tplanID)) {
            $roomjsonencode = json_encode($roomjson);
        } else {
            $getroomdetails = $objPackage->getroominforeadymade($tplanID);
            $roomjsonencode = $getroomdetails[0]['RoomInfoJson'];
        }
        $thememask = '1';
        $char = '';
        if(!empty($getData['PackTypeMask'])){
            for ($k = 0; $k < count($packageThemeList); $k++) {
                $char = in_array(@$packageThemeList[$k]['PackType'], $getData['PackTypeMask']) ? '1' : '0';
                $thememask .= $char;
            }
        }
        
        $char = '';
        $inclmask = '1';
        if(!empty($getData['InclMask'])){
            for ($k = 0; $k < count($packageInclList); $k++) {
                $char = in_array(@$packageInclList[$k]['InclId'], $getData['InclMask']) ? '1' : '0';
                $inclmask .= $char;
            }
        }
        if (isset($getData['FlexiPackageCategories'])) {
            $packcatmask = '1';
            $char = '';
            for ($k = 0; $k < count($packagemastercategory); $k++) {
                $char = in_array($packagemastercategory[$k]['PackCategory'], $getData['FlexiPackageCategories']) ? '1' : '0';
                $packcatmask .= $char;
            }
        }
        if (isset($getData['TravelInsurance'])) {
            $is_travel_insurance = 1;
        } else {
            $is_travel_insurance = 0;
        }
        if (isset($getData['privatetour'])) {
            if ($getData['privatetour'] == 'pt') {
                $tourtype = 1;
            }
        }
        if (isset($getData['grptour'])) {
            if ($getData['grptour'] == 'gt') {
                $tourtype = 2;
            }
        }
        if (isset($getData['privatetour']) && isset($getData['grptour'])) {
            if (($getData['privatetour'] == 'pt') && ($getData['grptour'] == 'gt')) {
                $tourtype = 3;
            }
        }

        //        print_r($travelplandata);
        if (empty($_FILES['packageImage']['error'])) {
            //File Upload Directory Path
            $upload_dir = "public/upload/package/";
            $folder = $_SERVER['DOCUMENT_ROOT'] . '/' . $upload_dir;
            $tmpFilePath = $_FILES['packageImage']['tmp_name'];
            //Make sure we have a filepath
            $fileName = $_FILES['packageImage']['name'];
            $packageTitle = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->sanitize_alfa_only($getData['Title']);
            $newFileName = ($packageTitle) . '_' . time();
            //$newFileName = str_replace(" ", "_", $getData['Title']) . '_' . rand(0, 99);
            //$newFileName = Zend_Controller_Action_HelperBroker::getStaticHelper('General')->fileUpload($fileName, $newFileName, $tmpFilePath, $folder);
            //$newFileName = Catabatic_Helper::getSiteUrl() . $upload_dir . $newFileName;


            $image_path = 'img/' . $this->intLoggedinUserAgencySysId . '/package/images';
            $DetailImg = IMAGE_PATH_URL_AWS . $image_path . '/' . $newFileName;
            $data = array(
                'AgencySysId' => $this->intLoggedinUserAgencySysId,
                'image_path' => $image_path,
                'tags' => 'package',
                'title' => $newFileName,
                'FILES' => $_FILES["packageImage"],
                'fileName' => $newFileName,
            );
            $toupload = Zend_Controller_Action_HelperBroker::getStaticHelper('FileUpload')->uploadToAWS($data);
            if ($toupload['status'] == true) {
                $newFileName = $DetailImg;
            } else {
                $newFileName = '';
            }
        }

        $created_date = date('Y-m-d');
        $data = array(
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => 0,
            "MetaKeywords" => '',
            "TourType" => 0,
            "TPCode" => 0,
            "PackRangeType" => !empty($getData['packrangetype']) ? $getData['packrangetype'] : '',
            "Title" => $getData['Title'],
            "MinPax" => $minpax,
            "EconomyMask" => 0,
            'PackTypeMask' => @$thememask ? @$thememask : '',
            'InclCatMask' => '0',
            'InclMask' => @$inclmask ? @$inclmask : '',
            'ExclusionMask' => '0',
            'PackSpecType' => '0',
            'SeasonMask' => '0',
            'GeoType' => '0',
            'IsFixDatePlan' => 0,
            'IsFixPlan' => '0',
            'IsSavedForOtherCust' => '0',
            'ImageTN' => '0',
            'ImgeDetails' => '0',
            'SourcePlaces' => $going_from_cityname ? $going_from_cityname : '',
            'SourcePlaceSysId' => $going_from_cityid ? $going_from_cityid : 0,
            'DestinationPlaces' => $going_to_cityid,
            'DestinationPlacesSysId' => $going_to_cityname,
            'PackSpecType' => 3,
            'StartDate' => $pkgstartdate,
            'ValidTill' => $pkgvalidtill,
            'PkgSellValidTill' => $PkgSellValidTill,
            'RoomInfoJson' => $roomjsonencode,
            'Price' => 0,
            'CurrencyType' => '1',
            'PriceRange' => $pricerange,
            'Rating' => 0,
            'URL' => 0,
            'TotalMinDays' => 0,
            'Hotels' => 0,
            'PopularPlaces' => 0,
            'Cities' => 0,
            'GroupSize' => $groupsize,
            'TravelInsurance' => $is_travel_insurance,
            'Readymade' => 2,
            'RefDocTitle' => '',
            'RefDocPath' => '',
            'TourType' => $tourtype ? $tourtype : '',
            'TemplatePckSysId' => 0,
            'CreateDate' => $created_date,
            'UpdateDate' => $created_date,
            'ApproveDate' => $created_date,
            'IsMarkForDel' => 0,
            'IsAprooved' => 1,
            'DestinationCovered' => !empty($getData['otherlocationcity']) ? $getData['otherlocationcity'] : '',
            'Details' => !empty($getData['Details']) ? $getData['Details'] : '',
            'IsFixedDeparturePackage' => $IsFixedDeparturePackage,
        );

        !empty($newFileName) ? ($data['ImgForList'] = $newFileName) : '';
        //         print_r(@$newFileName); 
        if (empty($tplanID)) {
            //echo "Insert";  
            $data['AdvBookingPercent'] = 10;
            $data['AdvBookingDays'] = 30;
            $data['BYOPackTypeMask'] = $packcatmask;
            $data['AgentSysId'] = $agentsysID;
            $data['IsActive'] = 0;
            $tplanID = $objPackage->insertData('TB_TravelPlan', $data);
        } else {
            try {
                $intLastInsertId = $objPackage->updateCustPackageBYO($data, $tplanID);
            } catch (Zend_Exception $e) {
                echo $e->getMessage();
                exit;
            }
        }
        $checkData = $objPackage->checkFromDestinationFixedInventory($tplanID);
        if (!empty($checkData)) {
            $wheredel = array('TPSysId = ? ' => $tplanID);
            $dataFromDes = ['IsMarkForDel' => 1];
            $objPackage->updateData('Tb_TravelPlan_From_Destination_Fixed_Inventory', $dataFromDes, $wheredel);
        }
        if (!empty($IsFixedDeparturePackage) && !empty($FlightDestinations)) {

            $FlightDestinationsArr = explode(',', $FlightDestinations);
            foreach ($FlightDestinationsArr as $value) {
                $checkDataDest = $objPackage->checkFromDestinationFixedInventory($tplanID, (int) $value);
                $dataFromDes = [
                    'TPSysId' => $tplanID,
                    'DestinationSysId' => (int) $value,
                    'CreateDate' => $created_date,
                    'UpdateDate' => $created_date,
                    'IsMarkForDel' => 0,
                    'IsActive' => 1,
                ];
                if (!empty($checkDataDest)) {
                    $wherede2 = array('id = ? ' => $checkDataDest['id']);
                    $id[] = $objPackage->updateData('Tb_TravelPlan_From_Destination_Fixed_Inventory', $dataFromDes, $wherede2);
                } else {
                    $id[] = $objPackage->insertData('Tb_TravelPlan_From_Destination_Fixed_Inventory', $dataFromDes);
                }
            }
        }
        $this->_redirect('/package/add-package-itinerary/id/' . $tplanID);
    }

    public function addpackageAction() {
        $currentDate = date('Y-m-d H:i:s');
        $objPackage = new Travel_Model_TblPackage();
        $packageThemeList = $objPackage->getPackageThemeList();
        $masterpackagelist = $objPackage->GetMasterPackageList();
        $this->view->pkgmasterdata = $masterpackagelist;
        $this->view->packageThemeList = $packageThemeList;
        $packageInclList = $objPackage->getPackageInclusionList();
        $this->view->packageInclList = $packageInclList;
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $mode = $this->getRequest()->getParam('mode') ? $this->getRequest()->getParam('mode') : '';
        $tpID = trim($this->getRequest()->getParam('id'));
        $packageTypeList = $objPackage->getPackageTypeList();
        $this->view->packageTypeList = $packageTypeList;
        // $this->view->tpID = $tpID;
        //$travelplancustdetails = $this->_crmcusttravelplan->GetTravelPlanCustomerDetails($tpID);
        //$getmastertpsysID = $this->_crmcusttravelplan->GetTravelPlanByCustomer($tpID);
        //echo $travelplancustdetails[0]['TPSysId'];

        if ($this->getRequest()->getParam('id') > 0) {
            $flexiPackageList = $objPackage->getPackageListById($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
            if (isset($flexiPackageList['DestinationCovered']) && !empty($flexiPackageList['DestinationCovered'])) {
                $cityobj = new Travel_Model_TblCity();
                $cityIds = trim($flexiPackageList['DestinationCovered']);
                $otherlocationcity = $cityobj->getCityDetailsByMultipleId($cityIds);
                $this->view->otherlocationcity = $otherlocationcity;
            }
            $this->view->FromDestinationFixedInventoryData = $FromDestinationFixedInventoryData = $objPackage->getFromDestinationFixedInventoryData($tpID);
        }
        $post = $this->getRequest()->getPost();

        if (@$post['is_source'] == 'CRM') {
            
        } else {
            if ($this->getRequest()->isPost()) {

                $thememask = '1';
                $char = '';
                for ($k = 0; $k < count($packageThemeList); $k++) {
                    $char = in_array(@$packageThemeList[$k]['PackType'], @$post['PackTypeMask']) ? '1' : '0';
                    $thememask .= $char;
                }
                $char = '';
                $inclmask = '1';
                for ($k = 0; $k < count($packageInclList); $k++) {
                    $char = in_array(@$packageInclList[$k]['InclId'], @$post['InclMask']) ? '1' : '0';
                    $inclmask .= $char;
                }
                $fromarr1 = explode("__", $post['search_going_from']);
                $search_starting_from = @$fromarr1[0];
                $search_starting_from_city = @$fromarr1[1];
                $pricearr1 = explode("__", $post['search_price_range']);
                $MinPrice = @$pricearr1[0];
                $MaxPrice = @$pricearr1[1];

                $desarr1 = explode("__", $post['search_going_to_id']);
                $desplaceID = @$desarr1[0];
                $desplace = @$desarr1[1];

                if (@$post['TravelInsurance'] == 'on') {
                    $TravelInsurance = '1';
                } else {
                    $TravelInsurance = '0';
                }
                if (@$post['istransport'] == 'yes') {
                    $istransport = '1';
                } else {
                    $istransport = '0';
                }
                $explodedate = explode("/", $post['from_date']);
                $pkgstartdate = $explodedate[2] . '-' . $explodedate[1] . '-' . $explodedate[0];
                $EconomyMask = @$post['PackageCategories'];
                $flexiPackage = array(
                    'PackRangeType' => isset($post['PackRangeType']) ? $post['PackRangeType'] : '0',
                    'Title' => isset($post['Title']) ? $post['Title'] : '',
                    'EconomyMask' => isset($EconomyMask) ? $EconomyMask : '0',
                    'SourcePlaces' => isset($post['search_starting_from']) ? $post['search_starting_from'] : '',
                    'MinPrice' => isset($MinPrice) ? $MinPrice : 0,
                    'MaxPrice' => isset($MaxPrice) ? $MaxPrice : 0,
                    'DestinationPlaces' => $post['search_going_to'] ? $post['search_going_to'] : '',
                    'DestinationPlacesSysId' => $desplaceID ? $desplaceID : 0,
                    'PackTypeMask' => $thememask ? $thememask : '',
                    'InclMask' => $inclmask ? $inclmask : '',
                    'PackSpecType' => isset($post['PackSpecType']) ? $post['PackSpecType'] : 0,
                    'StartDate' => $pkgstartdate,
                    'MinPax' => isset($post['totaltraveller']) ? $post['totaltraveller'] : '0',
                    'IsInsuranceExist' => isset($TravelInsurance) ? $TravelInsurance : '0',
                    'IsTransportInc' => isset($istransport) ? $istransport : '0',
                    'UpdateDate' => @$currentDate
                );

                $intLastInsertId = $objPackage->updateCustPackage($flexiPackage, $tpID);
                $intLastInsertId = $post['code'];

                $objPackage->UnDraft($post['code']);
                $this->_redirect('/package/add-package-itinerary/id/' . $tpID);
            }
        }
    }

    public function addFlexiPackageAction() {
        $currentDate = date('Y-m-d H:i:s');
        $objPackage = new Travel_Model_TblPackage();

        $packageThemeList = $objPackage->getPackageThemeList();

        $this->view->packageThemeList = $packageThemeList;
        $packageInclList = $objPackage->getPackageInclusionList();
        $objTransportsRoutes = new Travel_Model_TblTransportsRoutes();
        $objBus = new Travel_Model_TblBus();
        $this->view->packageInclList = $packageInclList;
        $objReport = new Marketing_Model_Report();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $eventMdl = new Event_Model_Event();
        $eventArray = $eventMdl->getAllEvent($intLoggedinUserAgencySysId);
        // echo "<pre>";print_r($eventArray);exit;
        $this->view->eventArray = $eventArray;
        $this->view->EventSysId = 0;
        $this->view->mode = "add";
        $this->view->FromDestinationFixedInventoryData = '';

        if ((int) $this->getRequest()->getParam('id') > 0) {

            $TPSysId = $this->getRequest()->getParam('id');
            $flexiPackageList = $objPackage->getFlexiPackageList($TPSysId);
            if (isset($flexiPackageList['DestinationCovered']) && !empty($flexiPackageList['DestinationCovered'])) {
                $cityobj = new Travel_Model_TblCity();
                $cityIds = trim($flexiPackageList['DestinationCovered']);
                $otherlocationcity = $cityobj->getCityDetailsByMultipleId($cityIds);
                $this->view->otherlocationcity = $otherlocationcity;
            }
            if (isset($flexiPackageList['AgencySysId']) && (($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId))) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            $mMasterId = 0;
            if ($flexiPackageList['MasterRefId'] == '0') {
                $mMasterId = $flexiPackageList['TPSysId'];
            } else {
                $mMasterId = $flexiPackageList['MasterRefId'];
            }
            $this->view->FromDestinationFixedInventoryData = $FromDestinationFixedInventoryData = $objPackage->getFromDestinationFixedInventoryData($mMasterId);
            $pickUpLocationList = $objTransportsRoutes->getPickUpLocationsByStartEndCityId($intLoggedinUserAgencySysId, $flexiPackageList['SourcePlaceSysId'], $flexiPackageList['DestinationPlacesSysId']);
            $finalPickUpArray = array();
            foreach ($pickUpLocationList as $key => $value) {
                $finalPickUp = json_decode($value['BusPickUpLocationsStr'], 1);
                foreach ($finalPickUp as $pkey => $pvalue) {
                    $fival = $value["StartCitySysId"] . '_' . $value["EndCitySysId"] . '_' . ($pkey + 1);
                    $finalPickUpArray[] = trim($pvalue[$fival]);
                }
            }
            $pickupLocationArr = $objPackage->getBusPickUpLocationDateByMasterId($intLoggedinUserAgencySysId, $mMasterId);
            $pickupLocationTimeArr = array();
            if (isset($flexiPackageList['BusRouteSysId']) && $flexiPackageList['BusRouteSysId'] != '') {
                $pickupLocationTimeArr = $objTransportsRoutes->getBusPickupLocationTimeDataById($intLoggedinUserAgencySysId, $flexiPackageList['BusRouteSysId']);
            }
                    //    echo "<pre>";print_r($flexiPackageList);die; 

            $this->view->flexiPackageList = $flexiPackageList;
            $objSupplier = new Travel_Model_TblSupplier();
            $SupplierArr = $objSupplier->getSupplierById($flexiPackageList['SupplierSysId']);
            $this->view->SupplierArr = $SupplierArr;
            $this->view->finalPickUpArray = $finalPickUpArray;
            $this->view->pickupLocationArr = $pickupLocationArr;
            $this->view->pickupLocationTimeArr = $pickupLocationTimeArr;
            $this->view->BusRouteSysId = $flexiPackageList['BusRouteSysId'];
            $this->view->BusSysId = isset($flexiPackageList['BusSysId'])?$flexiPackageList['BusSysId']:0;
            $this->view->EventSysId = $flexiPackageList['EventSysId'];
            $this->view->mode = "edit";
        }
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost();
            //  echo "<pre>";print_r($post);die;

            if ($post) {
                $BusSysId = (isset($post['BusSysId']) && !empty($post['BusSysId']))?$post['BusSysId']:0;
                if (isset($post['supplier_type_id']) && !empty($post['supplier_type_id'])) {
                    Zend_Controller_Action_HelperBroker::getStaticHelper('Supplier')->updateSupplierService($post['supplier_type_id'], 'Package');
                }
                if (empty($_FILES['packageImage']['error'])) {
                    //File Upload Directory Path
                    $upload_dir = "public/upload/package/";
                    $folder = $_SERVER['DOCUMENT_ROOT'] . '/' . $upload_dir;
                    $tmpFilePath = $_FILES['packageImage']['tmp_name'];
                    //Make sure we have a filepath
                    $fileName = $_FILES['packageImage']['name'];

                    $packageTitle = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->sanitize_alfa_only($post['Title']);
                    $newFileName = ($packageTitle) . '_' . time();
                    //echo $newFileName;die;
                    $image_path = 'img/' . $intLoggedinUserAgencySysId . '/package/images';
                    $DetailImg = IMAGE_PATH_URL_AWS . $image_path . '/' . $newFileName;
                    $data = array(
                        'AgencySysId' => $intLoggedinUserAgencySysId,
                        'image_path' => $image_path,
                        'tags' => 'package',
                        'title' => $newFileName,
                        'FILES' => $_FILES["packageImage"],
                        'fileName' => $newFileName,
                    );
                    $toupload = Zend_Controller_Action_HelperBroker::getStaticHelper('FileUpload')->uploadToAWS($data);
                    if ($toupload['status'] == true) {
                        $newFileName = $DetailImg;
                    } else {
                        $newFileName = '';
                    }
                    //$newFileName = Zend_Controller_Action_HelperBroker::getStaticHelper('General')->fileUpload($fileName, $newFileName, $tmpFilePath, $folder);
                }
                if ($post['mode'] == 'Edit') { //Assign these values because, thease fields are disabled in edit case
                    $post['PackSpecType'] = $post['PackSpecTypeEdit'];
                    unset($post['PackSpecTypeEdit']);
                    $post['Readymade'] = $post['ReadymadeEdit'];
                    unset($post['ReadymadeEdit']);
                    $post['FlexiPackageCategories'] = $post['FlexiPackageCategoriesEdit'];
                    unset($post['FlexiPackageCategoriesEdit']);
                    $reseconomyid = json_decode(base64_decode($post['economyidtres']), true);
                    $packkeys = array_keys($reseconomyid);
                    $post['PackageCategories'] = $packkeys;
                }

                $supplier_type_id = $post['supplier_type_id'];
                if ($supplier_type_id != "" && $supplier_type_id != 0) {
                    $objSupplier = new Travel_Model_TblSupplier();
                    $supplierDetails = $objSupplier->getSupplierList($supplier_type_id);
                    $supplierMasking = $supplierDetails['Services'];

                    //Get Old Masking Array
                    $SupplierServicesArrDB = $objSupplier->getSupplierServices(); //Get Supplier Services
                    $servicesMaskingArr = $objSupplier->getMasking($supplierMasking, $SupplierServicesArrDB, 'SupplierSerSysId');
                    $PackageSupplierTypeSysIdArr = array($this->SupplierTypeSysId);
                    $newMaskingArr = array_unique(array_merge($servicesMaskingArr, $PackageSupplierTypeSysIdArr));
                    //              echo '<pre>'; print_r($servicesMaskingArr); print_r($newMaskingArr); die;
                    //Set new masking string
                    $supplierServicesNewMasking = $objSupplier->setMasking($newMaskingArr, $SupplierServicesArrDB, 'SupplierSerSysId');
                    //echo $supplierServicesNewMasking; die;
                    //Update Masking
                    $supplierMaskingUpdateArr = array('Services' => $supplierServicesNewMasking);
                    $objSupplier->updateSupplier($supplierMaskingUpdateArr, $supplier_type_id);
                }

                $reslastint = json_decode(base64_decode($post['lastintres']), true);
                $reseconomyid = json_decode(base64_decode($post['economyidtres']), true);
                //echo "<pre>";print_r($packageInclList);
                //echo "<pre>";
                // print_r($post['InclMask']);
                //print_r($reseconomyid);
                // print_r($post);
                // die(); 
                $thememask = '1';
                $char = '';
                for ($k = 0; $k < count($packageThemeList); $k++) {
                    $char = (!empty($post['PackTypeMask']) && in_array($packageThemeList[$k]['PackType'], $post['PackTypeMask'])) ? '1' : '0';
                    $thememask .= $char;
                }
                $char = '';
                $inclmask = '1';
                for ($k = 0; $k < count($packageInclList); $k++) {
                    $char = (!empty($post['InclMask']) && in_array($packageInclList[$k]['InclId'], $post['InclMask'])) ? '1' : '0';
                    $inclmask .= $char;
                }

                //Get package details by id
                $edit_package_id = $reseconomyid[1];
                $flexiPackageDetails = $objPackage->getFlexiPackageList($edit_package_id);
                //echo "<pre>"; print_r($flexiPackageDetails);die;
                $StartDateTime = (array) $flexiPackageDetails['StartDate'];
                $StartDateTimeVal = $StartDateTime['date'];
                $ValidTillTime = (array) $flexiPackageDetails['ValidTill'];
                $ValidTillTimeVal = $ValidTillTime['date'];
                if ($StartDateTimeVal != '') {
                    $StartDate = @date("Y-m-d H:i:s", strtotime($StartDateTimeVal));
                } else {
                    $StartDate = @$currentDate;
                }
                if ($ValidTillTimeVal != '') {
                    $ValidTill = @date("Y-m-d H:i:s", strtotime($ValidTillTimeVal));
                } else {
                    $ValidTill = @$currentDate;
                }
                if ($flexiPackageDetails['Details'] != '') {
                    $Details = @$flexiPackageDetails['Details'];
                } else {
                    $Details = 0;
                }
                if ($flexiPackageDetails['Cities'] != '') {
                    $Cities = @$flexiPackageDetails['Cities'];
                } else {
                    $Cities = 0;
                }


                $search_going_to = $post['search_going_to_id'];
                if (!empty($search_going_to)) {
                    $search_going_to_dest = explode('__', $search_going_to);
                    $going_to_cityname = $search_going_to_dest[1];
                    $going_to_cityid = $search_going_to_dest[0];
                }

                $search_going_from = $post['search_going_from_id'];
                if (!empty($search_going_from)) {
                    $search_going_to_source = explode('__', $search_going_from);
                    $going_from_cityname = $search_going_to_source[1];
                    $going_from_cityid = $search_going_to_source[0];
                }

                for ($j = 0; $j < count(@$post['PackageCategories']); $j++) {
                    $EconomyMask = @$post['PackageCategories'][$j];
                    $CategoryName = @$post['PackageCategoriesName'][$EconomyMask];
                    $agentsysID = $this->intLoggedinUserId;
                    if ($post['mode'] == 'Edit') {
                        $IsEvent = isset($post['IsEvent']) ? (int) $post['IsEvent'] : 0;
                        $EventSysId = isset($post['EventSysId']) ? (int) $post['EventSysId'] : null;
                        if ($EventSysId == 0 || $IsEvent == 0) {
                            $EventSysId = null;
                        }
                        $flexiPackage = array(
                            'Title' => isset($post['Title']) ? $post['Title'] : '0',
                            'EconomyMask' => isset($EconomyMask) ? $EconomyMask : '0',
                            'PackageCategoryName' => trim($CategoryName),
                            'PackTypeMask' => @$thememask,
                            'InclMask' => @$inclmask,
                            'PackSpecType' => isset($post['PackSpecType']) ? $post['PackSpecType'] : '0',
                            'TravelInsurance' => isset($post['TravelInsurance']) ? $post['TravelInsurance'] : '0',
                            'SupplierSysId' => isset($post['supplier_type_id']) ? $post['supplier_type_id'] : '0',
                            'UpdateDate' => @$currentDate,
                            'URL' => isset($post['URL']) ? $post['URL'] : '',
                            'PackRangeType' => isset($post['PackRangeType']) ? $post['PackRangeType'] : '',
                            'BusRouteSysId' => isset($post['BusRouteSysId']) ? $post['BusRouteSysId'] : '0',
                            'BusSysId' => isset($BusSysId) ? $BusSysId : '0',
                            'EventSysId' => $EventSysId,
                            'SourcePlaces' => isset($going_from_cityname) ? $going_from_cityname : '',
                            'SourcePlaceSysId' => isset($going_from_cityid) ? $going_from_cityid : 0,
                            'DestinationPlaces' => isset($going_to_cityname) ? $going_to_cityname : '',
                            'DestinationPlacesSysId' => isset($going_to_cityid) ? $going_to_cityid : 0,
                            'DestinationCovered' => !empty($post['otherlocationcity']) ? $post['otherlocationcity'] : '',
                            'Details' => !empty($post['Details']) ? $post['Details'] : '',
                        );
                    } else {
                        $IsEvent = isset($post['IsEvent']) ? (int) $post['IsEvent'] : 0;
                        $EventSysId = isset($post['EventSysId']) ? (int) $post['EventSysId'] : null;
                        if ($EventSysId == 0 || $IsEvent == 0) {
                            $EventSysId = null;
                        }
                        $flexiPackage = array(
                            'AgencySysId' => $intLoggedinUserAgencySysId,
                            'AgentSysId' => $agentsysID,
                            'TPCode' => '0',
                            'PackRangeType' => isset($post['PackRangeType']) ? $post['PackRangeType'] : '',
                            'Title' => isset($post['Title']) ? $post['Title'] : '0',
                            'EconomyMask' => isset($EconomyMask) ? $EconomyMask : '0',
                            'PackageCategoryName' => trim($CategoryName),
                            'PackTypeMask' => @$thememask,
                            'InclCatMask' => '0',
                            'InclMask' => @$inclmask,
                            'ExclusionMask' => '0',
                            'PackSpecType' => isset($post['PackSpecType']) ? $post['PackSpecType'] : '0',
                            'SeasonMask' => '0',
                            'GeoType' => '0',
                            'IsFixDatePlan' => '0',
                            'IsFixPlan' => '0',
                            'Details' => $Details,
                            'ImageTN' => '0',
                            'ImgForList' => '0',
                            'ImgeDetails' => '0',
                            'StartDate' => @$StartDate,
                            'ValidTill' => @$ValidTill,
                            'Price' => '0',
                            'DiscountMsg' => '0',
                            'NetPrice' => '0',
                            'MinPrice' => '0',
                            'Rating' => '0',
                            'URL' => '0',
                            'TotalMinDays' => '0',
                            'TotalMaxDays' => '0',
                            'Hotels' => '0',
                            'PopularPlaces' => '0',
                            'Cities' => $Cities,
                            'Countries' => '0',
                            'TemplatePckSysId' => '0',
                            'TravelInsurance' => isset($post['TravelInsurance']) ? $post['TravelInsurance'] : '0',
                            'SupplierSysId' => isset($post['supplier_type_id']) ? $post['supplier_type_id'] : '0',
                            'Readymade' => isset($post['Readymade']) ? $post['Readymade'] : '0',
                            'UpdateDate' => @$currentDate,
                            'CreateDate' => @$currentDate,
                            'ApproveDate' => @$currentDate,
                            'URL' => isset($post['URL']) ? $post['URL'] : '',
                            'IsMarkForDel' => '0',
                            'IsAprooved' => '1',
                            'IsFixedDeparturePackage' => isset($post['IsFixedDeparturePackage']) ? $post['IsFixedDeparturePackage'] : '0',
                            'IsBusRoutePackage' => isset($post['IsBusRoutePackage']) ? $post['IsBusRoutePackage'] : '0',
                            'IsCommonFlightPackage' => isset($post['IsCommonFlightPackage']) ? $post['IsCommonFlightPackage'] : '0',
                            'IsCruise' => isset($post['IsCruise']) ? $post['IsCruise'] : '0',
                            'BusRouteSysId' => isset($post['BusRouteSysId']) ? $post['BusRouteSysId'] : '0',
                            'BusSysId' => isset($BusSysId) ? $BusSysId : '0',
                            'CurrencyType' => $this->intLoggedinUserTrxCurrency,
                            'SourcePlaces' => isset($going_from_cityname) ? $going_from_cityname : '',
                            'SourcePlaceSysId' => isset($going_from_cityid) ? $going_from_cityid : 0,
                            'DestinationPlaces' => isset($going_to_cityname) ? $going_to_cityname : '',
                            'DestinationPlacesSysId' => isset($going_to_cityid) ? $going_to_cityid : 0,
                            'DestinationCovered' => !empty($post['otherlocationcity']) ? $post['otherlocationcity'] : '',
                            'Details' => !empty($post['Details']) ? $post['Details'] : '',
                            'IsEvent' => isset($post['IsEvent']) ? $post['IsEvent'] : '0',
                            'EventSysId' => $EventSysId
                        );
                    }
                    !empty($newFileName) ? ($flexiPackage['ImgForList'] = $newFileName) : '';
                    //                        echo '<pre>'; print_r($flexiPackage);
                    if ($post['mode'] == 'Edit') {
                        $rescode = @$reseconomyid[$EconomyMask];
                        //                            if ($rescode > 0) {
                        $intLastInsertId = $objPackage->updateFlexiPackage($flexiPackage, $rescode);
                        $intLastInsertId = $rescode;
                        $economyidarr[$EconomyMask] = $intLastInsertId;
                        $lastinsertidarr[] = $intLastInsertId;
                    } else {
                        $flexiPackage['MinPax'] = '2'; //By Defaultdefault 
                        $PkgSellValidTill = date('Y-m-d', strtotime(@$currentDate . ' + 90 days'));
                        $flexiPackage['PkgSellValidTill'] = @$PkgSellValidTill;
                        $intLastInsertId = $objPackage->addFlexiPackage($flexiPackage);
                        $economyidarr[$EconomyMask] = $intLastInsertId;
                        $lastinsertidarr[] = $intLastInsertId;
                        $tncdata = array(
                            'AgencySysId' => @$intLoggedinUserAgencySysId,
                            'TPIntSysId' => @$intLastInsertId,
                            'Inclusions' => 'Inclusions',
                            'Exclusions' => 'Exclusions',
                            'CancellationPolicy' => 'CancellationPolicy',
                            'TravelBasics' => 'Travel Basics',
                            'TermsAndConditions' => 'Terms And Conditions',
                            'BookingTerms' => 'Booking Terms',
                            'WhyUseUs' => 'Why Use Us',
                            'CreateDate' => @$currentDate,
                            'UpdateDate' => @$currentDate,
                            'IsMarkForDel' => '0',
                            'IsActive' => '1'
                        );
                        $tncId = $objPackage->insertData('TB_TravelPlan_Terms_Conditions', $tncdata);
                    }
                } //reslastint				


                if ($post['mode'] != 'Edit') {
                    for ($j = 0; $j < count(@$lastinsertidarr); $j++) {
                        if ($j == 0) {
                            $MasterRefId = '0';
                        } else {
                            $MasterRefId = @$lastinsertidarr[0];
                        }
                        $updatePackData = array(
                            'MasterRefId' => @$MasterRefId,
                            'VersionId' => @$lastinsertidarr[$j]
                        );
                        $updtId = $objPackage->updateFlexiPackage($updatePackData, $lastinsertidarr[$j]);
                    }
                }

                $intLastInsertId = $lastinsertidarr[0];
                $mflexiPackageList = $objPackage->getFlexiPackageList(@$intLastInsertId);
                if (isset($mflexiPackageList['MasterRefId']) && $mflexiPackageList['MasterRefId'] != 0) {
                    $intLastInsertId = $mflexiPackageList['MasterRefId'];
                }
                /* Added by mangal for bus pickup location 26/11/2018 Start */
                if (isset($post['pickupLocationName']) && $post['pickupLocationName'] != '') {
                    // $mflexiPackageList = $objPackage->getFlexiPackageList(@$intLastInsertId);

                    if (@$mflexiPackageList['MasterRefId'] == '0') {
                        $mchildpackarr = $objPackage->getChildPackageList(@$mflexiPackageList['TPSysId']);
                    } else {
                        $mchildpackarr = $objPackage->getChildPackageList(@$mflexiPackageList['MasterRefId']);
                    }
                    $mMasterId = 0;
                    if (!empty($mchildpackarr)) {
                        foreach ($mchildpackarr as $val) {
                            if ($val['MasterRefId'] == '0') {
                                $mMasterId = $val['TPSysId'];
                            }
                        }
                    }

                    if ($post['mode'] == 'Edit') {

                        $where = "MasterRefTPSysID = $mMasterId AND AgencySysId = $intLoggedinUserAgencySysId";
                        $updateData = array('IsMarkForDel' => '1');
                        $objPackage->updateData('TB_TravelPlan_Bus_Pickup_Location', $updateData, $where);
                        $m = 1;
                        foreach ($post['pickupLocationName'] as $pickkey => $pickvalue) {
                            $mKey = 'LocationTime' . $m;
                            foreach ($post[$mKey] as $timekey => $timevalue) {
                                $updateBusRoute = [
                                    'AgencySysId' => @$intLoggedinUserAgencySysId,
                                    'MasterRefTPSysID' => @$mMasterId,
                                    'StartCityId' => isset($going_from_cityid) ? $going_from_cityid : 0,
                                    'EndCityId' => isset($going_to_cityid) ? $going_to_cityid : 0,
                                    'pickupLocation' => trim($pickvalue),
                                    'IsActive' => 1,
                                    'IsMarkForDel' => 0,
                                    'CreateDate' => @$currentDate,
                                    'UpdateDate' => @$currentDate,
                                    'BusRouteSysId' => $post['BusRouteSysId'],
                                    'PickupTime' => $timevalue,
                                    'Sequence' => $m,
                                ];
                                //                       echo "<pre>";print_r($updateBusRoute);die;
                                $updatedataLocation[] = $objPackage->insertData('TB_TravelPlan_Bus_Pickup_Location', $updateBusRoute);
                            }
                            $m++;
                        }
                    } else {
                        $m = 1;
                        foreach ($post['pickupLocationName'] as $pickkey => $pickvalue) {
                            $mKey = 'LocationTime' . $m;
                            foreach ($post[$mKey] as $timekey => $timevalue) {

                                $insertBusRoute = [
                                    'AgencySysId' => @$intLoggedinUserAgencySysId,
                                    'MasterRefTPSysID' => @$mMasterId,
                                    'StartCityId' => isset($going_from_cityid) ? $going_from_cityid : 0,
                                    'EndCityId' => isset($going_to_cityid) ? $going_to_cityid : 0,
                                    'pickupLocation' => trim($pickvalue),
                                    'IsActive' => 1,
                                    'IsMarkForDel' => 0,
                                    'CreateDate' => @$currentDate,
                                    'UpdateDate' => @$currentDate,
                                    'BusRouteSysId' => $post['BusRouteSysId'],
                                    'PickupTime' => $timevalue,
                                    'Sequence' => $m,
                                ];
                                //                        echo "<pre>";print_r($insertBusRoute);die;
                                $insertdataLocation[] = $objPackage->insertData('TB_TravelPlan_Bus_Pickup_Location', $insertBusRoute);
                            }
                            $m++;
                        }
                    }
                    //                echo "<pre>";print_r($insertdataLocation);die;
                }

                /* Added by mangal for bus pickup location 26/11/2018 End */






                /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
                $userHistoryData = array(
                    'TPSysId' => $intLastInsertId,
                    'StepId' => 1,
                    'Details' => 1,
                    'UserSysId' => $this->intLoggedinUserId
                );
                Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
                /* -------------------- end insert data for contributor tab----------------------- */
                $tplanID = $intLastInsertId;
                $created_date = date("Y-m-d");
                $checkData = $objPackage->getFromDestinationFixedInventoryData($tplanID);
                $checkDataIds = array_column($checkData, 'id');
                //                echo "<pre>";print_r($checkDataIds);die;
                if (!empty($checkData)) {
                    $wheredel = array('TPSysId = ? ' => $tplanID);
                    $dataFromDes = ['IsMarkForDel' => 1];
                    $objPackage->updateData('Tb_TravelPlan_From_Destination_Fixed_Inventory', $dataFromDes, $wheredel);
                }
                if ($post['mode'] == 'Edit') {
                    $flexiPackageDetails = $objPackage->getFlexiPackageList($intLastInsertId);
                    $IsFixedDeparturePackage = $flexiPackageDetails['IsFixedDeparturePackage'];
                } else {
                    $IsFixedDeparturePackage = isset($post['IsFixedDeparturePackage']) ? (int) $post['IsFixedDeparturePackage'] : 0;
                }
                $FlightDestinations = isset($post['FlightDestinations']) ? trim($post['FlightDestinations']) : '';
                if (!empty($IsFixedDeparturePackage) && !empty($FlightDestinations)) {

                    $FlightDestinationsArr = explode(',', $FlightDestinations);
                    foreach ($FlightDestinationsArr as $value) {
                        $checkDataDest = $objPackage->checkFromDestinationFixedInventory($tplanID, (int) $value);
                        $dataFromDes = [
                            'TPSysId' => $tplanID,
                            'DestinationSysId' => (int) $value,
                            'CreateDate' => $created_date,
                            'UpdateDate' => $created_date,
                            'IsMarkForDel' => 0,
                            'IsActive' => 1,
                        ];
                        if (!empty($checkDataDest)) {
                            $desid = $checkDataDest['id'];
                            $wherede2 = array('id = ? ' => $checkDataDest['id']);
                            $id[] = $objPackage->updateData('Tb_TravelPlan_From_Destination_Fixed_Inventory', $dataFromDes, $wherede2);
                        } else {
                            $id[] = $desid = $objPackage->insertData('Tb_TravelPlan_From_Destination_Fixed_Inventory', $dataFromDes);
                        }
                        if (!in_array($desid, $checkDataIds)) {
                            $FromDestinationFixedInventoryData[] = array('id' => $desid);
                        }
                    }
                    $getFixedDepartureDates = $objPackage->getInventoryDate($tplanID);
                    if (!empty($getFixedDepartureDates)) {
                        foreach ($getFixedDepartureDates as $key => $value) {
                            $fromDate = $value['FromDate']->format('Y-m-d');
                            $ToDate = (!empty($value['ToDate'])) ? $value['ToDate']->format('Y-m-d') : '';
                            $FixedDepartureInventory = (int) $value['FixedDepartureInventory'];
                            $CurrencyType = (int) $value['CurrencyType'];
                            if (!empty($FromDestinationFixedInventoryData)) {
                                foreach ($FromDestinationFixedInventoryData as $destinationValArray) {
                                    $destinationId = $destinationValArray['id'];
                                    $dupliucateInventory = $objPackage->checkFixedInventoryInPkg($fromDate, $tplanID, $destinationId);
                                    if (empty($dupliucateInventory)) {
                                        $saveFixedInventoryArray = array(
                                            "FromDate" => $fromDate,
                                            "ToDate" => $ToDate,
                                            "FixedInventory" => (int) $FixedDepartureInventory,
                                            "HoldInventory" => 0,
                                            "SoldInventory" => 0,
                                            "CurrentInventory" => (int) $FixedDepartureInventory,
                                            "AdultCost" => 0,
                                            "InfantCost" => 0,
                                            "MarkupType" => 1,
                                            "B2CAdultMarkup" => 0,
                                            "B2BAdultMarkup" => 0,
                                            "B2CInfantMarkup" => 0,
                                            "B2BInfantMarkup" => 0,
                                            "CreateDate" => date('Y-m-d H:i:s'),
                                            "UpdateDate" => date('Y-m-d H:i:s'),
                                            "IsMarkForDel" => 0,
                                            "IsActive" => 1,
                                            "CurrencySysId" => isset($CurrencyType) ? (int) $CurrencyType : 1,
                                            "FixedInvnSysId" => $destinationId,
                                            "TPSysId" => $tplanID
                                        );
                                        $countArr[] = $FixedInvnSysId = $objPackage->insertData('TB_TravelPlan_Itinerary_FixedInventory', $saveFixedInventoryArray);
                                    } else {
                                        $countArr[] = $dupliucateInventory[0]['id'];
                                        $updateDataInvF = ['IsMarkForDel' => 0];
                                        $whereInvF = array('TPSysID = ? ' => $tplanID, 'FromDate = ? ' => $fromDate);
                                        $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory', $updateDataInvF, $whereInvF);
                                    }
                                }
                            }
                        }
                    }
                }
                $this->_redirect('/package/add-flexi-package-readymade-itinerary/id/' . $intLastInsertId);
                exit;
            }
        }

        $TransportsbusList = $objBus->busList($intLoggedinUserAgencySysId);

        $busTransportsRoutesList = $objTransportsRoutes->busTransportsRoutesList($intLoggedinUserAgencySysId);
            //    echo "<pre>";print_r($TransportsbusList);die;
        $this->view->busTransportsRoutesListArr = $busTransportsRoutesList;
        $this->view->TransportsbusList = $TransportsbusList;
        $packageTypeList = $objPackage->getPackageTypeList();
        $this->view->packageTypeList = $packageTypeList;
    }

    public function addFlexiPackageReadymadeItineraryAction() {
//        die('hello');
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');

        if ($this->getRequest()->getParam('id') > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
//            echo '<pre>';print_r($post);echo '</pre>';die;	
            $objPAckRange = new Travel_Model_TblPackageRange();
            $PackRangeArr = $objPAckRange->getDataByPackageRangeId(($flexiPackageList['PackRangeType']));
            $objSupplier = new Travel_Model_TblSupplier();
            $SupplierArr = $objSupplier->getSupplierById(($flexiPackageList['SupplierSysId']));
            $objHotelRooms = new Travel_Model_TblHotelRooms();
            $this->view->arrHotelRoomTypes = $objHotelRooms->getRoomTypes($intLoggedinUserAgencySysId);

            $objHotelMealType = new Travel_Model_Master_Mealtype();
            $this->view->arrHotelRoomMealTypes = $objHotelMealType->getRoomMealtypes();

            $flexiPackageList['PackRangeTypeName'] = $PackRangeArr['Title'];
            $flexiPackageList['SupplierName'] = $SupplierArr['SupplierName'];
            //            echo '<pre>'; print_r($this->view->arrHotelRoomMealTypes); die;
            $this->view->flexiPackageList = $flexiPackageList;

            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;

            //            $flexiPackageHotelList = $objPackage->getPackageHotelList($this->getRequest()->getParam('id'));
            //            $this->view->flexiPackageHotelList = $flexiPackageHotelList;
            //Get Package Activity
            $flexiPackageActivityList = $objPackage->getFlexiPackageActivityList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageActivityList = $flexiPackageActivityList;

            //Get Package Sightseen
            $flexiPackageSightseenList = $objPackage->getFlexiPackageSightseenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;

            $flexiPackageTransportList = $objPackage->getFlexiPackageTransportList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageTransportList = $flexiPackageTransportList;
            $RoadTypeList = $objPackage->getMasterRoadType();
            $this->view->RoadTypeList = $RoadTypeList;
        }
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost();
            if ($post) {
                //                echo "<pre>"; print_r($post);die;                
                $reslastint = json_decode(base64_decode($post['lastintres']), true);
                $reseconomyid = json_decode(base64_decode($post['economyidtres']), true);

                for ($u = 0; $u < count($reslastint); $u++) {
                    $packid = $reslastint[$u];
                    /* ----------UPdate valid till in package--------- */
                    $flexiPackageDetails = $objPackage->getFlexiPackageList($packid);
                    $days = (int) $post['daycount'];
                    $StartDateTime = (array) $flexiPackageDetails['StartDate'];
                    $StartDate = $StartDateTime['date'];
                    $ValidTill = date('Y-m-d H:i:s', strtotime($StartDate . " +$days day"));
                    $pkgData = array('ValidTill' => $ValidTill);
                    $where = array('TPSysId = ? ' => $packid);
                    $objPackage->updateData('TB_TravelPlan', $pkgData, $where);
                }

                $packspectype = (isset($post['packspectype'])) ? (int) $post['packspectype'] : 0;
                if ($packspectype == '2') {
                    $cityid = @$post['cityidarr'][0];
                    if (!empty($cityid)) {
                        $objCity = new Travel_Model_TblCity();
                        $objCity->intCityId = $cityid;
                        $cityArray = $objCity->getCityList();
                        $countryId = $cityArray[0]['ContSysId'];
                    }
                    //                        echo '<pre>';print_r($post); die;     
                    $itndata = array(
                        'Details' => @$post['detail'],
                        'MealPlanInclude' => isset($post['MealPlanInclude']) ? implode(',', $post['MealPlanInclude']) : '',
                        'UpdateDate' => $currentDate
                    );
                    $deldata = array(
                        'UpdateDate' => $currentDate,
                        'IsMarkForDel' => '1',
                        'IsActive' => '0'
                    );
                    $delsightdata = array(
                        'UpdateDate' => $currentDate,
                        'IsMarkForDelete' => '1',
                        'IsActive' => '0'
                    );
                    for ($u = 0; $u < count($reslastint); $u++) {
                        $packid = $reslastint[$u];
                        $where = array('TPSysId = ? ' => @$packid, 'Sequence =? ' => 1);
                        $delId = $objPackage->updateData('TB_TravelPlan_Itenary', $itndata, $where);

                        $delId = $objPackage->deleteFlexiPackageActivity(@$packid);
                        $delId = $objPackage->deleteFlexiPackageSS(@$packid);
                        $delId = $objPackage->deleteFlexiPackageHotel(@$packid);
                        $delId = $objPackage->deleteFlexiPackageTransport(@$packid);
                    }
                    $packitenidarr = array();
                    for ($h = 0; $h < count($reslastint); $h++) {
                        $packid = $reslastint[$h];
                        $packitenidarr = $objPackage->getFlexiPackItenId(@$packid);

                        /*                         * ****************Activity****************************** */
                        for ($d = 0; $d < count(@$packitenidarr); $d++) {
                            if (($packitenidarr[$d]['Sequence'] == 2 && $packitenidarr[$d - 1]['Sequence'] != $packitenidarr[$d]['Sequence'])) {

                                for ($q = 0; $q < count(@$post['act']); $q++) {
                                    $rdtarr1 = array();
                                    $rdtarr1 = explode("_", @$post['act'][$q]);

                                    if (is_numeric($rdtarr1[0])) {
                                        $resactid = @$rdtarr1[0];
                                        $resacttitle = @$rdtarr1[1];
                                    } else {
                                        $ActArray = $objPackage->getActivitybyname(trim($rdtarr1[0]));
                                        if (count($ActArray) == 0) {
                                            $insert = array(
                                                'IsAgentSpec' => '1',
                                                'AgentSysId' => @$intLoggedinUserId,
                                                'ICSourceSysId' => @$intLoggedinUserAgencySysId,
                                                'StartPlaceSysId' => '0',
                                                'EndPlaceSysId' => '0',
                                                'Title' => @$rdtarr1[0],
                                                'WriteUp' => '0',
                                                'DifficultyLevel' => '0',
                                                'AliasAndMeta' => '0',
                                                'ActivityGrType' => '0',
                                                'ActivityType' => '0',
                                                'ActivityIncMask' => '0',
                                                'DurationInMin' => '0',
                                                'DurationStr' => '0',
                                                'Icon' => '0',
                                                'ThumnailImg' => '0',
                                                'DetailImg' => '0',
                                                'MinPax' => '0',
                                                'MaxPax' => '0',
                                                'PeakMothMask' => '0',
                                                'LeanMonthMask' => '0',
                                                'SilentMonthMask' => '0',
                                                'IsTransferInc' => '0',
                                                'IsKidAllowed' => '0',
                                                'IsTeenAllowed' => '0',
                                                'IsAdultAllowed' => '0',
                                                'IsPetAllowed' => '0',
                                                'IsTrxAllowed' => '0',
                                                'IsPickAllowed' => '0',
                                                'StartAgeYr' => '0',
                                                'EndAgeYr' => '0',
                                                'Rating' => '0',
                                                'Popularity' => '0',
                                                'ThingsToCarry' => '0',
                                                'AwardRecognizations' => '0',
                                                'BookingType' => '0',
                                                'DifficultyType' => '0',
                                                'DaysWeekMask' => '0',
                                                'StartLocalTime' => '',
                                                'EndLocalTime' => '',
                                                'TimeSlots' => '0',
                                                'IsDayLightApp' => '0',
                                                'Address' => '0',
                                                'PinCode' => '0',
                                                'CitySysId' => isset($cityid) ? $cityid : '0',
                                                'ZoneSysId' => '0',
                                                'ZoneType' => '0',
                                                'StateSysId' => '0',
                                                'ContSysId' => isset($countryId) ? $countryId : '0',
                                                'PickUpLocation' => '0',
                                                'PrimaryContact' => '0',
                                                'SecondaryContact' => '0',
                                                'OtherContacts' => '0',
                                                'UpdateDate' => $currentDate,
                                                'ApproveDate' => $currentDate,
                                                'ApproveBy' => '0',
                                                'CreateDate' => $currentDate,
                                                'IsApproved' => '0',
                                                'IsActive' => '1',
                                                'IsMarkForDel' => '0'
                                            );

                                            $aId = $objPackage->createActivityData(@$insert);
                                            $resactid = @$aId;
                                            $resacttitle = @$rdtarr1[0];
                                        } else {

                                            $resactid = $ActArray['ActivitySysId'];
                                            $resacttitle = @$rdtarr1[0];
                                        }
                                    }

                                    $data = array(
                                        'InvnItemSysId' => '0',
                                        'SupplierSysId' => $flexiPackageList['SupplierSysId'],
                                        'TPIntSysId' => @$packitenidarr[$d]['TPIntSysId'],
                                        'Sequence' => '0',
                                        'CityId' => '0',
                                        'AgencySysId' => @$intLoggedinUserAgencySysId,
                                        'TPActivitySysId' => @$resactid,
                                        'CurrencyType' => '1',
                                        'Title' => @$resacttitle,
                                        'Type' => 'Included',
                                        'Cost' => '0',
                                        'CreateDate' => $currentDate,
                                        'UpdateDate' => $currentDate,
                                        'IsMarkForDel' => '0',
                                        'IsActive' => '1'
                                    );

                                    //echo '<pre>';print_r($data);
                                    $aId = $objPackage->insertData('TB_TravelPlan_Itenary_Events', $data);
                                }
                            }
                        }
                        /*                         * ****************Sightseen****************************** */
                        for ($d = 0; $d < count(@$packitenidarr); $d++) {
                            if (($packitenidarr[$d]['Sequence'] == 2 && $packitenidarr[$d - 1]['Sequence'] != $packitenidarr[$d]['Sequence'])) {
                                for ($q = 0; $q < count(@$post['sight']); $q++) {


                                    $rdtarr1 = array();
                                    $rdtarr1 = explode("_", @$post['sight'][$q]);

                                    if (is_numeric($rdtarr1[0])) {
                                        $sstid = @$rdtarr1[0];
                                        $sstitle = @$rdtarr1[1];
                                    } else {
                                        $SightArray = $objPackage->getSightbyname(trim($rdtarr1[0]), (int) $cityid);
                                        if (count($SightArray) == 0) {
                                            $insertss = array(
                                                'IsAgentSpec' => '1',
                                                'AgentSysId' => @$intLoggedinUserId,
                                                'ICSourceSysId' => @$intLoggedinUserAgencySysId,
                                                'StartPlaceSysId' => '0',
                                                'EndPlaceSysId' => '0',
                                                'Title' => @$rdtarr1[0],
                                                'synonyms' => '0',
                                                'WriteUp' => '',
                                                'DifficultyLevel' => '0',
                                                'AliasAndMeta' => '0',
                                                'SSGrType' => '0',
                                                'SSType' => '0',
                                                'SSIncMask' => '0',
                                                'DurationInMin' => '0',
                                                'DurationStr' => '0',
                                                'Icon' => '',
                                                'ThumnailImg' => '0',
                                                'DetailImg' => '0',
                                                'MinPax' => '0',
                                                'MaxPax' => '0',
                                                'PeakMothMask' => '0',
                                                'LeanMonthMask' => '0',
                                                'SilentMonthMask' => '0',
                                                'IsTransferInc' => '0',
                                                'IsKidAllowed' => '0',
                                                'IsTeenAllowed' => '0',
                                                'IsAdultAllowed' => '0',
                                                'IsPetAllowed' => '0',
                                                'IsTrxAllowed' => '0',
                                                'IsPickAllowed' => '0',
                                                'StartAgeYr' => '0',
                                                'EndAgeYr' => '0',
                                                'Rating' => '0',
                                                'Popularity' => '0',
                                                'ThingsToCarry' => '0',
                                                'AwardRecognizations' => '0',
                                                'BookingType' => '0',
                                                'DifficultyType' => '0',
                                                'DaysWeekMask' => '0',
                                                'StartLocalTime' => '',
                                                'EndLocalTime' => '',
                                                'TimeSlots' => '0',
                                                'IsDayLightApp' => '0',
                                                'Address' => '',
                                                'latitude' => '0',
                                                'longitude' => '0',
                                                'PinCode' => '0',
                                                'CitySysId' => isset($cityid) ? $cityid : '0',
                                                'ZoneSysId' => '0',
                                                'ZoneType' => '0',
                                                'StateSysId' => '0',
                                                'ContSysId' => isset($countryId) ? $countryId : '0',
                                                'PickUpLocation' => '0',
                                                'PrimaryContact' => '0',
                                                'SecondaryContact' => '0',
                                                'OtherContacts' => '0',
                                                'UpdateDate' => $currentDate,
                                                'ApproveDate' => $currentDate,
                                                'ApproveBy' => '0',
                                                'CreateDate' => $currentDate,
                                                'IsApproved' => '0',
                                                'IsActive' => '1',
                                                'IsMarkForDel' => '0'
                                            );
                                            $objSightseeing = new Travel_Model_TblSightseeing();
                                            $intLastInsertId = $objSightseeing->addSightseeingDetails($insertss);
                                            $sstid = @$intLastInsertId;
                                            $sstitle = @$rdtarr1[0];
                                        } else {
                                            $sstid = $SightArray['SSSysId'];
                                            $sstitle = @$rdtarr1[0];
                                        }
                                    }
                                    $data1 = array(
                                        'InvnItemSysId' => @$packitenidarr[$d]['TPIntSysId'],
                                        'SupplierSysId' => $flexiPackageList['SupplierSysId'],
                                        'XrefInvnItemSysId' => '0',
                                        'SeqId' => '0',
                                        'CityId' => '0',
                                        'AgencySysId' => @$intLoggedinUserAgencySysId,
                                        'SSSysId' => @$sstid,
                                        'Title' => @$sstitle,
                                        'Type' => 'Included',
                                        'Cost' => '0',
                                        'FromDate' => $currentDate,
                                        'ToDate' => $currentDate,
                                        'BookingType' => '0',
                                        'Qty' => '0',
                                        'IfAnyOffer' => '0',
                                        'OfferMsg' => '0',
                                        'OfferImage' => '0',
                                        'IxFixedDateInven' => '0',
                                        'CreateDate' => $currentDate,
                                        'UpdateDate' => $currentDate,
                                        'IsMarkForDelete' => '0',
                                        'IsActive' => '1'
                                    );
                                    //                                echo '<pre>pppp'; print_r($data1); die;
                                    $ssId = $objPackage->insertData('TB_TravelPlan_SightSeeing', $data1);
                                }
                            }
                        }
                        /*                         * ****************Hotel****************************** */

                        //                       echo '<pre>';print_r($hotelresid); print_r($post); die;
                        $cityseq = unserialize(base64_decode($post['cityseq']));
                        $newCustomiseArray = array();
                        foreach ($cityseq as $key => $seq) {
                            $newCustomiseArray[$seq[2]] = $seq;
                            $newCustomiseArray[$seq[2]]['key'] = $key;
                        }
                        //                        $newCustomisePackageItnArray = array();
                        //                        foreach($packitenidarr as $key=>$packitenid){
                        //                            $newCustomisePackageItnArray[$packitenidarr[$key]['Sequence']][] = $packitenid;
                        //                        }
                        //                        foreach($newCustomisePackageItnArray as $key => $seqPackageItnArray){                                
                        //                                }
                        //                         echo '<pre>';print_r($post);print_r($packitenidarr);echo '<pre>'; 
                        for ($d = 0; $d < count(@$packitenidarr); $d++) {
                            if ($packitenidarr[$d]['Sequence'] == 1 || ($packitenidarr[$d]['Sequence'] >= 2 && $packitenidarr[$d - 1]['Sequence'] == $packitenidarr[$d]['Sequence'])) {
                                $nKey = $newCustomiseArray[$packitenidarr[$d]['Sequence']]['key'];
                            }
                            $hotelresid = @$post['hotel_' . @$packid][$nKey];
                            $roomType = @$post['room_type_' . @$packid . '_' . $nKey];
                            $tpID = $this->getRequest()->getParam('id');
                            if (empty($roomType)) {
                                $this->_redirect('/package/add-flexi-package-readymade-itinerary/id/' . $tpID);
                            }
                            $mealType = @$post['meal_type_' . @$packid . '_' . $nKey];
                            $cityid = $cityseq[$nKey][4];
                            //                                print_r($hotelresid);
                            //                            for ($l = 0; $l < count(@$hotelresid); $l++) {
                            $rdtarr3 = array();
                            $rdtarr3 = explode("_", @$hotelresid);
                            $hid = @$rdtarr3[0];
                            $htitle = @$rdtarr3[1];
                            if (is_numeric($rdtarr3[0])) {
                                $hid = $rdtarr3[0];
                                $htitle = $rdtarr3[1];
                            } else {
                                $HotelArray = $objPackage->getHotelbyname(trim(@$rdtarr3[0]));
                                if (count($HotelArray) == 0) {
                                    $newAccomodation = array(
                                        'IsAgentSpec' => '1',
                                        'ICSourceSysId' => @$intLoggedinUserAgencySysId,
                                        'Title' => isset($rdtarr3[0]) ? trim($rdtarr3[0]) : '0',
                                        //                                        'AccomGrSysId' => '0',
                                        'AliasAndMeta' => '',
                                        'ShortName' => '',
                                        'PlaceSysId_XRef' => isset($cityid) ? trim($cityid) : '0',
                                        'Icon' => '',
                                        'ThumnailImg' => '',
                                        'DetailImg' => '',
                                        'Stars' => '0',
                                        'Rating' => '0',
                                        'Popularity' => '0',
                                        'AwardRecognizations' => '',
                                        'PropertyType' => '0',
                                        'EconomyType' => '0',
                                        'AccoAminitiesMask' => '',
                                        'MaxPaxCount' => '0',
                                        'RoomCounts' => '0',
                                        'Brief' => '',
                                        'CheckinTime' => '',
                                        'CheckOutTime' => '',
                                        'IsDayLightApp' => '',
                                        'GeoLat' => '0',
                                        'GeoLong' => '0',
                                        'Address' => '0',
                                        'PinCode' => '0',
                                        'CitySysId' => isset($cityid) ? trim($cityid) : '0',
                                        'ZoneSysId' => '0',
                                        'ZoneType' => '0',
                                        'StateSysId' => '0',
                                        'ContSysId' => isset($countryId) ? $countryId : '0',
                                        'UpdateDate' => $currentDate,
                                        'ApproveDate' => $currentDate,
                                        'ApproveBy' => '0',
                                        'CreateDate' => $currentDate,
                                        'IsApproved' => '0',
                                        'IsActive' => '1',
                                        'IsMarkForDel' => '0',
                                    );
                                    $objHotel = new Travel_Model_TblHotel();
                                    $intLastInsertId = $objHotel->addAccomodation($newAccomodation, $hotel_chain = '1');
                                    $hid = @$intLastInsertId;
                                    $htitle = @$rdtarr3[0];
                                } else {

                                    $hid = $HotelArray['AccomSysId'];
                                    $htitle = @$rdtarr3[0];
                                }
                            }
                            if ($hid > 0) {
                                $HotelDetailsArray = $objPackage->GetInventoryHotelBYO(trim($hid));

                                $isSelected = 1; //($l == 0) ? 1 : 0;
                                $data2 = array(
                                    'InvnItemSysId' => '0',
                                    'XrefInvtSysId' => '0',
                                    'TPIntSysId' => @$packitenidarr[$d]['TPIntSysId'],
                                    'SupplierSysId' => $flexiPackageList['SupplierSysId'],
                                    'SeqId' => '0',
                                    'AgencySysId' => @$intLoggedinUserAgencySysId,
                                    'AccoSysId' => @$hid,
                                    'Title' => @$htitle,
                                    'RoomType' => !empty($roomType) ? trim($roomType) : '0',
                                    'MealPlanType' => !empty($mealType) ? trim($mealType) : '0',
                                    'RoomNumber' => '0',
                                    'CheckInTime' => '00:00:00',
                                    'CheckOutTime' => '00:00:00',
                                    'XRefCityId' => !empty($cityid) ? trim($cityid) : '0',
                                    'FromDate' => $currentDate,
                                    'ToDate' => $currentDate,
                                    'TotalPax' => '0',
                                    'TotalNights' => '0',
                                    'StarRating' => ($HotelDetailsArray[0]['Stars'] > 0) ? (int) $HotelDetailsArray[0]['Stars'] : 0,
                                    'TotalCostGen' => '0',
                                    'TotalCostSO' => '0',
                                    'TotalCostDO' => '0',
                                    'TotalCostTO' => '0',
                                    'Discounts' => '0',
                                    'Taxes' => '0',
                                    'CurrencyType' => '1',
                                    'NetCost' => '0',
                                    'IsSelectedOnPkg' => $isSelected,
                                    'CreateDate' => $currentDate,
                                    'UpdateDate' => $currentDate,
                                    'IsMarkForDel' => '0',
                                    'IsActive' => '1'
                                );
                                $hotId = $objPackage->insertData('TB_TravelPlan_Itenary_Accom', $data2);
                            }
                            //                            }
                        }

                        for ($d = 0; $d < count(@$packitenidarr); $d++) {

                            $TransportData = [
                                'TPInvnSysId' => $packitenidarr[$d]['TPIntSysId'],
                                'Sequence' => '0',
                                'XrefInvnItemSysId' => isset($packid) ? $packid : 0,
                                'AgencySysId' => @$intLoggedinUserAgencySysId,
                                'Qty' => 0,
                                'Remark' => (isset($post['otherTransport'])) ? $post['otherTransport'] : '',
                                'NetCost' => 0,
                                'CreateDate' => $currentDate,
                                'UpdateDate' => $currentDate,
                                'ApproveBy' => 1,
                                'ApprovalDate' => $currentDate,
                                'IsApproved' => 1,
                                'IsGroup' => 1,
                                'IsMarkForDel' => 0,
                                'IsActive' => 1,
                                'AirportTransport' => (isset($post['airportTransport'])) ? (int) $post['airportTransport'] : 0,
                                'HotelTransport' => (isset($post['hotelTransport'])) ? (int) $post['hotelTransport'] : 0,
                                'RoadType' => (isset($post['RoadType'])) ? implode(',', $post['RoadType']) : '',
                            ];
                            $itId = $objPackage->insertData('TB_TravelPlan_Itenary_Transport', $TransportData);
                        }
                    }
                    //                    echo '<pre>'; print_r($m);
                } else {
                    //                    print_r($reslastint);
                    //                    print_r($reseconomyid);die();
                    //                    echo "<pre>"; print_r($post);
                    for ($u = 0; $u < count($reslastint); $u++) {
                        $packid = $reslastint[$u];
                        $packitenidarr = $objPackage->getFlexiPackItenId($packid);
                        $delId = $objPackage->deleteFlexiPackageTransport($packid);

                        /*                         * ****************Activity****************************** */
                        for ($d = 0; $d < count(@$packitenidarr); $d++) {
                            
                            $itndataArr = array();
                            $itndataArr['Title'] = $post['title_' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence']];
                            $itndataArr['Details'] = $post['detail_' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence']];
                            $itndataArr['Hotels'] = isset($post[$packid . '_'. $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence'] . '_' . $packitenidarr[$d]['TotalMinDays']]) ? 0 : 1;
                            $itndataArr['MealPlanInclude'] = isset($post['MealPlanInclude' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence'] . '_' . $packitenidarr[$d]['TotalMinDays']]) ? implode(',', $post['MealPlanInclude' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence'] . '_' . $packitenidarr[$d]['TotalMinDays']]) : '';
                            $whereIten = array('TPIntSysId = ? ' => $packitenidarr[$d]['TPIntSysId']);
                            $objPackage->updateData('TB_TravelPlan_Itenary', $itndataArr, $whereIten);
                            //                            echo "<pre>";print_r($post);die;
                            //                            echo "<pre>";print_r($itndataArr);
                            $TransportData = [
                                'TPInvnSysId' => $packitenidarr[$d]['TPIntSysId'],
                                'Sequence' => $packitenidarr[$d]['Sequence'],
                                'XrefInvnItemSysId' => isset($packid) ? $packid : 0,
                                'AgencySysId' => @$intLoggedinUserAgencySysId,
                                'Qty' => 0,
                                'Remark' => $post['otherTransport' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence'] . '_' . $packitenidarr[$d]['TotalMinDays']],
                                'NetCost' => 0,
                                'CreateDate' => $currentDate,
                                'UpdateDate' => $currentDate,
                                'ApproveBy' => 1,
                                'ApprovalDate' => $currentDate,
                                'IsApproved' => 1,
                                'IsGroup' => 1,
                                'IsMarkForDel' => 0,
                                'IsActive' => 1,
                                'AirportTransport' => $post['airportTransport' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence'] . '_' . $packitenidarr[$d]['TotalMinDays']],
                                'HotelTransport' => $post['hotelTransport' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence'] . '_' . $packitenidarr[$d]['TotalMinDays']],
                                'RoadType' => (isset($post['RoadType' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence'] . '_' . $packitenidarr[$d]['TotalMinDays']])) ? implode(',', $post['RoadType' . $post['dsqarr_1'][0] . '_' . $packitenidarr[$d]['CitySysId'] . '_' . $packitenidarr[$d]['Sequence'] . '_' . $packitenidarr[$d]['TotalMinDays']]) : '',
                            ];
                            $itId = $objPackage->insertData('TB_TravelPlan_Itenary_Transport', $TransportData);
                        }
                    }
                    $TotalMinDaysPre = 0;
                    for ($r = 0; $r < count($post['cityday']); $r++) {
                        $rdtarr = array();
                        $rdtarr = explode("_", @$post['cityday'][$r]);
                        $cityid = $rdtarr[0];
                        $seqid = $rdtarr[1];
                        $TotalMinDays = $rdtarr[2];
                        if ($TotalMinDaysPre == $TotalMinDays) {
                            $ComponentSeqId++;
                        } else {
                            $ComponentSeqId = 1;
                        }
                        $objCity = new Travel_Model_TblCity();
                        $objCity->intCityId = $cityid;
                        $cityArray = $objCity->getCityList();
                        $countryId = $cityArray[0]['ContSysId'];

                        $deldata = array(
                            'UpdateDate' => $currentDate,
                            'IsMarkForDel' => '1',
                            'IsActive' => '0'
                        );
                        $delsightdata = array(
                            'UpdateDate' => $currentDate,
                            'IsMarkForDelete' => '1',
                            'IsActive' => '0'
                        );

                        for ($u = 0; $u < count($reslastint); $u++) {
                            $packid = $reslastint[$u];

                            $PackageSeqArr = $objPackage->getPackageSequenceIten($packid, $seqid, $cityid, $TotalMinDays);
                            $itenId = $PackageSeqArr[0]['TPIntSysId'];

                            $where = array(
                                'TPIntSysId = ? ' => $itenId,
                                'CityId = ? ' => $cityid
                            );
                            $delId = $objPackage->updateData('TB_TravelPlan_Itenary_Events', $deldata, $where);

                            $where1 = array(
                                'InvnItemSysId = ? ' => $itenId, 'IsOptionalSightSeeing = ? ' => 0,
                                'CityId = ? ' => $cityid
                            );
                            $delId1 = $objPackage->updateData('TB_TravelPlan_SightSeeing', $delsightdata, $where1);

                            $where2 = array(
                                'TPIntSysId = ? ' => $itenId,
                                'XRefCityId = ? ' => $cityid
                            );
                            $delId2 = $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $deldata, $where2);
                        }

                        if (isset($post['sight_' . $post['cityday'][$r]]) && is_array($post['sight_' . @$post['cityday'][$r]])) {

                            for ($q = 0; $q < count(@$post['sight_' . @$post['cityday'][$r]]); $q++) {

                                $rdtarr1 = array();
                                $rdtarr1 = explode("_", @$post['sight_' . @$post['cityday'][$r]][$q]);

                                if (is_numeric($rdtarr1[0])) {
                                    $sstid = @$rdtarr1[0];
                                    $sstitle = @$rdtarr1[1];
                                } else {
                                    $insertss = array(
                                        'IsAgentSpec' => '1',
                                        'AgentSysId' => @$intLoggedinUserId,
                                        'ICSourceSysId' => @$intLoggedinUserAgencySysId,
                                        'StartPlaceSysId' => '0',
                                        'EndPlaceSysId' => '0',
                                        'Title' => @$rdtarr1[0],
                                        'synonyms' => '0',
                                        'WriteUp' => '',
                                        'DifficultyLevel' => '0',
                                        'AliasAndMeta' => '0',
                                        'SSGrType' => '0',
                                        'SSType' => '0',
                                        'SSIncMask' => '0',
                                        'DurationInMin' => '0',
                                        'DurationStr' => '0',
                                        'Icon' => '',
                                        'ThumnailImg' => '0',
                                        'DetailImg' => '0',
                                        'MinPax' => '0',
                                        'MaxPax' => '0',
                                        'PeakMothMask' => '0',
                                        'LeanMonthMask' => '0',
                                        'SilentMonthMask' => '0',
                                        'IsTransferInc' => '0',
                                        'IsKidAllowed' => '0',
                                        'IsTeenAllowed' => '0',
                                        'IsAdultAllowed' => '0',
                                        'IsPetAllowed' => '0',
                                        'IsTrxAllowed' => '0',
                                        'IsPickAllowed' => '0',
                                        'StartAgeYr' => '0',
                                        'EndAgeYr' => '0',
                                        'Rating' => '0',
                                        'Popularity' => '0',
                                        'ThingsToCarry' => '0',
                                        'AwardRecognizations' => '0',
                                        'BookingType' => '0',
                                        'DifficultyType' => '0',
                                        'DaysWeekMask' => '0',
                                        'StartLocalTime' => '',
                                        'EndLocalTime' => '',
                                        'TimeSlots' => '0',
                                        'IsDayLightApp' => '0',
                                        'Address' => '',
                                        'latitude' => '0',
                                        'longitude' => '0',
                                        'PinCode' => '0',
                                        'CitySysId' => isset($cityid) ? $cityid : '0',
                                        'ZoneSysId' => '0',
                                        'ZoneType' => '0',
                                        'StateSysId' => '0',
                                        'ContSysId' => isset($countryId) ? $countryId : '0',
                                        'PickUpLocation' => '0',
                                        'PrimaryContact' => '0',
                                        'SecondaryContact' => '0',
                                        'OtherContacts' => '0',
                                        'UpdateDate' => $currentDate,
                                        'ApproveDate' => $currentDate,
                                        'ApproveBy' => '0',
                                        'CreateDate' => $currentDate,
                                        'IsApproved' => '0',
                                        'IsActive' => '1',
                                        'IsMarkForDel' => '0'
                                    );
                                    $objSightseeing = new Travel_Model_TblSightseeing();
                                    $intLastInsertId = $objSightseeing->addSightseeingDetails($insertss);
                                    $sstid = @$intLastInsertId;
                                    $sstitle = @$rdtarr1[0];
                                }
                                for ($g = 0; $g < count($reslastint); $g++) {
                                    $packid = $reslastint[$g];
                                    $PackageSeqArr = $objPackage->getPackageSequenceIten($packid, $seqid, $cityid, $TotalMinDays);
                                    if (!empty($PackageSeqArr)) {
                                        $itenId = $PackageSeqArr[0]['TPIntSysId'];
                                        $data = array(
                                            'InvnItemSysId' => @$itenId,
                                            'SeqId' => $ComponentSeqId,
                                            'CityId' => @$cityid,
                                            'SupplierSysId' => $flexiPackageList['SupplierSysId'],
                                            'AgencySysId' => @$intLoggedinUserAgencySysId,
                                            'SSSysId' => @$sstid,
                                            'Title' => @$sstitle,
                                            'Type' => 'Included',
                                            'Cost' => '0',
                                            'FromDate' => $currentDate,
                                            'ToDate' => $currentDate,
                                            'BookingType' => '0',
                                            'Qty' => '0',
                                            'IfAnyOffer' => '0',
                                            'OfferMsg' => '0',
                                            'OfferImage' => '0',
                                            'IxFixedDateInven' => '0',
                                            'CreateDate' => $currentDate,
                                            'UpdateDate' => $currentDate,
                                            'IsMarkForDelete' => '0',
                                            'IsActive' => '1'
                                        );

                                        $ssId = $objPackage->insertData('TB_TravelPlan_SightSeeing', $data);
                                    }
                                }
                            }
                        }
                        for ($h = 0; $h < count($reslastint); $h++) {
                           
                            $packid = $reslastint[$h];
                            $PackageSeqArr = $objPackage->getPackageSequenceIten($packid, $seqid, $cityid, $TotalMinDays);
                            if (!empty($PackageSeqArr)) {

                                $itenId = $PackageSeqArr[0]['TPIntSysId'];
                                $roomType = isset($post['room_type_' . $packid . '_' . $post['cityday'][$r]]) ? $post['room_type_' . $packid . '_' . $post['cityday'][$r]] : 0;
                                $mealType = isset($post['meal_type_' . $packid . '_' . $post['cityday'][$r]]) ? $post['meal_type_' . $packid . '_' . $post['cityday'][$r]] : 0;
                                $hotelresid = (isset($post[$packid . '_' . $post['cityday'][$r]])) ? $post[$packid . '_' . $post['cityday'][$r]] : array();
                                $tpID = $this->getRequest()->getParam('id');
                                if (empty($roomType)) {
                                    // $this->_helper->FlashMessenger()->setNamespace('error')->addMessage('You have no permissions');
                                    //$this->_redirect('/package/add-flexi-package-readymade-itinerary/id/' . $tpID);
                                }
                                for ($l = 0; $l < count($hotelresid); $l++) {
                                    $rdtarr3 = array();
                                    $rdtarr3 = explode("_", $hotelresid[$l]);

                                    if (is_numeric($rdtarr3[0])) {
                                        $hid = @$rdtarr3[0];
                                        $htitle = @$rdtarr3[1];
                                    } else {
                                        $newAccomodation = array(
                                            'IsAgentSpec' => '1',
                                            'ICSourceSysId' => @$intLoggedinUserAgencySysId,
                                            'Title' => isset($rdtarr3[0]) ? trim($rdtarr3[0]) : '0',
                                            //                                        'AccomGrSysId' => '0',
                                            'AliasAndMeta' => '',
                                            'ShortName' => '',
                                            'PlaceSysId_XRef' => isset($cityid) ? trim($cityid) : '0',
                                            'Icon' => '',
                                            'ThumnailImg' => '',
                                            'DetailImg' => '',
                                            'Stars' => '0',
                                            'Rating' => '0',
                                            'Popularity' => '0',
                                            'AwardRecognizations' => '',
                                            'PropertyType' => '0',
                                            'EconomyType' => '0',
                                            'AccoAminitiesMask' => '',
                                            'MaxPaxCount' => '0',
                                            'RoomCounts' => '0',
                                            'Brief' => '',
                                            'CheckinTime' => '',
                                            'CheckOutTime' => '',
                                            'IsDayLightApp' => '',
                                            'GeoLat' => '0',
                                            'GeoLong' => '0',
                                            'Address' => '0',
                                            'PinCode' => '0',
                                            'CitySysId' => isset($cityid) ? trim($cityid) : '0',
                                            'ZoneSysId' => '0',
                                            'ZoneType' => '0',
                                            'StateSysId' => '0',
                                            'ContSysId' => isset($countryId) ? $countryId : '0',
                                            'UpdateDate' => $currentDate,
                                            'ApproveDate' => $currentDate,
                                            'ApproveBy' => '0',
                                            'CreateDate' => $currentDate,
                                            'IsApproved' => '0',
                                            'IsActive' => '1',
                                            'IsMarkForDel' => '0',
                                        );
                                        $objHotel = new Travel_Model_TblHotel();
                                        $intLastInsertId = $objHotel->addAccomodation($newAccomodation, $hotel_chain = '1');
                                        $hid = @$intLastInsertId;
                                        $htitle = @$rdtarr3[0];
                                    }

                                    if ($hid > 0) {
                                        $HotelDetailsArray = $objPackage->GetInventoryHotelBYO(trim($hid));
                                        $isSelected = ($l == 0) ? 1 : 0;

                                        $data = array(
                                            'TPIntSysId' => @$itenId,
                                            'SeqId' => $ComponentSeqId,
                                            'AgencySysId' => @$intLoggedinUserAgencySysId,
                                            'SupplierSysId' => $flexiPackageList['SupplierSysId'],
                                            'AccoSysId' => @$hid,
                                            'Title' => @$htitle,
                                            'RoomType' => isset($roomType) ? $roomType : 0,
                                            'MealPlanType' => isset($mealType) ? $mealType : 0,
                                            'RoomNumber' => '0',
                                            'CheckInTime' => '00:00:00',
                                            'CheckOutTime' => '00:00:00',
                                            'XRefCityId' => @$cityid,
                                            'FromDate' => $currentDate,
                                            'ToDate' => $currentDate,
                                            'TotalPax' => '0',
                                            'TotalNights' => '0',
                                            'StarRating' => ($HotelDetailsArray[0]['Stars'] > 0) ? (int) $HotelDetailsArray[0]['Stars'] : 0,
                                            'TotalCostGen' => '0',
                                            'TotalCostSO' => '0',
                                            'TotalCostDO' => '0',
                                            'TotalCostTO' => '0',
                                            'Discounts' => '0',
                                            'Taxes' => '0',
                                            'CurrencyType' => '1',
                                            'IsSelectedOnPkg' => $isSelected,
                                            'NetCost' => '0',
                                            'CreateDate' => $currentDate,
                                            'UpdateDate' => $currentDate,
                                            'IsMarkForDel' => '0',
                                            'IsActive' => '1'
                                        );
                                        //echo "<pre>";print_r($data);
                                        $hotId = $objPackage->insertData('TB_TravelPlan_Itenary_Accom', $data);
                                    }
                                }
                            }
                        }

                        /* Code For Save as Master By Mangal 10/12/2019 */
                        $mcitydayExplode = explode('_', $post['cityday'][$r]);
                        array_pop($mcitydayExplode);
                        $mcityday = implode('_', $mcitydayExplode);
                        $idIndex = $post['dsqarr_1'][0] . '_' . $mcityday;
                        $saveasMaster = (isset($post['saveasMaster_' . $idIndex]) && $post['saveasMaster_' . $idIndex] != '') ? $post['saveasMaster_' . $idIndex] : 0;
                        $startCityId_ = (isset($post['startCityId_' . $idIndex]) && $post['startCityId_' . $idIndex] != '') ? $post['startCityId_' . $idIndex] : 0;
                        $endCityId_ = (isset($post['endCityId_' . $idIndex]) && $post['endCityId_' . $idIndex] != '') ? $post['endCityId_' . $idIndex] : 0;
                        $objItineraryDescription = new Travel_Model_TblItineraryDescription();
                        $itndataArrTitle = (isset($post['title_' . $idIndex]) && !empty($post['title_' . $idIndex]) && $post['title_' . $idIndex] != '0') ? $post['title_' . $idIndex] : '';
                        $itndataArrDetails = (isset($post['detail_' . $idIndex]) && !empty($post['detail_' . $idIndex]) && $post['detail_' . $idIndex] != '0') ? $post['detail_' . $idIndex] : '';

                        $insert = array();
                        if ($saveasMaster != 0 && trim($itndataArrTitle) != '' && $itndataArrDetails != '') {
                            $insert = array(
                                'AgencySysId' => $intLoggedinUserAgencySysId,
                                'StartCity' => (int) $startCityId_,
                                'DestinationCity' => (int) $endCityId_,
                                'Title' => $itndataArrTitle,
                                'Description' => $itndataArrDetails,
                                'Iswebsite' => 0,
                                'IsActive' => 1,
                                'IsMarkForDel' => 0,
                            );
                            try {
                                $ItineraryId = $objItineraryDescription->addItineraryDescription($insert);
                            } catch (Zend_Exception $e) {
                                echo $e->getMessage();
                                exit;
                            }
                        }
                        $TotalMinDaysPre = $TotalMinDays;
                    }
                    //die();		
                }
            }
            //                        echo 'redirect'; die;
            $tpID = $this->getRequest()->getParam('id');
            //            $this->_redirect('/package/add-flexi-package-readymade-other/id/' . $reslastint[0]);
            /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
            $userHistoryData = array(
                'TPSysId' => $tpID,
                'StepId' => 2,
                'Details' => 1,
                'UserSysId' => $this->intLoggedinUserId
            );
            Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
            /* -------------------- end insert data for contributor tab----------------------- */
            if ($intLoggedinUserAgencySysId == 5492) {  //for Zotrav
                $this->_redirect('/package/add-flexi-package-readymade-tnc/id/' . $tpID);
            } else {
                $this->_redirect('/package/add-flexi-package-readymade-other/id/' . $tpID);
            }

            exit;
        }
    }

    public function addPackageItineraryAction() {
        $this->db = Zend_Db_Table::getDefaultAdapter();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $objPkgModel = new Travel_Model_Package_PackageModel();
        $modelBY0 = new BuildYourOwn_Model_Byo();
        $objItineraryDescription = new Travel_Model_TblItineraryDescription();
        $tpID = $this->getRequest()->getParam('id');
        $currentDate = date('Y-m-d H:i');
        if ($this->getRequest()->getPost()) {
            $postData = $this->getRequest()->getParams();
//            echo "<pre>";print_r($postData);die;
            $id = $postData['id'];
            $TPIntSysId = $postData['TPIntSysId'];
            $cityday = $postData['cityday'];
            if ($id > 0 && !empty($cityday)) {
//                $updateddatafix = array('IsMarkForDel' => 1);
//                $wheredatafix = array('TPSysId = ? ' => $id);
//                $objPackage->updateData('TB_TravelPlan_Trans_Fixed', $updateddatafix, $wheredatafix);
                $objPackage->deleteFlexiPackageSS($id);
                foreach ($cityday as $key => $value) {
                    $saveasMaster = (isset($postData['saveasMaster_' . $id . '_' . $value])) ? (int) $postData['saveasMaster_' . $id . '_' . $value] : 0;
                    $itndataArrTitle = trim($postData['title_' . $id . '_' . $value]);
                    $itndataArrDetails = trim($postData['detail_' . $id . '_' . $value]);
                    $startCityId_ = trim($postData['startCityId_' . $id . '_' . $value]);
                    $endCityId_ = trim($postData['endCityId_' . $id . '_' . $value]);
                    $TPIntSysId = $postData['itnid_' . $id . '_' . $value] ? (int) $postData['itnid_' . $id . '_' . $value] : 0;
                    if ($saveasMaster != 0 && trim($itndataArrTitle) != '' && $itndataArrDetails != '') {
                        $objItineraryDescription->searchArr = array('Title' => trim($itndataArrTitle));
                        $getManageItineraryDescription = $objItineraryDescription->getManageItineraryDescription('', $intLoggedinUserAgencySysId);
                        if (empty($getManageItineraryDescription)) {
                            $insert = array(
                                'AgencySysId' => $intLoggedinUserAgencySysId,
                                'StartCity' => (int) $startCityId_,
                                'DestinationCity' => (int) $endCityId_,
                                'Title' => $itndataArrTitle,
                                'Description' => $itndataArrDetails,
                                'Iswebsite' => 0,
                                'IsActive' => 1,
                                'IsMarkForDel' => 0,
                            );

                            try {
                                $ItineraryId = $objItineraryDescription->addItineraryDescription($insert);
                            } catch (Zend_Exception $e) {
                                echo $e->getMessage();
                                exit;
                            }
                        }
                    }
                    $explodeValue = explode('_', $value);
                    $Sequence = (isset($explodeValue[1])) ? $explodeValue[1] : 0;
                    $RouteVechSysId = (isset($postData['RouteVechSysId'][$Sequence])) ? $postData['RouteVechSysId'][$Sequence] : array();
                    $RouteSysId = (isset($postData['RouteSysId'][$Sequence])) ? $postData['RouteSysId'][$Sequence] : array();
                    $dropArea = (isset($postData['dropArea'][$Sequence])) ? $postData['dropArea'][$Sequence] : array();
                    $pickupArea = (isset($postData['pickupArea'][$Sequence])) ? $postData['pickupArea'][$Sequence] : array();
                    $categoryTransport = (isset($postData['categoryTransport'][$Sequence])) ? $postData['categoryTransport'][$Sequence] : array();
                    $VehicleCost = (isset($postData['VehicleCost'][$Sequence])) ? $postData['VehicleCost'][$Sequence] : array();
                    $VehicleCostCurrency = (isset($postData['VehicleCostCurrency'][$Sequence])) ? $postData['VehicleCostCurrency'][$Sequence] : array();
                    $VehicleCapacity = (isset($postData['VehicleCapacity'][$Sequence])) ? $postData['VehicleCapacity'][$Sequence] : array();
                    $DaySequenceTransfer = (isset($postData['DaySequenceTransfer'][$Sequence])) ? $postData['DaySequenceTransfer'][$Sequence] : array();
                    $IsIncluded = (isset($postData['IsIncluded'][$Sequence])) ? $postData['IsIncluded'][$Sequence] : array();
                    $TransSupplierSysId = (isset($postData['TransSupplierSysId'][$Sequence])) ? $postData['TransSupplierSysId'][$Sequence] : array();
                    $FixTransSysId = (isset($postData['FixTransSysId'][$Sequence])) ? $postData['FixTransSysId'][$Sequence] : array();
                    $sql = "SELECT * FROM TB_TravelPlan_Trans_Fixed A WHERE TPSysId = $id  AND IsActive = '1' AND Sequence = $Sequence AND IsMarkForDel = '0' order by FixTransSysId";
                    $result = $this->db->query($sql)->fetchAll();
                    foreach ($result as $keyTra => $valTra) {
                        $checkId = $valTra['FixTransSysId'];
                        if (!in_array($checkId, $FixTransSysId)) {
                            $updateddatafix = array('IsMarkForDel' => 1);
                            $wheredatafix = array('TPSysId = ? ' => $id, 'Sequence = ?' => $Sequence, 'FixTransSysId = ?' => $checkId);
                            $objPackage->updateData('TB_TravelPlan_Trans_Fixed', $updateddatafix, $wheredatafix);
                        }
                    }
                    if (isset($RouteVechSysId[0]) && !empty($RouteVechSysId[0])) {
                        foreach ($RouteVechSysId as $rKey => $rValue) {
                            $rValueExplode = explode('__', $rValue);
                            if (isset($rValueExplode[0]) && $rValueExplode[0] > 0) {
                                $categoryTransportExp = (isset($categoryTransport[$rKey])) ? explode('_', $categoryTransport[$rKey]) : array();
                                $pickupAreaExp = ($pickupArea[$rKey]) ? explode('__', $pickupArea[$rKey]) : array();
                                $dropAreaExp = (isset($pickupArea[$rKey])) ? explode('__', $dropArea[$rKey]) : array();
                                $data = array(
                                    'AgencySysId' => $intLoggedinUserAgencySysId,
                                    'TPSysId' => $id,
                                    'TPIntSysId' => $TPIntSysId,
                                    'Type' => (isset($IsIncluded[$DaySequenceTransfer[$rKey]]) && $IsIncluded[$DaySequenceTransfer[$rKey]] == 1) ? 'Included' : 'Optional',
                                    'IsIncluded' => (isset($IsIncluded[$DaySequenceTransfer[$rKey]])) ? (int) $IsIncluded[$DaySequenceTransfer[$rKey]] : 0,
                                    'VehSysId' => isset($rValueExplode[1]) ? (int) $rValueExplode[1] : 0,
                                    'VehicleTypeSysId' => isset($rValueExplode[2]) ? (int) $rValueExplode[2] : 0,
                                    'RouteSysId' => isset($RouteSysId[$rKey]) ? (int) $RouteSysId[$rKey] : 0,
                                    'RouteVechSysId' => isset($rValueExplode[0]) ? (int) $rValueExplode[0] : 0,
                                    'TransType' => isset($categoryTransportExp[0]) ? (int) $categoryTransportExp[0] : 0,
                                    'TransTypeCat' => isset($categoryTransportExp[1]) ? (int) $categoryTransportExp[1] : 0,
                                    'FromPlace' => isset($pickupAreaExp[0]) ? (int) $pickupAreaExp[0] : '',
                                    'ToPlace' => isset($dropAreaExp[0]) ? (int) $dropAreaExp[0] : '',
                                    'SourceCityId' => (int) $startCityId_,
                                    'DestCityId' => (int) $endCityId_,
                                    'CostPerson' => 0,
                                    'TotalPrice' => isset($VehicleCost[$rKey]) ? (float) $VehicleCost[$rKey] : 0,
                                    'CurrencyType' => isset($VehicleCostCurrency[$rKey]) ? (int) $VehicleCostCurrency[$rKey] : 0,
                                    'TotalBasePrice' => isset($VehicleCost[$rKey]) ? (float) $VehicleCost[$rKey] : 0,
                                    'Capacity' => isset($VehicleCapacity[$rKey]) ? (int) $VehicleCapacity[$rKey] : 0,
                                    'CreateDate' => date('Y-m-d H:i'),
                                    'IsMarkForDel' => '0',
                                    'Sequence' => $Sequence,
                                    'IsActive' => '1',
                                    'SupplierSysId' => isset($TransSupplierSysId[$rKey]) ? (int) $TransSupplierSysId[$rKey] : 0,
                                    'NoofDays' => 1
                                );
                                if (isset($FixTransSysId[$rKey]) && !empty($FixTransSysId[$rKey])) {
                                    $wheredatafix = array('TPSysId = ? ' => $id, 'FixTransSysId = ? ' => $FixTransSysId[$rKey]);
                                    $objPackage->updateData('TB_TravelPlan_Trans_Fixed', $data, $wheredatafix);
                                } else {
                                    $objPackage->insertData('TB_TravelPlan_Trans_Fixed', $data);
                                }
                            }
                        }
                    }
                    /* Save Sightseeing Start */
                    $sightseeing = (isset($postData['sightseeing'][$Sequence])) ? $postData['sightseeing'][$Sequence] : array();
                    $PriceType = (isset($postData['PriceType'][$Sequence])) ? $postData['PriceType'][$Sequence] : array();
                    $DaySequenceSightseeing = (isset($postData['DaySequenceSightseeing'][$Sequence])) ? $postData['DaySequenceSightseeing'][$Sequence] : array();
                    $SSInvnItemSysId = (isset($postData['SSInvnItemSysId'][$Sequence])) ? $postData['SSInvnItemSysId'][$Sequence] : array();
                    $SSAreaName = (isset($postData['SSAreaName'][$Sequence])) ? $postData['SSAreaName'][$Sequence] : array();
                    $SSVehicleName = (isset($postData['SSVehicleName'][$Sequence])) ? $postData['SSVehicleName'][$Sequence] : array();
                    $SSVehicleCapacity = (isset($postData['SSVehicleCapacity'][$Sequence])) ? $postData['SSVehicleCapacity'][$Sequence] : array();
                    $AreaSysId = (isset($postData['AreaSysId'][$Sequence])) ? $postData['AreaSysId'][$Sequence] : array();
                    $SSRouteVechSysId = (isset($postData['SSRouteVechSysId'][$Sequence])) ? $postData['SSRouteVechSysId'][$Sequence] : array();
                    $IsIncludedSightseeing = (isset($postData['IsIncludedSightseeing'][$Sequence])) ? $postData['IsIncludedSightseeing'][$Sequence] : array();
                    $SSSupplierSysId = (isset($postData['SSSupplierSysId'][$Sequence])) ? $postData['SSSupplierSysId'][$Sequence] : array();
                    $CostCurrencySS = (isset($postData['CostCurrencySS'][$Sequence])) ? $postData['CostCurrencySS'][$Sequence] : array();
                    $CostSightseeing = (isset($postData['CostSightseeing'][$Sequence])) ? $postData['CostSightseeing'][$Sequence] : array();
                    $AdultCostSightseeing = (isset($postData['AdultCostSightseeing'][$Sequence])) ? $postData['AdultCostSightseeing'][$Sequence] : array();
                    $ChildCostSightseeing = (isset($postData['ChildCostSightseeing'][$Sequence])) ? $postData['ChildCostSightseeing'][$Sequence] : array();
                    foreach ($sightseeing as $sskey => $ssvalue) {
                        if (!empty($ssvalue)) {
                            $PriceTypeD = isset($PriceType[$sskey]) ? (int) $PriceType[$sskey] : 0;
                            $SSSysId = explode('__', $ssvalue);
                            $sightData = array(
                                'InvnItemSysId' => $TPIntSysId,
                                'XrefInvnItemSysId' => (int) $SSSysId[1],
                                'SeqId' => $Sequence,
                                'CityId' => (int) $endCityId_,
                                'AgencySysId' => $intLoggedinUserAgencySysId,
                                'SSSysId' => (int) $SSSysId[0],
                                'SupplierSysId' => (int) $SSSupplierSysId[$sskey],
                                'Title' => trim($SSSysId[2]),
                                'Type' => (isset($IsIncludedSightseeing[$DaySequenceSightseeing[$sskey]]) && $IsIncludedSightseeing[$DaySequenceSightseeing[$sskey]] == 1) ? 'Included' : 'Optional',
                                'IsOptionalSightSeeing' => (isset($IsIncludedSightseeing[$DaySequenceSightseeing[$sskey]]) && $IsIncludedSightseeing[$DaySequenceSightseeing[$sskey]] == 1) ? 0 : 1,
                                'Cost' => (int) $AdultCostSightseeing[$sskey],
                                'KidsCost' => (int) $ChildCostSightseeing[$sskey],
                                'TotalCost' => 0,
                                'TotalBaseCost' => 0,
                                'PriceType' => (int) $PriceType[$sskey],
                                'FromDate' => $currentDate,
                                'ToDate' => $currentDate,
                                'BookingType' => '0',
                                'Qty' => 1,
                                'IfAnyOffer' => '0',
                                'OfferMsg' => '0',
                                'OfferImage' => '0',
                                'IxFixedDateInven' => '0',
                                'CreateDate' => $currentDate,
                                'UpdateDate' => $currentDate,
                                'IsMarkForDelete' => '0',
                                'IsActive' => '1',
                                'CurrencyType' => (int) $CostCurrencySS[$sskey],
                            );
                            $SSId = $objPackage->insertData('TB_TravelPlan_SightSeeing', $sightData);

                            if ($PriceTypeD == 2 && (isset($SSRouteVechSysId[$sskey]) && $SSRouteVechSysId[$sskey] > 0)) {
                                $transData = array(
                                    'AgencySysId' => $intLoggedinUserAgencySysId,
                                    'TPSysId' => $id,
                                    'TPIntSysId' => $TPIntSysId,
                                    'Type' => (isset($IsIncludedSightseeing[$DaySequenceTransfer[$rKey]]) && $IsIncludedSightseeing[$DaySequenceTransfer[$rKey]] == 1) ? 'Included' : 'Optional',
                                    'IsIncluded' => (isset($IsIncludedSightseeing[$DaySequenceTransfer[$rKey]])) ? (int) $IsIncludedSightseeing[$DaySequenceTransfer[$rKey]] : 0,
                                    'VehSysId' => 0,
                                    'VehicleTypeSysId' => $SSRouteVechSysId[$sskey],
                                    'RouteSysId' => 0,
                                    'RouteVechSysId' => $SSRouteVechSysId[$sskey],
                                    'TransType' => 11,
                                    'TransTypeCat' => 0,
                                    'XrefSSInvnSysId' => $SSId,
                                    'FromPlace' => $AreaSysId[$sskey],
                                    'ToPlace' => 0,
                                    'SourceCityId' => (int) $startCityId_,
                                    'DestCityId' => (int) $endCityId_,
                                    'CostPerson' => 0,
                                    'TotalPrice' => (int) $CostSightseeing[$sskey],
                                    'CurrencyType' => (int) $CostCurrencySS[$sskey],
                                    'TotalBasePrice' => 0,
                                    'Capacity' => isset($SSVehicleCapacity[$sskey]) ? (int) $SSVehicleCapacity[$sskey] : 0,
                                    'CreateDate' => date('Y-m-d H:i'),
                                    'IsMarkForDel' => '0',
                                    'Sequence' => $Sequence,
                                    'IsActive' => '1',
                                    'SupplierSysId' => isset($SSSupplierSysId[$sskey]) ? (int) $SSSupplierSysId[$sskey] : 0,
                                    'NoofDays' => 1
                                );
                                //  echo "<pre>";print_r($transData);die;
                                $objPackage->insertData('TB_TravelPlan_Trans_Fixed', $transData);
                            }
                        }
                    }
                    /* Save Sightseeing End */
                }
            }
            $this->_redirect('/package/add-package-other/id/' . $id);
        } else {
            if ($this->getRequest()->getParam('id') > 0) {
                $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
                $pkgagencysysID = $flexiPackageList['AgencySysId'];
                if ($pkgagencysysID == $intLoggedinUserAgencySysId) {
                    $getpacktypemask = $objPackage->GetMasterPackageList();
                    $this->view->packtypemask = $getpacktypemask;
                    $this->view->flexiPackageList = $flexiPackageList;
                    $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
                    if (empty($flexiPackageItenList)) {
                        $flexiPackageItenList = array();
                    }
                    $this->view->flexiPackageItenList = $flexiPackageItenList;
                    $flexiPackagePlaces = $objPackage->getPackagePlacesList($this->getRequest()->getParam('id'));
                    $this->view->flexiPackagePlaces = $flexiPackagePlaces;
                    $flexiPackageTransFixed = $objPackage->getFlexiPackageTransFixed($this->getRequest()->getParam('id'));
                    $PackageSightseenListBYO = $objPackage->getCustPackageSightseenListBYO($this->getRequest()->getParam('id'));

                    $DestinationsTPIntSysId = array();
                    foreach ($flexiPackageItenList as $key => $value) {
                        $checkItinerayRoute = $checkDayTransCategory1 = $checkDayTransCategory2 = array();
                        if ($value['Sequence'] == 1) {
                            $StartCity = $flexiPackageList['SourcePlaceSysId'];
                        } else {
                            $StartCity = $flexiPackageItenList[$key - 1]['CitySysId'];
                        }
                        $EndCity = $value['CitySysId'];
                        $checkDayTransCategory1 = $modelBY0->getAllTransportRouteTransportSubType($this->intLoggedinUserAgencySysId, $StartCity, $EndCity, '2,3');
                        if ($StartCity != $EndCity) {
                            $checkDayTransCategory2 = $modelBY0->getAllTransportRouteTransportSubType($this->intLoggedinUserAgencySysId, $EndCity, $EndCity, '2,3');
                        }

                        $checkDayTransCategory3 = array_merge($checkItinerayRoute, $checkDayTransCategory1, $checkDayTransCategory2);
                        $checkDayTransCategory[$value['Sequence']] = $checkDayTransCategory3;
                        $DestinationsTPIntSysId[$value['TPIntSysId']]['StartCityId'] = $StartCity;
                        $DestinationsTPIntSysId[$value['TPIntSysId']]['EndCityId'] = $EndCity;
                    }
                    $this->view->checkDayTransCategory = $checkDayTransCategory;

                    $flexiPackageTransFixedArray = array();
                    foreach ($flexiPackageTransFixed as $tfKey => $tfValue) {

                        $startCityIdM = $DestinationsTPIntSysId[$tfValue['TPIntSysId']]['StartCityId'];
                        $endCityIdM = $DestinationsTPIntSysId[$tfValue['TPIntSysId']]['EndCityId'];
                        $categoryTransport = $tfValue['TransType'];
                        $subCategoryTransport = $tfValue['TransTypeCat'];
                        $autosugestTransportData1 = $modelBY0->getAutosuggestTransportRouteDataWithVehicle($intLoggedinUserAgencySysId, $startCityIdM, $endCityIdM, '', '', $categoryTransport, $subCategoryTransport);
                        $autosugestTransportData2 = $modelBY0->getAutosuggestTransportRouteDataWithVehicle($intLoggedinUserAgencySysId, $endCityIdM, $endCityIdM, '', '', $categoryTransport, $subCategoryTransport);

                        $autosugestTransportData = array_merge($autosugestTransportData1, $autosugestTransportData2);

                        $checkDuplicateRoute = array();
                        $AreaData = array();

                        foreach ($autosugestTransportData as $tKey => $tVal) {
//                            if (!in_array($tVal['RouteSysId'], $checkDuplicateRoute)) {
                            $checkDuplicateRoute[] = $tVal['RouteSysId'];
                            $AreaData['PickupArea'][$tVal['pickupAreaId']] = (!empty($tVal['PickupLocation'])) ? $tVal['PickupLocation'] : 'NA';
                            $AreaData['DropArea'][$tVal['dropAreaId']] = (!empty($tVal['DropLocation'])) ? $tVal['DropLocation'] : 'NA';
                            $AreaData['Route'][$tVal['pickupAreaId'] . '-' . $tVal['dropAreaId']][$tVal['RouteSysId']] = $tVal['RouteName'];
                            $AreaData['RouteVehicle'][$tVal['RouteSysId']][$tVal['RouteVechSysId']]['VehName'] = trim($tVal['VehName']) . ' (capacity:' . trim($tVal['Capacity']) . ')';
                            $AreaData['RouteVehicle'][$tVal['RouteSysId']][$tVal['RouteVechSysId']]['VehicleTypeSysId'] = trim($tVal['VehicleTypeSysId']);
                            $AreaData['RouteVehicle'][$tVal['RouteSysId']][$tVal['RouteVechSysId']]['VehicleSysId'] = trim($tVal['VehicleSysId']);
//                            }
                        }

                        $tfValue['AreaData'] = $AreaData;
                        $flexiPackageTransFixedArray[$tfValue['TPIntSysId']][] = $tfValue;
                    }
                    $this->view->flexiPackageTransFixedArray = $flexiPackageTransFixedArray;
                    $PackageSightseenListBYOArray = array();
                    foreach ($PackageSightseenListBYO as $ssKey => $ssValue) {
                        $PackageSightseenListBYOArray[$ssValue['InvnItemSysId']][] = $ssValue;
                    }
                    $this->view->PackageSightseenListBYOArray = $PackageSightseenListBYOArray;
                    //                                            echo "<pre>";print_r($PackageSightseenListBYOArray);die;
                } else {
                    $this->_redirect('/publicpackage/pagenotfound/');
                }
            }
        }
    }

    public function addCustomerPackageItineraryAction() {

        $objPackage = new Travel_Model_TblPackage();
        $objPkgModel = new Travel_Model_Package_PackageModel();
        $tpID = $this->getRequest()->getParam('id');
        //echo $this->getRequest()->getParam('id');		
        if ($this->getRequest()->getParam('id') > 0) {
            $getitenryID = $objPackage->GetTravelPlanItenaryID($this->getRequest()->getParam('id'));
            $itenararray = array();
            for ($i = 0; $i < count($getitenryID); $i++) {
                $itenararray[] = "'" . $getitenryID[$i]['TPIntSysId'] . "'";
            }
            $implodeitenary = implode(",", $itenararray);
            $flexiPackageList = $objPackage->getCustPackageList($this->getRequest()->getParam('id'));

            // $getpacktypemask = $objPkgModel->GetPackageMask($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;

            $flexiPackageItenList = $objPackage->getCustPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;

            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getCustomerPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;

            //Get Package Activity
            $flexiPackageActivityList = $objPackage->getCustPackageActivityList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            //Get Package Sightseen
            $flexiPackageSightseenList = $objPackage->getCustPackageSightseenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
            //Get Package Hotels

            if (!empty($itenararray)) {
                $flexiPackageHotelsList = $objPackage->getCustPackageHotelsListBYO($implodeitenary);
                $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;
            }
        }
    }

    public function addFlexiPackageItineraryAction() {

        $objPackage = new Travel_Model_TblPackage();
        //echo $this->getRequest()->getParam('id');		
        if ($this->getRequest()->getParam('id') > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;

            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;

            $flexiPackageHotelList = $objPackage->getPackageHotelList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageHotelList = $flexiPackageHotelList;

            //Get Package Activity
            $flexiPackageActivityList = $objPackage->getFlexiPackageActivityList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageActivityList = $flexiPackageActivityList;

            //Get Package Sightseen
            $flexiPackageSightseenList = $objPackage->getFlexiPackageSightseenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
            /* echo "<pre>";
              print_r($flexiPackageActivityList); //PackTypeMask	InclMask
              die(); */
        }
    }

    public function addFlexiPackageTransportAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        //echo $this->getRequest()->getParam('id');		
        if ($this->getRequest()->getParam('id') > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;

            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;

            $flexiPackageTransFixed = $objPackage->getFlexiPackageTransFixed($this->getRequest()->getParam('id'), $intLoggedinUserAgencySysId);
            $this->view->flexiPackageTransFixed = $flexiPackageTransFixed;

            $objTransport = new Travel_Model_TblTransport();
            //Get Vehicle Type List 
            $arrVehicleTypeList = $objPackage->getVehilcleTypeCapacity();
            $this->view->arrVehicleTypeList = $arrVehicleTypeList;

            $arrTransportInventoryList = $objTransport->getAllTransportInventoryList($intLoggedinUserAgencySysId);
            $this->view->arrTransportInventoryList = $arrTransportInventoryList;
            /* echo "<pre>";
              print_r($arrVehicleTypeList); //PackTypeMask	InclMask
              print_r($flexiPackageTransFixed); //PackTypeMask	InclMask
              die(); */
        }
    }

    public function addCustomerPackageTransportAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {

            $tpsysID = $this->getRequest()->getParam('id');
            $objPackage->UnDraft($tpsysID);
            $itenarypkglist = $this->_newpkgmodelObj->GetItenrayID($tpsysID);
            $this->view->itenarylist = $itenarypkglist;

            $flexiPackageList = $objPackage->getCustPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;

            $flexiPackageItenList = $objPackage->getCustPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getCustomerPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;

            $getpkgcitylist = $objPackage->GetCitypkglist($this->getRequest()->getParam('id'));
            $gettotaldays = $objPackage->GetTotalDays($this->getRequest()->getParam('id'));
            $this->view->totalpkgday = $gettotaldays['Sequence'];
            $this->view->getpkgcitylist = $getpkgcitylist;
            $flexiPackageTransFixed = $objPackage->getCustPackageTransFixed($this->getRequest()->getParam('id'));
            $this->view->flexiPackageTransFixed = $flexiPackageTransFixed;

            //Get Package Flight
            $flexiPackageFlight = $objPackage->getCustPackageAir($this->getRequest()->getParam('id'));
            $this->view->flexiPackageFlight = $flexiPackageFlight;

            $objTransport = new Travel_Model_TblTransport();
            //Get Vehicle Type List 
            $arrVehicleTypeList = $objPackage->getVehilcleTypeCapacity();
            $this->view->arrVehicleTypeList = $arrVehicleTypeList;

            /* $arrTransportInventoryList 				= 	$objTransport->getAllTransportInventoryList($intLoggedinUserAgencySysId);
              $this->view->arrTransportInventoryList 	= 	$arrTransportInventoryList; */
            /* echo "<pre>";
              print_r($arrVehicleTypeList); //PackTypeMask	InclMask
              print_r($flexiPackageTransFixed); //PackTypeMask	InclMask
              die(); */
        }
    }

    public function updateGroupTypeAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $vehicalsysID = $_REQUEST['vehicalsysID'];
        $tpsysID = $_REQUEST['TPSysId'];
        $routesysID = $_REQUEST['RouteSysId'];
        $capacity = $_REQUEST['Capacity'];
        $totalprice = $_REQUEST['TotalPrice'];
        $fixtransID = $_REQUEST['fixtransID'] ? $_REQUEST['fixtransID'] : 0;
        $costperperson = ($_REQUEST['TotalPrice']) / ($_REQUEST['Capacity']);
        if (!empty($fixtransID)) {

            $updateddatafix = array(
                'IsMarkForDel' => "1"
            );

            $wheredatafix = array(
                'FixTransSysId = ? ' => $fixtransID
            );

            //$wheredata = array('TransType = ? ' => 'car','TPSysId = ? ' => @$_REQUEST['TPSysId']);	
            $updateIddatafix = $objPackage->updateData('TB_TravelPlan_Trans_Fixed', $updateddatafix, $wheredatafix);
        }
        $chkvehicletype = $objPackage->IsGroupAvailable($tpsysID, $vehicalsysID, $routesysID, $capacity, $totalprice);
        if (!empty($chkvehicletype) > 0) {
            $updateddata = array(
                'IsMarkForDel' => "1"
            );

            $wheredata = array(
                'TransType = ? ' => 'car',
                'TPSysId = ? ' => @$_REQUEST['TPSysId'],
                'IsGroup = ? ' => 1
            );

            //$wheredata = array('TransType = ? ' => 'car','TPSysId = ? ' => @$_REQUEST['TPSysId']);	
            $updateIddata = $objPackage->updateData('TB_TravelPlan_Trans_Fixed', $updateddata, $wheredata);
            //echo 'This Vehicle is updated in group costsdsd';
        }
        $x = 3; // Amount of digits
        $min = pow(10, $x);
        $max = pow(10, $x + 1) - 1;
        $value = rand($min, $max);

        $data = array(
            'AgencySysId' => @$intLoggedinUserAgencySysId,
            'TPSysId' => @$_REQUEST['TPSysId'],
            'TPIntSysId' => @$_REQUEST['tpintsysId'] ? $_REQUEST['tpintsysId'] : 0,
            'Type' => 'Included',
            'IsIncluded' => '0',
            'VehSysId' => $_REQUEST['vehicalsysID'] ? $_REQUEST['vehicalsysID'] : 0,
            'VehicleTypeSysId' => $_REQUEST['vehicalsysID'] ? $_REQUEST['vehicalsysID'] : 0,
            'RouteSysId' => $routesysID,
            'RouteVechSysId' => $_REQUEST['RouteVechSysId'],
            'TransType' => 'car',
            'TransTypeCat' => 'car',
            'FromPlace' => '',
            'ToPlace' => '',
            'SourceCityId' => '',
            'DestCityId' => '',
            'CostPerson' => $costperperson,
            'TotalPrice' => $totalprice,
            'Capacity' => @$_REQUEST['Capacity'],
            'CreateDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1',
            'IsGroup' => '1',
            'Sequence' => $value
        );

        $updateId = $objPackage->insertData('TB_TravelPlan_Trans_Fixed', $data);
        echo 'This Vehicle is updated in group cost';
    }

    public function addPackageTncAction() {

        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $objAgency = new Travel_Model_TblAgency();
        $gettramsdata = $objPackage->IsTermsnCondAvailableByAgent($this->getRequest()->getParam('id'));
        if (!empty($gettramsdata)) {
            $this->view->agencyTncList = $gettramsdata;
        } else {
            $agencyTncList = $objAgency->getAgencyTnCDetails($intLoggedinUserAgencySysId);
            $this->view->agencyTncList = $agencyTncList;
        }
        $packId = $this->getRequest()->getParam('id');

        $this->view->pkgID = $packId;
        if (empty($gettramsdata)) {

            $objPackage->UnDraft($packId);
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
            $packageTncList = $objPackage->getPackageTncList($this->getRequest()->getParam('id'));

            $this->view->packageTncList = $packageTncList;
            if (!empty(@$packageTncList) < 1) {
                $tncdata = array(
                    'AgencySysId' => @$intLoggedinUserAgencySysId,
                    'TPIntSysId' => @$packId,
                    'Inclusions' => 'Inclusions',
                    'Exclusions' => 'Exclusions',
                    'CancellationPolicy' => 'CancellationPolicy',
                    'TravelBasics' => 'TravelBasics',
                    'BookingTerms' => 'BookingTerms',
                    'WhyUseUs' => 'WhyUseUs',
                    'TermsAndConditions' => 'TermsAndConditions',
                    'REFUNDPOLICY' => 'REFUNDPOLICY',
                    'CreateDate' => @$currentDate,
                    'UpdateDate' => @$currentDate,
                    'IsMarkForDel' => '0',
                    'IsActive' => '1'
                );
                //                print_r($tncdata);die;
                $tncId = $objPackage->insertData('TB_TravelPlan_Terms_Conditions', $tncdata);
                //  $this->_redirect('/package/pkgcostsheet/id/' . $packId);
            }
        }
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost();
            if ($post) {
                $currentDate = date('Y-m-d H:i:s');
                $IsInclusions = isset($post['IsInclusions']) ? $post['IsInclusions'] : 0;
                $IsExclusions = isset($post['IsExclusions']) ? $post['IsExclusions'] : 0;
                $IsCancellationPolicy = isset($post['IsCancellationPolicy']) ? $post['IsCancellationPolicy'] : 0;
                $IsTravelBasics = isset($post['IsTravelBasics']) ? $post['IsTravelBasics'] : 0;
                $IsTermsAndConditions = isset($post['IsTermsAndConditions']) ? $post['IsTermsAndConditions'] : 0;
                $IsBookingTerms = isset($post['IsBookingTerms']) ? $post['IsBookingTerms'] : 0;
                $IsWhyUseUs = isset($post['IsWhyUseUs']) ? $post['IsWhyUseUs'] : 0;
                $IsREFUNDPOLICY = isset($post['IsREFUNDPOLICY']) ? $post['IsREFUNDPOLICY'] : 0;

                $data = array(
                    'Inclusions' => $this->sanitize_data_html($this->getRequest()->getParam('Inclusions')),
                    'Exclusions' => $this->sanitize_data_html($this->getRequest()->getParam('Exclusions')),
                    'CancellationPolicy' => $this->sanitize_data_html($this->getRequest()->getParam('CancellationPolicy')),
                    'TravelBasics' => $this->sanitize_data_html($this->getRequest()->getParam('travelbasics')),
                    'BookingTerms' => $this->sanitize_data_html($this->getRequest()->getParam('bookingterms')),
                    'WhyUseUs' => $this->sanitize_data_html($this->getRequest()->getParam('whyuseus')),
                    'TermsAndConditions' => $this->sanitize_data_html($this->getRequest()->getParam('termcond')),
                    'REFUNDPOLICY' => $this->sanitize_data_html($this->getRequest()->getParam('REFUNDPOLICY')),
                    'IsInclusions' => $IsInclusions,
                    'IsExclusions' => $IsExclusions,
                    'IsCancellationPolicy' => $IsCancellationPolicy,
                    'IsTravelBasics' => $IsTravelBasics,
                    'IsTermsAndConditions' => $IsTermsAndConditions,
                    'IsBookingTerms' => $IsBookingTerms,
                    'IsWhyUseUs' => $IsWhyUseUs,
                    'IsREFUNDPOLICY' => $IsREFUNDPOLICY,
                    'UpdateDate' => @$currentDate
                );
                $where = array('TPIntSysId = ? ' => $packId);

                $updateId = $objPackage->updateData('TB_TravelPlan_Terms_Conditions', $data, $where);
                $this->_redirect('/package/pkgcostsheet/id/' . $packId);
                //  $this->_redirect('/package/costsheet/id/' . $this->getRequest()->getParam('packageId'));
                exit;
            }
        }
    }

    public function addPackageTransportAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->view->agencysysID = $intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {

            $tpsysID = $this->getRequest()->getParam('id');
            $objPackage->UnDraft($tpsysID);
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $pkgagencysysID = $flexiPackageList['AgencySysId'];
            if ($pkgagencysysID == $intLoggedinUserAgencySysId) {
                $this->view->flexiPackageList = $flexiPackageList;
                //            $itenarypkglist = $this->_newpkgmodelObj->GetItenrayIDByo($tpsysID);
                //            $this->view->itenarylist = $itenarypkglist;



                $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
                $this->view->flexiPackageItenList = $flexiPackageItenList;
                //Get Package Places 
                $flexiPackagePlaces = $objPackage->getCustomerPackagePlacesListBYO($this->getRequest()->getParam('id'));
                $this->view->flexiPackagePlaces = $flexiPackagePlaces;

                $getpkgcitylist = $objPackage->GetCitypkglistBYO($this->getRequest()->getParam('id'));
                $gettotaldays = $objPackage->GetTotalDaysBYO($this->getRequest()->getParam('id'));
                $this->view->totalpkgday = $gettotaldays['Sequence'];
                $this->view->getpkgcitylist = $getpkgcitylist;
                $flexiPackageTransFixed = $objPackage->getCustPackageTransFixed($this->getRequest()->getParam('id'));
                $this->view->flexiPackageTransFixed = $flexiPackageTransFixed;

                //Get Package Flight
                $flexiPackageFlight = $objPackage->getCustPackageAir($this->getRequest()->getParam('id'));
                $this->view->flexiPackageFlight = $flexiPackageFlight;

                $objTransport = new Travel_Model_TblTransport();
                //Get Vehicle Type List 
                $arrVehicleTypeList = $objPackage->getVehilcleTypeCapacity();
                $this->view->arrVehicleTypeList = $arrVehicleTypeList;
            } else {
                $this->_redirect('/publicpackage/pagenotfound/');
            }
            /* $arrTransportInventoryList 				= 	$objTransport->getAllTransportInventoryList($intLoggedinUserAgencySysId);
              $this->view->arrTransportInventoryList 	= 	$arrTransportInventoryList; */
            /* echo "<pre>";
              print_r($arrVehicleTypeList); //PackTypeMask	InclMask
              print_r($flexiPackageTransFixed); //PackTypeMask	InclMask
              die(); */
        }
    }

    public function addssdetailsAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        //$packageThemeList = $this->_objPkg->getPackageThemeList();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $agentID = $sessionLogin_user->intLoggedinUserId;
        $getData = $this->getRequest()->getPost();

        $actfromdate = explode("/", $getData['from_date']);
        $acttodate = explode("/", $getData['to_date']);
        $fromdate = $actfromdate[2] . '-' . $actfromdate[1] . '-' . $actfromdate[0];
        $todate = $acttodate[2] . '-' . $acttodate[1] . '-' . $acttodate[0];
        $create_date = date('Y-m-d');
        $tpsysID = $getData['packageId'];
        //die;
        $getroomdetails = $objPackage->getroominforeadymade($tpsysID);
        $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);

        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $adultcost = $getData['adult_cost_natives'];
        $kidscost = $getData['kids_cost_natives'];
        $totalactcost = ($adultcount * $adultcost) + ($childcount * $kidscost);

        $data = array(
            "InventoryType" => 2,
            "XRef" => $getData['sightseeing_id'],
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "FromDate" => $fromdate,
            "ToDate" => $todate,
            "BookingType" => $getData['booking_type'],
            "inclusions" => $getData['inclusions_id'][0],
            "IsTransferInc" => $getData['transfers'],
            "IsPickDropInc" => 0,
            "PurchasedQty" => 0,
            "PublishQty" => 0,
            "BlockQty" => 0,
            "SoldQty" => 0,
            "ReturnQty" => 0,
            "NetInHandQty" => 0,
            "CostCurrency" => $getData['currency_type'],
            "TotalCostNativeAdult" => $getData['adult_cost_natives'],
            "TotalCostNativeChild" => $getData['kids_cost_natives'],
            "TotalCostForeignerChild" => $getData['adult_cost_foreigners'],
            "TotalCostForeignerAdult" => $getData['kids_cost_foreigners'],
            "SaleAmtNativeChild" => 0,
            "SaleAmtNativeAdult" => 0,
            "SaleAmtForeignerChild" => 0,
            "SaleAmtForeignerAdult" => 0,
            "TrxCurrency" => $getData['currency_type'],
            "Brief" => '',
            "IfAnyOffer" => '',
            "OfferMsg" => '',
            "OfferImage" => '',
            "TCInfo" => '',
            "TCDocPath" => '',
            "IxFixedDateInven" => 0,
            "CreatorSysId" => $agentID,
            "ApproveDate" => $create_date,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsSaleStart" => 1,
            "IsActive" => 1,
            "IsMarkForDelete" => 0,
            "IsApproved" => 1
        );

        $updateId = $objPackage->insertData('TB_MP_Inventory_SightSeeing', $data);
        $tpintId = $getData['tpitnID'];
        $actdata = array(
            "InvnItemSysId" => $tpintId,
            "SeqId" => 1,
            "XrefInvnItemSysId" => 0,
            "SupplierSysId" => $getData['supplier_type_id'],
            "SSSysId" => $getData['sightseeing_id'],
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "Title" => $getData['sightseeing_name'],
            "Type" => 'Included',
            "CityId" => $getData['CitySysIds'],
            "Cost" => $getData['adult_cost_natives'],
            "KidsCost" => $getData['kids_cost_natives'],
            "Taxes" => 0,
            "TDS" => 0,
            "Markup" => 0,
            "BookingType" => 0,
            "Qty" => 0,
            "IfAnyOffer" => 0,
            "OfferMsg" => 0,
            "OfferImage" => 0,
            "TotalCost" => $totalactcost,
            "FromDate" => $create_date,
            "ToDate" => $create_date,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsMarkForDelete" => 0,
            "IsOptionalSightSeeing" => 0,
            "IsActive" => 1,
            "Markup" => 0
        );
        $insertdata = $objPackage->insertData('TB_Agency_Customer_TravelPlan_SightSeeing', $actdata);
        echo $insertdata;
        $this->view->lastID = $insertdata;
        $this->view->acttile = $getData['sightseeing_name'];
        $this->view->suppsysID = $getData['supplier_type_id'];
        $this->view->suppsysname = $getData['supplier_type'];
        $this->view->adultcost = $getData['adult_cost_natives'];
        $this->view->childcost = $getData['kids_cost_natives'];
        $this->view->totalcost = $totalactcost;
    }

    public function addssdetailsbyoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        //$packageThemeList = $this->_objPkg->getPackageThemeList();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $agentID = $sessionLogin_user->intLoggedinUserId;
        $getData = $this->getRequest()->getPost();

        $actfromdate = explode("/", $getData['from_date']);
        $acttodate = explode("/", $getData['to_date']);
        $fromdate = $actfromdate[2] . '-' . $actfromdate[1] . '-' . $actfromdate[0];
        $todate = $acttodate[2] . '-' . $acttodate[1] . '-' . $acttodate[0];
        $create_date = date('Y-m-d');
        $tpsysID = $getData['packageId'];
        //die;
        $getroomdetails = $objPackage->getroominforeadymade($tpsysID);
        $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);

        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $adultcost = $getData['adult_cost_natives'];
        $kidscost = $getData['kids_cost_natives'];
        $totalactcost = ($adultcount * $adultcost) + ($childcount * $kidscost);

        $data = array(
            "InventoryType" => 2,
            "XRef" => $getData['sightseeing_id'],
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "FromDate" => $fromdate,
            "ToDate" => $todate,
            "BookingType" => 1,
            "inclusions" => $getData['inclusions_id'][0],
            "IsTransferInc" => $getData['transfers'],
            "IsPickDropInc" => 0,
            "PurchasedQty" => 0,
            "PublishQty" => 0,
            "BlockQty" => 0,
            "SoldQty" => 0,
            "ReturnQty" => 0,
            "NetInHandQty" => 0,
            "CostCurrency" => $getData['currency_type'],
            "TotalCostNativeAdult" => $getData['adult_cost_natives'],
            "TotalCostNativeChild" => $getData['kids_cost_natives'],
            "TotalCostForeignerChild" => $getData['adult_cost_foreigners'],
            "TotalCostForeignerAdult" => $getData['kids_cost_foreigners'],
            "SaleAmtNativeChild" => 0,
            "SaleAmtNativeAdult" => 0,
            "SaleAmtForeignerChild" => 0,
            "SaleAmtForeignerAdult" => 0,
            "TrxCurrency" => $getData['currency_type'],
            "Brief" => '',
            "IfAnyOffer" => '',
            "OfferMsg" => '',
            "OfferImage" => '',
            "TCInfo" => '',
            "TCDocPath" => '',
            "IxFixedDateInven" => 0,
            "CreatorSysId" => $agentID,
            "ApproveDate" => $create_date,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsSaleStart" => 1,
            "IsActive" => 1,
            "IsMarkForDelete" => 0,
            "IsApproved" => 1
        );

        $updateId = $objPackage->insertData('TB_MP_Inventory_SightSeeing', $data);
        $tpintId = $getData['tpitnID'];
        $actdata = array(
            "InvnItemSysId" => $tpintId,
            "SeqId" => 1,
            "XrefInvnItemSysId" => 0,
            "SupplierSysId" => $getData['supplier_type_id'],
            "SSSysId" => $getData['sightseeing_id'],
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "Title" => $getData['sightseeing_name'],
            "Type" => 'Included',
            "CityId" => $getData['CitySysIds'],
            "Cost" => $getData['adult_cost_natives'],
            "KidsCost" => $getData['kids_cost_natives'],
            "BookingType" => 0,
            "Qty" => 0,
            "IxFixedDateInven" => 0,
            "IfAnyOffer" => 0,
            "OfferMsg" => 0,
            "OfferImage" => 0,
            "TotalCost" => $totalactcost,
            "FromDate" => $create_date,
            "ToDate" => $create_date,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsMarkForDelete" => 0,
            "IsOptionalSightSeeing" => 0,
            "IsActive" => 1,
        );
        $insertdata = $objPackage->insertData('TB_TravelPlan_SightSeeing', $actdata);
        // echo $insertdata;
        $this->view->lastID = $insertdata;

        $this->view->sightseeing_id = $getData['sightseeing_id'];
        $this->view->acttile = $getData['sightseeing_name'];
        $this->view->suppsysID = $getData['supplier_type_id'];
        $this->view->suppsysname = $getData['supplier_type'];
        $this->view->adultcost = $getData['adult_cost_natives'];
        $this->view->childcost = $getData['kids_cost_natives'];
        $this->view->totalcost = $totalactcost;
    }

    public function addflightinvAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $getdata = $this->getRequest()->getPost();
        $tpintsysID = $getdata['tpintsysID'];
        $tpsysID = $getdata['tpsysID'];
        $this->view->tpintsysID = $tpintsysID;
        $this->view->tpsysID = $tpsysID;
    }

    public function addflightinventoryAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $getData = $this->getRequest()->getPost();
        $createddate = date('Y-m-d');
        if ($getData['stopcount'] > 0) {
            $isdirect = 0;
        } else {
            $isdirect = 0;
        }
        $localfromtime = $getData['departuretime'];
        $deptime = date("Y-m-d h:i", strtotime($localfromtime));
        $arrivaltime = date("Y-m-d h:i", strtotime($getData['arrivaltime']));

        $flight_supplier_id = $getData['flight_suppplier_id'];

        $data = array(
            "FlightNumber" => $getData['flight_no_onward'],
            "AirlineSysId" => (int) $getData['airlinesysID'],
            "ICSourceSysId" => $agencySysID,
            "IsFromAgency" => 1,
            "LocalFromTime" => $deptime,
            "LocalToTime" => $arrivaltime,
            "FromUTCTime" => $deptime,
            "ToUTCTime" => $arrivaltime,
            "IsLCC" => 0,
            "IsDirect" => $isdirect,
            "DayLightSavingDiff" => 1,
            "FlyingMinutes" => 0,
            "FlightCabinClass" => 2,
            "SourcePlaceSysId" => (int) $getData['departurecitycode'],
            "DestPlaceSysId" => (int) $getData['arrivalcitycode'],
            "SourceAirportCode" => (int) $getData['departureapcode'],
            "DestAirportCode" => (int) $getData['arrivalapcode'],
            "AirportHaultMinutes" => (int) $getData['flymin'],
            "StopCount" => (int) $getData['stopcount'],
            "Stops" => $getData['stopcount'],
            "IsRefundable" => 1,
            "FareClass" => 'U',
            "TotalFlightMembers" => 0,
            "CurrencyType" => 1,
            "PublishedFare" => 0,
            "CommissionEarned" => 0,
            "apiTraceId" => '',
            "ApiResultIndex" => '',
            "JourneyType" => 0,
            "TripType" => '',
            "Rating" => 0,
            "FllightFeatureMask" => 1,
            "UpdatedByISSysId" => 1,
            "CreatedByISSysId" => 1,
            "ImageTN" => '',
            "ImgForList" => '',
            "ImgeDetails" => '',
            "UpdateDate" => $createddate,
            "CreateDate" => $createddate,
            "ApproveBy" => 0,
            "ApprovalDate" => $createddate,
            "IsApproved" => 1,
            "IsActive" => 1,
            "IsMarkForDel" => 0
        );
        $updateId = $objPackage->insertData('TB_IC_Trans_Air', $data);
        $stopcount = $getData['stopcount'];

        $mpinvnarr = array(
            "InventoryType" => 2,
            "XRefFlightSysId" => $updateId,
            "IsItTwoWay" => 0,
            "IsItParent" => 0,
            "PairItemSysId" => 0,
            "AgencySysId" => $agencySysID,
            "EconomyType" => 1,
            "FromDate" => $deptime,
            "ToDate" => $arrivaltime,
            "PurchasedQty" => 1,
            "PublishQty" => 1,
            "BlockQty" => 0,
            "SoldQty" => 0,
            "ReturnQty" => 0,
            "NetInHandQty" => 1,
            "CostCurrency" => 1,
            "TrxCurrency" => 1,
            "SupplierSysId" => $flight_supplier_id,
            "TotalCost" => 0,
            "Tax" => 0,
            "SaleAmount" => 0,
            "DefaultPrice" => 0,
            "Brief" => '',
            "IfAnyOffer" => '',
            "OfferMsg" => '',
            "OfferImage" => '',
            "StartPlaceSysId" => $getData['departurecitycode'],
            "DestPlaceSysId" => $getData['arrivalcitycode'],
            "SearchTags" => '',
            "IxFixedDateInven" => 0,
            "CreatorSysId" => $agencySysID,
            "CreateDate" => $createddate,
            "UpdateDate" => $createddate,
            "IsSaleStart" => 1,
            "IsActive" => 1,
            "IsMarkForDelete" => 0,
            "IsApproved" => 1
        );
        $updateIdd = $objPackage->insertData('TB_MP_Inventory_Air', $mpinvnarr);
        $createdDate = date('Y-m-d');
        $tpsysID = $getData['tpsysID'];
        $getroomdetails = $objPackage->getroominforeadymade($tpsysID);
        $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);
        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $adultcost = $getData['adultcost'];
        $kidscost = $getData['adultcost'];
        $totalactcost = ($adultcount * $adultcost) + ($childcount * $kidscost);
        $totalpax = $adultcount + $childcount;
        $airlinename = $getData['airlinename'];

        $stopcount = $getData['stopcount'];
        $flightID = $updateId;
        $sourceID = $getData['departurecitycode'];
        $destID = $getData['arrivalcitycode'];
        $sourcecityname = $objPackage->GetCityNameByID($sourceID);
        $this->view->sourcecityname = $sourcecityname['Title'];
        $destcityname = $objPackage->GetCityNameByID($destID);
        $this->view->destcityname = $destcityname['Title'];
        $this->view->tpintsysID = $getData['tpintsysID'];
        // if($stopcount == 0){       
        $flightlist = $objPackage->GetAirInfo($flightID);
        if ($stopcount == 0) {
            $is_direct = 1;
        } else {
            $is_direct = 0;
        }
        $fromdate = $flightlist['LocalFromTime'];
        $this->view->departuredate = $fromdate->format('d-M-y');
        $fromdatetime = $fromdate->format('Y-m-d h:i:s');
        $todate = $flightlist['LocalToTime'];
        $this->view->arrivaldate = $todate->format('d-M-y');
        $todatetime = $todate->format('Y-m-d h:i:s');
        $fromutc = $flightlist['FromUTCTime'];
        $fromutctime = $fromutc->format('Y-m-d h:i:s');
        $toutc = $flightlist['ToUTCTime'];
        $toutctime = $toutc->format('Y-m-d h:i:s');
        $sourceapcode = $flightlist['SourceAirportCode'];
        $destapcode = $flightlist['DestAirportCode'];
        //}
        /*  else{
          $flightlistsource = $objPackage->GetAirInfoSourceByStop($flightID,$sourceID);
          $flightlistdesti = $objPackage->GetAirInfoDestByStop($flightID,$destID);
          $is_direct = 0;
          $fromdate = $flightlistsource['DepartureTime'];
          $fromdatetime =    $fromdate->format('Y-m-d h:i:s');
          $this->view->departuredate = $fromdate->format('d-M-y');
          $todate = $flightlistdesti['ArrivalTime'];
          $todatetime = $todate->format('Y-m-d h:i:s');
          $fromutc = $flightlistsource['DepartureTime'];
          $fromutctime = $fromutc->format('Y-m-d h:i:s');
          $this->view->arrivaldate = $todate->format('d-M-y');
          $toutc = $flightlistdesti['ArrivalTime'];
          $toutctime = $toutc->format('Y-m-d h:i:s');
          $sourceapcode = $flightlistsource['OriginAirportCode'];
          $destapcode = $flightlistdesti['DestinationAirportCode'];
          }
         */

        $data = array(
            "TPIntSysId" => $getData['tpintsysID'],
            "SeqId" => 1,
            "InvnItemSysId" => $getData['flightID'],
            "AgencySysId" => $agencySysID,
            "IsFromAPI" => 0,
            "ICSourceSysId" => $sourceID,
            "SupplierSysId" => 0,
            "TripType" => 0,
            "CurrencyType" => 1,
            "Cost" => $totalactcost,
            "FlightNumber" => $getData['flight_no_onward'],
            "AirlineSysId" => $getData['airlinesysID'],
            "ICSourceSysId" => 0,
            "IsFromAgency" => 0,
            "LocalFromTime" => $fromdatetime,
            "LocalToTime" => $todatetime,
            "FromUTCTime" => $fromutctime,
            "ToUTCTime" => $toutctime,
            "AdultPax" => $adultcount,
            "ChildPax" => $childcount,
            "InfentPax" => 0,
            "TotalPax" => $totalpax,
            "IsSelectedOnPkg" => 0,
            "IsDirect" => $is_direct,
            "DayLightSavingDiff" => 0,
            "FlyingMinutes" => $getData['flymin'],
            "SourcePlaceSysId" => $sourceID,
            "DestPlaceSysId" => $destID,
            "SourceAirportCode" => $sourceapcode,
            "DestAirportCode" => $destapcode,
            "AirportHaultMinutes" => $getData['flymin'],
            "StopCount" => $stopcount,
            "Stops" => $stopcount,
            "Rating" => 0,
            "FllightFeatureMask" => 0,
            "UpdatedByISSysId" => 0,
            "CreatedByISSysId" => 0,
            "ImageTN" => '',
            "ImgForList" => '',
            "ImgeDetails" => '',
            "ApproveBy" => $agencySysID,
            "UpdateDate" => $createdDate,
            "CreateDate" => $createdDate,
            "ApprovalDate" => $createdDate,
            "IsApproved" => 1,
            "IsActive" => 1,
            "IsMarkForDel" => 0
        );
        $this->view->airlinename = $airlinename;
        $this->view->airlinesysId = $getData['airlinesysID'];
        $this->view->flightnumber = $getData['flight_no_onward'];

        $this->view->stopcount = $stopcount;
        $this->view->totalactcost = $totalactcost;
        $updateId = $objPackage->insertData('TB_TravelPlan_Itenary_Air', $data);
        $this->view->lastID = $updateId;
    }

    public function addactivitydetailsAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        //$packageThemeList = $this->_objPkg->getPackageThemeList();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $agentID = $sessionLogin_user->intLoggedinUserId;
        $getData = $this->getRequest()->getPost();

        $actfromdate = explode("/", $getData['from_date']);
        $acttodate = explode("/", $getData['to_date']);
        $fromdate = $actfromdate[2] . '-' . $actfromdate[1] . '-' . $actfromdate[0];
        $todate = $acttodate[2] . '-' . $acttodate[1] . '-' . $acttodate[0];
        $create_date = date('Y-m-d');
        $tpsysID = $getData['packageId'];
        $getroomdetails = $objPackage->getroominfo($tpsysID);
        $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);

        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $adultcost = $getData['adult_cost_natives'];
        $kidscost = $getData['kids_cost_natives'];
        $totalactcost = ($adultcount * $adultcost) + ($childcount * $kidscost);

        $data = array(
            "InventoryType" => 2,
            "XRef" => $getData['activity_id'],
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "FromDate" => $fromdate,
            "ToDate" => $todate,
            "BookingType" => $getData['recipient'],
            "inclusions" => $getData['inclusions_id'][0],
            "IsTransferInc" => $getData['transfers'],
            "IsPickDropInc" => 0,
            "PurchasedQty" => 0,
            "PublishQty" => 0,
            "BlockQty" => 0,
            "SoldQty" => 0,
            "ReturnQty" => 0,
            "NetInHandQty" => 0,
            "CostCurrency" => $getData['currency_type'],
            "TotalCostNativeAdult" => $getData['adult_cost_natives'],
            "TotalCostNativeChild" => $getData['kids_cost_natives'],
            "TotalCostForeignerChild" => $getData['adult_cost_foreigners'],
            "TotalCostForeignerAdult" => $getData['kids_cost_foreigners'],
            "TrxCurrency" => $getData['currency_type'],
            "Brief" => '',
            "IfAnyOffer" => '',
            "OfferMsg" => '',
            "OfferImage" => '',
            "TCInfo" => '',
            "TCDocPath" => '',
            "IxFixedDateInven" => 0,
            "CreatorSysId" => $agentID,
            "ApproveDate" => $create_date,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsSaleStart" => 1,
            "IsActive" => 1,
            "IsMarkForDelete" => 0,
            "IsApproved" => 1
        );
        $updateId = $objPackage->insertData('TB_MP_Inventory_Activity', $data);
        $tpintId = $getData['tpitnID'];
        $actdata = array(
            "TPIntSysId" => $tpintId,
            "Sequence" => 1,
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "InvnItemSysId" => 0,
            "TPActivitySysId" => $getData['activity_id'],
            "CurrencyType" => $getData['currency_type'],
            "Title" => $getData['activity_name'],
            "Type" => 'Included',
            "CityId" => $getData['CitySysIds'],
            "Cost" => $getData['adult_cost_natives'],
            "KidsCost" => $getData['kids_cost_natives'],
            "Taxes" => 0,
            "TDS" => 0,
            "TotalCost" => $totalactcost,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsMarkForDel" => 0,
            "IsOptionalActivity" => 0,
            "IsActive" => 1,
            "Markup" => 0
        );
        $insertdata = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Itenary_Events', $actdata);
        //$lastID = $this->lastID;
        $this->view->lastID = $insertdata;
        $this->view->acttile = $getData['activity_name'];
        $this->view->suppsysID = $getData['supplier_type_id'];
        $this->view->suppsysname = $getData['supplier_type'];
        $this->view->adultcost = $getData['adult_cost_natives'];
        $this->view->childcost = $getData['kids_cost_natives'];
    }

    public function addactivitydetailsbyoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        //$packageThemeList = $this->_objPkg->getPackageThemeList();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $agentID = $sessionLogin_user->intLoggedinUserId;
        $getData = $this->getRequest()->getPost();

        $actfromdate = explode("/", $getData['from_date']);
        $acttodate = explode("/", $getData['to_date']);
        $fromdate = $actfromdate[2] . '-' . $actfromdate[1] . '-' . $actfromdate[0];
        $todate = $acttodate[2] . '-' . $acttodate[1] . '-' . $acttodate[0];
        $create_date = date('Y-m-d');
        $tpsysID = $getData['packageId'];
        $getroomdetails = $objPackage->getroominforeadymade($tpsysID);
        $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);

        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $adultcost = $getData['adult_cost_natives'];
        $kidscost = $getData['kids_cost_natives'];
        $totalactcost = ($adultcount * $adultcost) + ($childcount * $kidscost);

        $data = array(
            "InventoryType" => 2,
            "XRef" => $getData['activity_id'],
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "FromDate" => $fromdate,
            "ToDate" => $todate,
            "BookingType" => 1,
            "inclusions" => $getData['inclusions_id'][0],
            "IsTransferInc" => $getData['transfers'],
            "IsPickDropInc" => 0,
            "PurchasedQty" => 0,
            "PublishQty" => 0,
            "BlockQty" => 0,
            "SoldQty" => 0,
            "ReturnQty" => 0,
            "NetInHandQty" => 0,
            "CostCurrency" => $getData['currency_type'],
            "TotalCostNativeAdult" => $getData['adult_cost_natives'],
            "TotalCostNativeChild" => $getData['kids_cost_natives'],
            "TotalCostForeignerChild" => $getData['kids_cost_foreigners'],
            "TotalCostForeignerAdult" => $getData['adult_cost_foreigners'],
            "TrxCurrency" => $getData['currency_type'],
            "Brief" => '',
            "IfAnyOffer" => '',
            "OfferMsg" => '',
            "OfferImage" => '',
            "TCInfo" => '',
            "TCDocPath" => '',
            "IxFixedDateInven" => 0,
            "CreatorSysId" => $agentID,
            "ApproveDate" => $create_date,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsSaleStart" => 1,
            "IsActive" => 1,
            "IsMarkForDelete" => 0,
            "IsApproved" => 1
        );
        $updateId = $objPackage->insertData('TB_MP_Inventory_Activity', $data);
        $tpintId = $getData['tpitnID'];
        $actdata = array(
            "TPIntSysId" => $tpintId,
            "Sequence" => 1,
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "InvnItemSysId" => $updateId,
            "TPActivitySysId" => $getData['activity_id'],
            "CurrencyType" => $getData['currency_type'],
            "Title" => $getData['activity_name'],
            "Type" => 'Included',
            "CityId" => $getData['CitySysIds'],
            "Cost" => $getData['adult_cost_natives'],
            "KidsCost" => $getData['kids_cost_natives'],
            "TotalCost" => $totalactcost,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsMarkForDel" => 0,
            "IsOptionalActivity" => 0,
            "IsActive" => 1
        );
        $insertdata = $objPackage->insertData('TB_TravelPlan_Itenary_Events', $actdata);
        //$lastID = $this->lastID;
        $this->view->lastID = $insertdata;
        $this->view->activity_id = $getData['activity_id'];

        $this->view->acttile = $getData['activity_name'];
        $this->view->suppsysID = $getData['supplier_type_id'];
        $this->view->suppsysname = $getData['supplier_type'];
        $this->view->adultcost = $getData['adult_cost_natives'];
        $this->view->childcost = $getData['kids_cost_natives'];
    }

    public function addCustomerPackageTransFixedAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        // $totaltraveler = $_REQUEST['totaltraveler'] ? $_REQUEST['totaltraveler'] : 0;
        $cost = $_REQUEST['cost'];
        $action = $_REQUEST['action'];
        if ($_REQUEST['TransType'] == 'car') {
            $totalcost = $_REQUEST['CostPerson'];
            $vehsysID = $_REQUEST['vehsysID'];
        } else {
            $totalcost = $_REQUEST['CostPerson'] * $_REQUEST['totaltraveler'];
        }
        if (isset($_REQUEST['ToPlace'])) {
            $sourceID = Zend_Controller_Action_HelperBroker::getStaticHelper('Filters')->GetCityName($_REQUEST['ToPlace']);
        } else {
            $sourceID = array();
            $_REQUEST['ToPlace'] = '';
            $sourceID['Title'] = '';
        }
        if (isset($_REQUEST['FromPlace'])) {
            $destinationID = Zend_Controller_Action_HelperBroker::getStaticHelper('Filters')->GetCityName($_REQUEST['FromPlace']);
        } else {
            $destinationID = array();
            $_REQUEST['FromPlace'] = '';
            @$destinationID['Title'] = '';
        }
        if ($action == 'Add') {
            $iscarexist = $objPackage->IsCarExist($_REQUEST['TPSysId']);
            if (!empty($iscarexist)) {
                $updateddata = array(
                    'IsIncluded' => 0
                );

                $wheredata = array('TPSysId = ? ' => @$_REQUEST['TPSysId'], 'TransType = ? ' => 'car');
                $updateIddata = $objPackage->updateData('TB_Agency_Customer_Trans_Fixed', $updateddata, $wheredata);
            }
            $data = array(
                'AgencySysId' => @$intLoggedinUserAgencySysId,
                'TPSysId' => @$_REQUEST['TPSysId'],
                'TPIntSysId' => @$_REQUEST['tpintsysId'] ? $_REQUEST['tpintsysId'] : 0,
                'Type' => 'Included',
                'IsIncluded' => '0',
                'TransType' => @$_REQUEST['TransType'],
                'TransTypeCat' => @$_REQUEST['TransTypeCat'],
                'FromPlace' => @$destinationID['Title'] ? $destinationID['Title'] : '',
                'VehSysId' => $vehsysID ? $vehsysID : 0,
                'ToPlace' => @$sourceID['Title'] ? $sourceID['Title'] : '',
                'SourceCityId' => @$_REQUEST['FromPlace'] ? $_REQUEST['FromPlace'] : '',
                'DestCityId' => $_REQUEST['ToPlace'] ? $_REQUEST['ToPlace'] : '',
                'CostPerson' => @$_REQUEST['CostPerson'],
                'TotalPrice' => $totalcost,
                'Capacity' => @$_REQUEST['Capacity'],
                'CreateDate' => @$currentDate,
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );

            $updateId = $objPackage->insertData('TB_Agency_Customer_Trans_Fixed', $data);
        } else {

            $updateddata = array(
                'IsIncluded' => 0
            );

            $wheredata = array('TPSysId = ? ' => @$_REQUEST['TPSysId'], 'TransType = ? ' => 'car');
            $updateIddata = $objPackage->updateData('TB_Agency_Customer_Trans_Fixed', $updateddata, $wheredata);
            // $updatecarinfo =	$objPackage->updateData('TB_Agency_Customer_Trans_Fixed', $updateIddata, $wheredata);
            $data = array(
                'CostPerson' => $_REQUEST['CostPerson'],
                'TotalPrice' => $_REQUEST['CostPerson'],
            );
            $where = array('vehsysID = ? ' => @$_REQUEST['vehsysID']);
            $updateId = $objPackage->updateData('TB_Agency_Customer_Trans_Fixed', $data, $where);
        }
    }

    public function deletecarinfoAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $updateddata = array(
            'IsMarkForDel' => 1
        );
        $wheredata = array('FixTransSysId = ? ' => @$_REQUEST['FixTransID']);
        $updateIddata = $objPackage->updateData('TB_TravelPlan_Trans_Fixed', $updateddata, $wheredata);
    }

    public function addCustomerPackageTransFixedByoAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        // $totaltraveler = $_REQUEST['totaltraveler'] ? $_REQUEST['totaltraveler'] : 0;
        //        echo '<pre>'; print_r($_REQUEST); echo '</pre>';
        $cost = $_REQUEST['cost'];
        $action = $_REQUEST['action'];
        $totaltraveler = $_REQUEST['totaltraveler'];
        $vehsysID = $_REQUEST['vehsysID'] ? $_REQUEST['vehsysID'] : 0;
        $routesysID = isset($_REQUEST['routesysID']) ? $_REQUEST['routesysID'] : 0;
        //        if($_REQUEST['TransType'] == 'bus'){
        //            $sourceID = Zend_Controller_Action_HelperBroker::getStaticHelper('Filters')->GetCityName($_REQUEST['ToPlace']);
        //            $destinationID = Zend_Controller_Action_HelperBroker::getStaticHelper('Filters')->GetCityName($_REQUEST['FromPlace']);
        //            $tpintsysID = $_REQUEST['tpintsysId'];
        //            $isbusexist = $objPackage->IsBusAdded($tpintsysID);
        //            if(!empty($isbusexist) > 0){
        //                echo 'You have already added the bus in this itinerary';
        //                exit;
        //            }
        //            
        //        }
        //        if($_REQUEST['TransTypeCat'] == 'train'){
        //            $tpintsysID = $_REQUEST['tpintsysId'];
        //            $istrainexist = $objPackage->IsTrainAdded($tpintsysID);
        //            if(!empty($istrainexist) > 0){
        //                echo 'You have already added the train in this itinerary';
        //                exit;
        //            }
        //        }
        if ($_REQUEST['TransType'] == 'car') {
            $totalcost = $_REQUEST['CostPerson'];
            $vehsysID = $_REQUEST['vehsysID'];
            $costperperson = $_REQUEST['CostPerson'] / $totaltraveler;
        } else {
            $totalcost = $_REQUEST['CostPerson'] * $_REQUEST['totaltraveler'];
            $costperperson = $_REQUEST['CostPerson'];
        }
        if (isset($_REQUEST['ToPlace'])) {
            $sourceID = Zend_Controller_Action_HelperBroker::getStaticHelper('Filters')->GetCityName($_REQUEST['ToPlace']);
        } else {
            $sourceID = array();
            $_REQUEST['ToPlace'] = '';
            $sourceID['Title'] = '';
        }
        if (isset($_REQUEST['FromPlace'])) {
            $destinationID = Zend_Controller_Action_HelperBroker::getStaticHelper('Filters')->GetCityName($_REQUEST['FromPlace']);
        } else {
            $destinationID = array();
            $_REQUEST['FromPlace'] = '';
            @$destinationID['Title'] = '';
        }

        if ($action == 'Add') {
            $iscarexist = $objPackage->IsCarExistBYO($_REQUEST['TPSysId']);
            if (!empty($iscarexist)) {
                $updateddata = array(
                    'IsIncluded' => 0,
                );

                //$wheredata = array('TPSysId = ? ' => @$_REQUEST['TPSysId'],'TransType = ? ' => 'car');	
                $wheredata = array(
                    'TransType = ? ' => 'car',
                    'TPSysId = ? ' => @$_REQUEST['TPSysId'],
                    'IsGroup = ? ' => 0
                );
                $updateIddata = $objPackage->updateData('TB_TravelPlan_Trans_Fixed', $updateddata, $wheredata);
            }
            $x = 3; // Amount of digits
            $min = pow(10, $x);
            $max = pow(10, $x + 1) - 1;
            $value = rand($min, $max);

            $toCurrency = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->getLoggedInAgencyBaseCurrencyId();
            $totalBaseCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->convertRatetoBaseCurrency($totalcost, $_REQUEST['currId'], $toCurrency);

            $data = array(
                'AgencySysId' => @$intLoggedinUserAgencySysId,
                'TPSysId' => @$_REQUEST['TPSysId'],
                'TPIntSysId' => @$_REQUEST['tpintsysId'] ? $_REQUEST['tpintsysId'] : 0,
                'Type' => 'Included',
                'IsIncluded' => '0',
                'VehSysId' => $vehsysID ? $vehsysID : 0,
                'VehicleTypeSysId' => $vehsysID ? $vehsysID : 0,
                'RouteSysId' => $routesysID,
                'RouteVechSysId' => $_REQUEST['routevehsysID'],
                'TransType' => @$_REQUEST['TransType'],
                'TransTypeCat' => @$_REQUEST['TransTypeCat'],
                'FromPlace' => @$destinationID['Title'] ? $destinationID['Title'] : '',
                'ToPlace' => @$sourceID['Title'] ? $sourceID['Title'] : '',
                'SourceCityId' => @$_REQUEST['FromPlace'] ? $_REQUEST['FromPlace'] : '',
                'DestCityId' => $_REQUEST['ToPlace'] ? $_REQUEST['ToPlace'] : '',
                'CostPerson' => $costperperson,
                'TotalPrice' => $totalcost,
                'CurrencyType' => $_REQUEST['currId'],
                'TotalBasePrice' => $totalBaseCost,
                'Capacity' => @$_REQUEST['Capacity'],
                'CreateDate' => @$currentDate,
                'IsMarkForDel' => '0',
                'Sequence' => $value,
                'IsActive' => '1'
            );

            $updateId = $objPackage->insertData('TB_TravelPlan_Trans_Fixed', $data);
        } else {

            /* $updateddata = array(
              'IsIncluded' => 0
              );

              $wheredata = array('TPSysId = ? ' => @$_REQUEST['TPSysId'],'TransType = ? ' => 'car');
              $updateIddata =	$objPackage->updateData('TB_TravelPlan_Trans_Fixed', $updateddata, $wheredata);
              // $updatecarinfo =	$objPackage->updateData('TB_Agency_Customer_Trans_Fixed', $updateIddata, $wheredata);
             * 
             */
            $chkvehiclesysyID = $objPackage->ChkVehicleSysID($_REQUEST['vehsysID'], $_REQUEST['TPSysId'], $_REQUEST['routesysID']);

            $data = array(
                'IsMarkForDel' => 1
            );
            $where = array('FixTransSysId = ? ' => $chkvehiclesysyID['FixTransSysId']);
            $updateId = $objPackage->updateData('TB_TravelPlan_Trans_Fixed', $data, $where);
        }
    }

    public function addhotelinventoryAction() {

        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        //$packageThemeList = $this->_objPkg->getPackageThemeList();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $getData = $this->getRequest()->getPost();
        $fromdate = $getData['frominvndate'];
        $fromdateexplode = explode("/", $fromdate);
        $invfromdate = $fromdateexplode[2] . '-' . $fromdateexplode[1] . '-' . $fromdateexplode[0];
        $todate = $getData['toinvndate'];
        $todateexplode = explode("/", $todate);
        $invtodate = $todateexplode[2] . '-' . $todateexplode[1] . '-' . $todateexplode[0];
        $createdDate = date('Y-m-d');

        $data = array(
            "InventoryType" => 1,
            "XRefAccoSysId" => $getData['hidden_selected_hotel_inv_id'],
            "XRefItemSysId" => 0,
            "FromDate" => $invfromdate,
            "ToDate" => $invtodate,
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['hidden_selected_supplier_sys_id'],
            "Title" => $getData['hotelinvname'],
            "EconomyType" => $getData['roomtype'],
            "MealPlanType" => $getData['mealplan'],
            "IxFixedDateInven" => 0,
            "DailyRoomLimit" => $getData['droomlimit'],
            "PurchasedQty" => 0,
            "PublishQty" => 0,
            "BlockQty" => 0,
            "SoldQty" => 0,
            "ReturnQty" => 0,
            "NetInHandQty" => 0,
            "CostCurrency" => $getData['currency'],
            "TrxCurrency" => $getData['currency'],
            "IsPerPaxCostAllowed" => 0,
            "RateType" => strtoupper($getData['ratetype']),
            "PerPaxCost" => 0,
            "RackCommission" => 0,
            "DOccupCost" => $getData['doubleoccup'],
            "SOccupCost" => $getData['singleoccup'],
            "ExtraBedCost" => $getData['extwithbed'],
            "ExtraWOBedCost" => $getData['extwithoutbed'],
            "NetDOccupCost" => $getData['doubleoccuprr'],
            "NetSOccupCost" => $getData['sigleoccuprr'],
            "NetExtraBedCost" => $getData['exwithbedrr'],
            "NetExtraWOBedCost" => $getData['exwithoutbedrr'],
            "Tax" => $getData['taxpercent'] ? $getData['taxpercent'] : 0,
            "NetTax" => $getData['rrtaxpercent'] ? $getData['rrtaxpercent'] : 0,
            "Brief" => '',
            "OtherCost" => 0,
            "SaleAmount" => 0,
            "DefaultPrice" => 0,
            "Brief" => '',
            "IfAnyOffer" => 0,
            "OfferMsg" => '',
            "OfferImage" => '',
            "CreatorSysId" => $this->intLoggedinUserId,
            "CreateDate" => $createdDate,
            "ApproveDate" => $createdDate,
            "UpdateDate" => $createdDate,
            "IsFromAPI" => 0,
            "IsSaleStart" => 1,
            "freeChildAgeTill" => $getData['freechildage'] ? $getData['freechildage'] : '',
            "IsActive" => 1,
            "IsMarkForDelete" => 0,
            "IsApproved" => 0
        );
        $updateId = $objPackage->insertData('TB_MP_Inventory_Accom', $data);
        $packageID = $getData['pkgID'];
        $cityID = $getData['cityidval'];
        $checkindate = $getData['checkinDate'];
        $checkoutdate = $getData['checkoutDate'];
        $getinventoryhotel = $objPackage->GetInventoryHotelBYO($getData['hidden_selected_hotel_inv_id']);
        $free_child_age_in_hotel = $getData['freechildage'];
        $getroominfo = $objPackage->getroominfo($packageID);
        $roominfodetail = json_decode($getroominfo[0]['RoomInfoJson'], 1);
        $roomaaray = array();
        $adultcount = 0;
        $childcount = 0;
        for ($i = 1; $i <= count($roominfodetail); $i++) {
            $roomaaray[$i]['adult'] = $roominfodetail[$i]['Adult'];
            $roomaaray[$i]['child']['childcount'] = $roominfodetail[$i]['Child'];
            $roomaaray[$i]['child']['childage'] = 0;
            $adultcount = $adultcount + $roominfodetail[$i]['Adult'];
            $childcount = $childcount + $roominfodetail[$i]['Child'];
            //$roomaaray[$i]['child'] = $this->_request->getParam('select-noOfChild'.$i);
        }
        $roomaarayinfo = json_encode($roomaaray);
        $totalpax = $adultcount + $childcount;
        $totalhotelprice = 0;
        //echo '<pre>';
        //  print_r($roominfodetail);
        for ($k = 1; $k <= count($roominfodetail); $k++) {
            if ($roominfodetail[$k]['Adult'] == '1') {
                $totalhotelprice = $totalhotelprice + $getData['sigleoccuprr'];
            }
            if ($roominfodetail[$k]['Adult'] == '2') {
                $totalhotelprice = $totalhotelprice + $getData['doubleoccuprr'];
            }
            if ($roominfodetail[$k]['Adult'] == '3') {
                $totalhotelprice = $totalhotelprice + $getData['sigleoccuprr'] + $getData['doubleoccuprr'];
            }
            if ($roominfodetail[$k]['Adult'] == '4') {
                $totalhotelprice = $totalhotelprice + $getData['doubleoccuprr'] * 2;
            }

            if ($roominfodetail[$k]['Child'] > 0) {
                //  $childcount = $roominfodetail[$k]['Child'];
                // $j=1;
            }
        }



        for ($z = 1; $z <= count($roominfodetail); $z++) {
            $chilcount = $roominfodetail[$z]['Child'];
            $bedtype = $roominfodetail[$z]['bedtype'];
            for ($k = 1; $k <= $chilcount; $k++) {
                if ($chilcount == "1") {
                    $agechildtxt = 'ChildAge_1';
                    $childage = $roominfodetail[$z][$agechildtxt];
                    $bedtype = $roominfodetail[$z]['bedtype'];
                    if ($bedtype == "withoutbed" && $childage >= $free_child_age_in_hotel) {
                        $totalhotelprice = $totalhotelprice + $getData['exwithoutbedrr'];
                    }
                } else {
                    if ($bedtype == "withoutbed") {
                        $agechildtxt = 'ChildAge_' . $k;
                        $childage = $roominfodetail[$z][$agechildtxt];
                        if ($childage >= $free_child_age_in_hotel) {
                            $totalhotelprice = $totalhotelprice + $getData['exwithoutbedrr'];
                        }
                    }
                }
            }
        }


        ################# Cost Calculation For Extra bed ##############
        $exbedchildage = array();
        for ($z = 1; $z <= count($roominfodetail); $z++) {
            $chilcount = $roominfodetail[$z]['Child'];
            $bedtype = $roominfodetail[$z]['bedtype'];
            for ($k = 1; $k <= $chilcount; $k++) {
                if ($bedtype == "extrabed") {

                    $agechildtxt = 'ChildAge_' . $k;
                    $childage = $roominfodetail[$z][$agechildtxt];
                    $exbedchildage[$z] = $childage;
                }
            }
        }

        //  $extrabedcost =  max($exbedchildage);
        if (isset($exbedchildage)) {
            for ($i = 1; $i <= count($exbedchildage); $i++) {
                $totalhotelprice = $totalhotelprice + $getData['exwithbedrr'];
            }
        }

        for ($z = 1; $z <= count($roominfodetail); $z++) {
            $chilcount = $roominfodetail[$z]['Child'];
            $bedtype = $roominfodetail[$z]['bedtype'];
            for ($k = 1; $k <= $chilcount; $k++) {
                $agechildtxt = 'ChildAge_' . $k;
                $childage = $roominfodetail[$z][$agechildtxt];
                if ($bedtype == "extrabed") {
                    if ($childage >= $free_child_age_in_hotel && $childage != $exbedchildage[$z]) {
                        $totalhotelprice = $totalhotelprice + $getData['exwithoutbedrr'];
                    }
                }
            }
        }

        ################# Cost Calculation For Extra bed End ##############
        //  echo '<br/>';
        //  echo $totalhotelprice;
        // die;
        $tpintsysID = $getData['tpintsysID'];
        $tpintarr = $objPackage->GetCityDuration($cityID, $packageID);
        $this->view->itnID = $tpintsysID;
        $this->view->invID = $getinventoryhotel[0]['AccomSysId'];
        $this->view->hotelname = $getinventoryhotel[0]['Title'];
        $starrating = (int) $getinventoryhotel[0]['Stars'];
        $this->view->star = $starrating;
        $this->view->suppliername = $getData['supplier_name_inv'];
        $this->view->totalprice = $totalhotelprice;
        for ($k = 0; $k < count($tpintarr); $k++) {
            // for($j=1;$j<=$totalroom;$j++){
            if ($tpintsysID == $tpintarr[$k]['TPIntSysId']) {
                $parenttpID = 0;
            } else {
                $parenttpID = $tpintsysID;
            }
            //$totalpax = $adultarr[$j] + $childarr[$j];
            $tpdata = array(
                'TPIntSysId' => $tpintarr[$k]['TPIntSysId'],
                'SeqId' => 1,
                'IsFromAPI' => 0,
                'SupplierSysId' => $getData['hidden_selected_supplier_sys_id'],
                'SourceSysId' => $getinventoryhotel[0]['ICSourceSysId'],
                'MasterIntSysId' => $parenttpID,
                'AgencySysId' => $agencySysID,
                'InvnItemSysId' => $updateId,
                'AccoSysId' => $getinventoryhotel[0]['AccomSysId'],
                'RoomType' => $getData['roomtype'],
                'Title' => $getinventoryhotel[0]['Title'],
                'XRefCityId' => $cityID,
                'AdultPax' => $adultcount,
                'ChildPax' => $childcount,
                'TotalPax' => $totalpax,
                'StarRating' => $starrating,
                'Discounts' => 0,
                'FromDate' => $checkindate,
                'ToDate' => $checkoutdate,
                'TotalCostGen' => $totalhotelprice,
                'TotalCostSO' => $getData['sigleoccuprr'],
                'TotalCostDO' => $getData['doubleoccuprr'],
                'TotalCostTO' => 0,
                'TotalCost' => $totalhotelprice,
                'RoomMemInfoJson' => $roomaarayinfo,
                'TotalCostExtraBed' => $getData['exwithbedrr'],
                'TotalCostWithoutBed' => $getData['exwithoutbedrr'],
                'Taxes' => 0,
                'CreateDate' => $createdDate,
                'UpdateDate' => $createdDate,
                'IsMarkForDel' => 0,
                'IsActive' => 1
            );

            $updateIddd = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Accom', $tpdata);
        }

        echo '.';
    }

    public function addhotelinventorybyoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        //$packageThemeList = $this->_objPkg->getPackageThemeList();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $getData = $this->getRequest()->getPost();
        $fromdate = $getData['frominvndate'];
        $packcat = $getData['pkgcattype'];
        $tpitineraryID = $getData['tpitineraryID'];
        $currentitnday = $getData['currentitnday'];
        $nextday = date('Y-m-d', strtotime($currentitnday . ' +1 days'));
        $fromdateexplode = explode("/", $fromdate);
        $invfromdate = $fromdateexplode[2] . '-' . $fromdateexplode[1] . '-' . $fromdateexplode[0];
        $todate = $getData['toinvndate'];
        $todateexplode = explode("/", $todate);
        $invtodate = $todateexplode[2] . '-' . $todateexplode[1] . '-' . $todateexplode[0];
        $createdDate = date('Y-m-d');
        $data = array(
            "InventoryType" => 1,
            "XRefAccoSysId" => $getData['hidden_selected_hotel_inv_id'],
            "XRefItemSysId" => 0,
            "FromDate" => $invfromdate,
            "ToDate" => $invtodate,
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['hidden_selected_supplier_sys_id'],
            "Title" => $getData['hotelinvname'],
            "EconomyType" => $getData['roomtype'],
            "MealPlanType" => $getData['mealplan'],
            "IxFixedDateInven" => 0,
            "DailyRoomLimit" => $getData['droomlimit'],
            "PurchasedQty" => 0,
            "PublishQty" => 0,
            "BlockQty" => 0,
            "SoldQty" => 0,
            "ReturnQty" => 0,
            "NetInHandQty" => 0,
            "CostCurrency" => $getData['currency'],
            "TrxCurrency" => $getData['currency'],
            "IsPerPaxCostAllowed" => 0,
            "RateType" => strtoupper($getData['ratetype']),
            "PerPaxCost" => 0,
            "RackCommission" => 0,
            "DOccupCost" => $getData['doubleoccup'],
            "SOccupCost" => $getData['singleoccup'],
            "ExtraBedCost" => $getData['extwithbed'],
            "ExtraWOBedCost" => $getData['extwithoutbed'],
            "NetDOccupCost" => $getData['doubleoccuprr'],
            "NetSOccupCost" => $getData['sigleoccuprr'],
            "NetExtraBedCost" => $getData['exwithbedrr'],
            "NetExtraWOBedCost" => $getData['exwithoutbedrr'],
            "Tax" => $getData['taxpercent'] ? $getData['taxpercent'] : 0,
            "NetTax" => $getData['rrtaxpercent'] ? $getData['rrtaxpercent'] : 0,
            "OtherCost" => 0,
            "SaleAmount" => 0,
            "DefaultPrice" => 0,
            "Brief" => '',
            "IfAnyOffer" => 0,
            "OfferMsg" => '',
            "OfferImage" => '',
            "CreatorSysId" => $this->intLoggedinUserId,
            "CreateDate" => $createdDate,
            "ApproveDate" => $createdDate,
            "UpdateDate" => $createdDate,
            "IsFromAPI" => 0,
            "IsSaleStart" => 1,
            "IsActive" => 1,
            "IsMarkForDelete" => 0,
            "IsApproved" => 0
        );
        $updateId = $objPackage->insertData('TB_MP_Inventory_Accom', $data);
        $packageID = $getData['pkgID'];
        $cityID = $getData['cityidval'];
        $checkindate = $getData['checkinDate'];
        $checkoutdate = $getData['checkoutDate'];
        $getinventoryhotel = $objPackage->GetInventoryHotelBYO($getData['hidden_selected_hotel_inv_id']);

        $getroominfo = $objPackage->getroominforeadymade($packageID);
        $roominfodetail = json_decode($getroominfo[0]['RoomInfoJson'], 1);

        $roomaaray = array();
        $adultcount = 0;
        $childcount = 0;
        for ($i = 1; $i <= count($roominfodetail); $i++) {
            $roomaaray[$i]['adult'] = $roominfodetail[$i]['Adult'];
            $roomaaray[$i]['child']['childcount'] = $roominfodetail[$i]['Child'];
            $roomaaray[$i]['child']['childage'] = 0;
            $adultcount = $adultcount + $roominfodetail[$i]['Adult'];
            $childcount = $childcount + $roominfodetail[$i]['Child'];
            //$roomaaray[$i]['child'] = $this->_request->getParam('select-noOfChild'.$i);
        }
        $roomaarayinfo = json_encode($roomaaray);
        $totalpax = $adultcount + $childcount;

        $totalhotelprice = 0;
        for ($k = 1; $k <= count($roominfodetail); $k++) {
            if ($roominfodetail[$k]['Adult'] == '1') {
                $totalhotelprice = $totalhotelprice + $getData['sigleoccuprr'];
            }
            if ($roominfodetail[$k]['Adult'] == '2') {
                $totalhotelprice = $totalhotelprice + $getData['doubleoccuprr'];
            }
            if ($roominfodetail[$k]['Adult'] == '3') {
                $totalhotelprice = $totalhotelprice + $getData['sigleoccuprr'] + $getData['doubleoccuprr'];
            }
            if ($roominfodetail[$k]['Adult'] == '4') {
                $totalhotelprice = $totalhotelprice + $getData['doubleoccuprr'] * 2;
            }



            if ($roominfodetail[$k]['Child'] > 0) {
                $childcount = $roominfodetail[$k]['Child'];
                $bedtype = $roominfodetail[$k]['bedtype'];
                if ($bedtype == 'withoutbed') {
                    $totalhotelprice = $totalhotelprice + $getData['exwithoutbedrr'];
                }
                if ($bedtype == 'extrabed') {
                    $totalhotelprice = $totalhotelprice + $getData['exwithbedrr'];
                }
            }
        }



        $tpintsysID = $getData['tpintsysID'];
        $tpintarr = $objPackage->GetCityDurationPkg($cityID, $packageID);
        $this->view->packcat = $packcat;
        $this->view->itnID = $tpintsysID;
        $this->view->invID = $getinventoryhotel[0]['AccomSysId'];
        $this->view->suppliersysID = $getData['hidden_selected_supplier_sys_id'];
        $this->view->hotelname = $getinventoryhotel[0]['Title'];
        $starrating = (int) $getinventoryhotel[0]['Stars'];
        $this->view->star = $starrating;
        $this->view->suppliername = $getData['supplier_name_inv'];
        //echo $totalhotelprice;
        $this->view->totalprice = $totalhotelprice;
        //  for($k=0;$k<count($tpintarr);$k++){
        // for($j=1;$j<=$totalroom;$j++){
        // if($tpintsysID == $tpintarr[$k]['TPIntSysId']){
        // $parenttpID = 0;
        // }
        // else{
        //    $parenttpID = $tpintsysID;
        //  }  
        //$totalpax = $adultarr[$j] + $childarr[$j];
        $tpdata = array(
            'TPIntSysId' => $tpitineraryID,
            'SeqId' => 1,
            'IsFromAPI' => 0,
            'SupplierSysId' => $getData['hidden_selected_supplier_sys_id'],
            'SourceSysId' => $getinventoryhotel[0]['ICSourceSysId'],
            'RoomNumber' => '',
            'MasterIntSysId' => 0,
            'AgencySysId' => $agencySysID,
            'InvnItemSysId' => $updateId,
            'BYOPackType' => $packcat,
            'AccoSysId' => $getinventoryhotel[0]['AccomSysId'],
            'RoomType' => $getData['roomtype'],
            'Title' => $getinventoryhotel[0]['Title'],
            'XRefCityId' => $cityID,
            'AdultPax' => $adultcount,
            'ChildPax' => $childcount,
            'TotalPax' => $totalpax,
            'StarRating' => $starrating,
            'Discounts' => 0,
            'FromDate' => $checkindate,
            'ToDate' => $checkoutdate,
            'CheckInTime' => $currentitnday,
            'CheckOutTime' => $nextday,
            'TotalNights' => '0',
            'CurrencyType' => 1,
            'NetCost' => $totalhotelprice,
            'TotalCostGen' => $totalhotelprice,
            'TotalCostSO' => $getData['sigleoccuprr'],
            'TotalCostDO' => $getData['doubleoccuprr'],
            'TotalCostTO' => 0,
            'TotalCost' => $totalhotelprice,
            'RoomMemInfoJson' => $roomaarayinfo,
            'TotalCostExtraBed' => $getData['exwithbedrr'],
            'TotalCostWithoutBed' => $getData['exwithoutbedrr'],
            'Taxes' => 0,
            'CreateDate' => $createdDate,
            'UpdateDate' => $createdDate,
            'IsMarkForDel' => 0,
            'IsActive' => 1
        );

        $updateIdd = $objPackage->insertData('TB_TravelPlan_Itenary_Accom', $tpdata);

        // }

        echo '.';
    }

    public function addFlexiPackageTransFixedAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'AgencySysId' => @$intLoggedinUserAgencySysId,
            'TPSysId' => @$_REQUEST['TPSysId'],
            'TransType' => @$_REQUEST['TransType'],
            'TransTypeCat' => @$_REQUEST['TransTypeCat'],
            'FromPlace' => @$_REQUEST['FromPlace'],
            'ToPlace' => @$_REQUEST['ToPlace'],
            'CostPerson' => @$_REQUEST['CostPerson'],
            'Capacity' => @$_REQUEST['Capacity'],
            'CreateDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );
        $updateId = $objPackage->insertData('TB_TravelPlan_Trans_Fixed', $data);
    }

    public function addFlexiPackageTransDaywiseAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'AgencySysId' => @$intLoggedinUserAgencySysId,
            'TPSysId' => @$_REQUEST['TPSysId'],
            'Sequence' => @$_REQUEST['Sequence'],
            'FromPlace' => @$_REQUEST['FromPlace'],
            'ToPlace' => @$_REQUEST['ToPlace'],
            'TransType' => @$_REQUEST['TransType'],
            'TransUsed' => @$_REQUEST['TransUsed'],
            'Duration' => @$_REQUEST['Duration'],
            'Distance' => @$_REQUEST['Distance'],
            'CreateDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );
        $updateId = $objPackage->insertData('TB_TravelPlan_Trans_Daywise', $data);
    }

    public function addFlexiPackageCostsheetAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        //echo $this->getRequest()->getParam('id');		
        if ($this->getRequest()->getParam('id') > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;
            //Get Package Itenary
            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            //Get Package Activity
            $flexiPackageActivityList = $objPackage->getFlexiPackageActivityList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            //Get Package Sightseen
            $flexiPackageSightseenList = $objPackage->getFlexiPackageSightseenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
            //Get Package Hotels
            $flexiPackageHotelsList = $objPackage->getFlexiPackageHotelsList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;

            $flexiPackageTransFixed = $objPackage->getFlexiPackageTransFixed($this->getRequest()->getParam('id'));
            $this->view->flexiPackageTransFixed = $flexiPackageTransFixed;

            //Get Package Flight
            $flexiPackageFlight = $objPackage->getFlexiPackageAir($this->getRequest()->getParam('id'));
            $this->view->flexiPackageFlight = $flexiPackageFlight;

            $objTransport = new Travel_Model_TblTransport();
            //Get Vehicle Type List 
            $arrVehicleTypeList = $objPackage->getVehilcleTypeCapacity();
            $this->view->arrVehicleTypeList = $arrVehicleTypeList;

            $arrTransportInventoryList = $objTransport->getAllTransportInventoryList($intLoggedinUserAgencySysId);
            $this->view->arrTransportInventoryList = $arrTransportInventoryList;
            /* echo "<pre>";
              print_r($flexiPackageTransFixed); //PackTypeMask	InclMask
              print_r($arrTransportInventoryList); //PackTypeMask	InclMask
              die(); */
        }
    }

    public function addCustomerPackageCostsheetAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {

            $getitenryID = $objPackage->GetTravelPlanItenaryID($this->getRequest()->getParam('id'));
            $itenararray = array();
            for ($i = 0; $i < count($getitenryID); $i++) {
                $itenararray[] = "'" . $getitenryID[$i]['TPIntSysId'] . "'";
            }

            //print_r($itenararray);

            $implodeitenary = implode(",", $itenararray);
            $flexiPackageList = $objPackage->getCustPackageList($this->getRequest()->getParam('id'));
            $numberoftravler = $flexiPackageList['RoomInfoJson'];
            $this->view->numberoftravler = $numberoftravler;
            $this->view->flexiPackageList = $flexiPackageList;

            $flexiPackageItenList = $objPackage->getCustPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getCustomerPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;

            //Get Package Activity
            $flexiPackageActivityList = $objPackage->getCustPackageActivityList($this->getRequest()->getParam('id'));

            $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            //Get Package Sightseen
            $flexiPackageSightseenList = $objPackage->getCustPackageSightseenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
            //Get Package Hotels
            $flexiPackageHotelsList = $objPackage->getCustPackageHotelsListBYO($implodeitenary);
            $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;

            $flexiPackageTransFixed = $objPackage->getCustPackageTransFixed($this->getRequest()->getParam('id'));
            $this->view->flexiPackageTransFixed = $flexiPackageTransFixed;
            $tpsysID = $this->getRequest()->getParam('id');
            $itenarypkglist = $this->_newpkgmodelObj->GetItenrayID($tpsysID);
            for ($i = 0; $i < count($itenarypkglist); $i++) {
                $tpintsysID[] = $itenarypkglist[$i]['TPIntSysId'];
            }
            $this->view->tpsysID = $tpsysID;
            $travelplanitenaryID = implode("','", $tpintsysID);
            //Get Package Flight
            $flexiPackageFlight = $objPackage->getCustPackageAir($travelplanitenaryID);
            $this->view->flexiPackageFlight = $flexiPackageFlight;

            $objTransport = new Travel_Model_TblTransport();
            //Get Vehicle Type List 
            $arrVehicleTypeList = $objPackage->getVehilcleTypeCapacity();
            $this->view->arrVehicleTypeList = $arrVehicleTypeList;

            $arrTransportInventoryList = $objTransport->getAllTransportInventoryList($intLoggedinUserAgencySysId);
            $this->view->arrTransportInventoryList = $arrTransportInventoryList;
        }
    }

    public function displayCostsheetGridAction() {

        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        //$packageThemeList = $this->_objPkg->getPackageThemeList();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $getData = $this->getRequest()->getPost();

        $tpsysID = $getData['tpsysID'];
        $this->view->PackageCostCalType = $PackageCostCalType = $getData['PackageCostCalType'];
        //ECHO "<PRE>";print_r($getData);
        //        $flexiPackageSightseenList = $objPackage->getCustPackageSightseenListBYO($tpsysID);
        //        $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;

        $flexiPackageItenList = $objPackage->getFlexiPackageItenList($tpsysID);
        $this->view->flexiPackageItenList = $flexiPackageItenList;
        $flexiPackageActivityList = $objPackage->GetOnlyCustPackageActivityList($tpsysID);
        $this->view->flexiPackageActivityList = $flexiPackageActivityList;
        $getservicedetail = $objPackage->GetAllService($tpsysID);
        $this->view->getservicedetail = $getservicedetail;
        $getalltransport = $objPackage->GetAllTransportTypeBYO($tpsysID, 1);
        $this->view->getalltransport = $getalltransport;

        $catID = $getData['catID'];
        $itnID = $getData['itnID'];
        $numoftraveler = $getData['numoftraveler'];
        $this->view->tpsysID = $tpsysID;
        $this->view->catID = $catID;
        $this->view->itnID = $itnID;
        $this->view->MealPlanId = isset($getData['MealPlanId']) ? $getData['MealPlanId'] : 0;
        $this->view->numoftraveler = $numoftraveler;
    }

    public function pkgcostsheetAction() {
        $objAgency = new Travel_Model_TblAgency();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $sessionLogin_user_url = new Zend_Session_Namespace('sessionLogin_user');
        if (isset($this->IsB2CSite) && (int) $this->IsB2CSite == 1) {
            $wesiteArray = $objPackage->getAgencgWebsite($intLoggedinUserAgencySysId);
            //echo "<pre>";print_R($wesiteArray);exit;
        }
        $this->view->websiteArray = $wesiteArray;
        $this->view->IsB2CSite = $this->IsB2CSite;
        $this->view->IsTG = $this->IsTG;
        $this->view->IsGTXNetwork = $this->IsGTXNetwork;
        $this->view->IsGTXNetworkWeb = $this->IsGTXNetworkWeb;

        if ($this->getRequest()->getParam('id') > 0) {
            $tpsysID = $this->getRequest()->getParam('id');
            $flexiPackageList = $objPackage->getPackageListById($this->getRequest()->getParam('id'));
            $pkgagencysysID = $flexiPackageList['AgencySysId'];
            if ($pkgagencysysID == $intLoggedinUserAgencySysId) {

                $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
                $this->view->flexiPackageItenList = $flexiPackageItenList;

                $itemainarray = array_column($flexiPackageItenList, 'TPIntSysId');
                $implodeitenary = implode(', ', $itemainarray);

                $packagecategory = $objPackage->GetMasterPackageList();

                $this->view->packtypemask = $packagecategory;
                $getmastermptype = $objPackage->GetMasterMPType();
                $this->view->getmastermptype = $getmastermptype;
                $numberoftravler = $flexiPackageList['RoomInfoJson'];
                $this->view->numberoftravler = $numberoftravler;
                $this->view->flexiPackageList = $flexiPackageList;
                $getservicedetail = $objPackage->GetAllService($this->getRequest()->getParam('id'));
                $this->view->getservicedetail = $getservicedetail;
                $flexiPackageActivityList = $objPackage->GetOnlyCustPackageActivityList($this->getRequest()->getParam('id'));
                $this->view->flexiPackageActivityList = $flexiPackageActivityList;
                //Get Package Sightseen
                $flexiPackageSightseenList = $objPackage->getCustPackageSightseenListBYO($this->getRequest()->getParam('id'));
                $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
                //Get Package Hotels
                $flexiPackageHotelsList = array();
                if (!empty($implodeitenary)) {
                    $flexiPackageHotelsList = $objPackage->getFlexiPackageHotelsListBYO(@$implodeitenary);
                }

                $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;
                $pkgcategorymask = $flexiPackageList['BYOPackTypeMask'];
                $PackageCostCalType = $flexiPackageList['PackageCostCalType']; // Added By Pardeep For Calculating Cost By MealPlan Or By Lowes Cost OF Hotel

                $totalDaysNightsArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageTotalNoOfDays($flexiPackageItenList);
                $totaldays = $totalDaysNightsArr['totaldays'];
                $totalnight = $totalDaysNightsArr['totalnights'];
                if ($PackageCostCalType == 1) {
                    $PossibleCombinationsOfMealPlanArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPossibleCombinationsOfMealPlan($flexiPackageHotelsList, $totalnight);
                }
                $AvailableCategoryInCurrentPackageArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAvailableCategoryInCurrentPackage($packagecategory, $pkgcategorymask);
                $objPackage->updateIsSelectedOnPkgHotelByoReverse($itemainarray);
                //             echo $PackageCostCalType;
                if ($PackageCostCalType == 1) {
                    foreach ($PossibleCombinationsOfMealPlanArr as $PackCategoryId => $PackCategoryTitle) {
                        $availableMealPlanArr = $PossibleCombinationsOfMealPlanArr[$PackCategoryId];
                        foreach ($availableMealPlanArr as $availableMealPlanId => $availableMealPlanName) {
                            $insertselected = $objPackage->updateIsSelectedOnPkgHotelByo($tpsysID, $PackCategoryId, $totalnight, $availableMealPlanId);
                        }
                    }
                } else {
                    foreach ($AvailableCategoryInCurrentPackageArr as $PackCategoryId => $PackCategoryTitle) {
                        $insertselected = $objPackage->updateIsSelectedOnPkgHotelByo_Lowest($tpsysID, $PackCategoryId, $totalnight, 0);
                    }
                }
                if (!empty($implodeitenary)) {
                    $selectedflexiPackageHotelsList = $objPackage->getSelectedPackageHotelsListBYO(@$implodeitenary);
                }

                $this->view->selectedflexiPackageHotelsList = $selectedflexiPackageHotelsList;
                $this->view->tpsysID = $tpsysID;
                $getmarketwisepvtrate = $objPackage->GetMarketWisePvtRateBYO($tpsysID);
                $this->view->getmarketwisepvtrate = $getmarketwisepvtrate;
                $this->view->getItineraryFixedFlightInventoryByo = $getItineraryFixedFlightInventoryByo = $objPackage->getItineraryFixedFlightInventoryByo($tpsysID);
                $this->view->FromDestinationFixedInventoryData = $FromDestinationFixedInventoryData = $objPackage->getFromDestinationFixedInventoryData($tpsysID);
                $objCurrency = new Travel_Model_TblCurrency();
                $this->view->currencyDetail = $currencyDetail = $objCurrency->getCurrencySymbolByIdsList();
                $checkExpertDestination = new Gtxwebservices_Model_Currency();
                $this->view->checkExpertDestination = $checkExpertDestination->checkDestinationAccoringToNetWork($tpsysID, $intLoggedinUserAgencySysId);
                $this->view->getTcsSettingDetail = $getTcsSettingDetail = $objAgency->getTcsSettingDetail($intLoggedinUserAgencySysId);
                $this->view->getTravelPlanTaxSettingDetail = $getTravelPlanTaxSettingDetail = $objPackage->getTravelPlanTaxSettingDetail($tpsysID);
                $markupMdl = new Markup_Model_Markup();
                $this->view->getTaxSettingDetail = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 0, 1);
                $this->view->getTaxSettingDetailPackage = $getTaxSettingDetailPackage = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 1, 0, 5, 1);
            } else {
                $this->_redirect('/publicpackage/pagenotfound/');
            }
        }
    }

    public function checkpkgcostsheetAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $this->getRequest()->getParam('tpsysID');
        $MarkType = $this->getRequest()->getParam('MarkType');
        $result = $objPackage->CheckMarketWisePvtGroupBYO($tpsysID, $MarkType);
        //print_r($result);
        if (!empty($result)) {
            $response = array('success' => true, 'message' => 'successfully');
            echo json_encode($response);
            exit;
        } else {
            $response = array('success' => false, 'message' => 'Oops there is no mark up available', 'MarkType' => $MarkType, 'tpsysID' => $tpsysID);
            echo json_encode($response);
            exit;
        }
    }

    public function deletepkgcostsheetAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $tpsysID = $getData['tpsysID'];
        $catID = $getData['catID'];
        $data = array(
            'IsMarkForDel' => '1',
        );

        $where = array(
            'TPIntSysId = ? ' => $tpsysID,
            'MarketPlaceId = ? ' => $catID
        );

        $updateId = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $data, $where);
    }

    public function deletepkgcostsheetbydateAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $tpsysID = isset($getData['tpsysID']) ? $getData['tpsysID'] : '';
        $desId = isset($getData['desId']) ? $getData['desId'] : '';
        $date = isset($getData['date']) ? trim($getData['date']) : '';
        $data = array(
            'IsMarkForDel' => '1',
        );

        $where = array(
            'TPIntSysId = ? ' => $tpsysID,
            'FixedInvnSysId = ? ' => $desId,
            'FromDate = ? ' => $date
        );
        $whereInv = array(
            'TPSysId = ? ' => $tpsysID,
            'FixedInvnSysId = ? ' => $desId,
            'FromDate = ? ' => $date
        );

        if ($tpsysID != '' && $date != '' && $desId != '') {
            $updateId = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $data, $where);
            $updateId = $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory', $data, $whereInv);
        }
    }

    public function costsheetAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {

            $getitenryID = $objPackage->GetTravelPlanItenaryID($this->getRequest()->getParam('id'));
            $itenararray = array();
            $itemainarray = array();
            for ($i = 0; $i < count($getitenryID); $i++) {
                $itenararray[] = "'" . $getitenryID[$i]['TPIntSysId'] . "'";
                $itemainarray[] = $getitenryID[$i]['TPIntSysId'];
            }

            //  $getflightitnID = $objPackage->GetAllFlightItn($this->getRequest()->getParam('id'));


            $this->view->itineraryID = $itemainarray;
            $implodeitenary = implode(",", $itenararray);
            $flexiPackageList = $objPackage->getCustPackageList($this->getRequest()->getParam('id'));
            $numberoftravler = $flexiPackageList['RoomInfoJson'];
            $this->view->numberoftravler = $numberoftravler;
            $this->view->flexiPackageList = $flexiPackageList;

            $flexiPackageItenList = $objPackage->getCustPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getCustomerPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;

            //Get Package Activity
            $flexiPackageActivityList = $objPackage->getCustPackageActivityList($this->getRequest()->getParam('id'));

            $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            //Get Package Sightseen
            $flexiPackageSightseenList = $objPackage->getCustPackageSightseenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
            //Get Package Hotels
            $flexiPackageHotelsList = $objPackage->getCustPackageHotelsListBYO($implodeitenary);
            $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;

            $flexiPackageTransFixed = $objPackage->getCustPackageTransFixed($this->getRequest()->getParam('id'));
            $this->view->flexiPackageTransFixed = $flexiPackageTransFixed;
            $tpsysID = $this->getRequest()->getParam('id');
            $itenarypkglist = $this->_newpkgmodelObj->GetItenrayID($tpsysID);
            for ($i = 0; $i < count($itenarypkglist); $i++) {
                $tpintsysID[] = $itenarypkglist[$i]['TPIntSysId'];
            }
            $this->view->tpsysID = $tpsysID;
            $travelplanitenaryID = implode("','", $tpintsysID);
            //Get Package Flight
            $flexiPackageFlight = $objPackage->getCustPackageAir($travelplanitenaryID);
            $this->view->flexiPackageFlight = $flexiPackageFlight;

            $objTransport = new Travel_Model_TblTransport();
            //Get Vehicle Type List 
            $arrVehicleTypeList = $objPackage->getVehilcleTypeCapacity();
            $this->view->arrVehicleTypeList = $arrVehicleTypeList;

            //$arrTransportInventoryList = $objTransport->getAllTransportInventoryList($intLoggedinUserAgencySysId);
            // $this->view->arrTransportInventoryList = $arrTransportInventoryList;
        }
    }

    public function addserviceAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $postdata = $this->getRequest()->getPost();
        $totalrow = $postdata['countdiv'];
        $tpsysID = $postdata['tpsysID'];
        $custsysID = $postdata['customersysID'];

        $createddate = date('Y-m-d');
        for ($j = 0; $j < $totalrow; $j++) {
            $data = array(
                'TPIntSysId' => $tpsysID,
                'CustomerSysId' => $custsysID,
                'SupplierSysId' => $postdata['suppliersysID'][$j],
                'ServiceTitle' => $postdata['service_name'][$j],
                'ServiceType' => $postdata['search_inclusions'][$j],
                'Comment' => $postdata['comments'][$j],
                'CurrencyType' => $postdata['currency'][$j],
                'RateType' => $postdata['ratetype'][$j],
                'PaxCount' => $postdata['totalpax'][$j],
                'Cost' => $postdata['totalcost'][$j],
                'IsCostInclInTP' => 1,
                'IsActive' => 1,
                'IsMarkForDelete' => 0,
                'IsApproved' => 1,
                'CreateDate' => $createddate,
                'UpdateDate' => $createddate
            );
            $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_OtherServices', $data);
        }
    }

    public function addservicebyoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $postdata = $this->getRequest()->getPost();

        $totalrow = $postdata['countdiv'];
        $tpsysID = $postdata['tpsysID'];
        $custsysID = $postdata['customersysID'];
        $x = 3; // Amount of digits
        $min = pow(10, $x);
        $max = pow(10, $x + 1) - 1;
        $value = rand($min, $max);
        $toCurrency = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->getLoggedInAgencyBaseCurrencyId();

        $createddate = date('Y-m-d');
        for ($j = 0; $j < $totalrow; $j++) {
            $totalBaseCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->convertRatetoBaseCurrency($postdata['totalcost'][$j], $postdata['currency'][$j], $toCurrency);
            $data = array(
                'TPIntSysId' => $tpsysID,
                'VersionId' => $value,
                'SupplierSysId' => $postdata['suppliersysID'][$j],
                'ServiceTitle' => $postdata['service_name'][$j],
                'ServiceType' => $postdata['search_inclusions'][$j],
                'Comment' => $postdata['comments'][$j],
                'CurrencyType' => $postdata['currency'][$j],
                'RateType' => $postdata['ratetype'][$j],
                'PaxCount' => 0,
                'Cost' => $postdata['totalcost'][$j],
                'BaseCost' => $totalBaseCost,
                'IsOptionalServices' => isset($postdata['IsOptionalServices']) ? $postdata['IsOptionalServices'] : 0,
                'IsCostInclInTP' => ($postdata['IsOptionalServices'] == 1) ? 1 : 0, //$postdata['IsOptionalServices'] = 1 means cost is always included in package
                'IsActive' => 1,
                'IsMarkForDelete' => 0,
                'IsApproved' => 1,
                'CreateDate' => $createddate,
                'UpdateDate' => $createddate,
                'ChildCost' => 0,
                'AdultCost' => 0
            );

            $updateId = $objPackage->insertData('TB_TravelPlan_OtherServices', $data);
        }
    }

    public function addFlexiPackageReadymadeCostsheetAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $objAgency = new Travel_Model_TblAgency();
        $wesiteArray = array();

        $this->view->IsB2CSite = $this->IsB2CSite;
        $this->view->IsTG = $this->IsTG;
        $this->view->IsGTXNetwork = $this->IsGTXNetwork;
        $this->view->IsGTXNetworkWeb = $this->IsGTXNetworkWeb;
        $params = Zend_Controller_Front::getInstance()->getRequest()->getParams();
        $tpsysID = $this->getRequest()->getParam('id', 0);
        if ($tpsysID > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($tpsysID);
            if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            if(isset($flexiPackageList['BusSysId']) && $flexiPackageList['BusSysId'] > 0){
                $objTblBus = new Travel_Model_TblBus();
                $busSeat = $objTblBus->busSeatMap($flexiPackageList['BusSysId'], $this->intLoggedinUserAgencySysId);
                $this->view->TotalSeats = isset($busSeat['BusData']['TotalSeats'])?$busSeat['BusData']['TotalSeats']:0;
            }
            
           
            $this->view->flexiPackageList = $flexiPackageList;
            $packageCancelPolicyList = $objPackage->getPackageCancelPolictyList($tpsysID);
            $this->view->packageCancelPolicyList = $packageCancelPolicyList;
            $this->view->getTravelPlanTaxSettingDetail = $getTravelPlanTaxSettingDetail = $objPackage->getTravelPlanTaxSettingDetail($tpsysID);
            $checkExpertDestination = new Gtxwebservices_Model_Currency();
            $this->view->checkExpertDestination = $checkExpertDestination->checkDestinationAccoringToNetWork($tpsysID, $intLoggedinUserAgencySysId);
            $this->view->params = $params;
            $this->view->todate = $todate;
            if (isset($this->IsB2CSite) && (int) $this->IsB2CSite == 1) {
                $wesiteArray = $objPackage->getAgencgWebsite($flexiPackageList['AgencySysId']);
            }
            $this->view->websiteArray = $wesiteArray;
        }
        $markupMdl = new Markup_Model_Markup();
        $this->view->getTaxSettingDetail = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 0, 1);
        $this->view->getTaxSettingDetailPackage = $getTaxSettingDetailPackage = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 1, 0, 5, 1);
        $this->view->getTcsSettingDetail = $getTcsSettingDetail = $objAgency->getTcsSettingDetail($this->intLoggedinUserAgencySysId);
    }

    public function addFlexiPackageReadymadeCostsheetNewAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $this->view->IsB2CSite = $this->IsB2CSite;
        $this->view->IsTG = $this->IsTG;
        $this->view->IsGTXNetwork = $this->IsGTXNetwork;
        $this->view->IsGTXNetworkWeb = $this->IsGTXNetworkWeb;
        $params = Zend_Controller_Front::getInstance()->getRequest()->getParams();

        //echo $this->getRequest()->getParam('id');		
        if ($this->getRequest()->getParam('id') > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            $this->view->flexiPackageList = $flexiPackageList;

            $packageCancelPolicyList = $objPackage->getPackageCancelPolictyList($this->getRequest()->getParam('id'));
            $this->view->packageCancelPolicyList = $packageCancelPolicyList;
            $this->view->params = $params;
        }
    }

    public function addflexipackagereadymadecostsheetsearchforratesAction() {
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $this->view->IsB2CSite = $this->IsB2CSite;
        $this->view->IsTG = $this->IsTG;
        $this->view->IsGTXNetwork = $this->IsGTXNetwork;
        $this->view->IsGTXNetworkWeb = $this->IsGTXNetworkWeb;
        $params = Zend_Controller_Front::getInstance()->getRequest()->getParams();
        //print_r($params);
        $this->getRequest()->getParam('id');
        if ($this->_request->isXmlHttpRequest()) {
            if ($this->getRequest()->getParam('id') > 0) {
                $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
                if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                    $this->_redirect('publicpackage/pagenotfound');
                    exit;
                }
                $this->view->flexiPackageList = $flexiPackageList;

                $packageCancelPolicyList = $objPackage->getPackageCancelPolictyList($this->getRequest()->getParam('id'));
                $this->view->packageCancelPolicyList = $packageCancelPolicyList;
                $this->render('addflexipackagereadymadecostsheetsearchforrates');
            }
        }
    }

    public function addDayItenaryAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function addCustomerDayItenaryAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function addPackageDayItenaryAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function addDayItenaryReadymadeAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost();
            $packageId = $post['packageId'];
            $cityid = isset($post['cityId']) ? $post['cityId'] : '0';
            $reslastint = json_decode(base64_decode($post['lastintres']), true);
            $reseconomyid = json_decode(base64_decode($post['economyidtres']), true);
            $flexiPackageList = $objPackage->getFlexiPackageList($post['packageId']);
            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($post['packageId']);
            $reversePackageItenList = array_reverse($flexiPackageItenList);
            //          $maxSeq =   max(array_column($flexiPackageItenList, 'Sequence'));
            //            echo '<pre>'.$maxSeq;
            //            print_r($post);
            //            print_r($reslastint); print_r(array_reverse($flexiPackageItenList));
            $isBetween = (isset($post['isBetween'])) ? (int) $post['isBetween'] : 0;
            $fromVal = (isset($post['fromval'])) ? $post['fromval'] : 0;
            $toval = (isset($post['toval'])) ? $post['toval'] : 0;
            $currentDate = date('Y-m-d');
            if (isset($reversePackageItenList[0]['StartDate']) && !empty($reversePackageItenList[0]['StartDate'])) {
                $StartDate = $reversePackageItenList[0]['StartDate']->format('Y-m-d');
            } else {
                $StartDate = $currentDate;
            }
            $StartDateNew = date('Y-m-d H:i', strtotime($StartDate . ' + ' . ($fromVal - 1) . ' days'));
            $EndDateNew = date('Y-m-d H:i', strtotime($StartDate . ' + ' . ($toval - 1) . ' days'));
            $dcnt = '1';
            $lastinsertidarr = array();
            $intLastInsertId = '';
            for ($day = $fromVal; $day <= $toval; $day++) {

                for ($m = 0; $m < count($reslastint); $m++) {
                    $packId = $reslastint[$m];
                    $flexiPackageItenData = array(
                        'TPSysId' => isset($packId) ? $packId : '0',
                        'Sequence' => isset($day) ? $day : '0',
                        'AgencySysId' => $flexiPackageList['AgencySysId'],
                        'Title' => '',
                        'Details' => '',
                        'InclMask' => isset($flexiPackageList['InclMask']) ? $flexiPackageList['InclMask'] : '0',
                        'InclCatMask' => '0',
                        'ExclusionMask' => isset($flexiPackageList['ExclusionMask']) ? $flexiPackageList['ExclusionMask'] : '0',
                        'InclCatMask' => '0',
                        'PackInclMask' => isset($flexiPackageList['InclMask']) ? $flexiPackageList['InclMask'] : '0',
                        'PackTypeMask' => isset($flexiPackageList['PackTypeMask']) ? $flexiPackageList['PackTypeMask'] : '0',
                        'ImageTN' => '0',
                        'ImgForList' => '0',
                        'ImgeDetails' => '0',
                        'StartDate' => $StartDateNew,
                        'EndDate' => $EndDateNew,
                        'Rating' => '0',
                        'TotalMinDays' => $fromVal,
                        'TotalMaxDays' => $toval,
                        'Hotels' => 1,
                        'PopularPlaces' => '0',
                        'CitySysId' => isset($post['cityId']) ? $post['cityId'] : '0',
                        'Cities' => isset($post['city']) ? $post['city'] : '0',
                        'Countries' => '0',
                        'CreateDate' => $currentDate,
                        'UpdateDate' => $currentDate,
                        'IsMarkForDel' => '0',
                        'IsActive' => '1'
                    );
                    $intLastInsertId = $objPackage->addFlexiPackageIten($flexiPackageItenData);

                    $lastinsertidarr[] = $intLastInsertId;
                    $flexiPackageItenPalceData = array(
                        'TPSysId' => isset($packId) ? $packId : '0',
                        'TPIntSysId' => isset($intLastInsertId) ? $intLastInsertId : '0',
                        'AgencySysId' => $flexiPackageList['AgencySysId'],
                        'PlaceSysId' => isset($post['cityId']) ? $post['cityId'] : '0',
                        'Sequence' => isset($day) ? $day : '0',
                        'CreateDate' => $currentDate,
                        'UpdateDate' => $currentDate,
                        'IsMarkForDel' => '0',
                        'IsActive' => '1'
                    );
                    $placeLastInsertId = $objPackage->addFlexiPackageItenPlaces($flexiPackageItenPalceData);
                }
                $intLastInsertId = $lastinsertidarr[0];

                //echo '<pre>';
                //print_r(@$lastinsertidarr);
                //die();
                $dcnt++;
            }

            if ($isBetween == 1) {
                $childpackarr = $objPackage->getChildPackageList($packageId);
                $packageIdsArr = array_column($childpackarr, 'TPSysId');

                foreach ($packageIdsArr as $key => $value) {
                    $flexiPackageItenList = $objPackage->getFlexiPackageItenList($value);
                    $count = 0;

                    $TotalMinDaysPre = $TotalMinDaysPreCh = $toval;
                    $SequencePre = $toval;
                    foreach ($flexiPackageItenList as $iKey => $iVal) {

                        $TotalMinDays = $iVal['TotalMinDays'];
                        $TotalMaxDays = $iVal['TotalMaxDays'];
                        $cityidCheck = $iVal['CitySysId'];
                        $TPIntSysId = $iVal['TPIntSysId'];
                        $diffre = $TotalMaxDays - $TotalMinDays;
                        //                        echo "<pre>";print_r($TotalMinDays);
                        //                        echo "<pre>";print_r($fromVal);
                        //                        echo "<pre>";print_r($TPIntSysId);
                        //                        echo "<pre>";print_r($lastinsertidarr);
                        if ($TotalMinDays >= $fromVal && !in_array($TPIntSysId, $lastinsertidarr)) {
                            if ($TotalMinDays != $TotalMinDaysPreCh && $cityid != $cityidCheck && $count > 0) {
                                $TotalMinDaysPre = $TotalMaxDaysPre;
                                $SequencePre = $TotalMaxDaysPre;
                            } else {
                                if ($count > 0) {
                                    $SequencePre++;
                                }
                            }
                            $itndataI = array(
                                'Sequence' => $SequencePre,
                                'TotalMinDays' => $TotalMinDaysPre,
                                'TotalMaxDays' => $TotalMinDaysPre + $diffre,
                                'UpdateDate' => date('Y-m-d')
                            );

                            $whereI = array('TPIntSysId = ? ' => $TPIntSysId);
                            //                            echo "<pre>";print_r($itndataI);
                            //                            echo "<pre>";print_r($whereI);
                            $objPackage->updateData('TB_TravelPlan_Itenary', $itndataI, $whereI);

                            $itndataIPM = array(
                                'Sequence' => (int) $SequencePre,
                                'UpdateDate' => date('Y-m-d')
                            );
                            $objPackage->updateData('TB_TravelPlan_Itenary_Places', $itndataIPM, $whereI);

                            $TotalMaxDaysPre = $TotalMinDaysPre + $diffre;
                            $cityid = $cityidCheck;
                            $count++;
                        }
                    }
                }
            }
            //die('here');
        }
    }

    public function addDayWithoutitenaryReadymadeAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function updateDayItenaryAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $flexiPackageItenData = array(
            'Title' => @$_REQUEST['title'],
            'Details' => @$_REQUEST['detail'],
            'UpdateDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );
        $updateId = $objPackage->updateFlexiPackageDayItenary(@$_REQUEST['packageId'], @$_REQUEST['day'], @$_REQUEST['itenid'], $flexiPackageItenData);
        //$updateId = $objPackage->updateFlexiPackageDayItenary($flexiPackageItenData,$post['code']);
    }

    public function updateCustomerDayItenaryAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $flexiPackageItenData = array(
            'Title' => @$_REQUEST['title'],
            'Details' => @$_REQUEST['detail'],
            'UpdateDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );
        $updateId = $objPackage->updateCustPackageDayItenary(@$_REQUEST['packageId'], @$_REQUEST['day'], @$_REQUEST['itenid'], $flexiPackageItenData);
        //$updateId = $objPackage->updateFlexiPackageDayItenary($flexiPackageItenData,$post['code']);
    }

    public function updateCustomerDayItenaryByoAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $objItineraryDescription = new Travel_Model_TblItineraryDescription();
        $currentDate = date('Y-m-d H:i:s');
        $saveasMaster = isset($_REQUEST['saveasMasterCheck']) ? (int) $_REQUEST['saveasMasterCheck'] : 0;
        $startCityId_ = isset($_REQUEST['startCityId_']) ? (int) $_REQUEST['startCityId_'] : 0;
        $endCityId_ = isset($_REQUEST['endCityId_']) ? (int) $_REQUEST['endCityId_'] : 0;
        $itndataArrTitle = @$_REQUEST['title'];
        $itndataArrDetails = @$_REQUEST['detail'];

        $flexiPackageItenData = array(
            'Title' => @$_REQUEST['title'],
            'Details' => @$_REQUEST['detail'],
            'UpdateDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );
        $updateId = $objPackage->updateCustPackageDayItenaryBYO(@$_REQUEST['packageId'], @$_REQUEST['day'], @$_REQUEST['itenid'], $flexiPackageItenData);
        //$updateId = $objPackage->updateFlexiPackageDayItenary($flexiPackageItenData,$post['code']);

        $insert = array();

        //                                if ($saveasMaster != 0 && trim($itndataArrTitle) != '' && $itndataArrDetails != '') {
        //                                    $insert = array(
        //                                        'AgencySysId' => $intLoggedinUserAgencySysId,
        //                                        'StartCity' => (int) $startCityId_,
        //                                        'DestinationCity' => (int) $endCityId_,
        //                                        'Title' => $itndataArrTitle,
        //                                        'Description' => $itndataArrDetails,
        //                                        'Iswebsite' => 0,
        //                                        'IsActive' => 1,
        //                                        'IsMarkForDel' => 0,
        //                                    );
        //
        //                                    try {
        //                                        $ItineraryId = $objItineraryDescription->addItineraryDescription($insert);
        //                                    } catch (Zend_Exception $e) {
        //                                        echo $e->getMessage();
        //                                        exit;
        //                                    }
        //                                }
    }

    public function deleteCustomerPackageFlightAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $flexiPackageItenData = array(
            'TPIntSysId' => @$_REQUEST['TPIntSysId'],
            'VersionId' => @$_REQUEST['VersionId'],
        );
        $updateId = $objPackage->UpadteTransportFlight(@$_REQUEST['TPIntSysId'], @$_REQUEST['VersionId']);
    }

    public function deleteCustomerPackageFlightByoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $flexiPackageItenData = array(
            'TPIntSysId' => @$_REQUEST['TPIntSysId'],
            'VersionId' => @$_REQUEST['VersionId'],
        );
        $updateId = $objPackage->UpadteTransportFlightBYO(@$_REQUEST['TPIntSysId'], @$_REQUEST['VersionId']);
    }

    public function deleteTransFlightAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $updateId = $objPackage->UpadteFlightFixedCost(@$_REQUEST['transID']);
    }

    public function deleteTransFlightByoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $updateId = $objPackage->UpadteFlightFixedCostByo(@$_REQUEST['transID']);
    }

    public function updateflightapiAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        //  tpsysID,updatevalue

        $currentDate = date('Y-m-d H:i:s');
        $updateId = $objPackage->UpadteFlightFixedCost(@$_REQUEST['transID']);
    }

    public function deleteDayItenaryAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'IsMarkForDel' => '1',
            'IsActive' => '0',
            'UpdateDate' => @$currentDate
        );
        $ssdata = array(
            'IsMarkForDelete' => '1',
            'IsActive' => '0',
            'UpdateDate' => @$currentDate
        );
        $where = array(
            'TPIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
            'TPSysId = ? ' => @$_REQUEST['TPSysId'],
            'Sequence = ? ' => @$_REQUEST['sequence']
        );
        $accomwhere = array(
            'TPIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
            'XRefCityId = ? ' => @$_REQUEST['cityId'],
            'SeqId = ? ' => @$_REQUEST['sequence']
        );
        $actwhere = array(
            'TPIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
            'CityId = ? ' => @$_REQUEST['cityId'],
            'Sequence = ? ' => @$_REQUEST['sequence']
        );
        $sswhere = array(
            'InvnItemSysId = ? ' => @$_REQUEST['TPIntSysId'],
            'CityId = ? ' => @$_REQUEST['cityId'],
            'SeqId = ? ' => @$_REQUEST['sequence']
        );
        $updateId = $objPackage->updateData('TB_TravelPlan_Itenary', $data, $where);
        $updateId1 = $objPackage->updatePackageItenDay($_REQUEST['TPSysId'], $_REQUEST['sequence']);
        $accomupdateId = $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $data, $accomwhere);
        $actupdateId = $objPackage->updateData('TB_TravelPlan_Itenary_Events', $data, $actwhere);
        $ssupdateId = $objPackage->updateData('TB_TravelPlan_SightSeeing', $ssdata, $sswhere);
        exit;
    }

    public function updateDayItenaryReadymadeAction() {

        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $flexiPackageItenData = array(
            'Title' => @$_REQUEST['title'],
            'Details' => @$_REQUEST['detail'],
            'UpdateDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );
        $reslastint = json_decode(base64_decode(@$_REQUEST['lastintres']), true);
        $PackIds = implode(',', $reslastint);
        $itenArray = $objPackage->getPackagesItenId($PackIds, $_REQUEST['day'], $_REQUEST['cityId']);
        foreach ($itenArray as $packitnday) {
            $packitndayid[] = $packitnday['TPIntSysId'];
        }
        if (count(@$packitndayid) < 1) {
            $packItenId = @$_REQUEST['itenid'];
            $updateId = $objPackage->updateFlexiPackageReadymadeItenary(@$packItenId, @$_REQUEST['day'], $flexiPackageItenData);
        } else {
            for ($m = 0; $m < count(@$packitndayid); $m++) {
                $packItenId = @$packitndayid[$m];
                $updateId = $objPackage->updateFlexiPackageReadymadeItenary(@$packItenId, @$_REQUEST['day'], $flexiPackageItenData);
            }
        }
        exit;
        //$updateId = $objPackage->updateFlexiPackageDayItenary($flexiPackageItenData,$post['code']);
    }

    public function updatePackageCostAction() {
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'UpdateDate' => @$currentDate,
            'Price' => @$_REQUEST['cost']
        );
        $where = array('TPSysId = ? ' => @$_REQUEST['packageId']);
        $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
    }

    public function updatepricerangeAction() {
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $pricerange = $this->_request->getParam('pricerange') ? $this->_request->getParam('pricerange') : '';
        $tpID = $this->_request->getParam('tpID') ? $this->_request->getParam('tpID') : '';
        $multipackres = $this->_request->getParam('multipackres');
        $reslastint = json_decode(base64_decode($multipackres), true);
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'PriceRange' => $pricerange
        );
        foreach ($reslastint as $tpID) {
            $where = array('TPSysId = ? ' => @$tpID);
            $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
        }

        //         $multipackres = $this->getRequest()->getParam('multipackres');
        //        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */

        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => 8,
            'UserSysId' => $this->intLoggedinUserId
        );
        Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);

        /* -------------------- end insert data for contributor tab----------------------- */
    }

    public function getFinalCityHotelAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function getAgentCityHotelAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $tpID = $this->_request->getParam('packageId');
        $cityname = $this->_request->getParam('cityname');
        $itenaryID = $objPackage->GetTravelPlanItenaryIDByCity($tpID, $cityname);
        $this->view->itenaryID = $itenaryID;
    }

    public function getAgentCityHotelCustomerAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $tpID = $this->_request->getParam('packageId');
        $tpitenaryID = $this->_request->getParam('tpintsysID');
        $cityname = $this->_request->getParam('cityname');
        $itenaryID = $objPackage->GetTravelPlanItenaryIDByCity($tpID, $cityname);
        $this->view->itenaryID = $itenaryID;
    }

    ########## Code Added By Shobhit ######################

    public function hotelsearchformAction() {
        $this->view->layout()->disableLayout();
        $packageId = $this->_request->getParam('packageId');
        $objPackage = new Travel_Model_TblPackage();
        $getroominfo = $objPackage->getroominfo($packageId);
        $tpitenaryID = $this->_request->getParam('tpintsysID');
        $cityname = $this->_request->getParam('cityname');
        $cityId = $this->_request->getParam('cityId');
        $day = $this->_request->getParam('day');
        $this->view->packageId = $packageId;
        $this->view->cityname = $cityname;
        $this->view->cityId = $cityId;
        $this->view->itenaryID = $tpitenaryID;
        $this->view->day = $day;
    }

    public function hotelsearchformpkgAction() {
        $this->view->layout()->disableLayout();
        $packageId = $this->_request->getParam('packageId');
        $objPackage = new Travel_Model_TblPackage();
        $getroominfo = $objPackage->getroominfo($packageId);
        $tpitenaryID = $this->_request->getParam('tpintsysID');
        $cityname = $this->_request->getParam('cityname');
        $pkgcategory = $this->_request->getParam('pkgcategory');
        $this->view->pkgcategory = $pkgcategory;
        $cityId = $this->_request->getParam('cityId');
        $day = $this->_request->getParam('day');
        $this->view->packageId = $packageId;
        $this->view->cityname = $cityname;
        $this->view->cityId = $cityId;
        $this->view->itenaryID = $tpitenaryID;
        $this->view->day = $day;
    }

    public function getallitineraryAction() {
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        //$this->view->layout()->disableLayout();
        $packageId = $this->_request->getParam('packageId');
        $objPackage = new Travel_Model_TblPackage();
        //$getroominfo = $objPackage->getroominfo($packageId);
        $tpitenaryID = $this->_request->getParam('itnID');
        $objPackage = new Travel_Model_TblPackage();
        $getallitemscount = $objPackage->GetAllItemsCount($tpitenaryID);
        echo $getallitemscount;
    }

    public function getallitinerarybyoAction() {
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        //$this->view->layout()->disableLayout();
        $packageId = $this->_request->getParam('packageId');
        $objPackage = new Travel_Model_TblPackage();
        //$getroominfo = $objPackage->getroominfo($packageId);
        $tpitenaryID = $this->_request->getParam('itnID');
        $objPackage = new Travel_Model_TblPackage();
        $getallitemscount = $objPackage->GetAllItemsCountBYO($tpitenaryID);
        echo $getallitemscount;
    }

    public function displaycathotelAction() {
        $this->_helper->layout->disableLayout();
        $catID = $this->_request->getParam('catID');
        $itnID = $this->_request->getParam('itnID');
        $cityID = $this->_request->getParam('cityID');
        $tpsysID = $this->_request->getParam('tpsysID');

        $objPackage = new Travel_Model_TblPackage();
        $this->view->tpintID = $itnID;
        $this->view->tpsysID = $tpsysID;
        $getinventoryhotel = $objPackage->GetHotelsByCategory($catID, $itnID, $cityID);
        $this->view->invhoteldetail = $getinventoryhotel;
    }

    public function addhotelitenaryAction() {
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $AgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $invID = $this->_request->getParam('invID');
        $selectintID = $this->_request->getParam('selectintID');
        $itnID = $this->_request->getParam('itnID');
        $cityID = $this->_request->getParam('cityID');
        $adults = $this->_request->getParam('adults');
        $child = $this->_request->getParam('child');
        $checkindate = $this->_request->getParam('chkinformdate');
        $checkoutdate = $this->_request->getParam('chkoutformatdate');
        $totalpax = $adults + $child;
        $totalroom = $this->_request->getParam('totalroom');
        $source = $this->_request->getParam('source');
        $memberinfo = $this->_request->getParam('memberinfo');
        $daysnum = $this->_request->getParam('daysnum');
        $roominfo = $this->_request->getParam('roominfo');
        $roomtypeID = $this->_request->getParam('roomtypeID');
        $roomtypename = $this->_request->getParam('roomtypename');
        $roominfodecode = json_decode($roominfo, 1);

        $totaladultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfodecode); $k++) {
            $totaladultcount = $totaladultcount + $totaladultcount + $roominfodecode[$k]['adult'];
            $childcount = $childcount + $roominfodecode[$k]['child']['childcount'];
        }

        $totalpax = $totaladultcount + $childcount;

        $totalprice = $this->_request->getParam('totalprice');
        $suppliername = $this->_request->getParam('suppliername');
        $star = $this->_request->getParam('star');
        $hotelname = $this->_request->getParam('hotelname');
        $pkgID = $this->_request->getParam('pkgID');
        $memberarr = json_decode($memberinfo, 1);
        $adultarr = $memberarr['adult'];
        $childarr = $memberarr['child'];
        $this->view->invID = $invID;
        $this->view->itnID = $itnID;
        $this->view->cityID = $cityID;
        $this->view->adults = $adults;
        $this->view->child = $child;
        $this->view->totalroom = $totalroom;
        $this->view->source = $source;
        $this->view->totalprice = $totalprice;
        $this->view->suppliername = $suppliername;
        $this->view->selectintID = $selectintID;
        $this->view->star = $star;
        $this->view->hotelname = $hotelname;
        $this->view->roomtypename = $roomtypename;
        $objPackage = new Travel_Model_TblPackage();
        $getinventoryhotel = $objPackage->getinventoryhotel($invID);

        $getitenary = $this->_crmcusttravelplan->GetCustomerTravelPlanItenary($pkgID);

        $itenaryarr = array();
        for ($i = 0; $i < count($getitenary); $i++) {
            $itenaryarr[] = $getitenary[$i]['TPIntSysId'];
        }

        $startvalue = array_search($itnID, $itenaryarr);
        $endvalue = ($startvalue + $daysnum) - 1;
        $created_date = date('Y-m-d');
        $starrating = (int) $getinventoryhotel[0]['Stars'];

        for ($k = $startvalue; $k <= $endvalue; $k++) {
            // for($j=1;$j<=$totalroom;$j++){
            if ($itnID == $itenaryarr[$k]) {
                $parenttpID = 0;
            } else {
                $parenttpID = $itnID;
            }
            //$totalpax = $adultarr[$j] + $childarr[$j];
            $data = array(
                'TPIntSysId' => $itenaryarr[$k],
                'SeqId' => 1,
                'IsFromAPI' => 0,
                'SupplierSysId' => $getinventoryhotel[0]['SupplierSysId'],
                'SourceSysId' => $getinventoryhotel[0]['ICSourceSysId'],
                'MasterIntSysId' => $parenttpID,
                'AgencySysId' => $AgencySysId,
                'InvnItemSysId' => $getinventoryhotel[0]['InvnItemSysId'],
                'AccoSysId' => $getinventoryhotel[0]['AccomSysId'],
                'RoomType' => $roomtypeID,
                'Title' => $getinventoryhotel[0]['packtitle'],
                'XRefCityId' => $cityID,
                'AdultPax' => $totaladultcount,
                'ChildPax' => $childcount,
                'TotalPax' => $totalpax,
                'StarRating' => $starrating,
                'Discounts' => 0,
                'FromDate' => $checkindate,
                'ToDate' => $checkoutdate,
                'TotalCostGen' => $getinventoryhotel[0]['NetSOccupCost'],
                'TotalCostSO' => $getinventoryhotel[0]['NetSOccupCost'],
                'TotalCostDO' => $getinventoryhotel[0]['NetDOccupCost'],
                'TotalCostTO' => 0,
                'TotalCost' => $totalprice,
                'RoomMemInfoJson' => $roominfo,
                'TotalCostExtraBed' => $getinventoryhotel[0]['NetExtraBedCost'],
                'TotalCostWithoutBed' => $getinventoryhotel[0]['NetExtraWOBedCost'],
                'Taxes' => $getinventoryhotel[0]['Tax'],
                'CreateDate' => $created_date,
                'UpdateDate' => $created_date,
                'IsMarkForDel' => 0,
                'IsActive' => 1
            );

            $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Accom', $data);
            //}
        }
    }

    public function addhotelitenarybyoAction() {

        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $AgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $selectintID = $this->_request->getParam('selectintID');
        $cityID = $this->_request->getParam('cityID');
        $invID = $this->_request->getParam('invID');
        $getmpinventoryhotelTest = $objPackage->getHotelInventoryDays($selectintID, $cityID);
        $mealPlanTypeID = $this->_request->getParam('mealPlanTypeID');
        $pkgcatype = $this->_request->getParam('pkgcatype');
        $checkindate = $this->_request->getParam('chkinformdate');
        $checkoutdate = $this->_request->getParam('chkoutformatdate');
        $innvnitemsysID = $this->_request->getParam('invnitemsysID');
        $getmpinventoryhotel = $objPackage->getmarketplaceinventoryhotel($innvnitemsysID);

        // $getmpinventoryhotelForTest = $objPackage->getmarketplaceinventoryhotelForHotel($invID,$AgencySysId,$getmpinventoryhotel[0]['EconomyType'],$getmpinventoryhotel[0]['MealPlanType'],$checkindate,$checkoutdate);

        $itnID = $this->_request->getParam('itnID');
        $suppsysID = $this->_request->getParam('suppsysID');
        $adults = $this->_request->getParam('adults');
        $child = $this->_request->getParam('child');
        $totalpax = $adults + $child;
        $totalroom = $this->_request->getParam('totalroom');
        $source = $this->_request->getParam('source');
        $memberinfo = $this->_request->getParam('memberinfo');
        $daysnum = $this->_request->getParam('daysnum');
        $roominfo = $this->_request->getParam('roominfo');
        $roomtypeID = $this->_request->getParam('roomtypeID');
        $MealPlanTypeTitle = $this->_request->getParam('MealPlanTypeTitle');
        $roomtypename = $this->_request->getParam('roomtypename');
        $roominfodecode = json_decode($roominfo, 1);
        $totaladultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfodecode); $k++) {
            $totaladultcount = $totaladultcount + $totaladultcount + $roominfodecode[$k]['adult'];
            $childcount = $childcount + $roominfodecode[$k]['child']['childcount'];
        }
        $totalpax = $totaladultcount + $childcount;
        $totalprice = $this->_request->getParam('totalprice');
        $suppliername = $this->_request->getParam('suppliername');
        $star = $this->_request->getParam('star');
        $hotelname = $this->_request->getParam('hotelname');
        $pkgID = $this->_request->getParam('pkgID');
        $memberarr = json_decode($memberinfo, 1);
        $adultarr = $memberarr['adult'];
        $childarr = $memberarr['child'];
        $this->view->invID = $invID;
        $this->view->itnID = $itnID;
        $this->view->cityID = $cityID;
        $this->view->adults = $adults;
        $this->view->child = $child;
        $this->view->totalroom = $totalroom;
        $this->view->source = $source;

        $this->view->selectintID = $selectintID;
        $this->view->star = $star;
        $this->view->hotelname = $hotelname;
        $this->view->roomtypename = $roomtypename;
        $this->view->MealPlanTypeTitle = $MealPlanTypeTitle;
        $this->view->packcat = $pkgcatype;
        $suppliernameinfo = $objPackage->GetSupplierInfo($suppsysID);

        $suppliernamedetail = $suppliernameinfo['SupplierName'];
        $this->view->suppliername = $suppliernamedetail;
        //$getinventoryhotel = $objPackage->getinventoryhotel($invID);
        $getinventoryhotel = $objPackage->getinventoryhotelForInsertHotel($invID);

        $this->view->suppliersysID = $getinventoryhotel[0]['SupplierSysId'];
        //echo "<pre>";print_r($getinventoryhotel);exit;
        $getitenary = $this->_crmcusttravelplan->GetCustomerTravelPlanItenaryBYO($pkgID, $cityID);
        $itenaryarr = array();
        for ($i = 0; $i < count($getitenary); $i++) {
            $itenaryarr[] = $getitenary[$i]['TPIntSysId'];
        }

        $getroominfo = $objPackage->getroominforeadymade($pkgID);
        $roominfoarr = json_decode($getroominfo[0]['RoomInfoJson'], 1);
        $this->view->totalprice = $totalprice;

        $startvalue = array_search($itnID, $itenaryarr);
        //echo "end==========";
        $endvalue = ($startvalue + $daysnum) - 1;
        //echo "end==========".
        $created_date = date('Y-m-d');
        $starrating = (int) $getinventoryhotel[0]['Stars'];
        $arrayCheck = array();
        $dayCount = 0;
        for ($k = $startvalue; $k <= $endvalue; $k++) {
            $checkOut = date('Y-m-d', strtotime($checkindate . " +$dayCount day"));
            // $arrayCheck['checkout'][] =$checkOut; 
            //  $arrayCheck['day'][] =$k;

            $getmpinventoryhotelForTest = $objPackage->getmarketplaceinventoryhotelForHotel($suppsysID, $invID, $AgencySysId, $getmpinventoryhotel[0]['EconomyType'], $getmpinventoryhotel[0]['MealPlanType'], $checkOut, $checkOut);

            $totalhotelprice = Zend_Controller_Action_HelperBroker::getStaticHelper('Hotel')->getTotalCostOfHotelByTravelers($getmpinventoryhotelForTest[0], $roominfoarr);

            $toCurrency = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->getLoggedInAgencyBaseCurrencyId();

            $totalBaseCosthotelprice = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->convertRatetoBaseCurrency($totalhotelprice, $getmpinventoryhotelForTest[0]['TrxCurrency'], $toCurrency);
            $CostCurrencySymbol = $this->_crmcusttravelplan->GetCurrencyByCurrencyType($getmpinventoryhotelForTest[0]['CostCurrency']);

            if ($itnID == $itenaryarr[$k]) {
                $parenttpID = 0;
                $this->view->totalprice = $totalhotelprice;
                $this->view->CurrencySymbol = $CostCurrencySymbol['Symbol'];
            } else {
                $parenttpID = $itnID;
            }
            if (!empty($getmpinventoryhotelForTest)) {
                $data = array(
                    'TPIntSysId' => $itenaryarr[$k],
                    'SeqId' => 1,
                    'AgencySysId' => $AgencySysId,
                    'IsFromAPI' => 0,
                    'SupplierSysId' => $suppsysID,
                    'SourceSysId' => $getinventoryhotel[0]['ICSourceSysId'],
                    'MasterIntSysId' => $parenttpID,
                    'AgencySysId' => $AgencySysId,
                    'InvnItemSysId' => $innvnitemsysID,
                    'AccoSysId' => $getinventoryhotel[0]['AccomSysId'],
                    'RoomType' => $roomtypeID,
                    'MealPlanType' => $mealPlanTypeID,
                    'RoomTypeStr' => $roomtypename,
                    'RoomNumber' => '',
                    'Title' => $getinventoryhotel[0]['packtitle'],
                    'XRefCityId' => $cityID,
                    'AdultPax' => $totaladultcount,
                    'ChildPax' => $childcount,
                    'TotalPax' => $totalpax,
                    'StarRating' => $starrating,
                    'Discounts' => 0,
                    'FromDate' => $checkindate,
                    'ToDate' => $checkoutdate,
                    'CheckInTime' => $checkindate,
                    'CheckOutTime' => $checkoutdate,
                    'TotalCostGen' => isset($getmpinventoryhotelForTest[0]['NetDOccupCost']) ? $getmpinventoryhotelForTest[0]['NetDOccupCost'] : '0',
                    'TotalCostSO' => isset($getmpinventoryhotelForTest[0]['NetSOccupCost']) ? $getmpinventoryhotelForTest[0]['NetSOccupCost'] : 0,
                    'TotalCostDO' => isset($getmpinventoryhotelForTest[0]['NetDOccupCost']) ? $getmpinventoryhotelForTest[0]['NetDOccupCost'] : 0,
                    'BYOPackType' => $pkgcatype,
                    'TotalCostTO' => 0,
                    //  'TotalCost' =>isset($getmpinventoryhotelForTest[0]['NetDOccupCost'])?$getmpinventoryhotelForTest[0]['NetDOccupCost']:0,
                    //  'NetCost' => isset($getmpinventoryhotelForTest[0]['NetDOccupCost'])?$getmpinventoryhotelForTest[0]['NetDOccupCost']:0,   
                    'TotalCost' => $totalhotelprice,
                    'NetCost' => $totalhotelprice,
                    'TotalBaseCost' => $totalBaseCosthotelprice, //added for currency conversion
                    'TotalNights' => '',
                    'CurrencyType' => isset($getmpinventoryhotelForTest[0]['CostCurrency']) ? $getmpinventoryhotelForTest[0]['CostCurrency'] : 1,
                    'RoomMemInfoJson' => $roominfo,
                    'TotalCostExtraBed' => isset($getmpinventoryhotelForTest[0]['NetExtraBedCost']) ? $getmpinventoryhotelForTest[0]['NetExtraBedCost'] : 0,
                    'TotalCostWithoutBed' => isset($getmpinventoryhotelForTest[0]['NetExtraWOBedCost']) ? $getmpinventoryhotelForTest[0]['NetExtraWOBedCost'] : 0,
                    'Taxes' => (int) $getinventoryhotel[0]['Tax'],
                    'CreateDate' => $created_date,
                    'UpdateDate' => $created_date,
                    'IsMarkForDel' => 0,
                    'IsActive' => 1
                );

                $updateId = $objPackage->insertData('TB_TravelPlan_Itenary_Accom', $data);
            }
            $dayCount++;
        }
        // echo "<pre>";print_r($arrayCheck);exit;
    }

    public function addhotelapiAction() {

        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $AgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $invID = $this->_request->getParam('invID');
        $roomtype = $this->_request->getParam('roomtype');
        $roomtypename = $this->_request->getParam('roomtypename');
        $itnID = $this->_request->getParam('itnID');
        $cityID = $this->_request->getParam('cityID');
        $roominfojson = $this->_request->getParam('roominfo');
        $adults = $this->_request->getParam('adults');
        $child = $this->_request->getParam('child');
        $checkindate = $this->_request->getParam('chkinformdate');
        $checkoutdate = $this->_request->getParam('chkoutformatdate');
        $totalpax = $adults + $child;
        $totalroom = $this->_request->getParam('totalroom');
        $source = $this->_request->getParam('source');
        $supplierID = $this->_request->getParam('supplierID');
        $totalprice = $this->_request->getParam('totalprice');
        $suppliername = $this->_request->getParam('suppliername');
        $star = $this->_request->getParam('star');
        $hotelname = $this->_request->getParam('hotelname');
        $packageId = $this->_request->getParam('packageId');
        $days = $this->_request->getParam('days');
        $daysnum = $this->_request->getParam('daysnum');
        //$getitenary = $this->_crmcusttravelplan->GetCustomerTravelPlanItenary($packageId);
        $getitenary = $this->_crmcusttravelplan->GetCustomerTravelPlanItenary($packageId);
        $itenaryarr = array();
        for ($i = 0; $i < count($getitenary); $i++) {
            $itenaryarr[] = $getitenary[$i]['TPIntSysId'];
        }
        $startvalue = array_search($itnID, $itenaryarr);
        $endvalue = $startvalue + ($daysnum - 1);
        $this->view->invID = $invID;
        $this->view->itnID = $itnID;
        $this->view->cityID = $cityID;
        $this->view->adults = $adults;
        $this->view->child = $child;
        $this->view->totalroom = $totalroom;
        $this->view->source = $source;
        $this->view->totalprice = $totalprice;
        $this->view->suppliername = $suppliername;
        $this->view->star = $star;
        $this->view->hotelname = $hotelname;
        $this->view->roomtypename = $roomtypename;
        $this->view->packageId = $packageId;
        $objPackage = new Travel_Model_TblPackage();
        $totaldays = count($getitenary) - 1;
        $created_date = date('Y-m-d');
        $starrating = (int) $star;
        $itenarywisecount = $days - 1;

        for ($i = $startvalue; $i <= $endvalue; $i++) {
            if ($itnID == $getitenary[$i]['TPIntSysId']) {
                $parenttpID = 0;
            } else {
                $parenttpID = $itnID;
            }

            $data = array(
                'TPIntSysId' => $getitenary[$i]['TPIntSysId'],
                'SeqId' => 1,
                'IsFromAPI' => 0,
                'SupplierSysId' => $supplierID,
                'SourceSysId' => $supplierID,
                'MasterIntSysId' => $parenttpID,
                'AgencySysId' => $AgencySysId,
                'InvnItemSysId' => 0,
                'AccoSysId' => $invID,
                'Title' => $hotelname,
                'IsFromAPI' => 1,
                'XRefCityId' => $cityID,
                'RoomNumber' => $roomtype,
                'RoomTypeStr' => $roomtypename,
                'RoomMemInfoJson' => $roominfojson,
                'AdultPax' => $adults,
                'ChildPax' => $child,
                'TotalPax' => $totalpax,
                'StarRating' => $starrating,
                'FromDate' => $checkindate,
                'ToDate' => $checkoutdate,
                'Discounts' => 0,
                'TotalCostGen' => 0,
                'TotalCostSO' => 0,
                'TotalCostDO' => 0,
                'TotalCostTO' => 0,
                'TotalCost' => $totalprice,
                'TotalCostExtraBed' => 0,
                'TotalCostWithoutBed' => 0,
                'Taxes' => 0,
                'CreateDate' => $created_date,
                'UpdateDate' => $created_date,
                'IsMarkForDel' => 0,
                'IsActive' => 1
            );

            $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Accom', $data);
        }
    }

    ########## Code End By Shobhit ######################

    public function getAgentActivityAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function getAgentActivityCustomerAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function getAgentActivityCustomerByoAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function getAgentSightseenAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function getAgentSightseenCustomerAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function getAgentSightseenCustomerByoAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function updateFlexiPackageHotelAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';

        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'TPIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
                'AgencySysId = ? ' => @$_REQUEST['AgencySysId'],
                'InvnItemSysId = ? ' => @$_REQUEST['InvnItemSysId'],
                'XrefInvtSysId = ? ' => @$_REQUEST['XrefInvtSysId'],
                'CityId = ? ' => @$_REQUEST['CityId']
            );

            $updateId = $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $data, $where);
        } else {

            $data = array(
                'InvnItemSysId' => @$_REQUEST['InvnItemSysId'],
                'TPIntSysId' => @$_REQUEST['TPIntSysId'],
                'SeqId' => @$_REQUEST['SeqId'],
                'AgencySysId' => @$_REQUEST['AgencySysId'],
                'AccoSysId' => @$_REQUEST['AccoSysId'],
                'XrefInvtSysId' => @$_REQUEST['XrefInvtSysId'],
                'RoomType' => @$_REQUEST['economy'],
                'RoomNumber' => '0',
                'Title' => @$_REQUEST['Title'],
                'CheckInTime' => '00:00',
                'CheckOutTime' => '00:00',
                'XRefCityId' => @$_REQUEST['CityId'],
                'FromDate' => @$currentDate,
                'ToDate' => @$currentDate,
                'TotalPax' => '0',
                'TotalNights' => '0',
                'StarRating' => '0',
                'CurrencyType' => '1',
                'TotalCostGen' => '0',
                'TotalCostSO' => '0',
                'TotalCostDO' => '0',
                'TotalCostTO' => '0',
                'Discounts' => '0',
                'Taxes' => '0',
                'NetCost' => @$_REQUEST['Cost'],
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_TravelPlan_Itenary_Accom', $data);
        }
        exit;
    }

    public function updateByoPackageHotelAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';

        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'TPIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
                'AgencySysId = ? ' => @$_REQUEST['AgencySysId'],
                'InvnItemSysId = ? ' => @$_REQUEST['InvnItemSysId'],
                'XrefInvtSysId = ? ' => @$_REQUEST['XrefInvtSysId'],
                'CityId = ? ' => @$_REQUEST['CityId']
            );

            $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Accom', $data, $where);
        } else {

            $data = array(
                'InvnItemSysId' => @$_REQUEST['InvnItemSysId'],
                'TPIntSysId' => @$_REQUEST['TPIntSysId'],
                'SeqId' => @$_REQUEST['SeqId'],
                'AgencySysId' => @$_REQUEST['AgencySysId'],
                'AccoSysId' => @$_REQUEST['AccoSysId'],
                'XrefInvtSysId' => @$_REQUEST['XrefInvtSysId'],
                'RoomType' => @$_REQUEST['economy'],
                'RoomNumber' => '0',
                'Title' => @$_REQUEST['Title'],
                'CheckInTime' => '00:00',
                'CheckOutTime' => '00:00',
                'XRefCityId' => @$_REQUEST['CityId'],
                'FromDate' => @$currentDate,
                'ToDate' => @$currentDate,
                'TotalPax' => '0',
                'TotalNights' => '0',
                'StarRating' => '0',
                'CurrencyType' => '1',
                'TotalCostGen' => '0',
                'TotalCostSO' => '0',
                'TotalCostDO' => '0',
                'TotalCostTO' => '0',
                'Discounts' => '0',
                'Taxes' => '0',
                'NetCost' => @$_REQUEST['Cost'],
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Accom', $data);
        }
        exit;
    }

    public function updateCustomerPackageHotelAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';
        // $invensysID = $_REQUEST['XrefInvtSysId'];
        $accosysID = $_REQUEST['accosysID'];
        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '1',
                'IsActive' => '0'
            );

            $where = array(
                'TPIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
                'AccoSysId = ? ' => @$_REQUEST['accosysID'],
            );

            $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Accom', $data, $where);
            $children = array(
                'MasterIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
                'AccoSysId = ? ' => @$_REQUEST['accosysID'],
            );
            $updatechildId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Accom', $data, $children);
        } else {

            $totalitenary = $_REQUEST['totalitenaryID'];
            $itnID = json_decode($_REQUEST['encodeitnID']);
            for ($i = 0; $i < count($itnID); $i++) {
                $data = array(
                    'RoomType' => @$_REQUEST['economy'],
                    'TPIntSysId' => @$itnID[$i],
                    'SeqId' => @$_REQUEST['SeqId'],
                    'AccoBookingId' => '0',
                    'XRefBookingId' => '0',
                    'RoomNumber' => '0',
                    'SpecialRequest' => '0',
                    'CheckInTime' => '00:00',
                    'CheckOutTime' => '00:00',
                    'FromDate' => @$currentDate,
                    'ToDate' => @$currentDate,
                    'AdultPax' => '0',
                    'ChildPax' => '0',
                    'InfantPax' => '0',
                    'PetPax' => '0',
                    'ChildsAge' => '0',
                    'TotalPax' => '0',
                    'TotalNights' => '0',
                    'StarRating' => '0',
                    'TotalCost' => '0',
                    'Discounts' => '0',
                    'Taxes' => '0',
                    'XRefCityId' => @$_REQUEST['CityId'],
                    'AgencySysId' => @$_REQUEST['AgencySysId'],
                    'AccoSysId' => @$_REQUEST['AccoSysId'],
                    'XrefInvtSysId' => @$_REQUEST['XrefInvtSysId'],
                    'Title' => @$_REQUEST['Title'],
                    'CurrencyType' => '1',
                    'TotalCostSO' => @$_REQUEST['costso'],
                    'TotalCostDO' => @$_REQUEST['costdo'],
                    'TotalCostExtraBed' => @$_REQUEST['costeb'],
                    'TotalCostWithoutBed' => @$_REQUEST['costwob'],
                    'SupplierSysId' => @$_REQUEST['supplier'],
                    'NetCost' => @$_REQUEST['Cost'],
                    'CreateDate' => @$currentDate,
                    'UpdateDate' => @$currentDate,
                    'IsMarkForDel' => '0',
                    'IsActive' => '1'
                );
                $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Accom', $data);
            }
        }
        exit;
    }

    public function updateOtherServiceAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        @$currentDate = date('Y-m-d');
        $data = array(
            'UpdateDate' => @$currentDate,
            'IsMarkForDelete' => '1',
            'IsActive' => '0'
        );

        $where = array(
            'OtherSrvSysId = ? ' => @$_REQUEST['sID']
        );

        $updateId = $objPackage->updateData('TB_TravelPlan_OtherServices', $data, $where);
    }

    public function gettransportrouteAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $source_city_id = $getData['source_city_id'];
        $end_city_id = $getData['end_city_id'];
        $noofdays = $getData['noofdays'];
        $AgencySysId = $this->intLoggedinUserAgencySysId;
        $tpsysID = $getData['tpsysID'];
        $groupsize = $getData['groupsize'];
        $this->view->groupsize = $groupsize;
        $iscaravailable = $objPackage->IsCarAvailable($tpsysID);
        if (empty($iscaravailable)) {
            $iscaravailble['StartCitySysId'] = '';
        }
        if (!empty($iscaravailable)) {
            $this->_helper->layout->disableLayout();
            $front = Zend_Controller_Front::getInstance();
            $front->setParam('noViewRenderer', true);
            echo "You have already Add Transport route";
        } elseif (($iscaravailble['StartCitySysId'] == $source_city_id) || empty($iscaravailable)) {
            $this->view->source_city_id = $source_city_id;
            $this->view->end_city_id = $end_city_id;
            $this->view->noofdays = $noofdays;
            $this->view->tpsysID = $tpsysID;
            $this->view->agencysysID = $AgencySysId;
        } else {
            $this->view->source_city_id = $source_city_id;
            $this->view->end_city_id = $end_city_id;
            $this->view->noofdays = $noofdays;
            $this->view->tpsysID = $tpsysID;
            $this->view->agencysysID = $AgencySysId;
        }
    }

    public function updateCustomerReadyPackageHotelAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';
        // $invensysID = $_REQUEST['XrefInvtSysId'];
        $accosysID = $_REQUEST['accosysID'];
        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '1',
                'IsActive' => '0'
            );
            //echo "<dssdsd";exit;
            $where = array(
                'TPIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
                'AccoSysId = ? ' => @$_REQUEST['accosysID'],
                'InvnItemSysId = ? ' => @$_REQUEST['InvnItemSysId'],
                'BYOPackType = ? ' => @$_REQUEST['catID'],
                'MealPlanType =?' => @$_REQUEST['MealTypeId'],
                'RoomType =?' => @$_REQUEST['RoomTypeId']
            );
            //            echo "<pre>";print_r($where);exit;
            $updateId = $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $data, $where);
            $children = array(
                'MasterIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
                'AccoSysId = ? ' => @$_REQUEST['accosysID'],
                'BYOPackType = ? ' => @$_REQUEST['catID'],
                'MealPlanType =?' => @$_REQUEST['MealTypeId'],
                'RoomType =?' => @$_REQUEST['RoomTypeId']
            );
            $updatechildId = $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $data, $children);
        } else {

            $totalitenary = $_REQUEST['totalitenaryID'];
            $itnID = json_decode($_REQUEST['encodeitnID']);
            for ($i = 0; $i < count($itnID); $i++) {
                $data = array(
                    'RoomType' => @$_REQUEST['economy'],
                    'TPIntSysId' => @$itnID[$i],
                    'SeqId' => @$_REQUEST['SeqId'],
                    'AccoBookingId' => '0',
                    'XRefBookingId' => '0',
                    'RoomNumber' => '0',
                    'SpecialRequest' => '0',
                    'CheckInTime' => '00:00',
                    'CheckOutTime' => '00:00',
                    'FromDate' => @$currentDate,
                    'ToDate' => @$currentDate,
                    'AdultPax' => '0',
                    'ChildPax' => '0',
                    'InfantPax' => '0',
                    'PetPax' => '0',
                    'ChildsAge' => '0',
                    'TotalPax' => '0',
                    'TotalNights' => '0',
                    'StarRating' => '0',
                    'TotalCost' => '0',
                    'Discounts' => '0',
                    'Taxes' => '0',
                    'XRefCityId' => @$_REQUEST['CityId'],
                    'AgencySysId' => @$_REQUEST['AgencySysId'],
                    'AccoSysId' => @$_REQUEST['AccoSysId'],
                    'XrefInvtSysId' => @$_REQUEST['XrefInvtSysId'],
                    'Title' => @$_REQUEST['Title'],
                    'CurrencyType' => '1',
                    'TotalCostSO' => @$_REQUEST['costso'],
                    'TotalCostDO' => @$_REQUEST['costdo'],
                    'TotalCostExtraBed' => @$_REQUEST['costeb'],
                    'TotalCostWithoutBed' => @$_REQUEST['costwob'],
                    'SupplierSysId' => @$_REQUEST['supplier'],
                    'NetCost' => @$_REQUEST['Cost'],
                    'CreateDate' => @$currentDate,
                    'UpdateDate' => @$currentDate,
                    'IsMarkForDel' => '0',
                    'IsActive' => '1'
                );
                $updateId = $objPackage->insertData('TB_TravelPlan_Itenary_Accom', $data);
            }
        }
        exit;
    }

    public function updateCustomerPackageActivityAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';

        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'VersionId = ? ' => @$_REQUEST['versionID'],
            );

            $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Itenary_Events', $data, $where);
        } else {

            if ($_REQUEST['Incltype'] == "Optional") {
                $IsOptionalActivity = '1';
            } else {
                $IsOptionalActivity = '0';
            }

            $getroomdetails = $objPackage->getroominfo($_REQUEST['packageId']);

            $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);
            $adultcount = 0;
            $childcount = 0;
            for ($k = 1; $k <= count($roominfoarray); $k++) {
                $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
                $childcount = $childcount + $roominfoarray[$k]['Child'];
            }

            $totalactcost = $adultcount * $_REQUEST['CostAdult'] + $childcount * $_REQUEST['CostKids'];

            $data = array(
                'InvnItemSysId' => @$_REQUEST['InvnItemSysId'],
                'TPIntSysId' => @$_REQUEST['TPIntSysId'],
                'Sequence' => @$_REQUEST['SeqId'],
                'CityId' => @$_REQUEST['CityId'],
                'AgencySysId' => @$_REQUEST['AgencySysId'],
                'SupplierSysId' => @$_REQUEST['actsuppliersysID'],
                'TPActivitySysId' => @$_REQUEST['TPActivitySysId'],
                'CurrencyType' => '1',
                'Title' => @$_REQUEST['Title'],
                'Type' => @$_REQUEST['Incltype'],
                'Cost' => @$_REQUEST['CostAdult'],
                'KidsCost' => @$_REQUEST['CostKids'],
                'TotalCost' => $totalactcost,
                'IsOptionalActivity' => $IsOptionalActivity,
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            echo $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Itenary_Events', $data);
        }
        exit;
    }

    public function updateCustomerPackageActivityByoAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';

        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'VersionId = ? ' => @$_REQUEST['versionID'],
            );

            $updateId = $objPackage->updateData('TB_TravelPlan_Itenary_Events', $data, $where);
        } else {

            if ($_REQUEST['Incltype'] == "Optional") {
                $IsOptionalActivity = '1';
            } else {
                $IsOptionalActivity = '0';
            }

            $getroomdetails = $objPackage->getroominforeadymade($_REQUEST['packageId']);

            $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);
            $adultcount = 0;
            $childcount = 0;
            for ($k = 1; $k <= count($roominfoarray); $k++) {
                $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
                $childcount = $childcount + $roominfoarray[$k]['Child'];
            }

            $totalactcost = $adultcount * $_REQUEST['CostAdult'] + $childcount * $_REQUEST['CostKids'];
            $toCurrency = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->getLoggedInAgencyBaseCurrencyId();
            $totalBaseCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->convertRatetoBaseCurrency($totalactcost, $_REQUEST['currency'], $toCurrency);

            $data = array(
                'InvnItemSysId' => @$_REQUEST['InvnItemSysId'],
                'TPIntSysId' => @$_REQUEST['TPIntSysId'],
                'Sequence' => @$_REQUEST['SeqId'],
                'CityId' => @$_REQUEST['CityId'],
                'AgencySysId' => @$_REQUEST['AgencySysId'],
                'SupplierSysId' => @$_REQUEST['actsuppliersysID'],
                'TPActivitySysId' => @$_REQUEST['TPActivitySysId'],
                'CurrencyType' => !empty($_REQUEST['currency']) ? $_REQUEST['currency'] : 1,
                'Title' => @$_REQUEST['Title'],
                'Type' => @$_REQUEST['Incltype'],
                'Cost' => @$_REQUEST['CostAdult'],
                'KidsCost' => @$_REQUEST['CostKids'],
                'TotalCost' => $totalactcost,
                'TotalBaseCost' => $totalBaseCost,
                'IsOptionalActivity' => $IsOptionalActivity,
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            echo $updateId = $objPackage->insertData('TB_TravelPlan_Itenary_Events', $data);
        }
        exit;
    }

    public function updateFlexiPackageActivityAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';

        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'TPIntSysId = ? ' => @$_REQUEST['TPIntSysId'],
                'InvnItemSysId = ? ' => @$_REQUEST['InvnItemSysId'],
                'TPActivitySysId = ? ' => @$_REQUEST['TPActivitySysId']
            );

            $updateId = $objPackage->updateData('TB_TravelPlan_Itenary_Events', $data, $where);
        } else {

            $data = array(
                'InvnItemSysId' => @$_REQUEST['InvnItemSysId'],
                'TPIntSysId' => @$_REQUEST['TPIntSysId'],
                'Sequence' => @$_REQUEST['SeqId'],
                'CityId' => @$_REQUEST['CityId'],
                'AgencySysId' => @$_REQUEST['AgencySysId'],
                'TPActivitySysId' => @$_REQUEST['TPActivitySysId'],
                'CurrencyType' => '1',
                'Title' => @$_REQUEST['Title'],
                'Type' => @$_REQUEST['Incltype'],
                'Cost' => @$_REQUEST['CostAdult'],
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_TravelPlan_Itenary_Events', $data);
        }
        exit;
    }

    public function updateCustomerPackageSightseenAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';

        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDelete' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'VersionId = ? ' => @$_REQUEST['versionID']
            );

            $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_SightSeeing', $data, $where);
        } else {



            if ($_REQUEST['Incltype'] == "Optional") {
                $IsOptionalSS = '1';
            } else {
                $IsOptionalSS = '0';
            }

            $getroomdetails = $objPackage->getroominfo($_REQUEST['packageId']);

            $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);
            $adultcount = 0;
            $childcount = 0;
            for ($k = 1; $k <= count($roominfoarray); $k++) {
                $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
                $childcount = $childcount + $roominfoarray[$k]['Child'];
            }

            $totalactcost = $adultcount * $_REQUEST['CostAdult'] + $childcount * $_REQUEST['CostKids'];
            $data = array(
                'InvnItemSysId' => @$_REQUEST['TPIntSysId'],
                'XrefInvnItemSysId' => @$_REQUEST['XrefInvnItemSysId'],
                'SeqId' => @$_REQUEST['SeqId'],
                'CityId' => @$_REQUEST['CityId'],
                'AgencySysId' => @$_REQUEST['AgencySysId'],
                'SSSysId' => @$_REQUEST['SSSysId'],
                'SupplierSysId' => @$_REQUEST['suppid'],
                'Title' => @$_REQUEST['Title'],
                'Type' => @$_REQUEST['Incltype'],
                'IsOptionalSightSeeing' => $IsOptionalSS,
                'Cost' => @$_REQUEST['CostAdult'],
                'KidsCost' => @$_REQUEST['CostKids'],
                'TotalCost' => $totalactcost,
                'FromDate' => @$currentDate,
                'ToDate' => @$currentDate,
                'BookingType' => '0',
                'Qty' => '0',
                'IfAnyOffer' => '0',
                'OfferMsg' => '0',
                'OfferImage' => '0',
                'IxFixedDateInven' => '0',
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'IsMarkForDelete' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_SightSeeing', $data);
            echo $updateId;
        }
        exit;
    }

    public function updateCustomerPackageSightseenByoAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i');
        //$currentDate = '2016-06-06';

        if ($_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => $currentDate,
                'IsMarkForDelete' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'VersionId = ? ' => $_REQUEST['versionID']
            );

            $updateId = $objPackage->updateData('TB_TravelPlan_SightSeeing', $data, $where);
        } else {



            if ($_REQUEST['Incltype'] == "Optional") {
                $IsOptionalSS = '1';
            } else {
                $IsOptionalSS = '0';
            }

            $getroomdetails = $objPackage->getroominforeadymade($_REQUEST['packageId']);

            $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);
            $adultcount = 0;
            $childcount = 0;
            for ($k = 1; $k <= count($roominfoarray); $k++) {
                $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
                $childcount = $childcount + $roominfoarray[$k]['Child'];
            }
            //             print_r($_REQUEST);
            $totalactcost = $adultcount * $_REQUEST['CostAdult'] + $childcount * $_REQUEST['CostKids'];
            $toCurrency = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->getLoggedInAgencyBaseCurrencyId();
            $totalBaseCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->convertRatetoBaseCurrency($totalactcost, $_REQUEST['currency'], $toCurrency);

            $data = array(
                'InvnItemSysId' => (int) $_REQUEST['TPIntSysId'],
                'XrefInvnItemSysId' => (int) $_REQUEST['XrefInvnItemSysId'],
                'SeqId' => (int) $_REQUEST['SeqId'],
                'CityId' => (int) $_REQUEST['CityId'],
                'AgencySysId' => (int) $_REQUEST['AgencySysId'],
                'SSSysId' => (int) $_REQUEST['SSSysId'],
                'SupplierSysId' => (int) $_REQUEST['suppid'],
                'Title' => $_REQUEST['Title'],
                'Type' => $_REQUEST['Incltype'],
                'IsOptionalSightSeeing' => $IsOptionalSS,
                'Cost' => (float) $_REQUEST['CostAdult'],
                'KidsCost' => (float) $_REQUEST['CostKids'],
                'TotalCost' => (float) $totalactcost,
                'TotalBaseCost' => (float) $totalBaseCost,
                'FromDate' => $currentDate,
                'ToDate' => $currentDate,
                'BookingType' => '0',
                'Qty' => '0',
                'IfAnyOffer' => '0',
                'OfferMsg' => '0',
                'OfferImage' => '0',
                'IxFixedDateInven' => '0',
                'CreateDate' => $currentDate,
                'UpdateDate' => $currentDate,
                'IsMarkForDelete' => '0',
                'IsActive' => '1',
                'CurrencyType' => !empty($_REQUEST['currency']) ? $_REQUEST['currency'] : 1
            );
            $updateId = $objPackage->insertData('TB_TravelPlan_SightSeeing', $data);
            echo $updateId;
        }
        exit;
    }

    public function updateFlexiPackageSightseenAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';

        if (@$_REQUEST['type'] == 'delete') {
            $data = array(
                'UpdateDate' => @$currentDate,
                'IsMarkForDelete' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'XrefInvnItemSysId = ? ' => @$_REQUEST['XrefInvnItemSysId'],
                'InvnItemSysId = ? ' => @$_REQUEST['TPIntSysId'],
                'SSSysId = ? ' => @$_REQUEST['SSSysId']
            );

            $updateId = $objPackage->updateData('TB_TravelPlan_SightSeeing', $data, $where);
        } else {

            $data = array(
                'InvnItemSysId' => @$_REQUEST['TPIntSysId'],
                'SeqId' => @$_REQUEST['SeqId'],
                'CityId' => @$_REQUEST['CityId'],
                'AgencySysId' => @$_REQUEST['AgencySysId'],
                'XrefInvnItemSysId' => @$_REQUEST['XrefInvnItemSysId'],
                'SSSysId' => @$_REQUEST['SSSysId'],
                'Title' => @$_REQUEST['Title'],
                'Type' => @$_REQUEST['Incltype'],
                'Cost' => @$_REQUEST['CostAdult'],
                'FromDate' => '2016-06-06',
                'ToDate' => '2016-06-06',
                'BookingType' => '0',
                'Qty' => '0',
                'IfAnyOffer' => '0',
                'OfferMsg' => '0',
                'OfferImage' => '0',
                'IxFixedDateInven' => '0',
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'IsMarkForDelete' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_TravelPlan_SightSeeing', $data);
        }
        exit;
    }

    public function updateFlexiPackageFlightAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $html = '';
        if ($this->getRequest()->getParam('d1') > 0) {
            $flexiPackageList1 = $objPackage->getFlightDetails($this->getRequest()->getParam('d1'));
            $d1res = json_decode(base64_decode($this->getRequest()->getParam('encoded1')), true);
            /* echo '<pre>';
              print_r($flexiPackageList1); */
            $data = array(
                'TPIntSysId' => $this->getRequest()->getParam('TPIntSysId'),
                'SeqId' => '0',
                'Cost' => $this->getRequest()->getParam('cost'),
                'AgencySysId' => @$intLoggedinUserAgencySysId,
                'FlightNumber' => @$flexiPackageList1['FlightNumber'],
                'AirlineSysId' => @$flexiPackageList1['AirlineSysId'],
                'ICSourceSysId' => @$flexiPackageList1['ICSourceSysId'],
                'IsFromAgency' => @$flexiPackageList1['IsFromAgency'],
                'LocalFromTime' => @$flexiPackageList1['LocalFromTime'],
                'LocalToTime' => @$flexiPackageList1['LocalToTime'],
                'FromUTCTime' => @$flexiPackageList1['FromUTCTime'],
                'ToUTCTime' => @$flexiPackageList1['ToUTCTime'],
                'IsDirect' => @$flexiPackageList1['IsDirect'],
                'DayLightSavingDiff' => @$flexiPackageList1['DayLightSavingDiff'],
                'FlyingMinutes' => @$flexiPackageList1['FlyingMinutes'],
                'SourcePlaceSysId' => @$flexiPackageList1['SourcePlaceSysId'],
                'DestPlaceSysId' => @$flexiPackageList1['DestPlaceSysId'],
                'SourceAirportCode' => @$flexiPackageList1['SourceAirportCode'],
                'DestAirportCode' => @$flexiPackageList1['DestAirportCode'],
                'AirportHaultMinutes' => @$flexiPackageList1['AirportHaultMinutes'],
                'StopCount' => @$flexiPackageList1['StopCount'],
                'Stops' => @$flexiPackageList1['Stops'],
                'Rating' => @$flexiPackageList1['Rating'],
                'FllightFeatureMask' => @$flexiPackageList1['FllightFeatureMask'],
                'UpdatedByISSysId' => @$flexiPackageList1['UpdatedByISSysId'],
                'CreatedByISSysId' => @$flexiPackageList1['CreatedByISSysId'],
                'ImageTN' => @$flexiPackageList1['ImageTN'],
                'ImgForList' => @$flexiPackageList1['ImgForList'],
                'ImgeDetails' => @$flexiPackageList1['ImgeDetails'],
                'ApproveBy' => @$flexiPackageList1['ApproveBy'],
                'ApprovalDate' => @$flexiPackageList1['ApprovalDate'],
                'IsApproved' => @$flexiPackageList1['IsApproved'],
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'encodedata' => $this->getRequest()->getParam('encoded1'),
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_TravelPlan_Itenary_Air', $data);
            $html .= '<tr>
					  <td><span>' . @$d1res['airline'] . '</span></td>
					  <td><span>' . @$d1res['from'] . '</span></td>
					  <td><span>' . @$d1res['fromdt'] . '</span></td>
					  <td><span>' . @$d1res['to'] . '</span></td>
					  <td><span>' . @$d1res['todt'] . '</span></td>
					  <td><span>' . @$d1res['type'] . '</span></td>
					  <td><span>' . $this->getRequest()->getParam('cost') . '</span></td>
					  <td><button data-original-title="Delete" class="btn btn-xs btn-danger tooltipLink" data-toggle="tooltip" data-placement="top" title=""><i class="fa fa-trash-o"></i></button></td>
				  </tr>';
        }
        if ($this->getRequest()->getParam('d2') > 0) {
            $flexiPackageList2 = $objPackage->getFlightDetails($this->getRequest()->getParam('d2'));
            $d2res = json_decode(base64_decode($this->getRequest()->getParam('encoded2')), true);
            /* echo '<pre>';
              print_r($flexiPackageList2); */
            $data = array(
                'TPIntSysId' => $this->getRequest()->getParam('TPIntSysId'),
                'SeqId' => '0',
                'Cost' => '0',
                'AgencySysId' => @$intLoggedinUserAgencySysId,
                'FlightNumber' => @$flexiPackageList2['FlightNumber'],
                'AirlineSysId' => @$flexiPackageList2['AirlineSysId'],
                'ICSourceSysId' => @$flexiPackageList2['ICSourceSysId'],
                'IsFromAgency' => @$flexiPackageList2['IsFromAgency'],
                'LocalFromTime' => @$flexiPackageList2['LocalFromTime'],
                'LocalToTime' => @$flexiPackageList2['LocalToTime'],
                'FromUTCTime' => @$flexiPackageList2['FromUTCTime'],
                'ToUTCTime' => @$flexiPackageList2['ToUTCTime'],
                'IsDirect' => @$flexiPackageList2['IsDirect'],
                'DayLightSavingDiff' => @$flexiPackageList2['DayLightSavingDiff'],
                'FlyingMinutes' => @$flexiPackageList2['FlyingMinutes'],
                'SourcePlaceSysId' => @$flexiPackageList2['SourcePlaceSysId'],
                'DestPlaceSysId' => @$flexiPackageList2['DestPlaceSysId'],
                'SourceAirportCode' => @$flexiPackageList2['SourceAirportCode'],
                'DestAirportCode' => @$flexiPackageList2['DestAirportCode'],
                'AirportHaultMinutes' => @$flexiPackageList2['AirportHaultMinutes'],
                'StopCount' => @$flexiPackageList2['StopCount'],
                'Stops' => @$flexiPackageList2['Stops'],
                'Rating' => @$flexiPackageList2['Rating'],
                'FllightFeatureMask' => @$flexiPackageList2['FllightFeatureMask'],
                'UpdatedByISSysId' => @$flexiPackageList2['UpdatedByISSysId'],
                'CreatedByISSysId' => @$flexiPackageList2['CreatedByISSysId'],
                'ImageTN' => @$flexiPackageList2['ImageTN'],
                'ImgForList' => @$flexiPackageList2['ImgForList'],
                'ImgeDetails' => @$flexiPackageList2['ImgeDetails'],
                'ApproveBy' => @$flexiPackageList2['ApproveBy'],
                'ApprovalDate' => @$flexiPackageList2['ApprovalDate'],
                'IsApproved' => @$flexiPackageList2['IsApproved'],
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'encodedata' => $this->getRequest()->getParam('encoded2'),
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_TravelPlan_Itenary_Air', $data);

            $html .= '<tr>
					  <td><span>' . @$d2res['airline'] . '</span></td>
					  <td><span>' . @$d2res['from'] . '</span></td>
					  <td><span>' . @$d2res['fromdt'] . '</span></td>
					  <td><span>' . @$d2res['to'] . '</span></td>
					  <td><span>' . @$d2res['todt'] . '</span></td>
					  <td><span>' . @$d2res['type'] . '</span></td>
					  <td><span>-</span></td>
					  <td><button data-original-title="Delete" class="btn btn-xs btn-danger tooltipLink" data-toggle="tooltip" data-placement="top" title=""><i class="fa fa-trash-o"></i></button></td>
				  </tr>';
        }
        echo $html;
        exit;
    }

    public function updateCustomerPackageFlightAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $html = '';
        if ($this->getRequest()->getParam('d1') > 0) {
            $flexiPackageList1 = $objPackage->getFlightDetails($this->getRequest()->getParam('d1'));
            $d1res = json_decode(base64_decode($this->getRequest()->getParam('encoded1')), true);
            $data = array(
                'TPIntSysId' => $this->getRequest()->getParam('TPIntSysId'),
                'SeqId' => '0',
                'InvnItemSysId' => $this->getRequest()->getParam('invsysID'),
                'Cost' => $this->getRequest()->getParam('cost'),
                'AgencySysId' => @$intLoggedinUserAgencySysId,
                'FlightNumber' => @$flexiPackageList1['FlightNumber'],
                'AirlineSysId' => @$flexiPackageList1['AirlineSysId'],
                'ICSourceSysId' => @$flexiPackageList1['ICSourceSysId'],
                'IsFromAgency' => @$flexiPackageList1['IsFromAgency'],
                'LocalFromTime' => @$flexiPackageList1['LocalFromTime'],
                'LocalToTime' => @$flexiPackageList1['LocalToTime'],
                'FromUTCTime' => @$flexiPackageList1['FromUTCTime'],
                'ToUTCTime' => @$flexiPackageList1['ToUTCTime'],
                'FlightCabinClass' => '0',
                'AdultPax' => '0',
                'ChildPax' => '0',
                'InfentPax' => '0',
                'TotalPax' => '0',
                'IsDirect' => @$flexiPackageList1['IsDirect'],
                'DayLightSavingDiff' => @$flexiPackageList1['DayLightSavingDiff'],
                'FlyingMinutes' => @$flexiPackageList1['FlyingMinutes'],
                'SourcePlaceSysId' => @$flexiPackageList1['SourcePlaceSysId'],
                'DestPlaceSysId' => @$flexiPackageList1['DestPlaceSysId'],
                'SourceAirportCode' => @$flexiPackageList1['SourceAirportCode'],
                'DestAirportCode' => @$flexiPackageList1['DestAirportCode'],
                'AirportHaultMinutes' => @$flexiPackageList1['AirportHaultMinutes'],
                'StopCount' => @$flexiPackageList1['StopCount'],
                'Stops' => @$flexiPackageList1['Stops'],
                'Rating' => @$flexiPackageList1['Rating'],
                'FllightFeatureMask' => @$flexiPackageList1['FllightFeatureMask'],
                'UpdatedByISSysId' => @$flexiPackageList1['UpdatedByISSysId'],
                'CreatedByISSysId' => @$flexiPackageList1['CreatedByISSysId'],
                'ImageTN' => @$flexiPackageList1['ImageTN'],
                'ImgForList' => @$flexiPackageList1['ImgForList'],
                'ImgeDetails' => @$flexiPackageList1['ImgeDetails'],
                'ApproveBy' => @$flexiPackageList1['ApproveBy'],
                'ApprovalDate' => @$flexiPackageList1['ApprovalDate'],
                'IsApproved' => @$flexiPackageList1['IsApproved'],
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'encodedata' => $this->getRequest()->getParam('encoded1'),
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Air', $data);
            $html .= '<tr>
					  <td><span>' . @$d1res['airline'] . '</span></td>
					  <td><span>' . @$d1res['from'] . '</span></td>
					  <td><span>' . @$d1res['fromdt'] . '</span></td>
					  <td><span>' . @$d1res['to'] . '</span></td>
					  <td><span>' . @$d1res['todt'] . '</span></td>
					  <td><span>' . @$d1res['type'] . '</span></td>
					  <td><span>' . $this->getRequest()->getParam('cost') . '</span></td>
					  <td><button data-original-title="Delete" class="btn btn-xs btn-danger tooltipLink" data-toggle="tooltip" data-placement="top" title=""><i class="fa fa-trash-o"></i></button></td>
				  </tr>';
        }
        if ($this->getRequest()->getParam('d2') > 0) {
            $flexiPackageList2 = $objPackage->getFlightDetails($this->getRequest()->getParam('d2'));
            $d2res = json_decode(base64_decode($this->getRequest()->getParam('encoded2')), true);
            /* echo '<pre>';
              print_r($flexiPackageList2); */
            $data = array(
                'TPIntSysId' => $this->getRequest()->getParam('TPIntSysId'),
                'SeqId' => '0',
                'Cost' => '0',
                'AgencySysId' => @$intLoggedinUserAgencySysId,
                'FlightNumber' => @$flexiPackageList2['FlightNumber'],
                'AirlineSysId' => @$flexiPackageList2['AirlineSysId'],
                'ICSourceSysId' => @$flexiPackageList2['ICSourceSysId'],
                'IsFromAgency' => @$flexiPackageList2['IsFromAgency'],
                'LocalFromTime' => @$flexiPackageList2['LocalFromTime'],
                'LocalToTime' => @$flexiPackageList2['LocalToTime'],
                'FromUTCTime' => @$flexiPackageList2['FromUTCTime'],
                'ToUTCTime' => @$flexiPackageList2['ToUTCTime'],
                'FlightCabinClass' => '0',
                'AdultPax' => '0',
                'ChildPax' => '0',
                'InfentPax' => '0',
                'TotalPax' => '0',
                'IsDirect' => @$flexiPackageList2['IsDirect'],
                'DayLightSavingDiff' => @$flexiPackageList2['DayLightSavingDiff'],
                'FlyingMinutes' => @$flexiPackageList2['FlyingMinutes'],
                'SourcePlaceSysId' => @$flexiPackageList2['SourcePlaceSysId'],
                'DestPlaceSysId' => @$flexiPackageList2['DestPlaceSysId'],
                'SourceAirportCode' => @$flexiPackageList2['SourceAirportCode'],
                'DestAirportCode' => @$flexiPackageList2['DestAirportCode'],
                'AirportHaultMinutes' => @$flexiPackageList2['AirportHaultMinutes'],
                'StopCount' => @$flexiPackageList2['StopCount'],
                'Stops' => @$flexiPackageList2['Stops'],
                'Rating' => @$flexiPackageList2['Rating'],
                'FllightFeatureMask' => @$flexiPackageList2['FllightFeatureMask'],
                'UpdatedByISSysId' => @$flexiPackageList2['UpdatedByISSysId'],
                'CreatedByISSysId' => @$flexiPackageList2['CreatedByISSysId'],
                'ImageTN' => @$flexiPackageList2['ImageTN'],
                'ImgForList' => @$flexiPackageList2['ImgForList'],
                'ImgeDetails' => @$flexiPackageList2['ImgeDetails'],
                'ApproveBy' => @$flexiPackageList2['ApproveBy'],
                'ApprovalDate' => @$flexiPackageList2['ApprovalDate'],
                'IsApproved' => @$flexiPackageList2['IsApproved'],
                'CreateDate' => @$currentDate,
                'UpdateDate' => @$currentDate,
                'encodedata' => $this->getRequest()->getParam('encoded2'),
                'IsMarkForDel' => '0',
                'IsActive' => '1'
            );
            $updateId = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Air', $data);

            $html .= '<tr>
					  <td><span>' . @$d2res['airline'] . '</span></td>
					  <td><span>' . @$d2res['from'] . '</span></td>
					  <td><span>' . @$d2res['fromdt'] . '</span></td>
					  <td><span>' . @$d2res['to'] . '</span></td>
					  <td><span>' . @$d2res['todt'] . '</span></td>
					  <td><span>' . @$d2res['type'] . '</span></td>
					  <td><span>-</span></td>
					  <td><button data-original-title="Delete" class="btn btn-xs btn-danger tooltipLink" data-toggle="tooltip" data-placement="top" title=""><i class="fa fa-trash-o"></i></button></td>
				  </tr>';
        }
        echo $html;
        exit;
    }

    public function updatePackRateAction() { //TPSysId
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $data = array(
            'UpdateDate' => @$currentDate,
            $_REQUEST['type'] => @$_REQUEST['packrate']
        );
        $where = array('TPSysId = ? ' => @$_REQUEST['packid']);
        $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
        exit;
    }

    public function CustomerPackageCancelPolicyAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';		
        $data = array(
            'TPIntSysId' => @$_REQUEST['packageId'],
            'Seq' => @$_REQUEST['cancel'],
            'RuleType' => '1',
            'AgencySysId' => @$intLoggedinUserAgencySysId,
            'Title' => 'Before ' . @$_REQUEST['cancel'] . ' Days',
            'ValueA' => @$_REQUEST['cancelpercnt'],
            'ValueB' => @$_REQUEST['cancelres'],
            'StartDate' => @$currentDate,
            'ValidTill' => @$currentDate,
            'DetailURL' => 'DetailURL',
            'CreateDate' => @$currentDate,
            'UpdateDate' => @$currentDate,
            'ApproveDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1',
            'IsAprooved' => '1'
        );
        $updateId = $objPackage->insertData('TB_Agency_Customer_TP_Rules', $data);
        $updateId1 = $objPackage->insertData('TB_Agency_Customer_TravelPlan_Rules', $data);
        exit;
    }

    public function packageCancelPolicyAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        //        echo '<pre>'; print_r($_REQUEST);
        //$currentDate = '2016-06-06';
        $multipackres = $this->getRequest()->getParam('multipackres');
        $reslastint = json_decode(base64_decode(@$multipackres), true);
        $packageCancelPolicyList = $objPackage->getPackageCancelPolictyList($_REQUEST['packageId']);
        $DaysBeforeArr = array_column($packageCancelPolicyList, 'DaysBefore');
        if (in_array($_REQUEST['cancel'], $DaysBeforeArr)) {
            $response = json_encode(array('success' => 0, 'msg' => 'You have already added cancellation rule for this criteria, Please delete if you want to change it.'));
            echo $response;
            exit;
        }
        //        print_r($reslastint);
        //        die;
        $lastInsertedId = array();
        for ($j = 0; $j < count(@$reslastint); $j++) {
            $data = array(
                'RuleType' => 1,
                'TPSysId' => @$reslastint[$j],
                'TPIntSysId' => 0,
                'Seq' => 0,
                'AgencySysId' => @$intLoggedinUserAgencySysId,
                'Title' => 'Before ' . @$_REQUEST['cancel'] . ' Days',
                'DaysBefore' => @$_REQUEST['cancel'],
                'IsPercentage' => ($_REQUEST['cancelpercnt'] > 0) ? 1 : 0,
                'Value' => ($_REQUEST['cancelpercnt']) ? $_REQUEST['cancelpercnt'] : 0,
                'ExtraValue' => ($_REQUEST['cancelAmount']) ? $_REQUEST['cancelAmount'] : 0,
                'StartDate' => $currentDate,
                'ValidTill' => $currentDate,
                'DetailURL' => '',
                'CreateDate' => $currentDate,
                'UpdateDate' => $currentDate,
                'ApproveDate' => $currentDate,
                'IsMarkForDel' => 0,
                'IsActive' => 1,
                'IsApproved' => 1
            );
            $lastInsertedId[] = $objPackage->insertData('TB_TravelPlan_Rules', $data);
        }
        $CurrencyHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency');
        $baseCurrencySymbol = $CurrencyHelperObj->getLoggedInAgencyBaseCurrency();
        $cancelPolicy = $objPackage->getPackageCancelPolicy($lastInsertedId[0]);
        $html = "<tr id = 'ruleid_$cancelPolicy[TPRulesSysId]'><td>$cancelPolicy[Title]</td><td>$cancelPolicy[Value]% + <span class='currency'>$baseCurrencySymbol</span> $cancelPolicy[ExtraValue]</td><td><a href='#' class='btn ls-red-btn btn-sm tooltipLink'  data-placement='top'  onclick='deleteCancellation($cancelPolicy[DaysBefore],$cancelPolicy[TPRulesSysId]);' data-toggle='tooltip' data-original-title='Delete'><i class='fa fa-trash-o'></i></a></td></tr>";

        //         $multipackres = $this->getRequest()->getParam('multipackres');
        //        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */

        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => 9,
            'UserSysId' => $this->intLoggedinUserId
        );
        Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);

        /* -------------------- end insert data for contributor tab----------------------- */

        echo json_encode(array('success' => 1, 'msg' => $html));
        exit;
    }

    public function packageMarketwiseRateoldModelAction() {


        echo "<pre>";
        print_r($_REQUEST);
        die;

        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';
        $marketPlaceArr = explode('_', @$_REQUEST['marketPlace']);
        $MarketPlaceId = $marketPlaceArr[0];
        $MarketPlace = $marketPlaceArr[1];
        $packCatagory = isset($_REQUEST['packType']) ? trim($_REQUEST['packType']) : 0;
        $fromDate = $toDate = date("Y-m-d", strtotime(str_replace('/', '-', $_REQUEST['fromdate'])));
        $fromDateData = $toDateData = $objPackage->checkDuplicateMarketWiseRate($_REQUEST['packageId'], $fromDate, $MarketPlaceId, $packCatagory);
        $isFixedDep = $_REQUEST['isFixedDep'];
        if (empty($isFixedDep)) {
            $toDate = date("Y-m-d", strtotime(str_replace('/', '-', $_REQUEST['todate'])));
            $toDateData = $objPackage->checkDuplicateMarketWiseRate($_REQUEST['packageId'], $toDate, $MarketPlaceId, $packCatagory);
        }




        //        $fromDate =  date("Y-m-d", strtotime($_REQUEST['fromdate']));
        //        $toDate = date("Y-m-d", strtotime($_REQUEST['todate'])); 
        //       echo  $fromDate .'   '.$toDate;die;
        //       $fromDateData = $objPackage->GetDuplicateMarketwiserateDate($_REQUEST['packageId'],$fromDate);
        //       $toDateData = $objPackage->GetDuplicateMarketwiserateDate($_REQUEST['packageId'],$toDate);
        //print_r(!empty($fromDateData));
        //print_r($toDateData);


        if (!empty($fromDateData) && !empty($toDateData)) {
            //        $frmDate = $fromDateData['FromDate']->format('d-M-y');
            //            $toDate = $fromDateData['ToDate']->format('d-M-y');
            echo 2; //"From Date and To Date are existing between period of $frmDate and  $toDate";  
            exit;
        }

        if (!empty($fromDateData)) {
            //            $frmDate = $fromDateData['FromDate']->format('d-M-y');
            //            $toDate = $fromDateData['ToDate']->format('d-M-y');
            echo 2; //"From Date is existing between period of $frmDate and  $toDate";
            exit;
        }

        if (!empty($toDateData)) {
            //            $frmDate = $toDateData['FromDate']->format('d-M-y');
            //            $toDate = $toDateData['ToDate']->format('d-M-y');
            echo 2; //"To Date is existing between period of $frmDate and  $toDate";
            exit;
        }

        // echo '<pre>';
        // print_r($_REQUEST);
        //       print_r($toDateData);
        //die('dsfdsfds');
        $data11 = array(
            'TPIntSysId' => @$_REQUEST['packageId'],
            'MarkType' => @$_REQUEST['MarkType'],
            'MarketPlaceId' => @$MarketPlaceId,
            'MarketPlace' => @$MarketPlace,
            'AgencySysId' => @$intLoggedinUserAgencySysId,
            'Permission' => !empty($_REQUEST['permission']) ? $_REQUEST['permission'] : 1,
            'MarkPercent' => !empty($_REQUEST['markup']) ? $_REQUEST['markup'] : 0,
            'CostPPDO' => !empty($_REQUEST['NewCostTwoPaxId']) ? $_REQUEST['NewCostTwoPaxId'] : 0,
            'CostInfent' => !empty($_REQUEST['NewCostPerInfentId']) ? $_REQUEST['NewCostPerInfentId'] : 0,
            'CostPPSO' => !empty($_REQUEST['NewCostExtraSOId']) ? $_REQUEST['NewCostExtraSOId'] : 0,
            'AdultCostExtraBed' => !empty($_REQUEST['NewCostPerAdultExtraBedId']) ? $_REQUEST['NewCostPerAdultExtraBedId'] : 0,
            'CostExtraBed' => !empty($_REQUEST['NewCostPerChildExtraBedId']) ? $_REQUEST['NewCostPerChildExtraBedId'] : 0,
            'CostChildWithoutBed' => !empty($_REQUEST['NewCostPerChildWithExtraBedId']) ? $_REQUEST['NewCostPerChildWithExtraBedId'] : 0,
            'FixedDepartureInventory' => !empty($_REQUEST['inventoryqty']) ? (int) $_REQUEST['inventoryqty'] : 0,
            'PackCategoryId' => !empty($_REQUEST['packType']) ? $_REQUEST['packType'] : 0,
            'Tax' => !empty($_REQUEST['tax']) ? $_REQUEST['tax'] : 'Included',
            'ExcludedPercent' => ($_REQUEST['tax'] == 'Excluded') ? $_REQUEST['taxres'] : 0,
            'FromDate' => $fromDate,
            'TourType' => 1,
            'ToDate' => $toDate,
            'CurrencyType' => @$_REQUEST['currency'],
            'CreateDate' => $currentDate,
            'UpdateDate' => $currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );

        $ratecurrencyArr = explode('_', @$_REQUEST['ratecurrency']);
        $ratecurrencyId = $ratecurrencyArr[0];
        $ratecurrency = $ratecurrencyArr[1];
        $data = array(
            'TPSysId' => @$_REQUEST['packageId'],
            'MasterRefId' => '0',
            'MarketPlaceId' => @$MarketPlaceId,
            'CurrencyType' => @$ratecurrencyId,
            'CostSO' => $_REQUEST['CostExtraSO'] ? $_REQUEST['CostExtraSO'] : 0,
            'AdultCostExtraBed' => $_REQUEST['CostPerAdultExtraBed'] ? $_REQUEST['CostPerAdultExtraBed'] : 0,
            'CostExtraBed' => $_REQUEST['CostPerChildExtraBed'] ? $_REQUEST['CostPerChildExtraBed'] : 0,
            'CostWithoutBed' => $_REQUEST['CostPerChildWithExtraBed'] ? $_REQUEST['CostPerChildWithExtraBed'] : 0,
            'CostDO' => $_REQUEST['CostTwoPax'] ? $_REQUEST['CostTwoPax'] : 0,
            'CostInfent' => !empty($_REQUEST['CostPerInfent']) ? $_REQUEST['CostPerInfent'] : 0,
            'FixedDepartureInventory' => !empty($_REQUEST['inventoryqty']) ? (int) $_REQUEST['inventoryqty'] : 0,
            'StartDate' => $fromDate,
            'ValidTill' => $toDate,
            'IsAprooved' => '1',
            'CreateDate' => $currentDate,
            'UpdateDate' => $currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );

        /* ----------Calculation for field PricePerPerson based on CPPDO------------------ */
        $packRate = $data;
        $packMPRate = $data11;
        $roomjson = array(1 => array('Adult' => 2, 'Child' => 0, 'bedtype' => 'none'));
        $strRoomInfoJson = json_encode($roomjson);
        $arrPkg['DiscountType'] = 0;
        $arrPkg['DiscountVal'] = 0;
        $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($_REQUEST['packageId'], $strRoomInfoJson, $arrPkg, $packMPRate, $packRate);
        $finalPackageCostWithMarkupnTax = $arrPkgCost['FinalCost'] + $arrPkgCost['FinalMarkUp'] + $arrPkgCost['Tax'];
        $ppCOst = $finalPackageCostWithMarkupnTax / 2;
        $data11['PricePerPerson'] = $ppCOst;
        /* ----------------end Calculation for field CostPerPerson---------------------- */
        //echo '<pre>';print_r($data11);echo '</pre>';
        //echo '<pre>';print_r($data);echo '</pre>';die('wait.....');
        $updateId1 = $objPackage->insertData('TB_TravelPlan_Marketwise_Rate', $data11);
        if ($updateId1) {
            $this->view->MarketwiseRateData = $objPackage->getFlexiPackageMPRate($updateId1);
        }
        $multipackres = $this->getRequest()->getParam('multipackres');
        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => 2,
            'UserSysId' => $this->intLoggedinUserId
        );
        Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
        /* -------------------- end insert data for contributor tab----------------------- */
        $updateId2 = $objPackage->insertData('TB_TravelPlan_Rate', $data);

        //  echo 1; exit;
    }

    public function packageMarketwiseRateAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $marketPlaceArr = explode('_', @$_REQUEST['marketPlace']);
        $MarketPlaceId = $marketPlaceArr[0];
        $MarketPlace = $marketPlaceArr[1];
        $packCatagory = isset($_REQUEST['packType']) ? trim($_REQUEST['packType']) : 0;
        $fromDate = $toDate = date("Y-m-d", strtotime(str_replace('/', '-', $_REQUEST['fromdate'])));
        $fromDateData = $toDateData = $objPackage->checkDuplicateMarketWiseRate($_REQUEST['packageId'], $fromDate, $MarketPlaceId, $packCatagory);
        $isFixedDep = $_REQUEST['isFixedDep'];
        $myflexiPackageList = $objPackage->getFlexiPackageList($_REQUEST['packageId']);
        $IsCommonFlightPackage = isset($myflexiPackageList['IsCommonFlightPackage']) ? $myflexiPackageList['IsCommonFlightPackage'] : 0;
        if (empty($isFixedDep) || ($isFixedDep == 1 && $IsCommonFlightPackage == 1)) {
            $toDate = date("Y-m-d", strtotime(str_replace('/', '-', $_REQUEST['todate'])));
            $toDateData = $objPackage->checkDuplicateMarketWiseRate($_REQUEST['packageId'], $toDate, $MarketPlaceId, $packCatagory);
        }
        if ((is_array($fromDateData) && count($fromDateData)) > 0 && (is_array($toDateData) && count($toDateData) > 0)) {
            echo 2; //"From Date and To Date are existing between period of $frmDate and  $toDate";  
            exit;
        }
        if (is_array($fromDateData) && count($fromDateData) > 0) {
            echo 2; //"From Date is existing between period of $frmDate and  $toDate";
            exit;
        }
        if (is_array($toDateData) && count($toDateData) > 0) {
            echo 2; //"To Date is existing between period of $frmDate and  $toDate";
            exit;
        }


        /* Added By Mangal For Add Itenary FixedInventory TB_TravelPlan_Itenary_FixedInventory Data 17-11-2018 Start */
        if (!empty($isFixedDep)) {

            if ($myflexiPackageList['MasterRefId'] == '0') {
                $childpackarr = $objPackage->getChildPackageList($myflexiPackageList['TPSysId']);
            } else {
                $childpackarr = $objPackage->getChildPackageList($myflexiPackageList['MasterRefId']);
            }
            //            echo "<pre>";print_r($childpackarr);die;
            $MasterId = 0;
            if (!empty($childpackarr)) {
                foreach ($childpackarr as $val) {
                    if ($val['MasterRefId'] == '0') {
                        $MasterId = $val['TPSysId'];
                    }
                }
            }
            $FromDestinationFixedInventoryData = $objPackage->getFromDestinationFixedInventoryData($MasterId);
            if (!empty($FromDestinationFixedInventoryData)) {
                foreach ($FromDestinationFixedInventoryData as $destinationValArray) {
                    $destinationId = $destinationValArray['id'];
                    $dupliucateInventory = $objPackage->checkFixedInventoryInPkg($fromDate, $MasterId, $destinationId);
                    if (empty($dupliucateInventory)) {
                        $saveFixedInventoryArray = array(
                            "FromDate" => $fromDate,
                            "ToDate" => $toDate,
                            "FixedInventory" => (int) $_REQUEST['inventoryqty'],
                            "HoldInventory" => 0,
                            "SoldInventory" => 0,
                            "CurrentInventory" => (int) $_REQUEST['inventoryqty'],
                            "AdultCost" => 0,
                            "InfantCost" => 0,
                            "MarkupType" => 1,
                            "B2CAdultMarkup" => 0,
                            "B2BAdultMarkup" => 0,
                            "B2CInfantMarkup" => 0,
                            "B2BInfantMarkup" => 0,
                            "CreateDate" => date('Y-m-d H:i:s'),
                            "UpdateDate" => date('Y-m-d H:i:s'),
                            "IsMarkForDel" => 0,
                            "IsActive" => 1,
                            "CurrencySysId" => isset($_REQUEST['currency']) ? (int) $_REQUEST['currency'] : 1,
                            "FixedInvnSysId" => $destinationId,
                            "TPSysId" => $MasterId
                        );
                        $FixedInvnSysId = $objPackage->insertData('TB_TravelPlan_Itinerary_FixedInventory', $saveFixedInventoryArray);
                    } else {
                        $updateDataInvF = ['IsMarkForDel' => 0];
                        $whereInvF = array('TPSysID = ? ' => $MasterId, 'FromDate = ? ' => $fromDate);
                        $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory', $updateDataInvF, $whereInvF);
                    }
                }
            }
        }

        /* Added By Mangal For Add Itenary FixedInventory TB_TravelPlan_Itenary_FixedInventory Data 17-11-2018 End */




        $columnArray = array(2 => "NewCostTwoPaxId", 4 => "NewCostFourPaxId", 6 => "NewCostSixPaxId", 8 => "NewCostEightPaxId", 10 => "NewCostTenPaxId", 12 => "NewCostTwelvePaxId");
        $columnArraySet = array(2 => "CostTwoPax", 4 => "CostFourPax", 6 => "CostSixPax", 8 => "CostEightPax", 10 => "CostTenPax", 12 => "CostTwelvePax");
        $ratecurrencyArr = explode('_', @$_REQUEST['ratecurrency']);
        $ratecurrencyId = $ratecurrencyArr[0];
        $ratecurrency = $ratecurrencyArr[1];
        $MarketwiseRateData = array();
        $i = 0;
        foreach ($columnArray as $arrayKey => $arrayVal) {
            $data11 = array(
                'TPIntSysId' => @$_REQUEST['packageId'],
                'MarkType' => @$_REQUEST['MarkType'],
                'MarketPlaceId' => @$MarketPlaceId,
                'MarketPlace' => @$MarketPlace,
                'AgencySysId' => @$intLoggedinUserAgencySysId,
                'Permission' => !empty($_REQUEST['permission']) ? $_REQUEST['permission'] : 1,
                'MarkPercent' => !empty($_REQUEST['markup']) ? $_REQUEST['markup'] : 0,
                'CostPPDO' => !empty($_REQUEST[$arrayVal]) ? $_REQUEST[$arrayVal] : null,
                'PricePerPerson' => !empty($_REQUEST[$arrayVal]) ? $_REQUEST[$arrayVal] : 0,
                'CostInfent' => !empty($_REQUEST['NewCostPerInfentId']) ? $_REQUEST['NewCostPerInfentId'] : null,
                'CostPPSO' => !empty($_REQUEST['NewCostExtraSOId']) ? $_REQUEST['NewCostExtraSOId'] : null,
                'AdultCostExtraBed' => !empty($_REQUEST['NewCostPerAdultExtraBedId']) ? $_REQUEST['NewCostPerAdultExtraBedId'] : null,
                'CostExtraBed' => !empty($_REQUEST['NewCostPerChildExtraBedId']) ? $_REQUEST['NewCostPerChildExtraBedId'] : null,
                'CostChildWithoutBed' => !empty($_REQUEST['NewCostPerChildWithExtraBedId']) ? $_REQUEST['NewCostPerChildWithExtraBedId'] : null,
                'FixedDepartureInventory' => !empty($_REQUEST['inventoryqty']) ? (int) $_REQUEST['inventoryqty'] : 0,
                'PackCategoryId' => !empty($_REQUEST['packType']) ? $_REQUEST['packType'] : 0,
                'Tax' => !empty($_REQUEST['tax']) ? $_REQUEST['tax'] : 'Included',
                'CostQuad' => $_REQUEST['NewCostQuadId'] ? $_REQUEST['NewCostQuadId'] : null,
                'CostQuint' => $_REQUEST['NewCostQuintId'] ? $_REQUEST['NewCostQuintId'] : null,
                'CostHexa' => $_REQUEST['NewCostHexaId'] ? $_REQUEST['NewCostHexaId'] : null,
                'CostChildEBTwoToFour' => $_REQUEST['NewCCEBTwoToFourId'] ? $_REQUEST['NewCCEBTwoToFourId'] : null,
                'CostChildWOEBTwoToFour' => $_REQUEST['NewCCWOEBTwoToFourId'] ? $_REQUEST['NewCCWOEBTwoToFourId'] : null,
                'ExcludedPercent' => ($_REQUEST['tax'] == 'Excluded') ? $_REQUEST['taxres'] : 0,
                'FromDate' => $fromDate,
                'TourType' => 1,
                'ToDate' => $toDate,
                'CurrencyType' => @$_REQUEST['currency'],
                'CreateDate' => $currentDate,
                'UpdateDate' => $currentDate,
                'IsMarkForDel' => '0',
                'IsActive' => '1',
                'Pax' => $arrayKey,
                'FCType' => !empty($_REQUEST['FCType']) ? $_REQUEST['FCType'] : 0,
                'FProfitType' => !empty($_REQUEST['FProfitType']) ? $_REQUEST['FProfitType'] : 0,
                'Commissions' => !empty($_REQUEST['Commissions']) ? $_REQUEST['Commissions'] : 0,
            );
            $keyColumn = $columnArraySet[$arrayKey];
            $data = array(
                'TPSysId' => @$_REQUEST['packageId'],
                'MasterRefId' => '0',
                'MarketPlaceId' => @$MarketPlaceId,
                'CurrencyType' => @$ratecurrencyId,
                'CostSO' => $_REQUEST['CostExtraSO'] ? $_REQUEST['CostExtraSO'] : null,
                'AdultCostExtraBed' => $_REQUEST['CostPerAdultExtraBed'] ? $_REQUEST['CostPerAdultExtraBed'] : null,
                'CostExtraBed' => $_REQUEST['CostPerChildExtraBed'] ? $_REQUEST['CostPerChildExtraBed'] : null,
                'CostWithoutBed' => $_REQUEST['CostPerChildWithExtraBed'] ? $_REQUEST['CostPerChildWithExtraBed'] : null,
                'CostDO' => !empty($_REQUEST[$keyColumn]) ? $_REQUEST[$keyColumn] : null,
                'CostQuad' => $_REQUEST['CostQuad'] ? $_REQUEST['CostQuad'] : null,
                'CostQuint' => $_REQUEST['CostQuint'] ? $_REQUEST['CostQuint'] : null,
                'CostHexa' => $_REQUEST['CostHexa'] ? $_REQUEST['CostHexa'] : null,
                'CostChildEBTwoToFour' => $_REQUEST['CCEBTwoToFour'] ? $_REQUEST['CCEBTwoToFour'] : null,
                'CostChildWOEBTwoToFour' => $_REQUEST['CCWOEBTwoToFour'] ? $_REQUEST['CCWOEBTwoToFour'] : null,
                'CostInfent' => !empty($_REQUEST['CostPerInfent']) ? $_REQUEST['CostPerInfent'] : null,
                'FixedDepartureInventory' => !empty($_REQUEST['inventoryqty']) ? (int) $_REQUEST['inventoryqty'] : 0,
                'StartDate' => $fromDate,
                'ValidTill' => $toDate,
                'IsAprooved' => '1',
                'CreateDate' => $currentDate,
                'UpdateDate' => $currentDate,
                'IsMarkForDel' => '0',
                'IsActive' => '1',
                'Pax' => $arrayKey
            );
            //  echo "<pre>";print_r($data);exit;
            $packRate = $data;
            $packMPRate = $data11;
            $roomjson = array(1 => array('Adult' => 2, 'Child' => 0, 'bedtype' => 'none'));
            $strRoomInfoJson = json_encode($roomjson);
            $arrPkg['DiscountType'] = 0;
            $arrPkg['DiscountVal'] = 0;
            try {
                $updateId2 = $objPackage->insertData('TB_TravelPlan_Rate', $data);
                $updateId1 = $objPackage->insertData('TB_TravelPlan_Marketwise_Rate', $data11);
            } catch (Zend_Exception $e) {
                continue;
            }

            if ($updateId1) {
                $MarketwiseRateData[$i] = $objPackage->getFlexiPackageMPRate($updateId1);
            }
            $i++;
        }
        $this->view->MarketwiseRateData = $MarketwiseRateData;
        /* ----------Calculation for field PricePerPerson based on CPPDO------------------ */

        //        $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($_REQUEST['packageId'], $strRoomInfoJson, $arrPkg, $packMPRate, $packRate);
        //        $finalPackageCostWithMarkupnTax = $arrPkgCost['FinalCost'] + $arrPkgCost['FinalMarkUp'] + $arrPkgCost['Tax'];
        //        $ppCOst = $finalPackageCostWithMarkupnTax / 2;

        /* ----------------end Calculation for field CostPerPerson---------------------- */

        $multipackres = $this->getRequest()->getParam('multipackres');
        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => 2,
            'UserSysId' => $this->intLoggedinUserId
        );
        Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
        /* -------------------- end insert data for contributor tab----------------------- */
        echo '';
        exit;
    }

    public function packageMarketwiseRateDaywiseAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $marketPlaceArr = explode('_', @$_REQUEST['marketPlace']);
        $MarketPlaceId = $marketPlaceArr[0];
        $MarketPlace = $marketPlaceArr[1];

        $daywisePrice = $_REQUEST['daywisePrice'];
        $selecteddays = explode(',', $_REQUEST['selecteddays']);
        $startDate = new DateTime($_REQUEST['fromdate']);
        $endDate = new DateTime($_REQUEST['todate']);
        $interval = $startDate->diff($endDate);
        if ($interval->days > 92) {
            echo 3;
            exit;
        }

        while ($startDate <= $endDate) {

            if (in_array($startDate->format('w'), $selecteddays)) {
                $fixdates[] = $startDate->format('Y-m-d');
            }

            $startDate->modify('+1 day');
        }


        $packCatagory = isset($_REQUEST['packType']) ? trim($_REQUEST['packType']) : 0;

        $isFixedDep = $_REQUEST['isFixedDep'];

        foreach ($fixdates as $fromDate) {
            $toDate = $fromDate;
            $fromDateData = $toDateData = $objPackage->checkDuplicateMarketWiseRate($_REQUEST['packageId'], $fromDate, $MarketPlaceId, $packCatagory);
            if (empty($fromDateData)) {
                //            echo "<pre>";print_r($childpackarr);die;
                /* Added By Mangal For Add Itenary FixedInventory TB_TravelPlan_Itenary_FixedInventory Data 17-11-2018 Start */

                if (!empty($isFixedDep)) {

                    $myflexiPackageList = $objPackage->getFlexiPackageList($_REQUEST['packageId']);

                    if ($myflexiPackageList['MasterRefId'] == '0') {
                        $childpackarr = $objPackage->getChildPackageList($myflexiPackageList['TPSysId']);
                    } else {
                        $childpackarr = $objPackage->getChildPackageList($myflexiPackageList['MasterRefId']);
                    }
                    //            echo "<pre>";print_r($childpackarr);die;
                    $MasterId = 0;
                    if (!empty($childpackarr)) {
                        foreach ($childpackarr as $val) {
                            if ($val['MasterRefId'] == '0') {
                                $MasterId = $val['TPSysId'];
                            }
                        }
                    }
                    $FromDestinationFixedInventoryData = $objPackage->getFromDestinationFixedInventoryData($MasterId);
                    if (!empty($FromDestinationFixedInventoryData)) {
                        foreach ($FromDestinationFixedInventoryData as $destinationValArray) {
                            $destinationId = $destinationValArray['id'];
                            $dupliucateInventory = $objPackage->checkFixedInventoryInPkg($fromDate, $MasterId, $destinationId);
                            if (empty($dupliucateInventory)) {
                                $saveFixedInventoryArray = array(
                                    "FromDate" => $fromDate,
                                    "FixedInventory" => (int) $_REQUEST['inventoryqty'],
                                    "HoldInventory" => 0,
                                    "SoldInventory" => 0,
                                    "CurrentInventory" => (int) $_REQUEST['inventoryqty'],
                                    "AdultCost" => 0,
                                    "InfantCost" => 0,
                                    "MarkupType" => 1,
                                    "B2CAdultMarkup" => 0,
                                    "B2BAdultMarkup" => 0,
                                    "B2CInfantMarkup" => 0,
                                    "B2BInfantMarkup" => 0,
                                    "CreateDate" => date('Y-m-d H:i:s'),
                                    "UpdateDate" => date('Y-m-d H:i:s'),
                                    "IsMarkForDel" => 0,
                                    "IsActive" => 1,
                                    "CurrencySysId" => isset($_REQUEST['currency']) ? (int) $_REQUEST['currency'] : 1,
                                    "FixedInvnSysId" => $destinationId,
                                    "TPSysId" => $MasterId
                                );
                                $FixedInvnSysId = $objPackage->insertData('TB_TravelPlan_Itinerary_FixedInventory', $saveFixedInventoryArray);
                            } else {
                                $updateDataInvF = [
                                    'IsMarkForDel' => 0,
                                    "HoldInventory" => 0,
                                    "SoldInventory" => 0,
                                    "FixedInventory" => (int) $_REQUEST['inventoryqty'],
                                    "CurrentInventory" => (int) $_REQUEST['inventoryqty'],
                                ];
                                $whereInvF = array('TPSysID = ? ' => $MasterId, 'FromDate = ? ' => $fromDate);
                                $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory', $updateDataInvF, $whereInvF);
                            }
                        }
                    }
                }



                /* Added By Mangal For Add Itenary FixedInventory TB_TravelPlan_Itenary_FixedInventory Data 17-11-2018 End */




                $columnArray = array(2 => "NewCostTwoPaxId", 4 => "NewCostFourPaxId", 6 => "NewCostSixPaxId", 8 => "NewCostEightPaxId", 10 => "NewCostTenPaxId", 12 => "NewCostTwelvePaxId");
                $columnArraySet = array(2 => "CostTwoPax", 4 => "CostFourPax", 6 => "CostSixPax", 8 => "CostEightPax", 10 => "CostTenPax", 12 => "CostTwelvePax");
                $ratecurrencyArr = explode('_', @$_REQUEST['ratecurrency']);
                $ratecurrencyId = $ratecurrencyArr[0];
                $ratecurrency = $ratecurrencyArr[1];
                $MarketwiseRateData = array();
                $i = 0;
                foreach ($columnArray as $arrayKey => $arrayVal) {
                    $data11 = array(
                        'TPIntSysId' => @$_REQUEST['packageId'],
                        'MarkType' => @$_REQUEST['MarkType'],
                        'MarketPlaceId' => @$MarketPlaceId,
                        'MarketPlace' => @$MarketPlace,
                        'AgencySysId' => @$intLoggedinUserAgencySysId,
                        'Permission' => !empty($_REQUEST['permission']) ? $_REQUEST['permission'] : 1,
                        'MarkPercent' => !empty($_REQUEST['markup']) ? $_REQUEST['markup'] : 0,
                        'CostPPDO' => !empty($_REQUEST[$arrayVal]) ? $_REQUEST[$arrayVal] : 0,
                        'PricePerPerson' => !empty($_REQUEST[$arrayVal]) ? $_REQUEST[$arrayVal] : 0,
                        'CostInfent' => !empty($_REQUEST['NewCostPerInfentId']) ? $_REQUEST['NewCostPerInfentId'] : 0,
                        'CostPPSO' => !empty($_REQUEST['NewCostExtraSOId']) ? $_REQUEST['NewCostExtraSOId'] : 0,
                        'AdultCostExtraBed' => !empty($_REQUEST['NewCostPerAdultExtraBedId']) ? $_REQUEST['NewCostPerAdultExtraBedId'] : 0,
                        'CostExtraBed' => !empty($_REQUEST['NewCostPerChildExtraBedId']) ? $_REQUEST['NewCostPerChildExtraBedId'] : 0,
                        'CostChildWithoutBed' => !empty($_REQUEST['NewCostPerChildWithExtraBedId']) ? $_REQUEST['NewCostPerChildWithExtraBedId'] : 0,
                        'FixedDepartureInventory' => !empty($_REQUEST['inventoryqty']) ? (int) $_REQUEST['inventoryqty'] : 0,
                        'PackCategoryId' => !empty($_REQUEST['packType']) ? $_REQUEST['packType'] : 0,
                        'Tax' => !empty($_REQUEST['tax']) ? $_REQUEST['tax'] : 'Included',
                        'ExcludedPercent' => ($_REQUEST['tax'] == 'Excluded') ? $_REQUEST['taxres'] : 0,
                        'FromDate' => $fromDate,
                        'TourType' => 1,
                        'ToDate' => $toDate,
                        'CurrencyType' => @$_REQUEST['currency'],
                        'CreateDate' => $currentDate,
                        'UpdateDate' => $currentDate,
                        'IsMarkForDel' => '0',
                        'IsActive' => '1',
                        'Pax' => $arrayKey
                    );
                    $keyColumn = $columnArraySet[$arrayKey];
                    $data = array(
                        'TPSysId' => @$_REQUEST['packageId'],
                        'MasterRefId' => '0',
                        'MarketPlaceId' => @$MarketPlaceId,
                        'CurrencyType' => @$ratecurrencyId,
                        'CostSO' => $_REQUEST['CostExtraSO'] ? $_REQUEST['CostExtraSO'] : 0,
                        'AdultCostExtraBed' => $_REQUEST['CostPerAdultExtraBed'] ? $_REQUEST['CostPerAdultExtraBed'] : 0,
                        'CostExtraBed' => $_REQUEST['CostPerChildExtraBed'] ? $_REQUEST['CostPerChildExtraBed'] : 0,
                        'CostWithoutBed' => $_REQUEST['CostPerChildWithExtraBed'] ? $_REQUEST['CostPerChildWithExtraBed'] : 0,
                        'CostDO' => !empty($_REQUEST[$keyColumn]) ? $_REQUEST[$keyColumn] : 0,
                        'CostInfent' => !empty($_REQUEST['CostPerInfent']) ? $_REQUEST['CostPerInfent'] : 0,
                        'FixedDepartureInventory' => !empty($_REQUEST['inventoryqty']) ? (int) $_REQUEST['inventoryqty'] : 0,
                        'StartDate' => $fromDate,
                        'ValidTill' => $toDate,
                        'IsAprooved' => '1',
                        'CreateDate' => $currentDate,
                        'UpdateDate' => $currentDate,
                        'IsMarkForDel' => '0',
                        'IsActive' => '1',
                        'Pax' => $arrayKey
                    );
                    //        echo "<pre>";print_r($data);exit;
                    $packRate = $data;
                    $packMPRate = $data11;
                    $roomjson = array(1 => array('Adult' => 2, 'Child' => 0, 'bedtype' => 'none'));
                    $strRoomInfoJson = json_encode($roomjson);
                    $arrPkg['DiscountType'] = 0;
                    $arrPkg['DiscountVal'] = 0;

                    $updateId1 = $objPackage->insertData('TB_TravelPlan_Marketwise_Rate', $data11);
                    if ($updateId1) {
                        $MarketwiseRateData[$i] = $objPackage->getFlexiPackageMPRate($updateId1);
                    }

                    $updateId2[] = $objPackage->insertData('TB_TravelPlan_Rate', $data);

                    $i++;
                }
                $this->view->MarketwiseRateData = $MarketwiseRateData;

                $multipackres = $this->getRequest()->getParam('multipackres');
                $reslastint = json_decode(base64_decode($multipackres), true);
                /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
                $userHistoryData = array(
                    'TPSysId' => $reslastint[0],
                    'StepId' => 6,
                    'Details' => 2,
                    'UserSysId' => $this->intLoggedinUserId
                );
                Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
                /* -------------------- end insert data for contributor tab----------------------- */
            }
        }
        //echo "<pre>";print_r($FixedInvnSysId);
        //echo "<pre>";print_r($updateId2);die;
        echo '';
        exit;
    }

    public function addbyoreadymadecostoldAction() { //add as old by mangal for flight inventory change ui
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $getData = $this->getRequest()->getPost();
        //        echo '<pre>';
        //        print_r($getData); 
        //        
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $getData['tpsysID'];
        $chktpratesysID = $objPackage->ChkTPRateSysId($tpsysID, $getData['marketplace']);
        if (!empty($chktpratesysID)) {
            echo 'You have already ratesheet for this market place.';
            exit;
        }

        $possibleCombinationArr = json_decode(base64_decode($getData['possibleCombination']));
        //        echo '<pre>';print_r($possibleCombinationArr);
        //        die;
        $taxiput = $getData['TaxInput'];
        $taxpercentage = $getData['taxpercentage'];
        $taxtype = ($taxiput == "1") ? "Included" : "Excluded";
        $taxvalue = ($taxiput == "1") ? 0 : $taxpercentage;

        $agencysysID = $this->intLoggedinUserAgencySysId;
        $tpinfo = $objPackage->GetTravelPlanInfo($tpsysID);
        $startdate = $tpinfo['StartDate'];
        $pkgstartdate = $startdate->format('Y-m-d');
        $validdate = $tpinfo['ValidTill'];
        $pkgvaliddate = $validdate->format('Y-m-d');
        $created_date = date('Y-m-d');
        $k = 1;
        // $m = 1;
        foreach ($possibleCombinationArr as $tourId => $pkgcategoryArray) {
            foreach ($pkgcategoryArray as $pkgcategoryId => $mealPlanArray) {
                foreach ($mealPlanArray as $mealPlanId => $mealPlan) {
                    $counter = $tourId . '_' . $pkgcategoryId . '_' . $mealPlanId;
                    $pvtmycostpp = 'mycostpp_' . $counter;
                    $markupvalue = 'marktype_' . $counter;
                    $pvtmycosttotal = 'mycosttotal_' . $counter;
                    $priceperperson = 'sp_' . $counter;
                    if ($pvtmycosttotal) {
                        $costsheet1 = array(
                            'TPIntSysId' => $tpsysID,
                            'AgencySysId' => $agencysysID,
                            'FromDate' => $pkgstartdate,
                            'ToDate' => $pkgvaliddate,
                            'CurrencyType' => 1,
                            'TourType' => $tourId,
                            'PackCategoryId' => $pkgcategoryId,
                            'MealPlanType' => $mealPlanId,
                            'MarkType' => $getData['MarkType'],
                            'MarketPlaceId' => $getData['marketplace'],
                            'MarketPlace' => '',
                            'Permission' => 0,
                            'MarkPercent' => $getData[$markupvalue],
                            'TotalCost' => round($getData[$pvtmycosttotal]),
                            'CostPerPerson' => round($getData[$pvtmycostpp]),
                            'PricePerPerson' => round($getData[$priceperperson]),
                            'CostPPSO' => 0,
                            'CostPPDO' => 0,
                            //                            'CostPPTO' => 0,
                            'CostExtraBed' => 0,
                            'CostChildWithoutBed' => 0,
                            'Tax' => $taxtype,
                            'ExcludedPercent' => $taxvalue,
                            'CreateDate' => $created_date,
                            'UpdateDate' => $created_date,
                            'IsMarkForDel' => 0,
                            'IsActive' => 1,
                        );
                        //              print_r($costsheet1);
                        $updateId1 = $objPackage->insertData('TB_TravelPlan_MarketWise_Rate', $costsheet1);
                    }
                }
            }
        }
    }

    public function addbyoreadymadecostAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $getData = $this->getRequest()->getPost();
        //        echo '<pre>';print_r($getData);die;

        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $getData['tpsysID'];
        $B2CMarkUp = trim($getData['B2CMarkUp']);
        $B2BMarkUp = trim($getData['B2BMarkUp']);

        $chktpratesysID1 = $objPackage->ChkTPRateSysId($tpsysID, 1, 0);
        $chktpratesysID2 = $objPackage->ChkTPRateSysId($tpsysID, 2, 0);

        $message = '';
        //        if (!empty($chktpratesysID1) && !empty($chktpratesysID2)) { 
        //            $message = 'You have already ratesheet for b2c and b2c.'; 
        //            echo json_encode(array('status'=>false,'msg'=>$message));exit;
        //        }
        //        if (!empty($chktpratesysID1)) { 
        //            $message = 'You have already ratesheet for b2c.'; 
        //            echo json_encode(array('status'=>false,'msg'=>$message));exit;
        //            
        //        }
        //        if (!empty($chktpratesysID2)) { 
        //            $message = 'You have already ratesheet for b2b.'; 
        //            echo json_encode(array('status'=>false,'msg'=>$message));exit;
        //        }

        $possibleCombinationArr = json_decode(base64_decode($getData['possibleCombination']));

        $taxiput = $getData['TaxInput'];
        $taxpercentage = $getData['taxpercentage'];
        $taxtype = ($taxiput == "1") ? "Included" : "Excluded";
        $taxvalue = ($taxiput == "1") ? 0 : $taxpercentage;

        $agencysysID = $this->intLoggedinUserAgencySysId;
        $tpinfo = $objPackage->GetTravelPlanInfo($tpsysID);
        $startdate = $tpinfo['StartDate'];
        $pkgstartdate = $startdate->format('Y-m-d');
        $validdate = $tpinfo['ValidTill'];
        $pkgvaliddate = $validdate->format('Y-m-d');
        $created_date = date('Y-m-d');
        $k = 1;

        if (!empty($getData['mycosttotal'])) {
            $PricePerPerson = 0;
            if ((int) $getData['MarkUpType'] == 1) {
                $PricePerPerson = $getData['mycostpp'] + (int) $B2CMarkUp;
            } else if ((int) $getData['MarkUpType'] == 2) {
                $PricePerPerson = $getData['mycostpp'] + ($getData['mycostpp'] * (int) $B2CMarkUp) / 100;
            }

            $costsheet1 = array(
                'TPIntSysId' => $tpsysID,
                'AgencySysId' => $agencysysID,
                'FromDate' => $pkgstartdate,
                'ToDate' => $pkgvaliddate,
                'CurrencyType' => 1,
                'TourType' => 1,
                'PackCategoryId' => 3,
                'MealPlanType' => 0,
                'MarkType' => (int) $getData['MarkUpType'],
                'MarketPlaceId' => 1,
                'MarketPlace' => 'B2C',
                'Permission' => 0,
                'MarkPercent' => (int) $B2CMarkUp,
                'TotalCost' => round($getData['mycosttotal']),
                'CostPerPerson' => round($getData['mycostpp']),
                'PricePerPerson' => round($PricePerPerson),
                'CostPPSO' => 0,
                'CostPPDO' => 0,
                //                'CostPPTO' => 0,
                'CostExtraBed' => 0,
                'CostChildWithoutBed' => 0,
                'Tax' => 0,
                'ExcludedPercent' => 0,
                'CreateDate' => $created_date,
                'UpdateDate' => $created_date,
                'IsMarkForDel' => (trim($B2CMarkUp) == '') ? 1 : 0,
                'IsActive' => 1,
            );
            if (!empty($chktpratesysID1)) {
                $TPRateSheetSysId = (int) $chktpratesysID1['TPRateSheetSysId'];
                $where1 = array(
                    'TPRateSheetSysId = ? ' => $TPRateSheetSysId,
                );
                $updateId1 = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $costsheet1, $where1);
            } else {
                $updateId1 = $objPackage->insertData('TB_TravelPlan_MarketWise_Rate', $costsheet1);
            }
        }
        if (!empty($getData['mycosttotal'])) {
            $PricePerPerson = 0;
            if ((int) $getData['MarkUpType'] == 1) {
                $PricePerPerson = $getData['mycostpp'] + (int) $B2BMarkUp;
            } else if ((int) $getData['MarkUpType'] == 2) {
                $PricePerPerson = $getData['mycostpp'] + ($getData['mycostpp'] * (int) $B2BMarkUp) / 100;
            }
            $costsheet2 = array(
                'TPIntSysId' => $tpsysID,
                'AgencySysId' => $agencysysID,
                'FromDate' => $pkgstartdate,
                'ToDate' => $pkgvaliddate,
                'CurrencyType' => 1,
                'TourType' => 1,
                'PackCategoryId' => 3,
                'MealPlanType' => 0,
                'MarkType' => (int) $getData['MarkUpType'],
                'MarketPlaceId' => 2,
                'MarketPlace' => 'B2B',
                'Permission' => 0,
                'MarkPercent' => (int) $B2BMarkUp,
                'TotalCost' => round($getData['mycosttotal']),
                'CostPerPerson' => round($getData['mycostpp']),
                'PricePerPerson' => round($PricePerPerson),
                'CostPPSO' => 0,
                'CostPPDO' => 0,
                //                'CostPPTO' => 0,
                'CostExtraBed' => 0,
                'CostChildWithoutBed' => 0,
                'Tax' => 0,
                'ExcludedPercent' => 0,
                'CreateDate' => $created_date,
                'UpdateDate' => $created_date,
                'IsMarkForDel' => (trim($B2BMarkUp) == '') ? 1 : 0,
                'IsActive' => 1,
            );

            if (!empty($chktpratesysID2)) {
                $TPRateSheetSysId = (int) $chktpratesysID2['TPRateSheetSysId'];
                $where2 = array(
                    'TPRateSheetSysId = ? ' => $TPRateSheetSysId,
                );
                $updateId2 = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $costsheet2, $where2);
            } else {
                $updateId2 = $objPackage->insertData('TB_TravelPlan_MarketWise_Rate', $costsheet2);
            }
        }
        echo json_encode(array('status' => true, 'msg' => 'Success'));
        exit;
    }

    public function addbyoreadymadecostforfixAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $agencysysID = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();

        $PerPersonCost = (isset($getData['PerPersonCost'])) ? trim($getData['PerPersonCost']) : '';
        $tpsysID = $getData['tpsysID'];
        $FixedInvnSysId = (isset($getData['FixedInvnSysId'])) ? (int) ($getData['FixedInvnSysId']) : 0;
        $TotalCost = (isset($getData['TotalCost'])) ? trim($getData['TotalCost']) : '';
        $from_dateArr = (isset($getData['from_date'])) ? ($getData['from_date']) : array();

        $MarkUpTypeArr = (isset($getData['MarkUpType'])) ? ($getData['MarkUpType']) : array();
        $B2CMarkUpArr = (isset($getData['B2CMarkUp'])) ? ($getData['B2CMarkUp']) : array();
        $B2BMarkUpArr = (isset($getData['B2BMarkUp'])) ? ($getData['B2BMarkUp']) : array();
        $created_date = date('Y-m-d');
        $responsehtml = '';
        if (!empty($from_dateArr)) {
            foreach ($from_dateArr as $key => $value) {


                $MarkUpType = isset($MarkUpTypeArr[$key]) ? (int) $MarkUpTypeArr[$key] : 0;
                $B2CMarkUp = isset($B2CMarkUpArr[$key]) ? (int) $B2CMarkUpArr[$key] : 0;
                $B2BMarkUp = isset($B2BMarkUpArr[$key]) ? (int) $B2BMarkUpArr[$key] : 0;
                if (!empty($TotalCost) && !empty($B2CMarkUp)) {
                    $PricePerPerson = 0;
                    if ((int) $MarkUpType == 1) {
                        $PricePerPerson = $PerPersonCost + $B2CMarkUp;
                    } else if ((int) $MarkUpType == 2) {
                        $PricePerPerson = $PerPersonCost + ($PerPersonCost * $B2CMarkUp) / 100;
                    }
                    $pkgstartdate = ($value != '') ? explode('/', $value) : array();
                    $pkgstartdate1 = trim($pkgstartdate[2] . '-' . $pkgstartdate[1] . '-' . $pkgstartdate[0]);
                    $checkRate = $objPackage->GetDuplicateMarketwiserateDate($tpsysID, $pkgstartdate1, 1, $FixedInvnSysId, 1);
                    $costsheet1 = array(
                        'TPIntSysId' => $tpsysID,
                        'AgencySysId' => $agencysysID,
                        'FromDate' => $pkgstartdate1,
                        'ToDate' => $pkgstartdate1,
                        'CurrencyType' => 1,
                        'TourType' => 1,
                        'PackCategoryId' => 3,
                        'MealPlanType' => 0,
                        'MarkType' => (int) $MarkUpType,
                        'MarketPlaceId' => 1,
                        'MarketPlace' => 'B2C',
                        'Permission' => 0,
                        'MarkPercent' => $B2CMarkUp,
                        'TotalCost' => round($TotalCost),
                        'CostPerPerson' => round($PerPersonCost),
                        'PricePerPerson' => round($PricePerPerson),
                        'CostPPSO' => 0,
                        'CostPPDO' => 0,
                        //                        'CostPPTO' => 0,
                        'CostExtraBed' => 0,
                        'CostChildWithoutBed' => 0,
                        'Tax' => 0,
                        'ExcludedPercent' => 0,
                        'CreateDate' => $created_date,
                        'UpdateDate' => $created_date,
                        'IsMarkForDel' => 0,
                        'IsActive' => 1,
                        'FixedInvnSysId' => $FixedInvnSysId
                    );
                    if (empty($checkRate)) {
                        $updateId1 = $objPackage->insertData('TB_TravelPlan_MarketWise_Rate', $costsheet1);
                    } else {
                        if (isset($checkRate['IsMarkForDel']) && $checkRate['IsMarkForDel'] == 1) {
                            $where1 = array(
                                'TPRateSheetSysId = ? ' => $checkRate['TPRateSheetSysId'],
                            );
                            $updateId1 = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $costsheet1, $where1);
                        }
                    }
                }
                if (!empty($TotalCost) && !empty($B2BMarkUp)) {
                    $PricePerPerson = 0;
                    if ((int) $MarkUpType == 1) {
                        $PricePerPerson = $PerPersonCost + $B2BMarkUp;
                    } else if ((int) $MarkUpType == 2) {
                        $PricePerPerson = $PerPersonCost + ($PerPersonCost * $B2BMarkUp) / 100;
                    }
                    $pkgstartdate = ($value != '') ? explode('/', $value) : array();
                    $pkgstartdate1 = trim($pkgstartdate[2] . '-' . $pkgstartdate[1] . '-' . $pkgstartdate[0]);
                    $checkRate = $objPackage->GetDuplicateMarketwiserateDate($tpsysID, $pkgstartdate1, 2, $FixedInvnSysId, 1);
                    $costsheet2 = array(
                        'TPIntSysId' => $tpsysID,
                        'AgencySysId' => $agencysysID,
                        'FromDate' => $pkgstartdate1,
                        'ToDate' => $pkgstartdate1,
                        'CurrencyType' => 1,
                        'TourType' => 1,
                        'PackCategoryId' => 3,
                        'MealPlanType' => 0,
                        'MarkType' => (int) $MarkUpType,
                        'MarketPlaceId' => 2,
                        'MarketPlace' => 'B2B',
                        'Permission' => 0,
                        'MarkPercent' => $B2BMarkUp,
                        'TotalCost' => round($TotalCost),
                        'CostPerPerson' => round($PerPersonCost),
                        'PricePerPerson' => round($PricePerPerson),
                        'CostPPSO' => 0,
                        'CostPPDO' => 0,
                        //                        'CostPPTO' => 0,
                        'CostExtraBed' => 0,
                        'CostChildWithoutBed' => 0,
                        'Tax' => 0,
                        'ExcludedPercent' => 0,
                        'CreateDate' => $created_date,
                        'UpdateDate' => $created_date,
                        'IsMarkForDel' => 0,
                        'IsActive' => 1,
                        'FixedInvnSysId' => $FixedInvnSysId
                    );

                    if (empty($checkRate)) {
                        $updateId2 = $objPackage->insertData('TB_TravelPlan_MarketWise_Rate', $costsheet2);
                    } else {
                        if (isset($checkRate['IsMarkForDel']) && $checkRate['IsMarkForDel'] == 1) {
                            $where2 = array(
                                'TPRateSheetSysId = ? ' => $checkRate['TPRateSheetSysId'],
                            );
                            $updateId2 = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $costsheet2, $where2);
                        }
                    }
                }
                $responsehtml .= '<tr class="">'
                        . '<td>' . $value . '</td>'
                        . '<td>' . $PerPersonCost . '/-</td>'
                        . '<td>' . ($MarkUpType == 1 ? ' Fixed Amount' : ' Fixed %') . '</td>'
                        . '<td>' . $B2CMarkUp . '</td>'
                        . '<td>' . $B2BMarkUp . '</td>'
                        . '<td><a href="javascript:void(0);" class="view-text1 btn-sm tooltipLink" data-placement="top" data-toggle="tooltip" onclick="return deletepkgcostsheet(' . $tpsysID . ', 1,' . $FixedInvnSysId . ');" data-original-title="Delete"><i class="fa fa-minus-circle"></i></a></td>'
                        . '</tr>';
            }
            $response = array('status' => true, 'msg' => 'success', 'FixedInvnSysId' => $FixedInvnSysId, 'TPSysId' => $tpsysID, 'responsehtml' => $responsehtml);
        } else {
            $response = array('status' => false, 'msg' => 'Date missing!!');
        }
        echo json_encode($response);
        exit;
    }

    public function addbyoreadymadecostforfixflightAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $agencysysID = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $objCurrency = new Travel_Model_TblCurrency();
        $currencyDetail = $objCurrency->getCurrencySymbolByIdsList();

        $PerPersonCost = (isset($getData['PerPersonCost'])) ? trim($getData['PerPersonCost']) : '';
        $tpsysID = $getData['tpsysID'];
        $CurrencySysIdArr = (isset($getData['Currency'])) ? $getData['Currency'] : array();
        $FixedInvnSysId = (isset($getData['FixedInvnSysId'])) ? (int) ($getData['FixedInvnSysId']) : 0;
        $DestinationSysId = (isset($getData['DestinationSysId'])) ? (int) ($getData['DestinationSysId']) : 0;
        $TotalCost = (isset($getData['TotalCost'])) ? trim($getData['TotalCost']) : '';
        $from_dateArr = (isset($getData['from_date'])) ? ($getData['from_date']) : array();
        $AdultCostArr = (isset($getData['AdultCost'])) ? ($getData['AdultCost']) : array();
        $InfantCostArr = (isset($getData['InfantCost'])) ? ($getData['InfantCost']) : array();

        $MarkUpTypeArr = (isset($getData['MarkUpType'])) ? ($getData['MarkUpType']) : array();
        $AdultB2CMarkUpArr = (isset($getData['AdultB2CMarkUp'])) ? ($getData['AdultB2CMarkUp']) : array();
        $InfantB2CMarkUpArr = (isset($getData['InfantB2CMarkUp'])) ? ($getData['InfantB2CMarkUp']) : array();

        $AdultB2BMarkUpArr = (isset($getData['AdultB2BMarkUp'])) ? ($getData['AdultB2BMarkUp']) : array();
        $InfantB2BMarkUpArr = (isset($getData['InfantB2BMarkUp'])) ? ($getData['InfantB2BMarkUp']) : array();
        $InventoryArr = (isset($getData['Inventory'])) ? ($getData['Inventory']) : array();
        $created_date = date('Y-m-d');
        $responsehtml = '';
        if (!empty($from_dateArr)) {
            foreach ($from_dateArr as $key => $value) {
                $MarkUpType = isset($MarkUpTypeArr[$key]) ? (int) $MarkUpTypeArr[$key] : 0;
                $CurrencySysId = isset($CurrencySysIdArr[$key]) ? (int) $CurrencySysIdArr[$key] : 0;
                $AdultCost = isset($AdultCostArr[$key]) ? (int) $AdultCostArr[$key] : 0;
                $InfantCost = isset($InfantCostArr[$key]) ? (int) $InfantCostArr[$key] : 0;

                $AdultB2CMarkUp = isset($AdultB2CMarkUpArr[$key]) ? (int) $AdultB2CMarkUpArr[$key] : 0;
                $InfantB2CMarkUp = isset($InfantB2CMarkUpArr[$key]) ? (int) $InfantB2CMarkUpArr[$key] : 0;

                $AdultB2BMarkUp = isset($AdultB2BMarkUpArr[$key]) ? (int) $AdultB2BMarkUpArr[$key] : 0;
                $InfantB2BMarkUp = isset($InfantB2BMarkUpArr[$key]) ? (int) $InfantB2BMarkUpArr[$key] : 0;

                $Inventory = isset($InventoryArr[$key]) ? (int) $InventoryArr[$key] : 0;
                if (!empty($TotalCost)) {
                    $PricePerPerson = 0;

                    $pkgstartdate = ($value != '') ? explode('/', $value) : array();
                    $pkgstartdate1 = trim($pkgstartdate[2] . '-' . $pkgstartdate[1] . '-' . $pkgstartdate[0]);
                    $costsheet1 = array(
                        'TPSysId' => (int) $tpsysID,
                        'FromDate' => $pkgstartdate1,
                        'FixedInventory' => $Inventory,
                        'HoldInventory' => 0,
                        'SoldInventory' => 0,
                        'CurrentInventory' => $Inventory,
                        'AdultCost' => $AdultCost,
                        'InfantCost' => $InfantCost,
                        'MarkupType' => (int) $MarkUpType,
                        'B2CAdultMarkup' => $AdultB2CMarkUp,
                        'B2CInfantMarkup' => $InfantB2CMarkUp,
                        'B2BAdultMarkup' => $AdultB2BMarkUp,
                        'B2BInfantMarkup' => $InfantB2BMarkUp,
                        'CurrencySysId' => (int) $CurrencySysId,
                        'FixedInvnSysId' => $FixedInvnSysId,
                        'CreateDate' => $created_date,
                        'UpdateDate' => $created_date,
                        'IsMarkForDel' => 0,
                        'IsActive' => 1,
                    );

                    $updateId1 = $objPackage->insertData('TB_TravelPlan_Itinerary_FixedInventory', $costsheet1);
                }
                if ($DestinationSysId) {
                    $departureCity = '/departureCity/' . $DestinationSysId;
                } else {
                    $departureCity = '';
                }
                $redirectLink = $this->baseUrl . '/inventory-detail/onhold-inventory-detail/id/' . base64_encode($tpsysID) . '/date/' . base64_encode($pkgstartdate1) . $departureCity;
                $responsehtml .= '<tr class="">'
                        . '<td>' . $value . '</td>'
                        . '<td>' . $currencyDetail[$CurrencySysId] . '/-</td>'
                        . '<td>' . $AdultCost . '/-</td>'
                        . '<td>' . $InfantCost . '/-</td>'
                        . '<td>' . ($MarkUpType == 1 ? ' Fixed Amount' : ' Fixed %') . '</td>'
                        . '<td>' . $AdultB2CMarkUp . '</td>'
                        . '<td>' . $InfantB2CMarkUp . '</td>'
                        . '<td>' . $AdultB2BMarkUp . '</td>'
                        . '<td>' . $InfantB2BMarkUp . '</td>'
                        . '<td><a href="' . $redirectLink . '" target="_blank">' . $Inventory . '</a></td>'
                        //                    . '<td><a href="javascript:void(0);" class="view-text1 btn-sm tooltipLink" data-placement="top" data-toggle="tooltip" onclick="return deletepkgcostsheet('.$tpsysID.', 1,'.$FixedInvnSysId.');" data-original-title="Delete"><i class="fa fa-minus-circle"></i></a></td>'
                        . '</tr>';
            }
            $response = array('status' => true, 'msg' => 'success', 'FixedInvnSysId' => $FixedInvnSysId, 'TPSysId' => $tpsysID, 'responsehtml' => $responsehtml);
        } else {
            $response = array('status' => false, 'msg' => 'Date missing!!');
        }
        echo json_encode($response);
        exit;
    }

    public function customerPackageMarketwiseRateAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        //$currentDate = '2016-06-06';
        $marketPlaceArr = explode('_', @$_REQUEST['marketPlace']);
        $MarketPlaceId = $marketPlaceArr[0];
        $MarketPlace = $marketPlaceArr[1];
        $totalcost = (int) $_REQUEST['totalcost'];
        $costpp = (int) $_REQUEST['costpp'];
        $markpercent = (int) @$_REQUEST['markup'];
        $excludepercent = (int) $_REQUEST['taxres'];
        if (@$_REQUEST['tax'] == "Included") {
            $marktype = $_REQUEST['MarkType'];
        }
        if (@$_REQUEST['tax'] == "Excluded") {
            $marktype = "FixedPercnt";
        }
        $data = array(
            'TPIntSysId' => @$_REQUEST['packageId'],
            'MarkType' => $marktype,
            'MarketPlaceId' => @$MarketPlaceId,
            'MarketPlace' => @$MarketPlace,
            'AgencySysId' => @$intLoggedinUserAgencySysId,
            'Permission' => @$_REQUEST['permission'],
            'MarkPercent' => $markpercent,
            'CostPPSO' => 0,
            'CostPPDO' => 0,
            //            'CostPPTO' => 0,
            'CostExtraBed' => 0,
            'CostChildWithoutBed' => 0,
            'TotalCost' => $totalcost,
            'CostPerPerson' => $costpp,
            'Tax' => $excludepercent,
            'ExcludedPercent' => $excludepercent,
            'FromDate' => $_REQUEST['fromdate'],
            'ToDate' => $_REQUEST['todate'],
            'CurrencyType' => @$_REQUEST['currency'],
            'CreateDate' => @$currentDate,
            'UpdateDate' => @$currentDate,
            'IsMarkForDel' => '0',
            'IsActive' => '1'
        );
        $updateId1 = $objPackage->insertData('TB_Agency_Customer_TravelPlan_MarketWise_Rate', $data);
    }

    public function updateOptionalInclMarkupAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

        $data = array(
            'Markup' => @$_REQUEST['markup']
        );
        $where = array(
            'TPIntSysId = ? ' => @$_REQUEST['packageId'],
            'Sequence = ? ' => @$_REQUEST['day'],
            'Type = ? ' => 'Optional',
            'TPActivitySysId = ? ' => @$_REQUEST['actId']
        );

        $updateId = $objPackage->updateData('TB_TravelPlan_Itenary_Events', $data, $where);
        //$updateId = $objPackage->updateFlexiPackageDayItenary($flexiPackageItenData,$post['code']);
    }

    public function updateCustomerOptionalInclMarkupAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $newtotalcost = $_REQUEST['newtotalcost'];
        $versionID = $_REQUEST['versionID'];
        $data = array(
            'Markup' => @$_REQUEST['markup'],
            'TotalCost' => $newtotalcost
        );
        $where = array('VersionId = ? ' => $versionID);

        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Itenary_Events', $data, $where);
        //$updateId = $objPackage->updateFlexiPackageDayItenary($flexiPackageItenData,$post['code']);
    }

    public function updateCustomerOptionalInclMarkupByoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $newtotalcost = $_REQUEST['newtotalcost'];
        $versionID = $_REQUEST['versionID'];
        $data = array(
            'Markup' => @$_REQUEST['markup'],
            'TotalCost' => $newtotalcost
        );
        $where = array('VersionId = ? ' => $versionID);

        $updateId = $objPackage->updateData('TB_TravelPlan_Itenary_Events', $data, $where);
        //$updateId = $objPackage->updateFlexiPackageDayItenary($flexiPackageItenData,$post['code']);
    }

    public function updateCustomerOptionalSightseenAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $newtotalcost = $_REQUEST['newtotalcost'];
        $versionID = $_REQUEST['versionID'];

        $data = array(
            'Markup' => @$_REQUEST['markup'],
            'TotalCost' => $newtotalcost
        );
        $where = array('VersionId = ? ' => $versionID);

        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_SightSeeing', $data, $where);
    }

    public function updateCustomerOptionalSightseenByoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $newtotalcost = $_REQUEST['newtotalcost'];
        $versionID = $_REQUEST['versionID'];

        $data = array(
            'Markup' => @$_REQUEST['markup'],
            'TotalCost' => $newtotalcost
        );
        $where = array('VersionId = ? ' => $versionID);

        $updateId = $objPackage->updateData('TB_TravelPlan_SightSeeing', $data, $where);
    }

    /*     * ***************************************************Flight**************************************** */

    public function getAgentFlightAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        //$intLoggedinAgencyId	=	@$_SESSION['sessionLogin_user']['intLoggedinUserAgencySysId'];
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        if (@$_REQUEST['packageId'] > 0) {
            $flexiPackageList = $objPackage->getCustPackageList(@$_REQUEST['packageId']);
            $this->view->flexiPackageList = $flexiPackageList;
        }
    }

    /*     * ***************************************************\Flight**************************************** */

    public function flightapiresultAction() {
        $this->_helper->layout->disableLayout();
        //   $objPackage = new Travel_Model_TblPackage();
        $tpintID = $this->getRequest()->getParam('tpintsysID');
        //    $packageId = $this->getRequest()->getParam('packageId');
        $this->view->tpintID = $tpintID;
        // $this->view->tpintID = $tpintID;
    }

    public function flightapiresultpkgAction() {
        $this->_helper->layout->disableLayout();
        //   $objPackage = new Travel_Model_TblPackage();
        $tpintID = $this->getRequest()->getParam('tpintsysID');
        //    $packageId = $this->getRequest()->getParam('packageId');
        $this->view->tpintID = $tpintID;
        // $this->view->tpintID = $tpintID;
    }

    public function viewFlexiFinalPackageNewAction() {
        $this->_helper->layout->disableLayout();
    }

    public function viewFlexiFinalPackageAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->view->intLoggedinUserAgencySysId = $intLoggedinUserAgencySysId;

        $objPackage = new Travel_Model_TblPackage();
        $tpID = $this->getRequest()->getParam('id');
        //echo $this->getRequest()->getParam('id');		
        if ($this->getRequest()->getParam('id') > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageList = $flexiPackageList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;
            //Get Package Itenary
            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            //Get Package Activity
            $flexiPackageActivityList = $objPackage->getFlexiPackageActivityList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            //Get Package Hotels
            $flexiPackageHotelsList = $objPackage->getFlexiPackageHotelsList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;

            //Get Package FInal Hotels
            $flexiPackageFinalHotel = $objPackage->getFlexiPackageFinalHotels($this->getRequest()->getParam('id'));
            $this->view->flexiPackageFinalHotel = $flexiPackageFinalHotel;

            $flexiPackageTransFixed = $objPackage->getFlexiPackageTransFixed($this->getRequest()->getParam('id'));
            $this->view->flexiPackageTransFixed = $flexiPackageTransFixed;

            $objTransport = new Travel_Model_TblTransport();
            //Get Vehicle Type List 
            $arrVehicleTypeList = $objPackage->getVehilcleTypeCapacity();
            $this->view->arrVehicleTypeList = $arrVehicleTypeList;

            $arrTransportInventoryList = $objTransport->getAllTransportInventoryList($intLoggedinUserAgencySysId);
            $this->view->arrTransportInventoryList = $arrTransportInventoryList;
            $this->view->tpID = $tpID;
            $getcustomerDetail = $this->_crmcusttravelplan->GetTravelPlanCustomerDetails($tpID);
            //  $this-view->getCustomerDetails = $getcustomerDetail;
            $this->view->getcustomerDetail = $getcustomerDetail;
            $this->view->arrSupplierDetails = $arrSupplierDetails;
            /* echo "<pre>";
              print_r($flexiPackageItenList); //PackTypeMask	InclMask
              print_r($arrTransportInventoryList); //PackTypeMask	InclMask
              die(); */
        }
    }

    public function viewFlexiFinalPackageReadymadeAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $markupMdl = new Markup_Model_Markup();
        $getData = $this->getRequest()->getParams();
        $this->view->intLoggedinUserAgencySysId = $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->view->mydevice = ''; ///$mydevice = Zend_Controller_Action_HelperBroker::getStaticHelper('Device')->deviceType();
        $tpID = $this->getRequest()->getParam('id');
        $MpType = $this->getRequest()->getParam('MpType', 1);
        $gtxnetwork = $this->getRequest()->getParam('gtxnetwork', 0);
        $code = $this->getRequest()->getParam('code');
        $this->view->secureCode = $secureCode = Catabatic_ValidateCustomer::secureCode($tpID, $gtxnetwork);
        if ($code != $secureCode) {
            echo "Do not change TpId";
            exit;
        }

        if (isset($gtxnetwork) && $gtxnetwork == 1) {
            $objPackageSearch = new Gtxnetwork_Model_PackageSearch();
            $this->view->arrTNCData = $arrTNCData = $objPackageSearch->packageCustomizeTermsAndConditions($intLoggedinUserAgencySysId, $tpID);
            //echo "<pre>";print_r($arrTNCData);die;
            $objAgency = new Travel_Model_TblAgency();
            $this->view->agencyTncList = $agencyTncList = $objAgency->getAgencyTnCDetails($intLoggedinUserAgencySysId);
            $MpType = 2;
            $this->view->gtxnetwork = $gtxnetwork;
        } else {
            $this->view->gtxnetwork = 0;
        }
        $isPs = $this->getRequest()->getParam('isPs');
        $qId = $this->getRequest()->getParam('qId');
        $cid = $this->getRequest()->getParam('cid');

        //$custInfo = array("isPs" => $isPs,"qId"=>$qId,"cid"=>$cid);
        //        $this->view->custInfo = json_encode($custInfo);
        $this->view->qId = $qId;
        $this->view->cid = $cid;
        $querydate = '';
        if (!empty($isPs)) {
            $sessionPSData = new Zend_Session_Namespace('sessionPackageSearchData');
            $roominfojson = isset($sessionPSData->searchData['RoomMemInfoJson']) ? $sessionPSData->searchData['RoomMemInfoJson'] : $sessionPSData->searchData['roominfojson'];
            $packageSearchArray = $sessionPSData->searchData;
            //echo "<pre>";print_r($packageSearchArray['search_specific_date']);die;
            $search_specific_date = (isset($packageSearchArray['search_specific_date']) && $packageSearchArray['search_specific_date'] != '') ? $packageSearchArray['search_specific_date'] : '';
            if ($search_specific_date != "") {
                $search_specific_date1 = DateTime::createFromFormat('d/m/Y', $search_specific_date);
                $querydate = $search_specific_date1->format('Y-m-d');
            } else {
                $querydate = date("Y-m-d");
            }
        }
        $queryTPSysId = (NULL != $this->getRequest()->getParam('qId') && !empty($this->getRequest()->getParam('qId'))) ? base64_decode($this->getRequest()->getParam('qId')) : '';
        $flexiPackageList = $objPackage->getFlexiPackageList($tpID);
        //echo "<pre>";print_r($flexiPackageList);die;
        if (($flexiPackageList['IsGTXNetworkWeb'] != 1) && ($this->view->gtxnetwork != 0)) {
            if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
        }
        $CustomerSysId = (NULL != $this->getRequest()->getParam('cid') && !empty($this->getRequest()->getParam('cid'))) ? base64_decode($this->getRequest()->getParam('cid')) : '';
        $this->view->CustomerSysId = $CustomerSysId;
        $customerDetails = $b2bcustomerDetails = array();
        $IsB2BCustomer = 0;

        // Check code Start
        if (isset($CustomerSysId) && $CustomerSysId > 0) {
            $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
            $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById(trim($CustomerSysId));
            $IsB2BCustomer = isset($customerDetails['IsB2BAgent']) ? $customerDetails['IsB2BAgent'] : 0;
            if ($IsB2BCustomer == 1) {
                $b2bcustomerDetails = $this->_crmcustomerObj->GetCustomerDetailsByEmailB2B(trim($customerDetails['EmailId']), $this->intLoggedinUserAgencySysId);
            }
        }
        // Check code End
        $subject = '';

        if (!empty($isPs) && $IsB2BCustomer == 1) {
            $adultPax = 0;
            $childPax = 0;
            $infantPax = 0;
            $departuredate = '';
            $roominfoarray = json_decode($roominfojson, 1);
            if (is_array($roominfoarray) && count($roominfoarray) > 0) {
                foreach ($roominfoarray as $res) {
                    $adultPax += $res['Adult'];
                    $childPax += $res['Child'];
                    $infantPax += @$res['Infant'];
                }
            }
            $travellers = $adultPax + $childPax + $infantPax;
            $search_going_to = explode('__', $sessionPSData->searchData['search_going_to']);
            $search_specific_date = implode('-', explode('/', $sessionPSData->searchData['search_specific_date']));
            $PrimaryContactName = trim($_SESSION['AgencyUser']['user']->FirstName) . ' ' . trim($_SESSION['AgencyUser']['user']->LastName);
            $subject = $queryTPSysId . ' - ' . trim($b2bcustomerDetails['CompanyName']) . ' / Pax: ' . $travellers . ' / ' . $search_specific_date . ' / ' . $search_going_to[1] . ' / ' . $PrimaryContactName;
        }

        $flexiPackageList['subject'] = $subject;
        $this->view->customerDetails = $customerDetails;

        //		$IsB2BCustomer=isset($customerDetails['IsB2BAgent'])?$customerDetails['IsB2BAgent']:0;


        if (!empty($flexiPackageList)) {
            $this->view->currencyarr = $currencyarr = $objPackage->getCurrencyList();
            $packageTncList = $objPackage->getPackageTncList($tpID);
            $flexiPackageList['tncDetails'] = $packageTncList;
            //echo "<pre>";print_r($flexiPackageList);die;
            //code added by amit kumar dubey on 14 dec 2016 at 1:04 PM
            $inclusionMastArray = $objPackage->getPackageInclusionList();
            //echo "<pre>";print_r($flexiPackageList);die;
            if (isset($flexiPackageList['InclMask'])) {
                $inclusionArr = $objPackage->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
                $flexiPackageList['inclusionDetails'] = $inclusionArr;
            }

            //for agency details
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            if (isset($flexiPackageList['AgencySysId'])) {
                $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
                $flexiPackageList['agencyDetails'] = $getAgencyDetail;
            }
            //                        if(isset($flexiPackageList['AgentSysId'])){
            //                         $agencyObj = new Travel_Model_TblAgency();
            //                         $getAgentDetail = $agencyObj->getAgencyUserDataById($flexiPackageList['AgentSysId']);
            //                         $flexiPackageList['agentDetails']=$getAgentDetail;
            //                        }
            //            $hotelarr = $objPackage->getFlexiPackageFinalHotels($flexiPackageList['TPSysId']);
            //            $this->view->hotelarr = $hotelarr;

            if (isset($flexiPackageList['DestinationCovered']) && !empty($flexiPackageList['DestinationCovered'])) {
                $cityobj = new Travel_Model_TblCity();
                $cityIds = trim($flexiPackageList['DestinationCovered']);
                $otherlocationcity = $cityobj->getCityDetailsByMultipleId($cityIds);
                $this->view->otherlocationcity = $otherlocationcity;
            }
            $newFixedCheckInDate = $setFlexiPackageDate = date("d/m/Y");
            $this->view->fixedDeparture = array();

            if (isset($flexiPackageList['IsFixedDeparturePackage']) && ($flexiPackageList['IsFixedDeparturePackage'] == 1)) {
                $inventoryResultDate = $objPackage->getInventoryDateForSearch($tpID, $MpType);
                if (!empty($inventoryResultDate)) {
                    $setFlexiPackageDate = $inventoryResultDate[0]['FromDate']->format("d/m/Y");
                }
                $fetchFDDate = $this->getRequest()->getParam('date');
                $departureCity = $this->getRequest()->getParam('departure');
                if ($fetchFDDate != "") {
                    $FixedDDate = base64_decode($fetchFDDate);
                    $checkFixedDDate = explode("-", $FixedDDate);
                    $newFixedCheckInDate = $checkFixedDDate[2] . "/" . $checkFixedDDate[1] . "/" . $checkFixedDDate[0];
                } else {
                    $newFixedCheckInDate = $setFlexiPackageDate;
                }
                $this->view->fixedDeparture = $inventoryResultDate;
            }
            $this->view->departureCity = $departureCity;
            $this->view->setFlexiPackageDate = $newFixedCheckInDate;
            $this->view->flexiPackageList = $flexiPackageList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;
            //Get Package Itenary
            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;

            $objCity = new Travel_Model_TblCity();
            if (isset($flexiPackageItenList[0]['PlaceSysId'])) {
                $this->view->cityMainDetail = $objCity->getCityImagesDetailsById($flexiPackageItenList[0]['PlaceSysId'], 1, 1);
            }

            if ($flexiPackageList['PackSpecType'] == 2) {
                //  $resflexiPackageActivityOnlyHotel = $objPackage->getItenActivityList(@$flexiPackageList['TPSysId'], 2);
                $this->view->flexiPackageActivityList = array();
                $resflexiPackageSSOnlyHotel = $objPackage->getItenSightseenList($flexiPackageList['TPSysId'], 2);
                $this->view->flexiPackageSightseenList = $resflexiPackageSSOnlyHotel;
            } else {
                $flexiPackageSightseenList = $objPackage->getFlexiPackageSightseenList($this->getRequest()->getParam('id'));
                $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;

                // $flexiPackageActivityList = $objPackage->getFlexiPackageActivityList($this->getRequest()->getParam('id'));
                $this->view->flexiPackageActivityList = array();
            }
            $flexiPackageTransportList = $objPackage->getFlexiPackageTransportList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageTransportList = $flexiPackageTransportList;
            $RoadTypeList = $objPackage->getMasterRoadType();
            $this->view->RoadTypeList = $RoadTypeList;
            $sequenceCount = 2;
            if (count($flexiPackageItenList) == 1) {
                $sequenceCount = 1;
            }
            $itenArray = $objPackage->getPackItenId($this->getRequest()->getParam('id'), $sequenceCount);
            if (isset($flexiPackageList['IsFixedDeparturePackage']) && ($flexiPackageList['IsFixedDeparturePackage'] == 1)) {
                $newFixedCheckInDate1 = DateTime::createFromFormat('d/m/Y', $newFixedCheckInDate);
                $date = $newFixedCheckInDate1->format('Y-m-d');
            } else {
                $date = (isset($querydate) && $querydate != '') ? $querydate : date('Y-m-d');
            }

            //$ssdaywisearr = $objPackage->getFlexiPackageOptionalSightseenListByItenarary($itenArray[0]['TPIntSysId'], 'Optional', '', $MpType, $date);
            //           echo "<pre>";print_r($ssdaywisearr);exit;
            //$this->view->ssdaywisearr = $ssdaywisearr;

            $objActivities = new Travel_Model_TblActivities();
            //$arrStandardMarkups = $objActivities->getStandardMarkupsActivities($this->intLoggedinUserAgencySysId, $MpType);
            //                echo "<pre>"; print_r($arrStandardMarkups);die;
            //$this->view->arrStandardNativesMarkups = $arrStandardMarkups;
            //Get Package FInal Hotels
            $flexiPackageFinalHotel = $objPackage->getFlexiPackageFinalHotels($this->getRequest()->getParam('id'));

            $this->view->flexiPackageFinalHotel = $flexiPackageFinalHotel;

            $this->view->tpID = $tpID;
            $this->view->MpType = $MpType;
            $this->view->isPs = $isPs;
            $this->view->queryTPSysId = $queryTPSysId;
            $this->view->getversionDetails = $getversiondetails = $this->_crmcusttravelplan->GetVersionInfo($tpID);
            $this->view->marketwsie = $getmarketwisedate = $objPackage->GetDuplicateMarketwiserateDate($tpID, '', $MpType);
            //code added by Er Amit Kumar Dubey for new popup
            //$rateList=Zend_Controller_Action_HelperBroker::getStaticHelper('PackageSearch')->getPackageRate($tpID);
            //				$rateList=array('arrPkgCost'=>array('AdultPax'=>$flexiPackageList['MinPax'],'ChildPax'=>0,'FinalCost'=>$flexiPackageList['NetPrice'],'FinalDiscount'=>$flexiPackageList['DiscountVal'],'FinalMarkUp'=>0));
            //				$popupArray=array();
            //				$popupArray['rateList'] = json_encode($rateList);
            //				
            //				$this->view->popupArray=$popupArray;
            //  $this-view->getCustomerDetails = $getcustomerDetail;
            //chat details
            $getChatHistoryDetail = array();
            $objAgencyUser = new Travel_Model_CRM_AgencyUserInbox();
            $objAgency = new Travel_Model_TblAgency();
            if ($this->view->gtxnetwork == 1) {
                $agencyData = $objAgency->getAgencyDataById($this->intLoggedinUserAgencySysId);
            } else {
                $agencyData = $objAgency->getAgencyDataById($flexiPackageList['AgencySysId']);
            }
            $IsB2BCustomer = isset($customerDetails['IsB2BAgent']) ? $customerDetails['IsB2BAgent'] : 0;

            $getcustomerDetail[] = $customerDetails;
            $checkCustomerChatExist = ($getcustomerDetail[0]['CustomerSysId'] > 0) ? $objAgencyUser->CheckCustomerMsgCount($getcustomerDetail[0]['CustomerSysId'], $tpID, trim($flexiPackageList['AgentSysId'])) : array();
            if (isset($getcustomerDetail[0]['CustomerSysId']) && !empty($getcustomerDetail[0]['CustomerSysId'])) {
                $getChatHistoryDetail = $objAgencyUser->GetCustChatHistDetWithLead($tpID, $getcustomerDetail[0]['CustomerSysId'], 'ASC');
            }
            $getcustomerDetail['userChatExist'] = (is_array($checkCustomerChatExist) && count($checkCustomerChatExist) > 0) ? count($checkCustomerChatExist) : count($getChatHistoryDetail);
            //  $this-view->getCustomerDetails = $getcustomerDetail;
            //query for get customer chat history
            $chatSenderDetails = array();
            $objAgencyStaff = new Travel_Model_TblAgencyStaff();
            $agentDetail = $objAgencyStaff->getUserDetailsById($flexiPackageList['AgentSysId']);
            if ($getcustomerDetail['userChatExist'] > 0) {
                if (isset($getcustomerDetail[0]['CustomerSysId']) && !empty($getcustomerDetail[0]['CustomerSysId'])) {
                    $this->view->chatHistoryDetail = $getChatHistoryDetail;
                    $chatSenderDetails['TPSysId'] = $tpID;
                    $chatSenderDetails['AgencySysId'] = $intLoggedinUserAgencySysId;
                    $chatSenderDetails['CustomerSysId'] = $getcustomerDetail[0]['CustomerSysId'];
                    $chatSenderDetails['AgentSysId'] = $flexiPackageList['AgentSysId'];
                    $chatSenderDetails['EmailId'] = $agentDetail['EmailId'];
                    //print_r($agentDetail);
                }
            }
            //end of customer chat history
            $getcustomerDetail['AgencyDetails'] = $agencyData;
            $getcustomerDetail[0]['TPSysId'] = $tpID;
            $getcustomerDetail[0]['AgencySysId'] = $intLoggedinUserAgencySysId;
            $getcustomerDetail[0]['CustomerSysId'] = $getcustomerDetail[0]['CustomerSysId'];
            $getcustomerDetail[0]['AgentSysId'] = $flexiPackageList['AgentSysId'];
            $getcustomerDetail[0]['EmailId'] = $agentDetail['EmailId'];

            $chatSenderDetails['AgencyDetails'] = $agencyData;
            //echo '<pre>'; print_r($getcustomerDetail);die;
            $this->view->getcustomerDetail = $getcustomerDetail;
            $this->view->chatSenderDetails = $chatSenderDetails;
            //#end of chat details
        }
/// GET ONLY Rate /////
        $sessionPSData = new Zend_Session_Namespace('sessionPackageSearchData');
        $packageSearchArray = $sessionPSData->searchData;
        $roomjson = isset($packageSearchArray['RoomMemInfoJson']) ? $packageSearchArray['RoomMemInfoJson'] : $packageSearchArray['roominfojson'];
        $tripstartdate = $packageSearchArray['search_specific_date'];
        $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', $tripstartdate)));
        $totalchild = $totaladult = 0;
        if (isset($flexiPackageList['IsFixedDeparturePackage']) && ($flexiPackageList['IsFixedDeparturePackage'] == 1)) {
            $fetchFDDate = $this->getRequest()->getParam('date');
            $dipartureCity = $this->getRequest()->getParam('departure', 0);
            if ($fetchFDDate != "") {
                $FixedDDate = base64_decode($fetchFDDate);
                $checkFixedDDate = explode("-", $FixedDDate);
                $tripstartdateFD = $checkFixedDDate[2] . "/" . $checkFixedDDate[1] . "/" . $checkFixedDDate[0];
                $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', $tripstartdateFD)));
                if ($flexiPackageList['MasterRefId'] == '0') {
                    $childpackarr = $objPackage->getChildPackageList($flexiPackageList['TPSysId']);
                } else {
                    $childpackarr = $objPackage->getChildPackageList($flexiPackageList['MasterRefId']);
                }
                if (!empty($childpackarr)) {
                    $l = 0;
                    foreach ($childpackarr as $val) {
                        if ($val['MasterRefId'] == '0') {
                            $MasterId = $val['TPSysId'];
                        }
                        $inventoryData[$l] = $val['TPSysId'];
                        $l++;
                    }
                }
                $roomjsonArray = json_decode($roomjson, true);
                $AdultCount = (int) array_sum((array_column($roomjsonArray, 'Adult')));
                $ChildCount = (int) array_sum((array_column($roomjsonArray, 'Child')));
                $InfentCount = (int) array_sum((array_column($roomjsonArray, 'Infant')));
                $totalPaxCount = $AdultCount + $ChildCount + $InfentCount;
                $checkavalability = $objPackage->checkFixedDeparturePackageInventory($inventoryData, $tripdate, $totalPaxCount);
                $responseArray['IsFixedDeparture'] = 1;
                $responseArray['IsFixedInventory'] = 0;
                if (!empty($checkavalability)) {
                    $responseArray['IsFixedInventory'] = 1;
                }
                $FDCost = array();
                if ($dipartureCity > 0) {
                    $FDCost = $objPackage->getFlightPriceForFixedDeparture($MasterId, $tripdate, $dipartureCity);
                }

                $FDAdultMarkup = $FDInfantMarkup = $FDAdultCost = $FDChildCost = 0;
                $FlightExchangeRate = 1;
                if (!empty($FDCost)) {
                    $CurrencyHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency');
                    $baseCurrencyId = $CurrencyHelperObj->getLoggedInAgencyBaseCurrencyId($intLoggedinUserAgencySysId); // agency's currency
                    if ($FDCost['CurrencySysId'] != $baseCurrencyId) {

                        $FlightExchangeRate = $objPackage->currencyExchangeRate($FDCost['CurrencySysId'], $baseCurrencyId);
                    }

                    $FDAdultCost = ((float) $FDCost['AdultCost']) * ($AdultCount + $ChildCount);
                    $FDChildCost = ((float) $FDCost['InfantCost']) * $InfentCount;
                    if ($MarketPlaceId == 1) {
                        if ($FDCost['MarkupType'] == 1) {
                            $FDAdultMarkup = $FDCost['B2CAdultMarkup'];
                            $FDInfantMarkup = $FDCost['B2CInfantMarkup'];
                        } else {
                            $FDAdultMarkup = ($FDAdultCost * $FDCost['B2CAdultMarkup']) / 100;
                            $FDInfantMarkup = ($FDChildCost * $FDCost['B2CInfantMarkup']) / 100;
                        }
                    } else {
                        if ($FDCost['MarkupType'] == 1) {
                            $FDAdultMarkup = $FDCost['B2BAdultMarkup'];
                            $FDInfantMarkup = $FDCost['B2BInfantMarkup'];
                        } else {
                            $FDAdultMarkup = ($FDAdultCost * $FDCost['B2BAdultMarkup']) / 100;
                            $FDInfantMarkup = ($FDChildCost * $FDCost['B2BInfantMarkup']) / 100;
                        }
                    }
                }
                $FDAdultMarkup = $FDAdultMarkup * ($AdultCount + $ChildCount);
                $FDInfantMarkup = $FDInfantMarkup * $InfentCount;

                $totalFDMarkup = $FDAdultMarkup + $FDInfantMarkup;

//   $totalactcost = (float) (($FDAdultCost + $FDChildCost) * $FlightExchangeRate);
//  $totalmarkup = (float) (($FDAdultMarkup + $FDInfantMarkup) * $FlightExchangeRate);
//  $flightCurrency = isset($FDCost['CurrencySysId']) ? $FDCost['CurrencySysId'] : $baseCurrencyId;
                $arraySet[1]["Service"] = "Flight";
                $arraySet[1]["Rate"] = $FDAdultCost + $FDChildCost;
                $arraySet[1]["ConversionRate"] = (float) $FlightExchangeRate;
                $arraySet[1]["TotalCost"] = $FDAdultCost + $FDChildCost + $totalFDMarkup;
                $arraySet[1]["Markup"] = $totalFDMarkup;
                $arraySet[1]["Currency"] = "Land Package";
                $arraySet[1]["Discount"] = "Land Package";
                $arraySet[1]["TaxPercentage"] = "Land Package";
                $arraySet[1]["GSTAmount"] = "Land Package";
                $arraySet[1]["TCSPercentage"] = "Land Package";
                $arraySet[1]["TCSAmount"] = "Land Package";
                $arraySet[1]["TotalPrice"] = "Land Package";
            }
        }
        $MarketPlaceId = 1;
        $strRoomInfoJson = $roomjson;
        $paxCount = array_sum((array_column(json_decode($roomjson, 1), 'Adult')));
        $packid = $flexiPackageList['TPSysId'];
        $packRate = $objPackage->getPackRateRowWise($packid, $tripdate, $MarketPlaceId, $paxCount, $strRoomInfoJson);
        $packMPRate = $objPackage->getPackMPRate($packid, $travelers, $tripdate, $MarketPlaceId);
        $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($packid, $strRoomInfoJson, $arrPkg, $packMPRate[0], $packRate[0], $_REQUEST['ExchangeRate'], $type, $totalactcost, $totalmarkup);

// echo "<pre>";print_r($arrPkgCost);exit;
        $FinalCost = isset($arrPkgCost['FinalCost']) ? $arrPkgCost['FinalCost'] : 0;
        $FinalMarkUp = isset($arrPkgCost['FinalMarkUp']) ? $arrPkgCost['FinalMarkUp'] : 0;

        $arraySet[0]["Service"] = "Land Package";
        $arraySet[0]["Rate"] = $FinalCost;
        $arraySet[0]["ConversionRate"] = 1;
        $arraySet[0]["TotalCost"] = (float) $FinalCost + (float) $FinalMarkUp;
        $arraySet[0]["Markup"] = $FinalMarkUp;
        $arraySet[0]["Currency"] = "Land Package";
        $arraySet[0]["Discount"] = 0;
        $arraySet[0]["TaxPercentage"] = "Land Package";
        $arraySet[0]["GSTAmount"] = "Land Package";
        $arraySet[0]["TCSPercentage"] = "Land Package";
        $arraySet[0]["TCSAmount"] = "Land Package";
        $arraySet[0]["TotalPrice"] = "Land Package";

        $this->view->pricebrakup = $arraySet;
        $markupMdl = new Markup_Model_Markup();
        $this->view->getTaxSettingDetail = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 5);
        $this->view->getTcsSettingDetail = $getTcsSettingDetail = $objAgency->getTcsSettingDetail($this->intLoggedinUserAgencySysId);
        $isDisplayTax = $markupMdl->getDetailsAgencyCurrencyDeatil("TB_Agency", $this->intLoggedinUserAgencySysId);
        $this->view->isDisplayTax = $isDisplayTax['TaxLabelId'];
        unset($_SESSION['package_flightdetails']);
        unset($_SESSION['package_flightdetailsFD']);
    }

    public function viewFlexiFinalPackageReadymadeEditAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

        $this->view->intLoggedinUserAgencySysId = $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;

        $tpID = base64_decode($this->getRequest()->getParam('id'));
        $MpType = $this->getRequest()->getParam('MpType');
        $MpType = !empty($MpType) ? $MpType : 1;
        $gtxnetwork = $this->getRequest()->getParam('gtxnetwork');

        if ($gtxnetwork != 1) {
            $gtxnetwork = 0;
        }
        //echo $gtxnetwork = isset($this->getRequest()->getParam('gtxnetwork'))?$this->getRequest()->getParam('gtxnetwork'):0; exit;


        $code = $this->getRequest()->getParam('code');
        $secureCode = Catabatic_ValidateCustomer::secureCode($tpID, $gtxnetwork);
        //        if ($code != $secureCode) {
        //            echo "Do not change TpId";
        //            exit;
        //        }

        if (isset($gtxnetwork) && $gtxnetwork == 1) {
            $objPackageSearch = new Gtxnetwork_Model_PackageSearch();
            $this->view->arrTNCData = $arrTNCData = $objPackageSearch->packageCustomizeTermsAndConditions($intLoggedinUserAgencySysId, $tpID);
            //echo "<pre>";print_r($arrTNCData);die;
            $objAgency = new Travel_Model_TblAgency();
            $this->view->agencyTncList = $agencyTncList = $objAgency->getAgencyTnCDetails($intLoggedinUserAgencySysId);
            $MpType = 2;
            $this->view->gtxnetwork = $gtxnetwork;
        } else {
            $this->view->gtxnetwork = 0;
        }
        $isPs = $this->getRequest()->getParam('isPs');
        $queryTPSysId = (NULL != $this->getRequest()->getParam('qId') && !empty($this->getRequest()->getParam('qId'))) ? base64_decode($this->getRequest()->getParam('qId')) : '';
        $flexiPackageList = $objPackage->getTempFlexiPackageList($tpID);

        if (($flexiPackageList['IsGTXNetwork'] != 1) && ($this->view->gtxnetwork != 0)) {
            if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
        }
        $CustomerSysId = (NULL != $this->getRequest()->getParam('cid') && !empty($this->getRequest()->getParam('cid'))) ? base64_decode($this->getRequest()->getParam('cid')) : '';
        $customerDetails = array();
        if (isset($CustomerSysId) && $CustomerSysId > 0) {
            $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
            $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById(trim($CustomerSysId));
        }

        $this->view->customerDetails = $customerDetails;
        //		$IsB2BCustomer=isset($customerDetails['IsB2BAgent'])?$customerDetails['IsB2BAgent']:0;


        if (!empty($flexiPackageList)) {
            $this->view->currencyarr = $currencyarr = $objPackage->getCurrencyList();
            $packageTncList = $objPackage->getCustPackageTncList($tpID);
            //           echo "<pre>";print_r($flexiPackageList);die;
            $flexiPackageList['tncDetails'] = $packageTncList;
            //echo "<pre>";print_r($flexiPackageList);die;
            //code added by amit kumar dubey on 14 dec 2016 at 1:04 PM
            $inclusionMastArray = $objPackage->getPackageInclusionList();
            //echo "<pre>";print_r($inclusionMastArray);die;
            if (isset($flexiPackageList['InclMask'])) {
                $inclusionArr = $objPackage->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
                $flexiPackageList['inclusionDetails'] = $inclusionArr;
            }

            //for agency details
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            if (isset($flexiPackageList['AgencySysId'])) {
                $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
                $flexiPackageList['agencyDetails'] = $getAgencyDetail;
            }

            //                        if(isset($flexiPackageList['AgentSysId'])){
            //                         $agencyObj = new Travel_Model_TblAgency();
            //                         $getAgentDetail = $agencyObj->getAgencyUserDataById($flexiPackageList['AgentSysId']);
            //                         $flexiPackageList['agentDetails']=$getAgentDetail;
            //                        }
            //            $hotelarr = $objPackage->getFlexiPackageFinalHotels($flexiPackageList['TPSysId']);
            //            $this->view->hotelarr = $hotelarr;

            if (isset($flexiPackageList['DestinationCovered']) && !empty($flexiPackageList['DestinationCovered'])) {
                $cityobj = new Travel_Model_TblCity();
                $cityIds = trim($flexiPackageList['DestinationCovered']);
                $otherlocationcity = $cityobj->getCityDetailsByMultipleId($cityIds);
                $this->view->otherlocationcity = $otherlocationcity;
            }

            $this->view->flexiPackageList = $flexiPackageList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getCustomerPackagePlacesList($tpID);

            $this->view->flexiPackagePlaces = $flexiPackagePlaces;
            //Get Package Itenary
            $flexiPackageItenList = $objPackage->getCustPackageItenList($tpID);
            //  echo "<pre>";print_r($flexiPackageItenList[0]['PlaceSysId']);die;
            $this->view->flexiPackageItenList = $flexiPackageItenList;

            $objCity = new Travel_Model_TblCity();
            if (isset($flexiPackageItenList[0]['PlaceSysId'])) {
                $this->view->cityMainDetail = $objCity->getCityImagesDetailsById($flexiPackageItenList[0]['PlaceSysId'], 1, 1);
            }

            if ($flexiPackageList['PackSpecType'] == 2) {
                $resflexiPackageActivityOnlyHotel = $objPackage->getCustPackageActivityListBySeq(@$flexiPackageList['TPSysId'], 2);
                $this->view->flexiPackageActivityList = $resflexiPackageActivityOnlyHotel;
                $resflexiPackageSSOnlyHotel = $objPackage->getCustPackageSightseenListBySeq(@$flexiPackageList['TPSysId'], 2);
                $this->view->flexiPackageSightseenList = $resflexiPackageSSOnlyHotel;
            } else {
                $flexiPackageSightseenList = $objPackage->getCustPackageSightseenList($tpID);
                $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;

                $flexiPackageActivityList = $objPackage->getCustPackageActivityList($tpID);
                $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            }

            $itenArray = $this->_crmcusttravelplan->getPackItenId($tpID, 2);
            //             echo "<pre>";print_r($itenArray);exit;
            $date = date('Y-m-d');
            $ssdaywisearr = $this->_crmcusttravelplan->getFlexiPackageOptionalSightseenListByItenarary($itenArray[0]['TPIntSysId'], 'Optional', '', $MpType, $date);
            //           echo "<pre>";print_r($ssdaywisearr);exit;
            $this->view->ssdaywisearr = $ssdaywisearr;

            $objActivities = new Travel_Model_TblActivities();
            $arrStandardMarkups = $objActivities->getStandardMarkupsActivities($this->intLoggedinUserAgencySysId, $MpType);
            //                echo "<pre>"; print_r($arrStandardMarkups);die;
            $this->view->arrStandardNativesMarkups = $arrStandardMarkups;

            //Get Package FInal Hotels
            $flexiPackageFinalHotel = $objPackage->getCusttFlexiPackageFinalHotels($tpID);
            //            echo "<pre>";print_r($flexiPackageFinalHotel);exit;
            $this->view->flexiPackageFinalHotel = $flexiPackageFinalHotel;

            $this->view->tpID = $tpID;
            $this->view->MpType = $MpType;
            $this->view->isPs = $isPs;
            $this->view->queryTPSysId = $queryTPSysId;
            $this->view->getversionDetails = $getversiondetails = $this->_crmcusttravelplan->GetVersionInfo($tpID);
            $this->view->marketwsie = $getmarketwisedate = $this->_crmcusttravelplan->GetDuplicateCustomerMarketwiserateDate($tpID, '', $MpType);

            //code added by Er Amit Kumar Dubey for new popup
            //$rateList=Zend_Controller_Action_HelperBroker::getStaticHelper('PackageSearch')->getPackageRate($tpID);
            //				$rateList=array('arrPkgCost'=>array('AdultPax'=>$flexiPackageList['MinPax'],'ChildPax'=>0,'FinalCost'=>$flexiPackageList['NetPrice'],'FinalDiscount'=>$flexiPackageList['DiscountVal'],'FinalMarkUp'=>0));
            //				$popupArray=array();
            //				$popupArray['rateList'] = json_encode($rateList);
            //				
            //				$this->view->popupArray=$popupArray;
            //  $this-view->getCustomerDetails = $getcustomerDetail;
            //chat details
            $getChatHistoryDetail = array();
            $objAgencyUser = new Travel_Model_CRM_AgencyUserInbox();
            $objAgency = new Travel_Model_TblAgency();
            if ($this->view->gtxnetwork == 1) {
                $agencyData = $objAgency->getAgencyDataById($this->intLoggedinUserAgencySysId);
            } else {
                $agencyData = $objAgency->getAgencyDataById($flexiPackageList['AgencySysId']);
            }

            $getcustomerDetail[] = $customerDetails;
            $checkCustomerChatExist = (@$getcustomerDetail[0]['CustomerSysId'] > 0) ? $objAgencyUser->CheckCustomerMsgCount(@$getcustomerDetail[0]['CustomerSysId'], $tpID, trim($flexiPackageList['AgentSysId'])) : array();
            if (isset($getcustomerDetail[0]['CustomerSysId']) && !empty($getcustomerDetail[0]['CustomerSysId'])) {
                $getChatHistoryDetail = $objAgencyUser->GetCustChatHistDetWithLead($tpID, $getcustomerDetail[0]['CustomerSysId'], 'ASC');
            }
            $getcustomerDetail['userChatExist'] = (!empty($checkCustomerChatExist) > 0) ? count($checkCustomerChatExist) : count($getChatHistoryDetail);
            //  $this-view->getCustomerDetails = $getcustomerDetail;
            //query for get customer chat history
            $chatSenderDetails = array();
            $objAgencyStaff = new Travel_Model_TblAgencyStaff();
            $agentDetail = $objAgencyStaff->getUserDetailsById($flexiPackageList['AgentSysId']);
            if ($getcustomerDetail['userChatExist'] > 0) {
                if (isset($getcustomerDetail[0]['CustomerSysId']) && !empty($getcustomerDetail[0]['CustomerSysId'])) {
                    $this->view->chatHistoryDetail = $getChatHistoryDetail;
                    $chatSenderDetails['TPSysId'] = $tpID;
                    $chatSenderDetails['AgencySysId'] = $intLoggedinUserAgencySysId;
                    $chatSenderDetails['CustomerSysId'] = $getcustomerDetail[0]['CustomerSysId'];
                    $chatSenderDetails['AgentSysId'] = $flexiPackageList['AgentSysId'];
                    $chatSenderDetails['EmailId'] = $agentDetail['EmailId'];
                    //print_r($agentDetail);
                }
            }
            //end of customer chat history
            $getcustomerDetail['AgencyDetails'] = $agencyData;
            $getcustomerDetail[0]['TPSysId'] = @$tpID;
            $getcustomerDetail[0]['AgencySysId'] = @$intLoggedinUserAgencySysId;
            $getcustomerDetail[0]['CustomerSysId'] = @$getcustomerDetail[0]['CustomerSysId'];
            $getcustomerDetail[0]['AgentSysId'] = @$flexiPackageList['AgentSysId'];
            $getcustomerDetail[0]['EmailId'] = @$agentDetail['EmailId'];

            $chatSenderDetails['AgencyDetails'] = $agencyData;
            //echo '<pre>'; print_r($getcustomerDetail);die;
            $this->view->getcustomerDetail = $getcustomerDetail;
            $this->view->chatSenderDetails = $chatSenderDetails;
            //#end of chat details
        }
        //print_r($customerDetails);die;
        //	        $this->view->customerDetails = $customerDetails;
        unset($_SESSION['package_flightdetails']);
    }

    public function viewByoPkgAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $tpID = base64_decode($this->getRequest()->getParam('id'));
        $flexiPackageItenList = $objPackage->getCustPackageItenList($tpID);
        // $objAgency = new Travel_Model_TblAgency();
        $agencyTncList = $objPackage->getCustomerTnCDetails($tpID);
        $this->view->agencyTncList = $agencyTncList;
        $this->view->flexiPackageItenList = $flexiPackageItenList;
        $termscond = $objPackage->getTermCond($tpID);
        $this->view->termc = $termscond;
        //echo $this->getRequest()->getParam('id');		
        if ($tpID > 0) {
            $getitenryID = $objPackage->GetTravelPlanItenaryID($tpID);
            $itenararray = array();
            for ($i = 0; $i < count($getitenryID); $i++) {
                $itenararray[] = "'" . $getitenryID[$i]['TPIntSysId'] . "'";
            }

            $implodeitenary = implode(",", $itenararray);
            // die;
            $gettotalhotelcount = $objPackage->GetAllTotalHotelCount($implodeitenary);
            $getselectedHotel = $objPackage->GetAllSelectedHotelCount($implodeitenary);
            $this->view->totalhotelcount = count($gettotalhotelcount);
            $getflightcount = $objPackage->GetFlightCount($implodeitenary);
            $this->view->totalflightcount = $getflightcount;
            $getactivitycount = $objPackage->GetActivityCount($implodeitenary);
            $gettransportoption = $objPackage->GetTransPortOption($tpID);
            //echo count($gettransportoption);
            $totaltransport = count($gettransportoption);
            $this->view->totaltransport = $totaltransport;
            $this->view->totalactivitycount = count($getactivitycount);
            $this->view->implodeitenary = $implodeitenary;
            $getsightseeincount = $objPackage->GetSightSeeingByItenaryCount($implodeitenary);
            $this->view->totalsightseeingcount = count($getsightseeincount);
            //$this->view->hotelCount = count($getselectedHotel);
            $flightitenarydata = $objPackage->GetFlightItenaryWise($implodeitenary);
            //  $hotelcount = $objPackage->GetAllSelectedHotel($implodeitenary);
            $this->view->itenarydata = $itenararray;
            $this->view->flightitenarydata = $flightitenarydata;
            $flexiPackageList = $objPackage->getCustPackageList($tpID);
            $this->view->flexiPackageList = $flexiPackageList;
            //Get Package Hotels
            //$flexiPackageHotelsList = $objPackage->getCustPackageHotelsListBYO($implodeitenary);
            $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;
            //Get Package Flight
            $flexiPackageFlight = $objPackage->getCustPackageAir($tpID);
            $this->view->flexiPackageFlight = $flexiPackageFlight;
            ########## Code Added By Shobhit ##################
            $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
            $this->view->tpID = $tpID;
            $getcustomerDetail = $this->_crmcusttravelplan->GetTravelPlanCustomerDetails($tpID);
            $objAgencyUser = new Travel_Model_CRM_AgencyUserInbox();
            $checkCustomerChatExist = $getcustomerDetail[0]['CustomerSysId'] > 0 ? $objAgencyUser->CheckCustomerMsgCount($getcustomerDetail[0]['CustomerSysId'], $tpID) : array();
            $getversiondetails = $this->_crmcusttravelplan->GetVersionInfo($tpID);
            //$getcustomerDetail['userChatExist'] = count($checkCustomerChatExist);
            //query for get customer chat history
            $chatSenderDetails = array();
            if ($getcustomerDetail['userChatExist'] > 0) {
                if (isset($getcustomerDetail[0]['CustomerSysId']) && !empty($getcustomerDetail[0]['CustomerSysId'])) {
                    $getChatHistoryDetail = $objAgencyUser->GetCustChatHistDetWithLead($tpID, $getcustomerDetail[0]['CustomerSysId'], 'DESC');
                    $this->view->chatHistoryDetail = $getChatHistoryDetail;
                    $chatSenderDetails['TPSysId'] = $tpID;
                    $chatSenderDetails['AgencySysId'] = $intLoggedinUserAgencySysId;
                    $chatSenderDetails['CustomerSysId'] = $getcustomerDetail[0]['CustomerSysId'];
                    $chatSenderDetails['AgentSysId'] = $flexiPackageList['AgentSysId'];
                    $chatSenderDetails['EmailId'] = $getcustomerDetail[0]['EmailId'];
                }
            }
            $this->view->chatSenderDetails = $chatSenderDetails;
            $this->view->getcustomerDetail = $getcustomerDetail;
            $this->view->getversionDetails = $getversiondetails;
        }
    }

    public function pkgviewAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $tpID = base64_decode($this->getRequest()->getParam('id'));
        $encryptedTPID = $this->getRequest()->getParam('id');
        $catID = $this->getRequest()->getParam('cID');
        $tourID = $this->getRequest()->getParam('tID');
        $CustomerSysId = (NULL != $this->getRequest()->getParam('cid') && !empty($this->getRequest()->getParam('cid'))) ? base64_decode($this->getRequest()->getParam('cid')) : '';
        $mID = $this->getRequest()->getParam('mID');
        //$tourID = 1;
        $this->view->tourID = $tourID;
        $this->view->catID = $catID;
        $this->view->mID = $mID;
        $this->view->tpID = $tpID;
        $flexiPackageList = $objPackage->getFlexiPackageList($tpID);

        $pkgagencysysID = $flexiPackageList['AgencySysId'];
        if ($pkgagencysysID == $intLoggedinUserAgencySysId) {
            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($tpID);

            // $objAgency = new Travel_Model_TblAgency();
            $agencyTncList = $objPackage->getCustomerTnCDetails($tpID);
            $this->view->agencyTncList = $agencyTncList;
            $this->view->flexiPackageItenList = $flexiPackageItenList;
            $termscond = $objPackage->getPkgTermCond($tpID);
            $marketwiseratebyo = $objPackage->GetMarketWiseRateBYOReadyMade($tpID, $catID, $tourID, $mID);
            $this->view->marketwiseratebyo = $marketwiseratebyo;
            $this->view->termc = $termscond;
            //echo $this->getRequest()->getParam('id');		
            if ($tpID > 0) {
                $getpacktypemask = $objPackage->GetMasterPackageList();
                $this->view->packtypemask = $getpacktypemask;

                $getitenryID = $objPackage->GetTravelPlanItenaryIDBYO($tpID);
                $flexiPackagePlaces = $objPackage->getPackagePlacesList($tpID);
                $this->view->flexiPackagePlaces = $flexiPackagePlaces;
                $itenararray = array();
                for ($i = 0; $i < count($getitenryID); $i++) {
                    $itenararray[] = "'" . $getitenryID[$i]['TPIntSysId'] . "'";
                }

                $implodeitenary = implode(",", $itenararray);
                $this->view->allitnID = $implodeitenary;
                $getselectedHotel = $objPackage->GetAllSelectedHotelCountBYO($implodeitenary, $catID, $mID);
                $this->view->totalhotelcount = count($getselectedHotel);

                $getflightcount = $objPackage->GetFlightCountBYO($implodeitenary);
                $this->view->totalflightcount = count($getflightcount);
                $getactivitycount = $objPackage->GetIncludedActivityCountBYO($implodeitenary);

                $gettransportoption = $objPackage->GetTransPortOptionBYO($tpID);
                //echo count($gettransportoption);
                $totaltransport = count($gettransportoption);
                $this->view->totaltransport = $totaltransport;
                $this->view->totalactivitycount = count($getactivitycount);
                $this->view->implodeitenary = $implodeitenary;
                $getsightseeincount = $objPackage->GetSightSeeingByItenaryCountBYO($implodeitenary);
                $this->view->totalsightseeingcount = count($getsightseeincount);
                //$this->view->hotelCount = count($getselectedHotel);
                $flightitenarydata = $objPackage->GetFlightItenaryWiseBYO($implodeitenary);
                //  $hotelcount = $objPackage->GetAllSelectedHotel($implodeitenary);
                $this->view->itenarydata = $itenararray;
                $this->view->flightitenarydata = $flightitenarydata;

                $this->view->flexiPackageList = $flexiPackageList;

                //Get Package Hotels
                $flexiPackageHotelsList = $objPackage->getFlexiPackageHotelsListBYO($implodeitenary, $catID);
                $totalDaysNightsArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageTotalNoOfDays($flexiPackageItenList);
                $totalNight = $totalDaysNightsArr['totalnights'];
                $PossibleCombinationsOfMealPlanArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPossibleCombinationsOfMealPlan($flexiPackageHotelsList, $totalNight, $catID);
                $mealkeys = array_keys($PossibleCombinationsOfMealPlanArr);
                if (empty($mID) && ($flexiPackageList['PackageCostCalType'] == 1) && (!empty($mealkeys) > 0)) {
                    $this->_redirect('/package/pkgview/id/' . $encryptedTPID . '/cID/' . $catID . '/tID/' . $tourID . '/mID/' . $mealkeys[0]);
                }

                $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;

                //Get Package Flight
                $flexiPackageFlight = $objPackage->getCustPackageAirBYO($tpID);
                $this->view->flexiPackageFlight = $flexiPackageFlight;
                //get customer data
                $customerDetails = array();
                if (isset($CustomerSysId) && $CustomerSysId > 0) {
                    $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
                    $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById(trim($CustomerSysId));
                }
                //echo "<pre>";print_r($customerDetails);
                $this->view->customerDetails = $customerDetails;
                ########## Code Added By Shobhit ##################
            }
        } else {
            $this->_redirect('/publicpackage/pagenotfound/');
        }
    }

    public function comparepackageAction() {
        
    }

    public function compareTableAction() {

        $this->_helper->layout->disableLayout();

        $searchNamespace = new Zend_Session_Namespace('search');
        $this->view->searchFor = $searchNamespace->searchFor;

        //$strPackageIds = $this->getRequest()->getParam('ids');
        if (isset($_COOKIE['strComparePackagesIds'])) {
            $strPackageIds = $_COOKIE['strComparePackagesIds'];
        } else {
            $this->_redirect('/');
        }

        $strPackageIds = $this->_helper->String->cleanCommaSepString($strPackageIds);

        $arrPackageIds = explode(",", $strPackageIds);

        //        if(count($arrPackageIds)>4 || count($arrPackageIds)<2) {
        //            $this->_redirect('/search');
        //        }

        $this->view->detailUrl = $this->view->baseUrl() . '/package/detail';

        if (!empty($strPackageIds)) {
            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->strCondition = " AND tbl_package_master.id in ( " . $strPackageIds . " ) ";
            $this->view->arrPackageList = $objPackage->getPackageList();
        }
    }

    public function ratetableAction() {

        $this->_helper->layout->disableLayout();

        /* If ajax request */
        if ($this->_request->isXmlHttpRequest()) {
            $this->view->intPackageId = $intPackageId = $this->getRequest()->getParam('intPackageId');
            $this->view->intDepartureCityId = $intDepartureCityId = $this->getRequest()->getParam('intDepartureCity');

            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->intId = $intPackageId;
            $objPackage->isPreview = true;
            $this->view->packageDetail = $arrPackageDetail = $objPackage->getPackageList();

            if (count($arrPackageDetail) != 1) {
                throw new Exception("Package detail not found.");
            }

            $arrRates = $objPackage->getRates($intPackageId, $intDepartureCityId);

            if (!empty($arrRates)) {
                $this->view->arrRates = $arrRates[0];
                if (!empty($arrRates[0]['city_id'])) {
                    $this->view->intDepartureCityId = $arrRates[0]['city_id'];
                }
            } else {
                $this->view->arrRates = array();
            }

            $this->view->arrDepartureCities = $arrDepartureCities = $objPackage->getDepartureCities('array');

            $strPackageCategory = $arrPackageDetail[0]['category'];
            $this->view->arrPackageCategory = $arrPackageCategory = explode(",", $strPackageCategory);

            $arrPackCat = array();

            $isStandard = false;
            $isDeluxe = false;
            $isLuxury = false;

            if (!empty($arrPackageCategory)) {
                foreach ($arrPackageCategory as $category) {
                    if ($category == 'Standard') {
                        $arrPackCat['S'] = 'Standard';
                        $this->view->isStandard = $isStandard = true;
                    }
                    if ($category == 'Deluxe') {
                        $arrPackCat['D'] = 'Deluxe';
                        $this->view->isDeluxe = $isDeluxe = true;
                    }
                    if ($category == 'Luxury') {
                        $arrPackCat['L'] = 'Luxury';
                        $this->view->isLuxury = $isLuxury = true;
                    }
                }
            }

            $this->view->p_type = $arrPackageDetail[0]['p_type'];

            $this->view->arrHotelInfo = $arrAllHotelsInPackage = $objPackage->getHotelsInPackage($intPackageId);
            $this->view->arrAllStandardHotels = $arrAllStandardHotels = $objPackage->getHotelsInPackage($intPackageId, 'S');
            $this->view->arrAllDeluxeHotels = $arrAllDeluxeHotels = $objPackage->getHotelsInPackage($intPackageId, 'D');
            $this->view->arrAllLuxuryHotels = $arrAllLuxuryHotels = $objPackage->getHotelsInPackage($intPackageId, 'L');

            //            if($arrPackageDetail[0]['p_type'] == 'OH') {
            //                $arrHotelInfo = $objPackage->getOnlyHotelPackageInfo();
            //
            //                if(count($arrHotelInfo)>0) {
            //                    $objHotel = new Travel_Model_TblHotel();
            //
            //                    if($isStandard) {
            //                        $intHotelIdStandard = $arrHotelInfo[0]['hotel_id_standard'];
            //                        $objHotel->intId = $intHotelIdStandard;
            //                        $arrStandardHotelInfo = $objHotel->getHotelList();
            //
            //                        if(count($arrStandardHotelInfo)>0) {
            //                            $this->view->strStandardHotelName   = $arrStandardHotelInfo[0]['hotel_name'];
            //                            $this->view->intStandardHotelRating = $arrStandardHotelInfo[0]['rating'];
            //                        }
            //                    }
            //
            //                    if($isDeluxe) {
            //                        $intHotelIdDeluxe   = $arrHotelInfo[0]['hotel_id_deluxe'];
            //                        $objHotel->intId = $intHotelIdDeluxe;
            //                        $this->view->arrDeluxeHotelInfo = $arrDeluxeHotelInfo = $objHotel->getHotelList();
            //                        if(count($arrDeluxeHotelInfo)>0) {
            //                            $this->view->strDeluxeHotelName   = $arrDeluxeHotelInfo[0]['hotel_name'];
            //                            $this->view->intDeluxeHotelRating = $arrDeluxeHotelInfo[0]['rating'];
            //                        }
            //                    }
            //
            //                    if($isLuxury) {
            //                        $intHotelIdLuxury   = $arrHotelInfo[0]['hotel_id_luxury'];
            //                        $objHotel->intId = $intHotelIdLuxury;
            //                        $this->view->arrLuxuryHotelInfo  = $arrLuxuryHotelInfo = $objHotel->getHotelList();
            //
            //                        if(count($arrLuxuryHotelInfo)>0) {
            //                            $this->view->strLuxuryHotelName   = $arrLuxuryHotelInfo[0]['hotel_name'];
            //                            $this->view->intLuxuryHotelRating = $arrLuxuryHotelInfo[0]['rating'];
            //                        }
            //                    }
            //                }
            //            }
        }
    }

    public function itineraryAction() {

        $registry = Zend_Registry::getInstance();
        $this->view->imageServerUrl = $registry->imageServerURL;
        $this->view->noImageUrl = $this->_helper->Image->getNoImageUrl('general', 'thumb');

        /* If ajax request */
        if ($this->_request->isXmlHttpRequest()) {

            $intPackageId = $this->getRequest()->getParam('intPackageId');
            $this->view->strRating = $strRating = $this->getRequest()->getParam('strRating');
            $intDepartureCity = $this->getRequest()->getParam('intDepartureCity');

            $this->view->noImageUrl = $this->_helper->Image->getNoImageUrl('general', 'thumb');
            $this->view->imageServerUrl = $this->imageServerUrl;

            if (empty($intPackageId)) {
                throw new Exception("Package Id not found.");
            }

            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->intId = $intPackageId;

            /* Set this variable to fetch the Package if it is published / unpublised */
            $objPackage->isPreview = true;

            $arrPackageDetail = $objPackage->getPackageList();
            if (count($arrPackageDetail) != 1) {
                $this->_redirect($this->baseUrl());
            }

            $this->view->arrPackageDetail = $arrPackageDetail[0];

            if (empty($strRating)) {
                /* Get category from Package */
                $category = $arrPackageDetail[0]['category'];

                $arrCategory = explode(",", $category);
                if (in_array('Standard', $arrCategory)) {
                    $strRating = 'S';
                } else if (in_array('Deluxe', $arrCategory)) {
                    $strRating = 'D';
                } else if (in_array('Luxury', $arrCategory)) {
                    $strRating = 'L';
                }
            }

            if ($strRating == 'S') {
                $strCategory = "Standard";
            } else if ($strRating == 'D') {
                $strCategory = "Deluxe";
            } else if ($strRating == 'L') {
                $strCategory = "Luxury";
            }

            if (empty($strCategory)) {
                echo "There has been an errror. Please try again later.";
                exit;
            }

            $this->view->strRating = $strRating;
            $this->view->title = "Itinerary for " . $strCategory . " Package";

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

            $this->view->packageDetail = $arrPackageDetail[0];

            $this->view->destinationCities = $objPackage->getDepartureCities('array');

            $intAgentId = $arrPackageDetail[0]['agent_id'];
            $objSeason = new Travel_Model_TblSeason();
            $objSeason->intAgentId = $intAgentId;
            $arrSeasonDetail = $objSeason->getSeasonList();

            $this->view->seasonDetail = $arrSeasonDetail;

            $strPackageCategory = $arrPackageDetail[0]['category'];
            $arrPackageCategory = explode(",", $strPackageCategory);

            $arrPackCat = array();
            if (!empty($arrPackageCategory)) {
                foreach ($arrPackageCategory as $category) {
                    if ($category == 'Standard') {
                        $arrPackCat['S'] = 'Standard';
                    }
                    if ($category == 'Deluxe') {
                        $arrPackCat['D'] = 'Deluxe';
                    }
                    if ($category == 'Luxury') {
                        $arrPackCat['L'] = 'Luxury';
                    }
                }
            }

            $this->view->arrCategories = $arrPackCat;

            /* Show the itenary of Standard Hotel Only */
            $intHotelCategory = '';
            if ($strRating == 'S') {
                $intHotelCategory = 1;
            } elseif ($strRating == 'D') {
                $intHotelCategory = 2;
            } elseif ($strRating == 'L') {
                $intHotelCategory = 3;
            }

            $objItenary = new Travel_Model_TblItineraryPackage();
            $objItenary->intPackageId = $intPackageId;
            $objItenary->intHotelCategory = $intHotelCategory;
            $this->view->itenaryDetail = $arrItenaryDetail = $objItenary->view4UI();
            $boolHavingItenary = false;
            if (!empty($arrItenaryDetail)) {
                foreach ($arrItenaryDetail as $itenary) {
                    $title = trim($itenary['title']);
                    if (!empty($title)) {
                        $boolHavingItenary = true;
                    }
                }
            }
            $this->view->boolHavingItenary = $boolHavingItenary;

            $objCity = new Travel_Model_TblCity();
            $objCity->intId = $intDepartureCity;
            $arrCityDetail = $objCity->getCityList();
            if (!empty($arrCityDetail)) {
                $this->view->cityName = $arrCityDetail[0]['city_name'];
            }

            if (empty($strRating)) {
                $strRating = 'S';
            }
            if ($strRating == 'D') {
                $strRatingToDisplay = 'Deluxe';
            } else if ($strRating == 'L') {
                $strRatingToDisplay = 'Luxury';
            } else if ($strRating == 'S') {
                $strRatingToDisplay = 'Standard';
            }


            $bType = 'B2C';

            $this->view->intPackageId = $intPackageId;
            $this->view->intDepartureCity = $intDepartureCity;
            $this->view->rating = $strRating;
            $this->view->busType = $bType;
            $this->view->strRatingToDisplay = $strRatingToDisplay;

            // $this->arrSeasons = $arrSeasons;
        }
    }

    public function getpricetocompareAction() {

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

        /* If ajax request */
        if ($this->_request->isXmlHttpRequest()) {



            $intPackageId = $this->getRequest()->getParam('intPackageId');
            $intDepartureCity = $this->getRequest()->getParam('intDepartureCity');

            if (empty($intPackageId) || empty($intDepartureCity)) {
                //$this->_redirect( $this->baseUrl );
            }

            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->intId = $intPackageId;

            return $objPackage->getPriceToCompare($intDepartureCity);
        }
    }

    public function autosuggestAction() {

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

        $arrResponse = array();
        if ($this->getRequest()->getParam("term")) {
            $term = $this->getRequest()->getParam("term");

            $objPackage = new Travel_Model_TblPackageMaster();
            $arrResponse = $objPackage->getAutoSuggest($term);
        }

        echo json_encode($arrResponse);
        exit;
    }

    public function autosuggestByAgentAction() {

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

        $arrResponse = array();
        if ($this->getRequest()->getParam("term")) {
            $term = $this->getRequest()->getParam("term");

            $objPackage = new Travel_Model_TblPackageMaster();
            $arrResponse = $objPackage->getAutoSuggestByAgent($term);
        }

        echo json_encode($arrResponse);
        exit;
    }

    public function captchaAction() {
        //disable layout and view
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender();

        //load Zend_Captcha_Image
        $captcha = new Zend_Captcha_Image();
        $captcha->setImgDir(APPLICATION_PATH . '/../public/images/captcha/');
        $captcha->setImgUrl($this->view->baseUrl('/images/captcha/'));
        $captcha->setFont(APPLICATION_PATH . '/../public/css/LeagueGothic/League_Gothic-webfont.ttf');
        $captcha->setWordlen(5);
        $captcha->setFontSize(28);
        $captcha->setLineNoiseLevel(3);
        $captcha->setWidth(90);
        $captcha->setHeight(64);
        $captcha->generate();

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

    public function refinesearchAction() {
        $this->_helper->layout->disableLayout();

        //$this->headMeta()->setCharset('UTF-8');

        if ($this->getRequest()->isXmlHttpRequest()) {
            //            $objPackage = new Travel_Model_TblPackageMaster();
            //            $arrResult = $objPackage->getPacakgePriceRange(true);
            //            $this->view->minPrice = trim($arrResult[0]['minPrice']);
            //            $this->view->maxPrice = trim($arrResult[0]['maxPrice']);

            $this->view->arrGoingFor = $arrGoingFor = array('0-2' => '0-2', '3-5' => '3-5', '6-8' => '6-8', '9+' => '9+');

            $this->view->arrStayin = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5);

            $objPackType = new Travel_Model_TblPackageType();
            $arrPackageType = $objPackType->getPackageTypeList();
            $this->view->arrPackageType = $arrPackageType;

            $objInclusionCat = new Travel_Model_TblInclusionCat();
            $this->view->inclustionCategories = $objInclusionCat->getInclusionCategories();

            $this->view->selectedPriceRange = isset($_COOKIE['cookie_pricerange']) ? $_COOKIE['cookie_pricerange'] : '';
        }
    }

    /**
     * This function is used to show Short listed packages.
     * @param  void
     * @return array  responseArr	
     */
    public function shortlistedPackagesAction() {

        $objPackage = new Travel_Model_TblPackageMaster();

        if (isset($_COOKIE['shortlistPackages'])) {
            $strShortListPackages = $_COOKIE['shortlistPackages'];
            $strShortListPackages = $this->_helper->String->cleanCommaSepString($strShortListPackages);
            $objPackage->strCondition = " AND tbl_package_master.id in (" . $strShortListPackages . ")";
        } else {
            $objPackage->strCondition = " AND 1 = 2 ";
        }

        $this->view->imageServerUrl = $this->imageServerUrl;
        $objPackage->isBackend = 'N';
        $objPackage->orderByField = 's_price';
        $this->view->arrShortListPackages = $objPackage->getPackageList();
    }

    public function overviewAction() {

        $this->_helper->layout->disableLayout();

        if ($this->getRequest()->isXmlHttpRequest()) {
            $intPackageId = $this->view->intPackageId = $this->getRequest()->getParam('intPackageId');
            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->intId = $intPackageId;
            $arrPackageDetail = $objPackage->getPackageList();
            $this->view->description = $arrPackageDetail[0]['description'];
            $this->view->exclusion = $arrPackageDetail[0]['exclusion'];
            $this->view->inclusion_text = $arrPackageDetail[0]['inclusion_text'];

            $objPackage->strSelectedView = 'list';
            $objPackage->intQueryOffset = 0;
            $objPackage->intListPerPage = 3;
            $arrCityCovered = $objPackage->getOverviewCitiCovered();

            $response = array();

            if (!empty($arrCityCovered)) {
                $intCounter = 0;
                foreach ($arrCityCovered as $city) {
                    $intCityId = $city['city_covered'];

                    $objCity = new Travel_Model_TblCity();
                    $objCity->intId = $intCityId;
                    $arrCityDetail = $objCity->getCityList();

                    if (!empty($arrCityDetail)) {
                        $response[$intCounter]['id'] = $arrCityDetail[0]['id'];
                        $response[$intCounter]['city_name'] = $arrCityDetail[0]['city_name'];
                        $response[$intCounter]['description'] = $arrCityDetail[0]['description'];
                        $response[$intCounter]['thumb_image_url'] = $arrCityDetail[0]['thumb_image_url'];
                        $intCounter++;
                    }
                }
            }

            $intCityCount = count($arrCityCovered);

            $intDifference = 3 - $intCityCount;

            if ($intDifference > 0) {
                /*
                  $objItenary = new Travel_Model_TblItineraryPackage();
                  $objItenary->intPackageId = $intPackageId;
                  $objItenary->intQueryOffset  = 0;
                  $objItenary->intListPerPage  = $intDifference;
                  $objItenary->strSelectedView = 'list';
                  $objItenary->strCondition = " AND destinations <> '' ";
                  $this->view->arrDestinations = $objItenary->getItenaryDestinations();
                 */

                $strDestinationIds = $arrPackageDetail[0]['destination_covered_ids'];

                if (!empty($strDestinationIds)) {
                    /*
                      $objItenary->intPackageId = $intPackageId;
                      $objItenary->intQueryOffset  = 0;
                      $objItenary->intListPerPage  = $intDifference;
                      $objItenary->strSelectedView = 'list';
                      $objItenary->strCondition = " AND destinations <> '' ";
                      $this->view->arrDestinations = $objItenary->getItenaryDestinations();
                     * 
                     */

                    $objDestination = new Travel_Model_TblDestination();
                    $objDestination->intQueryOffset = 0;
                    $objDestination->intListPerPage = $intDifference;
                    $objDestination->strSelectedView = 'list';
                    $objDestination->strCondition = " AND tbl_destination.id in (" . $strDestinationIds . ")";
                    $this->view->arrDestinations = $objDestination->getDestinationList();
                }


                //                echo "<pre>";
                //                print_r($objItenary->getItenaryDestinations());
                //                exit;
            }


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

            $this->view->arrDetail = $response;
        }
    }

    public function overviewSlideAction() {

        $this->_helper->layout->disableLayout();

        if ($this->getRequest()->isXmlHttpRequest()) {
            $intPackageId = $this->view->intPackageId = $this->getRequest()->getParam('intPackageId');
            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->intId = $intPackageId;
            $objPackage->isPreview = true;
            $arrPackageDetail = $objPackage->getPackageList();

            //            echo '<pre>';
            //            print_r($arrPackageDetail);
            //            exit;


            if (!empty($arrPackageDetail)) {

                $this->view->arrPackageDetail = $arrPackageDetail[0];

                /* For only hotel package */
                if ($arrPackageDetail[0]['p_type'] == 'OH') {
                    $this->view->arrHotelInfo = $objPackage->getHotelsInPackage($intPackageId);
                    $this->render('overview-hotel');
                } else {
                    $intOffset = $this->view->intOffset = $this->getRequest()->getParam('intOffset');
                    $strDirection = $this->getRequest()->getParam('direction');

                    if (empty($intOffset)) {
                        $intOffset = 0;
                    }



                    $this->view->intCityCoveredCount = $intCityCoveredCount = $objPackage->getCityCoveredNHavingDestinationsCount($intPackageId);

                    //                $strCityCovered = $arrPackageDetail[0]['city_covered'];
                    //                if(!empty($strCityCovered)) {
                    //                    $intCityCoveredCount = count(explode(",", $strCityCovered));
                    //                }else {
                    //                    $intCityCoveredCount = 0;
                    //                }
                    //   $this->view->intCityCoveredCount = $intCityCoveredCount = $objPackage->getCityCoveredNHavingDestinationsCount($intPackageId);
                    //  echo $intCityCoveredCount;exit;

                    $objPackage->strSelectedView = 'list';
                    if ($strDirection == 'prev') {
                        if ($intOffset > 6) {
                            $intOffset = $intOffset - 6;
                        } else {
                            $intOffset = 0;
                        }
                    }


                    $objPackage->intQueryOffset = $intOffset;
                    $objPackage->intListPerPage = 3;
                    $arrCityCovered = $objPackage->getOverviewCitiCovered();
                    //
                    //               echo $intCityCoveredCount;
                    //    //            
                    //                echo "<pre>";
                    //                print_r($arrCityCovered);
                    //                exit;

                    $response = array();

                    if (!empty($arrCityCovered) && count($arrCityCovered) <= $intCityCoveredCount) {
                        $intCounter = 0;
                        foreach ($arrCityCovered as $city) {
                            $intCityId = $city['city_covered'];

                            $objCity = new Travel_Model_TblCity();
                            $objCity->intId = $intCityId;

                            $arrCityDetail = $objCity->getCityList();

                            if (!empty($arrCityDetail)) {
                                $response[$intCounter]['id'] = $arrCityDetail[0]['id'];
                                $response[$intCounter]['city_name'] = $arrCityDetail[0]['city_name'];
                                $response[$intCounter]['about'] = $arrCityDetail[0]['about'];
                                $response[$intCounter]['short_description'] = $arrCityDetail[0]['short_description'];
                                $response[$intCounter]['thumb_image_url'] = $arrCityDetail[0]['thumb_image_url'];
                                $intCounter++;
                            }
                        }
                    }

                    $intCityCount = count($arrCityCovered);

                    //echo $intCityCount;exit;



                    $intDifference = 3 - $intCityCount;

                    $this->view->hasMoreCity = $intDifference >= 0 ? 'N' : 'Y';

                    if ($intDifference > 0) {
                        $objItenary = new Travel_Model_TblItineraryPackage();

                        $strDestinationIds = $arrPackageDetail[0]['destination_covered_ids'];

                        if (!empty($strDestinationIds)) {
                            /*
                              $objItenary->intPackageId = $intPackageId;
                              $objItenary->intQueryOffset  = 0;
                              $objItenary->intListPerPage  = $intDifference;
                              $objItenary->strSelectedView = 'list';
                              $objItenary->strCondition = " AND destinations <> '' ";
                              $this->view->arrDestinations = $objItenary->getItenaryDestinations();
                             * 
                             */

                            //  echo $intDifference;exit;

                            $objDestination = new Travel_Model_TblDestination();
                            $objDestination->intQueryOffset = 0;
                            $objDestination->intListPerPage = $intDifference;
                            $objDestination->strSelectedView = 'list';
                            $objDestination->strCondition = " AND tbl_destination.id in (" . $strDestinationIds . ")";
                            $this->view->arrDestinations = $objDestination->getDestinationList();
                        }

                        //                    echo "<pre>";
                        //                    print_r($objItenary->getItenaryDestinations());
                        //                    exit;
                    }


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

                    $this->view->arrDetail = $response;
                }
            }
        }
    }

    /*
      public function inclusionsAction() {

      $this->_helper->layout->disableLayout();

      if ($this->getRequest()->isXmlHttpRequest()) {
      $intPackageId = $this->getRequest()->getParam('intPackageId');
      $objPackage = new Travel_Model_TblPackageMaster();
      $objPackage->intId = $intPackageId;
      $arrPackageDetail = $objPackage->getPackageList();
      $this->view->inclusion_text = $arrPackageDetail[0]['inclusion_text'];
      }

      }
     */

    public function exclusionsAction() {

        $this->_helper->layout->disableLayout();

        if ($this->getRequest()->isXmlHttpRequest()) {
            $intPackageId = $this->getRequest()->getParam('intPackageId');
            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->intId = $intPackageId;
            $objPackage->isPreview = true;
            $arrPackageDetail = $objPackage->getPackageList();
            $this->view->exclusion = $arrPackageDetail[0]['exclusion'];

            $this->view->inclusion_text = $arrPackageDetail[0]['inclusion_text'];
            $this->view->notes = $arrPackageDetail[0]['notes'];
        }
    }

    public function ratesAction() {

        $this->_helper->layout->disableLayout();

        if ($this->getRequest()->isXmlHttpRequest()) {
            $intPackageId = $this->getRequest()->getParam('intPackageId');
            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->intId = $intPackageId;
            $arrPackageDetail = $objPackage->getPackageList();
            $this->view->inclusion_text = $arrPackageDetail[0]['inclusion_text'];
        }
    }

    public function termsNConditionsAction() {

        $this->_helper->layout->disableLayout();

        if ($this->getRequest()->isXmlHttpRequest()) {
            $intPackageId = $this->getRequest()->getParam('intPackageId');
            $objPackage = new Travel_Model_TblPackageMaster();
            $objPackage->intId = $intPackageId;
            $arrPackageDetail = $objPackage->getPackageList();

            $objAgent = new Travel_Model_TblAgentInfo();
            $objAgent->intId = $arrPackageDetail[0]['agent_id'];

            $arrAgentInfo = $objAgent->getAgentList();
            if (!empty($arrAgentInfo)) {
                $this->view->agentInfo = $arrAgentInfo[0];
            }

            if ($arrPackageDetail[0]['term_condition_isdefault'] == 'Y') {
                $this->view->termscondition = $arrAgentInfo[0]['terms_condition'];
            } else {
                $this->view->termscondition = $arrPackageDetail[0]['term_condition'];
            }


            if ($arrPackageDetail[0]['payment_policy_isdefault'] == 'Y') {
                $this->view->paymentPolicy = $arrAgentInfo[0]['payment_policies'];
            } else {
                $this->view->paymentPolicy = $arrPackageDetail[0]['payment_policy'];
            }

            if ($arrPackageDetail[0]['cancellation_policy_isdefault'] == 'Y') {
                $this->view->cancellationPolicy = $arrAgentInfo[0]['cancellation_policies'];
            } else {
                if (isset($arrPackageDetail[0]['cancellation_policies'])) {
                    $this->view->cancellationPolicy = $arrPackageDetail[0]['cancellation_policies'];
                }
            }
            $this->view->notes = $arrPackageDetail[0]['notes'];
        }
    }

    public function similarPackagesAction() {

        $this->_helper->layout->disableLayout();

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

            $registry = Zend_Registry::getInstance();
            $this->view->imageServerUrl = $registry->imageServerURL;
            $this->view->noImageUrl = $this->_helper->Image->getNoImageUrl('general', 'thumb');

            $intPackageId = $this->getRequest()->getParam('intPackageId');
            $objPackage = new Travel_Model_TblPackageMaster();

            $objPackage->intId = $intPackageId;
            $arrSimilarPackages = $objPackage->getSimilarPackages();

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

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

    public function shortlistBarAction() {
        $this->_helper->layout->disableLayout();

        if ($this->getRequest()->isXmlHttpRequest()) {
            
        }
    }

    public function comparePackageBarAction() {
        $this->_helper->layout->disableLayout();

        if ($this->getRequest()->isXmlHttpRequest()) {
            
        }
    }

    public function recentlyViewedBarAction() {
        $this->_helper->layout->disableLayout();

        if ($this->getRequest()->isXmlHttpRequest()) {
            
        }
    }

    public function hotelAction() {

        $params = $this->getRequest()->getParams();

        if (isset($params['package-detail'])) {
            $packageParamString = $params['package-detail'];

            $this->view->intPackageId = $intPackageId = Zend_Controller_Action_HelperBroker::getStaticHelper('SEO')->getIdFromSEOUrl($packageParamString);
        } else {
            $this->view->intPackageId = $intPackageId = $params['id'];
        }



        if (empty($intPackageId)) {

            throw new Exception("Package Id not found.");
        }



        //$this->view->strRating       = $strRating = $this->getRequest()->getParam('strRating');



        $this->view->imageServerUrl = $this->imageServerUrl;

        $objPackage = new Travel_Model_TblPackageMaster();

        $objPackage->intId = $intPackageId;

        $arrPackageDetail = $objPackage->getPackageList();

        if (count($arrPackageDetail) != 1) {

            $this->_redirect($this->view->baseUrl);
        }



        $strPackageCategory = $arrPackageDetail[0]['category'];

        $this->view->packageDetail = $arrPackageDetail[0];

        $this->view->p_type = $arrPackageDetail[0]['p_type'];

        $this->view->arrPackageCategory = $arrPackageCategory = explode(",", $strPackageCategory);

        $this->view->packageType = $arrPackageDetail[0]['p_type'];

        $objAgent = new Travel_Model_TblAgentInfo();

        $objAgent->intId = $arrPackageDetail[0]['agent_id'];

        $arrAgentInfo = $objAgent->getAgentList();

        if (!empty($arrAgentInfo)) {

            $this->view->agentInfo = $arrAgentInfo[0];
        }





        if ($arrPackageDetail[0]['term_condition_isdefault'] == 'Y') {

            $this->view->termscondition = $arrAgentInfo[0]['terms_condition'];
        } else {

            $this->view->termscondition = $arrPackageDetail[0]['term_condition'];
        }





        if ($arrPackageDetail[0]['payment_policy_isdefault'] == 'Y') {

            $this->view->paymentPolicy = $arrAgentInfo[0]['payment_policies'];
        } else {

            $this->view->paymentPolicy = $arrPackageDetail[0]['payment_policy'];
        }



        if ($arrPackageDetail[0]['cancellation_policy_isdefault'] == 'Y') {

            $this->view->cancellationPolicy = $arrAgentInfo[0]['cancellation_policies'];
        } else {

            if (isset($arrPackageDetail[0]['cancellation_policies'])) {

                $this->view->cancellationPolicy = $arrPackageDetail[0]['cancellation_policies'];
            }
        }





        $this->view->exclusion = $arrPackageDetail[0]['exclusion'];

        $this->view->inclusion_text = $arrPackageDetail[0]['inclusion_text'];

        $this->view->notes = $arrPackageDetail[0]['notes'];

        $arrPackCat = array();

        $isStandard = false;

        $isDeluxe = false;

        $isLuxury = false;

        if (!empty($arrPackageCategory)) {

            foreach ($arrPackageCategory as $category) {

                if ($category == 'Standard') {

                    $arrPackCat['S'] = 'Standard';

                    $this->view->isStandard = $isStandard = true;
                }

                if ($category == 'Deluxe') {

                    $arrPackCat['D'] = 'Deluxe';

                    $this->view->isDeluxe = $isDeluxe = true;
                }

                if ($category == 'Luxury') {

                    $arrPackCat['L'] = 'Luxury';

                    $this->view->isLuxury = $isLuxury = true;
                }
            }
        }



        $this->view->arrHotelInfo = $arrAllHotelsInPackage = $objPackage->getHotelsInPackage($intPackageId);

        $this->view->arrAllStandardHotels = $arrAllStandardHotels = $objPackage->getHotelsInPackage($intPackageId, 'S');

        $this->view->arrAllDeluxeHotels = $arrAllDeluxeHotels = $objPackage->getHotelsInPackage($intPackageId, 'D');

        $this->view->arrAllLuxuryHotels = $arrAllLuxuryHotels = $objPackage->getHotelsInPackage($intPackageId, 'L');

        if ($isStandard) {

            $strStandardHotelInfo = '';

            if (!empty($arrAllStandardHotels)) {

                foreach ($arrAllStandardHotels as $hotel) {

                    $strStandardHotelInfo .= '<strong>' . $hotel['city_name'] . '</strong>, ';

                    $strStandardHotelInfo .= $hotel['hotel_name'];

                    if (!empty($hotel['rating'])) {

                        $strStandardHotelInfo .= ' ' . $hotel['rating'];

                        $strStandardHotelInfo .= '<img src="' . $this->baseUrl . '/public/travel/images/small_star.png">';
                    }

                    $strStandardHotelInfo .= "<br>";
                }
            }

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



        if ($isDeluxe) {

            $strDeluxeHotelInfo = '';

            if (!empty($arrAllDeluxeHotels)) {

                foreach ($arrAllDeluxeHotels as $hotel) {

                    $strDeluxeHotelInfo .= '<strong>' . $hotel['city_name'] . '</strong>, ';

                    $strDeluxeHotelInfo .= $hotel['hotel_name'];

                    if (!empty($hotel['rating'])) {

                        $strDeluxeHotelInfo .= ' ' . $hotel['rating'];

                        $strDeluxeHotelInfo .= '<img src="' . $this->baseUrl . '/public/travel/images/small_star.png">';
                    }

                    $strDeluxeHotelInfo .= "<br>";
                }
            }

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



        if ($isLuxury) {

            $strLuxuryHotelInfo = '';

            if (!empty($arrAllLuxuryHotels)) {

                foreach ($arrAllLuxuryHotels as $hotel) {

                    $strLuxuryHotelInfo .= '<strong>' . $hotel['city_name'] . '</strong>, ';

                    $strLuxuryHotelInfo .= $hotel['hotel_name'];

                    if (!empty($hotel['rating'])) {

                        $strLuxuryHotelInfo .= ' ' . $hotel['rating'];

                        $strLuxuryHotelInfo .= '<img src="' . $this->baseUrl . '/public/travel/images/small_star.png">';
                    }

                    $strLuxuryHotelInfo .= "<br>";
                }
            }

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







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





        if ($arrPackageDetail[0]['p_type'] == 'OH' || $arrPackageDetail[0]['p_type'] == 'HF') {







            $arrHotelInfo = $objPackage->getOnlyHotelPackageInfo();

            if (!empty($arrHotelInfo)) {

                $objHotel = new Travel_Model_TblHotel();

                if ($isStandard) {

                    $intHotelIdStandard = $arrHotelInfo[0]['hotel_id_standard'];

                    $objHotel->intId = $intHotelIdStandard;

                    $arrStandardHotelInfo = $objHotel->getHotelList();

                    if (!empty($arrStandardHotelInfo)) {

                        $this->view->strStandardHotelName = $arrStandardHotelInfo[0]['hotel_name'];

                        $this->view->intStandardHotelRating = $arrStandardHotelInfo[0]['rating'];
                    }
                }



                if ($isDeluxe) {

                    $intHotelIdDeluxe = $arrHotelInfo[0]['hotel_id_deluxe'];

                    $objHotel->intId = $intHotelIdDeluxe;

                    $this->view->arrDeluxeHotelInfo = $arrDeluxeHotelInfo = $objHotel->getHotelList();

                    if (!empty($arrDeluxeHotelInfo)) {

                        $this->view->strDeluxeHotelName = $arrDeluxeHotelInfo[0]['hotel_name'];

                        $this->view->intDeluxeHotelRating = $arrDeluxeHotelInfo[0]['rating'];
                    }
                }



                if ($isLuxury) {

                    $intHotelIdLuxury = $arrHotelInfo[0]['hotel_id_luxury'];

                    $objHotel->intId = $intHotelIdLuxury;

                    $this->view->arrLuxuryHotelInfo = $arrLuxuryHotelInfo = $objHotel->getHotelList();

                    if (!empty($arrLuxuryHotelInfo)) {

                        $this->view->strLuxuryHotelName = $arrLuxuryHotelInfo[0]['hotel_name'];

                        $this->view->intLuxuryHotelRating = $arrLuxuryHotelInfo[0]['rating'];
                    }
                }







                if (!empty($arrHotelInfo)) {

                    $strKeyInclusions = '';

                    foreach ($arrHotelInfo as $info) {

                        if (!empty($info['services'])) {

                            $strKeyInclusions .= $info['services'] . ",";
                        }
                    }

                    $strKeyInclusions = trim($strKeyInclusions);

                    $this->view->arrKeyFacilities = explode(",", $strKeyInclusions);
                }
            }
        } else {



            /* Show the itenary of Standard Hotel Only */





            /* Get category from Package */

            $category = $arrPackageDetail[0]['category'];

            $arrCategory = explode(",", $category);

            if (in_array('Standard', $arrCategory)) {

                $strRating = 'S';

                $intHotelCategory = 1;

                $strRatingToDisplay = 'Standard';
            } else if (in_array('Deluxe', $arrCategory)) {

                $strRating = 'D';

                $intHotelCategory = 2;

                $strRatingToDisplay = 'Deluxe';
            } else if (in_array('Luxury', $arrCategory)) {

                $strRating = 'L';

                $intHotelCategory = 3;

                $strRatingToDisplay = 'Luxury';
            }



            $objInclusion = new Travel_Model_TblInclusion();

            $this->view->arrKeyInclusions = $objInclusion->getInclusionList($intPackageId);

            $objItenary = new Travel_Model_TblItineraryPackage();

            $objItenary->intPackageId = $intPackageId;

            $objItenary->intHotelCategory = $intHotelCategory;

            $this->view->itenaryDetail = $arrItenaryDetail = $objItenary->view4UI();

            $boolHavingItenary = false;

            if (!empty($arrItenaryDetail)) {

                foreach ($arrItenaryDetail as $itenary) {

                    $title = trim($itenary['title']);

                    if (!empty($title)) {

                        $boolHavingItenary = true;
                    }
                }
            }

            $this->view->boolHavingItenary = $boolHavingItenary;

            /* if(!empty($intDepartureCity)) {

              $objCity = new Travel_Model_TblCity();

              $objCity->intId = $intDepartureCity;

              $arrCityDetail = $objCity->getCityList();

              if(!empty($arrCityDetail)>0){

              $this->view->cityName = $arrCityDetail[0]['city_name'];

              }

              }

             */



            $bType = 'B2C';

            $this->view->intPackageId = $intPackageId;

            // $this->view->intDepartureCity = $intDepartureCity;

            $this->view->rating = $strRating;

            $this->view->busType = $bType;

            $this->view->strRatingToDisplay = $strRatingToDisplay;

            $this->view->arrDestinationCoveredFormatted = $objPackage->getDestinationCoveredFormatted();
        }



        //  $this->view->intPackageId       = $intPackageId       = $this->getRequest()->getParam('intPackageId');
        //   $this->view->intSeasonId        = $intSeasonId        = $this->getRequest()->getParam('intSeasonId');
        //   $this->view->intDepartureCityId = $intDepartureCityId = $this->getRequest()->getParam('intDepartureCity');



        $arrRates = $objPackage->getRates($intPackageId, '');

        if (!empty($arrRates)) {

            $this->view->arrRates = $arrRateBox = $arrRates[0];

            $this->view->showPasoLine = false;

            $this->view->showChildLine = false;

            if (!empty($arrRateBox['s_b2c_paso']) || !empty($arrRateBox['d_b2c_paso']) || !empty($arrRateBox['l_b2c_paso'])) {

                $this->view->showPasoLine = true;
            }



            if (!empty($arrRateBox['s_b2c_child']) || !empty($arrRateBox['d_b2c_child']) || !empty($arrRateBox['l_b2c_child'])) {

                $this->view->showChildLine = true;
            }



            if (!empty($arrRates[0]['city_id'])) {

                $this->view->intDepartureCityId = $arrRates[0]['city_id'];
            }
        } else {

            $this->view->arrRates = array();
        }



        $this->view->arrDepartureCities = $arrDepartureCities = $objPackage->getDepartureCities('array');

        // $this->view->strRating = $strRating;        

        if (!empty($strRatingToDisplay)) {

            $this->view->title = "Itinerary for " . $strRatingToDisplay . " Package";
        }







        $this->view->destinationCities = $objPackage->getDepartureCities('array');

        $objPackage = new Travel_Model_TblPackageMaster();

        $objPackage->intId = $intPackageId;

        $objPackage->strSelectedView = 'list';

        $objPackage->intQueryOffset = 0;

        $objPackage->intListPerPage = SHOW_SIMILAR_PKG_COUNT;

        $arrSimilarPackages = $objPackage->getSimilarPackages();

        $this->view->arrSimilarPackages = $arrSimilarPackages;

        // $arrImageDetail = $objPackage->getPackageImage('large');



        $this->view->intCityCoveredCount = $objPackage->getCityCoveredNHavingDestinationsCount($intPackageId);

        $objAgent = new Travel_Model_TblAgentInfo();

        $intAgentId = $arrPackageDetail[0]['agent_id'];

        $objAgent->addPackageVisit($intPackageId, $intAgentId);

        /* if(isset($_COOKIE['recentlyViewedPackages'])) {



          $arrRecentlyViewed = explode(",", $_COOKIE['recentlyViewedPackages']);



          if(!in_array($intPackageId, $arrRecentlyViewed)) {

          setcookie('recentlyViewedPackages',$_COOKIE['recentlyViewedPackages'] . ',' . $intPackageId ,time() + (86400), "/");



          $arrRecentlyViewed = explode(",", $_COOKIE['recentlyViewedPackages']);

          //                echo MAX_RECENTLY_VIEWED_PKGS;

          //                exit;



          //if(count($arrRecentlyViewed) > MAX_RECENTLY_VIEWED_PKGS){

          if(count($arrRecentlyViewed) > MAX_RECENTLY_VIEWED_PKGS){

          /* Remove previous element

          array_shift($arrRecentlyViewed);

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

          //                    exit;

          setcookie('recentlyViewedPackages', implode(",", $arrRecentlyViewed),time() + (86400), "/");

          }

          }

          }else {

          setcookie('recentlyViewedPackages',$intPackageId,time() + (86400), "/");

          } */





        if (isset($_COOKIE['recentlyViewedPackages']) && $_COOKIE['recentlyViewedPackages'] != "") {



            $arrRecentlyViewed = explode(",", $_COOKIE['recentlyViewedPackages']);

            if (!in_array($intPackageId, $arrRecentlyViewed)) {



                $arrRecentlyViewed = explode(",", $_COOKIE['recentlyViewedPackages']);

                array_push($arrRecentlyViewed, $intPackageId);

                setcookie('recentlyViewedPackages', implode(",", $arrRecentlyViewed), time() + (86400), "/");

                if (count($arrRecentlyViewed) > MAX_RECENTLY_VIEWED_PKGS) {

                    setcookie('recentlyViewedPackages', implode(",", $arrRecentlyViewed), time() + (86400), "/");

                    $arrRecentlyViewed = explode(",", $_COOKIE['recentlyViewedPackages']);

                    array_shift($arrRecentlyViewed);

                    $arrRecentlyViewed = array_values($arrRecentlyViewed);

                    setcookie('recentlyViewedPackages', implode(",", $arrRecentlyViewed), time() + (86400), "/");
                }
            }
        } else {

            setcookie('recentlyViewedPackages', $intPackageId, time() + (86400), "/");
        }



        $packageName = $arrPackageDetail[0]['display_name'];

        if (empty($packageName)) {

            $packageName = '';
        }



        //$packageDesc       =   strip_tags($arrPackageDetail[0]['description']);

        $price = $arrPackageDetail[0]['s_price'];

        $content = "Package starting from " . $this->_helper->Currency->formatCurrency($arrPackageDetail[0]['s_price']) . " per person. ";

        $this->view->doctype('XHTML1_RDFA');  // controller

        $this->view->headMeta()->setProperty('fb:app_id', FACEBOOK_APP_ID);

        $this->view->headMeta()->setProperty('og:type', 'website');

        $this->view->headMeta()->setProperty('og:description', $content);

        $this->view->headMeta()->setProperty('og:title', $packageName);

        // $this->view->headMeta()->setProperty('og:image:type', 'image/jpg');

        $this->view->headMeta()->setProperty('og:url', $this->_helper->SEO->getPackageDetailPageUrl($arrPackageDetail[0]['id'], $arrPackageDetail[0]['package_name']));

        // $this->view->headMeta()->setProperty('og:url', 'http://www.travelone.co.in/package/1330/travel-package/Best-Shimla-Manali-Family-Holiday-Tour-Package');

        $this->view->headMeta()->setProperty('og:site_name', SITE_NAME);

        $this->view->fb_image_url = $fb_share_image = $objPackage->getFacebookSharingImage('single');

        $arr_fb_images = $objPackage->getFacebookSharingImage('array');

        $packageNameCustomized = $arrPackageDetail[0]['display_name'];

        $packageNameCustomized = substr($packageNameCustomized, 0, strpos($packageNameCustomized, '- with'));

        $strCitiesCovered = $arrPackageDetail[0]['city_covered_text'];

        $arrCitiesCovered = explode(",", $strCitiesCovered);

        if (count($arrCitiesCovered) > 2) {

            $strCitiesCovered = $arrCitiesCovered[0] . ',' . $arrCitiesCovered[1];
        }

        $this->view->headMeta()->setName('description', 'Book ' . $packageNameCustomized . ' at showmetrips.com, one of the 100 ' . $strCitiesCovered . ' tour options we have for you.See more such travel packages here.');

        /* Get current page url */

        $this->view->canonical = $this->baseUrl . Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();

        $keyword = $arrPackageDetail[0]['city_covered_text'];

        $arrKeyword = explode(",", $keyword);

        if (count($arrKeyword) > 1 && !empty($keyword)) {

            $keyword = $arrKeyword[0];
        }



        $pageTitle = $keyword . ' package | ' . $keyword . ' tour packages | ' . $keyword . ' travel packages';

        $this->view->headTitle($pageTitle);

        $this->view->headMeta()->setName('keywords', $keyword . ' package, ' . $keyword . ' tour packages, ' . $keyword . ' travel packages, 

                    best ' . $keyword . ' package, cheap ' . $keyword . ' tour package');

        $this->view->arr_fb_images = $arr_fb_images;

        //$this->view->headMeta()->setProperty('og:image',$fb_share_image);









        $arrHotelIds = array();

        //  $this->view->dayNight = $this->_helper->General->showDayNight($arrPackageDetail[0]['days']);



        $objAgent = new Travel_Model_TblAgentInfo();

        $objAgent->intId = $arrPackageDetail[0]['agent_id'];

        $arrAgentInfo = $objAgent->getAgentList();

        if (!empty($arrAgentInfo)) {

            $this->view->agentInfo = $arrAgentInfo[0];
        }




        /* Integration of Trip advisor */

        $curlUrl = "http://api.tripadvisor.com/api//partner/2.0/location/89575/hotels?key=f652bf61fad841db97239a7885b25096";

        $response = file_get_contents($curlUrl);

        $response = json_decode($response, 1);

        if (!empty($response)) {

            $data = array();

            foreach ($response['data'] as $value) {

                $this->view->address1 = $value['address_obj']['street1'];

                $this->view->address2 = $value['address_obj']['street2'];

                $this->view->city = $value['address_obj']['city'];

                $this->view->state = $value['address_obj']['state'];

                $this->view->country = $value['address_obj']['country'];

                $this->view->postalcode = $value['address_obj']['postalcode'];

                $this->view->address_string = $value['address_obj']['address_string'];

                $this->view->latitude = $value['latitude'];

                $this->view->longitude = $value['longitude'];

                $this->view->rating = $value['rating'];

                $this->view->rating_image_url = $value['rating_image_url'];

                $this->view->ranking_string = $value['ranking_data']['ranking_string'];

                $this->view->write_review = $value['write_review'];

                $this->view->web_url = $value['web_url'];

                $this->view->hotel_name = $value['name'];

                $this->view->num_reviews = $value['num_reviews'];

                $this->view->see_all_photos = $value['see_all_photos'];
            }
        }
    }

    public function sendB2bEnquiryAction() {

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

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

            Zend_Session::start();
            $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
            $intAgentId = $sessionLogin_user->intLoginAgentId;

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

            //                if(!empty($intPackageId)){
            //                    $objPackage = new Travel_Model_TblPackageMaster();
            //                    $arrPackage = $objPackage->getPackageList();
            //                    if(!empty($arrPackage) > 0){
            //                        $strPackageName = $arrPackage[0]['display_name'];
            //                    }else{
            //                        $strPackageName = '';
            //                    }
            //                }
            //                echo "<pre>";
            //                print_r( $this->getRequest()->getPost());
            //                exit;

            $strName = $this->getRequest()->getParam('name');
            $contactNo = $this->getRequest()->getParam('contact_no');
            $emailId = $this->getRequest()->getParam('email_id');
            $strAgentCity = $this->getRequest()->getParam('agentcity');
            $strAgentDestination = $this->getRequest()->getParam('agentdestination');
            $travelDt = $this->getRequest()->getParam('travel_dt');
            $intNoOfPax = $this->getRequest()->getParam('no_of_pax');
            $remarks = $this->getRequest()->getParam('remarks');

            $device = Zend_Controller_Action_HelperBroker::getStaticHelper('Device')->deviceType();
            $browser = Zend_Controller_Action_HelperBroker::getStaticHelper('General')->getUserBrowser();
            $ipAddress = $_SERVER['REMOTE_ADDR'];
            $entryDate = date('Y-m-d H:i:s');

            $url = $_SERVER['HTTP_REFERER'];
            $fromUrl = '<a href="' . $url . '">' . $_SERVER['HTTP_REFERER'] . '</a>';

            if (empty($strName)) {
                $msg = "Please enter your name.";
                $response = array('success' => false, 'msg' => $msg, 'errorCtrl' => 'b2b_customer_name');
                echo json_encode($response);
                exit;
            }

            if (empty($contactNo)) {
                $msg = "Please enter your contact number.";
                $response = array('success' => false, 'msg' => $msg, 'errorCtrl' => 'contact_no');
                echo json_encode($response);
                exit;
            }

            if (empty($emailId)) {
                $msg = "Please enter your email ID.";
                $response = array('success' => false, 'msg' => $msg, 'errorCtrl' => 'email');
                echo json_encode($response);
                exit;
            }
            if (!filter_var($emailId, FILTER_VALIDATE_EMAIL)) {
                $msg = "Please enter a valid email ID.";
                $response = array('success' => false, 'msg' => $msg, 'errorCtrl' => 'email');
                echo json_encode($response);
                exit;
            }

            //                if(empty($strAgentCity)) {
            //                    $msg =  "Please enter your city";
            //                    $response = array('success' => false, 'msg' => $msg, 'errorCtrl' => 'agentcity');
            //                    echo json_encode($response);
            //                    exit;
            //                }

            if (empty($strAgentDestination)) {
                $msg = "Please enter your destination";
                $response = array('success' => false, 'msg' => $msg, 'errorCtrl' => 'agentdestination');
                echo json_encode($response);
                exit;
            }

            if (empty($travelDt)) {
                $msg = "Please enter your travel date";
                $response = array('success' => false, 'msg' => $msg, 'errorCtrl' => 'travel_dt_left');
                echo json_encode($response);
                exit;
            }


            $data = array(
                'query_via_agent' => $intAgentId,
                'package_id' => $intPackageId,
                'customer_name' => $strName,
                'contact_no' => $contactNo,
                'email' => $emailId,
                'agent_city' => $strAgentCity,
                'customer_destination' => $strAgentDestination,
                'travel_date' => Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($travelDt, 'd/m/y'),
                'pax' => $intNoOfPax,
                'from_page' => 'b2b_search_result',
                'from_url' => $fromUrl,
                'comment' => $remarks,
                'form_type' => 'B2B',
                'browser' => $browser,
                'device' => $device,
                'ip_address' => $ipAddress,
                'entry_dt' => $entryDate
            );

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


            $objEnquiry = new Travel_Model_TblEnquiry();
            if ($objEnquiry->saveB2bEnquiry($data)) {

                $arrVars = array(
                    'package_id' => $intPackageId,
                    'name' => $strName,
                    'contact_no' => $contactNo,
                    'email_id' => $emailId,
                    'agentcity' => $strAgentCity,
                    'agentdestination' => $strAgentDestination,
                    'travel_dt' => Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($travelDt, 'd/m/y'),
                    'no_of_pax' => $intNoOfPax,
                    'remarks' => $remarks
                );

                $toEmail = Admin_Mail;
                $response = $this->_helper->EmailTemplate->SendB2bEnquiryMail($toEmail, $arrVars);
                if ($response) {
                    $response = array('success' => true);
                    echo json_encode($response);
                    exit;
                }
            }
            $response = array('success' => false, 'msg' => 'There is some technical error found, Please try again later.', 'errorCtrl' => '');
            echo json_encode($response);
            exit;
        }
        exit;
    }

    public function sendEmailToAgentAction() {
        $this->_helper->layout->disableLayout();
        $result = '';
        if ($this->getRequest()->isPost()) {
            $this->_agencyuserObj = new Travel_Model_CRM_AgencyUserInbox();
            $TPSysId = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getParam('planId')));
            $SenderSysId = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getParam('senderId')));
            $RcvSysId = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getParam('recieverId')));
            $AgencySysId = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getParam('agencyId')));
            $emailid = $this->_HtmlPurifier->filter($this->getRequest()->getParam('emailid'));
            $isAgent = $this->_HtmlPurifier->filter($this->getRequest()->getParam('isAgent'));
            $message = $this->getRequest()->getParam('message');
            $message = $this->_HtmlPurifier->filter($message);
            if (isset($isAgent) && !empty($isAgent)) {
                $isAgent = 1;
            } else {
                $isAgent = 0;
            }
            // query for insert data in db created by amit kumar dubey on 16 august 2016 at 12:40 PM
            $date = date('Y-m-d H:i:s');
            $messageArray = array(
                'ModuleType' => 1,
                'RefSysId' => $TPSysId,
                'SenderSysId' => $SenderSysId,
                'UserSysId' => $RcvSysId,
                'AgencySysId' => $AgencySysId,
                'Message' => addslashes($message),
                'MsgType' => 1,
                'isAgent' => $isAgent,
                'Accepted' => 0,
                'Rejected' => 0,
                'RejectReason' => 0,
                'OtherInfo' => 0,
                'UpdateDate' => $date,
                'CreatedDate' => $date,
                'IsActive' => 1,
                'IsMarkForDel' => '0'
            );
            $customerRcord = $this->_agencyuserObj->addNotification($messageArray);
            //return $customerRcord; 
            $result = "success";
            // update notification in travel plan is viewd
            $where = "TPSysId = " . $TPSysId;
            $this->_crmcusttravelplan = new Travel_Model_CRM_CustomerTravelPlan();
            $data = array(
                'UpdateDate' => date('Y-m-d H:i:s'),
                'isPlanViewed' => 0
            );
            $updateViewdInCustomerTravelPlan = $this->_crmcusttravelplan->UpdateCustomerTravelPlan($data, $where);
            //end of notification
            //send email to agent for notify
            $aConfig = $this->getInvokeArg('bootstrap')->getOptions();
            $this->smtpUserName = $aConfig['smtpUserName'];
            $this->smtpPassword = $aConfig['smtpPassword'];
            $this->smtpPort = $aConfig['smtpPort'];
            $this->smtpHost = $aConfig['smtpHost'];
            $this->fromEmail = $aConfig['fromEmail'];
            $this->fromName = $aConfig['fromName'];
            $bodyText = "New message recieved from ($emailid) : " . $message;
            $mailConfig = array(
                'ssl' => 'ssl',
                'auth' => 'login',
                'port' => $this->smtpPort,
                'username' => $this->smtpUserName,
                'password' => $this->smtpPassword
            );
            $emailId = '' . trim($emailid) . '';

            $transport = new Zend_Mail_Transport_Smtp($this->smtpHost, $mailConfig);
            $mail = new Zend_Mail("iso-8859-1");
            $mail->addTo($emailId)
                    ->setSubject('Proposal Details')
                    ->setBodyHtml($bodyText)
                    ->setFrom($this->fromEmail, $this->fromName);

            try {
                //echo "success";
                $mail->send($transport);
                "success";
            } catch (Exception $err) {
                print_r($err, true);
                "failed";
            }
            //end of send email to agent
        }
        $status = array('response' => $result);
        return $this->_helper->json($status);
    }

    public function updateselectedhotelAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $createDate = date('Y-m-d');
        $tpsysID = $getData['tpsysID'];
        $seq = $getData['seq'] ? $getData['seq'] : '';
        $otherdata = array(
            'IsSelectedOnPkg' => 0
        );
        $otherwhere = "TPIntSysId = " . $tpsysID;
        $updateothervalue = $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $otherdata, $otherwhere);
        $data = array(
            'IsSelectedOnPkg' => 1
        );
        $where = "TPIntSysId = " . $tpsysID . " AND SeqId = " . $seq;
        $updateId = $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $data, $where);
    }

    public function updateselectedhotelcustomerAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $createDate = date('Y-m-d');
        $tpsysID = $getData['tpsysID'];
        $seq = $getData['seq'] ? $getData['seq'] : '';
        $otherdata = array(
            'IsSelectedOnPkg' => 0
        );
        $otherwhere = "TPIntSysId = " . $tpsysID;
        $updateothervalue = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Accom', $otherdata, $otherwhere);
        $data = array(
            'IsSelectedOnPkg' => 1
        );
        $where = "TPIntSysId = " . $tpsysID . " AND SeqId = " . $seq;
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Accom', $data, $where);
    }

    public function updateStatusAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $AgencySysId = Travel_Model_AgencyAuth::getIdentity()->AgencySysId;
        if ($this->getRequest()->isPost()) {
            $getData = $this->getRequest()->getPost();
            $tpsysID = $getData['packageid'];
            $InternalRemark = (isset($getData['InternalRemark']) && trim($getData['InternalRemark'] != '')) ? trim($getData['InternalRemark']) : '';
            $isActive = (isset($getData['check']) && ($getData['check'] == 1)) ? 1 : 0;
            $bookingvalidity = (isset($getData['bookingvalidity']) && !empty($getData['bookingvalidity'])) ? explode('/', trim($getData['bookingvalidity'])) : '';
            $bookingvalidityNew = trim($bookingvalidity[2] . '-' . $bookingvalidity[1] . '-' . $bookingvalidity[0]);
            $message = $isActive;
            $packageData = $objPackage->getChildPackageList($tpsysID);
            $publishURLID = isset($packageData[0]['IsWebsite']) ? $packageData[0]['IsWebsite'] : '';
            $packageAgencySysId = $packageData[0]['AgencySysId'];
            $masterRefId = $tpsysID;
            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] > 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
                $masterRefId = $packageData[1]['MasterRefId'];
            }
            if (!empty($bookingvalidity)) {
                $dataArr = array(
                    'IsActive' => $isActive,
                    'PkgSellValidTill' => $bookingvalidityNew,
                    'IsDownloadPDF' => 0,
                    'InternalRemarks' => $InternalRemark,
                );
            } else {
                $dataArr = array(
                    'IsActive' => $isActive,
                    'IsDownloadPDF' => 0,
                    'InternalRemarks' => $InternalRemark,
                );
            }

            $packageIdArr = array();
            $maintpsyaId = $tpsysID;
            foreach ($packageData as $key => $package) {
                $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
                $modelUpdateString = new Gtxwebservices_Model_Currency();
                $modelUpdateString->updatePkgSearchString((int) $package['TPSysId']);
                if ($package['MasterRefId'] == 0) {
                    $maintpsyaId = $package['TPSysId'];
                }
            }
            $packageIds = implode(',', $packageIdArr['TPSysId']);
//                            $checkRateforMasterPackage = $objPackage->checkRateforMasterPackage($maintpsyaId);
//                            $continue = true;
//                            if (empty($checkRateforMasterPackage) && count($packageData) > 1) {
//                                foreach ($packageData as $updateData) {
//                                    if (($updateData['MasterRefId'] != 0) && ($continue == true)) {
//                                        $checkRateforMasterPackage = $objPackage->checkRateforMasterPackage($updateData['TPSysId']);
//                                        if (!empty($checkRateforMasterPackage)) {
//                                            $masterRefId = $updateData['TPSysId'];
//                                            $dataArrMas1 = array(
//                                                'MasterRefId' => $masterRefId
//                                            );
//                                            $where1 = "TPSysId IN (" . $packageIds . ")";
//                                            $objPackage->updateData('TB_TravelPlan', $dataArrMas1, $where1);
//                                            $dataArrMas2 = array(
//                                                'MasterRefId' => 0
//                                            );
//                                            $where2 = "TPSysId = $masterRefId";
//                                            $objPackage->updateData('TB_TravelPlan', $dataArrMas2, $where2);
//
//                                            $dataArrMas3 = array(
//                                                'TPSysId' => $masterRefId
//                                            );
//                                            $where3 = "TPSysId = $maintpsyaId";
//                                            $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory', $dataArrMas3, $where3);
//                                            $objPackage->updateData('Tb_TravelPlan_From_Destination_Fixed_Inventory', $dataArrMas3, $where3);
//                                            $continue = false;
//                                        }
//                                    }
//                                }
//                            }
            $where = "TPSysId IN (" . $packageIds . ")";
            $objPackage->updateData('TB_TravelPlan', $dataArr, $where);
            if ($isActive == 0) {
                $dataArrMarketPlace = array(
                    'IsActive' => 0
                );
            } else {
                $dataArrMarketPlace = array(
                    'IsActive' => 1
                );
            }
            $objPackage->updateData('TB_TravelPlan_Mapping_Network_Web', $dataArrMarketPlace, $where);

            // echo "<pre>";print_r($dataArr);exit;
            $multipackres = $this->getRequest()->getParam('multipackres');
            $reslastint = json_decode(base64_decode($multipackres), true);
            /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
            if (empty($getData['packType'])) {
                $type = $this->getRequest()->getParam('type');
                if ($type == 'U') {
                    $Details = 12;
                }
                if ($type == 'P') {
                    $Details = 11;
                }
                if ($type == 'S') {
                    $Details = 13;
                }
                $userHistoryData = array(
                    'TPSysId' => $reslastint[0],
                    'StepId' => 6,
                    'Details' => $Details,
                    'UserSysId' => $this->intLoggedinUserId
                );
                Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
            }
            $sessionLogin_user_url = new Zend_Session_Namespace('sessionLogin_user');

            if (trim($sessionLogin_user_url->agencyDetails['IsB2CSite']) == 1 && ($publishURLID != '')) {
                $this->postFields = "";
                $this->postFields .= "&AgencySysId=" . $packageAgencySysId;
                $this->postFields .= "&packageId=$masterRefId";
                $this->postFields .= "&publishURLID=" . trim($publishURLID);
                $writeLogObj = new Payment_Model_Payment();
                try {
                    //$url = Catabatic_Helper::getSiteUrl() . "gtxwebservices/push-package/deactivate";
                    $url = Catabatic_Helper::getSiteUrl() . "gtxwebservices/push-package/";
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, $url);
                    curl_setopt($ch, CURLOPT_HEADER, 0);
                    curl_setopt($ch, CURLOPT_POST, 1);
                    if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
                        curl_setopt($ch, CURLOPT_PORT, 443);
                        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
                        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
                    }
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($ch, CURLOPT_POSTFIELDS, $this->postFields);
                    $output = curl_exec($ch);
                    // echo "<pre>";print_r($output);exit;
                    $writeLogObj->writeLog($output . "\n");
                    curl_close($ch);
                    $message = $isActive;
                } catch (Zend_Exception $ex) {
                    $message = 3;
                }
            }

            if (trim($sessionLogin_user_url->agencyDetails['IsB2CSite']) == 1) {
                $getAllURL = array();
                if ($publishURLID != '' && $isActive == 1) {
                    $getAllURL = explode(',', $publishURLID);
                }
//                                    if(!empty($getAllURL)){
                $pkgModel = new Travel_Model_TblPackage();
                $selectedWebsite = $pkgModel->getAgencgWebsiteNotSelected($AgencySysId, $getAllURL);
                //echo "<pre>";print_r($selectedWebsite);exit;
                if (!empty($selectedWebsite)) {
                    $publishURLIDDeactivated = array();
                    foreach ($selectedWebsite as $webVel) {
                        $publishURLIDDeactivated[] = $webVel['WebSysId'];
                    }
                    $this->postFields = "";
                    $this->postFields .= "&AgencySysId=" . $packageAgencySysId;
                    $this->postFields .= "&packageId=$masterRefId";
                    $this->postFields .= "&publishURLID=" . implode(',', $publishURLIDDeactivated);
                    $writeLogObj = new Payment_Model_Payment();
                    try {
                        $url = Catabatic_Helper::getSiteUrl() . "gtxwebservices/push-package/deactivate-package";
                        $ch = curl_init();
                        curl_setopt($ch, CURLOPT_URL, $url);
                        curl_setopt($ch, CURLOPT_HEADER, 0);
                        curl_setopt($ch, CURLOPT_POST, 1);
                        if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
                            curl_setopt($ch, CURLOPT_PORT, 443);
                            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
                            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
                        }
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                        curl_setopt($ch, CURLOPT_POSTFIELDS, $this->postFields);
                        $output = curl_exec($ch);
//                                                echo "<pre>";print_r($output);die;
                        $writeLogObj->writeLog($output . "\n");
                        $message = $isActive;
                        curl_close($ch);
                    } catch (Zend_Exception $ex) {
                        $message = 3;
                    }
                }
//                                    }
                //echo "<pre>";print_r($getAllURL);
            }
        } else {
            $message = 3;
        }
        echo $message;
        exit;
    }

    public function publishpackageAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $getData = $this->getRequest()->getPost();
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $getData['tpsysID'];
        $isActive = $getData['isActive'];
        $data = array(
            'isActive' => $isActive
        );
        $where = array('TPSysId = ? ' => $tpsysID);
        $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
        $this->postFields = "";
        $this->postFields .= "&AgencySysId=";
        $this->postFields .= "&packageId=$tpsysID";
        $sessionLogin_user_url = new Zend_Session_Namespace('sessionLogin_user');
        $url = 'http://bhutan.catpl.co.in.php56-26.phx1-1.websitetestlink.com';
        $this->postFields .= "&URL=" . $url;

        if ($isActive == 1) {
            $url = Catabatic_Helper::getSiteUrl() . "gtxwebservices/push-package/";
        } else {
            $url = Catabatic_Helper::getSiteUrl() . "gtxwebservices/push-package/deactivate";
        }
        //echo $url;
        try {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_PORT, 443);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $this->postFields);
            $output = curl_exec($ch);
            //echo 'ddfdf';
            //print_r($output);
            curl_close($ch);
        } catch (Zend_Exception $ex) {
            echo $ex->getMessage();
        }
    }

    public function updateStatusAction89898() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $tpsysID = $getData['packageid'];
        $isActive = (@$getData['check'] == 1) ? 1 : 0;
        $packageData = $objPackage->getChildPackageList($tpsysID);
        $masterRefId = $tpsysID;
        if (count($packageData) == 1 && $packageData[0]['MasterRefId'] > 0) {
            $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            $masterRefId = $packageData[1]['MasterRefId'];
        }
        //        if ($isActive == 1) {
        //            $url = 'http//st.tb.tripsbank.com/gtxwebservices/push-package/index/packageId/' . $masterRefId;
        //            // create a new cURL resource
        //            try {
        //                $ch = curl_init();
        //                curl_setopt($ch, CURLOPT_URL, $url);
        //                curl_setopt($ch, CURLOPT_HEADER, 0);
        //                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        //                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        //                $output = curl_exec($ch);
        //        echo 'pooja';print_r($output); exit;
        //            } catch (Zend_Exception $ex) {
        //                echo $ex->getMessage();
        //            }
        //            curl_close($ch);
        //        }

        $data = array(
            'IsActive' => $isActive
        );

        $packageIdArr = array();
        foreach ($packageData as $key => $package) {
            $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
        }
        $packageIds = implode(',', $packageIdArr['TPSysId']);
        $where = "TPSysId IN (" . $packageIds . ")";
        $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);

        $multipackres = $this->getRequest()->getParam('multipackres');
        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
        $type = $this->getRequest()->getParam('type');
        if ($type == 'U') {
            $Details = 12;
        }
        if ($type == 'P') {
            $Details = 11;
        }
        if ($type == 'S') {
            $Details = 13;
        }
        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => $Details,
            'UserSysId' => $this->intLoggedinUserId
        );
        Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);

        /* -------------------- end insert data for contributor tab----------------------- */
        echo $isActive;
        exit;
    }

    public function updatepackagevalidityAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $tpsysID = $getData['packageId'];
        $date1 = str_replace('/', '-', $getData['date']);
        //$date = date("Y-m-d", strtotime("+60 day", strtotime($date1))); 
        $date = date("Y-m-d", strtotime($date1));
        $data = array(
            'PkgSellValidTill' => $date
        );

        $packageData = $objPackage->getChildPackageList($tpsysID);
        if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
            $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
        }
        $packageIdArr = array();
        foreach ($packageData as $key => $package) {
            $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
        }
        $packageIds = implode(',', $packageIdArr['TPSysId']);
        //        print_r($data); print_r($packageData[0]['PkgSellValidTill']);
        $where = "TPSysId IN (" . $packageIds . ")";
        $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);

        $multipackres = $this->getRequest()->getParam('multipackres');
        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */
        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => 4,
            'UserSysId' => $this->intLoggedinUserId
        );
        $dbVaal = $packageData[0]['PkgSellValidTill']->format('Y-m-d');
        if ($data['PkgSellValidTill'] == $dbVaal) {
            Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);
        }
        /* -------------------- end insert data for contributor tab----------------------- */

        //echo $isActive; exit;
    }

    public function updatepackagevalidityTimeAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $tpsysID = $getData['packageId'];
        //        $date1 = str_replace('/', '-', $getData['date']);
        //        echo $getData['date'];die;
        //$date = date("Y-m-d", strtotime("+60 day", strtotime($date1))); 
        $date = date("H:i", strtotime($getData['date']));
        $data = array(
            'PkgSellValidTillTime' => $getData['date'],
        );

        $packageData = $objPackage->getChildPackageList($tpsysID);
        if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
            $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
        }
        $packageIdArr = array();
        foreach ($packageData as $key => $package) {
            $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
        }
        $packageIds = implode(',', $packageIdArr['TPSysId']);
        //        print_r($data); print_r($packageData[0]['PkgSellValidTill']);
        $where = "TPSysId IN (" . $packageIds . ")";
        $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
    }

    public function flexiFinalPackageReadymadeSharePdfAction() {
        $this->_helper->layout->disableLayout();
        $TPSysId = $this->_HtmlPurifier->filter($this->_request->getParam('pid'));
        $TPSysId = base64_decode($TPSysId);
        if ($TPSysId > 0) {
            $objPackage = new Travel_Model_TblPackage();
            $objPkgModel = new Travel_Model_Package_PackageModel();
            $flexiPackageList = $objPackage->getCustPackageList($TPSysId);
            //echo "<pre>";print_r($flexiPackageList);die;
            if (!empty($flexiPackageList)) {
                $flexiPackageItenList = $objPackage->getCustPackageItenList($TPSysId);
                // $this->view->flexiPackageList = $flexiPackageList;
                $inclusionMastArray = $objPackage->getPackageInclusionListOrderById();
                //echo "<pre>";print_r($flexiPackageList);die;
                $inclusionArr = $objPackage->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
                $flexiPackageList['inclusionDetails'] = $inclusionArr;
                //echo "<pre>";print_r($flexiPackageItenList);die;
                //Get Package Places 
                //$flexiPackagePlaces = $objPackage->getCustomerPackagePlacesList($TPSysId);
                //$this->view->flexiPackagePlaces = $flexiPackagePlaces;
                //Get Package Activity
                // $flexiPackageActivityList = $objPackage->getCustPackageActivityList($TPSysId);
                //$this->view->flexiPackageActivityList = $flexiPackageActivityList;
                //Get Package Sightseen
                //$flexiPackageSightseenList = $objPackage->getCustPackageSightseenList($TPSysId);
                //$this->view->flexiPackageSightseenList = $flexiPackageSightseenList;
                //Get Package Hotels
                $flexiPackageHotelsList = $objPackage->getCustPackageHotelsList($TPSysId);
                //$this->view->flexiPackageHotelsList = $flexiPackageHotelsList;
                //echo "<pre>";print_r($flexiPackageItenList);die;
                //$hotelarr = $objPackage->getCustPackageHotelsList($TPSysId);
                //for tnc details
                $packageTncList = $objPackage->getCustPackageTncList($TPSysId);

                //for agency details
                $crmcustomerObj = new Travel_Model_CRM_Customer();
                $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
                $getCustomerDetail = $crmcustomerObj->GetCustomerById($flexiPackageList['CustomerSysId']);

                // for agent/supplier details 
                $objAgencyStaff = new Travel_Model_TblAgencyStaff();
                $agentDetail = $objAgencyStaff->getUserDetailsById($flexiPackageList['AgentSysId']);

                // for currencyType
                $objCurrency = new Travel_Model_TblCurrency();
                $currencyDetail = $objCurrency->getCurrencySymbol($flexiPackageList['CurrencyType']);
                //echo "<pre>";print_r($getCustomerDetail);die;

                $flexiPackageList['agencyDetails'] = $getAgencyDetail;
                $flexiPackageList['tncDetails'] = $packageTncList;
                $flexiPackageList['agentDetails'] = $agentDetail;
                $flexiPackageList['customerDetails'] = $getCustomerDetail;
                $flexiPackageList['currencyDetail'] = $currencyDetail;
                //echo "<pre>";print_r($agentDetail);die;
                //echo "<pre>";print_r($hotelarr);die;
                $html = new Zend_View();
                $html->setScriptPath(APPLICATION_PATH . '/views/scripts/proposal/');
                $html->assign('flexiPackageList', $flexiPackageList);
                $html->assign('flexiPackageItenList', $flexiPackageItenList);
                $html->assign('hotelDetails', $flexiPackageHotelsList);
                $bodyText = $html->render('create-package-pdf.phtml');
                echo $bodyText;
                die;
                //now create pdf
                require_once 'library/tcpdf/tcpdf.php';
                // create new PDF document
                $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
                // set document information
                $pdf->SetCreator(PDF_CREATOR);
                $pdf->SetAuthor('TripsBank');
                $pdf->SetTitle('Package Report');
                $pdf->SetSubject('Package Report');
                $pdf->SetKeywords('TCPDF, PDF, package, tripsbank, proposal');
                // set default header data
                //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
                // set header and footer fonts
                $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
                $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
                // set default monospaced font
                $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
                // set margins
                $pdf->SetMargins(10, 10, 10, true);
                //$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
                $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
                $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
                // set auto page breaks
                $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
                // set image scale factor
                $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
                // set some language-dependent strings (optional)
                if (@file_exists(dirname(__FILE__) . '/lang/eng.php')) {
                    require_once(dirname(__FILE__) . '/lang/eng.php');
                    $pdf->setLanguageArray($l);
                }
                // ---------------------------------------------------------
                // set font
                //$pdf->SetFont('helvetica', 'B', 10);
                // add a page
                $pdf->AddPage();
                $pdf->writeHTML($bodyText, true, false, false, false, '');
                // -----------------------------------------------------------------------------
                ob_end_clean();
                //Close and output PDF document
                $pdf_folder_path = 'public/pdf/package/'; // path to save the generated PDF
                $pdf->Output($pdf_folder_path . 'package_' . $TPSysId . '.pdf', 'F'); // for save direct in folder
                //$pdf->Output('test.pdf', 'I'); // for direct open
                //$pdf->Output('test.pdf', 'D'); // for select to save or open
                ob_end_flush();

                //send pdf in email
                $bodyTextData = 'test';
                $aConfig = $this->getInvokeArg('bootstrap')->getOptions();
                $this->smtpUserName = $aConfig['smtpUserName'];
                $this->smtpPassword = $aConfig['smtpPassword'];
                $this->smtpPort = $aConfig['smtpPort'];
                $this->smtpHost = $aConfig['smtpHost'];
                $this->fromEmail = $aConfig['fromEmail'];
                $this->fromName = $aConfig['fromName'];

                #### Script to send email End ####

                $this->to_email_for_attachment = '' . trim($getCustomerDetail['EmailId']) . ''; // varunu@policybazaar.com
                $this->cc_email_for_attachment = "amit.k@catpl.co.in"; // abhishek@tripsbank.com
                $this->bcc_email_for_attachment = "amit.k@catpl.co.in"; // kawaljeet@catpl.co.in



                $mailConfig = array(
                    'ssl' => 'ssl',
                    'auth' => 'login',
                    'port' => $this->smtpPort,
                    'username' => $this->smtpUserName,
                    'password' => $this->smtpPassword
                );

                $transport = new Zend_Mail_Transport_Smtp($this->smtpHost, $mailConfig);

                $emailId = $this->to_email_for_attachment;
                $mail = new Zend_Mail("iso-8859-1");
                $mail->addTo($emailId)
                        ->addCc($this->cc_email_for_attachment)
                        ->addBcc($this->bcc_email_for_attachment)
                        ->setSubject('Package Details')
                        ->setBodyHtml($bodyTextData)
                        ->setFrom($this->fromEmail, $this->fromName);

                $content = file_get_contents($pdf_folder_path . 'package_' . $TPSysId . '.pdf'); // e.g. ("attachment file path")
                $attachment = new Zend_Mime_Part($content);
                //        $attachment->type       = 'application/octet-stream';
                $attachment->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
                $attachment->encoding = Zend_Mime::ENCODING_BASE64;
                $attachment->location = $pdf_folder_path . 'package_' . $TPSysId . '.pdf'; // file location
                $attachment->filename = 'package_' . $TPSysId . '.pdf'; // name of file

                $mail->addAttachment($attachment);

                try {
                    $mail->send($transport);
                    echo 'Email attachment has been sent.';
                } catch (Exception $err) {
                    print_r($err, true);
                }
                //end of send pdf in email
                //echo "Pdf Sent Successfully";

                exit;
            } else {
                echo "Something went wrong";
                die;
            }
        }
    }

    public function getPackageRateDateAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        //        echo '<pre>'; print_r(@$_REQUEST);
        $packid = @$_REQUEST['packid'];
        $packDates = $objPackage->getPackRateDate($packid);
        foreach ($packDates as $packDate) {
            $FrompackDate = (array) $packDate['FromDate'];
            $start_date = date("d-m-Y", strtotime($FrompackDate['date']));

            $TopackDate = (array) $packDate['ToDate'];
            $end_date = date("d-m-Y", strtotime($TopackDate['date']));
            //         echo '<pre>';   print_r();
            $day = 86400; // Day in seconds  
            $format = 'd-m-Y'; // Output format (see PHP date funciton)  
            $sTime = strtotime($start_date); // Start as time  
            $eTime = strtotime($end_date); // End as time  
            $numDays = round(($eTime - $sTime) / $day) + 1;
            //        $days = array();  
            //
            for ($d = 0; $d < $numDays; $d++) {
                $days[] = date($format, ($sTime + ($d * $day)));
            }
        }

        $dates = implode('","', $days);
        echo '["' . $dates . '"]';

        exit;
    }

    public function viewFlexiFinalPackageReadymadeMailAction() {
        $this->_helper->layout->disableLayout();
        $TPSysId = $this->_HtmlPurifier->filter($this->_request->getParam('pid'));
        $TPSysId = base64_decode($TPSysId);
        if ($TPSysId > 0) {
            $objPackage = new Travel_Model_TblPackage();
            $objPkgModel = new Travel_Model_Package_PackageModel();
            $flexiPackageList = $objPackage->getCustPackageList($TPSysId);
            //echo "<pre>";print_r($flexiPackageList);die;
            if (!empty($flexiPackageList)) {
                $flexiPackageItenList = $objPackage->getCustPackageItenList($TPSysId);
                // $this->view->flexiPackageList = $flexiPackageList;
                $inclusionMastArray = $objPackage->getPackageInclusionListOrderById();
                //echo "<pre>";print_r($flexiPackageList);die;
                $inclusionArr = $objPackage->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
                $flexiPackageList['inclusionDetails'] = $inclusionArr;

                //Get Package Hotels
                $flexiPackageHotelsList = $objPackage->getCustPackageHotelsList($TPSysId);

                //for tnc details
                $packageTncList = $objPackage->getCustPackageTncList($TPSysId);

                //for agency details
                $crmcustomerObj = new Travel_Model_CRM_Customer();
                $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
                $getCustomerDetail = $crmcustomerObj->GetCustomerById($flexiPackageList['CustomerSysId']);

                $getcustomerDetailChat = $this->_crmcusttravelplan->GetTravelPlanCustomerDetails($TPSysId);
                $objAgencyUser = new Travel_Model_CRM_AgencyUserInbox();
                $checkCustomerChatExist = $getcustomerDetailChat[0]['CustomerSysId'] > 0 ? $objAgencyUser->CheckCustomerMsgCount($getcustomerDetailChat[0]['CustomerSysId'], $TPSysId) : array();
                $getversiondetails = $this->_crmcusttravelplan->GetVersionInfo($TPSysId);
                $getcustomerDetailChat['userChatExist'] = count($checkCustomerChatExist);

                //query for get customer chat history
                $chatSenderDetails = array();
                if ($getcustomerDetailChat['userChatExist'] > 0) {
                    if (isset($getcustomerDetailChat[0]['CustomerSysId']) && !empty($getcustomerDetailChat[0]['CustomerSysId'])) {
                        $getChatHistoryDetail = $objAgencyUser->GetCustChatHistDetWithLead($tpID, $getcustomerDetailChat[0]['CustomerSysId'], 'DESC');
                        $this->view->chatHistoryDetail = $getChatHistoryDetail;
                        $chatSenderDetails['TPSysId'] = $TPSysId;
                        $chatSenderDetails['AgencySysId'] = $intLoggedinUserAgencySysId;
                        $chatSenderDetails['CustomerSysId'] = $getcustomerDetailChat[0]['CustomerSysId'];
                        $chatSenderDetails['AgentSysId'] = $flexiPackageList['AgentSysId'];
                        $chatSenderDetails['EmailId'] = $getcustomerDetailChat[0]['EmailId'];
                    }
                }
                //end of customer chat history
                // for agent/supplier details 
                $objAgencyStaff = new Travel_Model_TblAgencyStaff();
                $agentDetail = $objAgencyStaff->getUserDetailsById($flexiPackageList['AgentSysId']);

                // for currencyType
                $objCurrency = new Travel_Model_TblCurrency();
                $currencyDetail = $objCurrency->getCurrencySymbol($flexiPackageList['CurrencyType']);
                //echo "<pre>";print_r($getCustomerDetail);die;

                $flexiPackageList['agencyDetails'] = $getAgencyDetail;
                $flexiPackageList['tncDetails'] = $packageTncList;
                $flexiPackageList['agentDetails'] = $agentDetail;
                $flexiPackageList['customerDetails'] = $getCustomerDetail;
                $flexiPackageList['currencyDetail'] = $currencyDetail;

                //echo "<pre>";print_r($agentDetail);die;
                //echo "<pre>";print_r($hotelarr);die;
                $this->view->flexiPackageList = $flexiPackageList;
                $this->view->flexiPackageItenList = $flexiPackageItenList;
                $this->view->hotelDetails = $flexiPackageHotelsList;
                $this->view->chatSenderDetails = $chatSenderDetails;
                $this->view->getcustomerDetail = $getcustomerDetailChat;
            }
        }
    }

    public function savehotelsearchAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $queryType = '';
        if ($this->getRequest()->isPost()) {
            $searchType = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getPost('searchType')));
            $queryType = $this->_HtmlPurifier->filter($this->getRequest()->getPost('saveQuery'));
            $leadRemark = $this->_HtmlPurifier->filter($this->getRequest()->getPost('leadRemark'));
            $modifyQuery = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getPost('modifyQuery')));
            $searchData = array();
            $memberdata = array();
            $hotelTotalRooms = $this->_HtmlPurifier->filter($this->getRequest()->getPost('selectRoom'));
            $f = 1;
            for ($i = 0; $i < $hotelTotalRooms; $i++) {
                $childsAge = '';
                $childsAgeComma = '';
                $AdultPax = $this->_HtmlPurifier->filter($this->getRequest()->getPost('noOfAdults' . $f));
                $ChildPax = $this->_HtmlPurifier->filter($this->getRequest()->getPost('select-noOfChild' . $f));
                if ($ChildPax > 0) {
                    for ($v = 1; $v <= $ChildPax; $v++) {
                        $childsAge[] = $this->_HtmlPurifier->filter($this->getRequest()->getPost('select-childAge_' . $f . '_' . $v));
                    }
                }
                $childsAgeComma = ($childsAge != '') ? implode(',', $childsAge) : '';
                $memberdata[] = array(
                    'AdultPax' => $AdultPax,
                    'ChildPax' => $ChildPax,
                    'ChildsAge' => $childsAgeComma
                );
                $f++;
            }
            //print_r($memberdata);
            $customerId = $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getPost('customerId')));
            if (null != $customerId && !empty($customerId) && $searchType == 'CRMHOTELSEARCH') {
                $getCustomerDetail = $this->_crmcustomerObj->GetCustomerWithDetails($customerId);
            }
            $createDate = date('Y-m-d H:i:s');
            $customerEmailId = isset($getCustomerDetail['EmailId']) ? $getCustomerDetail['EmailId'] : '';
            //print_r($getCustomerDetail);die;
            $totalMemberCount = Zend_Controller_Action_HelperBroker::getStaticHelper('ArrayCalculation')->calculateArrayValues($memberdata);
            $searchData = array(
                'hotelCityTitle' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('Hotel_name_city')),
                'hotelFromDateSession' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('chekInDate')),
                'hotelToDateSession' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('chekOutDate')),
                'hotelTotalNights' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('nights')),
                'selectNationality' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('selectNationality')),
                'countryCode' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('countryCode')),
                'searchType' => $searchType,
                'leadRemark' => $leadRemark,
                'customername' => isset($getCustomerDetail['FullName']) ? $getCustomerDetail['FullName'] : '',
                'emailID' => $customerEmailId,
                'searchType' => $searchType,
                'searchType' => $searchType,
                'customerId' => $customerId,
                'TPSysId' => $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getPost('editLeadId'))),
                'TPIntSysId' => $this->_HtmlPurifier->filter(base64_decode($this->getRequest()->getPost('editTravelItenaryId'))),
                'hotelTotalRooms' => $hotelTotalRooms,
                'hotelStarRating' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('selectStarRating')),
                'hotelXrefCityId' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('hidden_selected_hotel_cityid')),
                'hidden_selected_hotel_id' => $this->_HtmlPurifier->filter($this->getRequest()->getPost('hidden_selected_hotel_id')),
                'totalMemberCount' => $totalMemberCount,
                'memberDetails' => $memberdata
            );
            // print_r($searchData);die;
            $sessionhotelDirectSearchData = new Zend_Session_Namespace('sessionHotelDirectSearchData');
            $sessionhotelDirectSearchData->params = $searchData;
            //  echo '<pre>';
            //print_r($searchData);
            //die;
        }
    }

    public function changeHotelAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $AccoSysId = $this->getRequest()->getPost('AccoSysId');
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $VersionId = $this->getRequest()->getPost('VersionId');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $adultpax = $this->getRequest()->getPost('adultpax');
        $childpax = $this->getRequest()->getPost('childpax');
        $totaltraveler = $this->getRequest()->getPost('totaltraveler');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $tproomnumber = $this->getRequest()->getPost('tproomnumber');
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->UpdateHotelSelection($AccoSysId, $TPIntSysId, $VersionId, $tpsysID, 'PKG', $roominfojson, $adultpax, $childpax, $totaltraveler, $tproomnumber);
    }

    public function changeHotelByoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $AccoSysId = $this->getRequest()->getPost('AccoSysId');
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $VersionId = $this->getRequest()->getPost('VersionId');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $adultpax = $this->getRequest()->getPost('adultpax');
        $childpax = $this->getRequest()->getPost('childpax');
        $totaltraveler = $this->getRequest()->getPost('totaltraveler');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $tproomnumber = $this->getRequest()->getPost('tproomnumber');
        $catID = $this->getRequest()->getPost('catID');
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->UpdateHotelSelectionBYO($AccoSysId, $TPIntSysId, $VersionId, $tpsysID, 'PKG', $roominfojson, $adultpax, $childpax, $totaltraveler, $tproomnumber, $catID);
    }

    public function changeHotelPkgAction() {

        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $AccoSysId = $this->getRequest()->getPost('AccoSysId');
        $seqence = $this->getRequest()->getPost('seqence');

        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $adultpax = $this->getRequest()->getPost('adultpax');
        $childpax = $this->getRequest()->getPost('childpax');
        $totaltraveler = $this->getRequest()->getPost('totaltraveler');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $tproomnumber = $this->getRequest()->getPost('tproomnumber');
        $catID = $this->getRequest()->getPost('catID');
        $getitnID = $objPackage->GetItnBySeq($seqence, $tpsysID);
        $TPIntSysId = $getitnID['TPIntSysId'];
        //die;
        $objPackage->UpdateHotelSelectionPkg($AccoSysId, $TPIntSysId, $tpsysID, 'PKG', $roominfojson, $adultpax, $childpax, $totaltraveler, $tproomnumber, $catID);
    }

    public function updatetranstypereadymadeAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $adult = $this->getRequest()->getPost('adult');
        $child = $this->getRequest()->getPost('child');
        $totaltraveler = $this->getRequest()->getPost('totaltraveler');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $fixtransID = $this->getRequest()->getPost('fixtransID');
        $catID = $this->getRequest()->getPost('catID');
        $transtype = $this->getRequest()->getPost('transtype');
        $tpintsysID = $this->getRequest()->getPost('tpintsysID');
        $carsequence = $this->getRequest()->getPost('carsequence');
        $fixtransID = '';
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->UpdateTransportTypeReadyMade($tpsysID, $adult, $child, $totaltraveler, $roominfojson, $fixtransID, $catID, $transtype, $tpintsysID, $carsequence);
    }

    public function addCustomerSsDetailsByoAction() {
        $this->_helper->layout->disableLayout();
        $this->view->tourID = $this->_request->getParam('tourID');
    }

    public function addSightSeeingAction() {
        $this->_helper->layout->disableLayout();
    }

    /*
      public function getmasterdataAction(){
      $this->_helper->layout->disableLayout();
      $front = Zend_Controller_Front::getInstance();
      $front->setParam('noViewRenderer', true);
      $objPackage = new Travel_Model_TblPackage();
      $AccoSysId = $this->getRequest()->getPost('AccoSysId');
      $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
      $roomnumber = $this->getRequest()->getPost('roomnumber');
      if(empty($roomnumber)){
      $roomnumber = '';
      }

      $resultdata = $objPackage->CountMasterId($AccoSysId,$TPIntSysId,$roomnumber);
      echo count($resultdata);
      }
     */

    public function getflightpriceAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $adultpax = $this->getRequest()->getPost('adultpax');
        $childpax = $this->getRequest()->getPost('childpax');
        $totaltraveler = $this->getRequest()->getPost('totaltraveler');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $finalcost = $this->getRequest()->getPost('TPIntSysId');
        $discount = $this->getRequest()->getPost('discount');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $versionID = $this->getRequest()->getPost('versionID');
        ######## UPDATE HOTEL DATA END ##########
        $itenaryid = $objPackage->GetItenaryIdOnly($tpsysID);
        ######## CALCULATE NEW COST FOR HOTEL ###########
        // $hoteldetails = array();
        $flightprice = 0;
        $totelhotelprice = 0;
        $totalhotelpriceperperson = 0;
        $totalactivitycost = 0;
        $totalactivitycostperperson = 0;
        $totalsscost = 0;
        $totalsscostpp = 0;
        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            if ($intsysId == $TPIntSysId) {
                $flightcost = $objPackage->GetFlightByVersion($versionID);
            } else {
                $flightcost = $objPackage->GetFlightByItenary($itenaryid[$i]['TPIntSysId']);
            }
            $flightprice = $flightprice + $flightcost['Cost'];
        }


        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            $hoteldetails[] = $objPackage->GetHotelCost($intsysId, $roominfojson, $adultpax, $childpax, $totaltraveler);
            $totelhotelprice = round($totelhotelprice + $hoteldetails[$i]['totalprice']);
            $totalhotelpriceperperson = round($totalhotelpriceperperson + $hoteldetails[$i]['perperson']);
        }


        //echo 'Total Hotel Price'.$totelhotelprice;

        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            $getactivitycost[] = $objPackage->GetActivityCostByIten($intsysId, $roominfojson, $adultpax, $childpax, $totaltraveler);
            $totalactivitycost = $totalactivitycost + $getactivitycost[$i]['totalcost'];
            $totalactivitycostperperson = $totalactivitycostperperson + $getactivitycost[$i]['costperperson'];
        }


        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            $sscost[] = $objPackage->GetSightSeeingCostByIten(@$intsysId, $roominfojson, $adultpax, $childpax, $totaltraveler);
            $totalsscost = $totalsscost + $sscost[$i]['totalcost'];
            $totalsscostpp = $totalsscostpp + $sscost[$i]['costperperson'];
        }
        $totalinsurancecost = 0;
        ########### Calculate Cost For Travel Insurance #########  
        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            $insurancecost = $objPackage->GetInsuranceCost($intsysId);
            $totalinsurancecost = $totalinsurancecost + $insurancecost['NetPaid'];
        }



        ########### Get Fixed Costing Data #####################

        $gettransportcost = $objPackage->GetFixedTrnsportCost($tpsysID);

        $totaltransportperpersoncost = 0;
        $totaltransportcost = 0;
        for ($i = 0; $i < count($gettransportcost); $i++) {

            $totaltransportcost = $totaltransportcost + $gettransportcost[$i]['TotalPrice'];
            $totaltransportperpersoncost = $totaltransportperpersoncost + $gettransportcost[$i]['CostPerson'];
        }
        $getmarketwiserate = $objPackage->GetMarketWiseRate($tpsysID);

        if ($getmarketwiserate[0]['MarkType'] == 'FixedAmount') {
            $totalcost = $totelhotelprice + $flightprice + $totalactivitycost + $totalsscost + $totaltransportcost + $totalinsurancecost + $getmarketwiserate[0]['MarkPercent'];
            $flightppprice = $flightprice / $totaltraveler;
            $totalcostperperson = $totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost + $getmarketwiserate[0]['MarkPercent'];
        }
        if ($getmarketwiserate[0]['MarkType'] == 'FixedPercnt') {
            $nettotalcostwithmarkuppercent = $totelhotelprice + $flightprice + $totalactivitycost + $totalsscost + $totaltransportcost + $totalinsurancecost + $getmarketwiserate[0]['MarkPercent'];
            $nettotalcostwithmarkup = ($nettotalcostwithmarkuppercent * $getmarketwiserate[0]['ExcludedPercent']) / 100;
            $totalcost = $nettotalcostwithmarkuppercent + $nettotalcostwithmarkup;
            //      $totalcost =  $nettotalcostwithmarkup+$totalcostwomp;       
            $flightppprice = $flightprice / $totaltraveler;
            $totalcostperpersonwomp = $totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost;
            $totalcostperpersonwmp = ($totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost) * ($getmarketwiserate[0]['MarkPercent']) / 100;
            $totalcostperperson = $totalcostperpersonwomp + $totalcostperpersonwmp;
        }
        echo $totalcost - $discount;
        ######## CALCULATE NEW COST FOR HOTEL END ###########
    }

    public function getmasterdataAction() {

        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $AccoSysId = $this->getRequest()->getPost('AccoSysId');
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $roomnumber = $this->getRequest()->getPost('roomnumber');
        $adultpax = $this->getRequest()->getPost('adultpax');
        $childpax = $this->getRequest()->getPost('childpax');
        $totaltraveler = $this->getRequest()->getPost('totaltraveler');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $finalcost = $this->getRequest()->getPost('TPIntSysId');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $versionID = $this->getRequest()->getPost('versionID');
        $discount = $this->getRequest()->getPost('discount');
        $getalltpintID = $objPackage->GetSelectedHotelById($TPIntSysId);
        $getmasterID = $objPackage->GetMasterTravelPlanID($TPIntSysId);
        $totalcopyhotel = count($getalltpintID) + count($getmasterID);

        ######## UPDATE HOTEL DATA END ##########
        $itenaryid = $objPackage->GetItenaryIdOnly($tpsysID);
        $itenararray = array();
        for ($i = 0; $i < count($itenaryid); $i++) {
            $itenararray[] = "'" . $itenaryid[$i]['TPIntSysId'] . "'";
        }

        $implodeitenary = implode(",", $itenararray);
        ######## CALCULATE NEW COST FOR HOTEL ###########
        // $hoteldetails = array();
        $flightprice = 0;
        $totelhotelprice = 0;
        $totalhotelpriceperperson = 0;
        $totalactivitycost = 0;
        $totalactivitycostperperson = 0;
        $totalsscost = 0;
        $totalsscostpp = 0;
        for ($i = 0; $i < count($itenaryid); $i++) {
            $flightcost = $objPackage->GetFlightByItenary($itenaryid[$i]['TPIntSysId']);
            $flightprice = $flightprice + $flightcost['Cost'];
        }

        ################# Hotel Calculation ##############
        $masterarr = array();
        $getonlymasterID = $objPackage->GetOnlyMasterId($implodeitenary);
        for ($k = 0; $k < count($getonlymasterID); $k++) {
            if (!in_array($getonlymasterID[$k]['MasterIntSysId'], $masterarr)) {
                $masterarr[] = $getonlymasterID[$k]['MasterIntSysId'];
            }
        }


        ########### Get All TPIntSysID Which are associated with MasterID based on TPIntSysId ######

        for ($j = 0; $j < count($masterarr); $j++) {
            $allmsterID[] = $objPackage->GetAllTPIntSysIdByMasterID($masterarr[$j]);
        }

        $copyarray = array(); ### This is the main array which holds the club itinerary ID ########
        for ($k = 0; $k < count($allmsterID); $k++) {
            $othermastarr = $allmsterID[$k];
            for ($p = 0; $p < count($othermastarr); $p++) {
                $copyarray[] = $othermastarr[$p]['TPIntSysId'];
            }
        }

        $addedcost = array(); #### It is the Array which holds all the itinerary ID having cost calculated.
        $hoteldetails[] = $objPackage->GetHotelCostByVersion($versionID, $totaltraveler, $TPIntSysId);
        $allcopyitnID = $objPackage->GetAllTPIntSysIdByVersionID($versionID, $TPIntSysId);
        for ($k = 0; $k < count($allcopyitnID); $k++) {
            $addedcost[] = $allcopyitnID[$k]['TPIntSysId'];
        }
        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            if (!in_array($intsysId, $addedcost)) {
                $hoteldetails[] = $objPackage->GetHotelCostForCopyHotel($intsysId, $totaltraveler);
            }
            $allcopyitnID = $objPackage->GetAllTPIntSysIdByMasterID($intsysId);
            for ($k = 0; $k < count($allcopyitnID); $k++) {
                $addedcost[] = $allcopyitnID[$k]['TPIntSysId'];
            }
        }
        for ($m = 0; $m < count($hoteldetails); $m++) {
            $otherhotelarr = $hoteldetails[$m];

            if (isset($otherhotelarr['totalprice'])) {
                $totelhotelprice = round($totelhotelprice + $otherhotelarr['totalprice']);
            }
            if (isset($otherhotelarr['perperson'])) {
                $totalhotelpriceperperson = round($totalhotelpriceperperson + $otherhotelarr['perperson']);
            }
        }
        // echo '<pre>';
        //  print_r($hoteldetails);



        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            $getactivitycost[] = $objPackage->GetActivityCostByIten($intsysId, $roominfojson, $adultpax, $childpax, $totaltraveler);
            $totalactivitycost = $totalactivitycost + $getactivitycost[$i]['totalcost'];
            $totalactivitycostperperson = $totalactivitycostperperson + $getactivitycost[$i]['costperperson'];
        }


        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            $sscost[] = $objPackage->GetSightSeeingCostByIten(@$intsysId, $roominfojson, $adultpax, $childpax, $totaltraveler);
            $totalsscost = $totalsscost + $sscost[$i]['totalcost'];
            $totalsscostpp = $totalsscostpp + $sscost[$i]['costperperson'];
        }
        $totalinsurancecost = 0;
        ########### Calculate Cost For Travel Insurance #########  
        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            $insurancecost = $objPackage->GetInsuranceCost($intsysId);
            $totalinsurancecost = $totalinsurancecost + $insurancecost['NetPaid'];
        }



        ########### Get Fixed Costing Data #####################

        $gettransportcost = $objPackage->GetFixedTrnsportCost($tpsysID);

        $totaltransportperpersoncost = 0;
        $totaltransportcost = 0;
        for ($i = 0; $i < count($gettransportcost); $i++) {

            $totaltransportcost = $totaltransportcost + $gettransportcost[$i]['TotalPrice'];
            $totaltransportperpersoncost = $totaltransportperpersoncost + $gettransportcost[$i]['CostPerson'];
        }
        $getmarketwiserate = $objPackage->GetMarketWiseRate($tpsysID);

        if ($getmarketwiserate[0]['MarkType'] == 'FixedAmount') {
            $totalcost = $totelhotelprice + $flightprice + $totalactivitycost + $totalsscost + $totaltransportcost + $totalinsurancecost + $getmarketwiserate[0]['MarkPercent'];
            $flightppprice = $flightprice / $totaltraveler;
            $totalcostperperson = $totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost + $getmarketwiserate[0]['MarkPercent'];
        }
        if ($getmarketwiserate[0]['MarkType'] == 'FixedPercnt') {
            $nettotalcostwithmarkuppercent = $totelhotelprice + $flightprice + $totalactivitycost + $totalsscost + $totaltransportcost + $totalinsurancecost + $getmarketwiserate[0]['MarkPercent'];
            $nettotalcostwithmarkup = ($nettotalcostwithmarkuppercent * $getmarketwiserate[0]['ExcludedPercent']) / 100;
            $totalcost = $nettotalcostwithmarkuppercent + $nettotalcostwithmarkup;
            //      $totalcost =  $nettotalcostwithmarkup+$totalcostwomp;       
            $flightppprice = $flightprice / $totaltraveler;
            $totalcostperpersonwomp = $totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost;
            $totalcostperpersonwmp = ($totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost) * ($getmarketwiserate[0]['MarkPercent']) / 100;
            $totalcostperperson = $totalcostperpersonwomp + $totalcostperpersonwmp;
        }
        echo $totalcost - $discount;
        ######## CALCULATE NEW COST FOR HOTEL END ###########
    }

    public function getmasterdatabyoAction() {

        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $AccoSysId = $this->getRequest()->getPost('AccoSysId');
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $roomnumber = $this->getRequest()->getPost('roomnumber');
        $adultpax = $this->getRequest()->getPost('adultpax');
        $childpax = $this->getRequest()->getPost('childpax');
        $totaltraveler = $this->getRequest()->getPost('totaltraveler');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $finalcost = $this->getRequest()->getPost('TPIntSysId');
        $roominfojson = $this->getRequest()->getPost('roominfojson');
        $versionID = $this->getRequest()->getPost('versionID');
        $discount = $this->getRequest()->getPost('discount');
        $catID = $this->getRequest()->getPost('catID');
        $adult = $this->getRequest()->getPost('adultpax');
        $child = $this->getRequest()->getPost('childpax');
        $getalltpintID = $objPackage->GetSelectedHotelById($TPIntSysId);
        $getmasterID = $objPackage->GetMasterTravelPlanIDBYO($TPIntSysId);
        $totalcopyhotel = count($getalltpintID) + count($getmasterID);

        ######## UPDATE HOTEL DATA END ##########
        $itenaryid = $objPackage->GetItenaryIdOnlyBYO($tpsysID);
        $itenararray = array();
        for ($i = 0; $i < count($itenaryid); $i++) {
            $itenararray[] = "'" . $itenaryid[$i]['TPIntSysId'] . "'";
        }

        $implodeitenary = implode(",", $itenararray);
        ######## CALCULATE NEW COST FOR HOTEL ###########
        // $hoteldetails = array();
        $flightprice = 0;
        $totalhotelprice = 0;
        $totalhotelpriceperperson = 0;
        $totalactivitycost = 0;
        $totalactivitycostperperson = 0;
        $totalsscost = 0;
        $totalsscostpp = 0;

        ################# Hotel Calculation (Get all the hotels which is not deleted) ##############
        $masterarr = array();
        $getonlymasterID = $objPackage->GetOnlyMasterIdBYO($implodeitenary, $catID);
        for ($k = 0; $k < count($getonlymasterID); $k++) {
            if (!in_array($getonlymasterID[$k]['MasterIntSysId'], $masterarr)) {
                $masterarr[] = $getonlymasterID[$k]['MasterIntSysId'];
            }
        }


        ########### Get All TPIntSysID Which are associated with MasterID based on TPIntSysId ######
        $allmsterID = array();
        for ($j = 0; $j < count($masterarr); $j++) {
            $allmsterID[] = $objPackage->GetAllTPIntSysIdByMasterIDBYO($masterarr[$j]);
        }

        $copyarray = array(); ### This is the main array which holds the club itinerary ID ########
        for ($k = 0; $k < count($allmsterID); $k++) {
            $othermastarr = $allmsterID[$k];
            for ($p = 0; $p < count($othermastarr); $p++) {
                $copyarray[] = $othermastarr[$p]['TPIntSysId'];
            }
        }

        $addedcost = array(); #### It is the Array which holds all the itinerary ID having cost calculated.
        $hoteldetails[] = $objPackage->GetHotelCostByVersionBYO($versionID, $totaltraveler, $TPIntSysId);
        $allcopyitnID = $objPackage->GetAllTPIntSysIdByVersionIDBYO($versionID, $TPIntSysId);
        for ($k = 0; $k < count($allcopyitnID); $k++) {
            $addedcost[] = $allcopyitnID[$k]['TPIntSysId'];
        }
        for ($i = 0; $i < count($itenaryid); $i++) {
            $intsysId = $itenaryid[$i]['TPIntSysId'];
            if (!in_array($intsysId, $addedcost)) {
                $hoteldetails[] = $objPackage->GetHotelCostForCopyHotel($intsysId, $totaltraveler, $catID);
            }
            $allcopyitnID = $objPackage->GetAllTPIntSysIdByMasterIDBYO($intsysId);
            for ($k = 0; $k < count($allcopyitnID); $k++) {
                $addedcost[] = $allcopyitnID[$k]['TPIntSysId'];
            }
        }
        for ($m = 0; $m < count($hoteldetails); $m++) {
            $otherhotelarr = $hoteldetails[$m];

            if (isset($otherhotelarr['totalprice'])) {
                $totalhotelprice = round($totalhotelprice + $otherhotelarr['totalprice']);
            }
            if (isset($otherhotelarr['perperson'])) {
                $totalhotelpriceperperson = round($totalhotelpriceperperson + $otherhotelarr['perperson']);
            }
        }




        $activitylist = $objPackage->GetOnlyCustPackageActivityListBYO($tpsysID);
        $totalactivitycost = 0;
        $totalsscost = 0;
        $totaltraveler = $adult + $child;
        for ($i = 0; $i < count($activitylist); $i++) {
            $adultcost = $activitylist[$i]['Cost'];
            $kidscost = $activitylist[$i]['KidsCost'];
            $totactcost = ($adult * $adultcost) + ($child * $kidscost);
            $totalactivitycost = $totalactivitycost + $totactcost;
        }
        $totalactivitycostpp = $totalactivitycost / $totaltraveler;
        $totalactcost = $totalactivitycost;

        $sslist = $objPackage->getIncludedPackageSightseenList($tpsysID);

        for ($i = 0; $i < count($sslist); $i++) {
            $adultsscost = $sslist[$i]['Cost'];
            $kidssscost = $sslist[$i]['KidsCost'];
            $totalcost = ($adult * $adultsscost) + ($child * $kidssscost);
            $totalsscost = $totalsscost + $totalcost;
        }
        $totalsscostpp = $totalsscost / $totaltraveler;
        $totalsightseeingcost = $totalsscost;

        $totalparticularprice = $totalhotelprice + $totalactcost + $totalsightseeingcost;

        $getalltransport = $objPackage->GetAllTransportTypeBYO($tpsysID);
        $totalprivatecostperperson = 0;
        $totalprivatecost = 0;
        for ($m = 0; $m < count($getalltransport); $m++) {
            $totalprivatecostperperson = $totalprivatecostperperson + $getalltransport[$m]['CostPerson'];
            $totalprivatecost = $totalprivatecost + $getalltransport[$m]['TotalPrice'];
        }
        $totalgrpcostpp = 0;
        $totalgrpcost = 0;
        $getallgrouptransport = $objPackage->GetGroupCostWithoutCarBYO($tpsysID);
        for ($m = 0; $m < count($getallgrouptransport); $m++) {
            //if($getalltransport[$m]['TransType'] != 'car'){
            $totalgrpcostpp = $totalgrpcostpp + $getallgrouptransport[$m]['CostPerson'];
            $totalgrpcost = $totalgrpcost + $getallgrouptransport[$m]['TotalPrice'];
            // }
        }

        $getgroupwisecost = $objPackage->GetGroupTransport($tpsysID);
        $getgroupsize = $objPackage->Getgroupsize($tpsysID);

        $totalgrpcostpp = round($totalgrpcostpp + ($getgroupwisecost['TotalPrice'] / $getgroupsize['GroupSize']));
        $totalgrpcost = $totalgrpcost + $getgroupwisecost['TotalPrice'];
        $getotherservices = $objPackage->GetIncludedOtherServices($tpsysID);

        $othertotalcost = 0;
        for ($j = 0; $j < count($getotherservices); $j++) {
            $othertotalcost = $othertotalcost + $getotherservices[$j]['Cost'];
        }




        //echo $pvtcostpp;

        echo $pvtcosttotal = $totalparticularprice + $totalprivatecost + $othertotalcost;
        die;
        //$grpcosttoal = $totalparticularprice+$totalgrpcost+$othertotalcost;


        $getmarketwiseratebycatID = $objPackage->GetMarketWiseRateById($tpsysID, $catID);

        die;

        $getmarketwiserate = $objPackage->GetMarketWiseRate($tpsysID);

        if ($getmarketwiserate[0]['MarkType'] == 'FixedAmount') {
            $totalcost = $totelhotelprice + $flightprice + $totalactivitycost + $totalsscost + $totaltransportcost + $totalinsurancecost + $getmarketwiserate[0]['MarkPercent'];
            $flightppprice = $flightprice / $totaltraveler;
            $totalcostperperson = $totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost + $getmarketwiserate[0]['MarkPercent'];
        }
        if ($getmarketwiserate[0]['MarkType'] == 'FixedPercnt') {
            $nettotalcostwithmarkuppercent = $totelhotelprice + $flightprice + $totalactivitycost + $totalsscost + $totaltransportcost + $totalinsurancecost + $getmarketwiserate[0]['MarkPercent'];
            $nettotalcostwithmarkup = ($nettotalcostwithmarkuppercent * $getmarketwiserate[0]['ExcludedPercent']) / 100;
            $totalcost = $nettotalcostwithmarkuppercent + $nettotalcostwithmarkup;
            //      $totalcost =  $nettotalcostwithmarkup+$totalcostwomp;       
            $flightppprice = $flightprice / $totaltraveler;
            $totalcostperpersonwomp = $totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost;
            $totalcostperpersonwmp = ($totalhotelpriceperperson + $flightppprice + $totalactivitycostperperson + $totalsscostpp + $totaltransportperpersoncost) * ($getmarketwiserate[0]['MarkPercent']) / 100;
            $totalcostperperson = $totalcostperpersonwomp + $totalcostperpersonwmp;
        }
        echo $totalcost - $discount;
        ######## CALCULATE NEW COST FOR HOTEL END ###########
    }

    public function updatePriceAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $tpintsysID = $this->getRequest()->getPost('tpintsysID');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $finalcost = $this->getRequest()->getPost('finalcost');
        //$roominfojson = $this->getRequest()->getPost('roominfojson');
        $objPackage = new Travel_Model_TblPackage();
        $objPackage->ChangeHotelPrice($tpintsysID, $tpsysID, $finalcost);
    }

    public function changeFlightAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $InvsystemID = $this->getRequest()->getPost('InvsystemID');
        $VersionId = $this->getRequest()->getPost('VersionId');
        $TPIntSysId = $this->getRequest()->getPost('TPIntSysId');
        $tpsysID = $this->getRequest()->getPost('tpsysID');
        $objPackage = new Travel_Model_TblPackage();

        $data = array(
            'IsSelectedOnPkg' => '0'
        );
        $where = array('TPIntSysId = ? ' => $TPIntSysId);
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Air', $data, $where);

        $updatedata = array(
            'IsSelectedOnPkg' => '1'
        );
        $updatedwhere = array('VersionId = ? ' => $VersionId);
        $objPackage->updateData('TB_Agency_Customer_TravelPlan_Air', $updatedata, $updatedwhere);

        $getroomdetails = $objPackage->getroominfo($tpsysID);
        $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);
        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $totaltraveler = $adultcount + $childcount;
        $objPackage->UpdateHotelSelection('', '', '', $tpsysID, 'PKG', $getroomdetails[0]['RoomInfoJson'], $adultcount, $childcount, $totaltraveler, '');
    }

    public function getHotelListDateWiseAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        //echo $this->getRequest()->getParam('id');		
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->view->intLoggedinUserAgencySysId = $intLoggedinUserAgencySysId;

        $tpID = $this->_HtmlPurifier->filter($this->getRequest()->getParam('id'));
        if ($tpID > 0) {
            
        }
    }

    public function deletemktplaceAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $this->_request->getParam('tpsysID');
        $updatewhere = array('TPIntSysId = ? ' => $tpsysID);
        $updateData = array('IsMarkForDel' => '1');
        $objPackage->updatemarketplace($updateData, $updatewhere, $tpsysID);
    }

    public function saveasdraftAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $this->_request->getParam('tpsysID');
        $tabname = $this->_request->getParam('tabname');
        $makedraft = $objPackage->SaveDraft($tpsysID, $tabname);
    }

    public function saveasdraftbyoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $this->_request->getParam('tpsysID');
        $tabname = $this->_request->getParam('tabname');
        $makedraft = $objPackage->SaveDraftReadymade($tpsysID, $tabname);
    }

    public function activatepkgAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $this->_request->getParam('tpsysID');
        $objPackage->ActivatePackage($tpsysID);
    }

    public function deactivatepkgAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $tpsysID = $this->_request->getParam('tpsysID');
        $objPackage->DeActivatePackage($tpsysID);
    }

    public function supplierinfoAction() {
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $AgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $suppliersysID = $this->_request->getParam('suppliersysID');
        $this->view->suppliersysID = $suppliersysID;
    }

    public function displayhotelcostbyoAction() {
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $AgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $tpintsysID = $this->_request->getParam('tpintsysID');
        $accosysID = $this->_request->getParam('accosysID');
        $adult = $this->_request->getParam('adult');
        $child = $this->_request->getParam('child');
        $pkgcatID = $this->_request->getParam('pkgcatID');
        $numberoftraveler = $this->_request->getParam('numberoftraveler');
        $perperson = $this->_request->getParam('perperson');
        $totalcost = $this->_request->getParam('totalcost');
        $invitemsysID = $this->_request->getParam('invitemsysID');
        $this->view->invitemsysID = $invitemsysID;
        $this->view->tpintsysID = $tpintsysID;
        $this->view->accosysID = $accosysID;
        $this->view->adult = $adult;
        $this->view->pkgcatID = $pkgcatID;
        $this->view->mealPlanId = $this->_request->getParam('mealPlanId');
        $this->view->child = $child;
        $this->view->numberoftraveler = $numberoftraveler;
        $this->view->perperson = $perperson;
        $this->view->totalcost = $totalcost;
    }

    public function displayhotelcostAction() {
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $AgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $tpintsysID = $this->_request->getParam('tpintsysID');
        $accosysID = $this->_request->getParam('accosysID');
        $adult = $this->_request->getParam('adult');
        $child = $this->_request->getParam('child');
        $numberoftraveler = $this->_request->getParam('numberoftraveler');
        $perperson = $this->_request->getParam('perperson');
        $totalcost = $this->_request->getParam('totalcost');
        $invitemsysID = $this->_request->getParam('invitemsysID');
        $this->view->invitemsysID = $invitemsysID;
        $this->view->tpintsysID = $tpintsysID;
        $this->view->accosysID = $accosysID;
        $this->view->adult = $adult;
        $this->view->child = $child;
        $this->view->numberoftraveler = $numberoftraveler;
        $this->view->perperson = $perperson;
        $this->view->totalcost = $totalcost;
    }

    public function showdetailactivityAction() {
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $AgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $versionID = $this->_request->getParam('versionID');
        $numberoftraveler = $this->_request->getParam('numberoftraveler');
        $costpp = $this->_request->getParam('costpp');
        $totalcost = $this->_request->getParam('totalcost');
        $this->view->numberoftraveler = $numberoftraveler;
        $this->view->versionID = $versionID;
        $this->view->costpp = $costpp;
        $this->view->totalcost = $totalcost;
    }

    public function showdetailsightseeingAction() {
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $AgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $versionID = $this->_request->getParam('versionID');
        $numberoftraveler = $this->_request->getParam('numberoftraveler');
        $costpp = $this->_request->getParam('costpp');
        $totalcost = $this->_request->getParam('totalcost');
        $this->view->numberoftraveler = $numberoftraveler;
        $this->view->versionID = $versionID;
        $this->view->costpp = $costpp;
        $this->view->totalcost = $totalcost;
    }

    public function checkmarkuppricebyoAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $tpsysID = $this->_request->getParam('tpsysID');
        $objPackage = new Travel_Model_TblPackage();
        $getmarkupprice = $objPackage->GetMarkupPriceDetailbyo($tpsysID);
        if (!empty($getmarkupprice)) {
            echo 'Mark up is added';
        } else {
            echo 'Mark up is not added';
        }
    }

    public function checkmarkuppriceAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $tpsysID = $this->_request->getParam('tpsysID');
        $objPackage = new Travel_Model_TblPackage();
        $getmarkupprice = $objPackage->GetMarkupPriceDetail($tpsysID);
        if (!empty($getmarkupprice)) {
            echo 'Mark up is added';
        } else {
            echo 'Mark up is not added';
        }
    }

    public function removeinsuranceAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $tpsysID = $getData['tpsysID'];
        $companyID = $getData['companysysID'];
        $itineraryID = $getData['itineraryID'];
        $data = array(
            'IsSelected' => '0'
        );
        $where = array('Insurer = ? ' => $companyID, 'TPIntSysId = ? ' => $itineraryID);
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Insurance', $data, $where);
        $getroomdetails = $objPackage->getroominfo($tpsysID);
        $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);
        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $totaltraveler = $adultcount + $childcount;
        $objPackage->UpdateHotelSelection('', '', '', $tpsysID, 'PKG', $getroomdetails[0]['RoomInfoJson'], $adultcount, $childcount, $totaltraveler, '');
    }

    public function searchResultFromPkgAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $intLoggedinUserId = $this->intLoggedinUserId;
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $pkgformdata = $this->getRequest()->getPost();
        $tpitenarysysID = $pkgformdata['tpintsysID'];
        $this->view->tpitenarysysID = $tpitenarysysID;
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $objPackage = new Travel_Model_TblPackage();
        $onewayfrom = $this->_request->getParam('oneway_from');
        $explodeoneway = explode("_", $onewayfrom);
        $sourceapcode = $explodeoneway[0];
        $sourceapcity = $explodeoneway[1];
        $onewayto = $this->_request->getParam('oneway_to');
        $explodeonewayto = explode("_", $onewayto);
        $destapcode = $explodeonewayto[0];
        $destapcity = $explodeonewayto[1];
        $oneway_departure_date = $this->_request->getParam('oneway_departure_date');
        $oneway_adults = $this->_request->getParam('oneway_adults');
        $byopkgreadymade = $this->_request->getParam('byopkgreadymade') ? $this->_request->getParam('byopkgreadymade') : 0;
        $oneway_child = $this->_request->getParam('oneway_child');
        $oneway_infant = $this->_request->getParam('oneway_infant');
        $oneway_class = $this->_request->getParam('oneway_class');
        $tpitineraryID = $this->_request->getParam('tpintsysID');
        $tpintID = $this->_request->getParam('tplanitinraryID');
        $page = $this->_request->getParam('page');
        $source_api = $this->_request->getParam('source_api');
        if ($source_api == "Inventory") {
            $source_api_req = "INV";
        } else {
            $source_api_req = "API";
        }

        $apiData = array(
            'flightRoute' => '1',
            'sourceAirportCode' => $sourceapcode,
            'sourceCityId' => $sourceapcity,
            'destinationAirportCode' => $destapcode,
            'destinationCityId' => $destapcity,
            'departure_dates' => $oneway_departure_date,
            'adults' => $oneway_adults,
            'childs' => $oneway_child,
            'infants' => $oneway_infant,
            'flightClass' => $oneway_class,
            'page' => $page,
            'resultSource' => $source_api_req,
            'loggedInAgencySysId' => $intLoggedinUserAgencySysId,
            'loggedInUserSysId' => $intLoggedinUserId,
        );

        $endpointurl = FLIGHTAPIURL;
        try {
            $curl = curl_init($endpointurl);
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($apiData));
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            $flight_response = curl_exec($curl);
            echo $flight_response;
            $this->view->SourcePlaceSysId = $sourceapcity;
            $this->view->DestPlaceSysId = $destapcity;
            $this->view->arrSearchFlightResult = json_decode($flight_response, 1);
            $this->view->tpintID = $tpintID;

            curl_close($curl);
        } catch (Exception $error) {
            echo 'Errpr Ocuured';
            //$this->view->error_msg = $error->getMessage();
            die;
        }

        if ($source_api == "Inventory" && $byopkgreadymade == "0") {
            $this->render('all-airlines-pkg-inventory');
        } elseif ($source_api == "Inventory" && $byopkgreadymade == "0") {
            $this->render('all-airlines-pkg-db');
        } else {

            $this->render('all-airlines-byo-pkg-db');
        }
        //}
    }

    public function shareProposalPopupAction() {
        $this->_helper->layout->disableLayout();
        $this->view->intLoggedinUserId = $this->intLoggedinUserId;
        $tpsysID = $this->_getParam('package');
        $customerId = $this->_getParam('customerId');
        $mid = $this->_getParam('mid');
        $ss = $this->_getParam('ss');
        $ssmp = $this->_getParam('ssmp');
        $objPackage = new Travel_Model_TblPackage();
        if (!empty($mid)) {
            $this->view->package = $tpsysID;
            $this->view->mid = $mid;
        } else {
            if (!empty($customerId)) {

                $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
                $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById($customerId);
                $this->view->customerDetails = $customerDetails;
                $IsB2BCustomer = isset($customerDetails['IsB2BAgent']) ? $customerDetails['IsB2BAgent'] : 0;

                $flexiPackageList = $objPackage->getCustPackageList($tpsysID);
                if (isset($flexiPackageList['AgencySysId'])) {
                    $crmcustomerObj = new Travel_Model_CRM_Customer();
                    $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
                    $flexiPackageList['agencyDetails'] = $getAgencyDetail;
                    if ($_SESSION['AgencyUser']['user']->IsOps == 1) {
                        $CheckCustomerWithLeadId = $this->_crmcusttravelplan->CheckCustomerWithLeadId($flexiPackageList['MasterTPSysId'], 'Query');
                        $queryAgentDetails = $crmcustomerObj->checkUser($CheckCustomerWithLeadId[0]['AgencySysId'], $CheckCustomerWithLeadId[0]['AgentSysId']);
                        $flexiPackageList['queryAgentDetails'] = $queryAgentDetails;
                    }
                }
                //                        echo "<pre>";print_r($flexiPackageList);die;
                $subject = '';
                if ($IsB2BCustomer == 1) {
                    $b2bcustomerDetails = $this->_crmcustomerObj->GetCustomerDetailsByEmailB2B(trim($customerDetails['EmailId']), $this->intLoggedinUserAgencySysId);

                    $roominfojson = $flexiPackageList['RoomInfoJson'];
                    $adultPax = 0;
                    $childPax = 0;
                    $infantPax = 0;
                    $departuredate = '';
                    $roominfoarray = json_decode($roominfojson, 1);
                    if (is_array($roominfoarray) && count($roominfoarray) > 0) {
                        foreach ($roominfoarray as $res) {
                            $adultPax += $res['Adult'];
                            $childPax += $res['Child'];
                            $infantPax += @$res['Infant'];
                        }
                    }
                    $travellers = $adultPax + $childPax + $infantPax;
                    $queryTPSysId = $flexiPackageList['MasterTPSysId'];
                    $search_going_to = explode('(', $flexiPackageList['DestinationPlaces']);
                    $search_specific_date = $flexiPackageList['StartDate']->format('d-m-Y');
                    $PrimaryContactName = trim($_SESSION['AgencyUser']['user']->FirstName) . ' ' . trim($_SESSION['AgencyUser']['user']->LastName);
                    $subject = $queryTPSysId . ' - ' . trim($b2bcustomerDetails['CompanyName']) . ' / Pax: ' . $travellers . ' / ' . $search_specific_date . ' / ' . trim($search_going_to[0]) . ' / ' . trim($PrimaryContactName);
                }
                $flexiPackageList['subject'] = $subject;
                $this->view->flexiPackageList = $flexiPackageList;
                //Get Package Places 
                $flexiPackagePlaces = $objPackage->getCustomerPackagePlacesList($tpsysID, $this->intLoggedinUserAgencySysId);
                $this->view->flexiPackagePlaces = $flexiPackagePlaces;

                $flexiPackageItenList = $objPackage->getCustPackageItenList($tpsysID);
                $this->view->flexiPackageItenList = $flexiPackageItenList;
                $this->view->currencyarr = $currencyarr = $objPackage->getCurrencyList();

                $objCust = new Travel_Model_CRM_CustomerTravelPlan();
                $trip_start_date = $flexiPackageList['StartDate']->format('Y-m-d');
                $IsB2BCustomer = isset($flexiPackageList['IsB2BProposal']) ? $flexiPackageList['IsB2BProposal'] : 0;
                if ($IsB2BCustomer == 1) {
                    $MarketPlaceId = 2;
                } else {
                    $MarketPlaceId = 1;
                }

                if ($flexiPackageList['PackSpecType'] == '1' || $flexiPackageList['PackSpecType'] == '2') {
                    $rominfojson = json_decode($flexiPackageList['RoomInfoJson'], 1);
                    $paxCount = array_sum((array_column($rominfojson, 'Adult')));
                    $packRate = $objCust->getCustTravelPackRateRowWise($tpsysID, $trip_start_date, $MarketPlaceId, $paxCount);
                    $getmarketwisedate = $objCust->getCustPackRateRowWise($tpsysID, $trip_start_date, $MarketPlaceId, $paxCount);
                } else {
                    $packRate = $objCust->getCustTravelPackRate($tpsysID, $trip_start_date, $MarketPlaceId);
                    $getmarketwisedate = $objCust->getCustPackRate($tpsysID, $trip_start_date, $MarketPlaceId);
                }

                $packRate = !empty($packRate) ? $packRate[0] : array();
                $getmarketwisedate = !empty($getmarketwisedate) ? $getmarketwisedate[0] : array();
            } else {
                $flexiPackageList = $objPackage->getFlexiPackageList($tpsysID);
                if (isset($flexiPackageList['AgencySysId'])) {
                    $crmcustomerObj = new Travel_Model_CRM_Customer();
                    $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
                    $flexiPackageList['agencyDetails'] = $getAgencyDetail;
                }
                $this->view->flexiPackageList = $flexiPackageList;
                //Get Package Places 
                $flexiPackagePlaces = $objPackage->getPackagePlacesList($tpsysID);
                $this->view->flexiPackagePlaces = $flexiPackagePlaces;
                $trip_start_date = $flexiPackageList['StartDate']->format('Y-m-d');
                $getmarketwisedate = $objPackage->GetDuplicateMarketwiserateDate($tpsysID, $trip_start_date);
                $getmarketwisedate = $getmarketwisedate[0];
                $packRate = $objPackage->getPackRate($tpsysID, $trip_start_date);
                $packRate = !empty($packRate) ? $packRate[0] : array();
                //        $this->view->marketwsie = $getmarketwisedate;
                //Get Package Itenary
                $flexiPackageItenList = $objPackage->getFlexiPackageItenList($tpsysID);
                $this->view->flexiPackageItenList = $flexiPackageItenList;
            }
            $this->view->tpsysID = $tpsysID;
//                            echo "<pre>";print_r($flexiPackageItenList);echo "</pre>";die('dd');
            $strRoomInfoJson = $flexiPackageList['RoomInfoJson'];
            $optionalSightIncludePrice = $ss;
            $optionalSightIncludeMPrice = $ssmp;

            $rateListArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($tpsysID, $strRoomInfoJson, $flexiPackageList, $getmarketwisedate, $packRate, '', '', $optionalSightIncludePrice, $optionalSightIncludeMPrice);
            //               $rateListArr['FinalMarkUpp'] =  $rateListArr['FinalMarkUp'] + $rateListArr['optSightMarkupPrice'];
            //               $rateListArr['FinalCostt'] =  $rateListArr['FinalCost'] - $rateListArr['optionalCostWithoutMarkup'];
            $rateList = array('arrPkgCost' => $rateListArr);
            //				
            //        $rateList = array('arrPkgCost' => array('AdultPax' => $flexiPackageList['MinPax'], 'ChildPax' => 0, 'FinalCost' => $flexiPackageList['NetPrice'], 'FinalDiscount' => $flexiPackageList['DiscountVal'], 'FinalMarkUp' => 0));
            $popupArray = array();
            $popupArray['rateList'] = json_encode($rateList);

            $this->view->popupArray = $popupArray;
            //  $this-view->getCustomerDetails = $getcustomerDetail;
            if ($flexiPackageList['SupplierSysId'] > 0) {
                $objSupplier = new Travel_Model_TblSupplier();
                $arrSupplierDetails = $objSupplier->getSupplierById($flexiPackageList['SupplierSysId']);
                $this->view->arrSupplierDetails = $arrSupplierDetails;
            }
            $markupMdl = new Markup_Model_Markup();
            $this->view->getTaxSettingDetail = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 5);
            $isDisplayTax = $markupMdl->getDetailsAgencyCurrencyDeatil("TB_Agency", $this->intLoggedinUserAgencySysId);
            $this->view->isDisplayTax = $isDisplayTax['TaxLabelId'];
        }
    }

    public function saveinsumemberAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $getData = $this->getRequest()->getPost();

        //die;
        $tpsysID = $getData['tpID'];
        $companyID = $getData['companyID'];
        $objPackage = new Travel_Model_TblPackage();
        $insuranceitinerary = $objPackage->GetInsuranceItinerary($tpsysID);
        $getroomdetails = $objPackage->getroominfo($tpsysID);
        $roominfoarray = json_decode($getroomdetails[0]['RoomInfoJson'], 1);
        $tpitineraryID = $insuranceitinerary['TPIntSysId'];
        $totaltraveler = $getData['totaltraveler'];
        $suminsured = $getData['suminsured'];
        $premiumprice = $getData['premiumprice'];
        $pricewithtax = $getData['pricewithtax'];
        $customersysID = $getData['customersysID'];
        $masterpolicy = $objPackage->GetMasterPolicySysID($companyID);
        $mastepolicyID = $masterpolicy['MasterPolicySysId'];
        $custpolicyID = $objPackage->GetCustomerPolicyId($mastepolicyID, $tpitineraryID);

        $updateddata = array(
            "IsMarkForDelete" => "1"
        );
        $updatedwhere = array('CustPolicySysId = ? ' => $custpolicyID['CustPolicySysId']);
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_InsuMember', $updateddata, $updatedwhere);
        $agebandnum = array();
        $agearray = array("ageband1" => "6-40", "ageband2" => "40-60", "ageband3" => "61-70");
        $ageslab1 = array();
        $ageslab2 = array();
        $ageslab3 = array();
        /*
          for($p=1;$p<=3;$p++){
          $agegroup = 'ageband'.$p;
          if($agegroup){
          $ageband = $getData[$agegroup];
          $agebandnum[] = $ageband;
          }
          $travelerage = 'travelerage_'.$p;
          if($getData[$travelerage] >=6 && $getData[$travelerage] <= 40 ){
          $ageslab1[] = $getData[$travelerage];
          }
          if($getData[$travelerage] >=41 && $getData[$travelerage] <= 60 ){
          $ageslab2[] = $getData[$travelerage];
          }
          if($getData[$travelerage] >=61 && $getData[$travelerage] <= 70 ){
          $ageslab3[] = $getData[$travelerage];
          }

          }
          if(isset($agebandnum[0])){
          if($agebandnum[0] != count($ageslab1)){
          $response = array('status' => 'Fail', 'msg' => 'Traveler Age Does not match');
          echo json_encode($response);
          exit;
          }
          }
          if(isset($agebandnum[1])){
          if($agebandnum[1] != count($ageslab2)){
          $response = array('status' => 'Fail', 'msg' => 'Traveler Age Does not match');
          echo json_encode($response);
          exit;
          }
          }
          if(isset($agebandnum[2])){
          if($agebandnum[2] != count($ageslab3)){
          $response = array('status' => 'Fail', 'msg' => 'Traveler Age Does not match');
          echo json_encode($response);
          exit;
          }
          }
         */
        for ($k = 1; $k <= $totaltraveler; $k++) {

            $salutation = 'salutation_' . $k;
            $fname = 'fname_' . $k;
            $lname = 'lname_' . $k;

            $dob = 'dob_' . $k;
            $fulladdress = 'fulladdress_' . $k;
            $search_going_from = 'search_going_from_' . $k;
            $going_to_city = explode("__", $getData[$search_going_from]);
            $cityID = $going_to_city[0];
            $explodedate = explode("/", $getData[$dob]);
            $insdob = $explodedate[2] . '-' . $explodedate[1] . '-' . $explodedate[0];
            $email = 'email_' . $k;
            $pincode = 'pincode_' . $k;
            $passport = 'passport_' . $k;
            $nominee = 'nominee_' . $k;
            $createddate = date("Y-m-d");
            $data = array(
                "CustPolicySysId" => $custpolicyID['CustPolicySysId'],
                "Salutation" => $getData[$salutation],
                "Seq" => $k,
                "FirstName" => $getData[$fname],
                "LastName" => $getData[$lname],
                "FullAddress" => $getData[$fulladdress],
                "DOB" => $insdob,
                "Email" => $getData[$email],
                "CitySysId" => $cityID,
                "PinCode" => $getData[$pincode],
                "IDType" => "PASSPORT",
                "IDNumber" => $getData[$passport],
                "Nominee" => $getData[$nominee],
                "CreateDate" => $createddate,
                "UpdateDate" => $createddate,
                "ActivationDate" => $createddate,
                "ApprovalDate" => $createddate,
                "IsVarified" => 1,
                "IsActive" => 1,
                "IsMarkForDelete" => 0,
                "IsApproved" => 1
            );
            $objPackage->insertData('TB_Agency_Customer_TravelPlan_InsuMember', $data);
            //   $lastID = $objPackage->lastInsertId();
            $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
            $agentsysID = $this->intLoggedinUserId;
            $objGest = new Travel_Model_Tbltbbcuser();
            $checkCustomerMMMBRrecordChanged = $objGest->getCustomerAndMembersDetailsAll('', trim($getData[$email]), trim($getData[$salutation]), '', trim($getData[$fname]), trim($getData[$lname]), $intLoggedinUserAgencySysId);
            if (count($checkCustomerMMMBRrecordChanged) == 0) {
                $memberdata = array(
                    "AgencySysId" => $intLoggedinUserAgencySysId,
                    "CustomerSysId" => $customersysID,
                    "EmailId" => $getData[$email],
                    "Title" => $getData[$salutation],
                    "Logo" => '',
                    "IsfromSM" => '0',
                    "SMTypeId" => 0,
                    "Contacts" => 0,
                    "SMId" => 0,
                    "UserId" => 0,
                    "IsEmployee" => 0,
                    "FirstName" => $getData[$fname],
                    "LastName" => $getData[$lname],
                    "UserName" => $getData[$fname] . '' . $getData[$lname],
                    "Designation" => '',
                    "Password" => '',
                    "RandStr" => '',
                    "PasswordExpiryDate" => $createddate,
                    "IsPswExpire" => '0',
                    "OtherEmail" => '',
                    "SecondaryEmail" => '',
                    "LastLoginTime" => $createddate,
                    "IsLogInNow" => '0',
                    "RandomCode" => '',
                    "Gender" => '',
                    "UserNickName" => '',
                    "UserPicPath" => '',
                    "ContactNo1" => '0',
                    "ContactNo2" => '0',
                    "HomePhone" => '0',
                    "StateOrZoneSysId" => 0,
                    "CountrySysId" => 0,
                    "SecondaryAddress" => '',
                    "Fax" => '',
                    "MacIp" => '',
                    "SpeakingLangSysId" => '',
                    "Signature" => '',
                    "SecondaryPhone" => '',
                    "UserDetails" => '',
                    "Address" => '',
                    "CreatedByUserSysId" => $agentsysID,
                    "DOB" => $insdob,
                    "UpdateDate" => $createddate,
                    "RegisterDate" => $createddate,
                    "JoinDate" => $createddate,
                    "ExitDate" => $createddate,
                    "CitySysId" => $cityID,
                    "PinCode" => $getData[$pincode],
                    "IsActive" => 1,
                    "IsMarkForDelete" => 0,
                    "IsApproved" => 1
                );

                $objPackage->insertData('TB_Agency_Customer_Members', $memberdata);
            }
        }
        // if($lastID){
        $curr_date = date('Y-m-d');
        $latestpolicynumber = $objPackage->GetLatestPolicyNum($mastepolicyID);
        $childpolicyID = $latestpolicynumber['ChildPolicyId'];
        $data = array(
            'PolicyNo' => $latestpolicynumber['ChildPolicyId'],
            'MemberId' => $latestpolicynumber['ChildPolicyId'],
            'TandC' => 1,
            'CurrencyType' => 1,
            'SumInsured' => $suminsured,
            'Priminum' => $premiumprice,
            'PremiumWithTax' => $pricewithtax,
            'NetPaid' => $pricewithtax,
            'ActivationDate' => $curr_date,
            'ApprovalDate' => $curr_date,
            'IsOptionalInsurance' => 1,
            'IsSelected' => 1,
            'IsVarified' => 1,
            'IsActive' => '1',
            'IsMarkForDelete' => '0',
            'IsApproved' => '1',
            'GeoLocation' => 'Worldwide Excl. US/Canada',
            'Insurer' => $companyID
        );

        $where = array('CustPolicySysId = ? ' => $custpolicyID['CustPolicySysId']);
        $updateId = $objPackage->updateData('TB_Agency_Customer_TravelPlan_Insurance', $data, $where);
        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $totaltraveler = $adultcount + $childcount;
        $objPackage->UpdateHotelSelection('', '', '', $tpsysID, 'PKG', $getroomdetails[0]['RoomInfoJson'], $adultcount, $childcount, $totaltraveler, '');
    }

    public function autosuggesthotelAction() {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();

        $arrResponse = array();
        if ($this->getRequest()->getParam("term")) {
            $term = $this->getRequest()->getParam("term");
            $string = @$this->getRequest()->getParam('string');
            $classId = @$this->getRequest()->getParam('classId');

            $objPackage = new Travel_Model_TblPackage();
            $arrResponse = $objPackage->getAutoSuggestHotel($term, $this->intLoggedinUserAgencySysId, $string, $classId);
        }
        echo ($arrResponse);
    }

    public function deleteCancellationPolicyAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        //        echo '<pre>'; print_r($_REQUEST);
        $cancelval = $this->getRequest()->getParam('cancelval');
        $multipackres = $this->getRequest()->getParam('multipackres');
        $reslastint = json_decode(base64_decode($multipackres), true);
        //        print_r($reslastint);
        //        die;
        for ($j = 0; $j < count($reslastint); $j++) {
            $data = array(
                'IsMarkForDel' => '1',
                'IsActive' => '0',
                'UpdateDate' => $currentDate
            );
            $where = array('DaysBefore = ? ' => $cancelval, 'TPSysId = ? ' => $reslastint[$j]);
            $updateId = $objPackage->updateData('TB_TravelPlan_Rules', $data, $where);
        }

        //         $multipackres = $this->getRequest()->getParam('multipackres');
        //        $reslastint = json_decode(base64_decode($multipackres), true);
        /* -------------------- insert data for contributor tab by pooja on 20 june 2017----------------------- */

        $userHistoryData = array(
            'TPSysId' => $reslastint[0],
            'StepId' => 6,
            'Details' => 10,
            'UserSysId' => $this->intLoggedinUserId
        );
        Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->addTravelPlanUserHistory($userHistoryData);

        /* -------------------- end insert data for contributor tab----------------------- */
        echo 1;
        exit;
    }

    public function addFlexiPackageReadymadeContributorHistoryAction() {
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {
            $tpSysId = $this->getRequest()->getParam('id');
            $packageData = $objPackage->getChildPackageList($tpSysId);
            if (isset($packageData[0]['AgencySysId']) && ($packageData[0]['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }

            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] > 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            }
            $flexiPackagehistoryList = $objPackage->getContributorHistoryList($packageData[0]['TPSysId']);
            $this->view->historyList = $flexiPackagehistoryList;
            $this->view->tpSysId = $packageData[0]['TPSysId'];
        }
    }

    public function packageViewAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        //echo $this->getRequest()->getParam('id');		
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->view->intLoggedinUserAgencySysId = $intLoggedinUserAgencySysId;
        $tpID = $this->getRequest()->getParam('id');
        $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
        if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
            $this->_redirect('publicpackage/pagenotfound');
            exit;
        }
        if (!empty($flexiPackageList)) {
            //            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            $packageTncList = $objPackage->getPackageTncList($tpID);
            $flexiPackageList['tncDetails'] = $packageTncList;
            //echo "<pre>";print_r($flexiPackageList);die;
            //code added by amit kumar dubey on 14 dec 2016 at 1:04 PM
            $inclusionMastArray = $objPackage->getPackageInclusionList();
            //echo "<pre>";print_r($flexiPackageList);die;
            if (isset($flexiPackageList['InclMask'])) {
                $inclusionArr = $objPackage->getMasking($flexiPackageList['InclMask'], $inclusionMastArray, 'InclId');
                $flexiPackageList['inclusionDetails'] = $inclusionArr;
            }

            //for agency details
            $crmcustomerObj = new Travel_Model_CRM_Customer();
            if (isset($flexiPackageList['AgencySysId'])) {
                $getAgencyDetail = $crmcustomerObj->GetAgencyDetailById($flexiPackageList['AgencySysId']);
                $flexiPackageList['agencyDetails'] = $getAgencyDetail;
            }
            if (isset($flexiPackageList['AgentSysId'])) {
                $agencyObj = new Travel_Model_TblAgency();
                $getAgentDetail = $agencyObj->getAgencyUserDataById($flexiPackageList['AgentSysId']);
                $flexiPackageList['agentDetails'] = $getAgentDetail;
            }


            $hotelarr = $objPackage->getFlexiPackageFinalHotels($flexiPackageList['TPSysId']);
            $this->view->hotelarr = $hotelarr;

            $this->view->flexiPackageList = $flexiPackageList;
            //Get Package Places 
            $flexiPackagePlaces = $objPackage->getPackagePlacesList($this->getRequest()->getParam('id'));
            $this->view->flexiPackagePlaces = $flexiPackagePlaces;
            //Get Package Itenary
            $flexiPackageItenList = $objPackage->getFlexiPackageItenList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageItenList = $flexiPackageItenList;

            $objCity = new Travel_Model_TblCity();
            if (isset($flexiPackageItenList[0]['PlaceSysId'])) {
                $this->view->cityMainDetail = $objCity->getCityImagesDetailsById($flexiPackageItenList[0]['PlaceSysId'], 1, 1);
            }

            if ($flexiPackageList['PackSpecType'] == 2) {
                $resflexiPackageActivityOnlyHotel = $objPackage->getItenActivityList(@$flexiPackageList['TPSysId'], 2);
                $this->view->flexiPackageActivityList = $resflexiPackageActivityOnlyHotel;
                $resflexiPackageSSOnlyHotel = $objPackage->getItenSightseenList(@$flexiPackageList['TPSysId'], 2);
                $this->view->flexiPackageSightseenList = $resflexiPackageSSOnlyHotel;
            } else {

                $flexiPackageSightseenList = $objPackage->getFlexiPackageSightseenList($this->getRequest()->getParam('id'));
                $this->view->flexiPackageSightseenList = $flexiPackageSightseenList;

                $flexiPackageActivityList = $objPackage->getFlexiPackageActivityList($this->getRequest()->getParam('id'));
                $this->view->flexiPackageActivityList = $flexiPackageActivityList;
            }
            //             echo '<pre>'; print_r($flexiPackageActivityList);print_r($flexiPackageSightseenList); die;
            //Get Package Activity
            /* $flexiPackageActivityList				=	$objPackage->getFlexiPackageActivityList($this->getRequest()->getParam('id'));
              $this->view->flexiPackageActivityList 	= 	$flexiPackageActivityList;
              //Get Package Sightseen
              $flexiPackageSightseenList				=	$objPackage->getFlexiPackageSightseenList($this->getRequest()->getParam('id'));
              $this->view->flexiPackageSightseenList 	= 	$flexiPackageSightseenList;
              //Get Package Hotels
              $flexiPackageHotelsList				=	$objPackage->getFlexiPackageHotelsList($this->getRequest()->getParam('id'));
              $this->view->flexiPackageHotelsList = 	$flexiPackageHotelsList; */

            //Get Package FInal Hotels
            $flexiPackageFinalHotel = $objPackage->getFlexiPackageFinalHotels($this->getRequest()->getParam('id'));
            $this->view->flexiPackageFinalHotel = $flexiPackageFinalHotel;
            //echo "<pre>";print_r($flexiPackageFinalHotel);die;
            //get hotel flexi pakage by amit
            $flexiPackageHotelsList = $objPackage->getFlexiPackageHotelsList($this->getRequest()->getParam('id'));
            $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;

            //print_r($flexiPackageHotelsList);


            $this->view->tpID = $tpID;
            $getcustomerDetail = $this->_crmcusttravelplan->GetTravelPlanCustomerDetails($tpID);
            $getversiondetails = $this->_crmcusttravelplan->GetVersionInfo($tpID);
            //            $getmarketwisedate = $this->_crmcusttravelplan->GetMarketWiseRate($tpID);
            $getmarketwisedate = $objPackage->GetDuplicateMarketwiserateDate($tpID, date("Y-m-d"));

            $this->view->marketwsie = $getmarketwisedate;
            //code added by Er Amit Kumar Dubey for new popup
            //$rateList=Zend_Controller_Action_HelperBroker::getStaticHelper('PackageSearch')->getPackageRate($tpID);
            $rateList = array('arrPkgCost' => array('AdultPax' => $flexiPackageList['MinPax'], 'ChildPax' => 0, 'FinalCost' => $flexiPackageList['NetPrice'], 'FinalDiscount' => $flexiPackageList['DiscountVal'], 'FinalMarkUp' => 0));
            $popupArray = array();
            $popupArray['rateList'] = json_encode($rateList);

            $this->view->popupArray = $popupArray;
            //  $this-view->getCustomerDetails = $getcustomerDetail;
            if ($flexiPackageList['SupplierSysId'] > 0) {
                $objSupplier = new Travel_Model_TblSupplier();
                $arrSupplierDetails = $objSupplier->getSupplierById($flexiPackageList['SupplierSysId']);
                $this->view->arrSupplierDetails = $arrSupplierDetails;
            }
            $this->view->getcustomerDetail = $getcustomerDetail;
            $this->view->getversionDetails = $getversiondetails;
            $this->view->chatSenderDetails = array();

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->orderByField = " TB_Master_Accom_AccomAminity.AminityId";
            $objHotel->orderBy = "";
            $arrAmenites = $objHotel->getMasterAccomAminities();
            $this->view->arrAmenites = $arrAmenites;
        }
    }

    // Added By Pardeep Panchal For GST Calculation Starts

    public function calculateGstAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        /* If ajax request */
        if ($this->_request->isXmlHttpRequest()) {
            $GSTApplicableOn = $this->getRequest()->getParam('GSTApplicableOn');
            $packageCost = $this->getRequest()->getParam('packageCost');
            $AgencyMarkUp = $this->getRequest()->getParam('AgencyMarkUp');
            $AgencyExtraMarkUp = $this->getRequest()->getParam('AgencyExtraMarkUp');
            $AgencyDiscount = $this->getRequest()->getParam('AgencyDiscount');
            $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
            );
            $arrGSTCalculations = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->calculateGST($arrInputData);
            echo json_encode($arrGSTCalculations);
            exit;
        }
    }

    public function updatePackageCostCalTypeAction() {


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

        /* If ajax request */
        if ($this->_request->isXmlHttpRequest()) {

            $costCalType = !empty($this->getRequest()->getParam('costCalType')) ? $this->getRequest()->getParam('costCalType') : 0;
            $TPSysId = $this->getRequest()->getParam('TPSysId');
            $updateData = array(
                'PackageCostCalType' => $costCalType
            );
            $objPackage = new Travel_Model_TblPackage();
            $objPackage->updateFlexiPackage($updateData, $TPSysId);
        }
    }

    // Added By Pardeep Panchal For GST Calculation Ends

    public function pkgviewnewAction() {
//        error_reporting(E_ALL);
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $objAgency = new Travel_Model_TblAgency();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $encryptedTPID = $this->getRequest()->getParam('id');
        $GTXSource = $this->getRequest()->getParam('source');
        $tpID = base64_decode($this->getRequest()->getParam('id'));
        $catID = $this->getRequest()->getParam('cID');
        $tourID = $this->getRequest()->getParam('tID');
        $mID = $this->getRequest()->getParam('mID');
        $departureCity = $this->getRequest()->getParam('departure', null);
        $fromDate = $this->getRequest()->getParam('date', null);
        $isPs = $this->getRequest()->getParam('isPs');
        $MpType = $this->getRequest()->getParam('MpType');
        $queryTPSysId = (NULL != $this->getRequest()->getParam('qId') && !empty($this->getRequest()->getParam('qId'))) ? base64_decode($this->getRequest()->getParam('qId')) : '';
        $CustomerSysId = (NULL != $this->getRequest()->getParam('cid') && !empty($this->getRequest()->getParam('cid'))) ? base64_decode($this->getRequest()->getParam('cid')) : '';
        $MpType = $this->getRequest()->getParam('MpType');
        $MpType = !empty($MpType) ? $MpType : 1;
        $gtxnetwork = $this->getRequest()->getParam('gtxnetwork');
        $objPackageSearch = new Gtxnetwork_Model_PackageSearch();
        $objNetworktblPackage = new Travel_Model_TblPackage();
        if (isset($gtxnetwork) && $gtxnetwork == 1) {
            $this->view->arrTNCData = $arrTNCData = $objPackageSearch->packageCustomizeTermsAndConditions($intLoggedinUserAgencySysId, $tpID);
            $this->view->agencyTncList = $agencyTncList = $objAgency->getAgencyTnCDetails($intLoggedinUserAgencySysId);
            $MpType = 2;
            $this->view->gtxnetwork = $gtxnetwork;
        } else {
            $this->view->gtxnetwork = 0;
        }
        $model = new Gtxwebservices_Model_Dynaminpackage();
        $getPackageDetail = $model->getByoPackageDetail($tpID);
        $getPackageHotelDetail = $model->getByoPackageAccomDetail($tpID, $catID);
        $getByoPackageActivityDetail = $model->getByoPackageActivityDetail($tpID);
        $getByoPackageSightSeeingDetail = $model->getByoPackageSightSeeingDetail($tpID);
        $getOtherDetail = $model->getOtherDetail($tpID);
        $LeadSourceDateArray = $this->_crmcusttravelplan->GetCustomerTravelPlanLeadSourceNameByTPID($queryTPSysId);
        $this->view->LeadSourceDateArray = $LeadSourceDateArray;
        $itenararray = array();
        for ($i = 0; $i < count($getPackageDetail); $i++) {
            $itenararray[] = "'" . $getPackageDetail[$i]['TPIntSysId'] . "'";
        }
        $implodeitenary = implode(",", $itenararray);
        $this->view->allitnID = $implodeitenary;
        //for get transport list added by Er Amit On 13 dec 2017 at 11:55 PM
        $gettransportoption = $objPackage->GetTransPortOptionBYO($tpID);
        $totaltransport = count($gettransportoption);
        $this->view->totaltransport = $totaltransport;
        //#end get transport list added by Er Amit On 13 dec 2017 at 11:55 PM
        if (isset($getPackageDetail[0]['DestinationCovered']) && !empty($getPackageDetail[0]['DestinationCovered'])) {
            $cityobj = new Travel_Model_TblCity();
            $cityIds = trim($getPackageDetail[0]['DestinationCovered']);
            $otherlocationcity = $cityobj->getCityDetailsByMultipleId($cityIds);
            $this->view->otherlocationcity = $otherlocationcity;
        }
        //$this->view->totaltransport = 5;
        $flexiPackageHotelsList = array();
        $hl = 0;
        $hotelcount = array();
        foreach ($getPackageHotelDetail as $key => $val) {
            $flexiPackageHotelsList[$hl]['MealPlanType'] = $val['MealPlanType'];
            $flexiPackageHotelsList[$hl]['TPIntSysId'] = $val['TPIntSysId'];
            $flexiPackageHotelsList[$hl]['BYOPackType'] = $val['BYOPackType'];
            $flexiPackageHotelsList[$hl]['MealPlanTypeTitle'] = $val['MealPlanTypeTitle'];
            if (!in_array($val['AccoSysId'], $hotelcount)) {
                $hotelcount[] = $val['AccoSysId'];
            }
            $hl++;
        }
        $hotelcount = count(array_unique($hotelcount));
        if ($getPackageDetail[0]['PackageCostCalType'] == 1) {
            $hotelcount = array();
            $totalDaysNightsArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageTotalNoOfDays($getPackageDetail);
            $totalNight = $totalDaysNightsArr['totalnights'];
            $PossibleCombinationsOfMealPlanArr = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPossibleCombinationsOfMealPlan($getPackageHotelDetail, $totalNight, $catID);
            $mealkeys = array_keys($PossibleCombinationsOfMealPlanArr);
            $isMpExists = in_array($mID, $mealkeys);
            $this->view->isMpExists = $isMpExists;
            //            echo in_array($mID, $mealkeys); exit;
            if ((empty($mID) || empty($isMpExists)) && ($getPackageDetail[0]['PackageCostCalType'] == 1) && (count($mealkeys) > 0)) {
                $packagesearchLinkParam = !empty($isPs) ? '/isPs/' . $isPs : '';
                $customerIdinLinkParam = !empty($CustomerSysId) ? '/cid/' . base64_encode($CustomerSysId) : '';
                $queryIdinLinkParam = !empty($queryTPSysId) ? '/qId/' . base64_encode($queryTPSysId) : '';
                $this->_redirect('/package/pkgviewnew/id/' . $encryptedTPID . '/cID/' . $catID . '/tID/' . $tourID . '/mID/' . $mealkeys[0] . $packagesearchLinkParam . $customerIdinLinkParam . $queryIdinLinkParam);
            }

            $mealPlanwiseHotel = array();
            foreach ($getPackageHotelDetail as $key => $hotelDetail) {
                $mealPlanwiseHotel[$hotelDetail['MealPlanType']][] = $hotelDetail;
                $hotelcount[$hotelDetail['MealPlanType']][] = $hotelDetail['AccoSysId'];
            }

            $getCustomisePackageHotelDetail = $mealPlanwiseHotel[$mID];
            $hotelcount = count(array_unique($hotelcount[$mID]));
        }
        //       echo "<pre>";print_r($getPackageHotelDetail);echo "</pre>";
        $this->view->totalhotelcount = (int) $hotelcount;
        $Activitycount = array();
        foreach ($getByoPackageActivityDetail as $key => $val) {
            if ($val['IsOptionalActivity'] == '0') {
                $Activitycount[] = $val['TPActivitySysId'];
            }
        }
        $this->view->totalactivitycount = count($Activitycount);
        $SightSeeingcount = array();
        foreach ($getByoPackageSightSeeingDetail as $key => $val) {
            if ($val['IsOptionalSightSeeing'] == '0') {
                $SightSeeingcount[] = $val['SSSysId'];
            }
        }
        $this->view->totalsightseeingcount = count($SightSeeingcount);

        $this->view->flexiPackageHotelsList = $flexiPackageHotelsList;
        $flexiPackagePlaces = $objPackage->getPackagePlacesList($tpID);
        $this->view->flexiPackagePlaces = $flexiPackagePlaces;
        $customerDetails = array();
        if (isset($CustomerSysId) && $CustomerSysId > 0) {
            $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
            $customerDetails = $this->_crmcustomerObj->GetAgencyCustomerById(trim($CustomerSysId));
        }
        $this->view->customerDetails = $customerDetails;
        if (!empty($MpType) && $MpType == 2) {
            $IsB2BCustomer = 1;
        } else if (isset($customerDetails['IsB2BAgent'])) {
            $IsB2BCustomer = $customerDetails['IsB2BAgent'];
        } else {
            $IsB2BCustomer = 0;
        }
        //		$IsB2BCustomer=isset($customerDetails['IsB2BAgent'])?$customerDetails['IsB2BAgent']:0;
        if ($IsB2BCustomer == 1) {
            $marketwiseratebyo = $objPackage->GetMarketWiseRateBYOReadyMadeB2BCust($tpID, $catID, $tourID, $mID, 2);
        } else {
            $marketwiseratebyo = $objPackage->GetMarketWiseRateBYOReadyMade($tpID, $catID, $tourID, $mID);
        }


        if (isset($getPackageDetail[0]['AgencySysId'])) {
            $this->_crmcustomerObj = new Travel_Model_CRM_Customer();
            $getAgencyDetail = $this->_crmcustomerObj->GetAgencyDetailById($getPackageDetail[0]['AgencySysId']);
            $getPackageDetail[0]['agencyDetails'] = $getAgencyDetail;
        }
        $this->view->marketwiseratebyo = $marketwiseratebyo;
        $getpacktypemask = $objPackage->GetMasterPackageList();

        $this->view->fixedDeparture = array();
        if ($getPackageDetail[0]['IsFixedDeparturePackage'] == 1) {
            $this->view->fixedDeparture = $objNetworktblPackage->getInventoryDateForSearchResultForNetwork($tpID, $MpType, $tpID, $departureCity);
        }

        $this->view->packtypemask = $getpacktypemask;
        $objHotel = new Travel_Model_TblHotel();
        $objHotel->orderByField = " TB_Master_Accom_AccomAminity.AminityId";
        $objHotel->orderBy = "";
        $arrAmenites = $objHotel->getMasterAccomAminities();
        $pkgagencysysID = $getPackageDetail[0]['AgencySysId'];
        if (($pkgagencysysID == $intLoggedinUserAgencySysId) || ($getPackageDetail[0]['IsGTXNetworkWeb'] == 1 || $getPackageDetail[0]['IsTG'] == 1)) {
            $packageTncList = $objPackage->getPackageTncList($tpID);

            $finalResultSet = array(
                "tourID" => $tourID,
                "catID" => $catID,
                "tpID" => $tpID,
                "mID" => $mID,
                "isPs" => $isPs,
                "MpType" => $MpType,
                "queryTPSysId" => $queryTPSysId,
                "getPackageDetail" => $getPackageDetail,
                "getPackageHotelDetail" => ($getPackageDetail[0]['PackageCostCalType'] == 1) ? $getCustomisePackageHotelDetail : $getPackageHotelDetail,
                "getByoPackageActivityDetail" => $getByoPackageActivityDetail,
                "arrAmenites" => $arrAmenites,
                "getByoPackageSightSeeingDetail" => $getByoPackageSightSeeingDetail,
                "getOtherDetail" => $getOtherDetail,
                "GTXSource" => $GTXSource,
                "tncDetails" => $packageTncList,
                "departureCity" => $departureCity,
                "fromDate" => $fromDate
            );
            $this->view->getPackageDetail = $finalResultSet;
            $markupMdl = new Markup_Model_Markup();
            $this->view->getTaxSettingDetail = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 5);
            $this->view->getTcsSettingDetail = $getTcsSettingDetail = $objAgency->getTcsSettingDetail($this->intLoggedinUserAgencySysId);
            $sessionPSData = new Zend_Session_Namespace('sessionPackageSearchData');
            $packageSearchArray = $sessionPSData->searchData;
            $roomjson = isset($packageSearchArray['RoomMemInfoJson']) ? $packageSearchArray['RoomMemInfoJson'] : $packageSearchArray['roominfojson'];
            $tripstartdate = $packageSearchArray['search_specific_date'];
            $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', $tripstartdate)));
            $totalchild = $totaladult = 0;
            if (isset($getPackageDetail[0]['IsFixedDeparturePackage']) && ($getPackageDetail[0]['IsFixedDeparturePackage'] == 1)) {
                $fetchFDDate = $this->getRequest()->getParam('date');
                $dipartureCity = $this->getRequest()->getParam('departure', 0);
                if ($fetchFDDate != "") {
                    $FixedDDate = base64_decode($fetchFDDate);
                    $checkFixedDDate = explode("-", $FixedDDate);
                    $tripstartdateFD = $checkFixedDDate[2] . "/" . $checkFixedDDate[1] . "/" . $checkFixedDDate[0];
                    $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', $tripstartdateFD)));
                    if (!isset($getPackageDetail[0]['MasterRefId']) || $getPackageDetail[0]['MasterRefId'] == '0') {
                        $childpackarr = $objPackage->getChildPackageList($getPackageDetail[0]['TPSysId']);
                    } else {
                        $childpackarr = $objPackage->getChildPackageList($getPackageDetail[0]['MasterRefId']);
                    }
                    if (!empty($childpackarr)) {
                        $l = 0;
                        foreach ($childpackarr as $val) {
                            if ($val['MasterRefId'] == '0') {
                                $MasterId = $val['TPSysId'];
                            }
                            $inventoryData[$l] = $val['TPSysId'];
                            $l++;
                        }
                    }

                    $roomjsonArray = json_decode($roomjson, true);
                    $AdultCount = (int) array_sum((array_column($roomjsonArray, 'Adult')));
                    $ChildCount = (int) array_sum((array_column($roomjsonArray, 'Child')));
                    $InfentCount = (int) array_sum((array_column($roomjsonArray, 'Infant')));
                    $totalPaxCount = $AdultCount + $ChildCount + $InfentCount;
                    $checkavalability = $objPackage->checkFixedDeparturePackageInventory($inventoryData, $tripdate, $totalPaxCount);
                    $responseArray['IsFixedDeparture'] = 1;
                    $responseArray['IsFixedInventory'] = 0;
                    if (!empty($checkavalability)) {
                        $responseArray['IsFixedInventory'] = 1;
                    }

                    $FDCost = array();
                    if ($dipartureCity > 0) {
                        $FDCost = $objPackage->getFlightPriceForFixedDeparture($MasterId, $tripdate, $dipartureCity);
                    }
                    $FDAdultMarkup = $FDInfantMarkup = $FDAdultCost = $FDChildCost = 0;
                    $FlightExchangeRate = 1;
                    if (!empty($FDCost)) {
                        $CurrencyHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency');
                        $baseCurrencyId = $CurrencyHelperObj->getLoggedInAgencyBaseCurrencyId($intLoggedinUserAgencySysId); // agency's currency
                        if ($FDCost['CurrencySysId'] != $baseCurrencyId) {

                            $FlightExchangeRate = $objPackage->currencyExchangeRate($FDCost['CurrencySysId'], $baseCurrencyId);
                        }

                        $FDAdultCost = ((float) $FDCost['AdultCost']) * ($AdultCount + $ChildCount);
                        $FDChildCost = ((float) $FDCost['InfantCost']) * $InfentCount;
//                                                                    echo "<pre>";print_r($FDCost);die;

                        if ($MarketPlaceId == 1) {
                            if ($FDCost['MarkupType'] == 1) {
                                $FDAdultMarkup = $FDCost['B2CAdultMarkup'];
                                $FDInfantMarkup = $FDCost['B2CInfantMarkup'];
                            } else {
                                $FDAdultMarkup = ($FDAdultCost * $FDCost['B2CAdultMarkup']) / 100;
                                $FDInfantMarkup = ($FDChildCost * $FDCost['B2CInfantMarkup']) / 100;
                            }
                        } else {
                            if ($FDCost['MarkupType'] == 1) {
                                $FDAdultMarkup = $FDCost['B2BAdultMarkup'];
                                $FDInfantMarkup = $FDCost['B2BInfantMarkup'];
                            } else {
                                $FDAdultMarkup = ($FDAdultCost * $FDCost['B2BAdultMarkup']) / 100;
                                $FDInfantMarkup = ($FDChildCost * $FDCost['B2BInfantMarkup']) / 100;
                            }
                        }
                    }
                    $FDAdultMarkup = $FDAdultMarkup * ($AdultCount + $ChildCount);
                    $FDInfantMarkup = $FDInfantMarkup * $InfentCount;

                    $totalFDMarkup = $FDAdultMarkup + $FDInfantMarkup;

                    $arraySet[1]["Service"] = "Flight";
                    $arraySet[1]["Rate"] = $FDAdultCost + $FDChildCost;
                    $arraySet[1]["ConversionRate"] = (float) $FlightExchangeRate;
                    $arraySet[1]["TotalCost"] = $FDAdultCost + $FDChildCost + $totalFDMarkup;
                    $arraySet[1]["Markup"] = $totalFDMarkup;
                    $arraySet[1]["Currency"] = "Land Package";
                    $arraySet[1]["Discount"] = "Land Package";
                    $arraySet[1]["TaxPercentage"] = "Land Package";
                    $arraySet[1]["GSTAmount"] = "Land Package";
                    $arraySet[1]["TCSPercentage"] = "Land Package";
                    $arraySet[1]["TCSAmount"] = "Land Package";
                    $arraySet[1]["TotalPrice"] = "Land Package";
                }
            }

            $MarketPlaceId = 1;
            $strRoomInfoJson = $roomjson;
            $paxCount = array_sum((array_column(json_decode($roomjson, 1), 'Adult')));
            $packid = $getPackageDetail[0]['TPSysId'];
            $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getDynamicPrivateRates($finalResultSet['getPackageDetail'][0], $marketwiseratebyo);

//        $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($packid, $strRoomInfoJson, $arrPkg, $packMPRate[0], $packRate[0], $_REQUEST['ExchangeRate'], $type, $totalactcost, $totalmarkup);
            $this->view->currencyarr = $currencyarr = $objPackage->getCurrencyList();

            $FinalCost = isset($arrPkgCost['FinalCost']) ? $arrPkgCost['FinalCost'] : 0;
            $FinalMarkUp = isset($arrPkgCost['FinalMarkUp']) ? $arrPkgCost['FinalMarkUp'] : 0;

            $arraySet[0]["Service"] = "Land Package";
            $arraySet[0]["Rate"] = $FinalCost;
            $arraySet[0]["ConversionRate"] = 1;
            $arraySet[0]["TotalCost"] = (float) $FinalCost + (float) $FinalMarkUp;
            $arraySet[0]["Markup"] = $FinalMarkUp;
            $arraySet[0]["Currency"] = "Land Package";
            $arraySet[0]["Discount"] = 0;
            $arraySet[0]["TaxPercentage"] = "Land Package";
            $arraySet[0]["GSTAmount"] = "Land Package";
            $arraySet[0]["TCSPercentage"] = "Land Package";
            $arraySet[0]["TCSAmount"] = "Land Package";
            $arraySet[0]["TotalPrice"] = "Land Package";

            $this->view->pricebrakup = $arraySet;
            $this->view->queryTPSysId = $queryTPSysId;
            $this->view->departureCity = $departureCity;
//              echo "<pre>"; print_r($dipartureCity); die('dd');
        } else {
            $this->_redirect('/publicpackage/pagenotfound/');
        }
    }

    public function getB2bPackageRateAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();

        $marketPlaceId = 2; // 2 For B2B Rates.....
        //        echo '<pre>'; print_r(@$_REQUEST);
        $packid = @$_REQUEST['packid'];
        $travelers = @$_REQUEST['travelers'];
        $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', @$_REQUEST['tripstartdate'])));
        $packRate = $objPackage->getB2BPackRate($packid, $tripdate, $marketPlaceId);
        $packMPRate = $objPackage->getB2BPackMPRate($packid, $travelers, $tripdate, $marketPlaceId);
        if (count($packRate) == 0) {
            echo json_encode('notexists');
            exit;
        } else {
            $roomjson = array();
            $totaladult = 0;
            $totalchild = 0;
            $roomlp = $this->_request->getParam('roomlp') ? $this->_request->getParam('roomlp') : '';
            for ($k = 1; $k <= $roomlp; $k++) {
                $roomjson[$k]['Adult'] = $this->_request->getParam('adult_' . $k);
                $totaladult = $totaladult + $roomjson[$k]['Adult'];
                $roomjson[$k]['Child'] = $this->_request->getParam('child_' . $k);
                $totalchild = $totalchild + $roomjson[$k]['Child'];
                $roomjson[$k]['bedtype'] = $this->_request->getParam('extrabed_' . $k);
            }
            $travelers = $totaladult + $totalchild;
            $arrPkg['DiscountType'] = $_REQUEST['DiscountType'];
            $arrPkg['DiscountVal'] = $_REQUEST['DiscountVal'];
            $arrPkg['AdvBookingPercent'] = $_REQUEST['AdvBookingPercent'];
            $strRoomInfoJson = json_encode($roomjson);
            //                 Package Cost.....                
            $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($packid, $strRoomInfoJson, $arrPkg, $packMPRate[0], $packRate[0]);
            $finalPackageCostWithDiscount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getPackageCostwithDiscount($arrPkg, $arrPkgCost['FinalCost']);
            $finalPackageCostWithMarkupnTax = $finalPackageCostWithDiscount + $arrPkgCost['FinalMarkUp'] + $arrPkgCost['Tax'];
            $advanceBookingAmount = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getAdvanceBookingDetails($arrPkg['AdvBookingPercent'], $finalPackageCostWithMarkupnTax);

            $responseArray = array();
            $responseArray['AdvBookingPercent'] = $arrPkg['AdvBookingPercent'];
            $responseArray['bookingAmount'] = $advanceBookingAmount;
            $responseArray['TotalPrice'] = round($finalPackageCostWithMarkupnTax + $arrPkgCost['FinalDiscount']);
            $responseArray['GrandTotal'] = $finalPackageCostWithMarkupnTax;
            $responseArray['PricePerPax'] = round($responseArray['GrandTotal'] / $travelers);
            $responseArray['DiscountedPrice'] = $arrPkgCost['FinalDiscount'];
            $responseArray['FinalMarkUp'] = $arrPkgCost['FinalMarkUp'];
            $responseArray['FinalCost'] = $arrPkgCost['FinalCost'];
            $responseArray['Tax'] = $arrPkgCost['Tax'];

            //        echo "<pre>";
            //        print_r($arrPkg);
            //        print_r($arrPkgCost);echo "</br>finalPackageCostWithDiscount=";
            //        print_r($finalPackageCostWithDiscount);echo "</br>finalPackageCostWithMarkupnTax=";
            //        print_r($finalPackageCostWithMarkupnTax);echo "</br>advanceBookingAmount=";
            //        print_r($advanceBookingAmount);echo "</br>";
            //        echo "</pre>";
            echo json_encode($responseArray);
            exit;

            //        echo '<pre>';print_r($packRate);
            //        $CostPPSO = @$packRate[0]['CostPPSO'];
            //        $CostPPDO = (@$packRate[0]['CostPPDO'] * 2);
            //        $CostPPTO = (@$packRate[0]['CostPPTO'] * 3);
            //        $CostExtraBed = @$packRate[0]['CostExtraBed'];
            //        $CostChildWithoutBed = @$packRate[0]['CostChildWithoutBed'];
            //        if (@$packRate[0]['Tax'] == 'Excluded') {
            //            $ExcludedPercent = @$packRate[0]['ExcludedPercent'];
            //        }
            //        $adultcost = '0';
            //        $childcost = '0';
            //        for ($d = 1; $d <= @$_REQUEST['roomlp']; $d++) {
            //            $rmadlt = '';
            //            $rmchld = '';
            //            $rmadlt = @$_REQUEST['adult_' . @$d];
            //            $rmchld = @$_REQUEST['child_' . @$d];
            //            $extrabed = @$_REQUEST['extrabed_' . @$d];
            //            if ($rmadlt == '3') {
            //                $adultcost = $adultcost + $CostPPTO;
            //            } elseif ($rmadlt == '2') {
            //                $adultcost = $adultcost + $CostPPDO;
            //            } else {
            //                $adultcost = $adultcost + $CostPPSO;
            //            }
            //            if ($extrabed == 'extrabed') {
            //                $extrabedcost = @$extrabedcost + @$CostExtraBed;
            //            }
            //            if ($extrabed == 'withoutbed') {
            //                $withoutbedcost = @$withoutbedcost + @$CostChildWithoutBed;
            //            }
            //        }
            //        $totalcost = @$adultcost + @$extrabedcost + @$withoutbedcost;
            //        if (@$ExcludedPercent > 0) {
            //            $totalcost = @$totalcost + round((@$totalcost * @$ExcludedPercent) / 100);
            //        }
            //        echo $totalcost;
            //        exit;
        }
    }

    public function getAutosuggestTitleProgramAction() {
        if ($this->getRequest()->isXmlHttpRequest()) {
            $this->_helper->layout->disableLayout();
            $front = Zend_Controller_Front::getInstance();
            $front->setParam('noViewRenderer', true);
            $startCity = $this->getRequest()->getParam('startCity');
            $endCity = $this->getRequest()->getParam('endCity');
            $term = trim($this->getRequest()->getParam('term'));
            $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
            $objPackage = new Travel_Model_TblPackage();
            $TitleProgramArr = $objPackage->getAutosuggestTitleProgram($startCity, $endCity, $intLoggedinUserAgencySysId, $term);
            for ($i = 0; $i < count($TitleProgramArr); $i++) {
                $TitleProgramArr[$i]['Description'] = html_entity_decode(trim($TitleProgramArr[$i]['Description']));
            }
            echo json_encode($TitleProgramArr);
            exit;
        }
    }

    public function savesightseeingdynamicpackageAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);

        $getData = $this->getRequest()->getPost();

        //           echo '<pre>'; print_r($getData);
        if (!empty($getData)) {
            $objPackage = new Travel_Model_TblPackage();
            $currentDate = date('Y-m-d H:i:s');
            $delData = array(
                'UpdateDate' => $currentDate,
                'IsMarkForDelete' => '1',
                'IsActive' => '0'
            );
            $where = array(
                'InvnItemSysId = ? ' => @$getData['tpintid'],
                'Type = ? ' => 'Free'
            );

            $updateId = $objPackage->updateData('TB_TravelPlan_SightSeeing', $delData, $where);
            if (!empty($getData['sight'])) {
                foreach ($getData['sight'] as $sightseeingArr) {
                    $SiteArr = explode("_", $sightseeingArr); // new array contains sight id, sight name, sights city name
                    $data = array(
                        'InvnItemSysId' => !empty($getData['tpintid']) ? $getData['tpintid'] : 0,
                        'XrefInvnItemSysId' => 0, //@$_REQUEST['XrefInvnItemSysId'],
                        'SeqId' => !empty($getData['seq']) ? $getData['seq'] : 0,
                        'CityId' => !empty($SiteArr[2]) ? $SiteArr[2] : 0,
                        'AgencySysId' => !empty($getData['seq']) ? $getData['seq'] : 0,
                        'SSSysId' => !empty($SiteArr[0]) ? $SiteArr[0] : 0,
                        'SupplierSysId' => 0,
                        'Title' => !empty($SiteArr[1]) ? $SiteArr[1] : 0,
                        'Type' => 'Free',
                        'IsOptionalSightSeeing' => 0,
                        'Cost' => 0,
                        'KidsCost' => 0,
                        'TotalCost' => 0,
                        'FromDate' => @$currentDate,
                        'ToDate' => @$currentDate,
                        'BookingType' => '0',
                        'Qty' => '0',
                        'IfAnyOffer' => '0',
                        'OfferMsg' => '0',
                        'OfferImage' => '0',
                        'IxFixedDateInven' => '0',
                        'CreateDate' => @$currentDate,
                        'UpdateDate' => @$currentDate,
                        'IsMarkForDelete' => '0',
                        'IsActive' => '1'
                    );
                    $updateId = $objPackage->insertData('TB_TravelPlan_SightSeeing', $data);
                }
            }
            echo 1; //$updateId;
            exit;
        }
    }

    public function testAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objAgency = new Travel_Model_TblAgency();
        $agencyTncList = $objAgency->getAgencyTnCDetails($intLoggedinUserAgencySysId);
        $objPackage = new Travel_Model_TblPackage();

        //        $packageTncList[0] = $packageTncList;
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost();
            $arrayforTnCList = array();
            $packageTncList = $objPackage->getPackageTncList($post['idforTnC']);
            //           
            //            echo"<pre>";print_r($agencyTncList);
            //            echo"<pre>";
            //            print_r($packageTncList);
            //             echo "<pre>".'==='.$post['TnC'].'===='.$packageTncList[0]['TermsAndConditionType'];
            if ($post['TnC'] == 'International') {
                if (!empty($packageTncList[0]['TermsAndConditionType']) && $packageTncList[0]['TermsAndConditionType'] == 'International' && !empty($packageTncList[0]['Inclusions']) && !empty($packageTncList[0]['Exclusions']) && !empty($packageTncList[0]['CancellationPolicy']) && !empty($packageTncList[0]['TermsAndConditions'])) {
                    $arrayforTnCList['TnCType'] = 'International';
                    $arrayforTnCList['InclusionsInternational'] = $packageTncList[0]['Inclusions'];
                    $arrayforTnCList['ExclusionsInternational'] = $packageTncList[0]['Exclusions'];
                    $arrayforTnCList['TermsAndConditionsInternational'] = $packageTncList[0]['TermsAndConditions'];
                    $arrayforTnCList['CancellationPolicyInternational'] = $packageTncList[0]['CancellationPolicy'];
                    $arrayforTnCList['IsInclusionsInternational'] = $packageTncList[0]['IsInclusions'];
                    $arrayforTnCList['IsExclusionsInternational'] = $packageTncList[0]['IsExclusions'];
                    $arrayforTnCList['IsTermsAndConditionsInternational'] = $packageTncList[0]['IsTermsAndConditions'];
                    $arrayforTnCList['IsCancellationPolicyInternational'] = $packageTncList[0]['IsCancellationPolicy'];
                } else {
                    $arrayforTnCList['TnCType'] = 'International';
                    $arrayforTnCList['InclusionsInternational'] = $agencyTncList['InclusionsInternational'];
                    $arrayforTnCList['ExclusionsInternational'] = $agencyTncList['ExclusionInternational'];
                    $arrayforTnCList['TermsAndConditionsInternational'] = $agencyTncList['TermsAndConditionsInternational'];
                    $arrayforTnCList['CancellationPolicyInternational'] = $agencyTncList['CancellationPolicyInternational'];

                    $arrayforTnCList['IsInclusionsInternational'] = $agencyTncList['IsInclusionsInternational'];
                    $arrayforTnCList['IsExclusionsInternational'] = $agencyTncList['IsExclusionInternational'];
                    $arrayforTnCList['IsTermsAndConditionsInternational'] = $agencyTncList['IsTermsAndConditionsInternational'];
                    $arrayforTnCList['IsCancellationPolicyInternational'] = $agencyTncList['IsCancellationPolicyInternational'];
                }
            }
            if ($post['TnC'] == 'Domestic') {
                if (!empty($packageTncList[0]['TermsAndConditionType']) && $packageTncList[0]['TermsAndConditionType'] == 'Domestic' && !empty($packageTncList[0]['Inclusions']) && !empty($packageTncList[0]['Exclusions']) && !empty($packageTncList[0]['TermsAndConditions']) && !empty($packageTncList[0]['CancellationPolicy'])) {
                    $arrayforTnCList['TnCType'] = 'Domestic';
                    $arrayforTnCList['Inclusions'] = $packageTncList[0]['Inclusions'];
                    $arrayforTnCList['Exclusions'] = $packageTncList[0]['Exclusions'];
                    $arrayforTnCList['TermsAndConditionsDomestic'] = $packageTncList[0]['TermsAndConditions'];
                    $arrayforTnCList['CancellationPolicyDomestic'] = $packageTncList[0]['CancellationPolicy'];

                    $arrayforTnCList['IsInclusions'] = $packageTncList[0]['IsInclusions'];
                    $arrayforTnCList['IsExclusions'] = $packageTncList[0]['IsExclusions'];
                    $arrayforTnCList['IsTermsAndConditionsDomestic'] = $packageTncList[0]['IsTermsAndConditions'];
                    $arrayforTnCList['IsCancellationPolicyDomestic'] = $packageTncList[0]['IsCancellationPolicy'];
                } else {
                    $arrayforTnCList['TnCType'] = 'Domestic';
                    $arrayforTnCList['Inclusions'] = $agencyTncList['Inclusions'];
                    $arrayforTnCList['Exclusions'] = $agencyTncList['Exclusions'];
                    $arrayforTnCList['TermsAndConditionsDomestic'] = $agencyTncList['TermsAndConditions'];
                    $arrayforTnCList['CancellationPolicyDomestic'] = $agencyTncList['CancellationPolicy'];

                    $arrayforTnCList['IsInclusions'] = $agencyTncList['IsInclusions'];
                    $arrayforTnCList['IsExclusions'] = $agencyTncList['IsExclusions'];
                    $arrayforTnCList['IsTermsAndConditionsDomestic'] = $agencyTncList['IsTermsAndConditions'];
                    $arrayforTnCList['IsCancellationPolicyDomestic'] = $agencyTncList['IsCancellationPolicy'];
                }
            }
            echo json_encode($arrayforTnCList);
            exit;
        }
    }

    public function getAgentSightseenReadymadeAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
    }

    public function updatePackageSightseenReadymadeAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $currentDate = date('Y-m-d H:i:s');
        //        echo '<pre>';print_r($_REQUEST['packageId']); die;
        $flexiPackageList = $objPackage->getFlexiPackageList($_REQUEST['packageId']);
        if (@$flexiPackageList['MasterRefId'] == '0') {
            $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['TPSysId']);
        } else {
            $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['MasterRefId']);
        }
        //   echo "<pre>";print_r($childpackarr);exit;
        for ($i = 0; $i < count(@$childpackarr); $i++) {
            $itenArray = $objPackage->getPackItenId($childpackarr[$i]['TPSysId'], 2);
            if (@$_REQUEST['type'] == 'delete') {
                $data = array(
                    'UpdateDate' => @$currentDate,
                    'IsMarkForDelete' => '1',
                    'IsActive' => '0'
                );
                $where = array(
                    'SSSysId = ? ' => @$_REQUEST['sssysId'],
                    'InvnItemSysId = ? ' => @$itenArray[0]['TPIntSysId'],
                    'IsOptionalSightSeeing = ? ' => 1
                );
                //            print_r($where);die;
                $updateId = $objPackage->updateData('TB_TravelPlan_SightSeeing', $data, $where);
            } else {
                $IsOptionalSS = '1';
                //             $getroomdetails = $objPackage->getroominforeadymade($_REQUEST['packageId']);
                $roominfoarray = json_decode($flexiPackageList['RoomInfoJson'], 1);
                $adultcount = 0;
                $childcount = 0;
                if (!empty($roominfoarray)) {
                    for ($k = 1; $k <= count($roominfoarray); $k++) {
                        $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
                        $childcount = $childcount + $roominfoarray[$k]['Child'];
                    }
                }

                $totalactcost = $adultcount * $_REQUEST['CostAdult'] + $childcount * $_REQUEST['CostKids'];
                $toCurrency = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->getLoggedInAgencyBaseCurrencyId();
                $totalBaseCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency')->convertRatetoBaseCurrency($totalactcost, $_REQUEST['currency'], $toCurrency);

                $data = array(
                    'InvnItemSysId' => @$itenArray[0]['TPIntSysId'],
                    'XrefInvnItemSysId' => @$_REQUEST['XrefInvnItemSysId'],
                    'SeqId' => @$_REQUEST['SeqId'],
                    'CityId' => @$_REQUEST['CityId'],
                    'AgencySysId' => @$_REQUEST['AgencySysId'],
                    'SSSysId' => @$_REQUEST['SSSysId'],
                    'SupplierSysId' => @$_REQUEST['suppid'],
                    'Title' => @$_REQUEST['Title'],
                    'Type' => 'Optional',
                    'IsOptionalSightSeeing' => $IsOptionalSS,
                    'Cost' => @$_REQUEST['CostAdult'],
                    'KidsCost' => @$_REQUEST['CostKids'],
                    'TotalCost' => $totalactcost,
                    'TotalBaseCost' => $totalBaseCost,
                    'FromDate' => @$currentDate,
                    'ToDate' => @$currentDate,
                    'BookingType' => '0',
                    'Qty' => '0',
                    'IfAnyOffer' => '0',
                    'OfferMsg' => '0',
                    'OfferImage' => '0',
                    'IxFixedDateInven' => '0',
                    'CreateDate' => @$currentDate,
                    'UpdateDate' => @$currentDate,
                    'IsMarkForDelete' => '0',
                    'IsActive' => '1',
                    'CurrencyType' => !empty($_REQUEST['currency']) ? $_REQUEST['currency'] : 1
                );
                $updateId[] = $objPackage->insertData('TB_TravelPlan_SightSeeing', $data);
            }
        }
        echo @$updateId[0];
        exit;
    }

    public function calculateOptionalSightseeingGstAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        /* If ajax request */
        if ($this->_request->isXmlHttpRequest()) {
            $GSTApplicableOn = $this->getRequest()->getParam('GSTApplicableOn');
            $packageCost = $this->getRequest()->getParam('packageCost');
            $AgencyMarkUp = $this->getRequest()->getParam('AgencyMarkUp');
            $intProductType = 9;
            $intProductGeoType = 1; // 1 For Domestic, 2 For International

            $arrInputData = array(
                "GSTApplicableOn" => $GSTApplicableOn,
                "intProductType" => $intProductType,
                "intProductGeoType" => $intProductGeoType,
                "Cost" => $packageCost,
                "AgencyMarkUp" => $AgencyMarkUp,
                "AgencyExtraMarkUp" => 0,
                "AgencyDiscount" => 0
            );
            $arrGSTCalculations = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->calculateGST($arrInputData);
            echo json_encode($arrGSTCalculations);
            exit;
        }
    }

    public function addssdetailsreadymadeAction() {
        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', false);
        $objPackage = new Travel_Model_TblPackage();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $agencySysID = $sessionLogin_user->intLoggedinUserAgencySysId;
        $agentID = $sessionLogin_user->intLoggedinUserId;
        $getData = $this->getRequest()->getPost();
        //      echo '<pre>';print_r($getData); die;
        $actfromdate = explode("/", $getData['from_date']);
        $acttodate = explode("/", $getData['to_date']);
        $fromdate = $actfromdate[2] . '-' . $actfromdate[1] . '-' . $actfromdate[0];
        $todate = $acttodate[2] . '-' . $acttodate[1] . '-' . $acttodate[0];
        $create_date = date('Y-m-d');
        $tpsysID = $getData['packageId'];
        $sightseeing_id = $getData['sightseeing_id'];
        $objSightseeing = new Travel_Model_TblSightseeing();
        if (empty($sightseeing_id)) {
            $insert = array(
                'IsAgentSpec' => 1,
                'AgentSysId' => $agentID,
                'ICSourceSysId' => $agencySysID,
                'StartPlaceSysId' => 0,
                'EndPlaceSysId' => 0,
                'Title' => $getData['sightseeing_name'],
                'synonyms' => $getData['sightseeing_name'],
                'WriteUp' => '',
                'DifficultyLevel' => 0,
                'AliasAndMeta' => 0,
                'SSGrType' => 0,
                'SSType' => 0,
                'SightSeeingGrTypeName' => 0,
                'SightSeeingTypeName' => 0,
                'SSIncMask' => 0,
                'DurationInMin' => 0,
                'DurationStr' => 0,
                'MinPax' => 0,
                'MaxPax' => 0,
                'PeakMothMask' => 0,
                'LeanMonthMask' => 0,
                'SilentMonthMask' => 0,
                'IsTransferInc' => 0,
                'IsKidAllowed' => 0,
                'IsTeenAllowed' => 0,
                'IsAdultAllowed' => 0,
                'IsPetAllowed' => 0,
                'IsTrxAllowed' => 0,
                'IsPickAllowed' => 0,
                'StartAgeYr' => 0,
                'EndAgeYr' => 0,
                'Rating' => 0,
                'Popularity' => 0,
                'ThingsToCarry' => 0,
                'AwardRecognizations' => 0,
                'BookingType' => 0,
                'DifficultyType' => 0,
                'DaysWeekMask' => 0,
                'StartLocalTime' => 0,
                'EndLocalTime' => 0,
                'TimeSlots' => 0,
                'IsDayLightApp' => 0,
                'Address' => 0,
                'latitude' => 0,
                'longitude' => 0,
                'PinCode' => 0,
                'CitySysId' => $getData['CitySysIds'],
                'ZoneSysId' => 0,
                'ZoneType' => 0,
                'StateSysId' => 0,
                'ContSysId' => $getData['ContId'],
                'PickUpLocation' => '',
                'YoutubeURL' => '',
                'PrimaryContact' => '',
                'SecondaryContact' => '',
                'OtherContacts' => '',
                'UpdateDate' => $create_date,
                'ApproveDate' => $create_date,
                'ApproveBy' => '',
                'CreateDate' => $create_date,
                'IsApproved' => 0,
                'IsActive' => 1,
                'IsMarkForDel' => 0,
                'IsUnique' => 0,
                'ThumnailImg' => '',
                'Icon' => '',
                'DetailImg' => '',
            );
            //            echo "<pre>";print_r($insert);die('d');

            $sightseeing_id = $objSightseeing->addSightseeingDetails($insert);
        }
        //die;
        $getroomdetails = $objPackage->getroominforeadymade($tpsysID);
        $roominfoarray = json_decode(@$getroomdetails[0]['RoomInfoJson'], 1);

        $adultcount = 0;
        $childcount = 0;
        for ($k = 1; $k <= count($roominfoarray); $k++) {
            $adultcount = $adultcount + $roominfoarray[$k]['Adult'];
            $childcount = $childcount + $roominfoarray[$k]['Child'];
        }
        $adultcost = $getData['adult_cost_natives'];
        $kidscost = $getData['kids_cost_natives'];
        $totalactcost = ($adultcount * $adultcost) + ($childcount * $kidscost);

        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objAgency = new Travel_Model_TblAgency();
        $agencyDetails = $objAgency->getAgencyUserList($intLoggedinUserAgencySysId);
        if ($this->intLoggedinUserTrxCurrency != 0) {
            $TrxCurrency = $this->intLoggedinUserTrxCurrency;
        } else {
            $TrxCurrency = $agencyDetails['TrxCurrency'];
        }

        if ($getData['currency_type'] != $TrxCurrency) {

            $currencyDetails = $objSightseeing->getCurrencyConversionPrice($getData['currency_type'], $TrxCurrency);
            $currencyPaddingDetails = $objSightseeing->getCurrencyConversionPaddingPrice($TrxCurrency);
            $adult_cost_natives = $currencyDetails['Rate'] * $getData['adult_cost_natives'];
            $kids_cost_natives = $currencyDetails['Rate'] * $getData['kids_cost_natives'];
            //For Natives Adult
            //                $TotalConversionCost = ($currencyDetails['Rate'] * $ratesArray['TotalCostNativeAdult']);
            //                $TotalConversionCost_Natives_Kids = ($currencyDetails['Rate'] * $ratesArray['TotalCostNativeChild']);
        } else {
            $adult_cost_natives = $getData['adult_cost_natives'];
            $kids_cost_natives = $getData['kids_cost_natives'];
        }

        $data = array(
            "InventoryType" => 2,
            "XRef" => $sightseeing_id,
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "FromDate" => $fromdate,
            "ToDate" => $todate,
            "BookingType" => 1,
            "inclusions" => $getData['inclusions_id'][0],
            "IsTransferInc" => $getData['transfers'],
            "IsPickDropInc" => 0,
            "PurchasedQty" => 0,
            "PublishQty" => 0,
            "BlockQty" => 0,
            "SoldQty" => 0,
            "ReturnQty" => 0,
            "NetInHandQty" => 0,
            "CostCurrency" => $getData['currency_type'],
            "TotalCostNativeAdult" => $getData['adult_cost_natives'],
            "TotalCostNativeChild" => $getData['kids_cost_natives'],
            "TotalCostForeignerChild" => $getData['adult_cost_foreigners'],
            "TotalCostForeignerAdult" => $getData['kids_cost_foreigners'],
            "SaleAmtNativeChild" => 0,
            "SaleAmtNativeAdult" => 0,
            "SaleAmtForeignerChild" => 0,
            "SaleAmtForeignerAdult" => 0,
            "TrxCurrency" => $TrxCurrency,
            "Brief" => '',
            "IfAnyOffer" => '',
            "OfferMsg" => '',
            "OfferImage" => '',
            "TCInfo" => '',
            "TCDocPath" => '',
            "IxFixedDateInven" => 0,
            "CreatorSysId" => $agentID,
            "ApproveDate" => $create_date,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsSaleStart" => 1,
            "IsActive" => 1,
            "IsMarkForDelete" => 0,
            "IsApproved" => 1
        );

        $updateId = $objPackage->insertData('TB_MP_Inventory_SightSeeing', $data);
        $tpintId = $getData['tpitnID'];
        $actdata = array(
            "InvnItemSysId" => $tpintId,
            "SeqId" => 2,
            "XrefInvnItemSysId" => $updateId,
            "SupplierSysId" => $getData['supplier_type_id'],
            "SSSysId" => $sightseeing_id,
            "AgencySysId" => $agencySysID,
            "SupplierSysId" => $getData['supplier_type_id'],
            "Title" => $getData['sightseeing_name'],
            "Type" => 'Optional',
            "CityId" => $getData['CitySysIds'],
            "Cost" => $adult_cost_natives,
            "KidsCost" => $kids_cost_natives,
            "BookingType" => 0,
            "Qty" => 0,
            "IxFixedDateInven" => 0,
            "IfAnyOffer" => 0,
            "OfferMsg" => 0,
            "OfferImage" => 0,
            "TotalCost" => $totalactcost,
            "FromDate" => $create_date,
            "ToDate" => $create_date,
            "CreateDate" => $create_date,
            "UpdateDate" => $create_date,
            "IsMarkForDelete" => 0,
            "IsOptionalSightSeeing" => 1,
            "IsActive" => 1,
            "CurrencyType" => $getData['currency_type'],
        );
        if ($getData['Pagetype'] == 'agent') {
            $insertdata = $objPackage->insertData('TB_TravelPlan_SightSeeing', $actdata);
        } else {
            $insertdata = $objPackage->insertData('TB_Agency_Customer_TravelPlan_SightSeeing', $actdata);
        }
        // echo $insertdata;
        $this->view->lastID = $insertdata;

        $this->view->sightseeing_id = $getData['sightseeing_id'];
        $this->view->acttile = $getData['sightseeing_name'];
        $this->view->suppsysID = $getData['supplier_type_id'];
        $this->view->suppsysname = $getData['supplier_type'];
        $this->view->adultcost = $getData['adult_cost_natives'];
        $this->view->childcost = $getData['kids_cost_natives'];
        $this->view->totalcost = $totalactcost;
        $this->view->currency_type = $getData['currency_type'];
    }

    public function addRowwiseCostsheetAction() {
        $getRequestVal1 = ['des' => $_POST];
        $getRequestVal = $getRequestVal1['des'];
        //        echo "<pre>";print_r($getRequestVal);exit;
        $editMode = $getRequestVal['mode'];

        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $currentDate = date('Y-m-d H:i:s');
        $getB2C = (isset($getRequestVal['b2c_pax_rate'])) ? $getRequestVal['b2c_pax_rate'] : '';
        $getB2B = (isset($getRequestVal['b2b_pax_rate'])) ? $getRequestVal['b2b_pax_rate'] : '';
        $marketwiseArr = array();
        if ($getB2C != '') {
            $MarketPlaceId = 1;
            $MarketPlace = "MY B2C";
            $markup = $getRequestVal['b2c_pax_rate'];
            $marketwiseArr[1]['MarketPlaceId'] = 1;
            $marketwiseArr[1]['MarketPlace'] = "MY B2C";
            $marketwiseArr[1]['markup'] = $getRequestVal['b2c_pax_rate'];
        }
        if ($getB2B != '') {
            $MarketPlaceId = 2;
            $MarketPlace = "MY B2B";
            $markup = $getRequestVal['b2b_pax_rate'];
            $marketwiseArr[2]['MarketPlaceId'] = 1;
            $marketwiseArr[2]['MarketPlace'] = "MY B2B";
            $marketwiseArr[2]['markup'] = $getRequestVal['b2b_pax_rate'];
        }

        $MarkType = trim($getRequestVal['markuptype_pax']);
        //$MarkType = "FixedAmount"; // need fixed
        $fromSDate = $getRequestVal['season_from_date'];
        $inventoryqty = (int) $getRequestVal['inventoryqty']; // need Fixed
        $toSDate = $getRequestVal['season_to_date'];
        $packageId = $getRequestVal['reseconomy_id'];
        $packCatagory = isset($getRequestVal['packType']) ? trim($getRequestVal['packType']) : 0;
        $fromDate = $toDate = date("Y-m-d", strtotime(str_replace('/', '-', $fromSDate)));
        $fromDateData = $toDateData = $objPackage->checkDuplicateMarketWiseRate($packageId, $fromDate, $MarketPlaceId, $packCatagory);
        // echo "<pre>";print_r($fromDateData);exit;
        $isFixedDep = $getRequestVal['IsFixedD'];
        $ratecurrencyId = $getRequestVal['currency_id'];
        $ratecurrency = ($getRequestVal['currency_name']) ? $getRequestVal['currency_name'] : '';
        $fromcurrency = $ratecurrencyId;
        $CurrencyHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency');
        //$baseCurrencySymbol = $CurrencyHelperObj->getLoggedInAgencyBaseCurrency();
        $baseCurrencyId = $CurrencyHelperObj->getLoggedInAgencyBaseCurrencyId();
        $tocurrency = $baseCurrencyId;
        if ($fromcurrency == $tocurrency) {
            $exchangerate = 1;
        } else {
            $exchangerate = $objPackage->currencyExchangeRate($fromcurrency, $tocurrency);
        }
        //        $exchangerate = 1;
        if (empty($isFixedDep)) {
            $toDate = date("Y-m-d", strtotime(str_replace('/', '-', $toSDate)));
            $toDateData = $objPackage->checkDuplicateMarketWiseRate($packageId, $toDate, $MarketPlaceId, $packCatagory);
        }

        if ($editMode != 'edit') {
            if (!empty($fromDateData) && !empty($toDateData)) {
                echo 2; //"From Date and To Date are existing between period of $frmDate and  $toDate";  
                exit;
            }

            if (!empty($fromDateData)) {
                echo 2; //"From Date is existing between period of $frmDate and  $toDate";
                exit;
            }

            if (!empty($toDateData)) {
                echo 2; //"To Date is existing between period of $frmDate and  $toDate";
                exit;
            }
        }



        /* Added By Mangal For Add Itenary FixedInventory TB_TravelPlan_Itenary_FixedInventory Data 17-11-2018 Start */
        //        if (!empty($isFixedDep)) {
        //            if (empty($dupliucateInventory)) {
        //                $saveFixedInventoryArray = [
        //                    'AgencySysId' => $intLoggedinUserAgencySysId,
        //                    'RefTPSysID' => $MasterId,
        //                    'FromDate' => $fromDate,
        //                    'FixedInventory' => (int) $getRequestVal['inventoryqty'],
        //                    'CurrentInventory' => (int) $getRequestVal['inventoryqty'],
        //                    'HoldInventory' => 0,
        //                    'SoldInventory' => 0,
        //                    'UpdateDate' => date('Y-m-d H:i:s'),
        //                    'CreateDate' => date('Y-m-d H:i:s'),
        //                    'IsActive' => 1,
        //                    'IsMarkForDel' => 0,
        //                ];
        ////             echo "<pre>";print_r($saveFixedInventoryArray);die('mangal');
        //                $FixedInvnSysId = $objPackage->insertData('TB_TravelPlan_Itenary_FixedInventory', $saveFixedInventoryArray);
        //            }
        //        }

        if (!empty($isFixedDep)) {
            $myflexiPackageList = $objPackage->getFlexiPackageList($packageId);

            if ($myflexiPackageList['MasterRefId'] == '0') {
                $childpackarr = $objPackage->getChildPackageList($myflexiPackageList['TPSysId']);
            } else {
                $childpackarr = $objPackage->getChildPackageList($myflexiPackageList['MasterRefId']);
            }
            //            echo "<pre>";print_r($childpackarr);die;
            $MasterId = 0;
            if (!empty($childpackarr)) {
                foreach ($childpackarr as $val) {
                    if ($val['MasterRefId'] == '0') {
                        $MasterId = $val['TPSysId'];
                    }
                }
            }
            $FromDestinationFixedInventoryData = $objPackage->getFromDestinationFixedInventoryData($MasterId);
            if (!empty($FromDestinationFixedInventoryData)) {
                foreach ($FromDestinationFixedInventoryData as $destinationValArray) {
                    $destinationId = $destinationValArray['id'];
                    $dupliucateInventory = $objPackage->checkFixedInventoryInPkg($fromDate, $MasterId, $destinationId);
                    if (empty($dupliucateInventory)) {
                        $saveFixedInventoryArray = array(
                            "FromDate" => $fromDate,
                            "FixedInventory" => (int) $getRequestVal['inventoryqty'],
                            "HoldInventory" => 0,
                            "SoldInventory" => 0,
                            "CurrentInventory" => (int) $getRequestVal['inventoryqty'],
                            "AdultCost" => 0,
                            "InfantCost" => 0,
                            "MarkupType" => 1,
                            "B2CAdultMarkup" => 0,
                            "B2BAdultMarkup" => 0,
                            "B2CInfantMarkup" => 0,
                            "B2BInfantMarkup" => 0,
                            "CreateDate" => date('Y-m-d H:i:s'),
                            "UpdateDate" => date('Y-m-d H:i:s'),
                            "IsMarkForDel" => 0,
                            "IsActive" => 1,
                            "CurrencySysId" => isset($getRequestVal['currency_id']) ? (int) $getRequestVal['currency_id'] : 1,
                            "FixedInvnSysId" => $destinationId,
                            "TPSysId" => $MasterId
                        );
                        $FixedInvnSysId = $objPackage->insertData('TB_TravelPlan_Itinerary_FixedInventory', $saveFixedInventoryArray);
                    } else {
                        $updateDataInvF = ['IsMarkForDel' => 0];
                        $whereInvF = array('TPSysID = ? ' => $MasterId, 'FromDate = ? ' => $fromDate);
                        $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory', $updateDataInvF, $whereInvF);
                    }
                }
            }
        }

        /* Added By Mangal For Add Itenary FixedInventory TB_TravelPlan_Itenary_FixedInventory Data 17-11-2018 End */

        $MarketwiseRateData = array();
        $i = 0;

        $paxValArray = array();

        $k = 0;
        foreach ($getRequestVal['CostPerPax'] as $checkPerPaxVal) {
            $keyVal = $getRequestVal['totalPax_No'][$k];
            $CostInfent = $getRequestVal['CostPerPaxInfent'][$k];
            $CostQuad = $getRequestVal['CostPerQuad'][$k];
            $CostQuint = $getRequestVal['CostPerQuint'][$k];
            $CostHexa = $getRequestVal['CostPerHexa'][$k];
            $CCEBTwoToFour = $getRequestVal['CCEBTwoToFour'][$k];
            $CCWOEBTwoToFour = $getRequestVal['CCWOEBTwoToFour'][$k];
            $CostPPSO = $getRequestVal['SingleOccSuppCost'][$k];
            $AdultCostExtraBed = $getRequestVal['CostPerPaxAdultExtraBed'][$k];
            $CostExtraBed = $getRequestVal['CostPerPaxChildExtraBed'][$k];
            $CostChildWithoutBed = $getRequestVal['CostPerPaxChildWithExtraBed'][$k];
            if ($checkPerPaxVal > 0) {
                $paxValArray[$keyVal]['CostPerPax'] = $checkPerPaxVal;
                $paxValArray[$keyVal]['CostInfent'] = $CostInfent;
                $paxValArray[$keyVal]['CostQuad'] = $CostQuad;
                $paxValArray[$keyVal]['CostQuint'] = $CostQuint;
                $paxValArray[$keyVal]['CostHexa'] = $CostHexa;
                $paxValArray[$keyVal]['CCEBTwoToFour'] = $CCEBTwoToFour;
                $paxValArray[$keyVal]['CCWOEBTwoToFour'] = $CCWOEBTwoToFour;
                $paxValArray[$keyVal]['CostPPSO'] = $CostPPSO;
                $paxValArray[$keyVal]['AdultCostExtraBed'] = $AdultCostExtraBed;
                $paxValArray[$keyVal]['CostExtraBed'] = $CostExtraBed;
                $paxValArray[$keyVal]['CostChildWithoutBed'] = $CostChildWithoutBed;
            }
            $k++;
        }
        /* Code for edit more than 12 pax start */
        if ($editMode == 'edit') {

            foreach ($getRequestVal['RatewiseTPRateSheetSysId'] as $checkPerPaxVal) {
                if ($checkPerPaxVal != '') {
                    $TPRateSheetSysId = $checkPerPaxVal;
                    $whare = array("TPRateSheetSysId=?" => $TPRateSheetSysId);
                    $updateData = array(
                        "UpdateDate" => date("Y-m-d"),
                        //  "IsAprooved" => 0,
                        "IsActive" => 0,
                        "IsMarkForDel" => 1
                    );

                    $objPackage->updateData('TB_TravelPlan_Marketwise_Rate', $updateData, $whare);
                }
            }
            foreach ($getRequestVal['RateTPRateSheetSysId'] as $checkPerPaxVal1) {
                if ($checkPerPaxVal1 != '') {
                    $TPRateSheetSysId = $checkPerPaxVal1;
                    $whare = array("TPRateSheetSysId=?" => $TPRateSheetSysId);
                    $updateData = array(
                        "UpdateDate" => date("Y-m-d"),
                        "IsAprooved" => 0,
                        "IsActive" => 0,
                        "IsMarkForDel" => 1
                    );

                    $objPackage->updateData('TB_TravelPlan_Rate', $updateData, $whare);
                }
            }
        }


        /* Code for edit more than 12 pax end */


        //echo "<pre>";print_r($paxValArray);exit;
        foreach ($marketwiseArr as $keyMarketwise => $valMarketWise) {
            foreach ($paxValArray as $keypax => $valPax) {


                $data = array(
                    'TPSysId' => (int) $packageId,
                    'MasterRefId' => '0',
                    'MarketPlaceId' => $keyMarketwise,
                    'CurrencyType' => $ratecurrencyId,
                    'CostSO' => !empty($valPax['CostPPSO']) ? $valPax['CostPPSO'] : null,
                    'AdultCostExtraBed' => !empty($valPax['AdultCostExtraBed']) ? $valPax['AdultCostExtraBed'] : null,
                    'CostExtraBed' => !empty($valPax['CostExtraBed']) ? $valPax['CostExtraBed'] : null,
                    'CostWithoutBed' => !empty($valPax['CostChildWithoutBed']) ? $valPax['CostChildWithoutBed'] : null,
                    'CostDO' => !empty($valPax['CostPerPax']) ? $valPax['CostPerPax'] : null,
                    'CostQuad' => !empty($valPax['CostQuad']) ? $valPax['CostQuad'] : null,
                    'CostQuint' => !empty($valPax['CostQuint']) ? $valPax['CostQuint'] : null,
                    'CostHexa' => !empty($valPax['CostHexa']) ? $valPax['CostHexa'] : null,
                    'CostChildEBTwoToFour' => !empty($valPax['CCEBTwoToFour']) ? $valPax['CCEBTwoToFour'] : null,
                    'CostChildWOEBTwoToFour' => !empty($valPax['CCWOEBTwoToFour']) ? $valPax['CCWOEBTwoToFour'] : null,
                    'CostInfent' => !empty($valPax['CostInfent']) ? $valPax['CostInfent'] : null,
                    'FixedDepartureInventory' => (int) $inventoryqty,
                    'StartDate' => $fromDate,
                    'ValidTill' => $toDate,
                    'IsAprooved' => '1',
                    'CreateDate' => $currentDate,
                    'UpdateDate' => $currentDate,
                    'IsMarkForDel' => '0',
                    'IsActive' => '1',
                    'Pax' => (int) $keypax,
                );

                if ($MarkType == "FixedAmount") {
                    if ((float) $valPax['AdultCostExtraBed'] > 0) {
                        $AdultCostExtraBed = (((float) $valPax['AdultCostExtraBed'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $AdultCostExtraBed = 0;
                    }
                    if ((float) $valPax['CostPPSO'] > 0) {
                        $CostPPSO = (((float) $valPax['CostPPSO'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CostPPSO = 0;
                    }
                    if ((float) $valPax['CostExtraBed'] > 0) {
                        $CostExtraBed = (((float) $valPax['CostExtraBed'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CostExtraBed = 0;
                    }
                    if ((float) $valPax['CostChildWithoutBed'] > 0) {
                        $CostChildWithoutBed = (((float) $valPax['CostChildWithoutBed'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CostChildWithoutBed = 0;
                    }
                    if ((float) $valPax['CostPerPax'] > 0) {
                        $CostPerPax = (((float) $valPax['CostPerPax'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CostPerPax = 0;
                    }
                    if ((float) $valPax['CostQuad'] > 0) {
                        $CostQuad = (((float) $valPax['CostQuad'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CostQuad = null;
                    }
                    if ((float) $valPax['CostQuint'] > 0) {
                        $CostQuint = (((float) $valPax['CostQuint'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CostQuint = null;
                    }
                    if ((float) $valPax['CostHexa'] > 0) {
                        $CostHexa = (((float) $valPax['CostHexa'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CostHexa = null;
                    }
                    if ((float) $valPax['CCEBTwoToFour'] > 0) {
                        $CCEBTwoToFour = (((float) $valPax['CCEBTwoToFour'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CCEBTwoToFour = 0;
                    }
                    if ((float) $valPax['CCWOEBTwoToFour'] > 0) {
                        $CCWOEBTwoToFour = (((float) $valPax['CCWOEBTwoToFour'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CCWOEBTwoToFour = 0;
                    }
                    if ((float) $valPax['CostInfent'] > 0) {
                        $CostInfent = (((float) $valPax['CostInfent'] * (float) $exchangerate) + (float) $valMarketWise['markup']);
                    } else {
                        $CostInfent = 0;
                    }
                } else {
                    $PercentageVal = 1 + ((float) $valMarketWise['markup'] / 100);
                    $AdultCostExtraBed = (((float) $valPax['AdultCostExtraBed'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CostPPSO = (((float) $valPax['CostPPSO'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CostExtraBed = (((float) $valPax['CostExtraBed'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CostChildWithoutBed = (((float) $valPax['CostChildWithoutBed'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CostPerPax = (((float) $valPax['CostPerPax'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CostQuad = (((float) $valPax['CostQuad'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CostQuint = (((float) $valPax['CostQuint'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CostHexa = (((float) $valPax['CostHexa'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CCEBTwoToFour = (((float) $valPax['CCEBTwoToFour'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CCWOEBTwoToFour = (((float) $valPax['CCWOEBTwoToFour'] * (float) $exchangerate) * (float) $PercentageVal);
                    $CostInfent = (((float) $valPax['CostInfent'] * (float) $exchangerate) * (float) $PercentageVal);
                }

                $data11 = array(
                    'TPIntSysId' => (int) $packageId,
                    'MarkType' => $MarkType,
                    'MarketPlaceId' => $keyMarketwise,
                    'MarketPlace' => $valMarketWise['MarketPlace'],
                    'AgencySysId' => $intLoggedinUserAgencySysId,
                    'Permission' => 1,
                    'MarkPercent' => (int) $valMarketWise['markup'],
                    'CostPPDO' => !empty($CostPerPax) ? (float) $CostPerPax : null,
                    'PricePerPerson' => !empty($CostPerPax) ? (float) $CostPerPax : null,
                    'CostInfent' => !empty($CostInfent) ? (float) $CostInfent : null,
                    'CostPPSO' => !empty($CostPPSO) ? (float) $CostPPSO : null,
                    'CostQuad' => !empty($CostQuad) ? (float) $CostQuad : null,
                    'CostQuint' => !empty($CostQuint) ? (float) $CostQuint : null,
                    'CostHexa' => !empty($CostHexa) ? (float) $CostHexa : null,
                    'CostChildEBTwoToFour' => !empty($CCEBTwoToFour) ? (float) $CCEBTwoToFour : null,
                    'CostChildWOEBTwoToFour' => !empty($CCWOEBTwoToFour) ? (float) $CCWOEBTwoToFour : null,
                    'AdultCostExtraBed' => !empty($AdultCostExtraBed) ? (float) $AdultCostExtraBed : null,
                    'CostExtraBed' => !empty($CostExtraBed) ? (float) $CostExtraBed : null,
                    'CostChildWithoutBed' => !empty($CostChildWithoutBed) ? (float) $CostChildWithoutBed : null,
                    'FixedDepartureInventory' => (int) $inventoryqty,
                    'PackCategoryId' => (int) $packCatagory,
                    'Tax' => 'Excluded',
                    'ExcludedPercent' => 0,
                    'FromDate' => $fromDate,
                    'TourType' => 1,
                    'ToDate' => $toDate,
                    'CurrencyType' => $baseCurrencyId,
                    'CreateDate' => $currentDate,
                    'UpdateDate' => $currentDate,
                    'IsMarkForDel' => '0',
                    'IsActive' => '1',
                    'Pax' => (int) $keypax
                );
                $updateId1 = $objPackage->insertData('TB_TravelPlan_Marketwise_Rate', $data11);
                if ($updateId1) {
                    $MarketwiseRateData[$i] = $objPackage->getFlexiPackageMPRate($updateId1);
                }
                $objPackage->insertData('TB_TravelPlan_Rate', $data);
            }
        }
        echo 1;
        exit;
    }

    public function updateRowwiseCostsheetAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $this->view->IsB2CSite = $this->IsB2CSite;
        $this->view->IsTG = $this->IsTG;
        $this->view->IsGTXNetwork = $this->IsGTXNetwork;
        $params = Zend_Controller_Front::getInstance()->getRequest()->getParams();
        $TPSysId = (int) $this->getRequest()->getParam('id');
        if ($TPSysId > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($TPSysId);
            if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            $objPackage = new Travel_Model_TblPackage();
            if (isset($flexiPackageList['MasterRefId']) && $flexiPackageList['MasterRefId'] == '0') {
                $childpackarr = $objPackage->getChildPackageList($flexiPackageList['TPSysId']);
            } else {
                $childpackarr = $objPackage->getChildPackageList($flexiPackageList['MasterRefId']);
            }
            if (!empty($childpackarr)) {
                for ($i = 0; $i < count($childpackarr); $i++) {
                    $reslastint[] = isset($childpackarr[$i]['TPSysId']) ? $childpackarr[$i]['TPSysId'] : 0;
                }
                if (!empty($reslastint)) {
                    for ($h = 0; $h < count($reslastint); $h++) {
                        $tpsysid = isset($reslastint[$h]) ? (int) $reslastint[$h] : 0;
                        $marketratearr[$tpsysid] = $objPackage->getPackageMPArrForUpdate($tpsysid);
                        $packratearr[$tpsysid] = $objPackage->getPackageRateArrForUpdate($tpsysid);
                    }
                }
            }
            //echo "<pre>";print_r($marketratearr);exit;
            $packArray = array(2 => "CostDO", 4 => "CostFourO", 6 => "CostSixO", 8 => "CostEightO", 10 => "CostTenO", 12 => "CostTwelveO");
            $packArrayMarket = array(2 => "CostPPDO", 4 => "CostFourO", 6 => "CostSixO", 8 => "CostEightO", 10 => "CostTenO", 12 => "CostTwelveO");
            if (!empty($packratearr)) {
                $travelPlanRate = array();
                foreach ($packratearr as $arrKey => $arrVal) {
                    foreach ($arrVal as $finalVal) {
                        $TPRateSheetSysId = $finalVal['TPRateSheetSysId'];
                        $whare = array("TPRateSheetSysId=?" => $TPRateSheetSysId);
                        $updateData = array(
                            "UpdateDate" => date("Y-m-d"),
                            "IsAprooved" => 0,
                            "IsActive" => 0,
                            "IsMarkForDel" => 1
                        );

                        $objPackage->updateData('TB_TravelPlan_Rate', $updateData, $whare);

                        foreach ($packArray as $pax => $colVal) {
                            $data = array(
                                'TPSysId' => $finalVal['TPSysId'],
                                'MasterRefId' => $finalVal['MasterRefId'],
                                'CurrencyType' => $finalVal['CurrencyType'],
                                'CostSO' => (int) $finalVal['CostSO'],
                                'AdultCostExtraBed' => (int) $finalVal['AdultCostExtraBed'],
                                'CostExtraBed' => (int) $finalVal['CostExtraBed'],
                                'CostWithoutBed' => (int) $finalVal['CostWithoutBed'],
                                'CostDO' => (int) $finalVal[$colVal],
                                'CostInfent' => (int) $finalVal['CostInfent'],
                                'StartDate' => $finalVal['StartDate'],
                                'ValidTill' => $finalVal['ValidTill'],
                                'IsAprooved' => $finalVal['IsAprooved'],
                                'CreateDate' => $finalVal['CreateDate'],
                                'UpdateDate' => $finalVal['UpdateDate'],
                                'IsMarkForDel' => $finalVal['IsMarkForDel'],
                                'IsActive' => $finalVal['IsActive'],
                                'IsAprooved' => $finalVal['IsAprooved'],
                                'MarketPlaceId' => $finalVal['MarketPlaceId'],
                                'FixedDepartureInventory' => $finalVal['FixedDepartureInventory'],
                                'AdultCostExtraBed' => $finalVal['AdultCostExtraBed'],
                                // 'Symbol' => $finalVal['Symbol'],
                                'TourType' => $finalVal['TourType'],
                                'PackCategoryId' => $finalVal['PackCategoryId'],
                                'Pax' => $pax,
                            );
                            $travelPlanRate[] = $objPackage->insertData('TB_TravelPlan_Rate', $data);
                        }
                    }
                }
            }
            if (!empty($marketratearr)) {
                $travelPlanMarketWiseRate = array();
                foreach ($marketratearr as $arrMKey => $arrMVal) {
                    foreach ($arrMVal as $finalMVal) {
                        $TPRateSheetSysId = $finalMVal['TPRateSheetSysId'];
                        $whare = array("TPRateSheetSysId=?" => $TPRateSheetSysId);
                        $updateData = array(
                            "UpdateDate" => date("Y-m-d"),
                            //  "IsAprooved" => 0,
                            "IsActive" => 0,
                            "IsMarkForDel" => 1
                        );

                        $objPackage->updateData('TB_TravelPlan_Marketwise_Rate', $updateData, $whare);

                        foreach ($packArrayMarket as $paxM => $colValM) {
                            $data11 = array(
                                'TPIntSysId' => $finalMVal['TPIntSysId'],
                                'MarkType' => $finalMVal['MarkType'],
                                'MarketPlaceId' => $finalMVal['MarketPlaceId'],
                                'MarketPlace' => $finalMVal['MarketPlace'],
                                'AgencySysId' => $finalMVal['AgencySysId'],
                                'Permission' => $finalMVal['Permission'],
                                'MarkPercent' => $finalMVal['MarkPercent'],
                                'CostPPDO' => (int) $finalMVal[$colValM],
                                'PricePerPerson' => (int) $finalMVal[$colValM],
                                'CostInfent' => $finalMVal['CostInfent'],
                                'CostPPSO' => $finalMVal['CostPPSO'],
                                'AdultCostExtraBed' => $finalMVal['AdultCostExtraBed'],
                                'CostExtraBed' => $finalMVal['CostExtraBed'],
                                'CostChildWithoutBed' => $finalMVal['CostChildWithoutBed'],
                                'FixedDepartureInventory' => $finalMVal['FixedDepartureInventory'],
                                'PackCategoryId' => $finalMVal['PackCategoryId'],
                                'Tax' => $finalMVal['Tax'],
                                'ExcludedPercent' => $finalMVal['ExcludedPercent'],
                                'FromDate' => $finalMVal['FromDate'],
                                'TourType' => $finalMVal['TourType'],
                                'ToDate' => $finalMVal['ToDate'],
                                'CurrencyType' => $finalMVal['CurrencyType'],
                                'CreateDate' => $finalMVal['CreateDate'],
                                'UpdateDate' => $finalMVal['UpdateDate'],
                                'IsMarkForDel' => $finalMVal['IsMarkForDel'],
                                'IsActive' => $finalMVal['IsActive'],
                                'Pax' => $paxM
                            );
                            //echo "<pre>";print_r($data11);exit;
                            $travelPlanMarketWiseRate[] = $objPackage->insertData('TB_TravelPlan_Marketwise_Rate', $data11);
                        }
                    }
                }
            }





            echo "<pre>";
            print_r($travelPlanMarketWiseRate);

            echo "<br>";
            echo "<pre>";
            print_r($travelPlanRate);
            exit;
        }
    }

    public function addMoreThanPaxPopupAction() {

        $this->_helper->layout->disableLayout();
        $IsquadPrice = $this->getRequest()->getParam('IsquadPrice', 0);
        $TPSysId = $this->getRequest()->getParam('TPSysId');
        $CategoryId = $this->getRequest()->getParam('CategoryId');
        $fromDate1 = $this->getRequest()->getParam('fromDate');
        $fromDate = date("Y-m-d", strtotime(str_replace('/', '-', $fromDate1)));
        $toDate1 = $this->getRequest()->getParam('toDate');
        $toDate = date("Y-m-d", strtotime(str_replace('/', '-', $toDate1)));
        $MarketPlaceId = $this->getRequest()->getParam('MarketPlaceId');
        $PackCategoryId = $this->getRequest()->getParam('PackCategoryId');

        $objPackage = new Travel_Model_TblPackage();
        $slaePriceData = $objPackage->getMoreThanPaxDataByMarketWiseRate($TPSysId, $CategoryId, $fromDate, $toDate, $MarketPlaceId);
        $myCostData = $objPackage->getMoreThanPaxDataByMarketRate($TPSysId, $CategoryId, $fromDate, $toDate, $MarketPlaceId);

        $this->view->IsquadPrice = $IsquadPrice;
        $this->view->slaePriceData = $slaePriceData;
        $this->view->myCostData = $myCostData;
    }

    public function addFlexiPackageReadymadeNewAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $this->view->IsB2CSite = $this->IsB2CSite;
        $this->view->IsTG = $this->IsTG;
        $this->view->IsGTXNetwork = $this->IsGTXNetwork;
        $params = Zend_Controller_Front::getInstance()->getRequest()->getParams();
        //echo "<pre>";print_r($params);exit;
        $params = (int) $params['TPSysId'];

        //echo $this->getRequest()->getParam('id');		
        if ($params > 0) {
            $flexiPackageList = $objPackage->getFlexiPackageList($params);
            if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $this->intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            $this->view->flexiPackageList = $flexiPackageList;

            $packageCancelPolicyList = $objPackage->getPackageCancelPolictyList($params);
            $this->view->packageCancelPolicyList = $packageCancelPolicyList;
            $this->view->params = $params;
        } else {
            $this->_redirect('publicpackage/pagenotfound');
            exit;
        }
    }

    public function editMoreThanPaxPopupDataAction() {

        $this->_helper->layout->disableLayout();

        $this->view->TPSysId = $TPSysId = $this->getRequest()->getParam('TPSysId');
        $this->view->CategoryId = $CategoryId = $this->getRequest()->getParam('CategoryId');
        $fromDate1 = $this->getRequest()->getParam('fromDate');
        $this->view->fromDate = $fromDate = date("Y-m-d", strtotime(str_replace('/', '-', $fromDate1)));
        $toDate1 = $this->getRequest()->getParam('toDate');
        $this->view->toDate = $toDate = date("Y-m-d", strtotime(str_replace('/', '-', $toDate1)));
        $this->view->MarketPlaceId = $MarketPlaceId = $this->getRequest()->getParam('MarketPlaceId');
        $this->view->PackCategoryId = $PackCategoryId = $this->getRequest()->getParam('PackCategoryId');
        $this->view->MarkPercent = $MarkPercent = $this->getRequest()->getParam('MarkPercent');

        $this->view->CurrencyType = $CurrencyType = $this->getRequest()->getParam('CurrencyType');
        $this->view->MarkType = $MarkType = $this->getRequest()->getParam('MarkType');
        $this->view->IsFixedDeparturePackage = $MarkType = $this->getRequest()->getParam('IsFixedDeparturePackage');

        $objPackage = new Travel_Model_TblPackage();
        $slaePriceData = $objPackage->getMoreThanPaxDataByMarketWiseRate($TPSysId, $CategoryId, $fromDate, $toDate, $MarketPlaceId);
        $myCostData = $objPackage->getMoreThanPaxDataByMarketRate($TPSysId, $CategoryId, $fromDate, $toDate, $MarketPlaceId);

        $this->view->IsquadPrice = $this->getRequest()->getParam('IsquadPrice', 0);
        $this->view->slaePriceData = $slaePriceData;
        $this->view->myCostData = $myCostData;
    }

    public function addFlightAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();

        if ($this->getRequest()->getParam('id') > 0) {
            $pkgId = $this->getRequest()->getParam('id');
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));

            if (@$flexiPackageList['MasterRefId'] == '0') {
                $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['TPSysId']);
            } else {
                $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['MasterRefId']);
            }
            //echo "<pre>";print_r($childpackarr);exit;
            if (isset($flexiPackageList['AgencySysId']) && ($flexiPackageList['AgencySysId'] != $intLoggedinUserAgencySysId)) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            $inventoryData = array();
            $inventoryResultDate = array();
            $l = 0;
            //echo "<pre>";print_r($childpackarr);exit;
            $MasterId = 0;
            if (!empty($childpackarr)) {
                foreach ($childpackarr as $val) {
                    if ($val['MasterRefId'] == '0') {
                        $MasterId = $val['TPSysId'];
                    }
                    $inventoryData[$l] = $val['TPSysId'];
                    $l++;
                }
                if (!empty($inventoryData)) {
                    $TpSysIdString = implode(',', $inventoryData);
                    $inventoryResultDate = $objPackage->getInventoryDate($TpSysIdString);
                }
            }
            $FixedInventoryAirline = $objPackage->TBTravelPlanItenaryFixedInventoryAirlineComman($MasterId);

            $this->view->FixedInventoryAirline = $FixedInventoryAirline;
            $this->view->inventoryResultDate = array();
            $this->view->flexiPackageList = $flexiPackageList;
            $this->view->MasterId = $MasterId;
            $this->view->pkgId = $pkgId;
        }
    }

    public function saveFlightDetailDataAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            $saveFixedInventoryArray = array();
            $formType = $postData['formType'];
            if ($formType == 1) {
                foreach ($postData['airlineName'] as $dataKey => $dataValue) {
                    $DepartureTime = date("Y-m-d H:i:s", strtotime(str_replace('/', '-', $postData['departureTime'][$dataKey])));
                    $ArrivalTime = date("Y-m-d H:i:s", strtotime(str_replace('/', '-', $postData['arrivalTime'][$dataKey])));
                    $saveFixedInventoryAirlineArray = [
                        'FixedInvnSysId' => $postData['MasterId'],
                        // 'AgencySysId' => $intLoggedinUserAgencySysId,
                        'AirlineName' => $dataValue,
                        'AirlineCode' => $postData['airlineCode'][$dataKey],
                        'DepartureAirportName' => $postData['departureAirport'][$dataKey],
                        'DepartureAirportCode' => $postData['departureAirportCode'][$dataKey],
                        'DepartureTime' => $DepartureTime,
                        'ArrivalAirportName' => $postData['arrivalAirport'][$dataKey],
                        'ArrivalAirportCode' => $postData['arrivalAirportCode'][$dataKey],
                        'EstimateHours' => $postData['EstimateHours'][$dataKey],
                        'FlightType' => ($dataKey == 0) ? 1 : 2,
                        'ArrivalTime' => $ArrivalTime,
                        'UpdateDate' => date('Y-m-d H:i:s'),
                        'CreateDate' => date('Y-m-d H:i:s'),
                        'IsActive' => 1,
                        'IsMarkForDel' => 0,
                    ];
                    if (isset($postData['InvnAirlineSysId'][$dataKey]) && !empty($postData['InvnAirlineSysId'][$dataKey])) {
                        $where = array("InvnAirlineSysId=?" => $postData['InvnAirlineSysId'][$dataKey]);
                        $InvnAirlineSysId[] = $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory_Common_Flight', $saveFixedInventoryAirlineArray, $where);
                    } else {
                        $InvnAirlineSysId[] = $objPackage->insertData('TB_TravelPlan_Itinerary_FixedInventory_Common_Flight', $saveFixedInventoryAirlineArray);
                    }
                }
            } else {
                $saveFixedInventoryAirlineArray = array();
                $FixedInvnSysId = $objPackage->getFixedInvnSysIdByMasterPackageIdANdFromDate($postData['MasterId'], $postData['FromDateHidden']);
                //                         echo "<pre>";print_r($FixedInvnSysId);die;
                if ($FixedInvnSysId['FixedInvnSysId']) {
                    foreach ($postData['airlineName'] as $dataKey => $dataValue) {
                        $DepartureTime = date("Y-m-d H:i:s", strtotime(str_replace('/', '-', $postData['departureTime'][$dataKey])));
                        $ArrivalTime = date("Y-m-d H:i:s", strtotime(str_replace('/', '-', $postData['arrivalTime'][$dataKey])));
                        $saveFixedInventoryAirlineArray = [
                            'FixedInvnSysId' => $FixedInvnSysId['FixedInvnSysId'],
                            //'AgencySysId' => $intLoggedinUserAgencySysId,
                            'AirlineName' => $dataValue,
                            'AirlineCode' => $postData['airlineCode'][$dataKey],
                            'DepartureAirportName' => $postData['departureAirport'][$dataKey],
                            'DepartureAirportCode' => $postData['departureAirportCode'][$dataKey],
                            'DepartureTime' => $DepartureTime,
                            'ArrivalAirportName' => $postData['arrivalAirport'][$dataKey],
                            'ArrivalAirportCode' => $postData['arrivalAirportCode'][$dataKey],
                            'ArrivalTime' => $ArrivalTime,
                            'UpdateDate' => date('Y-m-d H:i:s'),
                            'CreateDate' => date('Y-m-d H:i:s'),
                            'IsActive' => 1,
                            'IsMarkForDel' => 0,
                        ];
                        $InvnAirlineSysId[] = $objPackage->insertData('TB_TravelPlan_Itinerary_FixedInventory_Common_Flight', $saveFixedInventoryAirlineArray);
                    }
                }
            }
            if (!empty($InvnAirlineSysId)) {
                $returnArray = ['status' => true, 'data' => $InvnAirlineSysId];
                echo json_encode($returnArray);
                exit;
            }
        }
    }

    public function savePkgFlightDetailDataAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            $saveFixedInventoryArray = array();
            if ((int) $postData['FixedInvnSysId'] > 0) {
                $whereFix = array("FixedInvnSysId=?" => (int) $postData['FixedInvnSysId']);
                $updateFixedAirline = array('IsMarkForDel' => 1);
                $objPackage->updateData('TB_TravelPlan_Itenary_FixedInventory_Airline', $updateFixedAirline, $whereFix);
                foreach ($postData['airlinename'] as $FlightTypeKey => $FlightTypeValue) {
                    foreach ($FlightTypeValue as $dataKey => $dataValue) {
                        if (isset($postData['fromAirportCode'][$FlightTypeKey][$dataKey]) && trim($postData['fromAirportCode'][$FlightTypeKey][$dataKey]) != '') {

                            $DepartureTime = (trim($postData['departuretime'][$FlightTypeKey][$dataKey]) != '') ? date("Y-m-d H:i:s", strtotime($postData['departuretime'][$FlightTypeKey][$dataKey])) : '';
                            $ArrivalTime = (trim($postData['arrivaltime'][$FlightTypeKey][$dataKey]) != '') ? date("Y-m-d H:i:s", strtotime($postData['arrivaltime'][$FlightTypeKey][$dataKey])) : '';
                            $saveFixedInventoryAirlineArray = [
                                'FlightType' => (int) $FlightTypeKey,
                                'FixedInvnSysId' => $postData['FixedInvnSysId'],
                                'AirlineName' => $dataValue,
                                'AirlineCode' => $postData['flightnumber'][$FlightTypeKey][$dataKey],
                                'DepartureAirportName' => $postData['fromAirportName'][$FlightTypeKey][$dataKey],
                                'DepartureAirportCode' => $postData['fromAirportCode'][$FlightTypeKey][$dataKey],
                                'DepartureTime' => $DepartureTime,
                                'FromTerminal' => $postData['fromAirportTerminal'][$FlightTypeKey][$dataKey],
                                'ArrivalAirportName' => $postData['toAirportName'][$FlightTypeKey][$dataKey],
                                'ArrivalAirportCode' => $postData['toAirportCode'][$FlightTypeKey][$dataKey],
                                'EstimateHours' => $postData['EstimateHours'][$FlightTypeKey][$dataKey],
                                'ArrivalTime' => $ArrivalTime,
                                'ToTerminal' => $postData['toAirportTerminal'][$FlightTypeKey][$dataKey],
                                'UpdateDate' => date('Y-m-d H:i:s'),
                                'CreateDate' => date('Y-m-d H:i:s'),
                                'IsActive' => 1,
                                'IsMarkForDel' => 0,
                            ];
                            if (isset($postData['InvnAirlineSysId'][$FlightTypeKey][$dataKey]) && !empty($postData['InvnAirlineSysId'][$FlightTypeKey][$dataKey])) {

                                $where = array("InvnAirlineSysId=?" => $postData['InvnAirlineSysId'][$FlightTypeKey][$dataKey]);
                                $InvnAirlineSysId[] = $objPackage->updateData('TB_TravelPlan_Itenary_FixedInventory_Airline', $saveFixedInventoryAirlineArray, $where);
                            } else {
                                $InvnAirlineSysId[] = $objPackage->insertData('TB_TravelPlan_Itenary_FixedInventory_Airline', $saveFixedInventoryAirlineArray);
                            }
                        }
                    }
                }
                if (!empty($InvnAirlineSysId)) {
                    $returnArray = ['status' => true, 'data' => $InvnAirlineSysId];
                    echo json_encode($returnArray);
                    exit;
                } else {
                    $returnArray = ['status' => true, 'message' => 'Content missing, Unable to update data.', 'data' => ''];
                    echo json_encode($returnArray);
                    exit;
                }
            } else {
                $returnArray = ['status' => false, 'message' => 'Content missing, Unable to update data', 'data' => ''];
                echo json_encode($returnArray);
                exit;
            }
        }
    }

    public function appendFlightDetailDataAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();

            $id1 = $postData['id1'];
            $count = $postData['count'];
            echo $div_str = '<script src="/public/assets/js/pages/pickerToolFlight.js"></script><div class="panel-body add-flight-detail-div" id="add-flight-detail-div_' . $id1 . '_' . $count . '" style="padding-bottom:0;"><div class="table-responsive no-padding">
                                    <table class="table table-bordered no-margin-bot"><tbody><tr>
                                                <th class="alert alert-lightblack" width="30%"><strong>Flight Detail</strong></th>
                                                <th class="alert alert-lightblack" width="30%"><strong>Departure </strong></th>
                                                <th class="alert alert-lightblack" width="30%"><strong>Arrival</strong></th>
                                                <th class="alert alert-lightblack" width="10%"></th></tr><tr>
                                                <td><input name="airlineName[]" type="Airline Name" class="form-control whbg flight_airline_search" value="" placeholder="Airline Name" seq="' . $id1 . '_' . $count . '"></td>
                                                <td><input name="departureAirport[]" type="Airport" class="form-control whbg flight_airport_search" value="" placeholder="Airport" seq="' . $id1 . '_' . $count . '_1"><input type="hidden" name="departureAirportCode[]" id="AirportCode_' . $id1 . '_' . $count . '_1" value=""></td>
                                                <td><input name="arrivalAirport[]" type="Airport" class="form-control whbg flight_airport_search" value="" placeholder="Airport" seq="' . $id1 . '_' . $count . '_2"><input type="hidden" name="arrivalAirportCode[]" id="AirportCode_' . $id1 . '_' . $count . '_2" value=""></td>
                                                <td>&nbsp;</td>
                                            </tr><tr><td><input name="airlineCode[]" type="Airline Name" class="form-control whbg" value="" placeholder="Code" id="AirlineCode_' . $id1 . '_' . $count . '"></td>
                                                <td><div class="input-group ls-group-input"><input name="departureTime[]" class="form-control dateTimePickerm" type="text"/>
                                                        <span class="input-group-addon "><i class="fa fa-calendar"></i></span>
                                                    </div></td><td><div class="input-group ls-group-input">
                                                        <input name="arrivalTime[]" class="form-control dateTimePickerm" type="text"/>
                                                        <span class="input-group-addon "><i class="fa fa-calendar"></i></span>
                                                    </div></td><td><a data-original-title="Delete" class="btn  btn-danger tooltipLink" data-toggle="tooltip" data-placement="top" title="" onclick="removeFlightDetail(' . $id1 . ',' . $count . ')"><i class="fa fa-trash-o"></i></a></td>
                                            </tr></tbody></table></div> <div class="clear"></div></div>';
            exit;
        }
    }

    public function getBusTransportRouteByCityAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $objTransportsRoutes = new Travel_Model_TblTransportsRoutes();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getParams();

            $search_going_from_id = explode('_', $postData['search_going_from_id']);
            $search_going_to_id = explode('_', $postData['search_going_to_id']);

            $going_from_id = $search_going_from_id[0];
            $going_to_id = $search_going_to_id[0];
            $pickUpLocationList = $objTransportsRoutes->getPickUpLocationsByStartEndCityId($intLoggedinUserAgencySysId, $going_from_id, $going_to_id);

            $finalPickUpArray = array();
            $returnOption = '';
            $returnOption .= '<label>Pick&nbsp;Up&nbsp;Location</label><br><select name="pickUpLocation[]" id="pickUpLocation"  multiple class="selectize-control demo-default select-country single">';
            foreach ($pickUpLocationList as $key => $value) {
                $finalPickUp = json_decode($value['BusPickUpLocationsStr'], 1);
                foreach ($finalPickUp as $pkey => $pvalue) {
                    $fival = $value["StartCitySysId"] . '_' . $value["EndCitySysId"] . '_' . ($pkey + 1);
                    $finalPickUpArray[] = $pvalue[$fival];
                    $returnOption .= '<option value="' . $pvalue[$fival] . '">' . $pvalue[$fival] . '</option>';
                }
            }



            $returnOption .= '</select>';
            if (!empty($finalPickUpArray)) {
                echo $returnOption;
                exit;
            } else {
                echo '';
                exit;
            }

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

    public function updatepackagevalidityDayAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        $tpsysID = $getData['packid'];

        $data = array(
            'bookingvalidityDay' => $getData['bookingvalidityDay'],
        );

        $packageData = $objPackage->getChildPackageList($tpsysID);
        if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
            $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
        }
        $packageIdArr = array();
        foreach ($packageData as $key => $package) {
            $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
        }
        $packageIds = implode(',', $packageIdArr['TPSysId']);
        //        print_r($data); print_r($packageData[0]['PkgSellValidTill']);
        $where = "TPSysId IN (" . $packageIds . ")";
        $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);

        /* -------------------- end insert data for contributor tab----------------------- */

        //echo $isActive; exit;
    }

    public function updateBookingTypeAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        if ($this->getRequest()->isPost()) {
            $tpsysID = $getData['packid'];
            $data = array(
                'BookingType' => $getData['bookingType'],
            );
            $packageData = $objPackage->getChildPackageList($tpsysID);
            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            }
            $packageIdArr = array();
            foreach ($packageData as $key => $package) {
                $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
            }
            $packageIds = implode(',', $packageIdArr['TPSysId']);
            $where = "TPSysId IN (" . $packageIds . ")";
            try {
                $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
                echo 1;
                exit;
            } catch (Zend_Exception $e) {
                echo $e->getMessage();
                exit;
            }
        }
    }

    public function updateTcsForPackageAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        if ($this->getRequest()->isPost()) {
            $tpsysID = $getData['packid'];
            $data = array(
                'ApplyTCSPackage' => $getData['ApplyTCSPackage'],
            );
            $packageData = $objPackage->getChildPackageList($tpsysID);
            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            }
            $packageIdArr = array();
            foreach ($packageData as $key => $package) {
                $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
            }
            $packageIds = implode(',', $packageIdArr['TPSysId']);
            $where = "TPSysId IN (" . $packageIds . ")";
            try {
                $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
                echo 1;
                exit;
            } catch (Zend_Exception $e) {
                echo $e->getMessage();
                exit;
            }
        }
    }

    public function updateTaxSettingForPackageAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        if ($this->getRequest()->isPost()) {
            $tpsysID = $getData['packid'];
            $CheckTravelPlanTaxSetting = $objPackage->CheckTravelPlanTaxSetting($tpsysID);
            try {
                $ApplyGSTPackage = $getData['ApplyGSTPackage'] ?? null;
                if ($ApplyGSTPackage === "") {
                    $ApplyGSTPackage = null;
                }
                if (empty($CheckTravelPlanTaxSetting)) {

                    $data = array(
                        'GstActivated' => $ApplyGSTPackage,
                        'TcsActivated' => isset($getData['ApplyTCSPackage']) ? $getData['ApplyTCSPackage'] : null,
                        'TcsLandPackage' => $getData['TcsLandPackage'],
                        'TcsFlight' => $getData['TcsFlight'],
                        'TcsVisa' => $getData['TcsVisa'],
                        'TcsInsurance' => $getData['TcsInsurance'],
                        'GSTLandPackage' => !empty($getData['GSTLandPackage']) ? $getData['GSTLandPackage'] : null,
                        'GSTFlight' => !empty($getData['GSTFlight']) ? $getData['GSTFlight'] : null,
                        'GSTVisa' => !empty($getData['GSTVisa']) ? $getData['GSTVisa'] : null,
                        'GSTInsurance' => !empty($getData['GSTInsurance']) ? $getData['GSTInsurance'] : null,
                        'UpdatedDate' => date('Y-m-d H:i:s'),
                        'CreatedDate' => date('Y-m-d H:i:s'),
                        'IsActive' => 1,
                        'IsMarkForDelete' => 0,
                        'TPSysId' => $tpsysID,
                    );
                    $InsertId = $objPackage->insertData('Tb_TravelPlan_Tax_Settings', $data);
                } else {
                    $where = array('TPSysId =?' => $tpsysID);
                    $data = array(
                    'GstActivated' => $ApplyGSTPackage,
                    'TcsActivated' => isset($getData['ApplyTCSPackage']) ? $getData['ApplyTCSPackage'] : null,
                    'TcsLandPackage' => $getData['TcsLandPackage'],
                    'TcsFlight' => $getData['TcsFlight'],
                    'TcsVisa' => $getData['TcsVisa'],
                    'TcsInsurance' => $getData['TcsInsurance'],
                    'GSTLandPackage' => !empty($getData['GSTLandPackage']) ? $getData['GSTLandPackage'] : null,
                    'GSTFlight' => !empty($getData['GSTFlight']) ? $getData['GSTFlight'] : null,
                    'GSTVisa' => !empty($getData['GSTVisa']) ? $getData['GSTVisa'] : null,
                    'GSTInsurance' => !empty($getData['GSTInsurance']) ? $getData['GSTInsurance'] : null,
                    'UpdatedDate' => date('Y-m-d H:i:s'),
                    );
                    $updateId = $objPackage->updateData('Tb_TravelPlan_Tax_Settings', $data, $where);
                }

                echo 1;
                exit;
            } catch (Zend_Exception $e) {
                echo $e->getMessage();
                exit;
            }
        }
    }

    public function isSharingPackageAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        if ($this->getRequest()->isPost()) {
            $tpsysID = $getData['packid'];
            $data = array(
                'IsSharingPrice' => $getData['IsSharingPrice'],
            );
            $packageData = $objPackage->getChildPackageList($tpsysID);
            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            }
            $packageIdArr = array();
            foreach ($packageData as $key => $package) {
                $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
            }
            $packageIds = implode(',', $packageIdArr['TPSysId']);
            $where = "TPSysId IN (" . $packageIds . ")";
            try {
                $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
                echo 1;
                exit;
            } catch (Zend_Exception $e) {
                echo $e->getMessage();
                exit;
            }
        }
    }

    public function autoPriceCalculateForPackageAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        if ($this->getRequest()->isPost()) {
            $tpsysID = $getData['packid'];
            $data = array(
                'IsFixPriceCalculate' => $getData['ApplyTCSPackage']
            );
            $packageData = $objPackage->getChildPackageList($tpsysID);
            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            }
            $packageIdArr = array();
            foreach ($packageData as $key => $package) {
                $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
            }
            $packageIds = implode(',', $packageIdArr['TPSysId']);
            $where = "TPSysId IN (" . $packageIds . ")";
            try {
                $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
                echo 1;
                exit;
            } catch (Zend_Exception $e) {
                echo $e->getMessage();
                exit;
            }
        }
    }

    public function updateWebsiteStatusAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();

        if ($this->getRequest()->isPost()) {
            $tpsysID = $getData['TPSysId'];
            $IsWebsiteString = isset($getData['IsWebsite']) && !empty($getData['IsWebsite']) ? $getData['IsWebsite'] : array();
            $type = isset($getData['type']) && !empty($getData['type']) ? $getData['type'] : '';
            $is_network = isset($getData['is_network']) ? $getData['is_network'] : 0;
            $IsGTXNetworkWeb = isset($getData['IsGTXNetworkWeb']) ? $getData['IsGTXNetworkWeb'] : 0;
            if ($type == 'is_network' && $is_network == 1) {
                $chktpratesysID = $objPackage->ChkTPRateSysId($tpsysID, 2);
                if (empty($chktpratesysID)) {
                    echo json_encode(array('status' => false, 'msg' => 'Please enter B2B rate to publish on GTX Network.'));
                    exit;
                }
            } else if ($type == 'is_IsGTXNetworkWeb' && $IsGTXNetworkWeb == 1) {
                $chktpratesysID = $objPackage->ChkTPRateSysId($tpsysID, 2);
                if (empty($chktpratesysID)) {
                    echo json_encode(array('status' => false, 'msg' => 'Please enter B2B rate to publish on GTX Network Web.'));
                    exit;
                }
            }
            if (!empty($IsWebsiteString)) {
                $data = array(
                    'IsWebsite' => trim(implode(',', $getData['IsWebsite'])),
                    'IsGTXNetwork' => isset($getData['is_network']) ? $getData['is_network'] : 0,
                    'IsTG' => isset($getData['is_tg']) ? $getData['is_tg'] : 0,
                    'IsGTXNetworkWeb' => isset($getData['IsGTXNetworkWeb']) ? $getData['IsGTXNetworkWeb'] : 0,
                );
            } else {
                $data = array(
                    'IsWebsite' => '',
                    'IsGTXNetwork' => isset($getData['is_network']) ? $getData['is_network'] : 0,
                    'IsTG' => isset($getData['is_tg']) ? $getData['is_tg'] : 0,
                    'IsGTXNetworkWeb' => isset($getData['IsGTXNetworkWeb']) ? $getData['IsGTXNetworkWeb'] : 0,
                );
            }
            $packageData = $objPackage->getChildPackageList($tpsysID);
            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            }
            $packageIdArr = array();
            foreach ($packageData as $key => $package) {
                $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
            }
            $packageIds = implode(',', $packageIdArr['TPSysId']);
            $where = "TPSysId IN (" . $packageIds . ")";
            try {
                if ($IsGTXNetworkWeb == 0) {
                    $dataArrMarketPlace = array(
                        'IsActive' => 0
                    );
                } else {
                    $dataArrMarketPlace = array(
                        'IsActive' => 1
                    );
                }
                $objPackage->updateData('TB_TravelPlan_Mapping_Network_Web', $dataArrMarketPlace, $where);

                $objPackage->updateData('TB_TravelPlan', $data, $where);
                echo json_encode(array('status' => true, 'msg' => 'success'));
                exit;
            } catch (Zend_Exception $e) {
                echo json_encode(array('status' => true, 'msg' => $e->getMessage()));
                exit;
            }
        }
    }

    public function addOptionalHotelAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();

        if ($this->getRequest()->getParam('id') > 0) {
            $pkgId = $this->getRequest()->getParam('id');
            $flexiPackageList = $objPackage->getFlexiPackageList($this->getRequest()->getParam('id'));
            if (@$flexiPackageList['MasterRefId'] == '0') {
                $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['TPSysId']);
            } else {
                $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['MasterRefId']);
            }
            //echo "<pre>";print_r($childpackarr);exit;
            if (isset($flexiPackageList['AgencySysId']) && $flexiPackageList['AgencySysId'] != $intLoggedinUserAgencySysId) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            $inventoryData = array();
            $inventoryResultDate = array();
            $l = 0;
            //echo "<pre>";print_r($childpackarr);exit;
            $MasterId = 0;
            if (!empty($childpackarr)) {
                foreach ($childpackarr as $val) {
                    if ($val['MasterRefId'] == '0') {
                        $MasterId = $val['TPSysId'];
                    }
                    $inventoryData[$l] = $val['TPSysId'];
                    $l++;
                }
                if (!empty($inventoryData)) {
                    $TpSysIdString = implode(',', $inventoryData);
                    $inventoryResultDate = $objPackage->getInventoryDate($TpSysIdString);
                }
            }
            // echo "<pre>";print_r();exit
            $this->view->flexiPackageList = $inventoryResultDate;
            $this->view->MasterId = $MasterId;
            $this->view->pkgId = $pkgId;
            $optionHotelData = $objPackage->getoptionalHotelDataByTpSysId($intLoggedinUserAgencySysId, $MasterId);
            $optionHotelDataArray = array();

            foreach ($optionHotelData as $optKey => $optVal) {
                $FromDate = $optVal['FromDate']->format('Y-m-d');
                $optionHotelDataArray[$FromDate][] = $optVal;
            }
            $this->view->optionHotelDataArray = $optionHotelDataArray;
        }
    }

    public function saveOptionalHotelDataAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();

            $SeqId = $postData['SeqId'];
            $hidden_selected_hotel_id = $postData['hidden_selected_hotel_id'];
            $extendedStay = $postData['extendedStay'];
            $hotelCityId = isset($postData['hotelCityId']) ? $postData['hotelCityId'] : array();
            $hidden_selected_room_type = $postData['hidden_selected_room_type'];
            $meal_type = $postData['meal_type'];
            $noofNights = $postData['noofNights'];
            $noofNights = $postData['noofNights'];
            $whare = array("TPSysId=?" => $postData['MasterId'], "AgencySysId=?" => $intLoggedinUserAgencySysId, "convert(date,FromDate)=?" => $postData['FromDateHidden']);
            $updateData = array(
                "UpdateDate" => date("Y-m-d"),
                "IsActive" => 0,
                "IsMarkForDel" => 1
            );

            $objPackage->updateData('TB_TravelPlan_Itenary_Extended_Accom', $updateData, $whare);

            foreach ($hidden_selected_hotel_id as $hKey => $hVal) {

                $insertData = [
                    'TPSysId' => $postData['MasterId'],
                    'AgencySysId' => $intLoggedinUserAgencySysId,
                    'SupplierSysId' => 0,
                    'ExtendedStay' => isset($extendedStay[$SeqId . $hKey]) ? $extendedStay[$SeqId . $hKey] : 1,
                    'CityId' => isset($hotelCityId[$hKey]) ? (int) $hotelCityId[$hKey] : 0,
                    'AccoSysId' => isset($hidden_selected_hotel_id[$hKey]) ? (int) $hidden_selected_hotel_id[$hKey] : 0,
                    'RoomType' => isset($hidden_selected_room_type[$hKey]) ? (int) $hidden_selected_room_type[$hKey] : 0,
                    'MealPlanType' => isset($meal_type[$hKey]) ? (int) $meal_type[$hKey] : 0,
                    'FromDate' => isset($postData['FromDateHidden']) ? $postData['FromDateHidden'] : '',
                    'Todate' => isset($postData['FromDateHidden']) ? $postData['FromDateHidden'] : '',
                    'TotalNights' => isset($noofNights[$hKey]) ? $noofNights[$hKey] : 0,
                    'StarRating' => 0,
                    'CurrencyType' => 1,
                    'TotalCostAdult' => isset($postData['perAdultCost'][$hKey]) ? $postData['perAdultCost'][$hKey] : '',
                    'TotalCostChild' => isset($postData['perChildCost'][$hKey]) ? $postData['perChildCost'][$hKey] : '',
                    'TotalCostExtraBed' => isset($postData['extraBedCost'][$hKey]) ? $postData['extraBedCost'][$hKey] : '',
                    'CreateDate' => date('Y-m-d H:i:s'),
                    'UpdateDate' => date('Y-m-d H:i:s'),
                    'IsMarkForDel' => 0,
                    'IsActive' => 1,
                ];
                // echo "<pre>";print_r($postData);die;
                $ExtendedAccomSysId[] = $objPackage->insertData('TB_TravelPlan_Itenary_Extended_Accom', $insertData);
            }




            if (!empty($ExtendedAccomSysId)) {
                $returnArray = ['status' => true, 'data' => $ExtendedAccomSysId];
                echo json_encode($returnArray);
                exit;
            }
        }
    }

    public function addPackageAddonItemsAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $TblCurrency = new Travel_Model_TblCurrency();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            //            echo "<pre>";print_r($postData);die;
            $TPSysId = (isset($postData['TPSysId']) && $postData['TPSysId'] != '') ? $postData['TPSysId'] : '';
            $SupplierSysId = (isset($postData['SupplierSysId']) && $postData['SupplierSysId'] != '') ? $postData['SupplierSysId'] : 0;
            $ServiceTitle = (isset($postData['ServiceTitle']) && $postData['ServiceTitle'] != '') ? $postData['ServiceTitle'] : '';
            $Comment = (isset($postData['Comment']) && $postData['Comment'] != '') ? $postData['Comment'] : '';
            $CurrencyType = (isset($postData['CurrencyType']) && $postData['CurrencyType'] != '') ? $postData['CurrencyType'] : 1;
            $RateType = (isset($postData['RateType']) && $postData['RateType'] != '') ? $postData['RateType'] : '';
            $PaxCount = (isset($postData['PaxCount']) && $postData['PaxCount'] != '') ? (int) $postData['PaxCount'] : 0;
            $RateType = (isset($postData['RateType']) && $postData['RateType'] != '') ? $postData['RateType'] : '';
            $AdultCost = (isset($postData['AdultCost']) && $RateType == 1) ? (int) $postData['AdultCost'] : 0;
            $ChildCost = (isset($postData['ChildCost']) && $RateType == 1) ? (int) $postData['ChildCost'] : 0;

            $cost = 0;
            if ($RateType == 2) {
                $cost = (isset($postData['PerItemCost']) && $postData['PerItemCost'] != '') ? (int) $postData['PerItemCost'] : 0;
            } else if ($RateType == 3) {
                $cost = (isset($postData['TotalCost']) && $postData['TotalCost'] != '') ? (int) $postData['TotalCost'] : 0;
            }
            $RateTypeArray = array(1 => 'Per Person', 2 => 'Per Item', 3 => 'Total');
            $createddate = date('Y-m-d');

            $flexiPackageList = $objPackage->getFlexiPackageList($TPSysId);
            $MasterRefId = (isset($flexiPackageList['MasterRefId']) && $flexiPackageList['MasterRefId'] > 0) ? $flexiPackageList['MasterRefId'] : $flexiPackageList['TPSysId'];
            $data = array(
                'TPIntSysId' => $MasterRefId,
                'VersionId' => 1,
                'SupplierSysId' => $SupplierSysId,
                'ServiceTitle' => $ServiceTitle,
                'ServiceType' => 0,
                'Comment' => $Comment,
                'CurrencyType' => $CurrencyType,
                'RateType' => $RateType,
                'PaxCount' => $PaxCount,
                'Cost' => $cost,
                'BaseCost' => $cost,
                'IsOptionalServices' => isset($postData['IsOptionalServices']) ? $postData['IsOptionalServices'] : 1,
                'IsCostInclInTP' => 0, //$postdata['IsOptionalServices'] = 1 means cost is always included in package
                'AdultCost' => $AdultCost,
                'ChildCost' => $ChildCost,
                'IsActive' => 1,
                'IsMarkForDelete' => 0,
                'IsApproved' => 1,
                'CreateDate' => $createddate,
                'UpdateDate' => $createddate
            );

            $OtherSrvSysId = $objPackage->insertData('TB_TravelPlan_OtherServices', $data);
            if ($OtherSrvSysId) {
                $CurrencySymbol = $TblCurrency->getCurrencySymbol($CurrencyType);
                $html = '<tr id="addonstr_' . $OtherSrvSysId . '"><td><span>' . $ServiceTitle . '</span></td>'
                        . '<td><span>' . $PaxCount . '</span></td><td><span>' . $RateTypeArray[$RateType] . '</span></td>'
                        . '<td><span>' . ($AdultCost > 0 ? $CurrencySymbol . ' ' . $AdultCost : 0) . '</span></td><td><span>' . ($ChildCost > 0 ? $CurrencySymbol . ' ' . $ChildCost : 0) . '</span></td>'
                        . '<td><span>' . ($cost > 0 ? $CurrencySymbol . ' ' . $cost : 0) . '</span></td><td><span><a href="javascript://" onclick="deleteaddondetail(' . $OtherSrvSysId . ')" class="view_text1 tooltipLink"><i class="fa fa-minus-circle"></i></a></span></td>'
                        . '</tr>';
                $result = array('status' => true, 'msg' => 'Added successful.', 'OtherSrvSysId' => $OtherSrvSysId, 'html' => $html);
            } else {
                $result = array('status' => false, 'msg' => 'Error !!');
            }
            echo json_encode($result);
            exit;
        }
    }

    public function deletePackageAddonsDataAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            //            echo "<pre>";print_r($postData);die;
            $OtherSrvSysId = (isset($postData['OtherSrvSysId']) && $postData['OtherSrvSysId'] != '') ? $postData['OtherSrvSysId'] : '';

            if ($OtherSrvSysId != '') {

                $where = array("OtherSrvSysId =?" => $OtherSrvSysId);
                $updateData = array('IsMarkForDelete' => '1');

                $objPackage->updateData('TB_TravelPlan_OtherServices', $updateData, $where);
                $result = array('status' => true, 'msg' => 'Removed Successfully.');
            } else {
                $result = array('status' => false, 'msg' => 'Error !!');
            }

            echo json_encode($result);
            exit;
        }
    }

    public function getAddonItemsAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $TblCurrency = new Travel_Model_TblCurrency();
        $params = $this->getRequest()->getParams();
        $TPSysId = isset($params['TPSysId']) ? $params['TPSysId'] : '';
        if ($TPSysId) {
            $flexiPackageList = $objPackage->getFlexiPackageList($TPSysId);
            $MasterRefId = (isset($flexiPackageList['MasterRefId']) && $flexiPackageList['MasterRefId'] > 0) ? $flexiPackageList['MasterRefId'] : $flexiPackageList['TPSysId'];
            $GetAllService = $objPackage->GetAllService($MasterRefId);
            $this->view->GetAllService = $GetAllService;
            $this->view->CurrencySymbolList = $CurrencySymbolList = $TblCurrency->getCurrencySymbolByIdsList();
        }
    }

    public function updateDeswtinationWiseRateSheetAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $TblCurrency = new Travel_Model_TblCurrency();
        $params = $this->getRequest()->getParams();
        //        echo "<pre>";print_r($params);die;
        $tpsysID = isset($params['tpsysID']) ? (int) $params['tpsysID'] : 0;
        $FixedInvnSysId = isset($params['FixedInvnSysId']) ? (int) $params['FixedInvnSysId'] : 0;
        $date = isset($params['date']) ? trim($params['date']) : '';
        $updateMarkUpType = isset($params['updateMarkUpType']) ? (int) $params['updateMarkUpType'] : 0;
        $updateB2CMarkUp = isset($params['updateB2CMarkUp']) ? (float) $params['updateB2CMarkUp'] : 0;
        $updateB2BMarkUp = isset($params['updateB2BMarkUp']) ? (float) $params['updateB2BMarkUp'] : 0;
        $dataB2C = array(
            'MarkType' => $updateMarkUpType,
            'MarkPercent' => $updateB2CMarkUp,
        );
        $dataB2B = array(
            'MarkType' => $updateMarkUpType,
            'MarkPercent' => $updateB2BMarkUp,
        );
        $whereB2C = array(
            'TPIntSysId = ? ' => $tpsysID,
            'FixedInvnSysId = ? ' => $FixedInvnSysId,
            'FromDate = ? ' => $date,
            'MarketPlaceId = ? ' => 1
        );
        $whereB2B = array(
            'TPIntSysId = ? ' => $tpsysID,
            'FixedInvnSysId = ? ' => $FixedInvnSysId,
            'FromDate = ? ' => $date,
            'MarketPlaceId = ? ' => 2
        );
        if ($tpsysID != '' && $date != '' && $FixedInvnSysId != '') {
            $updateId = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $dataB2C, $whereB2C);
            $updateId = $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $dataB2B, $whereB2B);
            $updateMarkUpTypehtml = ($updateMarkUpType == 1) ? ' Fixed Amount' : ' Fixed %';
            $response = array('status' => true, 'msg' => 'success', 'MarkUpType' => $updateMarkUpTypehtml, 'B2CMarkUp' => $updateB2CMarkUp, 'B2BMarkUp' => $updateB2BMarkUp);
        } else {
            $response = array('status' => false, 'msg' => 'fail');
        }
        echo json_encode($response);
        exit;
    }

    public function autoQuadPricePackageAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        if ($this->getRequest()->isPost()) {
            $tpsysID = $getData['packid'];
            $data = array(
                'IsquadPrice' => $getData['IsquadPrice'],
                'IsSharingPrice' => $getData['IsSharingPrice'],
            );
            $packageData = $objPackage->getChildPackageList($tpsysID);
            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            }
            $packageIdArr = array();
            foreach ($packageData as $key => $package) {
                $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
            }
            $packageIds = implode(',', $packageIdArr['TPSysId']);
            $where = "TPSysId IN (" . $packageIds . ")";
            try {
                $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
                echo 1;
                exit;
            } catch (Zend_Exception $e) {
                echo $e->getMessage();
                exit;
            }
        }
    }

    public function updateFlightDeswtinationWiseRateSheetAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $TblCurrency = new Travel_Model_TblCurrency();
        $params = $this->getRequest()->getParams();
        //                echo "<pre>";print_r($params);die;
        $tpsysID = isset($params['tpsysID']) ? (int) $params['tpsysID'] : 0;
        $FixedInvnSysId = isset($params['FixedInvnSysId']) ? (int) $params['FixedInvnSysId'] : 0;
        $date = isset($params['date']) ? trim($params['date']) : '';
        $CurrencySysId = isset($params['CurrencySysId']) ? (int) $params['CurrencySysId'] : 0;
        $updateMarkUpType = isset($params['updateMarkUpType']) ? (int) $params['updateMarkUpType'] : 0;
        $updateFlightAdultCost = isset($params['updateFlightAdultCost']) ? (float) $params['updateFlightAdultCost'] : 0;
        $updateFlightInfantCost = isset($params['updateFlightInfantCost']) ? (float) $params['updateFlightInfantCost'] : 0;
        $updateFlightB2CAdultMarkUp = isset($params['updateFlightB2CAdultMarkUp']) ? (float) $params['updateFlightB2CAdultMarkUp'] : 0;
        $updateFlightB2CInfantMarkUp = isset($params['updateFlightB2CInfantMarkUp']) ? (float) $params['updateFlightB2CInfantMarkUp'] : 0;
        $updateFlightB2BAdultMarkUp = isset($params['updateFlightB2BAdultMarkUp']) ? (float) $params['updateFlightB2BAdultMarkUp'] : 0;
        $updateFlightB2BInfantMarkUp = isset($params['updateFlightB2BInfantMarkUp']) ? (float) $params['updateFlightB2BInfantMarkUp'] : 0;
        $updateFlightCurrentInventory = isset($params['updateFlightCurrentInventory']) ? (int) $params['updateFlightCurrentInventory'] : 0;
        $updateFlightCurrency = isset($params['updateFlightCurrency']) ? (int) $params['updateFlightCurrency'] : 1;
        $available_seat = $updateFlightCurrentInventory;
        $checkFixedInventoryInPkg = $objPackage->checkFixedInventoryInPkg($date, $tpsysID, $FixedInvnSysId);

        $CurrentSeat = $previous_current_seats = $checkFixedInventoryInPkg[0]['CurrentInventory'];
        $previous_hold_seats = $checkFixedInventoryInPkg[0]['HoldInventory'];
        $previous_sold_seats = $checkFixedInventoryInPkg[0]['SoldInventory'];
        $FixedSeat = $previous_seats = $checkFixedInventoryInPkg[0]['FixedInventory'];
        $previous_current_seat_with_hold = $previous_current_seats + $previous_hold_seats;
        if ($previous_current_seat_with_hold > $available_seat) {
            $CurrentSeat = $previous_current_seats - ($previous_current_seat_with_hold - $available_seat);
            $FixedSeat = $previous_seats - ($previous_current_seat_with_hold - $available_seat);
        } else if ($available_seat > $previous_current_seat_with_hold) {
            $calculate_price = ($available_seat - ($previous_hold_seats + $previous_current_seats));
            $CurrentSeat = $previous_current_seats + $calculate_price;
            $FixedSeat = ($previous_seats + $calculate_price);
        }
        $data = array(
            'MarkupType' => (int) $updateMarkUpType,
            'AdultCost' => $updateFlightAdultCost,
            'InfantCost' => $updateFlightInfantCost,
            'B2CAdultMarkup' => $updateFlightB2CAdultMarkUp,
            'B2BAdultMarkup' => $updateFlightB2BAdultMarkUp,
            'B2CInfantMarkup' => $updateFlightB2CInfantMarkUp,
            'B2BInfantMarkup' => $updateFlightB2BInfantMarkUp,
            'CurrentInventory' => $CurrentSeat,
            'FixedInventory' => $FixedSeat,
            'CurrencySysId' => $updateFlightCurrency,
        );
        //echo "<pre>";print_r($data);die;
        $where = array(
            'TPSysId = ? ' => $tpsysID,
            'FixedInvnSysId = ? ' => $FixedInvnSysId,
            'FromDate = ? ' => $date,
        );
        if ($tpsysID != '' && $date != '' && $FixedInvnSysId != '') {
            $updateId = $objPackage->updateData('TB_TravelPlan_Itinerary_FixedInventory', $data, $where);

            $updateMarkUpTypehtml = ($updateMarkUpType == 1) ? ' Fixed Amount' : ' Fixed %';
            $response = array('status' => true, 'msg' => 'success', 'MarkUpType' => $updateMarkUpTypehtml, 'data' => $data);
        } else {
            $response = array('status' => false, 'msg' => 'fail');
        }
        echo json_encode($response);
        exit;
    }

    public function addPkgFlightAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->getParam('id') > 0) {
            $pkgId = $this->getRequest()->getParam('id');
            $flexiPackageList = $objPackage->getFlexiPackageList($pkgId);
            if (@$flexiPackageList['MasterRefId'] == '0') {
                $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['TPSysId']);
            } else {
                $childpackarr = $objPackage->getChildPackageList(@$flexiPackageList['MasterRefId']);
            }
            if (isset($flexiPackageList['AgencySysId']) && $flexiPackageList['AgencySysId'] != $intLoggedinUserAgencySysId) {
                $this->_redirect('publicpackage/pagenotfound');
                exit;
            }
            $inventoryData = array();
            $inventoryResultDate = array();
            $l = 0;
            $MasterId = 0;
            if (!empty($childpackarr)) {
                foreach ($childpackarr as $val) {
                    if ($val['MasterRefId'] == '0') {
                        $MasterId = $val['TPSysId'];
                    }
                    //                    if ($l == '0') {
                    //                        $pkgId = $val['TPSysId'];
                    //                    }
                    $inventoryData[$l] = $val['TPSysId'];
                    $l++;
                }
                if (!empty($inventoryData)) {
                    $TpSysIdString = implode(',', $inventoryData);
                    $inventoryResultDate = $objPackage->getInventoryDate($TpSysIdString);
                }
            }
            $FixedInventoryAirline = $objPackage->TBTravelPlanItenaryFixedInventoryAirline($MasterId);
            $this->view->FixedInventoryAirline = $FixedInventoryAirline;
            $this->view->inventoryResultDate = array();
            $this->view->flexiPackageList = $flexiPackageList;
            $this->view->MasterId = $MasterId;
            $this->view->pkgId = $pkgId;
            $FixedInventoryWithAirline = $objPackage->getFromDestinationFixedInventoryWithAirline($pkgId);
            $PackSpecType = $flexiPackageList['PackSpecType'];
            $IsBusRoutePackage = isset($flexiPackageList['IsBusRoutePackage']) ? $flexiPackageList['IsBusRoutePackage'] : 0;
            $this->view->fixedInventoryDates = array();
            if ($PackSpecType != 3) {
                if($IsBusRoutePackage == 1){
                    $this->view->fixedInventoryDates = $objPackage->getItineraryFixedFlightInventoryBus($pkgId);
                }else{
                    $this->view->fixedInventoryDates = $objPackage->getItineraryFixedFlightInventoryByo($pkgId);
                }
                
            }
            $FixedInventoryWithAirlineArray = array();
            foreach ($FixedInventoryWithAirline as $key => $value) {
                $FixedInventoryWithAirlineArray[$value['id']]['DestinationSysId'] = $value['DestinationSysId'];
                $FixedInventoryWithAirlineArray[$value['id']]['TPSysId'] = $value['TPSysId'];
                $FixedInventoryWithAirlineArray[$value['id']]['id'] = $value['id'];
                $FixedInventoryWithAirlineArray[$value['id']]['CityTitle'] = $value['CityTitle'];
                if (!empty($value['InvnAirlineSysId'])) {
                    $FixedInventoryWithAirlineArray[$value['id']]['airlinedata'][$value['FlightType']][] = $value;
                }
            }
            $this->view->FixedInventoryWithAirlineArray = $FixedInventoryWithAirlineArray;
            $objCurrency = new Travel_Model_TblCurrency();
            $this->view->currencyDetail = $currencyDetail = $objCurrency->getCurrencySymbolByIdsList();
            // print_r($this->view->FixedInventoryWithAirlineArray);
        }
    }

    public function addPkgFlightAirlineInventryAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $date = $this->_request->getParam('date');
        $FixedInvnSysId = $this->_request->getParam('id');
        $objPackage = new Travel_Model_TblPackage();
        $flightAirlineInventry = $objPackage->flightAirlineInventrylist($FixedInvnSysId, $date);
        $this->view->id = $FixedInvnSysId;
        $this->view->date = $date;
        $newflightAirlineInventry = array();
        foreach ($flightAirlineInventry as $key => $value) {
            if ($value['FlightType'] == 1) {
                $newflightAirlineInventry[$value['FlightType']][] = $value;
            } else {
                $newflightAirlineInventry[$value['FlightType']][] = $value;
            }
        }
        $this->view->newflightAirlineInventry = $newflightAirlineInventry;
        // echo "<pre>";
        // print_r($newflightAirlineInventry);
        //  die();
    }

    public function savePkgFlightDetailInventryDataAction() {
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            $saveFixedInventoryArray = array();
            if ((int) $postData['FixedInvnSysId'] > 0) {
                if ($postData['fromdate'] > 0) {
                    $whereFix = array("FixedInvnSysId=?" => (int) $postData['FixedInvnSysId'], "Fromdate=?" => $postData['fromdate']);
                    $updateFixedAirline = array('IsMarkForDel' => 1);
                    $objPackage->updateData('TB_TravelPlan_Itenary_FixedInventory_Airline', $updateFixedAirline, $whereFix);
                    foreach ($postData['airlinename'] as $FlightTypeKey => $FlightTypeValue) {
                        foreach ($FlightTypeValue as $dataKey => $dataValue) {
                            if (trim($dataValue == '')) {
                                continue;
                            }
                            $DepartureTime = date("Y-m-d H:i:s", strtotime($postData['departuretime'][$FlightTypeKey][$dataKey]));
                            $ArrivalTime = date("Y-m-d H:i:s", strtotime($postData['arrivaltime'][$FlightTypeKey][$dataKey]));
                            $saveFixedInventoryAirlineArray = [
                                'FlightType' => (int) $FlightTypeKey,
                                'FixedInvnSysId' => $postData['FixedInvnSysId'],
                                'Fromdate' => isset($postData['fromdate']) ? $postData['fromdate'] : Null,
                                'AirlineName' => $dataValue,
                                'AirlineCode' => $postData['flightnumber'][$FlightTypeKey][$dataKey],
                                'DepartureAirportName' => $postData['fromAirportName'][$FlightTypeKey][$dataKey],
                                'DepartureAirportCode' => $postData['fromAirportCode'][$FlightTypeKey][$dataKey],
                                'DepartureTime' => $DepartureTime,
                                'FromTerminal' => $postData['fromAirportTerminal'][$FlightTypeKey][$dataKey],
                                'ArrivalAirportName' => $postData['toAirportName'][$FlightTypeKey][$dataKey],
                                'ArrivalAirportCode' => $postData['toAirportCode'][$FlightTypeKey][$dataKey],
                                'EstimateHours' => $postData['EstimateHours'][$FlightTypeKey][$dataKey],
                                'ArrivalTime' => $ArrivalTime,
                                'ToTerminal' => $postData['toAirportTerminal'][$FlightTypeKey][$dataKey],
                                'UpdateDate' => date('Y-m-d H:i:s'),
                                'CreateDate' => date('Y-m-d H:i:s'),
                                'IsActive' => 1,
                                'IsMarkForDel' => 0,
                            ];
                            if (isset($postData['InvnAirlineSysId'][$FlightTypeKey][$dataKey]) && !empty($postData['InvnAirlineSysId'][$FlightTypeKey][$dataKey])) {
                                $where = array("InvnAirlineSysId=?" => $postData['InvnAirlineSysId'][$FlightTypeKey][$dataKey], "Fromdate=?" => $postData['fromdate']);
                                $InvnAirlineSysId[] = $objPackage->updateData('TB_TravelPlan_Itenary_FixedInventory_Airline', $saveFixedInventoryAirlineArray, $where);
                            } else {
                                $InvnAirlineSysId[] = $objPackage->insertData('TB_TravelPlan_Itenary_FixedInventory_Airline', $saveFixedInventoryAirlineArray);
                            }
                        }
                    }
                    if (!empty($InvnAirlineSysId)) {
                        $returnArray = ['status' => true, 'data' => $InvnAirlineSysId];
                        echo json_encode($returnArray);
                        exit;
                    } else {
                        $returnArray = ['status' => false, 'message' => 'Content missing, Unable to update data', 'data' => ''];
                        echo json_encode($returnArray);
                        exit;
                    }
                } else {
                    $returnArray = ['status' => false, 'message' => 'Invertry FromDate Is Missing', 'data' => ''];
                    echo json_encode($returnArray);
                    exit;
                }
            } else {
                $returnArray = ['status' => false, 'message' => 'Content missing, Unable to update data', 'data' => ''];
                echo json_encode($returnArray);
                exit;
            }
        }
    }

    public function viewPackageUrlMarketwiseAction() {

        $objPackage = new Travel_Model_TblPackage();

        $params = $this->getRequest()->getParams();
        $packid = (isset($params['TPSysId']) && $params['TPSysId'] > 0) ? (int) $params['TPSysId'] : 0;
        $flexiPackageList = $objPackage->getFlexiPackageList($packid);
        if ($flexiPackageList['MasterRefId'] == '0') {
            $childpackarr = $objPackage->getChildPackageList($flexiPackageList['TPSysId']);
        } else {
            $childpackarr = $objPackage->getChildPackageList($flexiPackageList['MasterRefId']);
        }

        for ($i = 0; $i < count($childpackarr); $i++) {
            $reslastint[] = $childpackarr[$i]['TPSysId'];
            $reseconomyid[$childpackarr[$i]['EconomyMask']] = $childpackarr[$i]['TPSysId'];
            $categoryArr[$childpackarr[$i]['EconomyMask']] = $childpackarr[$i]['PackageCategoryName'];
        }

        $mptypearr = $objPackage->getMarketPlaceList();
        $html = '';

        foreach ($mptypearr as $mptype) {
            $html .= '<div class="panel-heading mptypedisp_' . $mptype['MPType'] . '" >';
            $html .= '<h3 class="panel-title">' . $mptype['Title'] . ' Rates</h3></div>';
            $html .= '<div class="modal-body mptypedisp_' . $mptype['MPType'] . '" style="text-align:center;" >';
            $secureCode = $objPackage->GenrateSecureCode($reseconomyid[1], 0);
            $secureCode1 = $objPackage->GenrateSecureCode($reseconomyid[2], 0);
            $secureCode2 = $objPackage->GenrateSecureCode($reseconomyid[3], 0);
            $secureCode3 = $objPackage->GenrateSecureCode($reseconomyid[4], 0);
            $secureCode4 = $objPackage->GenrateSecureCode($reseconomyid[5], 0);
            if ($reseconomyid[1] > 0) {
                $html .= '<a href="' . $this->baseUrl . '/package/view-flexi-final-package-readymade/id/' . $reseconomyid[1] . '/MpType/' . $mptype['MPType'] . '/code/' . $secureCode . '" target="_blank" type="button" class="btn btn-danger btn-sm">'
                        . (isset($categoryArr[1]) && !empty($categoryArr[1]) ? $categoryArr[1] : 'Budget')
                        . '</a>';
            }

            if ($reseconomyid[2] > 0) {
                $html .= '<a href="' . $this->baseUrl . '/package/view-flexi-final-package-readymade/id/' . $reseconomyid[2] . '/MpType/' . $mptype['MPType'] . '/code/' . $secureCode1 . '" target="_blank" type="button" class="btn btn-danger btn-sm" style="margin-left: 10px;">'
                        . (isset($categoryArr[2]) && !empty($categoryArr[2]) ? $categoryArr[2] : 'Standard')
                        . '</a>';
            }

            if ($reseconomyid[3] > 0) {
                $html .= '<a href="' . $this->baseUrl . '/package/view-flexi-final-package-readymade/id/' . $reseconomyid[3] . '/MpType/' . $mptype['MPType'] . '/code/' . $secureCode2 . '" target="_blank" type="button" class="btn btn-danger btn-sm" style="margin-left: 10px;">'
                        . (isset($categoryArr[3]) && !empty($categoryArr[3]) ? $categoryArr[3] : 'Deluxe')
                        . '</a>';
            }

            if ($reseconomyid[4] > 0) {
                $html .= '<a href="' . $this->baseUrl . '/package/view-flexi-final-package-readymade/id/' . $reseconomyid[4] . '/MpType/' . $mptype['MPType'] . '/code/' . $secureCode3 . '" target="_blank" type="button" class="btn btn-danger btn-sm" style="margin-left: 10px;">'
                        . (isset($categoryArr[4]) && !empty($categoryArr[4]) ? $categoryArr[4] : 'Luxury')
                        . '</a>';
            }

            if ($reseconomyid[5] > 0) {
                $html .= '<a href="' . $this->baseUrl . '/package/view-flexi-final-package-readymade/id/' . $reseconomyid[5] . '/MpType/' . $mptype['MPType'] . '/code/' . $secureCode4 . '" target="_blank" type="button" class="btn btn-danger btn-sm" style="margin-left: 10px;">'
                        . (isset($categoryArr[5]) && !empty($categoryArr[5]) ? $categoryArr[5] : 'Premium')
                        . '</a>';
            }
            $html .= '<div class="clear"></div></div>';
        }
        //$html = '<a href="" target="_blank" type="button" class="btn btn-danger btn-sm">B2C</a><a href="" target="_blank" type="button" class="btn btn-danger btn-sm">B2B</a>';
        echo $html;
        exit;
    }

    public function removeItineraryCityAction() {

        $objPackage = new Travel_Model_TblPackage();
        //        error_reporting(E_ALL);
        $params = $this->getRequest()->getParams();
        $packageId = (isset($params['packageId']) && $params['packageId'] > 0) ? (int) $params['packageId'] : 0;
        $cityid = (isset($params['cityid']) && $params['cityid'] > 0) ? (int) $params['cityid'] : 0;
        $to = (isset($params['to']) && $params['to'] > 0) ? (int) $params['to'] : 0;
        $from = (isset($params['from']) && $params['from'] > 0) ? (int) $params['from'] : 0;
        if ($packageId > 0 && $cityid > 0 && $to > 0 && $from > 0) {
            $childpackarr = $objPackage->getChildPackageList($packageId);
            $packageIdsArr = array_column($childpackarr, 'TPSysId');
            $getFlexiPackageItenIdByFromTo = $objPackage->getFlexiPackageItenIdByFromTo($packageIdsArr, $cityid, $from, $to);
            if (!empty($getFlexiPackageItenIdByFromTo)) {
                $TPIntSysIdArr = array_column($getFlexiPackageItenIdByFromTo, 'TPIntSysId');
                $TPIntSysIds = implode(',', $TPIntSysIdArr);
                $itndata = array(
                    'IsMarkForDel' => 1,
                    'UpdateDate' => date('Y-m-d')
                );
                $where = "TPIntSysId IN (" . $TPIntSysIds . ")";

                try {
                    $objPackage->updateData('TB_TravelPlan_Itenary', $itndata, $where);
                    $objPackage->updateData('TB_TravelPlan_Itenary_Places', $itndata, $where);
                    $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $itndata, $where);
                    $response = array('status' => true, 'message' => 'Delete Successfully.');
                } catch (Zend_Exception $ex) {
                    $response = array('status' => false, 'message' => $ex->getMessage());
                }
                foreach ($packageIdsArr as $key => $value) {
                    $flexiPackageItenList = $objPackage->getFlexiPackageItenList($value);
                    $count = 0;
                    //            echo "<pre>";print_r($flexiPackageItenList);die;
                    $TotalMinDaysPre = $TotalMinDaysPreCh = $from;
                    $SequencePre = $from;
                    foreach ($flexiPackageItenList as $iKey => $iVal) {

                        $TotalMinDays = $iVal['TotalMinDays'];
                        $TotalMaxDays = $iVal['TotalMaxDays'];
                        $cityidCheck = $iVal['CitySysId'];
                        $TPIntSysId = $iVal['TPIntSysId'];
                        $diffre = $TotalMaxDays - $TotalMinDays;

                        if ($TotalMinDays > $from) {
                            if ($TotalMinDays != $TotalMinDaysPreCh && $cityid != $cityidCheck && $count > 0) {
                                $TotalMinDaysPre = $TotalMaxDaysPre;
                                $SequencePre = $TotalMaxDaysPre;
                            } else {
                                if ($count > 0) {
                                    $SequencePre++;
                                }
                            }
                            $itndataI = array(
                                'Sequence' => $SequencePre,
                                'TotalMinDays' => $TotalMinDaysPre,
                                'TotalMaxDays' => $TotalMinDaysPre + $diffre,
                                'UpdateDate' => date('Y-m-d')
                            );
                            $itndataID = array(
                                'Sequence' => $SequencePre,
                                'UpdateDate' => date('Y-m-d')
                            );
                            $whereI = array('TPIntSysId = ? ' => $TPIntSysId);
                            //echo "<pre>";print_r($itndataI);
                            $objPackage->updateData('TB_TravelPlan_Itenary', $itndataI, $whereI);
                            $objPackage->updateData('TB_TravelPlan_Itenary_Places', $itndataID, $whereI);
                            $TotalMaxDaysPre = $TotalMinDaysPre + $diffre;
                            $cityid = $cityidCheck;
                            $count++;
                        }
                    }
                }
            }
            echo json_encode($response);
            exit;
        }
    }

    public function updateItineraryCityAction() {
        //error_reporting(E_ALL);
        $objPackage = new Travel_Model_TblPackage();
        $params = $this->getRequest()->getParams();

        $packageId = (isset($params['packageId']) && $params['packageId'] > 0) ? (int) $params['packageId'] : 0;
        $cityid = (isset($params['cityid']) && $params['cityid'] > 0) ? (int) $params['cityid'] : 0;
        $to = (isset($params['to']) && $params['to'] > 0) ? (int) $params['to'] : 0;
        $from = (isset($params['from']) && $params['from'] > 0) ? (int) $params['from'] : 0;
        $Nights = (isset($params['Nights']) && $params['Nights'] > 0) ? (int) $params['Nights'] : 0;
        $UpdatedCitySysId = (isset($params['CitySysId']) && $params['CitySysId'] > 0) ? (int) $params['CitySysId'] : 0;
        $UpdatedCityName = (isset($params['CityName']) && !empty($params['CityName'])) ? trim($params['CityName']) : '';

        if ($packageId > 0 && $cityid > 0 && $to > 0 && $from > 0) {
            //$getFlexiPackageItenListByFromTo = $objPackage->getFlexiPackageItenListByFromTo($packageId,$cityid,$from,$to);
            //$flexiPackageItenList = $objPackage->getFlexiPackageItenList($packageId);
            $childpackarr = $objPackage->getChildPackageList($packageId);
            $packageIdsArr = array_column($childpackarr, 'TPSysId');
            //            $getFlexiPackageItenIdByFromTo = $objPackage->getFlexiPackageItenIdByFromTo($packageIdsArr,$cityid,$from,$to);
            //            $TPIntSysIdArr = array_column($getFlexiPackageItenIdByFromTo,'TPIntSysId');
            //            $TPIntSysIds = implode(',',$TPIntSysIdArr);
            foreach ($packageIdsArr as $key => $value) {
                $flexiPackageItenList = $objPackage->getFlexiPackageItenList($value);
                $count = $retTpIntSysId = 0;
                $cityidCheck = 0;
                $TotalMinDaysPreCh = $from;
                $flexiPackageItenAccom = array();

                foreach ($flexiPackageItenList as $iKey => $iVal) {
                    if ($iVal['TotalMinDays'] >= $from) {
                        $TotalMinDays = $iVal['TotalMinDays'];
                        $TotalMaxDays = $iVal['TotalMaxDays'];
                        $CitySysId = $iVal['CitySysId'];

                        if ($from == $TotalMinDays && $to == $TotalMaxDays) {
                            $diffDay = $TotalMaxDays - $TotalMinDays;
                            if ($Nights > $diffDay) {

                                if ($count == 0) {
                                    $totalInsert = $Nights - $diffDay;
                                    //echo "<pre>";print_r($totalInsert);die;
                                    $itinerarayarr = $iVal;
                                    $flexiPackageItenAccom = $objPackage->GetSelectedHotelByIdBYO($itinerarayarr['TPIntSysId']);
                                    //echo "<pre>";print_r($flexiPackageItenAccom); 
                                    $PlaceSysId = $itinerarayarr['PlaceSysId'];
                                    unset($itinerarayarr['TPIntSysId']);
                                    unset($itinerarayarr['PlaceSysId']);
                                    for ($i = 1; $i <= $totalInsert; $i++) {
                                        $mSequence = $iVal['Sequence'] + $diffDay + $i;
                                        $itinerarayarr['Sequence'] = (int) $mSequence;
                                        $itinerarayarr['Title'] = '';
                                        $itinerarayarr['Details'] = '';
                                        $retTpIntSysId = $objPackage->insertData('TB_TravelPlan_Itenary', $itinerarayarr);
                                        if ($retTpIntSysId > 0) {
                                            $ItenPalceData = array(
                                                'TPSysId' => (int) $value,
                                                'TPIntSysId' => $retTpIntSysId,
                                                'AgencySysId' => (int) $itinerarayarr['AgencySysId'],
                                                'PlaceSysId' => ($UpdatedCitySysId != $PlaceSysId) ? $UpdatedCitySysId : $PlaceSysId,
                                                'Sequence' => (int) $mSequence,
                                                'CreateDate' => date('Y-m-d'),
                                                'UpdateDate' => date('Y-m-d'),
                                                'IsMarkForDel' => '0',
                                                'IsActive' => '1'
                                            );
                                            $objPackage->addFlexiPackageItenPlaces($ItenPalceData);
                                        }


                                        if ($i < $totalInsert) {
                                            if (!empty($flexiPackageItenAccom) && $retTpIntSysId > 0 && $UpdatedCitySysId == $cityid) {
                                                foreach ($flexiPackageItenAccom as $accKey => $accValue) {
                                                    $accValue['TPIntSysId'] = $retTpIntSysId;
                                                    unset($accValue['VersionId']);
                                                    $objPackage->insertData('TB_TravelPlan_Itenary_Accom', $accValue);
                                                }
                                            }
                                        }
                                    }
                                    $NextSequence = $NextMinDays = $itinerarayarr['TotalMinDays'] + $Nights;
                                    $itndataIM = array(
                                        'TotalMinDays' => $itinerarayarr['TotalMinDays'],
                                        'TotalMaxDays' => $NextMinDays,
                                        'UpdateDate' => date('Y-m-d'),
                                        'CitySysId' => $UpdatedCitySysId,
                                        'Cities' => $UpdatedCityName
                                    );

                                    $whereIM = array('TPSysId = ? ' => $value, 'TotalMinDays =? ' => $from, 'TotalMaxDays =? ' => $to, 'CitySysId =? ' => $cityid);
                                    $objPackage->updateData('TB_TravelPlan_Itenary', $itndataIM, $whereIM);
                                }
                                if ($count == $diffDay) {

                                    if (!empty($flexiPackageItenAccom) && $iVal['TPIntSysId'] > 0 && $UpdatedCitySysId == $cityid) {
                                        foreach ($flexiPackageItenAccom as $accKey => $accValue) {
                                            $accValue['TPIntSysId'] = $iVal['TPIntSysId'];
                                            unset($accValue['VersionId']);
                                            $objPackage->insertData('TB_TravelPlan_Itenary_Accom', $accValue);
                                        }
                                    }
                                }
                            } else if ($Nights < $diffDay) {
                                $totalUpdate = $diffDay - $Nights;
                                $whereI = array('TPIntSysId = ? ' => $iVal['TPIntSysId']);
                                if ($count > (int) $Nights) {
                                    $itndataI = array(
                                        'IsMarkForDel' => 1,
                                        'UpdateDate' => date('Y-m-d')
                                    );
                                    $objPackage->updateData('TB_TravelPlan_Itenary', $itndataI, $whereI);
                                    $objPackage->updateData('TB_TravelPlan_Itenary_Places', $itndataI, $whereI);
                                    $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $itndataI, $whereI);
                                } else {
                                    $NextSequence = $NextMinDays = $iVal['TotalMinDays'] + $Nights;
                                    $itndataI = array(
                                        'TotalMinDays' => $iVal['TotalMinDays'],
                                        'TotalMaxDays' => $NextMinDays,
                                        'UpdateDate' => date('Y-m-d'),
                                        'CitySysId' => $UpdatedCitySysId,
                                        'Cities' => $UpdatedCityName,
                                    );
                                    $objPackage->updateData('TB_TravelPlan_Itenary', $itndataI, $whereI);
                                    if ($count == (int) $Nights) {
                                        $itndataII = array(
                                            'IsMarkForDel' => 1,
                                            'UpdateDate' => date('Y-m-d')
                                        );
                                        $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $itndataII, $whereI);
                                    }
                                }
                            } else {
                                $NextSequence = $NextMinDays = $iVal['TotalMinDays'] + $Nights;
                                $itndataI = array(
                                    'CitySysId' => $UpdatedCitySysId,
                                    'Cities' => $UpdatedCityName,
                                    'UpdateDate' => date('Y-m-d'),
                                );
                                $whereI = array('TPIntSysId = ? ' => $iVal['TPIntSysId']);
                                $objPackage->updateData('TB_TravelPlan_Itenary', $itndataI, $whereI);
                            }
                            if ($UpdatedCitySysId != $cityid) {
                                $updatePlaces = [
                                    'PlaceSysId' => $UpdatedCitySysId,
                                ];
                                $updateAccom = [
                                    'IsMarkForDel' => 1,
                                    'UpdateDate' => date('Y-m-d')
                                ];
                                $updateSight = [
                                    'IsMarkForDelete' => 1,
                                    'UpdateDate' => date('Y-m-d')
                                ];
                                $whereAc = array('TPIntSysId = ? ' => $iVal['TPIntSysId']);
                                $whereSi = array('InvnItemSysId = ? ' => $iVal['TPIntSysId']);
                                $objPackage->updateData('TB_TravelPlan_Itenary_Places', $updatePlaces, $whereAc);
                                $objPackage->updateData('TB_TravelPlan_Itenary_Accom', $updateAccom, $whereAc);
                                $objPackage->updateData('TB_TravelPlan_SightSeeing', $updateSight, $whereSi);
                            }

                            $count++;
                        } else {
                            if ($TotalMinDays != $TotalMinDaysPreCh && $CitySysId != $cityidCheck) {
                                $diffff = $TotalMaxDays - $TotalMinDays;
                                $NextMinDaysEN = $NextMinDays;
                                $NextMaxDaysEN = $NextMinDays + $diffff;
                                $NextSequence = $NextMinDays;
                            }
                            $itndataIM = array(
                                'Sequence' => (int) $NextSequence,
                                'TotalMinDays' => (int) $NextMinDaysEN,
                                'TotalMaxDays' => (int) $NextMaxDaysEN,
                                'UpdateDate' => date('Y-m-d')
                            );
                            $itndataIPM = array(
                                'Sequence' => (int) $NextSequence,
                                'UpdateDate' => date('Y-m-d')
                            );
                            $whereIM = array('TPIntSysId = ? ' => $iVal['TPIntSysId']);
                            $objPackage->updateData('TB_TravelPlan_Itenary', $itndataIM, $whereIM);
                            $objPackage->updateData('TB_TravelPlan_Itenary_Places', $itndataIPM, $whereIM);

                            $NextSequence++;
                            $NextMinDays = $NextMaxDaysEN;
                            $TotalMinDaysPreCh = $TotalMinDays;
                            $cityidCheck = $CitySysId;
                        }
                    }
                }
            }
            //            die('here');
            $response = array('status' => true, 'message' => 'Updated Successfully.');
            echo json_encode($response);
            exit;
        } else {
            $response = array('status' => false, 'message' => 'Missing Parameters.');
            echo json_encode($response);
            exit;
        }
    }

    public function updateTodateAction() {
        $this->_helper->layout->disableLayout();
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        if (!empty($getData)) {

            $TPIntSysId = $getData['inpack'];
            $MarketPlaceId = $getData['masterplacid'];
            $PackCategoryId = $getData['packcat'];
            $Old_Todate = $getData['Old_Todate'];
            $Old_fromdate = $getData['Old_Fromdate'];
            $IsFixedDeparture = isset($getData['IsFixedDeparture']) && ($getData['IsFixedDeparture'] != 0) ? 1 : 0;

            $Todate = date("Y-m-d", strtotime(str_replace('/', '-', $getData['todate'])));
            if ($IsFixedDeparture == 1) {
                $update = array('ToDate' => $Todate, 'FromDate' => $Todate);
                $update1 = array('ValidTill' => $Todate, 'StartDate' => $Todate);
            } else {
                $update = array('ToDate' => $Todate);
                $update1 = array('ValidTill' => $Todate);
            }
            $where = array('TPIntSysId =?' => $TPIntSysId, 'CONVERT(date, FromDate) = ?' => $Old_fromdate, 'CONVERT(date, ToDate) = ?' => $Old_Todate, 'MarketPlaceId =?' => $MarketPlaceId, 'AgencySysId =?' => $intLoggedinUserAgencySysId, 'PackCategoryId =?' => $PackCategoryId);
            $where1 = array('TPSysId =?' => $TPIntSysId, 'MarketPlaceId =?' => $MarketPlaceId, 'CONVERT(date, StartDate) = ?' => $Old_fromdate, 'CONVERT(date, ValidTill) = ?' => $Old_Todate, 'IsMarkForDel =?' => 0);
            try {
                $objPackage->updateData('TB_TravelPlan_MarketWise_Rate', $update, $where);
                $objPackage->updateData('TB_TravelPlan_Rate', $update1, $where1);
                $response = array("status" => True, "Message" => "Updated Successfully.");
            } catch (Zend_Exception $e) {
                $response = array("status" => False, "Message" => $e->getMessage());
            }
        } else {
            $response = array("status" => False, "Message" => "Please Use Post Method");
        }
        echo json_encode($response);
        exit;
    }

    public function sharepopupreadymadenewAction() {
//        error_reporting(E_ALL);
        $this->_helper->layout->disableLayout();

        $TaxLabelId = $_SESSION['sessionLogin_user']['agencyDetails']['TaxLabelId'];
        $objPackage = new Travel_Model_TblPackage();
        $objAgency = new Travel_Model_TblAgency();
        $markupMdl = new Markup_Model_Markup();
        $getData = $this->getRequest()->getPost();

        $tpsysID = $getData['packid'];

        if (isset($getData['IsOfflineBooking']) && $getData['IsOfflineBooking'] == 1) {
            $front = Zend_Controller_Front::getInstance();
            $front->setParam('noViewRenderer', true);
        }

        $data = json_decode(base64_decode($getData['packagedata']), 1);
        $flexiPackageList = $data['flexiPackageList'];
        $marketwiseratebyo = $data['marketwiseratebyo'];
        $totalDays = $data['totalDays'];
        $totalNight = $data['totalNight'];
        $flexiPackagePlaces = $data['flexiPackagePlaces'];
        $customerDetails = $data['customerDetails'];
        $currencyarr = $data['currencyarr'];
        $queryTPSysId = $data['queryTPSysId'];
        $MpType = $data['MpType'];
        $GTXNetwork = $data['GTXNetwork'];
        $popuppackageType = 'readymade';
        $departureCity = $data['departureCity'];
        $pkgCheckInDate = $getData['pkgCheckInDate'];
        $pkgCheckOutDate = $getData['pkgCheckOutDate'];
        $MarketPlaceId = isset($MpType) ? $MpType : 1;
        $IsB2BCustomer = isset($customerDetails['IsB2BAgent']) ? $customerDetails['IsB2BAgent'] : 0;
        $B2BAgencySysId = isset($customerDetails['AgencySysId']) ? $customerDetails['AgencySysId'] : 0;
        if ($customerDetails['IsB2BAgent'] == 1) {
            $MarketPlaceId = 2;
        }
        $getTaxSettingDetail = $getTaxSettingFlight = $getTaxSettingVisa = $getTcsSettingDetail = array();
        if ($TaxLabelId > 0) {
            $getTaxSettingDetail = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 5);
            $getTaxSettingFlight = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 1);
            $getTaxSettingVisa = $markupMdl->getTaxSettingDetail("TB_Master_Agency_Tax_Settings", $this->intLoggedinUserAgencySysId, 0, 0, 6);
            $getTcsSettingDetail = $objAgency->getTcsSettingDetail($this->intLoggedinUserAgencySysId);
        }

        $FlightDetails = $_SESSION['package_flightdetails'];
        $totaladult = $totalchild = $totalInfant = 0;
        $roomjson = array();
        $roomlp = $getData['roomlp'];
        for ($k = 1; $k <= $roomlp; $k++) {
            $roomjson[$k]['Adult'] = $getData['adult_' . $k];
            $roomjson[$k]['adult_type'] = $getData['adult_type_' . $k];
            if ($roomjson[$k]['Adult'] == 3) {
                $roomjson[$k]['AdultBedType'] = $getData['adultcl_extrabed_' . $k . '_3'];
            }
            $totaladult = $totaladult + $roomjson[$k]['Adult'];
            $roomjson[$k]['Child'] = $getData['child_' . $k];
            $totalchild = $totalchild + $roomjson[$k]['Child'];
            $roomjson[$k]['Infant'] = $getData['infant_' . $k];
            $totalInfant = $totalInfant + $roomjson[$k]['Infant'];
            for ($j = 1; $j <= $roomjson[$k]['Child']; $j++) {
                $roomjson[$k]['ChildAge_' . $j] = $getData['child_age_' . $k . '_' . $j];
                $roomjson[$k]['ChildBedType_' . $j] = $getData['child_extrabed_' . $k . '_' . $j];
            }
            $roomjson[$k]['departuredate'] = $pkgCheckInDate;
            $roomjson[$k]['returndate'] = $pkgCheckOutDate;
        }

        $travelers = $totaladult + $totalchild + $totalInfant;
        $tripdate = date("Y-m-d", strtotime(str_replace('/', '-', $pkgCheckInDate)));
        $CurrencyHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency');
        $baseCurrencySymbol = $CurrencyHelperObj->getLoggedInAgencyBaseCurrency();
        $baseCurrencyId = $CurrencyHelperObj->getLoggedInAgencyBaseCurrencyId(); // agency's currency 

        if ($flexiPackageList['MasterRefId'] == '0') {
            $childpackarr = $objPackage->getChildPackageList($flexiPackageList['TPSysId']);
        } else {
            $childpackarr = $objPackage->getChildPackageList($flexiPackageList['MasterRefId']);
        }
        $MasterId = $flexiPackageList['TPSysId'];
        if (!empty($childpackarr)) {
            $l = 0;
            foreach ($childpackarr as $val) {
                if ($val['MasterRefId'] == '0') {
                    $MasterId = $val['TPSysId'];
                }
                $inventoryData[$l] = $val['TPSysId'];
                $l++;
            }
        }

        $getPackageTaxSettingDetail = $markupMdl->getGstTcsSettingsByTPSysId($MasterId);

        if (isset($flexiPackageList['IsFixedDeparturePackage']) && ($flexiPackageList['IsFixedDeparturePackage'] == 1)) {
            $fetchFDDate = $tripdate;
            $dipartureCity = $getData['dipartureCity'];

            if ($fetchFDDate != "") {

                $AdultCount = $totaladult;
                $ChildCount = $totalchild;
                $InfentCount = $totalInfant;
                $totalPaxCount = $AdultCount + $ChildCount + $InfentCount;

                $checkavalability = $objPackage->checkFixedDeparturePackageInventory($inventoryData, $tripdate, $totalPaxCount);

                $responseArray['IsFixedDeparture'] = 1;
                $responseArray['IsFixedInventory'] = 0;
                if (!empty($checkavalability)) {
                    $responseArray['IsFixedInventory'] = 1;
                }
                $FDCost = array();
                if ($dipartureCity > 0) {
                    $FDCost = $objPackage->getFlightPriceForFixedDeparture($MasterId, $tripdate, $dipartureCity);
                }
                $FDAdultMarkup = $FDInfantMarkup = $FDAdultCost = $FDInfantCost = 0;
                $FlightExchangeRate = 1;
                if (!empty($FDCost)) {

                    if ($FDCost['CurrencySysId'] != $baseCurrencyId) {
                        $FlightExchangeRate = $objPackage->currencyExchangeRate($FDCost['CurrencySysId'], $baseCurrencyId);
                    }


                    $FDAdultCost = ((float) $FDCost['AdultCost']) * ($AdultCount);
                    $FDChildCost = ((float) $FDCost['AdultCost']) * ($ChildCount);
                    $FDInfantCost = ((float) $FDCost['InfantCost']) * $InfentCount;
                    if ($MarketPlaceId == 1) {
                        if ($FDCost['MarkupType'] == 1) {
                            $FDAdultMarkup = $FDCost['B2CAdultMarkup'];
                            $FDChildMarkup = $FDCost['B2CAdultMarkup'];
                            $FDInfantMarkup = $FDCost['B2CInfantMarkup'];
                        } else {
                            $FDAdultMarkup = ($FDAdultCost * $FDCost['B2CAdultMarkup']) / 100;
                            $FDChildMarkup = ($FDChildCost * $FDCost['B2CAdultMarkup']) / 100;
                            $FDInfantMarkup = ($FDInfantCost * $FDCost['B2CInfantMarkup']) / 100;
                        }
                    } else {
                        if ($FDCost['MarkupType'] == 1) {
                            $FDAdultMarkup = $FDCost['B2BAdultMarkup'] * $AdultCount;
                            $FDChildMarkup = $FDCost['B2BAdultMarkup'] * $ChildCount;
                            $FDInfantMarkup = $FDCost['B2BInfantMarkup'] * $InfentCount;
                        } else {
                            $FDAdultMarkup = ($FDAdultCost * $FDCost['B2BAdultMarkup']) / 100;
                            $FDChildMarkup = ($FDChildCost * $FDCost['B2BAdultMarkup']) / 100;
                            $FDInfantMarkup = ($FDInfantCost * $FDCost['B2BInfantMarkup']) / 100;
                        }
                    }
                }
                $FDAdultMarkup = $FDAdultMarkup * ($AdultCount);
                $FDChildMarkup = $FDChildMarkup * ($ChildCount);
                $FDInfantMarkup = $FDInfantMarkup * $InfentCount;
                $totalFDMarkup = $FDAdultMarkup + $FDChildMarkup + $FDInfantMarkup;
                $flightTaxType = $flightGstPercentage = $landFlightGstTaxId = 0;
                if (!empty($getPackageTaxSettingDetail)) {
                    foreach ($getTaxSettingFlight as $gstflightVal) {
                        if ($getPackageTaxSettingDetail['GstActivated'] == 1 && $getPackageTaxSettingDetail['GSTFlight'] == $gstflightVal['TaxSysId']) {
                            $flightGstPercentage = $gstflightVal['TaxPercentage'];
                            $flightTaxType = $gstflightVal['TaxType'];
                            $landFlightGstTaxId = $gstflightVal['TaxSysId'];
                        }
                    }
                } else {
                    foreach ($getTaxSettingFlight as $gstflightVal) {
                        if ($gstflightVal['DefaultSelect'] == 1) {
                            $flightGstPercentage = $gstflightVal['TaxPercentage'];
                            $flightTaxType = $gstflightVal['TaxType'];
                            $landFlightGstTaxId = $gstflightVal['TaxSysId'];
                        }
                    }
                }
                $tcsAmountF = $GSTAmountF = 0;
                if ($getPackageTaxSettingDetail['TcsActivated'] == 1 && $getPackageTaxSettingDetail['TcsFlight'] == $getTcsSettingDetail['TcsTaxSysId']) {
                    if ($getTcsSettingDetail['IsDefaultWeb'] == 1) {
                        $tcsPercentageF = $getTcsSettingDetail['IsPanCard'];
                    } else if ($getTcsSettingDetail['IsDefaultWeb'] == 2) {
                        $tcsPercentageF = $getTcsSettingDetail['IsNotPanCard'];
                    } else {
                        $tcsPercentageF = 0;
                    }
                }
                if ($flightGstPercentage > 0) {
                    if ($flightTaxType == 2) {
                        $GSTAmountF = $flightGstPercentage / 100 * (float) $totalFDMarkup;
                    } else if ($flightTaxType == 1) {
                        $GSTAmountF = $flightGstPercentage / 100 * ((float) $FDAdultCost + (float) $FDChildCost + (float) $FDInfantCost + (float) $totalFDMarkup);
                    } else {
                        $GSTAmountF = 0;
                    }
                }
                if ($tcsPercentageF > 0 && $getPackageTaxSettingDetail['TcsFlight'] == 1) {
                    $tcsAmountF = $tcsPercentageF / 100 * ((float) $FDAdultCost + (float) $FDChildCost + (float) $FDInfantCost + (float) $totalFDMarkup + $GSTAmountF);
                }
                $TotalPriceF = (float) $FDAdultCost + (float) $FDChildCost + (float) $FDInfantCost + (float) $totalFDMarkup + (float) $GSTAmountF;
                if ($TotalPriceF > 0) {
//                echo"<pre>";print_r($getTaxSettingFlight); die;
                    $arraySet[1]["Service"] = "Flight";
                    $arraySet[1]["PlanType"] = 1;
                    $arraySet[1]["SourcingCurrency"] = trim($FDCost['Symbol']);
                    $arraySet[1]["SourceMarkup"] = round((float) $totalFDMarkup, 2);
                    $arraySet[1]["Rate"] = round(((float) $FDAdultCost + (float) $FDChildCost + (float) $FDInfantCost), 2);
                    $arraySet[1]["ConversionRate"] = (float) $FlightExchangeRate;
                    $FDAdultCost = $FDAdultCost * $FlightExchangeRate;
                    $FDChildCost = $FDChildCost * $FlightExchangeRate;
                    $FDInfantCost = $FDInfantCost * $FlightExchangeRate;
                    $FDAdultMarkup = $FDAdultMarkup * $FlightExchangeRate;
                    $FDChildMarkup = $FDChildMarkup * $FlightExchangeRate;
                    $FDInfantMarkup = $FDInfantMarkup * $FlightExchangeRate;
                    $totalFDMarkup = $totalFDMarkup * $FlightExchangeRate;
                    $GSTAmountF = $GSTAmountF * $FlightExchangeRate;
                    $tcsAmountF = $tcsAmountF * $FlightExchangeRate;
                    $TotalPriceF = $TotalPriceF * $FlightExchangeRate;
                    $arraySet[1]["Cost"] = round(((float) $FDAdultCost + (float) $FDChildCost + (float) $FDInfantCost), 2);
                    $arraySet[1]["TotalCost"] = round(((float) $FDAdultCost + (float) $FDChildCost + (float) $FDInfantCost + $totalFDMarkup), 2);
                    $arraySet[1]["Markup"] = round((float) $totalFDMarkup, 2);
                    $arraySet[1]["Currency"] = $baseCurrencySymbol;
                    $arraySet[1]["Discount"] = 0;
                    $arraySet[1]["Tax"] = $landFlightGstTaxId;
                    $arraySet[1]["Tcs"] = $getPackageTaxSettingDetail['TcsFlight'];
                    $arraySet[1]["TaxPercentage"] = $flightGstPercentage;
                    $arraySet[1]["GSTAmount"] = round($GSTAmountF, 2);
                    $arraySet[1]["TCSPercentage"] = $tcsPercentageF;
                    $arraySet[1]["TCSAmount"] = round($tcsAmountF, 2);
                    $arraySet[1]["TotalPrice"] = round($TotalPriceF, 2);
//                 echo"<pre>";print_r($arraySet);die('dd');
//                }
                }
            }

            $GSTAmountFPP = $GSTAmountF / $totalPaxCount;
            $GSTAmountFPPAdult = $GSTAmountFPP * $AdultCount;
            $GSTAmountFPPChild = $GSTAmountFPP * $ChildCount;
            $GSTAmountFPPInfant = $GSTAmountFPP * $InfentCount;
            $encodedata = array(
                'adult_total' => $FDAdultCost + $FDAdultMarkup + $GSTAmountFPPAdult,
                'adult_cost_pp' => (float) $FDCost['AdultCost'],
                'adult_markup' => $FDAdultMarkup,
                'adult_gst' => $GSTAmountFPPAdult,
                'adult_pax' => $AdultCount,
                'child_total' => (float) $FDChildCost + $FDChildMarkup + $GSTAmountFPPChild,
                'child_cost_pp' => (float) $FDCost['AdultCost'],
                'child_markup' => $FDChildMarkup,
                'child_gst' => $GSTAmountFPPChild,
                'child_pax' => $ChildCount,
                'infant_total' => (float) $FDInfantCost + $FDInfantMarkup + $GSTAmountFPPInfant,
                'infant_cost_pp' => (float) $FDCost['InfantCost'],
                'infant_markup' => $FDInfantMarkup,
                'infant_gst' => $GSTAmountFPPInfant,
                'infant_pax' => $InfentCount
            );
            $package_flightdetails[] = array(
                'AdultPax' => $AdultCount,
                'ChildPax' => $ChildCount,
                'InfentPax' => $InfentCount,
                'encodedata' => json_encode($encodedata),
            );
            $_SESSION['package_flightdetailsFD'] = $package_flightdetails;
            // echo"<pre>";print_r($package_flightdetails);die('dd');
        } else if (isset($FlightDetails['totalflightcost']) && $FlightDetails['totalflightcost'] > 0) {
            foreach ($getTaxSettingFlight as $gstflightVal) {
                if ($gstflightVal['DefaultSelect'] == 1) {
                    $flightGstPercentage = $gstflightVal['TaxPercentage'];
                    $flightTaxType = $gstflightVal['TaxType'];
                    $landFlightGstTaxId = $gstflightVal['TaxSysId'];
                }
            }
            $GSTAmountF = 0;
            if ($flightGstPercentage > 0) {
                if ($flightTaxType == 2) {
                    $GSTAmountF = $flightGstPercentage / 100 * (float) $FlightDetails['total_markup'];
                } else if ($flightTaxType == 1) {
                    $GSTAmountF = $flightGstPercentage / 100 * ((float) $FlightDetails['totalcost_wom'] + (float) $FlightDetails['total_markup']);
                } else {
                    $GSTAmountF = 0;
                }
            }
            $FlightExchangeRate = 1;
//            echo"<pre>";print_r($FlightDetails);die('dd');
            $arraySet[1]["Service"] = "Flight";
            $arraySet[1]["PlanType"] = 1;
            $arraySet[1]["SourcingCurrency"] = $baseCurrencySymbol;
            $arraySet[1]["SourceMarkup"] = round((float) $FlightDetails['total_markup'], 2);
            $arraySet[1]["Rate"] = round((float) $FlightDetails['totalcost_wom'], 2);
            $arraySet[1]["ConversionRate"] = (float) $FlightExchangeRate;
            $arraySet[1]["Cost"] = round((float) $FlightDetails['totalcost_wom'], 2);
            $arraySet[1]["TotalCost"] = round(((float) $FlightDetails['totalcost_wom'] + (float) $FlightDetails['total_markup']), 2);
            $arraySet[1]["Markup"] = round((float) $FlightDetails['total_markup'], 2);
            $arraySet[1]["Currency"] = $baseCurrencySymbol;
            $arraySet[1]["Discount"] = 0;
            $arraySet[1]["Tax"] = (int) $landFlightGstTaxId;
            $arraySet[1]["Tcs"] = isset($getPackageTaxSettingDetail['TcsLandPackage']) ? $getPackageTaxSettingDetail['TcsLandPackage'] : 0;
            $arraySet[1]["TaxPercentage"] = '';
            $arraySet[1]["GSTAmount"] = round($GSTAmountF, 2);
            $arraySet[1]["TCSPercentage"] = '';
            $arraySet[1]["TCSAmount"] = '';
            $arraySet[1]["TotalPrice"] = round(($FlightDetails['totalflightcost'] + $GSTAmountF), 2);
        } else if (isset($FlightDetails['grand_total']) && !empty($FlightDetails['grand_total'])) {
            foreach ($getTaxSettingFlight as $gstflightVal) {
                if ($gstflightVal['DefaultSelect'] == 1) {
                    $flightGstPercentage = $gstflightVal['TaxPercentage'];
                    $flightTaxType = $gstflightVal['TaxType'];
                    $landFlightGstTaxId = $gstflightVal['TaxSysId'];
                }
            }

            $total_cost = (isset($FlightDetails['total_cost']) && is_array($FlightDetails['total_cost'])) ? (float) array_sum($FlightDetails['total_cost']) : (float) $FlightDetails['total_cost'];
            $total_markup = (isset($FlightDetails['total_markup']) && is_array($FlightDetails['total_markup'])) ? (float) array_sum($FlightDetails['total_markup']) : (float) $FlightDetails['total_markup'];

            $grand_total = (isset($FlightDetails['grand_total']) && is_array($FlightDetails['grand_total'])) ? (float) array_sum($FlightDetails['grand_total']) : (float) $FlightDetails['grand_total'];

            $GSTAmountF = 0;
            if ($flightGstPercentage > 0) {
                if ($flightTaxType == 2) {
                    $GSTAmountF = $flightGstPercentage / 100 * (float) $total_markup;
                } else if ($flightTaxType == 1) {
                    $GSTAmountF = $flightGstPercentage / 100 * ((float) $total_cost + (float) $total_markup);
                } else {
                    $GSTAmountF = 0;
                }
            }

            $FlightExchangeRate = 1;
            //echo"<pre>";print_r($FlightDetails);die('dd');
            $arraySet[1]["Service"] = "Flight";
            $arraySet[1]["PlanType"] = 1;
            $arraySet[1]["SourcingCurrency"] = $baseCurrencySymbol;
            $arraySet[1]["SourceMarkup"] = round((float) $total_markup, 2);
            $arraySet[1]["Rate"] = round((float) $total_cost, 2);
            $arraySet[1]["ConversionRate"] = (float) $FlightExchangeRate;
            $arraySet[1]["Cost"] = round((float) $total_cost, 2);
            $arraySet[1]["TotalCost"] = round(((float) $total_cost + (float) $total_markup), 2);
            $arraySet[1]["Markup"] = round((float) $total_markup, 2);
            $arraySet[1]["Currency"] = $baseCurrencySymbol;
            $arraySet[1]["Discount"] = 0;
            $arraySet[1]["Tax"] = (int) $landFlightGstTaxId;
            $arraySet[1]["Tcs"] = isset($getPackageTaxSettingDetail['TcsLandPackage']) ? $getPackageTaxSettingDetail['TcsLandPackage'] : 0;
            $arraySet[1]["TaxPercentage"] = '';
            $arraySet[1]["GSTAmount"] = round((float) $GSTAmountF, 2);
            $arraySet[1]["TCSPercentage"] = '';
            $arraySet[1]["TCSAmount"] = '';
            $arraySet[1]["TotalPrice"] = round(((float) $grand_total + $GSTAmountF), 2);
        }

        $strRoomInfoJson = json_encode($roomjson);
        $paxCount = array_sum((array_column($roomjson, 'Adult')));
        $packid = $flexiPackageList['TPSysId'];
        $packRate = $objPackage->getPackRateRowWise($packid, $tripdate, $MarketPlaceId, $paxCount, $strRoomInfoJson);
        $packMPRate = $objPackage->getPackMPRate($packid, $travelers, $tripdate, $MarketPlaceId);
        $arrPkg['ShareCurrency'] = $baseCurrencyId . '_' . $baseCurrencySymbol;
        $arrPkg['MasterTPId'] = $MasterId;
        if ($MarketPlaceId == 2 && (int) $getData['aId'] > 0) {
            $MarkPercentageForAgent = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getMarkPercentageForAgent($getData['aId'], $B2BAgencySysId);
            if ($MarkPercentageForAgent > 0) {
                $packMPRate[0]['MarkPercent'] = $MarkPercentageForAgent;
            }
        }
        if ($data['popuppackageType'] == 'dynamic') {
            $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getDynamicPrivateRates($flexiPackageList, $marketwiseratebyo);
        } else {
            $arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->GetAgencyCustomerTravelPlanCost($packid, $strRoomInfoJson, $arrPkg, $packMPRate[0], $packRate[0], $_REQUEST['ExchangeRate'], $type, $totalactcost, $totalmarkup);
        }

//        echo"<pre>";
//        print_r($marketwiseratebyo);
//        die('ddk');

        $FinalCost = isset($arrPkgCost['FinalCost']) ? $arrPkgCost['FinalCost'] : 0;
        $FinalMarkUp = isset($arrPkgCost['FinalMarkUp']) ? $arrPkgCost['FinalMarkUp'] : 0;
        $landPkgGstTaxType = $landPkgGstPercentage = $landPkgTcsPercentage = $landPkgGstTaxId = 0;
        if (!empty($getPackageTaxSettingDetail)) {
            if (!empty($getTaxSettingDetail)) {
                foreach ($getTaxSettingDetail as $gstVal) {
                    if ($getPackageTaxSettingDetail['GstActivated'] == 1 && $getPackageTaxSettingDetail['GSTLandPackage'] == $gstVal['TaxSysId']) {
                        $landPkgGstTaxType = $gstVal['TaxType'];
                        $landPkgGstPercentage = $gstVal['TaxPercentage'];
                        $landPkgGstTaxId = $gstVal['TaxSysId'];
                    }
                }
            }
        } else {
            if (!empty($getTaxSettingDetail)) {
                foreach ($getTaxSettingDetail as $gstVal) {
                    if ($gstVal['DefaultSelect'] == 1) {
                        $landPkgGstTaxType = $gstVal['TaxType'];
                        $landPkgGstPercentage = $gstVal['TaxPercentage'];
                        $landPkgGstTaxId = $gstVal['TaxSysId'];
                    }
                }
            }
        }
        $tcsAmount = $GSTAmount = 0;
        if (!empty($getPackageTaxSettingDetail) && !empty($getTcsSettingDetail)) {
            if ($getPackageTaxSettingDetail['TcsActivated'] == 1 && $getPackageTaxSettingDetail['TcsLandPackage'] == $getTcsSettingDetail['TcsTaxSysId']) {
                if ($getTcsSettingDetail['IsDefaultWeb'] == 1) {
                    $landPkgTcsPercentage = $getTcsSettingDetail['IsPanCard'];
                } else if ($getTcsSettingDetail['IsDefaultWeb'] == 2) {
                    $landPkgTcsPercentage = $getTcsSettingDetail['IsNotPanCard'];
                } else {
                    $landPkgTcsPercentage = 0;
                }
            }
        }

        if ($landPkgGstTaxType == 1 && $landPkgGstPercentage > 0) {
            $GSTAmount = ((float) ($FinalCost + $FinalMarkUp) * $landPkgGstPercentage) / 100;
        } elseif ($landPkgGstTaxType == 2 && $landPkgGstPercentage > 0) {
            $GSTAmount = ((float) $FinalMarkUp * $landPkgGstPercentage) / 100;
        } else {
            $GSTAmount = 0;
        }
        if ($landPkgTcsPercentage > 0 && !empty($getPackageTaxSettingDetail) && $getPackageTaxSettingDetail['TcsLandPackage'] == 1) {
            $tcsAmount = $landPkgTcsPercentage / 100 * ((float) $FinalCost + (float) $FinalMarkUp + $GSTAmount);
        }
        $landPkgTotalPrice = (float) $FinalCost + (float) $FinalMarkUp + $GSTAmount;
        $visaTaxType = $visaGstPercentage = $landVIsaGstTaxId = 0;
        if ($arrPkgCost['VisaTotalFinal'] > 0) {
            if (!empty($getPackageTaxSettingDetail)) {
                if (!empty($getTaxSettingVisa)) {
                    foreach ($getTaxSettingVisa as $gstVisaVal) {
                        if ($getPackageTaxSettingDetail['GstActivated'] == 1 && $getPackageTaxSettingDetail['GSTVisa'] == $gstVisaVal['TaxSysId']) {
                            $visaGstPercentage = $gstVisaVal['TaxPercentage'];
                            $visaTaxType = $gstVisaVal['TaxType'];
                            $landVIsaGstTaxId = $gstVisaVal['TaxSysId'];
                        }
                    }
                }
            } else {
                if (!empty($getTaxSettingVisa)) {
                    foreach ($getTaxSettingVisa as $gstVal) {
                        if ($gstVal['DefaultSelect'] == 1) {
                            $visaTaxType = $gstVal['TaxType'];
                            $visaGstPercentage = $gstVal['TaxPercentage'];
                            $landVIsaGstTaxId = $gstVal['TaxSysId'];
                        }
                    }
                }
            }
//            echo "<pre>";print_r($landVIsaGstTaxId);die;
            $tcsAmountV = $GSTAmountV = 0;
            if (!empty($getPackageTaxSettingDetail)) {
                if ($getPackageTaxSettingDetail['TcsActivated'] == 1 && $getPackageTaxSettingDetail['TcsVisa'] == $getTcsSettingDetail['TcsTaxSysId']) {
                    if ($getTcsSettingDetail['IsDefaultWeb'] == 1) {
                        $tcsPercentageV = $getTcsSettingDetail['IsPanCard'];
                    } else if ($getTcsSettingDetail['IsDefaultWeb'] == 2) {
                        $tcsPercentageV = $getTcsSettingDetail['IsNotPanCard'];
                    } else {
                        $tcsPercentageV = 0;
                    }
                }
            }
            if ($visaGstPercentage > 0) {
                if ($visaTaxType == 2) {
                    $GSTAmountV = $visaGstPercentage / 100 * (float) $arrPkgCost['VisaMarkup'];
                } else if ($flightTaxType == 1) {
                    $GSTAmountV = $visaGstPercentage / 100 * ((float) (float) $arrPkgCost['VisaCost'] + (float) $arrPkgCost['VisaMarkup']);
                } else {
                    $GSTAmountV = 0;
                }
            }

            if ($tcsPercentageV > 0 && $getPackageTaxSettingDetail['TcsVisa'] == 1) {
                $tcsAmountV = $tcsPercentageV / 100 * ((float) $arrPkgCost['VisaCost'] + (float) $arrPkgCost['VisaMarkup'] + $GSTAmountV);
            }
            $visaTotalPrice = (float) $arrPkgCost['VisaTotalFinal'] + $GSTAmountV;
            $arraySet[6]["Service"] = "Visa";
            $arraySet[6]["PlanType"] = 6;
            $arraySet[6]["SourcingCurrency"] = $arrPkgCost['VisaCurrencySymbol'];
            $arraySet[6]["SourceMarkup"] = round((float) $arrPkgCost['VisaMarkup'], 2);
            $arraySet[6]["Rate"] = round((float) $arrPkgCost['VisaCost'], 2);
            $arraySet[6]["ConversionRate"] = $arrPkgCost['VisaExchangeRate'];
            $arraySet[6]["Cost"] = round((float) $arrPkgCost['VisaCost'], 2);
            $arraySet[6]["TotalCost"] = round((float) $arrPkgCost['VisaTotalFinal'], 2);
            $arraySet[6]["Markup"] = round(((float) $arrPkgCost['VisaMarkup'] + $arrPkgCost['ServiceProviderFee']), 2);
            $arraySet[6]["Currency"] = $arrPkgCost['ToCurrencySymbol'];
            $arraySet[6]["Discount"] = 0;
            $arraySet[6]["Tax"] = $landVIsaGstTaxId;
            $arraySet[6]["Tcs"] = isset($getPackageTaxSettingDetail['TcsVisa']) ? $getPackageTaxSettingDetail['TcsVisa'] : 0;
            $arraySet[6]["TaxPercentage"] = isset($visaGstPercentage) ? $visaGstPercentage : '';
            $arraySet[6]["TaxType"] = isset($visaTaxType) ? $visaTaxType : '';
            $arraySet[6]["GSTAmount"] = isset($GSTAmountV) ? round($GSTAmountV, 2) : 0;
            $arraySet[6]["TCSPercentage"] = $tcsPercentageV;
            $arraySet[6]["TCSAmount"] = isset($tcsAmountV) ? round($tcsAmountV, 2) : 0;
            $arraySet[6]["TotalPrice"] = round($visaTotalPrice, 2);
        }
        $arraySet[0]["Service"] = "Land Package";
        $arraySet[0]["PlanType"] = 5;
        $arraySet[0]["SourcingCurrency"] = $arrPkgCost['SourcingCurrency'];
        $arraySet[0]["SourceMarkup"] = (float) $arrPkgCost['SourcingMarkUp'];
        $arraySet[0]["Rate"] = (float) $arrPkgCost['SourcingNetCost'];
        $arraySet[0]["ConversionRate"] = $arrPkgCost['ExchangeRate'];
        $arraySet[0]["Cost"] = (float) $FinalCost;
        $arraySet[0]["Markup"] = + (float) $FinalMarkUp;
        $arraySet[0]["TotalCost"] = (float) $FinalCost + (float) $FinalMarkUp;
        $arraySet[0]["Currency"] = $arrPkgCost['ToCurrencySymbol'];
        $arraySet[0]["Discount"] = 0;
        $arraySet[0]["Tax"] = $landPkgGstTaxId;
        $arraySet[0]["Tcs"] = isset($getPackageTaxSettingDetail['TcsLandPackage']) ? $getPackageTaxSettingDetail['TcsLandPackage'] : 0;
        $arraySet[0]["TaxPercentage"] = isset($landPkgGstPercentage) ? $landPkgGstPercentage : '';
        $arraySet[0]["TaxType"] = isset($landPkgGstTaxType) ? $landPkgGstTaxType : '';
        $arraySet[0]["GSTAmount"] = isset($GSTAmount) ? $GSTAmount : 0;
        $arraySet[0]["TCSPercentage"] = $landPkgTcsPercentage;
        $arraySet[0]["TCSAmount"] = isset($tcsAmount) ? $tcsAmount : 0;
        $arraySet[0]["TotalPrice"] = $landPkgTotalPrice;
        ksort($arraySet);
        if (isset($getData['IsOfflineBooking']) && $getData['IsOfflineBooking'] == 1) {
            $RetHtml = '';
            foreach ($arraySet as $key => $value) {
                $RetHtmlTax = '';
                if ($key == 1) {
                    $getTaxSettingDetail = $getTaxSettingFlight;
                }
                if ($key == 6) {
                    $getTaxSettingDetail = $getTaxSettingVisa;
                }
                foreach ($getTaxSettingDetail as $txKey => $txVal) {
                    $selected = ($txVal['DefaultSelect'] == 1) ? 'selected' : '';
                    $RetHtmlTax .= '<option value="' . $txVal['TaxSysId'] . '" ' . $selected . '>' . $txVal['TaxName'] . '</option>';
                }
                $PlanType = $value['PlanType'];
                $RetHtml .= '<tr class="PackageDiv">
                            <td>' . ($value['Service']) . '</td>
                            <td> 
                                 <span class="SourcingNetCost' . $key . '">' . ($value['Cost']) . '</span>
                            </td>
                            <td class="paxpricingclass">
                                <span class="landPkgSourceMarkUp' . $key . '">' . ($value['Markup']) . '</span>
                            </td>
                            <td class="option1pricing">
                                <input index="10" name="MarkUp[' . $PlanType . ']" id="landPkgExtraMarkUp' . $key . '" value="0" placeholder="" type="text" class="form-control whbg op1pricingclass op110 landPkgExtraMarkUp' . $key . '" onkeypress="return isNumber(event);" onkeyup="calculateGSTPerItem(' . $key . ')"> 
                            </td>
                            <td class="option1pricing">
                                <input index="10" name="discountValue[' . $PlanType . ']" id="Discount' . $key . '" value="0" placeholder="" type="text" class="form-control whbg op1pricingclass op110 landPkgDiscountVal' . $key . '" onkeypress="return isNumber(event);" onkeyup="calculateGSTPerItem(' . $key . ')"> 
                            </td>
                            <td class="option1pricing">
                                <select name="gsttype[' . $PlanType . ']" class="form-control" placeholder="Select GST"  id="calculateGSTBySelectId' . $key . '"  onchange="calculateGSTBySelectGst(' . $key . ', this);">
                                    ' . $RetHtmlTax . '
                                </select>
                            </td>
                            <td class="option1pricing">
                                <span id="landPkgtaxAmount' . $key . '">' . ($value['GSTAmount']) . '</span>
                            </td>
                            <td class="option1pricing">
                                   <span class="landPkgtotalAmountWithGST" id="landPkgtotalAmountWithGST' . $key . '">' . ($value['TotalPrice']) . '</span>
                            </td>
                        </tr>';
            }


            echo $RetHtml;
            exit;
        }
        $this->view->tpsysID = $tpsysID;
        $this->view->flexiPackageList = $flexiPackageList;
        $this->view->totalDays = $totalDays;
        $this->view->totalNight = $totalNight;
        $this->view->flexiPackagePlaces = $flexiPackagePlaces;
        $this->view->customerDetails = $customerDetails;
        $this->view->currencyarr = $currencyarr;
        $this->view->queryTPSysId = $queryTPSysId;
        $this->view->checkOutDate = $checkOutDate = $pkgCheckOutDate;
        $this->view->checkInDate = $checkInDate = $pkgCheckInDate;
        $this->view->MpType = $MpType;
        $this->view->GTXNetwork = $GTXNetwork;
        $this->view->getTaxSettingDetail = $getTaxSettingDetail;
        $this->view->getTcsSettingDetail = $getTcsSettingDetail;
        $this->view->departureCity = $departureCity;
        $this->view->popuppackageType = $popuppackageType;
        $this->view->getPackageTaxSettingDetail = $getPackageTaxSettingDetail;
        $this->view->pricebrakup = $arraySet;
        $this->view->package_flightdetails = $FlightDetails;
        $this->view->getTaxSettingFlight = $getTaxSettingFlight;
        $this->view->getTaxSettingVisa = $getTaxSettingVisa;
    }

    public function getCurrencyConversionRateAction() {

        $this->_helper->layout->disableLayout();
        $front = Zend_Controller_Front::getInstance();
        $front->setParam('noViewRenderer', true);
        $intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $objPackage = new Travel_Model_TblPackage();
        $CurrencyHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Currency');
        $getData = $this->getRequest()->getPost();

        if (!empty($getData)) {
            $baseCurrencyId = $CurrencyHelperObj->getLoggedInAgencyBaseCurrencyId();
            $ShareCurrency = isset($getData['ShareCurrency']) ? $getData['ShareCurrency'] : 0;
            $ShareCurrencyEx = explode('_', $ShareCurrency);
            $exchangerate = 1;

            if ($baseCurrencyId > 0 && $ShareCurrencyEx[0] > 0) {
                $exchangerate = $objPackage->currencyExchangeRate($baseCurrencyId, $ShareCurrencyEx[0]);
            }
            echo json_encode(array('exchangerate' => $exchangerate, 'CurrencyName' => trim($ShareCurrencyEx[1])));
        }
    }

    public function getAgentVisaReadymadeAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $params = $this->getRequest()->getParams();
        $this->view->params = $params;
//        echo "<pre>";print_r($params);die;
    }

    public function getAgencyVisadetailsByIdAction() {
        $this->_helper->layout->disableLayout();
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $intLoggedinUserAgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $getData = $this->getRequest()->getPost();
        $index = 1;
        $visaId = (isset($getData['VisaId']) && !empty($getData['VisaId'])) ? (int) $getData['VisaId'] : 0;
        $TPSysId = (isset($getData['TPSysId']) && !empty($getData['TPSysId'])) ? (int) $getData['TPSysId'] : 0;
        $agentId = (isset($getData['agentId']) && !empty($getData['agentId'])) ? (int) $getData['agentId'] : 0;
        $cityId = (isset($getData['cityId']) && !empty($getData['cityId'])) ? (int) $getData['cityId'] : 0;
        $tpIntSysId = (isset($getData['tpIntSysId']) && !empty($getData['tpIntSysId'])) ? (int) $getData['tpIntSysId'] : 0;

        $objVisa = new Travel_Model_TblVisa();
        if ($visaId > 0) {
            $VisaDetails = $objVisa->VisaInventoryDetailById($visaId);
            $MarkupVisaList = $objVisa->MarkupVisaList($visaId, $intLoggedinUserAgencySysId);
            $ServiceProviderVisaList = $objVisa->ServiceProviderVisaList($visaId, $intLoggedinUserAgencySysId);
            $this->view->MarketPlace = $objVisa->MarketPlace();
            $this->view->id = $visaId;
            $this->view->index = $index;
            $this->view->TPSysId = $TPSysId;
            $this->view->agentId = $agentId;
            $this->view->cityId = $cityId;
            $this->view->tpIntSysId = $tpIntSysId;
            $objCurrency = new Travel_Model_TblCurrency();
            $this->view->arrCurrencyTypes = $objCurrency->getCurrencyTypes();
            $this->view->VisaDetails = $VisaDetails;
            $this->view->MarkupVisaList = $MarkupVisaList;
            $this->view->ServiceProviderVisaList = $ServiceProviderVisaList;
        }
    }

    public function addPackageReadymadeVisaAction() {
        $front = Zend_Controller_Front::getInstance();
        $objPackage = new Travel_Model_TblPackage();
        $TblCurrency = new Travel_Model_TblCurrency();
        $front->setParam('noViewRenderer', true);
        $this->_helper->layout->disableLayout();
        $objVisa = new Travel_Model_TblVisa();
        $getData = $this->getRequest()->getPost();
        $VisaId = isset($getData['VisaId']) ? (int) $getData['VisaId'] : 0;
        $CreateDate = date('Y-m-d H:i:s');
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $intLoggedinUserAgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $TPSysId = isset($getData['TPSysId']) ? (int) $getData['TPSysId'] : 0;
        $agentId = isset($getData['agentId']) ? (int) $getData['agentId'] : 0;
        $markup_currency_type = $getData['markup_currency_type'] ? $getData['markup_currency_type'] : array();
        $ServiceProviderFeeCurrencyType = $getData['service_provider_currency_type'] ? $getData['service_provider_currency_type'] : array();
        if ($VisaId > 0) {
            $VisaDetails = $objVisa->VisaInventoryDetailById($VisaId);
            //echo"<pre>";print_r($VisaDetails);die('here');
            $VisaName = $VisaDetails['VisaName'];
            $VisaAdultRates = $VisaDetails['VisaAdultRates'];
            $VisaChildRates = $VisaDetails['VisaChildRates'];
            $VisaFamilyOfRates = $VisaDetails['VisaFamilyOfRates'];
            $VisaInfantRates = $VisaDetails['VisaInfantRates'];
            $CurrencyType = $VisaDetails['CurrencyType'];
            $SupplierSysId = $VisaDetails['SupplierSysId'];
        }

        try {
            foreach ($markup_currency_type as $ky => $val) {
                $markup_type = ($getData['markup_type'][$ky]) ? $getData['markup_type'][$ky] : 1;
                $popmarkup_adult = ($getData['popmarkup_adult'][$ky]) ? $getData['popmarkup_adult'][$ky] : 0;
                $popmarkup_child = ($getData['popmarkup_child'][$ky]) ? $getData['popmarkup_child'][$ky] : 0;
                $popmarkup_childfamily = ($getData['popmarkup_childfamily'][$ky]) ? $getData['popmarkup_childfamily'][$ky] : 0;
                $popmarkup_infant = ($getData['popmarkup_infant'][$ky]) ? $getData['popmarkup_infant'][$ky] : 0;
                $markup_id_1 = ($getData['markup_id_1'][$ky]) ? $getData['markup_id_1'][$ky] : 0;
                $insertMarkupArr = array(
                    'InvnVisaSysId' => $VisaId,
                    'TPSysId' => $TPSysId,
                    'MPType' => $markup_id_1,
                    'AgentSysId' => $agentId,
                    'AgencySysId' => $intLoggedinUserAgencySysId,
                    'MarkUpType' => $markup_type,
                    'MarkUp' => $popmarkup_adult,
                    'CreateDate' => $CreateDate,
                    'UpdateDate' => $CreateDate,
                    'IsActive' => 1,
                    'IsMarkForDel' => 0,
                    'CurrencyType' => $val,
                    'ServiceProviderFee' => 0,
                    'ServiceProviderFeeCurrencyType' => 0,
                    'MarkUpChild' => $popmarkup_child,
                    'MarkUpChildFamily' => $popmarkup_childfamily,
                    'MarkUpInfant' => $popmarkup_infant,
                    'SupplierSysId' => $SupplierSysId,
                );
                $result = $objPackage->insertData('TB_TravelPlan_StdMarkup_Visa', $insertMarkupArr);
            }
            foreach ($ServiceProviderFeeCurrencyType as $ke => $valu) {
                $ServiceProviderTitle = ($getData['service_provider_title'][$ke]) ? $getData['service_provider_title'][$ke] : ' ';
                $service_provider_fees = ($getData['service_provider_fees'][$ke]) ? $getData['service_provider_fees'][$ke] : 0;

                $insertServiceProdArr = array(
                    'InvnVisaSysId' => $VisaId,
                    'TPSysId' => $TPSysId,
                    'IsAgentSpec' => $agentId,
                    'AgencySysIdSysId' => $intLoggedinUserAgencySysId,
                    'ServiceProviderTitle' => $ServiceProviderTitle,
                    'ServiceProviderFee' => $service_provider_fees,
                    'ServiceProviderFeeCurrencyType' => $valu,
                    'CreateDate' => $CreateDate,
                    'UpdateDate' => $CreateDate,
                    'IsActive' => 1,
                    'IsMarkForDel' => 0,
                );
                $result = $objPackage->insertData('TB_TravelPlan_StdServiceProvider_Visa', $insertServiceProdArr);
            }
            $CurrencySymbol = $TblCurrency->getCurrencySymbol($CurrencyType);

            $html = '<tr id="visastr_' . $VisaId . '"><td><span>' . $VisaName . '</span></td>'
                    . '<td><span>' . $CurrencySymbol . ' ' . $VisaAdultRates . '</span></td><td><span>' . $CurrencySymbol . ' ' . $VisaChildRates . '</span></td>'
                    . '<td style="display:none"><span>' . $CurrencySymbol . ' ' . $VisaFamilyOfRates . '</span></td><td><span>' . $CurrencySymbol . ' ' . $VisaInfantRates . '</span></td>'
                    . '<td><span><a href="javascript://" class="view_text1" data-target="#myModalVisaUpdate" data-toggle="modal" href="javascript:void(0);" onclick="updateMarkupService(' . $TPSysId . ',' . $agentId . ',' . $intLoggedinUserAgencySysId . ',' . $VisaId . ')"><i class="fa fa-pencil-square-o"></i></a>'
                    . '<a href="javascript://" onclick="deleteVisadetail(' . $TPSysId . ',' . $VisaId . ',' . $agentId . ')"  class="view_text_visa tooltipLink"  title=""><i class="fa fa-minus-circle"></i></a>'
                    . '</span></td>'
                    . '</tr>';
            $result = array('status' => true, 'msg' => 'Added Successfully.', 'InvnVisaSysId' => $VisaId, 'html' => $html);
            echo json_encode($result);
            exit;
        } catch (Exception $e) {
            die('There has been an error. ' . $e->getMessage());
        }
        $result = array('status' => false, 'msg' => 'Oops !! Something went worng');
        echo json_encode($result);
        exit;
    }

    public function getAgentVisaReadymadeUpdateAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
//        echo"<pre>";print_r($getData);die('here');
        $index = 1;
        $visaId = (isset($getData['InvnVisaAllSysId']) && !empty($getData['InvnVisaAllSysId'])) ? (int) $getData['InvnVisaAllSysId'] : 0;
        $TPSysId = (isset($getData['TPSysId']) && !empty($getData['TPSysId'])) ? (int) $getData['TPSysId'] : 0;
        $agentId = (isset($getData['agentId']) && !empty($getData['agentId'])) ? (int) $getData['agentId'] : 0;
        $agencySysId = (isset($getData['agencyId']) && !empty($getData['agencyId'])) ? (int) $getData['agencyId'] : 0;
        $objVisa = new Travel_Model_TblVisa();
        if ($visaId > 0) {
            $VisaDetails = $objVisa->VisaInventoryDetailById($visaId);
            $MarkupVisaList = $objPackage->GetAllTPVisaMarkup($TPSysId, $visaId, $agencySysId);
            $ServiceProviderVisaList = $objPackage->GetAllVisaServiceProvider($TPSysId, $visaId, $agencySysId);
            $this->view->MarketPlace = $objVisa->MarketPlace();
            $this->view->id = $visaId;
            $this->view->index = $index;
            $this->view->TPSysId = $TPSysId;
            $this->view->agentId = $agentId;
            $objCurrency = new Travel_Model_TblCurrency();
            $this->view->arrCurrencyTypes = $objCurrency->getCurrencyTypes();
            $this->view->VisaDetails = $VisaDetails;
            $this->view->MarkupVisaList = $MarkupVisaList;
            $this->view->ServiceProviderVisaList = $ServiceProviderVisaList;
        }
    }

    public function updatePackageReadymadeVisaAction() {
//        error_reporting(E_ALL);
        $this->db = Zend_Db_Table::getDefaultAdapter();
        $front = Zend_Controller_Front::getInstance();
        $objPackage = new Travel_Model_TblPackage();
        $front->setParam('noViewRenderer', true);
        $this->_helper->layout->disableLayout();
        $objVisa = new Travel_Model_TblVisa();
        $getData = $this->getRequest()->getPost();
        $VisaId = isset($getData['VisaId']) ? (int) trim($getData['VisaId']) : 0;
        $CreateDate = date('Y-m-d H:i:s');
        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $intLoggedinUserAgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $TPSysId = isset($getData['TPSysId']) ? (int) trim($getData['TPSysId']) : 0;
        $agentId = isset($getData['agentId']) ? (int) trim($getData['agentId']) : 0;
        $markup_currency_type = $getData['markup_currency_type'] ? $getData['markup_currency_type'] : array();
        $ServiceProviderFeeCurrencyType = $getData['service_provider_currency_type'] ? $getData['service_provider_currency_type'] : array();
        if ($VisaId > 0) {
            $VisaDetails = $objVisa->VisaInventoryDetailById($VisaId);
        }
        try {

            $ServiceProviderFeeT = 0;
            $this->db->delete('TB_TravelPlan_StdServiceProvider_Visa', array('InvnVisaSysId = ? ' => $VisaId, 'TPSysId = ?' => $TPSysId));
            if ($ServiceProviderFeeCurrencyType) {
                foreach ($ServiceProviderFeeCurrencyType as $ke => $valu) {
                    $ServiceProviderTitle = ($getData['service_provider_title'][$ke]) ? $getData['service_provider_title'][$ke] : ' ';
                    $service_provider_fees = ($getData['service_provider_fees'][$ke]) ? (float) $getData['service_provider_fees'][$ke] : 0;

                    $insertServiceProdArr = array(
                        'InvnVisaSysId' => $VisaId,
                        'TPSysId' => $TPSysId,
                        'IsAgentSpec' => $agentId,
                        'AgencySysIdSysId' => $intLoggedinUserAgencySysId,
                        'ServiceProviderTitle' => $ServiceProviderTitle,
                        'ServiceProviderFee' => $service_provider_fees,
                        'ServiceProviderFeeCurrencyType' => $valu,
                        'CreateDate' => $CreateDate,
                        'UpdateDate' => $CreateDate,
                        'IsActive' => 1,
                        'IsMarkForDel' => 0,
                    );
                    $resultS = $objPackage->insertData('TB_TravelPlan_StdServiceProvider_Visa', $insertServiceProdArr);
                    $ServiceProviderFeeT += $service_provider_fees;
                }
            }
            if ($markup_currency_type) {
                $markup_type = ($getData['markup_type']) ? $getData['markup_type'] : [];
                $popmarkup_adult = ($getData['popmarkup_adult']) ? $getData['popmarkup_adult'] : [];
                $popmarkup_child = ($getData['popmarkup_child']) ? $getData['popmarkup_child'] : [];
                $popmarkup_childfamily = ($getData['popmarkup_childfamily']) ? $getData['popmarkup_childfamily'] : [];
                $popmarkup_infant = ($getData['popmarkup_infant']) ? $getData['popmarkup_infant'] : [];
                $markup_id_1 = ($getData['markup_id_1']) ? $getData['markup_id_1'] : [];
                foreach ($markup_currency_type as $key => $val) {
                    $MarkupArr = array(
                        'MPType' => $markup_id_1[$key] ? (int) $markup_id_1[$key] : 0,
                        'AgentSysId' => $agentId,
                        'AgencySysId' => $intLoggedinUserAgencySysId,
                        'MarkUpType' => $markup_type[$key] ? (int) $markup_type[$key] : 0,
                        'MarkUp' => ($popmarkup_adult[$key]) ? (float) $popmarkup_adult[$key] : 0,
                        'CreateDate' => $CreateDate,
                        'UpdateDate' => $CreateDate,
                        'IsActive' => 1,
                        'IsMarkForDel' => 0,
                        'CurrencyType' => (int) $val,
                        'ServiceProviderFee' => (int) $ServiceProviderFeeT,
                        'ServiceProviderFeeCurrencyType' => $ServiceProviderFeeCurrencyType['0'] ? (int) $ServiceProviderFeeCurrencyType['0'] : 1,
                        'MarkUpChild' => ($popmarkup_child[$key]) ? (float) $popmarkup_child[$key] : 0,
                        'MarkUpChildFamily' => ($popmarkup_childfamily[$key]) ? (float) $popmarkup_childfamily[$key] : 0,
                        'MarkUpInfant' => ($popmarkup_infant[$key]) ? (float) $popmarkup_infant[$key] : 0,
                    );
                    $whereM = array('TPSysId = ?' => $TPSysId, 'InvnVisaSysId = ?' => $VisaId, 'MPType = ?' => (int) $markup_id_1[$key]);
                    $resultM = $objPackage->UpdateVisaMarkup($MarkupArr, $whereM);
//                    echo"<pre>";print_r($resultM);die('dd');
                }
            }
            $response = array('status' => true, 'msg' => 'Updated Successfully');
            echo json_encode($response);
            exit;
        } catch (Exception $e) {
            die('There has been an error. ' . $e->getMessage());
        }
        $response = array('status' => false, 'msg' => 'Oops !! Something went worng');
        echo json_encode($response);
        exit;
    }

    public function deleteAgentVisaReadymadeAction() {
        $front = Zend_Controller_Front::getInstance();
        $objPackage = new Travel_Model_TblPackage();
        $front->setParam('noViewRenderer', true);
        $this->_helper->layout->disableLayout();
        $getData = $this->getRequest()->getPost();
        $VisaId = isset($getData['InvnVisaAllSysId']) ? $getData['InvnVisaAllSysId'] : 0;
        $TPSysId = isset($getData['TPSysId']) ? $getData['TPSysId'] : 0;
        $agentId = isset($getData['agentId']) ? $getData['agentId'] : 0;
        try {
            $updateArr = [
                'IsMarkForDel' => 1,
            ];
//            echo"<pre>";print_r($getData);die('dd');
            $where = array('TPSysId =?' => $TPSysId, 'InvnVisaSysId =?' => $VisaId, 'AgentSysId =?' => $agentId);
            $result = $objPackage->updateData('TB_TravelPlan_StdMarkup_Visa', $updateArr, $where);
            $whereService = array('TPSysId =?' => $TPSysId, 'InvnVisaSysId =?' => $VisaId, 'IsAgentSpec =?' => $agentId);
            $resultt = $objPackage->updateData('TB_TravelPlan_StdServiceProvider_Visa', $updateArr, $whereService);
            $response = array('status' => true, 'msg' => 'Deleted Successfully');
            echo json_encode($response);
            exit;
        } catch (Exception $e) {
            die('There has been an error. ' . $e->getMessage());
        }
        $response = array('status' => false, 'msg' => 'Oops !! Something went worng');
        echo json_encode($response);
        exit;
    }

    public function franchisePricePackageAction() {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $objPackage = new Travel_Model_TblPackage();
        $getData = $this->getRequest()->getPost();
        if ($this->getRequest()->isPost()) {
            $tpsysID = $getData['packid'];
            $data = array(
                'IsFranchise' => $getData['IsFranchise'],
            );
            $packageData = $objPackage->getChildPackageList($tpsysID);
            if (count($packageData) == 1 && $packageData[0]['MasterRefId'] != 0) {
                $packageData = $objPackage->getChildPackageList($packageData[0]['MasterRefId']);
            }
            $packageIdArr = array();
            foreach ($packageData as $key => $package) {
                $packageIdArr['TPSysId'][$key] = $package['TPSysId'];
            }
            $packageIds = implode(',', $packageIdArr['TPSysId']);
            $where = "TPSysId IN (" . $packageIds . ")";
            try {
                $updateId = $objPackage->updateData('TB_TravelPlan', $data, $where);
                $response = array('status' => true, 'msg' => 'Updated');
                echo json_encode($response);
                exit;
            } catch (Zend_Exception $e) {
                echo $e->getMessage();
                exit;
            }
        }
    }
    public function copypackageAction() {
        $this->_helper->layout->disableLayout();
        $objPackage = new Travel_Model_TblPackage();

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

            $TPSysId = $this->getRequest()->getParam('TPSysId');
                    $childpackarr = $objPackage->getChildPackageList($TPSysId);
//                    echo"<pre>";print_r($childpackarr);die('dd');
//            $objTrx = new Travel_Model_TblAgencyCustomerTrx();
            $this->view->childpackarr = $childpackarr;
        }
    }


    public function holdPkgBusAction()
    {
        // ini_set('display_errors', 1);
        // ini_set('display_startup_errors', 1);
        // error_reporting(E_ALL);
        $objBus = new Travel_Model_TblBus();
        if ($this->getRequest()->isPost()) {
            $objPackage = new Travel_Model_TblPackage();
            $getData = $this->getRequest()->getPost();
            $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
            $intLoggedinUserAgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
            $Invdate = isset($getData['date']) ? $getData['date'] : '';
            $ActionType = isset($getData['ActionType']) ? $getData['ActionType'] : 0;
            $TPSysId = isset($getData['TPSysId']) ? $getData['TPSysId'] : 0;
            $selectedSeats = isset($getData['selectedSeats']) ? $getData['selectedSeats'] : [];
            $selectedSeatsId = isset($getData['selectedSeatsId']) ? $getData['selectedSeatsId'] : [];
            $bussysid = isset($getData['bussysid']) ? $getData['bussysid'] : 0;
            $BusbusSeatMapDetails = $objBus->busSeatMap($bussysid, $this->intLoggedinUserAgencySysId);
            $BusSeatType = !empty($BusbusSeatMapDetails['SeatMap']['BusSeatType']) ? $BusbusSeatMapDetails['SeatMap']['BusSeatType'] : [];
            
            $CreateDate = date('Y-m-d H:i:s');
            if(!empty($selectedSeats)){
                foreach($selectedSeats as $key => $value){
                   
                    $insert = array(
                        'SeatNo' => $value,
                        'TPSysId' => $TPSysId,
                        'InventoryDate' => $Invdate,
                        'AgencySysId' => $intLoggedinUserAgencySysId,
                        'SeatType' => isset($BusSeatType[$value])?$BusSeatType[$value]:0,
                        'SeatId' => isset($selectedSeatsId[$key])?$selectedSeatsId[$key]:0,
                        'Status' => 1,
                        'CreatedDate' => $CreateDate,
                        'UpdatedDate' => $CreateDate,
                        'IsActive' => 1,
                        'IsMarkForDelete' => 0,
                    );
                    if($ActionType == '2'){                        
                        $whereCHeck = array('SeatNo' => $value, 'IsMarkForDelete' => 0 , 'TPSysId' => $TPSysId,'InventoryDate' => $Invdate,'AgencySysId' => $intLoggedinUserAgencySysId,'SeatType' => isset($BusSeatType[$value])?$BusSeatType[$value]:0,'SeatId' => isset($selectedSeatsId[$key])?$selectedSeatsId[$key]:0);
                        $checkSeat = $objBus->CheckHoldUnholdSeatExist($whereCHeck);
                        
                        if(!empty($checkSeat)){
                            $updateArr = [
                                'IsMarkForDelete' => 1,
                                'UpdatedDate' => $CreateDate,
                            ];
                            $where = array('TPSysId =?' => $TPSysId, 'InventoryDate =?' => $Invdate,'AgencySysId =?' => $intLoggedinUserAgencySysId,'SeatType =?' => isset($BusSeatType[$value])?$BusSeatType[$value]:0,'SeatId =?' => isset($selectedSeatsId[$key])?$selectedSeatsId[$key]:0);
                            $result = $objPackage->updateData('TB_TravelPlan_Bus_Seats', $updateArr, $where);
                        }                        
                    }
                    if($ActionType == '1'){
                        $whereCHeck = array('SeatNo' => $value, 'IsMarkForDelete' => 1 , 'TPSysId' => $TPSysId,'InventoryDate' => $Invdate,'AgencySysId' => $intLoggedinUserAgencySysId,'SeatType' => isset($BusSeatType[$value])?$BusSeatType[$value]:0,'SeatId' => isset($selectedSeatsId[$key])?$selectedSeatsId[$key]:0);
                        $checkSeat = $objBus->CheckHoldUnholdSeatExist($whereCHeck);
                        if(!empty($checkSeat)){
                            $updateArr = [
                                'IsMarkForDelete' => 0,
                                'UpdatedDate' => $CreateDate,
                            ];
                            $where = array('TPSysId =?' => $TPSysId, 'InventoryDate =?' => $Invdate,'AgencySysId =?' => $intLoggedinUserAgencySysId,'SeatType =?' => isset($BusSeatType[$value])?$BusSeatType[$value]:0,'SeatId =?' => isset($selectedSeatsId[$key])?$selectedSeatsId[$key]:0);
                            $result = $objPackage->updateData('TB_TravelPlan_Bus_Seats', $updateArr, $where);
                        }else{
                            $result = $objPackage->insertData('TB_TravelPlan_Bus_Seats', $insert);
                        }
                    }
                }
                $returnArray = ['status' => true, 'message' => 'Update successfully'];
                echo json_encode($returnArray);
                exit;
            }else{
                $returnArray = ['status' => false, 'message' => 'Unable to Hold'];
                echo json_encode($returnArray);
                exit;
            }
            
            // echo "<pre>";
            // print_r($getData);
            // exit;
        }else{
             $returnArray = ['status' => false, 'message' => 'Invalid Request'];
            echo json_encode($returnArray);
            exit;
        }
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit