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

/**
 * Class Hotel
 *
 * @name		Hotel
 * @author		Ravi Khare
 * @version 	1.0
 * @copyright 	Catabatic India Pvt Ltd
 * Handle Hotel Related function
 *
 */
class HotelController extends Catabatic_ValidateGtx {

    private $intLoggedinUserId = '';

    const ADMIN_ID = 1;

    private $intLoggedinUserGroupSysId = '0';
    private $intLoggedinUserAgencySysId = '0';
    private $intLoggedinUserTrxCurrency = '0';
    public $baseUrl = '';

    /* Tripsbank Staff */
    public $InfoSourceSysId = '0';

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


        $this->view->headScript()->appendFile($this->baseUrl . '/public/js/hotel/hotel.js');
        $this->view->headScript()->appendFile($this->baseUrl . '/public/assets/js/jquery-ui.js');
        $this->view->headLink()->appendStylesheet($this->baseUrl . '/public/assets/css/autosuggest-jquery-ui.css');


        $sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
        $sessionLogin_user->lock();

        #get session variable
        $this->SupplierTypeSysId = 4;
        $this->intLoggedinUserRole = $sessionLogin_user->UserRole;
        $this->intLoggedinUserId = $sessionLogin_user->intLoggedinUserId;
        $this->intLoggedinUserGroupSysId = $sessionLogin_user->intLoggedinUserGroupSysId;
        $this->intLoggedinUserAgencySysId = $sessionLogin_user->intLoggedinUserAgencySysId;
        $this->intLoggedinUserTrxCurrency = $sessionLogin_user->intLoggedinUserTrxCurrency;

        if (!empty($this->intLoggedinUserAgencySysId)) {
            $this->InfoSourceSysId = '2'; /* Information Source is Agent */
        }

        // unlocking read-only lock
        if ($sessionLogin_user->isLocked()) {
            $sessionLogin_user->unLock();
        }
    }

    public function viewHotelInventoryAction() {

        $AccomSysId = $this->getRequest()->getParam('AccomSysId');
        $key = $this->getRequest()->getParam('key');

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

        $this->view->AccomSysId = $AccomSysId;
        $this->view->key = $key;
        $this->view->PageTitle = " View / Edit Hotel Inventory ";
        $this->render('add-hotel-inventory');
    }

    public function getHotelDetailAction() {

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

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

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

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->intId = $intHotelId;
            $result = $objHotel->getHotelListDetails();

            if (count($result) != 1) {
                throw new Exception('There has been a technical error. Please try again later.');
            }

            echo $this->_helper->json($result);
            exit;
        }
    }

    public function indexAction() {
        $this->view->intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;

        $objHotel = new Travel_Model_TblHotel();
        $objAgency = new Travel_Model_TblAgency();

        $agencyDetails = $objAgency->getAgencyUserList($this->intLoggedinUserAgencySysId);
        $this->view->agencyDetails = $agencyDetails;
        //echo "<pre>"; print_r($agencyDetails); die;
        //Get City List
        $cityList = $objHotel->getInventoryCityList($this->intLoggedinUserAgencySysId);
        $this->view->cityList = $cityList;

        //Get Supplier List
        $supplierList = $objHotel->getSuppliersList($cityId = '', $this->intLoggedinUserId);
        $this->view->supplierList = $supplierList;

        //Get inventory hotel list
        $inventoryHotelList = $objHotel->getHotelInventoryListByCityId($cityId = '', $this->intLoggedinUserAgencySysId);
        $this->view->inventoryHotelList = $inventoryHotelList;

        //Get total rooms
        //$total_rooms = $objHotel->getTotalRooms($this->intLoggedinUserAgencySysId);
        //$this->view->total_rooms = $total_rooms;
        //Get Total inventory Room
        $total_inventory_rooms = $objHotel->getTotalInventoryRooms($this->intLoggedinUserAgencySysId);
        $this->view->total_inventory_rooms = $total_inventory_rooms;

        //Get Sold Total inventory Room
        //$total_sold_rooms = $objHotel->getSoldTotalInventoryRooms($this->intLoggedinUserAgencySysId);
        //$this->view->total_sold_rooms = $total_sold_rooms;

        $total_cost = $objHotel->getHotelInventoryTotalCost($this->intLoggedinUserAgencySysId);
        $this->view->total_inventory_cost = $total_cost;
        //echo $total_cost; 

        $total_sold_cost = $objHotel->getHotelInventoryTotalSoldCost($this->intLoggedinUserAgencySysId);
        $this->view->total_inventory_sold_cost = $total_sold_cost;

        //Get total unsold inventory room
        $total_unsold_inventory_rooms = $total_inventory_rooms['total_inventory'] - $total_inventory_rooms['total_sold_inventory'];
        $this->view->total_unsold_inventory_rooms = $total_unsold_inventory_rooms;

        $total_unsold_inventory_cost = $total_cost - $total_sold_cost;
        $this->view->total_unsold_inventory_cost = $total_unsold_inventory_cost;

//        if(@$this->intLoggedinUserId != ADMIN_ID)
//        {
//            $objHotel->strCondition = " AND ICSourceSysId = " .$this->intLoggedinUserAgencySysId;
//        }

        $searchArr = array();
        $getData = array();
        if ($this->getRequest()->isPost()) {
            $getData = $this->getRequest()->getPost();
            if (!empty($getData)) {
                if (@$getData['DestinationId'] != 0) {
                    $DestinationId = @$getData['DestinationId'];
                } else {
                    $DestinationId = "";
                }
                if (@$getData['hotelId'] != 0) {
                    $hotelId = $getData['hotelId'];
                } else {
                    $hotelId = "";
                }
                if (@$getData['supplierId'] != 0) {
                    $supplierId = $getData['supplierId'];
                } else {
                    $supplierId = "";
                }
                if (@$getData['rating'] != 0) {
                    $rating = $getData['rating'];
                } else {
                    $rating = "";
                }
                $searchArr = array(
                    'DestinationId' => $DestinationId,
                    'hotelId' => $hotelId,
                    'supplierId' => $supplierId,
                    'rating' => $rating
                );
            }
        } else {
            $DestinationId = $this->_getParam('DestinationId');
            $hotelId = $this->_getParam('hotelId');
            $supplierId = $this->_getParam('supplierId');
            $rating = $this->_getParam('rating');
            if ($DestinationId != 0) {
                $DestinationId = $DestinationId;
            } else {
                $DestinationId = "";
            }
            if ($hotelId != 0) {
                $hotelId = $hotelId;
            } else {
                $hotelId = "";
            }
            if ($supplierId != 0) {
                $supplierId = $supplierId;
            } else {
                $supplierId = "";
            }
            if ($rating != 0) {
                $rating = $rating;
            } else {
                $rating = "";
            }
            
            
            
            $hotelIdGet = base64_decode($this->_getParam('id'));
            if(!empty($hotelIdGet)){
               $hotelId =  $hotelIdGet;
            }
            
            
            $searchArr = array(
                'DestinationId' => $DestinationId,
                'hotelId' => $hotelId,
                'supplierId' => $supplierId,
                'rating' => $rating
            );
        }

        //echo "<pre>"; print_r($searchArr); 
        $objHotel->searchArr = $searchArr;
        $this->view->searchArr = $searchArr;
        $arrHotels = $objHotel->getHotelAllInventoryList($this->intLoggedinUserAgencySysId);
//        echo "<pre>";
//        print_r($arrHotels);
//        exit;

        $page = $this->_getParam('page', 1);
        //$search=$this->_getParam('search',1);
        $paginator = Zend_Paginator::factory($arrHotels);
        $paginator->setItemCountPerPage(GRID_PER_PAGE_RECORD_COUNT);
        $paginator->setCurrentPageNumber($page);

        $this->view->paginator = $paginator;

        //For display message
        $this->view->messages = $this->_helper->flashMessenger->getMessages();
    }

    public function manageHotelAction() {

        $objHotel = new Travel_Model_TblHotel();

        //Agency Id
        if ($this->intLoggedinUserRole != 1) {
            $intLoggedinUserId = $this->intLoggedinUserAgencySysId;
        } else {
            $intLoggedinUserId = "";
        }

        $this->view->intLoggedinUserIdSetPage = $intLoggedinUserId;
        

        $searchArr = array();
        $getData = array();
        if ($this->getRequest()->isPost()) {
            $this->view->arrGetData = $getData = $this->getRequest()->getPost();
            
            $this->view->cityName       = $cityName = $getData['city_name'];
            $this->view->DestinationId  = $DestinationId = $getData['DestinationId'];
            $this->view->HotelName      = $HotelName = $getData['HotelName'];
            $this->view->Status         = $Status = $getData['status'];
            $this->view->ratingArray    = !empty($getData['rating'])?$getData['rating']:'';
            if(isset($getData['rating']) && count($getData['rating']) > 0){
                $Rating = "'".implode("','", $getData['rating'])."'";
                $this->view->Rating = $Rating;
            }else{
                $Rating = "";
                $this->view->Rating = $Rating;
            }
            
            //echo $Rating;exit;
            
            if (!empty($getData)) {
                if (!empty($DestinationId)) {
                    $DestinationId = $DestinationId;
                } else {
                    $DestinationId = "";
                }
                if (!empty($HotelName)) {
                    $HotelName = $HotelName;
                } else {
                    $HotelName = "";
                }
                if ($Rating !="") {
                    $rating = $Rating;
                } else {
                    $rating = "";
                }
                $searchArr = array(
                    'DestinationId' => $DestinationId,
                    'HotelName' => $HotelName,
                    'rating' => $rating,
                    'IsActive' => $Status
                );
            }
        } else {
            $this->view->Status  = $Status = 1;
            $DestinationId = $this->_getParam('DestinationId');
            $HotelName = $this->_getParam('HotelName');
            $rating = $this->_getParam('rating');
            if ($DestinationId != 0) {
                $DestinationId = $DestinationId;
            } else {
                $DestinationId = "";
            }
            if ($HotelName != "") {
                $HotelName = $HotelName;
            } else {
                $HotelName = "";
            }
            if ($rating != 0) {
                $rating = $rating;
            } else {
                $rating = "";
            }
            $searchArr = array(
                'DestinationId' => $DestinationId,
                'HotelName' => $HotelName,
                'rating' => $rating,
                'IsActive' => $Status
            );
        }

        //echo "<pre>"; print_r($searchArr); echo "</pre>";
        $objHotel->searchArr = $searchArr;
        $this->view->searchArr = $searchArr;
        $this->view->arrHotels = $arrHotels = $objHotel->getAllHotelList($intLoggedinUserId);

        $page = $this->_getParam('page', 1);
        //$search=$this->_getParam('search',1);
        $paginator = Zend_Paginator::factory($arrHotels);
        $paginator->setItemCountPerPage(GRID_PER_PAGE_RECORD_COUNT);
        $paginator->setCurrentPageNumber($page);

        $this->view->paginator = $paginator;

        //For display message
        $this->view->messages = $this->_helper->flashMessenger->getMessages();
    }

    public function addNewAction() {

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

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

            $post = $this->getRequest()->getPost();

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


            $hotelName = $post['popup_hotel_name'];
            $intCountryId = $post['hotel-country'];
            $intCityId = $post['hotel-city'];
            $address = $post['hotel-address'];

            if (empty($intCountryId)) {
                $response = array('succes' => false, 'msg' => 'Please select country.');
                echo json_encode($response);
                exit;
            }

            if (empty($intCityId)) {
                $response = array('succes' => false, 'msg' => 'Please select a City.');
                echo json_encode($response);
                exit;
            }


            if (empty($hotelName)) {
                $response = array('succes' => false, 'msg' => 'Please enter hotel name.');
                echo json_encode($response);
                exit;
            }

            $intHotelType = isset($post['hotel-type']) ? $post['hotel-type'] : 0;

            if (empty($intHotelType)) {
                $response = array('succes' => false, 'msg' => 'Please select accomodation type.');
                echo json_encode($response);
                exit;
            }

            if (!isset($post['hotel-room-types']) || count($post['hotel-room-types']) == 0) {
                $response = array('succes' => false, 'msg' => 'Please select atleast one room type.');
                echo json_encode($response);
                exit;
            }


            $currentDate = date('Y-m-d H:i:s');
            $this->InfoSourceSysId = (@$this->intLoggedinUserId != ADMIN_ID) ? $this->intLoggedinUserAgencySysId : CONST_SOURCE_ADMIN;

            $newAccomodation = array('IsAgentSpec' => true,
                'ICSourceSysId' => $this->intLoggedinUserAgencySysId,
                'Title' => $hotelName,
                'AccomGrSysId' => '0',
                'AliasAndMeta' => '',
                'ShortName' => '',
                'PlaceSysId_XRef' => '0',
                'Icon' => '',
                'ThumnailImg' => '',
                'DetailImg' => '',
                'Stars' => isset($post['star-rating']) && !empty($post['star-rating']) ? $post['star-rating'] : '0',
                'Rating' => '0',
                'Popularity' => '0',
                'AwardRecognizations' => '',
                'PropertyType' => '0',
                'EconomyType' => $intHotelType,
                'AccoAminitiesMask' => '',
                'MaxPaxCount' => '0',
                'RoomCounts' => '0',
                'Brief' => '',
                'CheckinTime' => '',
                'CheckOutTime' => '',
                'IsDayLightApp' => '',
                'GeoLat' => '',
                'GeoLong' => '',
                'Address' => $address,
                'PinCode' => isset($post['pinCode']) ? $post['pinCode'] : '',
                'CitySysId' => $intCityId,
                'ZoneSysId' => '0',
                'ZoneType' => '0',
                'StateSysId' => '0',
                'ContSysId' => $intCountryId,
                'UpdateDate' => $currentDate,
                'ApproveDate' => '',
                'ApproveBy' => '0',
                'CreateDate' => $currentDate,
                'IsLocked' => '1',
                'IsApproved' => '0',
                'IsActive' => '1',
                'IsMarkForDel' => '0'
            );

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

            try {

                $objHotel = new Travel_Model_TblHotel();
                $intLastInsertId = $objHotel->addAccomodation($newAccomodation, $hotel_chain = '1');
                $AccomSysId = $intLastInsertId;

                if (!empty($AccomSysId)) {
                    /* Add Rooms */
                    if (isset($post['hotel-room-types']) && count($post['hotel-room-types']) > 0) {
                        foreach ($post['hotel-room-types'] as $roomType) {

                            $insert = array(
                                'AccomSysId' => $AccomSysId,
                                'SourceSysId' => $this->intLoggedinUserAgencySysId,
                                'Title' => '',
                                'RoomType' => $roomType,
                                'EconomyType' => 0,
                                'Qty' => 0,
                                'BedType' => 0,
                                'PaxCount' => 0,
                                'IsPetAllow' => 0,
                                'MaxPetAllow' => 0,
                                'AllowChild' => 0,
                                'AllowInfant' => 0,
                                'MaxPaxCount' => 0,
                                'MaxAllowChild' => 0,
                                'MaxAllowInfant' => 0,
                                'MealPlanType' => 0,
                                'AminitiesMask' => '',
                                'InclustionOptionsMask' => '',
                                'OtherDetails' => '',
                                'UpdatedDate' => $currentDate,
                                'CreateDate' => $currentDate,
                                'ApproveDate' => EMPTY_DATE,
                                'ApproveBy' => 0,
                                'IsDelete' => 0,
                                'IsActive' => '1',
                                'IsApproved' => '0'
                            );

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

                            $objHotel = new Travel_Model_TblHotel();
                            $intNewItemId = $objHotel->addICAccomdationRoom($insert);

                            if (empty($intNewItemId)) {
                                $response = array('success' => false, 'msg' => TECHNICAL_ERROR_MSG);
                                echo json_encode($response);
                                exit;
                            }
                        }
                    }
                    /*                     * ******************************************************************** */

                    $objHotel = new Travel_Model_TblHotel();
                    $objHotel->intAccomSysId = $AccomSysId;
                    $arrHotelDetails = $objHotel->getHotelListDetails();

                    if (!empty($arrHotelDetails) ) {
                        $response = array('success' => true, 'intLastInsertId' => $AccomSysId, 'Title' => $arrHotelDetails[0]['Title'], 'CityName' => $arrHotelDetails[0]['CityName'], 'Stars' => $arrHotelDetails[0]['Stars'], 'PriceRange' => $arrHotelDetails[0]['PriceRange']);
                        echo json_encode($response);
                        exit;
                    }
                }
            } catch (Exception $e) {
                throw new Exception($e->getMessage());
            }

            $response = array('success' => false, 'msg' => TECHNICAL_ERROR_MSG);
            echo json_encode($response);
            exit;
        }
    }

    public function addHotelInventoryAction() {

        $objHotel = new Travel_Model_TblHotel();
//        $this->view->arrHotels         = $objHotel->getHotelListDetails();

        $objHotelRooms = new Travel_Model_TblHotelRooms();
        $this->view->arrHotelRoomTypes = $objHotelRooms->getRoomTypes();

        $objHotelMeals = new Travel_Model_TblHotelMeals();
        $this->view->arrHotelMeals = $objHotelMeals->getMealTypes();

        $objSupplier = new Travel_Model_TblSupplier();
        $this->view->arrSupplierTypes = $objSupplier->getSupplierTypes();
        // $this->view->arrSupplierList = $objSupplier->getSuppliers();

        $objCurrency = new Travel_Model_TblCurrency();
        $this->view->arrCurrencyTypes = $objCurrency->getCurrencyTypes();

        //For display message
        $this->view->messages = $this->_helper->flashMessenger->getMessages();

        if ($this->intLoggedinUserId == ADMIN_ID) {
            $objCountry = new Travel_Model_TblCountry();
            $this->view->arrCountryList = $objCountry->getCountryList();

            $objHotel = new Travel_Model_TblHotel();
            $this->view->arrAccomodationGroups = $arrAccomodationGroups = $objHotel->getAccomodationGroups();
            $this->view->arrAccomodationEconomyType = $arrAccomodationEconomyType = $objHotel->getAccomodationEconomyType();
            $intAccomSysId = base64_decode($this->getRequest()->getParam('AccomSysId'));

            if ($intAccomSysId) {
                $arrHotelDetail = $objHotel->getHotelListDetailsByHotelId($intAccomSysId);
                //echo "<pre>"; print_r($arrHotelDetail);die;
                $arrHotelGroupInfo = $objHotel->getHotelGroupMapByAccomSysId($intAccomSysId);
                $this->view->arrHotelInfo = $arrHotelDetail;
                $this->view->arrHotelGroupInfo = $arrHotelGroupInfo;
            }

            $this->render('add-hotel-inventory-admin');
        }
    }

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

        if ($this->getRequest()->isPost()) {
            $data = $this->getRequest()->getPost();
            //echo "<pre>"; print_r($data); die;
            $objHotel = new Travel_Model_TblHotel();
            $currentDate = date('Y-m-d H:i:s');
            $hotelId = isset($data['hidden_selected_hotel_id']) ? $data['hidden_selected_hotel_id'] : '0';
            $hotelName = isset($data['hotel_name']) ? $data['hotel_name'] : '';
            $hotel_chain = isset($data['hotel_chain']) ? $data['hotel_chain'] : '';
            $intCountryId = isset($data['select_hotel_country']) ? $data['select_hotel_country'] : '';
            $intCityId = isset($data['select_hotel_city']) ? $data['select_hotel_city'] : '';
            $intHotelType = isset($data['hotel_type']) ? $data['hotel_type'] : 0;
            $GeoLat = isset($data['latitude']) ? $data['latitude'] : 0;
            $GeoLong = isset($data['longitude']) ? $data['longitude'] : 0;

            //For Admin
            if (!empty($hotelId) && $hotelId != 0) {
                $arrHotelDetail = $objHotel->getHotelListDetailsByHotelId($hotelId);
                $Brief = $arrHotelDetail['Brief'];
                $Address = $arrHotelDetail['Address'];
                $PinCode = $arrHotelDetail['PinCode'];
                $IsAgentSpec = $arrHotelDetail['IsAgentSpec'];
                $ICSourceSysId = $arrHotelDetail['ICSourceSysId'];
                $ApproveDate = $arrHotelDetail['ApproveDate'];
                $ApproveBy = $arrHotelDetail['ApproveBy'];
                $CreateDate = $arrHotelDetail['CreateDate'];
                $IsLocked = $arrHotelDetail['IsLocked'];
                $IsApproved = $arrHotelDetail['IsApproved'];
                $IsActive = $arrHotelDetail['IsActive'];
                $IsMarkForDel = $arrHotelDetail['IsMarkForDel'];
            } else {
                $currentDate = date('Y-m-d H:i:s');
                $IsAgentSpec = 0;
                $ICSourceSysId = 1;
                $ApproveDate = '';
                $ApproveBy = 0;
                $CreateDate = $currentDate;
                $IsLocked = 1;
                $IsApproved = 1;
                $IsActive = 1;
                $IsMarkForDel = 0;
            }

            //Add and edit parameter 
            if ($arrHotelDetail['ResultIndex'] != "") {
                $ResultIndex = $arrHotelDetail['ResultIndex'];
            } else {
                $ResultIndex = '';
            }
            if ($arrHotelDetail['TraceId'] != "") {
                $TraceId = $arrHotelDetail['TraceId'];
            } else {
                $TraceId = '';
            }
            if ($arrHotelDetail['TokenId'] != "") {
                $TokenId = $arrHotelDetail['TokenId'];
            } else {
                $TokenId = '';
            }
            if ($arrHotelDetail['AliasAndMeta'] != "") {
                $AliasAndMeta = $arrHotelDetail['AliasAndMeta'];
            } else {
                $AliasAndMeta = '';
            }
            if ($arrHotelDetail['ShortName'] != "") {
                $ShortName = $arrHotelDetail['ShortName'];
            } else {
                $ShortName = '';
            }
            if ($arrHotelDetail['PlaceSysId_XRef'] != "") {
                $PlaceSysId_XRef = $arrHotelDetail['PlaceSysId_XRef'];
            } else {
                $PlaceSysId_XRef = '0';
            }
            if ($arrHotelDetail['Icon'] != "") {
                $Icon = $arrHotelDetail['Icon'];
            } else {
                $Icon = '';
            }
            if ($arrHotelDetail['ThumnailImg'] != "") {
                $ThumnailImg = $arrHotelDetail['ThumnailImg'];
            } else {
                $ThumnailImg = '';
            }
            if ($arrHotelDetail['DetailImg'] != "") {
                $DetailImg = $arrHotelDetail['DetailImg'];
            } else {
                $DetailImg = '';
            }
            if ($arrHotelDetail['DetailImg'] != "") {
                $DetailImg = $arrHotelDetail['DetailImg'];
            } else {
                $DetailImg = '';
            }
            if ($arrHotelDetail['Rating'] != "") {
                $Rating = $arrHotelDetail['Rating'];
            } else {
                $Rating = '0';
            }
            if ($arrHotelDetail['Popularity'] != "") {
                $Popularity = $arrHotelDetail['Popularity'];
            } else {
                $Popularity = '0';
            }
            if ($arrHotelDetail['AwardRecognizations'] != "") {
                $AwardRecognizations = $arrHotelDetail['AwardRecognizations'];
            } else {
                $AwardRecognizations = '';
            }
            if ($arrHotelDetail['AccoAminitiesMask'] != "") {
                $AccoAminitiesMask = $arrHotelDetail['AccoAminitiesMask'];
            } else {
                $AccoAminitiesMask = '';
            }

//            if($arrHotelDetail['GeoLat']!="") {
//                $GeoLat = $arrHotelDetail['GeoLat'];
//            } else {
//                $GeoLat= '';
//            }
//            if($arrHotelDetail['GeoLong']!="") {
//                $GeoLong = $arrHotelDetail['GeoLong'];
//            } else {
//                $GeoLong= '';
//            }

            $insert = array('IsAgentSpec' => $IsAgentSpec,
                'ICSourceSysId' => $ICSourceSysId,
                'Title' => $hotelName,
//                'ResultIndex' => $ResultIndex,
//                'TraceId' => $TraceId,
//                'TokenId' => $TokenId,
                'AliasAndMeta' => $AliasAndMeta,
                'ShortName' => $ShortName,
                'PlaceSysId_XRef' => $PlaceSysId_XRef,
                'Icon' => $Icon,
                'ThumnailImg' => $ThumnailImg,
                'DetailImg' => $DetailImg,
                'Stars' => isset($data['star_rating']) ? $data['star_rating'] : '0',
                'Rating' => $Rating,
                'Popularity' => $Popularity,
                'AwardRecognizations' => $AwardRecognizations,
                'PropertyType' => '0',
                'EconomyType' => isset($intHotelType) ? $intHotelType : '',
                'AccoAminitiesMask' => $AccoAminitiesMask,
                'MaxPaxCount' => '0',
                'RoomCounts' => '0',
                'Brief' => isset($data['brief']) ? trim($data['brief']) : @$Brief,
                'CheckinTime' => isset($data['CheckinTime']) ? $data['CheckinTime'] : @$data['CheckinTime'],
                'CheckOutTime' => isset($data['CheckOutTime']) ? $data['CheckOutTime'] : @$data['CheckOutTime'],
                'IsDayLightApp' => '0',
                'GeoLat' => $GeoLat,
                'GeoLong' => $GeoLong,
                'Address' => isset($data['address']) ? trim($data['address']) : @$Address,
                'PinCode' => isset($data['pinCode']) ? trim($data['pinCode']) : @$PinCode,
                'CitySysId' => $intCityId,
                'ZoneSysId' => '0',
                'ZoneType' => '0',
                'StateSysId' => 0,
                'ContSysId' => isset($intCountryId) ? $intCountryId : '',
                //'PrimaryContact'            => isset($arrHotelDetail['PrimaryContact']) ? $arrHotelDetail['PrimaryContact'] : '',
                //'SecondaryContact'          => isset($arrHotelDetail['SecondaryContact']) ? $arrHotelDetail['SecondaryContact'] : '',
                //'OtherContacts'             => isset($arrHotelDetail['OtherContacts']) ? $arrHotelDetail['OtherContacts'] : '',
                'UpdateDate' => $currentDate,
                'ApproveDate' => $ApproveDate,
                'ApproveBy' => $ApproveBy,
                'CreateDate' => $CreateDate,
                'IsLocked' => $IsLocked,
                'IsApproved' => $IsApproved,
                'IsActive' => $IsActive,
                'IsMarkForDel' => $IsMarkForDel
            );

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

            if (!empty($hotelId) && $hotelId != 0) {
                //echo "dssd sdfds sdas";die;
                $objHotel->updateAccomodationInfo($insert, $hotelId);
                $objHotel->updateAccomodationGroupInfo($data['hotel_chain'], $hotelId);
                $this->_helper->flashMessenger->addMessage("Hotel saved successfully.");
                $this->_helper->redirector('manage-hotel', 'hotel', 'default');
            } else {
                //echo "dssd sdfds";die;
                $objHotel->addAccomodation($insert, $data['hotel_chain']);
                $this->_helper->flashMessenger->addMessage("Hotel saved successfully.");
                $this->_helper->redirector('manage-hotel', 'hotel', 'default');
            }
        }
    }

    /*
      public function saveInventoryAction() {


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



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

      $post = $this->getRequest()->getPost();

      $intHotelId             = $this->getRequest()->getPost('hotel_id');
      $strRoomName            = $this->getRequest()->getPost('room_name');
      $intRoomType            = $this->getRequest()->getPost('room_type');
      $intMealPlan            = $this->getRequest()->getPost('meal_plan');
      $strFromDate            = $this->getRequest()->getPost('from_dt');
      $strToDate              = $this->getRequest()->getPost('to_dt');

      $strFromDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strFromDate,'d/m/y');
      $strToDate   = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strToDate,'d/m/y');


      $strCurrencyType        = $this->getRequest()->getPost('currency_type');
      $intDailyRoomLimit      = $this->getRequest()->getPost('daily_room_limit');
      $intPermission          = $this->getRequest()->getPost('permission');
      $fltCostDoubleOccupancy = $this->getRequest()->getPost('cost_double_occupancy');
      $fltCostSingleOccupancy = $this->getRequest()->getPost('cost_single_occupancy');
      $fltCostExtraWithBed    = $this->getRequest()->getPost('cost_extra_with_bed');
      $fltCostExtraWithoutBed = $this->getRequest()->getPost('cost_extra_without_bed');
      // $intSupplierType        = $this->getRequest()->getPost('supplier_type');





      $intLoggedinUserId            = $this->intLoggedinUserId ;

      $insertData = array('InventoryType' => '1', 'AccomSysId' => $intHotelId,
      'AgencySysId' => $intLoggedinUserId, 'SupplierSysId' =>  $intSupplierSysId, 'Title' => $strRoomName,
      'EconomyType' => $strCurrencyType, 'MealPlanType' => $intMealPlan, 'IxFixedDateInven' => '0',
      'FromDate' => $strFromDate, 'ToDate' => $strToDate, 'DailyRoomLimit' => $intDailyRoomLimit,'PurchasedQty' => 0,
      'PublishQty' => 0, 'BlockQty' => 0, 'SoldQty' => 0, 'ReturnQty' => 0, 'NetInHandQty' => 0,
      'Currency' => $strCurrencyType, 'IsPerPaxCostAllowed' => $intPermission, 'PerPaxCost' => 0, 'DOccupCost' => $fltCostDoubleOccupancy,
      'SOccupCost' => $fltCostSingleOccupancy, 'ExtraBedCost' => $fltCostExtraWithBed, 'ExtraWOBedCost' => $fltCostExtraWithoutBed,
      'OtherCost' => '0', 'SaleAmount' => '0', 'DefaultPrice' => 0, 'Brief' => '', 'IfAnyOffer' => '0',
      'OfferMsg' => '', 'OfferImage' => '','CreatorSysId' => $intLoggedinUserId, 'CreateDate' => '', 'ApproveDate' => '',
      'UpdateDate' => '', 'IsActive' => '0', 'IsMarkForDelete' => 0, 'IsApproved' => '0'
      );

      $objHotel = new Travel_Model_TblHotel();
      $objHotel->addHotelInventory($insertData);
      $response = array('success'=>true);
      echo json_encode($response);
      }

      } */

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

        //$this->layout()->headLink()->appendStylesheet('/public/assets/css/style.css'); 

        $this->view->headScript()->appendFile('/public/assets/css/style.css');
        $this->view->headScript()->appendFile('/public/assets/css/bootstrap.min.css');

        $objHotel = new Travel_Model_TblHotel();
        $objHotel->intLoggedinUserAgencySysId = $this->intLoggedinUserAgencySysId;
        $this->view->arrHotelInventoryList = $objHotel->getHotelInventoryList();

//        echo "<pre>";
//        print_r($objHotel->getHotelInventoryList());
//        exit;
    }

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

        $this->view->InvnItemSysId = $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');
        $this->view->MarkupSetting = $MarkupSetting = $this->getRequest()->getParam('MarkupSetting');
        $this->view->MarkupType = $MarkupType = $this->getRequest()->getParam('MarkupType');
        $this->view->key = $key = $this->getRequest()->getParam('key');
        $this->view->popupType = $popupType = $this->getRequest()->getParam('popupType');

        if (empty($InvnItemSysId)) {
            throw new Exception('InvnItemSysId not found');
        }

        $objHotel = new Travel_Model_TblHotel();
        $objHotel->strCondition = " AND TB_MP_Inventory_Accom.InvnItemSysId = " . $InvnItemSysId;
        $this->view->arrMPInventoryAccomList = $arrMPInventoryAccomList = $objHotel->getMPInventoryAccomList();

        $objHotel = new Travel_Model_TblHotel();
        $objHotel->InvnItemSysId = $InvnItemSysId;
        $objHotel->MPType = $MarkupType;
        $objHotel->CustGrSysId = $this->intLoggedinUserGroupSysId;

        $arrInventoryAllocationList = $objHotel->getMPInventoryAccomAlloc();
        if (!empty($arrInventoryAllocationList) ) {
            $this->view->InventoryAllocationExists = true;
            $this->view->InventoryAllocationExistsOf = $arrInventoryAllocationList[0]['MarkUpType'];
        } else {
            $this->view->InventoryAllocationExists = false;
        }

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

        if (count($arrMPInventoryAccomList) <> 1) {
            throw new Exception('There has been an error, Please try again later');
        }
    }
    
    
    public function managemarkupnewAction() {
        /* Disable layout */
        //$this->_helper->layout->disableLayout();

        $this->view->InvnItemSysId = $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');
        $this->view->MarkupSetting = $MarkupSetting = $this->getRequest()->getParam('MarkupSetting');
        $this->view->MarkupType = $MarkupType = $this->getRequest()->getParam('MarkupType');
        $this->view->key = $key = $this->getRequest()->getParam('key');
        $this->view->popupType = $popupType = $this->getRequest()->getParam('popupType');

        if (empty($InvnItemSysId)) {
            throw new Exception('InvnItemSysId not found');
        }

        $objHotel = new Travel_Model_TblHotel();
        $objHotel->strCondition = " AND TB_MP_Inventory_Accom.InvnItemSysId = " . $InvnItemSysId;
        $this->view->arrMPInventoryAccomList = $arrMPInventoryAccomList = $objHotel->getMPInventoryAccomList();

        $objHotel = new Travel_Model_TblHotel();
        $objHotel->InvnItemSysId = $InvnItemSysId;
        $objHotel->MPType = $MarkupType;
        $objHotel->CustGrSysId = $this->intLoggedinUserGroupSysId;

        $arrInventoryAllocationList = $objHotel->getMPInventoryAccomAlloc();
        if (!empty($arrInventoryAllocationList) ) {
            $this->view->InventoryAllocationExists = true;
            $this->view->InventoryAllocationExistsOf = $arrInventoryAllocationList[0]['MarkUpType'];
        } else {
            $this->view->InventoryAllocationExists = false;
        }

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

        if (count($arrMPInventoryAccomList) <> 1) {
            throw new Exception('There has been an error, Please try again later');
        }
    }

    public function individualHotelManageMarkupAction() {

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

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

            $this->view->AccomSysId = $AccomSysId = $this->getRequest()->getParam('AccomSysId');


            if (!empty($AccomSysId)) {

                $objHotel = new Travel_Model_TblHotel();
                $objHotel->intAccomSysId = $AccomSysId;
                $arrHotelInfo = $objHotel->getHotelListDetails();

                if (count($arrHotelInfo) <> 1) {
                    throw new Exception('Hotel information not found.');
                }
                $this->view->strHotelInfo = $arrHotelInfo[0]['Title'] . ", " . $arrHotelInfo[0]['CityName'];
            }
        }
    }

    public function viewMarkupSettingGridAction() {

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

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

        $objAgent = new Travel_Model_TblAgency();
        $CurrencyType = $objAgent->getAgentTxnCurrency($intLoggedinUserAgencySysId);

        $objCurrency = new Travel_Model_TblCurrency();
        $this->view->TransactionCurrencySymbol = $currencySymbol = $objCurrency->getCurrencySymbol($CurrencyType);





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

            //  $this->view->AccomSysId     = $AccomSysId    = $this->getRequest()->getParam('AccomSysId');
            $this->view->InvnItemSysId = $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');
            $this->view->MarkupSetting = $MarkupSetting = $this->getRequest()->getParam('MarkupSetting');
            $this->view->RateType = $RateType = $this->getRequest()->getParam('RateType');
            $this->view->key = $key = $this->getRequest()->getParam('key');

            if ($MarkupSetting == 'S') {
                $this->view->MarkupType = $MarkupType = '';
            } else {
                $this->view->MarkupType = $MarkupType = $this->getRequest()->getParam('MarkupType');
            }

            if ($MarkupType == '1' || $MarkupType == '2') {
                $this->view->MarkupSetting = $MarkupSetting = 'C';
            }

            $objHotel = new Travel_Model_TblHotel();

            if (!empty($InvnItemSysId)) {
                $condition = " AND TB_MP_Inventory_Accom.InvnItemSysId = " . $InvnItemSysId;
                $objHotel->strCondition = $condition;
                $arrMPInventoryAccomList = $objHotel->getMPInventoryAccomList();

                if (count($arrMPInventoryAccomList) <> 1) {
                    throw new Exception('There has been an error, Please try again later');
                }

                $this->view->arrMPInventoryAccomList = $arrMPInventoryAccomList = $arrMPInventoryAccomList[0];
                $this->view->DOccupCost = $arrMPInventoryAccomList['DOccupCost'];
                $this->view->SOccupCost = $arrMPInventoryAccomList['SOccupCost'];
                $this->view->ExtraBedCost = $arrMPInventoryAccomList['ExtraBedCost'];
                $this->view->ExtraWOBedCost = $arrMPInventoryAccomList['ExtraWOBedCost'];

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

                $this->view->NetDOccupCost = $arrMPInventoryAccomList['NetDOccupCost'];
                $this->view->NetSOccupCost = $arrMPInventoryAccomList['NetSOccupCost'];
                $this->view->NetExtraBedCost = $arrMPInventoryAccomList['NetExtraBedCost'];
                $this->view->NetExtraWOBedCost = $arrMPInventoryAccomList['NetExtraWOBedCost'];


                $this->view->Tax = $arrMPInventoryAccomList['Tax'];
                $this->view->RateType = $arrMPInventoryAccomList['RateType'];

                $CostCurrency = $arrMPInventoryAccomList['CostCurrency'];
                $TrxCurrency = $arrMPInventoryAccomList['TrxCurrency'];
            }

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->InvnItemSysId = $InvnItemSysId;


            if ($MarkupSetting == 'S') {
                $objAgency = new Travel_Model_TblAgency();
                $objAgency->getStandardMarkupAccomodation();
                $objAgency->intAgencySysId = $this->intLoggedinUserAgencySysId;
                $this->view->arrMarkupList = $objAgency->getStandardMarkupAccomodation();
            } else if ($MarkupSetting == 'C') {

                if (!empty($MarkupType)) {
                    $objHotel->strCondition .= " AND TB_MP_Inventory_Accom_Alloc.MarkUpType = " . $MarkupType;
                }

                $this->view->arrMarkupList = $arrMarkupList = $objHotel->getMPInventoryAccomAlloc();

                $objAgent = new Travel_Model_TblAgency();
                $arrExtraMarkupDetail = $objAgent->getExtraMarkupDetail($this->intLoggedinUserAgencySysId, $CurrencyType);

                if (!empty($arrExtraMarkupDetail) ) {
                    $this->view->ExtraPaddingIsInPercentage = @$arrExtraMarkupDetail[0]['IsInPercentage'];
                    $this->view->ExtraPadding = @$arrExtraMarkupDetail[0]['ExtraPadding'];
                }
            } else {
                // throw new Exception('Markup settings not found.');
            }

//            $arrHotelInventoryList = $objHotel->getHotelInventoryList($InvnItemSysId);
//
//            if(count($arrHotelInventoryList) <> 1 ) {
//                throw new Exception('There has been an error, Please try again later');
//            }
//            
//            $this->view->arrHotelInventoryList = $arrHotelInventoryList[0];


            $this->view->arrMarketPlaces = Zend_Controller_Action_HelperBroker::getStaticHelper('B2B')->getMarketPlaces();
            $this->view->arrPermissions = Zend_Controller_Action_HelperBroker::getStaticHelper('B2B')->getPermissions();

            if ($MarkupSetting == 'S') {
                $this->render('view-standard-markup-grid');
            } else if ($MarkupSetting == 'C') {
                $this->render('view-customized-markup-grid');
            } else {
                throw new Exception(TECHNICAL_ERROR_MSG);
            }
        }
    }

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

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

            $post = $this->getRequest()->getPost();

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


            $currentDate = date('Y-m-d H:i:s');
            $intMarkupType = $post['MarkupType'];
            $InvnItemSysId = $post['InvnItemSysId'];
            $MarkupSetting = $post['MarkupSetting'];

            $MPType = $post['MPType'];
            $doccupancy = $post['doccupancy'];
            $soccupancy = $post['soccupancy'];
            $extra_bed = $post['extra-bed'];
            $extra_without_bed = $post['extra-without-bed'];
            $tax = $post['tax'];

            if (empty($MPType)) {
                $response = array('success' => false, 'msg' => 'Please select Market Place.');
                echo json_encode($response);
                exit;
            }

            if (empty($intMarkupType)) {
                $response = array('success' => false, 'msg' => 'Please select Markup Type.');
                echo json_encode($response);
                exit;
            }

            if (empty($doccupancy)) {
                $response = array('success' => false, 'msg' => 'Please enter Double occupancy Markup.');
                echo json_encode($response);
                exit;
            }

            if (empty($soccupancy)) {
                $response = array('success' => false, 'msg' => 'Please enter Single occupancy Markup.');
                echo json_encode($response);
                exit;
            }

            if (empty($extra_bed)) {
                $response = array('success' => false, 'msg' => 'Please enter Extra with bed Markup.');
                echo json_encode($response);
                exit;
            }

            if (empty($extra_without_bed)) {
                $response = array('success' => false, 'msg' => 'Please enter Extra W/O bed Markup.');
                echo json_encode($response);
                exit;
            }

            if (empty($tax)) {
                $response = array('success' => false, 'msg' => 'Please enter tax.');
                echo json_encode($response);
                exit;
            }


            if (empty($InvnItemSysId) || empty($intMarkupType)) {
                throw new Exception('There has been an error, Please try again later');
            }

            $MPType = !empty($post['MPType']) ? $post['MPType'] : '0';

            $MarkUp = !empty($post['MarkUp']) ? $post['MarkUp'] : '0';
            $DOccupPrice = !empty($post['doccupancy']) ? $post['doccupancy'] : '0';
            $SOccupPrice = !empty($post['soccupancy']) ? $post['soccupancy'] : '0';
            $ExtraBedPrice = !empty($post['extra-bed']) ? $post['extra-bed'] : '0';
            $ExtraWOBedPrice = !empty($post['extra-without-bed']) ? $post['extra-without-bed'] : '0';
            $Details = !empty($post['Details']) ? $post['Details'] : '';
            $permissions = !empty($post['permissions']) ? $post['permissions'] : '0';
            $Tax = !empty($post['tax']) ? $post['tax'] : 0;

            $CustGrSysId = $this->intLoggedinUserGroupSysId;
            $ItemType = '0';
            $AgencySysId = $this->intLoggedinUserAgencySysId;
            $AllocateQty = '0';
            $IsVirtualInven = '0';
            $SoldQty = '0';
            $ReturnQty = '0';
            $NetQty = '0';
            $BlockQty = '0';
            $MarkUpType = $intMarkupType;
            $Currency = $this->intLoggedinUserTrxCurrency;
            $PerPaxPrice = '0';
            $OtherPrice = '0';
            $Discount = '0';
            $DiscountType = '0';
            $DiscountAmount = '0';
            $DiscountMsg = '';
            $NetPrice = '0';
            $IsPublish = '0';
            $PublishDate = '';
            $RateRuleSysId = '0';
            $TCDocSysId = '0';
            $ValidTill = '';
            $ApproveDate = '';
            $CreateDate = $currentDate;
            $UpdateDate = $currentDate;
            $IsApproved = '0';
            $IsMarkForDel = '0';
            $IsActive = $permissions;

            $insert = array(
                'InvnItemSysId' => $InvnItemSysId,
                'MPType' => $MPType,
                'CustGrSysId' => $CustGrSysId,
                'ItemType' => $ItemType,
                'AgencySysId' => $AgencySysId,
                'AllocateQty' => $AllocateQty,
                'IsVirtualInven' => $IsVirtualInven,
                'SoldQty' => $SoldQty,
                'ReturnQty' => $ReturnQty,
                'NetQty' => $NetQty,
                'BlockQty' => $BlockQty,
                'MarkUpType' => $MarkUpType,
                'MarkUp' => $MarkUp,
                'Currency' => $Currency,
                'DOccupPrice' => $DOccupPrice,
                'SOccupPrice' => $SOccupPrice,
                'ExtraBedPrice' => $ExtraBedPrice,
                'ExtraWOBedPrice' => $ExtraWOBedPrice,
                'Tax' => $Tax,
                'PerPaxPrice' => $PerPaxPrice,
                'OtherPrice' => $OtherPrice,
                'Discount' => $Discount,
                'DiscountType' => $DiscountType,
                'DiscountAmount' => $DiscountAmount,
                'DiscountMsg' => $DiscountMsg,
                'NetPrice' => $NetPrice,
                'IsPublish' => $IsPublish,
                'PublishDate' => $PublishDate,
                'Details' => $Details,
                'RateRuleSysId' => $RateRuleSysId,
                'TCDocSysId' => $TCDocSysId,
                'ValidTill' => $ValidTill,
                'ApproveDate' => $ApproveDate,
                'CreateDate' => $CreateDate,
                'UpdateDate' => $UpdateDate,
                'IsApproved' => $IsApproved,
                'IsMarkForDel' => '0',
                'IsActive' => $IsActive
            );

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


            /* Check if markup settings already exists */
            $objHotel = new Travel_Model_TblHotel();
            $arrMarkupSettings = $objHotel->getMarkups($InvnItemSysId, $MPType, $this->intLoggedinUserGroupSysId);

            if (!empty($arrMarkupSettings) ) {

                $objHotel = new Travel_Model_TblHotel();
                $objHotel->strCondition = " AND TB_MP_Inventory_Accom_Alloc.IsMarkForDel = '1' ";
                $arrMarkupSettings = $objHotel->getMarkups($InvnItemSysId, $MPType, $this->intLoggedinUserGroupSysId);

                /* Check if markup settings already exists */
                if (count($arrMarkupSettings) == 0) {
                    $response = array('success' => false, 'msg' => 'Markup settings of the selected Market Place has already been added.');
                    echo json_encode($response);
                    exit;
                } else {
                    try {
                        unset($insert['InvnItemSysId']);
                        unset($insert['MPType']);
                        unset($insert['CustGrSysId']);
                        $insert['IsMarkForDel'] = '0';
                        $objHotel->updateMarkupSettings($InvnItemSysId, $MPType, $CustGrSysId, $insert);
                        $response = array('success' => true);
                        echo json_encode($response);
                        exit;
                    } catch (Exception $e) {
                        $response = array('success' => false, 'msg' => $e->getMessage());
                        echo json_encode($response);
                        exit;
                    }
                }
            } else {
                try {
                    $objHotel = new Travel_Model_TblHotel();
                    $objHotel->addMarkupSettings($insert);
                    $response = array('success' => true);
                    echo json_encode($response);
                    exit;
                } catch (Exception $e) {
                    $response = array('success' => false, 'msg' => $e->getMessage());
                    echo json_encode($response);
                    exit;
                }
            }
        }
    }

    public function deleteMarkupSettingAction() {

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

        if ($this->_request->isXmlHttpRequest()) {
            $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');
            $MPType = $this->getRequest()->getParam('MPType');
            $CustGrSysId = $this->intLoggedinUserGroupSysId;

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->deleteMarkupSetting($InvnItemSysId, $MPType, $CustGrSysId);

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

    public function deleteBulkHotelInventoryAction() {

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

        if ($this->_request->isXmlHttpRequest()) {
            $InvnItemSysId = $this->getRequest()->getParam('intRecordId');

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->deleteMPInventoryAccom($InvnItemSysId);

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

    public function viewHotelInventoryBulkFormAction() {

        $this->_helper->layout->setLayout('newLayout');

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

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

            //  $this->_response->setHttpResponseCode(401); //401 = unauthorized

            $objHotel = new Travel_Model_TblHotel();
            // $this->view->arrHotels         = $objHotel->getHotelList();

            $objHotelRooms = new Travel_Model_TblHotelRooms();
            $this->view->arrHotelRoomTypes = $objHotelRooms->getRoomTypes();

            $objHotelMeals = new Travel_Model_TblHotelMeals();
            $this->view->arrHotelMeals = $objHotelMeals->getMealTypes();

            $objSupplier = new Travel_Model_TblSupplier();
            //$this->view->arrSupplierTypes = $objSupplier->getSupplierTypes();
            $this->view->SupplierTypeSysId = $objSupplier->SupplierTypeSysId = 4;
            $this->view->arrSupplierList = $objSupplier->getSuppliers();


            $objCurrency = new Travel_Model_TblCurrency();
            $this->view->arrCurrencyTypes = $objCurrency->getCurrencyTypes();
        }
    }

    public function viewHotelInventoryBulkEditFormAction() {

        $this->_helper->layout->setLayout('newLayout');

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

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

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

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->strCondition = " AND InvnItemSysId = " . $InvnItemSysId;
            $arrHotelDetail = $objHotel->getHotelInventoryList();
            $arrHotelInventoryDetail = $arrHotelDetail[0];

            //echo "<pre>"; print_r($arrHotelInventoryDetail);die;
            //$objHotelRooms = new Travel_Model_TblHotelRooms();
            //$this->view->arrHotelRoomTypes = $objHotelRooms->getRoomTypes();

            $objHotelMeals = new Travel_Model_TblHotelMeals();
            $this->view->arrHotelMeals = $objHotelMeals->getMealTypes();

            //$objSupplier = new Travel_Model_TblSupplier();
            //$this->view->arrSupplierTypes = $objSupplier->getSupplierTypes();
            //$this->view->SupplierTypeSysId = $objSupplier->SupplierTypeSysId = 4;
            //$this->view->arrSupplierList = $objSupplier->getSuppliers();
            //$objCurrency = new Travel_Model_TblCurrency();
            //$this->view->arrCurrencyTypes = $objCurrency->getCurrencyTypes();

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

    public function viewHotelInventoryIndividualFormAction() {

        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        if ($this->_request->isXmlHttpRequest()) {
            $AccomSysId = $this->getRequest()->getParam('AccomSysId');
            $this->view->AccomSysId = base64_decode($AccomSysId);
        }
    }

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

        if ($this->_request->isXmlHttpRequest()) {
            $AccomSysId = $this->getRequest()->getParam('AccomSysId');
            $Status = $this->getRequest()->getParam('Status');

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->changeStatus($AccomSysId, $Status);

            $response = array('success' => true);

            echo json_encode($response);
            exit;
        }
    }

    public function individualHotelOverviewAction() {

        /* Disable Layout */

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



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

            $objCountry = new Travel_Model_TblCountry();
            $this->view->arrCountryList = $objCountry->getCountryList();

            $objHotel = new Travel_Model_TblHotel();
            $this->view->arrAccomodationGroups = $arrAccomodationGroups = $objHotel->getAccomodationGroups();

            $this->view->arrAccomodationEconomyType = $arrAccomodationEconomyType = $objHotel->getAccomodationEconomyType();

            $this->view->intAccomSysId = $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');

            if (!empty($intAccomSysId)) {

                $objHotel = new Travel_Model_TblHotel();
                $objHotel->intAccomSysId = $intAccomSysId;
                $arrHotelDetail = $objHotel->getHotelListDetails();
//                echo "<pre>"; print_r($arrHotelDetail);
//                die;
                //Get Hotel Room Details IDs
                $arrHotelRoomIds = $objHotel->getHotelRoomIdsList($intAccomSysId);
                //echo "<pre>"; print_r($arrHotelRoomIds);

                $arrHotelGroupInfo = $objHotel->getHotelGroupMapByAccomSysId($intAccomSysId);




//                echo "<pre>"; print_r($arrHotelGroupInfo);
//                die;
                if (count($arrHotelDetail) <> 1) {
                    throw new Exception('Hotel information not found.');
                }

                $this->view->arrHotelInfo = $arrHotelDetail[0];
                $this->view->arrHotelRoomIds = $arrHotelRoomIds;
                $this->view->arrHotelGroupInfo = $arrHotelGroupInfo;
                $this->view->arrHotelImages = $objHotel->getHotelOtherImaages($intAccomSysId);
            }
        }
    }

    public function individualHotelAddroomsAction() {

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

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


            $this->view->intAccomSysId = $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');

            $objHotelRooms = new Travel_Model_TblHotelRooms();
            $this->view->arrHotelRoomTypes = $objHotelRooms->getRoomTypes();

            if (!empty($intAccomSysId)) {


                $this->view->mode = $mode = $this->getRequest()->getParam('mode');

                if ($mode == 'edit') {
                    // $this->view->ItemSysId     = $ItemSysId = $this->getRequest()->getParam('InvnItemSysId');
                    $this->view->InvnItemSysId = $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');

//                    $objHotel = new Travel_Model_TblHotel();
//                    $objHotel->ItemSysId      = $ItemSysId;
//                    $arrRoomDetail = $objHotel->getICAccomdationRoom($intAccomSysId);

                    $objHotel = new Travel_Model_TblHotel();

                    $objHotel->strCondition = " AND TB_IC_Accomdation_Room.ItemSysId  = " . $InvnItemSysId;

                    //echo " AND TB_MP_Inventory_Accom.InvnItemSysId  = " .$InvnItemSysId;

                    $arrRoomDetail = $objHotel->getMPInventoryHotelRoomList();


                    if (count($arrRoomDetail) <> 1) {
                        throw new Exception('Room detail not found.');
                    }

                    $this->view->arrRoomDetail = $arrRoomDetail[0];
                }


                $objHotel = new Travel_Model_TblHotel();
                $objHotel->intAccomSysId = $intAccomSysId;
                $arrHotelInfo = $objHotel->getHotelListDetails();

                if (count($arrHotelInfo) <> 1) {
                    throw new Exception('Hotel information not found.');
                }

                $this->view->arrHotelRoomsInfo = $objHotel->getHotelRoomsInventory($intAccomSysId);
                $this->view->strHotelInfo = $arrHotelInfo[0]['Title'] . ", " . $arrHotelInfo[0]['CityName'];
            }
        }
    }

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

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

            $post = $this->getRequest()->getPost();

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

            $AccomSysId = $post['AccomSysId'];
            $ItemSysId = $post['ItemSysId'];

            $title = $post['room_name'];
            $roomType = $post['room_type'];
            $mealPlan = $post['meal_plan'];

            $roomAmenities = isset($post['room_amenities']) && count($post['room_amenities']) > 0 ? $post['room_amenities'] : array();
            $amenities = implode(",", $roomAmenities);
            $objHotel = new Travel_Model_TblHotel();
            $amenitiesMask = $objHotel->createRoomAmenitiesMask($amenities);

            if (empty($title)) {
                $response = array('success' => false, 'msg' => 'Please enter room name');
                echo json_encode($response);
                exit;
            }

            if (empty($roomType)) {
                $response = array('success' => false, 'msg' => 'Please selecte room type');
                echo json_encode($response);
                exit;
            }

            /* Check if room type already exists of this Hotel */

            if (!empty($ItemSysId)) { /* Update case */
                $objHotel = new Travel_Model_TblHotel();
                $objHotel->strCondition = " AND TB_IC_Accomdation_Room.RoomType = " . $roomType . " AND TB_IC_Accomdation_Room.ItemSysId != " . $ItemSysId;
                // " AND TB_IC_Accomdation_Room.RoomType = ". $roomType ." AND TB_IC_Accomdation_Room.ItemSysId != " .$ItemSysId ;
                $arrRoomDetail = $objHotel->getICAccomdationRoom($AccomSysId);
            } else { /* Newly add case */
                $objHotel = new Travel_Model_TblHotel();
                $objHotel->strCondition = " AND TB_IC_Accomdation_Room.RoomType = " . $roomType;
                $arrRoomDetail = $objHotel->getICAccomdationRoom($AccomSysId);
            }

            if (!empty($arrRoomDetail) ) {
                $response = array('success' => false, 'msg' => 'This room type is already added for this Hotel.');
                echo json_encode($response);
                exit;
            }

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

            $insert = array(
                'AccomSysId' => $AccomSysId,
                'SourceSysId' => $this->InfoSourceSysId,
                'Title' => $title,
                'RoomType' => $roomType,
                'EconomyType' => 0,
                'Qty' => $post['room_inventory'],
                'BedType' => 0,
                'PaxCount' => $post['PaxCount'],
                'IsPetAllow' => 0,
                'MaxPetAllow' => 0,
                'AllowChild' => $post['AllowChild'],
                'AllowInfant' => 0,
                'MaxPaxCount' => $post['MaxPaxCount'],
                'MaxAllowChild' => $post['MaxAllowChild'],
                'MaxAllowInfant' => 0,
                'MealPlanType' => $mealPlan,
                'AminitiesMask' => $amenitiesMask,
                'InclustionOptionsMask' => '',
                'OtherDetails' => $post['other_details'],
                'UpdatedDate' => $currentDate,
                'CreateDate' => $currentDate,
                'ApproveDate' => EMPTY_DATE,
                'ApproveBy' => 0,
                'IsDelete' => 0,
                'IsActive' => '1',
                'IsApproved' => '0'
            );


            $objHotel = new Travel_Model_TblHotel();

            if (!empty($ItemSysId)) { /* Update case */
                $objHotel->updateICAccomdationRoom($insert, $AccomSysId, $ItemSysId);
                $response = array('success' => true);
            } else {
                $intLastInsertId = $objHotel->addICAccomdationRoom($insert);
                if (!empty($intLastInsertId)) {
                    $response = array('success' => true, 'intLastInsertId' => $intLastInsertId);
                } else {
                    $response = array('success' => false, 'msg' => TECHNICAL_ERROR_MSG);
                }
            }

            echo json_encode($response);
            exit;
        }
    }

    public function addMpInventoryAccomodationRoomAction() {
        /* Disable Layout */
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

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

            $post = $this->getRequest()->getPost();

            $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');
            $AccomSysId = $this->getRequest()->getParam('AccomSysId');

//            echo "<pre>";
//            print_r($post);
//            exit;
            // $AccomSysId  = $post['AccomSysId'];
            //$ItemSysId   = $post['ItemSysId'];
            //$title    = $post['room_name'];
            $roomType = $post['room_type'];
            $mealPlan = $post['meal_plan'];
            $room_inventory = $post['room_inventory'];

            $roomAmenities = isset($post['room_amenities']) && count($post['room_amenities']) > 0 ? $post['room_amenities'] : array();
            $amenities = implode(",", $roomAmenities);
            $objHotel = new Travel_Model_TblHotel();
            $amenitiesMask = $objHotel->createRoomAmenitiesMask($amenities);

//            if(empty($title)) {
//                $response = array('success' => false, 'msg' => 'Please enter room name');
//                echo json_encode($response);
//                exit;
//            }

            if ($roomType == 0) {
                $response = array('success' => false, 'msg' => 'Please select room type');
                echo json_encode($response);
                exit;
            }

            if ($mealPlan == 0) {
                $response = array('success' => false, 'msg' => 'Please select meal plan');
                echo json_encode($response);
                exit;
            }

            if ($room_inventory == "" || $room_inventory == 0) {
                $response = array('success' => false, 'msg' => 'Please enter total rooms');
                echo json_encode($response);
                exit;
            }

            $ItemSysId = $objHotel->getRoomIdByRoomType($AccomSysId, $roomType);

            // echo $XRefItemSysId;exit;



            /* Check if room type already exists of this Hotel */

//            if(!empty($ItemSysId)) { /* Update case */
//                $objHotel = new Travel_Model_TblHotel();
//                $objHotel->strCondition = " AND TB_IC_Accomdation_Room.RoomType = ". $roomType ." AND TB_IC_Accomdation_Room.ItemSysId != " .$ItemSysId ;
//                // " AND TB_IC_Accomdation_Room.RoomType = ". $roomType ." AND TB_IC_Accomdation_Room.ItemSysId != " .$ItemSysId ;
//                $arrRoomDetail = $objHotel->getICAccomdationRoom($AccomSysId);
//            }else { /* Newly add case */
//                $objHotel = new Travel_Model_TblHotel();
//                $objHotel->strCondition = " AND TB_IC_Accomdation_Room.RoomType = ". $roomType ;
//                $arrRoomDetail = $objHotel->getICAccomdationRoom($AccomSysId);
//            }
//            if(!empty($arrRoomDetail) > 0 ){
//                $response = array('success' => false, 'msg' => 'This room type is already added for this Hotel.');
//                echo json_encode($response);
//                exit;
//            }

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

            $insert = array(
                'AccomSysId' => $AccomSysId,
                'SourceSysId' => $this->intLoggedinUserAgencySysId,
                'Title' => '',
                'RoomType' => $roomType,
                'EconomyType' => 0,
                'Qty' => $post['room_inventory'],
                'BedType' => 0,
                'PaxCount' => 0,
                'IsPetAllow' => 0,
                'MaxPetAllow' => 0,
                'AllowChild' => 0,
                'AllowInfant' => 0,
                'MaxPaxCount' => $post['MaxPaxCount'],
                'MaxAllowChild' => $post['MaxAllowChild'],
                'MaxAllowInfant' => 0,
                'MealPlanType' => $mealPlan,
                'AminitiesMask' => $amenitiesMask,
                'InclustionOptionsMask' => '',
                'OtherDetails' => $post['other_details'],
                'UpdatedDate' => $currentDate,
                'CreateDate' => $currentDate,
                'ApproveDate' => EMPTY_DATE,
                'ApproveBy' => 0,
                'IsDelete' => 0,
                'IsActive' => '1',
                'IsApproved' => '0'
            );

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


            $objHotel = new Travel_Model_TblHotel();
            if (!empty($InvnItemSysId)) { /* Update case */

                $checkEditTotalRooms = $objHotel->isEditICAccomodationRoomExists($AccomSysId, $roomType, $InvnItemSysId);
                if ($checkEditTotalRooms > 0) {
                    $response = array('success' => false, 'msg' => "This room type is already added for this Hotel.");
                    echo json_encode($response);
                    exit;
                } else {
                    $objHotel->updateICAccomdationRoom($insert, $AccomSysId, $InvnItemSysId);

                    //$data = array('DailyRoomLimit' => $post['room_inventory']);
                    //$objHotel->updateMPInventoryAccom($InvnItemSysId, $data);
                    $response = array('success' => true);
                    echo json_encode($response);
                    exit;
                }
            } else {
                $checkTotalRooms = $objHotel->isICAccomodationRoomExists($AccomSysId, $roomType);
                if ($checkTotalRooms > 0) {
                    $response = array('success' => false, 'msg' => "This room type is already added for this Hotel.");
                    echo json_encode($response);
                    exit;
                } else {
                    $intLastInsertId = $objHotel->addICAccomdationRoom($insert);
                    if (!empty($intLastInsertId)) {
                        $response = array('success' => true, 'intLastInsertId' => $intLastInsertId);
                    } else {
                        $response = array('success' => false, 'msg' => TECHNICAL_ERROR_MSG);
                    }

                    echo json_encode($response);
                    exit;
                }
            }
        }
    }

    public function individualHotelRatesAction() {

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

        if ($this->_request->isXmlHttpRequest()) {
            $this->view->intAccomSysId = $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');


            $objHotel = new Travel_Model_TblHotel();
            $arrRoomTypes = $objHotel->getAccomodationRoomTypes($intAccomSysId);

            $this->view->isRoomExists = ( count($arrRoomTypes) == 0 ? false : true );
        }
    }

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

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

            $this->view->intAccomSysId = $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');

            if (!empty($intAccomSysId)) {

                $objHotel = new Travel_Model_TblHotel();
                $objHotel->intAccomSysId = $intAccomSysId;
                $arrHotelInfo = $objHotel->getHotelListDetails();
                $this->view->arrHotelRoomsInfo = $objHotel->getHotelRoomsInventory($intAccomSysId);
                if (count($arrHotelInfo) <> 1) {
                    throw new Exception('Hotel information not found.');
                }
                $this->view->strHotelInfo = $arrHotelInfo[0]['Title'] . ", " . $arrHotelInfo[0]['CityName'];

                //Get hotel room type list
                $this->view->arrHotelRoomTypes = $objHotel->getAvailableRoomTypes($intAccomSysId);

                //Get hotel meals type list
                $objHotelMeals = new Travel_Model_TblHotelMeals();
                $this->view->arrHotelMeals = $objHotelMeals->getMealTypes();

                //Get supplier type
                $objSupplier = new Travel_Model_TblSupplier();
                $this->view->SupplierTypeSysId = $objSupplier->SupplierTypeSysId = 4;

                $this->view->arrAccoRoomTypes = $arrAccoRoomTypes = $objHotel->getAccomodationRoomTypes($intAccomSysId);
            }

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

    public function addInventoryAccomRoomRatesAction() {

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

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

            $post = $this->getRequest()->getPost();

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

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

            $mealPlan = '0';
            $intPermission = '0';
            $intCurrency = isset($post['currency_type']) ? $post['currency_type'] : '0';
            $intSupplierSysId = '0';
            $title = '';

            $strFromDate = isset($post['from_dt']) ? $post['from_dt'] : '';
            $strToDate = isset($post['to_dt']) ? $post['to_dt'] : '';
            $intRoomType = isset($post['room_type']) ? $post['room_type'] : '0';
            $intMealPlan = isset($post['meal_plan']) ? $post['meal_plan'] : '0';
            $intDailyRoomLimit = isset($post['daily_room_limit']) ? $post['daily_room_limit'] : '0';

            $rateType = isset($post['rate_type']) ? $post['rate_type'] : 'RR';

            $fltCostDoubleOccupancy = !empty($post['cost_double_occupancy']) ? $post['cost_double_occupancy'] : '0';
            $fltCostSingleOccupancy = !empty($post['cost_single_occupancy']) ? $post['cost_single_occupancy'] : '0';
            $fltCostExtraWithBed = !empty($post['cost_extra_with_bed']) ? $post['cost_extra_with_bed'] : '0';
            $fltCostExtraWithoutBed = !empty($post['cost_extra_without_bed']) ? $post['cost_extra_without_bed'] : '0';

            if ($rateType == 'RR') {
                $fltRackCommission = !empty(@$post['rack_commission']) ? @$post['rack_commission'] : '0';

                if (empty(@$fltRackCommission)) {
                    $response = array('success' => false, 'msg' => 'Please enter Rack Commission.');
                    echo json_encode($response);
                    exit;
                }
            } else {
                $fltRackCommission = 0;
            }


            $fltNetCostDoubleOccupancy = !empty($post['net_cost_double_occupancy']) ? $post['net_cost_double_occupancy'] : '0';
            $fltNetCostSingleOccupancy = !empty($post['net_cost_single_occupancy']) ? $post['net_cost_single_occupancy'] : '0';
            $fltNetCostExtraWithBed = !empty($post['net_cost_extra_with_bed']) ? $post['net_cost_extra_with_bed'] : '0';
            $fltNetCostExtraWithoutBed = !empty($post['net_cost_extra_without_bed']) ? $post['net_cost_extra_without_bed'] : '0';
            $fltNetTax = !empty($post['net_tax']) ? $post['net_tax'] : '0';
            $intSelectedHotelId = !empty($post['hidden_selected_hotel_id']) ? $post['hidden_selected_hotel_id'] : '0';
            $InvnItemSysId = !empty($post['InvnItemSysId']) ? $post['InvnItemSysId'] : '0';
            $hotelName = isset($post['hotel_name']) ? $post['hotel_name'] : '';
            $roomName = isset($post['room_name']) ? $post['room_name'] : '';
            $tax = !empty($post['tax']) ? $post['tax'] : '0';


            if (empty($intSelectedHotelId)) {
                $response = array('success' => false, 'msg' => 'Please choose the Hotel from the list or click on "Add New".');
                echo json_encode($response);
                exit;
            }

            if ($intRoomType == 0) {
                $response = array('success' => false, 'msg' => 'Please select room type.');
                echo json_encode($response);
                exit;
            }

            if ($intMealPlan == 0) {
                $response = array('success' => false, 'msg' => 'Please select meal plan.');
                echo json_encode($response);
                exit;
            }

            if (empty($intDailyRoomLimit)) {
                $response = array('success' => false, 'msg' => 'Please enter daily room limit.');
                echo json_encode($response);
                exit;
            }

            if (empty($strFromDate) || $strFromDate == EMPTY_DATE_FIELD) {
                $response = array('success' => false, 'msg' => 'Please enter From Date.');
                echo json_encode($response);
                exit;
            }

            if (empty($strToDate) || $strToDate == EMPTY_DATE_FIELD) {
                $response = array('success' => false, 'msg' => 'Please enter To Date.');
                echo json_encode($response);
                exit;
            }

            if (empty($intCurrency)) {
                $response = array('success' => false, 'msg' => 'Please select currency.');
                echo json_encode($response);
                exit;
            }

            if (empty($fltCostDoubleOccupancy)) {
                $response = array('success' => false, 'msg' => 'Please enter double Occupancy cost.');
                echo json_encode($response);
                exit;
            }

            if (empty($fltNetCostDoubleOccupancy)) {
                $response = array('success' => false, 'msg' => 'Please enter Net double Occupancy cost.');
                echo json_encode($response);
                exit;
            }

            if (empty($fltNetCostDoubleOccupancy)) {
                $response = array('success' => false, 'msg' => 'Please enter Net double Occupancy cost.');
                echo json_encode($response);
                exit;
            }

            if (!empty($fltCostDoubleOccupancy)) {
                if (empty($fltNetCostDoubleOccupancy)) {
                    $response = array('success' => false, 'msg' => 'Please enter Net double Occupancy cost.');
                    echo json_encode($response);
                    exit;
                }
            }

            if (!empty($fltCostSingleOccupancy)) {
                if (empty($fltNetCostSingleOccupancy)) {
                    $response = array('success' => false, 'msg' => 'Please enter Net Single Occupancy cost.');
                    echo json_encode($response);
                    exit;
                }
            }

            if (!empty($fltCostExtraWithBed)) {
                if (empty($fltNetCostExtraWithBed)) {
                    $response = array('success' => false, 'msg' => 'Please enter Net Extra with bed cost.');
                    echo json_encode($response);
                    exit;
                }
            }

            if (!empty($fltCostExtraWithoutBed)) {
                if (empty($fltNetCostExtraWithoutBed)) {
                    $response = array('success' => false, 'msg' => 'Please enter Net Extra without bed cost.');
                    echo json_encode($response);
                    exit;
                }
            }

            if (($fltCostDoubleOccupancy < $fltNetCostDoubleOccupancy) && (!empty($fltCostDoubleOccupancy))) {
                $response = array('success' => false, 'msg' => 'Net rate of double occupancy must be less than Rack rate of double occupancy.');
                echo json_encode($response);
                exit;
            }

            if (($fltCostSingleOccupancy < $fltNetCostSingleOccupancy) && (!empty($fltCostSingleOccupancy))) {
                $response = array('success' => false, 'msg' => 'Net rate of single occupancy must be less than Rack rate of single occupancy.');
                echo json_encode($response);
                exit;
            }

            if (($fltCostExtraWithBed < $fltNetCostExtraWithBed) && (!empty($fltCostExtraWithBed))) {
                $response = array('success' => false, 'msg' => 'Net rate of extra with bed must be less than Rack rate of extra with bed.');
                echo json_encode($response);
                exit;
            }

            if (($fltCostExtraWithoutBed < $fltNetCostExtraWithoutBed) && (!empty($fltCostExtraWithoutBed))) {
                $response = array('success' => false, 'msg' => 'Net rate of extra without bed must be less than Rack rate of extra without bed.');
                echo json_encode($response);
                exit;
            }



            /* If entry from bulk form */
            if (!empty($form) && $form == 'bulk') {

                $RoomTypeId = $post['room_type'];
                $mealPlan = !empty($post['meal_plan']) ? $post['meal_plan'] : '0';
                $intPermission = !empty($post['permission']) ? $post['permission'] : '0';
                $supplier_name = !empty($post['supplier_name']) ? $post['supplier_name'] : '';
                $intSupplierSysId = !empty($post['hidden_selected_supplier_sys_id']) ? $post['hidden_selected_supplier_sys_id'] : '0';
                $title = !empty($post['room_name']) ? $post['room_name'] : '';

                $intAccomSysId = $this->getRequest()->getParam('hidden_selected_hotel_id');
                $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');



//                if(empty($title)) {
//                    $response = array('success' => false, 'msg' => 'Please enter room name.');
//                    echo json_encode($response);
//                    exit;
//                }

                if (empty($RoomTypeId)) {
                    $response = array('success' => false, 'msg' => 'Please select room type.');
                    echo json_encode($response);
                    exit;
                }

                if (empty($mealPlan)) {
                    $response = array('success' => false, 'msg' => 'Please select meal plan.');
                    echo json_encode($response);
                    exit;
                }

                if (empty($supplier_name) || $intSupplierSysId == 0) {
                    $response = array('success' => false, 'msg' => 'Please enter supplier name.');
                    echo json_encode($response);
                    exit;
                }
            } else {
                $intAccomSysId = $post['intAccomSysId'];
                $RoomTypeId = $post['RoomTypeId'];
            }


            $strFromDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strFromDate, 'd/m/y');
            $strToDate = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($strToDate, 'd/m/y');

            $isGreater = Zend_Controller_Action_HelperBroker::getStaticHelper('General')->isGreater($strFromDate, $strToDate);

            if ($isGreater == 1) {
                $response = array('success' => false, 'msg' => 'To Date must be greater than From Date');
                echo json_encode($response);
                exit;
            }

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

            $intLastInsertedRoomId = 0;

            $approveDate = (@$this->intLoggedinUserId != ADMIN_ID) ? '' : $currentDate;
            $isApproved = (@$this->intLoggedinUserId != ADMIN_ID) ? 0 : 1;
            $isActive = (@$this->intLoggedinUserId != ADMIN_ID) ? 0 : 1;
            /* Check if Accomodation already exists  in database. If not exists then add */
            if (empty($intAccomSysId)) {
                $newAccomodation = array('IsAgentSpec' => true, 'ICSourceSysId' => '0',
                    'Title' => $hotelName,
                    'AccomGrSysId' => '0',
                    'AliasAndMeta' => '',
                    'ShortName' => '',
                    'PlaceSysId_XRef' => '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' => '',
                    'GeoLong' => '',
                    'Address' => '',
                    'PinCode' => '',
                    'CitySysId' => '0',
                    'ZoneSysId' => '0',
                    'ZoneType' => '0',
                    'StateSysId' => '0',
                    'ContSysId' => '0',
                    'UpdateDate' => $currentDate,
                    'ApproveDate' => $approveDate, //'',
                    'ApproveBy' => '0',
                    'CreateDate' => $currentDate,
                    'IsApproved' => $isApproved, //'0',
                    'IsActive' => $isActive, //'0',
                    'IsMarkForDel' => '0'
                );

                $objHotel = new Travel_Model_TblHotel();
                $intLastInsertId = $objHotel->addAccomodation($newAccomodation);
                $XRefAccoSysId = $intLastInsertId;

                /* Add room to accomodation */
                $newRoomData = array('AccomSysId' => $intAccomSysId, 'SourceSysId' => $this->InfoSourceSysId,
                    'Title' => $roomName, 'RoomType' => $RoomTypeId, 'EconomyType' => '0',
                    'Qty' => 0, 'BedType' => '0', 'PaxCount' => '0', 'IsPetAllow' => 0,
                    'MaxPetAllow' => '0', 'AllowChild' => '0', 'AllowInfant' => '0',
                    'MaxPaxCount' => '0', 'MaxAllowChild' => 0, 'MaxAllowInfant' => 0,
                    'MealPlanType' => '0', 'AminitiesMask' => '', 'InclustionOptionsMask' => '',
                    'OtherDetails' => '', 'UpdatedDate' => $currentDate, 'ApproveDate' => EMPTY_DATE,
                    'CreateDate' => $currentDate, 'ApproveDate' => EMPTY_DATE, 'ApproveBy' => 0,
                    'IsDelete' => '0', 'IsActive' => 0, 'IsApproved' => '0');
                $intLastInsertedRoomId = $objHotel->addIndividualHotelRoomsInventory($newRoomData);
                $XRefItemSysId = $intLastInsertedRoomId;
            } else {
                $XRefAccoSysId = $intAccomSysId;
                $objHotel = new Travel_Model_TblHotel();
                $XRefItemSysId = $objHotel->getICAccomodationItemSysId($intAccomSysId, $RoomTypeId);
            }

            $objAgent = new Travel_Model_TblAgency();
            $TrxCurrency = $objAgent->getAgentTxnCurrency($this->intLoggedinUserAgencySysId);

            //Get Sipplier Masking
            if ($intSupplierSysId != "" && $intSupplierSysId != 0) {
                $objSupplier = new Travel_Model_TblSupplier();
                $supplierDetails = $objSupplier->getSupplierList($intSupplierSysId);
                $supplierMasking = $supplierDetails['Services'];

                //Get Old Masking Array
                $SupplierServicesArrDB = $objSupplier->getSupplierServices(); //Get Supplier Services
                $servicesMaskingArr = $objSupplier->getMasking($supplierMasking, $SupplierServicesArrDB, 'SupplierSerSysId');
                $ActivitiesSupplierTypeSysIdArr = array($this->SupplierTypeSysId);
                $newMaskingArr = array_unique(array_merge($servicesMaskingArr, $ActivitiesSupplierTypeSysIdArr));

                //Set new masking string
                $supplierServicesNewMasking = $objSupplier->setMasking($newMaskingArr, $SupplierServicesArrDB, 'SupplierSerSysId');
                //echo $supplierServicesNewMasking; die;
                //Update Masking
                $supplierMaskingUpdateArr = array('Services' => $supplierServicesNewMasking);
                $objSupplier->updateSupplier($supplierMaskingUpdateArr, $intSupplierSysId);
            }

            $inventoryAccomodationData = array('InventoryType' => HOTEL_INVENTORY_TYPE_ID,
                'XRefAccoSysId' => $XRefAccoSysId,
                'XRefItemSysId' => $XRefItemSysId,
                'AgencySysId' => $this->intLoggedinUserAgencySysId,
                'SupplierSysId' => $intSupplierSysId, 'Title' => $title,
                'EconomyType' => $RoomTypeId, 'MealPlanType' => $mealPlan, 'IxFixedDateInven' => '0',
                'FromDate' => $strFromDate, 'ToDate' => $strToDate, 'DailyRoomLimit' => $intDailyRoomLimit, 'PurchasedQty' => 0,
                'PublishQty' => 0, 'BlockQty' => 0, 'SoldQty' => 0, 'ReturnQty' => 0, 'NetInHandQty' => 0,
                'CostCurrency' => $intCurrency, 'TrxCurrency' => $TrxCurrency, 'IsPerPaxCostAllowed' => '', 'RateType' => $rateType,
                'PerPaxCost' => 0, 'DOccupCost' => $fltCostDoubleOccupancy, 'RackCommission' => $fltRackCommission,
                'SOccupCost' => $fltCostSingleOccupancy, 'ExtraBedCost' => $fltCostExtraWithBed, 'ExtraWOBedCost' => $fltCostExtraWithoutBed,
                'NetDOccupCost' => $fltNetCostDoubleOccupancy, 'NetSOccupCost' => $fltNetCostSingleOccupancy,
                'NetExtraBedCost' => $fltNetCostExtraWithBed, 'NetExtraWOBedCost' => $fltNetCostExtraWithoutBed,
                'Tax' => $tax, 'NetTax' => $fltNetTax,
                'OtherCost' => '0', 'SaleAmount' => '0', 'DefaultPrice' => 0, 'Brief' => '', 'IfAnyOffer' => '0',
                'OfferMsg' => '', 'OfferImage' => '', 'CreatorSysId' => $this->intLoggedinUserId, 'CreateDate' => $currentDate, 'ApproveDate' => '',
                'UpdateDate' => $currentDate, 'IsActive' => $intPermission, 'IsMarkForDelete' => 0, 'IsApproved' => '0'
            );


            $objHotel = new Travel_Model_TblHotel();
            // $intLastInsertId  = $objHotel->addInventoryAccomRoomRates($insertData);
//            echo "<pre>";
//            print_r($inventoryAccomodationData);
//            exit;

            if ($InvnItemSysId != "" && $InvnItemSysId != 0) {
                $objHotel->updateMPInventoryAccom($InvnItemSysId, $inventoryAccomodationData);
                $intLastInsertId = $InvnItemSysId;
            } else {
                $intLastInsertId = $objHotel->addMPInventoryAccom($inventoryAccomodationData);
            }

            if (!empty($intLastInsertId)) {
                $response = array('success' => true, 'intLastInsertId' => $intLastInsertId);
            } else {
                $response = array('success' => false);
            }

            echo json_encode($response);
            exit;

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

    public function individualHotelRateRulesAction() {

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

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

            $this->view->intAccomSysId = $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');
        }
    }

    public function individualHotelAmenitiesAction() {

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

        if ($this->_request->isXmlHttpRequest()) {
            $this->view->intAccomSysId = $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');

            if (!empty($intAccomSysId)) {

                $objHotel = new Travel_Model_TblHotel();
                $objHotel->intAccomSysId = $intAccomSysId;
                $arrHotelInfo = $objHotel->getHotelListDetails();
                $this->view->arrHotelRoomsInfo = $objHotel->getHotelRoomsInventory($intAccomSysId);
                if (count($arrHotelInfo) <> 1) {
                    throw new Exception('Hotel information not found.');
                }
                $this->view->strHotelInfo = $arrHotelInfo[0]['Title'] . ", " . $arrHotelInfo[0]['CityName'];

                $objHotel = new Travel_Model_TblHotel();
                $objHotel->orderByField = " TB_Master_Accom_AccomAminity.AminityId ";
                $objHotel->orderBy = "";

                $this->view->arrMasterAccomAminities = $objHotel->getMasterAccomAminities();

                $this->view->arrSelectedAmenities = $objHotel->getMasking($intAccomSysId);
            }
        }
    }

    public function individualHotelSuppliersAction() {

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

        if ($this->_request->isXmlHttpRequest()) {
            $this->view->intAccomSysId = $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');
            $objSuppliers = new Travel_Model_TblSupplier();
            $objSuppliers->orderByField = " TB_IC_Supplier.SupplierSysId ";
            $objSuppliers->orderBy = " DESC ";
            $this->view->arrSuppliers = $objSuppliers->getSuppliers();
        }
    }

    public function individualHotelTermsConditionsAction() {

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

        if ($this->_request->isXmlHttpRequest()) {
            $this->view->intAccomSysId = $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');

            $objHotel = new Travel_Model_TblHotel();
            $this->view->terms = $objHotel->getTermsNConditions($intAccomSysId);
        }
    }

    public function getCountryAutoSearchAction() {

        $this->_helper->layout->disableLayout();
        if ($this->getRequest()->isXmlHttpRequest()) {

            $strCountryName = $this->getRequest()->getParam('term');

            $objHotel = new Travel_Model_TblHotel();
            $result = $objHotel->getCountryList($strCountryName);
            //echo "<pre>";print_r($result);die;
//            if(count($result) != 1) {
//                throw new Exception('There has been a technical error. Please try again later.');
//            }
            echo $this->_helper->json($result);
            exit;
        }
    }
	
	public function getCityAutoSearchAction() {

        $this->_helper->layout->disableLayout();
        if ($this->getRequest()->isXmlHttpRequest()) {

            $term = $this->getRequest()->getParam('term');
			$strcountryId = $this->getRequest()->getParam('countryId');

            $objHotel = new Travel_Model_TblHotel();
            $result = $objHotel->getAutoSuggestCity($term, $strcountryId, $this->intLoggedinUserAgencySysId);
            
            echo $this->_helper->json($result);
            exit;
        }
    }

    public function autosuggestAction() {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();

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

            $objHotel = new Travel_Model_TblHotel();
            $arrResponse = $objHotel->getAutoSuggest($term, $strcountryId, $this->intLoggedinUserAgencySysId);
        }
        echo json_encode($arrResponse);
    }
	
	public function autosuggesthotelAction() {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();

        $arrResponse = array();
        if ($this->getRequest()->getParam("term")) {
            $term = $this->getRequest()->getParam("term");
            $strcountryId = $this->getRequest()->getParam('countryId');
            $strcityId = $this->getRequest()->getParam('cityId');

            $objHotel = new Travel_Model_TblHotel();
            $arrResponse = $objHotel->getAutoSuggestHotel($term, $strcountryId, $strcityId, $this->intLoggedinUserAgencySysId);
        }
        echo json_encode($arrResponse);
    }
	
	public function autosuggesthotelpackageAction() {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();

        $arrResponse = array();
        if ($this->getRequest()->getParam("term")) {
            $term = $this->getRequest()->getParam("term");
            $strcityId = $this->getRequest()->getParam('cityId');
            $objHotel = new Travel_Model_TblHotel();
            $arrResponse = $objHotel->getAutoSuggestHotelPackage($term, $strcityId, $this->intLoggedinUserAgencySysId);
        }
        echo json_encode($arrResponse);
    }
	
	public function autosuggestnewAction() {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();

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

            $objHotel = new Travel_Model_TblHotel();
            $arrResponse = $objHotel->getAutoSuggestNew($term, $strcountryId, $this->intLoggedinUserAgencySysId);
        }
        echo json_encode($arrResponse);
    }

    public function autosuggestAgentAction() {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();

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

            $objHotel = new Travel_Model_TblHotel();
            $arrResponse = $objHotel->getAutoSuggestByAgent($term, $this->intLoggedinUserAgencySysId);
        }
        echo json_encode($arrResponse);
    }

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

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

            $amenities = $this->getRequest()->getParam('Amenities');
            $AccomSysId = $this->getRequest()->getParam('AccomSysId');

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->addAccomodationRoomAmenities($AccomSysId, $amenities);

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

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

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

            $data = $this->getRequest()->getPost();

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

            $objHotel = new Travel_Model_TblHotel();

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

            $hotelId = isset($data['hidden_selected_hotel_id']) ? $data['hidden_selected_hotel_id'] : '0';
            if ($hotelId != 0 && $hotelId != "") {
                $hotelName = isset($data['edit_hotel_name']) ? $data['edit_hotel_name'] : '';
            } else {
                $hotelName = isset($data['hotel_name']) ? $data['hotel_name'] : '';
            }

            $hotel_chain = isset($data['hotel_chain']) ? $data['hotel_chain'] : '';
            $intCountryId = isset($data['select-hotel-country']) ? $data['select-hotel-country'] : '';
            $intCityId = isset($data['select-hotel-city']) ? $data['select-hotel-city'] : '';
            $intHotelType = isset($data['hotel-type']) ? $data['hotel-type'] : 0;
            $GeoLat = isset($data['latitude']) ? $data['latitude'] : 0;
            $GeoLong = isset($data['longitude']) ? $data['longitude'] : 0;

            $Brief = isset($data['brief']) ? $data['brief'] : '';


            if (empty($hotelName) && $hotelId == 0) {
                $response = array('success' => false, 'msg' => 'Please enter hotel name.');
                echo json_encode($response);
                exit;
            }

            if (empty($intHotelType)) {
                $response = array('succes' => false, 'msg' => 'Please select accomodation type.');
                echo json_encode($response);
                exit;
            }
//            if(!isset($data['hotel-room-types']) || count($data['hotel-room-types']) == 0 ) {
//                $response = array('succes' => false, 'msg' => 'Please select atleast one room type.');
//                echo json_encode($response);
//                exit;
//            }
            //$arrHotelRoomIds = $objHotel->getHotelRoomIdsList($hotelId);
            //echo "<pre>"; print_r($data['hotel-room-types']);
            //echo "<pre>"; print_r($arrHotelRoomIds);
            //die;
//            if(count($arrHotelRoomIds) > count($data['hotel-room-types'])) {
//                $response = array('success' => false, 'msg' => 'The hotel room type are different from your previous selection');
//                echo json_encode($response);
//                exit;
//            }

            if (empty($intCountryId)) {
                $response = array('success' => false, 'msg' => 'Please choose the country.');
                echo json_encode($response);
                exit;
            }

            if (empty($intCityId)) {
                $response = array('success' => false, 'msg' => 'Please choose the city..');
                echo json_encode($response);
                exit;
            }

            $arrHotelDetail = $objHotel->getHotelListDetailsByHotelId($hotelId);


            $db_IsAgentSpec = $arrHotelDetail['IsAgentSpec'];
            $Brief = trim($Brief);
            $Address = trim($arrHotelDetail['Address']);
            $PinCode = trim($arrHotelDetail['PinCode']);
            $db_CreateDate = $arrHotelDetail['CreateDate'];
            $db_IsLocked = $arrHotelDetail['IsLocked'];
            $db_ApproveDate = $arrHotelDetail['ApproveDate'];
            $db_ApproveBy = $arrHotelDetail['ApproveBy'];
            $db_IsApproved = $arrHotelDetail['IsApproved'];
            $db_IsActive = $arrHotelDetail['IsActive'];
            $db_IsMarkForDel = $arrHotelDetail['IsMarkForDel'];


            //Add and edit parameter 
//            if ($arrHotelDetail['ResultIndex'] != "") {
//                $ResultIndex = $arrHotelDetail['ResultIndex'];
//            } else {
//                $ResultIndex = '';
//            }
//            if ($arrHotelDetail['TraceId'] != "") {
//                $TraceId = $arrHotelDetail['TraceId'];
//            } else {
//                $TraceId = '';
//            }
//            if ($arrHotelDetail['TokenId'] != "") {
//                $TokenId = $arrHotelDetail['TokenId'];
//            } else {
//                $TokenId = '';
//            }
            if ($arrHotelDetail['AliasAndMeta'] != "") {
                $AliasAndMeta = $arrHotelDetail['AliasAndMeta'];
            } else {
                $AliasAndMeta = '';
            }
            if ($arrHotelDetail['ShortName'] != "") {
                $ShortName = $arrHotelDetail['ShortName'];
            } else {
                $ShortName = '';
            }
            if ($arrHotelDetail['PlaceSysId_XRef'] != "") {
                $PlaceSysId_XRef = $arrHotelDetail['PlaceSysId_XRef'];
            } else {
                $PlaceSysId_XRef = '0';
            }
            if ($arrHotelDetail['Icon'] != "") {
                $Icon = $arrHotelDetail['Icon'];
            } else {
                $Icon = '';
            }
            if ($arrHotelDetail['ThumnailImg'] != "") {
                $ThumnailImg = $arrHotelDetail['ThumnailImg'];
            } else {
                $ThumnailImg = '';
            }
            $DetailImg = '';
            if (!empty($_FILES['userImage'])) {
                $unique = substr(time(), 0, 5);
                if ($_FILES['userImage']['name'] != '') {
                    $file_name = $unique . '_' . $_FILES['userImage']['name'];
                    $file_parts = pathinfo($file_name);
                    $file_parts['extension'];
                    $cool_extensions = Array('jpg', 'png', 'jpeg', 'gif');
                    if (in_array($file_parts['extension'], $cool_extensions)) {
                        $DetailImg = Catabatic_Helper::getSiteUrl() . 'public/upload/hotel/' . $file_name;
                        $tmp_name = $_FILES['userImage']['tmp_name'];
                        $file_path = $_SERVER['DOCUMENT_ROOT'] . '/public/upload/hotel/';
                        $toupload = @move_uploaded_file($tmp_name, $file_path . $file_name);
                    } else {
                        $DetailImg = $data['hiddenuserImage'];
                    }
                } else {
                    $DetailImg = $data['hiddenuserImage'];
                }
            }
            if ($arrHotelDetail['Rating'] != "") {
                $Rating = $arrHotelDetail['Rating'];
            } else {
                $Rating = '0';
            }
            if ($arrHotelDetail['Popularity'] != "") {
                $Popularity = $arrHotelDetail['Popularity'];
            } else {
                $Popularity = '0';
            }
            if ($arrHotelDetail['AwardRecognizations'] != "") {
                $AwardRecognizations = $arrHotelDetail['AwardRecognizations'];
            } else {
                $AwardRecognizations = '';
            }
            if ($arrHotelDetail['AccoAminitiesMask'] != "") {
                $AccoAminitiesMask = $arrHotelDetail['AccoAminitiesMask'];
            } else {
                $AccoAminitiesMask = '';
            }


            $insert = array('IsAgentSpec' => !empty($db_IsAgentSpec) ? $db_IsAgentSpec : '1',
                'ICSourceSysId' => $this->intLoggedinUserAgencySysId,
                'Title' => $hotelName,
                'AliasAndMeta' => $AliasAndMeta,
                'ShortName' => $ShortName,
                'PlaceSysId_XRef' => $PlaceSysId_XRef,
                'Icon' => $Icon,
                'ThumnailImg' => $ThumnailImg,
                'DetailImg' => $DetailImg,
                'Stars' => !empty($data['star-rating']) ? $data['star-rating'] : '0',
                'Rating' => $Rating,
                'Popularity' => $Popularity,
                'AwardRecognizations' => $AwardRecognizations,
                'PropertyType' => '0',
                'EconomyType' => !empty($data['hotel-type']) ? $data['hotel-type'] : '',
                'AccoAminitiesMask' => $AccoAminitiesMask,
                'MaxPaxCount' => '0',
                'RoomCounts' => '0',
                'Brief' => !empty($data['brief']) ? trim($data['brief']) : $Brief,
                'CheckinTime' => !empty($data['CheckinTime']) ? $data['CheckinTime'] : @$data['CheckinTime'],
                'CheckOutTime' => !empty($data['CheckOutTime']) ? $data['CheckOutTime'] : @$data['CheckOutTime'],
                'IsDayLightApp' => '0',
                'GeoLat' => $GeoLat,
                'GeoLong' => $GeoLong,
                'Address' => !empty($data['address']) ? trim($data['address']) : @$Address,
                'PinCode' => !empty($data['pinCode']) ? trim($data['pinCode']) : @$PinCode,
                'CitySysId' => $intCityId,
                'ZoneSysId' => '0',
                'ZoneType' => '0',
                'StateSysId' => isset($data['select-hotel-state']) ? $data['select-hotel-state'] : '',
                'ContSysId' => $intCountryId,
                //'PrimaryContact'            => isset($hotel_details['PrimaryContact']) ? $hotel_details['PrimaryContact'] : '',
                //'SecondaryContact'          => isset($hotel_details['SecondaryContact']) ? $hotel_details['SecondaryContact'] : '',
                //'OtherContacts'             => isset($hotel_details['OtherContacts']) ? $hotel_details['OtherContacts'] : '',
                'UpdateDate' => $currentDate,
                'ApproveDate' => !empty($db_ApproveDate) ? $db_ApproveDate : '',
                'ApproveBy' => !empty($db_ApproveBy) ? $db_ApproveBy : '0',
                'CreateDate' => !empty($db_CreateDate) ? $db_CreateDate : $currentDate,
                'IsLocked' => !empty($db_IsLocked) ? $db_IsLocked : '1',
                'IsApproved' => !empty($db_IsApproved) ? $db_IsApproved : '0',
                'IsActive' => !empty($db_IsActive) ? $db_IsActive : '1',
                'IsMarkForDel' => !empty($db_IsMarkForDel) ? $db_IsMarkForDel : '0'
            );

            if (!empty($hotelId) && $hotelId != 0) {
                //echo "dssd sdfds sdas";die;
                $objHotel->updateAccomodationInfo($insert, $hotelId);
                if ($data['hotel_chain']) {
                    $objHotel->updateAccomodationGroupInfo($data['hotel_chain'], $hotelId);
                }
                $intLastInsertId = $hotelId;
            } else {
                //echo "dssd sdfds";die;
                $intLastInsertId = $objHotel->addAccomodation($insert, $data['hotel_chain']);
                $AccomSysId = $intLastInsertId;
            }

            $objHotel->deleteHotelOtherImaages($intLastInsertId);



            $HotelOtherImg = '';
            if (!empty($_FILES['userOtherImage'])) {
                $unique = substr(time(), 0, 5);
                for ($y = 0; $y < count($_FILES['userOtherImage']['name']); $y++) {
                    if ($_FILES['userOtherImage']['name'][$y] != '') {
                        $file_name = $unique . '_' . $_FILES['userOtherImage']['name'][$y];
                        $file_parts = pathinfo($file_name);
                        $file_parts['extension'];
                        $cool_extensions = Array('jpg', 'png', 'jpeg', 'gif');
                        if (in_array($file_parts['extension'], $cool_extensions)) {
                            $HotelOtherImg = Catabatic_Helper::getSiteUrl() . 'public/upload/hotel/' . $file_name;
                            //$imagename = $this->siteUrl . $this->upload_dir . $file_name;
                            $tmp_name = $_FILES['userOtherImage']['tmp_name'][$y];
                            $file_path = $_SERVER['DOCUMENT_ROOT'] . '/public/upload/hotel/';
                            $toupload = @move_uploaded_file($tmp_name, $file_path . $file_name);
                            $otherimage = array(
                                "AccomSysId" => $intLastInsertId,
                                "HotelCode" => $intLastInsertId,
                                "CitySysId" => $intCityId,
                                "Seq" => $y + 1,
                                "ImgType" => "2",
                                "TagTitle" => "DetilImage",
                                "Details" => $HotelOtherImg,
                                "UpdateDate" => $currentDate,
                                "CreateDate" => $currentDate,
                                "IsActive" => "1",
                                "IsMarkForDel" => "0"
                            );

                            $objHotel->addAccomdationOtherImages($otherimage);
                        }
                    }
                }
            }
            if (!empty($data['userOtherHiddenImage'])) {
                for ($k = 0; $k < count($data['userOtherHiddenImage']); $k++) {
                    if ($data['userOtherHiddenImage'][$k] != "") {
                        $otherimage = array(
                            "AccomSysId" => $intLastInsertId,
                            "HotelCode" => $intLastInsertId,
                            "CitySysId" => $intCityId,
                            "Seq" => $k + 1,
                            "ImgType" => "2",
                            "TagTitle" => "DetilImage",
                            "Details" => $data['userOtherHiddenImage'][$k],
                            "UpdateDate" => $currentDate,
                            "CreateDate" => $currentDate,
                            "IsActive" => "1",
                            "IsMarkForDel" => "0"
                        );

                        $objHotel->addAccomdationOtherImages($otherimage);
                    }
                }
            }



            /* ------------------------- */









            //echo $intLastInsertId; die;
            if (!empty($AccomSysId) && $hotelId == 0) {
                /* Add Rooms */
                if (isset($data['hotel-room-types']) && count($data['hotel-room-types']) > 0) {
                    foreach ($data['hotel-room-types'] as $roomType) {

                        $insert = array(
                            'AccomSysId' => $AccomSysId,
                            'SourceSysId' => $this->InfoSourceSysId,
                            'Title' => '',
                            'RoomType' => $roomType,
                            'EconomyType' => 0,
                            'Qty' => 0,
                            'BedType' => 0,
                            'PaxCount' => 0,
                            'IsPetAllow' => 0,
                            'MaxPetAllow' => 0,
                            'AllowChild' => 0,
                            'AllowInfant' => 0,
                            'MaxPaxCount' => 0,
                            'MaxAllowChild' => 0,
                            'MaxAllowInfant' => 0,
                            'MealPlanType' => 0,
                            'AminitiesMask' => '',
                            'InclustionOptionsMask' => '',
                            'OtherDetails' => '',
                            'UpdatedDate' => $currentDate,
                            'CreateDate' => $currentDate,
                            'ApproveDate' => EMPTY_DATE,
                            'ApproveBy' => 0,
                            'IsDelete' => 0,
                            'IsActive' => '1',
                            'IsApproved' => '0'
                        );

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

                        $objHotel = new Travel_Model_TblHotel();
                        $intNewItemId = $objHotel->addICAccomdationRoom($insert);

                        if (empty($intNewItemId)) {
                            $response = array('success' => false, 'msg' => TECHNICAL_ERROR_MSG);
                            echo json_encode($response);
                            exit;
                        }
                    }
                }
                /*                 * ******************************************************************** */
            }
            //echo $intLastInsertId; die;
            if (!empty($intLastInsertId)) {
                $response = array('success' => true, 'intLastInsertId' => $intLastInsertId);
                echo json_encode($response);
                exit;
            } else {
                $response = array('success' => false, 'msg' => TECHNICAL_ERROR_MSG);
                echo json_encode($response);
                exit;
            }

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

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

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

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

            $objHotel = new Travel_Model_TblHotel();
            $objHotel->deleteMpInventoryAccom($InvnItemSysId);

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

    public function saveTermsAction() {

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


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

            $AccomSysId = $this->getRequest()->getParam('AccomSysId');
            $terms = $this->getRequest()->getParam('terms');

            $objHotel = new Travel_Model_TblHotel();

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


            if ($objHotel->isTermsNConditionsExists($AccomSysId)) {
                $update = array('Writeup' => $terms);
                $objHotel->updateTermsConditions($AccomSysId, $update);
            } else {
                $insert = array('AccomSysId' => $AccomSysId, 'Title' => '', 'Details' => '', 'Writeup' => $terms, 'ArtifectType' => '1',
                    'XUrl' => '', 'UpdateDate' => $currentDate, 'CreateDate' => $currentDate, 'IsActive' => '1', 'IsMarkForDel' => '0');
                $objHotel->addTermsConditions($insert);
            }

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

    public function populateAccoRoomTypeAction() {

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

        if ($this->_request->isXmlHttpRequest()) {
            $AccomSysId = $this->getRequest()->getParam('AccomSysId');
            $objHotel = new Travel_Model_TblHotel();

            if (!empty($AccomSysId)) {
                $arrRoomTypes = $objHotel->getAvailableRoomTypes($AccomSysId);
            } else {
                $arrRoomTypes = $objHotel->getMasterRoomType();
            }

            $options = '';
            if (!empty($arrRoomTypes) ) {
                foreach ($arrRoomTypes as $type) {
                    $options .= '<option value="' . $type['RoomTypeId'] . '">' . $type['RoomType'] . '</option>';
                }
            } else {
                $options .= '<option value="0">No data available</option>';
            }
            echo $options;
            exit;
        }
    }

    public function cloneMpInventoryAccomAction() {

        if ($this->_request->isXmlHttpRequest()) {
            $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');
            $objHotel = new Travel_Model_TblHotel();
            $intNewInvnItemSysId = $objHotel->cloneMPInventoryAccom($InvnItemSysId);

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

    public function updateMpInventoryAccomAction() {

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

            $InvnItemSysId = $this->getRequest()->getParam('InvnItemSysId');
            $room_name = $this->getRequest()->getParam('room_name');
            $meal_plan = $this->getRequest()->getParam('meal_plan');
            $daily_room_limit = $this->getRequest()->getParam('daily_room_limit');
            $from_dt = $this->getRequest()->getParam('from_dt');
            $to_dt = $this->getRequest()->getParam('to_dt');
            $cost_double_occupancy = $this->getRequest()->getParam('cost_double_occupancy');
            $cost_single_occupancy = $this->getRequest()->getParam('cost_single_occupancy');
            $cost_extra_with_bed = $this->getRequest()->getParam('cost_extra_with_bed');
            $cost_extra_without_bed = $this->getRequest()->getParam('cost_extra_without_bed');
            $tax = $this->getRequest()->getParam('tax');

            $net_cost_double_occupancy = $this->getRequest()->getParam('net_cost_double_occupancy');
            $net_cost_single_occupancy = $this->getRequest()->getParam('net_cost_single_occupancy');
            $net_cost_extra_with_bed = $this->getRequest()->getParam('net_cost_extra_with_bed');
            $net_cost_extra_without_bed = $this->getRequest()->getParam('net_cost_extra_without_bed');
            $net_tax = $this->getRequest()->getParam('net_tax');
            $rateType = $this->getRequest()->getParam('rate_type');
            $rack_commission = $this->getRequest()->getParam('rack_commission');

            $from_dt = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($from_dt, 'd/m/y');
            $to_dt = Zend_Controller_Action_HelperBroker::getStaticHelper('DateFormat')->cal2Db($to_dt, 'd/m/y');

            if (empty($meal_plan)) {
                $response = array('success' => false, 'msg' => 'Please select meal plan.');
                echo json_encode($response);
                exit;
            }

            if (empty($daily_room_limit)) {
                $response = array('success' => false, 'msg' => 'Please enter daily room limit.');
                echo json_encode($response);
                exit;
            }

            if (empty($from_dt) || $from_dt == EMPTY_DATE_FIELD) {
                $response = array('success' => false, 'msg' => 'Please select From Date.');
                echo json_encode($response);
                exit;
            }

            if (empty($to_dt) || $to_dt == EMPTY_DATE_FIELD) {
                $response = array('success' => false, 'msg' => 'Please select To Date.');
                echo json_encode($response);
                exit;
            }

            $isGreater = Zend_Controller_Action_HelperBroker::getStaticHelper('General')->isGreater($from_dt, $to_dt);
            if ($isGreater == 1) {
                $response = array('success' => false, 'msg' => 'To Date must be greater than From Date');
                echo json_encode($response);
                exit;
            }

            if (empty($cost_double_occupancy)) {
                $response = array('success' => false, 'msg' => 'Please enter Double Occupancy cost.');
                echo json_encode($response);
                exit;
            }

            if ($rateType == 'RR') {
                $fltRackCommission = $rack_commission;

                if (empty(@$fltRackCommission)) {
                    $response = array('success' => false, 'msg' => 'Please enter Rack Commission.');
                    echo json_encode($response);
                    exit;
                }
                if (!empty(@$fltRackCommission) && $fltRackCommission < 0) {
                    $response = array('success' => false, 'msg' => 'Rack Commission should not be zero');
                    echo json_encode($response);
                    exit;
                }
            } else {
                $fltRackCommission = 0;
            }

            if (empty($net_cost_double_occupancy)) {
                $response = array('success' => false, 'msg' => 'Please enter Net double Occupancy cost.');
                echo json_encode($response);
                exit;
            }

            if (($cost_double_occupancy < $net_cost_double_occupancy) && (!empty($cost_double_occupancy))) {
                $response = array('success' => false, 'msg' => 'Net rate of double occupancy must be less than Rack rate of double occupancy.');
                echo json_encode($response);
                exit;
            }

            if (($cost_single_occupancy < $net_cost_single_occupancy) && (!empty($cost_single_occupancy))) {
                $response = array('success' => false, 'msg' => 'Net rate of single occupancy must be less than Rack rate of single occupancy.');
                echo json_encode($response);
                exit;
            }

            if (($net_cost_extra_with_bed < $net_cost_extra_with_bed) && (!empty($net_cost_extra_with_bed))) {
                $response = array('success' => false, 'msg' => 'Net rate of extra with bed must be less than Rack rate of extra with bed.');
                echo json_encode($response);
                exit;
            }

            if (($cost_extra_without_bed < $net_cost_extra_without_bed) && (!empty($cost_extra_without_bed))) {
                $response = array('success' => false, 'msg' => 'Net rate of extra without bed must be less than Rack rate of extra without bed.');
                echo json_encode($response);
                exit;
            }

            $data = array('Title' => $room_name, 'MealPlanType' => $meal_plan, 'DailyRoomLimit' => $daily_room_limit,
                'FromDate' => $from_dt, 'ToDate' => $to_dt, 'DOccupCost' => $cost_double_occupancy,
                'SOccupCost' => $cost_single_occupancy, 'ExtraBedCost' => $cost_extra_with_bed, 'ExtraWOBedCost' => $cost_extra_without_bed,
                'Tax' => $tax, 'NetDOccupCost' => $net_cost_double_occupancy, 'NetSOccupCost' => $net_cost_single_occupancy,
                'NetExtraBedCost' => $net_cost_extra_with_bed, 'NetExtraWOBedCost' => $net_cost_extra_without_bed, 'NetTax' => $net_tax,
                'RackCommission' => $fltRackCommission);

            $objHotel = new Travel_Model_TblHotel();
            if ($objHotel->updateMPInventoryAccom($InvnItemSysId, $data)) {
                $response = array('success' => true);
                echo json_encode($response);
                exit;
            }

            $response = array('success' => false);
            echo json_encode($response);
            exit;
        }
    }

    public function showRoomRatesGridAction() {

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

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

            $this->view->AccomSysId = $AccomSysId = $this->getRequest()->getParam('AccomSysId');
            //$this->view->intRoomTypeId  = $intRoomTypeId = $this->getRequest()->getParam('intRoomTypeId');

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

//            if(empty($intRoomTypeId)) {
//                throw new Exception('Room Type Id not found.');
//            }

            $objHotel = new Travel_Model_TblHotel();
            //$objHotel->strCondition = " AND TB_MP_Inventory_Accom.EconomyType = ". $intRoomTypeId;
            $objHotel->intAccomSysId = $AccomSysId;
            $this->view->arrRoomRates = $objHotel->getHotelInventoryList();
        }
    }

    public function getroomitemidAction() {

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

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

            $AccomSysId = $this->getRequest()->getParam('accomSysID');
            $intRoomTypeId = $this->getRequest()->getParam('roomTypeID');

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

            if (empty($intRoomTypeId)) {
                throw new Exception('Room Type Id not found.');
            }

            $objHotel = new Travel_Model_TblHotel();
            $intRoomTypeId = $objHotel->getRoomItemSysID($AccomSysId, $intRoomTypeId);
            echo $intRoomTypeId;
            exit;
        }
    }

    public function getroommealplanAction() {

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

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

            $intAccomSysId = $this->getRequest()->getParam('intAccomSysId');
            $intRoomTypeId = $this->getRequest()->getParam('roomTypeId');

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

            if (empty($intRoomTypeId)) {
                throw new Exception('Room Type Id not found.');
            }

            $objHotel = new Travel_Model_TblHotel();
            $intRoomMealPlanList = $objHotel->getRoomMealPlanSysID($intAccomSysId, $intRoomTypeId);
            if (!empty($intRoomMealPlanList) ) {
                $mealPlanSelect = '<option value="0">Select</option>';
                foreach ($intRoomMealPlanList as $intRoomMealPlan) {
                    $mealPlanSelect .= '<option value="' . $intRoomMealPlan['MealTypeId'] . '">' . $intRoomMealPlan['mealPlan'] . '</option>';
                }
            }
            echo $mealPlanSelect;
            exit;
        }
    }

    public function getSearchInventoryHotelAction() {

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

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

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

//            if(empty($cityId)) {
//                throw new Exception('City Id not found.');
//            }

            if ($cityId != "" && $cityId != "0") {
                $searchHotelSelect = '';
                $objHotel = new Travel_Model_TblHotel();
                $intSearchHotelList = $objHotel->getHotelInventoryListByCityId($cityId, $this->intLoggedinUserAgencySysId);
                if (!empty($intSearchHotelList)) {
                    $searchHotelSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script>';
                    $searchHotelSelect .= '<select id="hotelId" name="hotelId" class="demo-default select-ajax-country" placeholder="Select Hotel"><option value="">Select Hotel</option>';
                    foreach ($intSearchHotelList as $intSearchHotel) {
                        $searchHotelSelect .= '<option value="' . $intSearchHotel['hotelId'] . '">' . $intSearchHotel['Title'] . '</option>';
                    }
                    $searchHotelSelect .= '</select>';
                } else {
                    $searchHotelSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script><select id="hotelId" name="hotelId" class="demo-default select-ajax-country" placeholder="Select Hotel"><option value="0">Select Hotel</option></select>';
                }
            } else {
                $searchHotelSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script><select id="hotelId" name="hotelId" class="demo-default select-ajax-country" placeholder="Select Hotel"><option value="0">Select Hotel</option></select>';
            }
            echo $searchHotelSelect;
            exit;
        }
    }
    public function getSearchHotelByCityAction() {

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

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

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

//            if(empty($cityId)) {
//                throw new Exception('City Id not found.');
//            }

            if ($cityId != "" && $cityId != "0") {
                $searchHotelSelect = '';
                $objHotel = new Travel_Model_TblHotel();
                $intSearchHotelList = $objHotel->getHotelSearchListByCityId($cityId, $this->intLoggedinUserAgencySysId);
                
                if (!empty($intSearchHotelList)) {
                    $searchHotelSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script>';
                    $searchHotelSelect .= '<select id="hotelId" name="hotelId" class="demo-default select-ajax-country" placeholder="Select Hotel"><option value="">Select Hotel</option>';
                    foreach ($intSearchHotelList as $intSearchHotel) {
                        $searchHotelSelect .= '<option value="' . $intSearchHotel['AccomSysId'] . '">' . $intSearchHotel['Title'] . '</option>';
                    }
                    $searchHotelSelect .= '</select>';
                } else {
                    $searchHotelSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script><select id="hotelId" name="hotelId" class="demo-default select-ajax-country" placeholder="Select Hotel"><option value="0">Select Hotel</option></select>';
                }
            } else {
                $searchHotelSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script><select id="hotelId" name="hotelId" class="demo-default select-ajax-country" placeholder="Select Hotel"><option value="0">Select Hotel</option></select>';
            }
            echo $searchHotelSelect;
            exit;
        }
    }

    public function getSearchSupplierHotelAction() {

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

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

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

            if ($cityId != "" && $cityId != "0") {
                $searchSupplierSelect = '';
                $objHotel = new Travel_Model_TblHotel();
                $intSearchSupplierList = $objHotel->getSuppliersList($cityId, $this->intLoggedinUserId);
                if (!empty($intSearchSupplierList) ) {
                    $searchSupplierSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script>';
                    $searchSupplierSelect .= '<select id="supplierId" name="supplierId" class="demo-default select-ajax-country" placeholder="Select Supplier" style="width:320px; height: 35px;"><option value="0">Select Supplier</option>';
                    foreach ($intSearchSupplierList as $intSearchSupplier) {
                        $searchSupplierSelect .= '<option value="' . $intSearchSupplier['SupplierSysId'] . '">' . $intSearchSupplier['SupplierName'] . '</option>';
                    }
                    $searchSupplierSelect .= '</select>';
                } else {
                    $searchSupplierSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script><select id="supplierId" name="supplierId" class="demo-default select-ajax-country" placeholder="Select Supplier"><option value="0">Select Supplier</option></select>';
                }
            } else {
                $searchSupplierSelect = '<script src="/public/assets/js/pages/selectAjaxTag.js"></script><select id="supplierId" name="supplierId" class="demo-default select-ajax-country" placeholder="Select Supplier"><option value="0">Select Supplier</option></select>';
            }

            echo $searchSupplierSelect;
            exit;
        }
    }

    /**
     * Deactivate Hotel Action. 
     */
    public function deactivateAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $objHotel = new Travel_Model_TblHotel();
        $accomSysId = base64_decode($this->getRequest()->getParam('id'));

        $isDeactive = $objHotel->setActiveDeactive(" AccomSysId=$accomSysId", "TB_IC_Accomdation", 0);
        $message = @$isDeactive ? "Hotel deactivated successfully." : "Hotel deactivation failed.";

        $this->_helper->flashMessenger->addMessage($message);
        if (@$isDeactive) {
            $this->_helper->redirector('manage-hotel', 'hotel', 'default');
//            if($this->intLoggedinUserRole==1)
//            {
//              $this->_helper->redirector('manage-hotel', 'hotel', 'default');
//            } else {
//              $this->_helper->redirector('index', 'hotel', 'default');
//            }
        }
    }

    /**
     * Activate Hotel Action. 
     */
    public function activateAction() {
        $this->tableName = 'TB_IC_Accomdation';
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $objHotel = new Travel_Model_TblHotel();
        $accomSysId = base64_decode($this->getRequest()->getParam('id'));

        $isActive = $objHotel->setActiveDeactive(" AccomSysId=$accomSysId", "TB_IC_Accomdation", 1);
        $message = @$isActive ? "Hotel activated successfully." : "Hotel activation failed.";

        $this->_helper->flashMessenger->addMessage($message);

        if (@$isActive) {
            $this->_helper->redirector('manage-hotel', 'hotel', 'default');
//            if($this->intLoggedinUserRole==1)
//            {
//              $this->_helper->redirector('manage-hotel', 'hotel', 'default');
//            } else {
//              $this->_helper->redirector('index', 'hotel', 'default');
//            }
        }
    }

    /**
     * Disapprove Hotel Action. 
     */
    public function disapprovedAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $objHotel = new Travel_Model_TblHotel();
        $accomSysId = base64_decode($this->getRequest()->getParam('id'));
        $approveDate = date('Y-m-d H:i:s');
        if ($this->intLoggedinUserRole != 1) {
            $intLoggedinUserId = $this->intLoggedinUserAgencySysId;
        } else {
            $intLoggedinUserId = "";
        }

        $updateArr = array('ApproveDate' => $approveDate, 'ApproveBy' => $this->intLoggedinUserId, 'IsApproved' => '0');

        $isDisapprove = $objHotel->setApproveDisapprove(" AccomSysId=$accomSysId", "TB_IC_Accomdation", $updateArr);
        $message = @$isDisapprove ? "Hotel disapproved successfully." : "Hotel disapproved failed.";

        $this->_helper->flashMessenger->addMessage($message);
        if (@$isDisapprove) {
            $this->_helper->redirector('manage-hotel', 'hotel', 'default');
        }
    }

    /**
     * Approve Hotel Action. 
     */
    public function approvedAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $objHotel = new Travel_Model_TblHotel();
        $accomSysId = base64_decode($this->getRequest()->getParam('id'));
        $approveDate = date('Y-m-d H:i:s');
        if ($this->intLoggedinUserRole != 1) {
            $intLoggedinUserId = $this->intLoggedinUserAgencySysId;
        } else {
            $intLoggedinUserId = "";
        }

        $updateArr = array('ApproveDate' => $approveDate, 'ApproveBy' => $this->intLoggedinUserId, 'IsApproved' => '1');

        $isApprove = $objHotel->setApproveDisapprove(" AccomSysId=$accomSysId", "TB_IC_Accomdation", $updateArr);
        $message = @$isApprove ? "Hotel approved successfully." : "Hotel approved failed.";

        $this->_helper->flashMessenger->addMessage($message);
        if (@$isApprove) {
            $this->_helper->redirector('manage-hotel', 'hotel', 'default');
        }
    }

    /**
     * Stop Sale Hotel Action. 
     */
    public function stopSaleAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $objHotel = new Travel_Model_TblHotel();
        $InvnItemSysId = base64_decode($this->getRequest()->getParam('id'));

        $isDeactive = $objHotel->setSaleStartStop(" InvnItemSysId=$InvnItemSysId", "TB_MP_Inventory_Accom", 0);
        $message = @$isDeactive ? "Hotel inventory sale stop successfully." : "Hotel inventory sale stop failed.";

        $this->_helper->flashMessenger->addMessage($message);
        if (@$isDeactive) {
            $this->_helper->redirector('index', 'hotel', 'default');
        }
    }

    /**
     * Start Sale Hotel Action. 
     */
    public function startSaleAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $objHotel = new Travel_Model_TblHotel();
        $InvnItemSysId = base64_decode($this->getRequest()->getParam('id'));

        $isActive = $objHotel->setSaleStartStop(" InvnItemSysId=$InvnItemSysId", "TB_MP_Inventory_Accom", 1);
        $message = @$isActive ? "Hotel inventory sale start successfully." : "Hotel inventory sale start failed.";

        $this->_helper->flashMessenger->addMessage($message);

        if (@$isActive) {
            $this->_helper->redirector('index', 'hotel', 'default');
        }
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit