| 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/tripstring.com/library/Helper/ |
Upload File : |
<?php
/* * *************************************************************
* Catabatic Technology Pvt. Ltd.
* File Name : Hotel.php
* File Desc. : Hotel helper to including supporting functions/methods for Hotels
* Created By : Pardeep Panchal <pardeep@catpl.co.in>
* Created Date : 24 Nov 2017
* Updated Date : 24 Nov 2017
* ************************************************************* */
class Zend_Controller_Action_Helper_Hotel extends Zend_Controller_Action_Helper_Abstract
{
public $baseUrl;
public function __construct()
{
$this->pluginLoader = new Zend_Loader_PluginLoader();
$this->db = Zend_Db_Table::getDefaultAdapter();
$BootStrap = $this->config();
$this->siteName = $BootStrap['siteName'];
$this->baseUrl = $BootStrap['siteUrl'];
$this->gtxagencysysid = $BootStrap['gtxagencysysid']; // get gtxagencysysid from application config
$this->gtxagentsysid = $BootStrap['gtxagentsysid']; // get gtxagentsysid from application config
}
public function config()
{
$front = $this->getFrontController();
$bootstrap = $front->getParam('bootstrap');
if (null === $bootstrap) {
throw new Exception('Unable to find bootstrap');
}
// return $bootstrap->getOptions();
return $bootstrap->getOptions()['bootstrap'];
}
public function getRatingImage($rating, $fullRating = 5)
{
$ratingStar = '<img src="' . $this->baseUrl . 'public/images/red-star.png">';
$ratingStar_light = '<img src="' . $this->baseUrl . 'public/images/gray-star.png">';
$ratingImage = '';
for ($i = 0; $i < $rating; $i++) {
$ratingImage .= $ratingStar;
}
$grayStars = $fullRating - $rating;
for ($i = 0; $i < $grayStars; $i++) {
$ratingImage .= $ratingStar_light;
$ratingImage;
}
return $ratingImage;
}
public function getInclusionIcon($Inclusions, $stringSeparator = "")
{
//echo "<pre>";print_r($Inclusions);echo "</pre>";
$ret = $icon = '';
$InclusionsMaster = [
'wi-fi' => 'wifi',
'Internet' => 'wifi',
'tv' => 'television',
'minibar' => 'glass',
'bar' => 'glass',
'disability-friendly bathroom' => 'wheelchair',
'Disabled facilities' => 'wheelchair',
'secure parking' => 'car',
'parking' => 'car',
'Car parking (Payable to hotel, if applicable)' => 'car',
'Car parking' => 'car',
//'smoking rooms' => 'bath' ,
];
$ret = [];
if ($stringSeparator != "") {
foreach (explode($stringSeparator, $Inclusions) as $inc) {
$inc = trim($inc);
$icon = (isset($InclusionsMaster[$inc])) ? $InclusionsMaster[$inc] : "question";
if ($icon != 'question') {
if (!in_array($icon, $ret))
$ret[$InclusionsMaster[$inc]] = $icon;
}
}
} else {
foreach ($Inclusions as $inc) {
$inc = trim($inc);
$icon = (isset($InclusionsMaster[$inc])) ? $InclusionsMaster[$inc] : "question";
if ($icon != 'question') {
if (!in_array($icon, $ret))
$ret[$InclusionsMaster[$inc]] = $icon;
}
}
}
return $ret;
}
public function dataEncode($arrData)
{
return base64_encode(json_encode($arrData));
}
public function dataDecode($strData)
{
return json_decode(base64_decode($strData), 1);
}
public function sortArrayByColumn(&$arr = [], $col, $order = SORT_ASC)
{
$sort_col = array();
if (count($arr) > 0) {
foreach ($arr as $key => $row) {
@$sort_col[$key] = $row[$col];
}
}
@array_multisort($sort_col, $order, $arr);
}
public function dateFormat($date, $format = 1)
{
if ($format == 1) { // 2018-01-19T00:00:00
$arrDate = explode("T", $date);
return date('d-m-Y', strtotime($arrDate[0])); //30 Nov' 17 Thu
} elseif ($format == 2) {
return date('d M' . "'" . ' y D', strtotime($date)); //30 Nov' 17 Thu
} else {
return $date;
}
}
public function getRoomImagesByItemSysId(array $array, $ItemSysId)
{
$ret = [];
foreach ($array as $key => $value) {
if ($value['ItemSysId'] == $ItemSysId) {
$ret[] = ['index' => $value['ImgIndex'], 'img' => $value['Details']];
}
}
return $ret;
}
public function calculateNoOfDays($date1, $date2)
{
$diff = abs(strtotime($date2) - strtotime($date1));
$years = floor($diff / (365 * 60 * 60 * 24));
$months = floor(($diff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
$days = ceil(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24)) + 1;
return $days;
}
public function getTotalCostOfHotelByTravelers($hotelArray, $roominfoarr, $arrMarkUp = [])
{
// echo "<pre>";print_r($hotelArray);
// echo "<pre>";print_r($roominfoarr);
// echo "<pre>";print_r($arrMarkUp);exit;
$MarkUpType = isset($arrMarkUp['MarkUpType']) ? $arrMarkUp['MarkUpType'] : '';
$MarkUp = isset($arrMarkUp['MarkUp']) ? $arrMarkUp['MarkUp'] : '';
$DOccupMarkUp = isset($arrMarkUp['DOccupMarkUp']) ? $arrMarkUp['DOccupMarkUp'] : '';
$SOccupMarkUp = isset($arrMarkUp['SOccupMarkUp']) ? $arrMarkUp['SOccupMarkUp'] : '';
$ExtraBedMarkUp = isset($arrMarkUp['ExtraBedMarkUp']) ? $arrMarkUp['ExtraBedMarkUp'] : '';
$ExtraWOBedMarkUp = isset($arrMarkUp['ExtraWOBedMarkUp']) ? $arrMarkUp['ExtraWOBedMarkUp'] : '';
if ($MarkUpType == 1) {
// Single
$NetSOccupCost = isset($hotelArray['NetSOccupCost']) ? $hotelArray['NetSOccupCost'] : 0;
$NetSOccupCostWidMrkp = $NetSOccupCost + $SOccupMarkUp;
// Single
// Double
$NetDOccupCost = isset($hotelArray['DOccupCost']) ? $hotelArray['DOccupCost'] : 0;
$NetDOccupCostWidMrkp = $NetDOccupCost + $DOccupMarkUp;
// Double
// ExtraBed
$NetExtraBedCost = isset($hotelArray['NetExtraBedCost']) ? $hotelArray['NetExtraBedCost'] : 0;
$NetExtraBedCostWidMrkp = $NetExtraBedCost + $ExtraBedMarkUp;
// ExtraBed
// ExtraWoBed
$NetExtraWOBedCost = isset($hotelArray['NetExtraWOBedCost']) ? $hotelArray['NetExtraWOBedCost'] : 0;
$NetExtraWOBedCostWidMrkp = $NetExtraWOBedCost + $ExtraWOBedMarkUp;
// ExtraWoBed
} else if ($MarkUpType == 2) {
// Single
$NetSOccupCost = isset($hotelArray['NetSOccupCost']) ? $hotelArray['NetSOccupCost'] : 0;
$SOccupMarkUpAmt = ($NetSOccupCost * $SOccupMarkUp) / 100;
$NetSOccupCostWidMrkp = $NetSOccupCost + $SOccupMarkUpAmt;
// Single
// Double
$NetDOccupCost = isset($hotelArray['DOccupCost']) ? $hotelArray['DOccupCost'] : 0;
$DOccupMarkUpAmt = ($NetDOccupCost * $DOccupMarkUp) / 100;
$NetDOccupCostWidMrkp = $NetDOccupCost + $DOccupMarkUpAmt;
// Double
// ExtraBed
$NetExtraBedCost = isset($hotelArray['NetExtraBedCost']) ? $hotelArray['NetExtraBedCost'] : 0;
$ExtraBedMarkUpAmt = ($NetExtraBedCost * $ExtraBedMarkUp) / 100;
$NetExtraBedCostWidMrkp = $NetExtraBedCost + $ExtraBedMarkUpAmt;
// ExtraBed
// ExtraBed
$NetExtraWOBedCost = isset($hotelArray['NetExtraWOBedCost']) ? $hotelArray['NetExtraWOBedCost'] : 0;
$ExtraBedMarkUpAmt = ($NetExtraWOBedCost * $ExtraWOBedMarkUp) / 100;
$NetExtraWOBedCostWidMrkp = $NetExtraWOBedCost + $ExtraBedMarkUpAmt;
// ExtraBed
} else {
// Single
$NetSOccupCost = isset($hotelArray['NetSOccupCost']) ? $hotelArray['NetSOccupCost'] : 0;
$SOccupMarkUpAmt = 0;
$NetSOccupCostWidMrkp = $NetSOccupCost + $SOccupMarkUpAmt;
// Single
// Double
$NetDOccupCost = isset($hotelArray['DOccupCost']) ? $hotelArray['DOccupCost'] : 0;
$DOccupMarkUpAmt = 0;
$NetDOccupCostWidMrkp = $NetDOccupCost + $DOccupMarkUpAmt;
// Double
// ExtraBed
$NetExtraBedCost = isset($hotelArray['NetExtraBedCost']) ? $hotelArray['NetExtraBedCost'] : 0;
$ExtraBedMarkUpAmt = 0;
$NetExtraBedCostWidMrkp = $NetExtraBedCost + $ExtraBedMarkUpAmt;
// ExtraBed
// ExtraBed
$NetExtraWOBedCost = isset($hotelArray['NetExtraWOBedCost']) ? $hotelArray['NetExtraWOBedCost'] : 0;
$ExtraBedMarkUpAmt = 0;
$NetExtraWOBedCostWidMrkp = $NetExtraWOBedCost + $ExtraBedMarkUpAmt;
// ExtraBed
}
$totalMember = 0;
$newcost = 0;
for ($m = 0; $m <= count($roominfoarr); $m++) {
$AdultPax = (int) @$roominfoarr[$m]['AdultPax'];
$ChildPax = (int) @$roominfoarr[$m]['ChildPax'];
$totalMember = $AdultPax + $ChildPax;
$ChildsAge = @$roominfoarr[$m]['ChildsAge'];
if ($totalMember == 1) {
$newcost = $newcost + (isset($hotelArray['NetSOccupCost']) ? $NetSOccupCostWidMrkp : $NetDOccupCostWidMrkp);
//$newcost = $newcost + $hotelArray['DOccupCost'];
} elseif ($totalMember == 2) {
$newcost = $newcost + $NetDOccupCostWidMrkp;
} else if ($totalMember > 2) {
if ($AdultPax == 3 && $ChildPax == 0) {
$newcost = $newcost + ($NetDOccupCostWidMrkp + $NetExtraBedCostWidMrkp);
} else if ($AdultPax == 2 && $ChildPax == 1) {
$newcost = $newcost + ($NetDOccupCostWidMrkp + $NetExtraWOBedCostWidMrkp);
} else if ($AdultPax == 3 && $ChildPax == 1) {
$newcost = $newcost + ($NetDOccupCostWidMrkp + $NetExtraBedCostWidMrkp + $NetExtraWOBedCostWidMrkp);
} else if ($AdultPax == 2 && $ChildPax == 2) {
$newcost = $newcost + ($NetDOccupCostWidMrkp + $NetExtraWOBedCostWidMrkp + $NetExtraWOBedCostWidMrkp);
} else if ($AdultPax == 1 && $ChildPax == 2) {
$newcost = $newcost + ($NetSOccupCostWidMrkp + $NetExtraWOBedCostWidMrkp + $NetExtraWOBedCostWidMrkp);
}
}
}
return round($newcost);
}
public function getTotalCostOfHotelByTravelersAPI($roomRate, $roominfoarr, $arrMarkUp = [])
{
// echo "<pre>";print_r($roomRate);
// echo "<pre>";print_r($roominfoarr);
// echo "<pre>";print_r($arrMarkUp);exit;
$MarkUpType = isset($arrMarkUp['MarkUpType']) ? $arrMarkUp['MarkUpType'] : '';
$MarkUp = isset($arrMarkUp['MarkUp']) ? $arrMarkUp['MarkUp'] : '';
$DOccupMarkUp = isset($arrMarkUp['DOccupMarkUp']) ? $arrMarkUp['DOccupMarkUp'] : '';
$SOccupMarkUp = isset($arrMarkUp['SOccupMarkUp']) ? $arrMarkUp['SOccupMarkUp'] : '';
$ExtraBedMarkUp = isset($arrMarkUp['ExtraBedMarkUp']) ? $arrMarkUp['ExtraBedMarkUp'] : '';
$ExtraWOBedMarkUp = isset($arrMarkUp['ExtraWOBedMarkUp']) ? $arrMarkUp['ExtraWOBedMarkUp'] : '';
if ($MarkUpType == 1) {
// Single
$SOccupMarkUpAmt = $SOccupMarkUp;
// Single
// Double
$DOccupMarkUpAmt = $DOccupMarkUp;
// Double
// ExtraBed
$ExtraBedMarkUpAmt = $ExtraBedMarkUp;
// ExtraBed
// ExtraWoBed
$ExtraWOBedMarkUpAmt = $ExtraWOBedMarkUp;
// ExtraWoBed
} else if ($MarkUpType == 2) {
// Single
$NetSOccupCost = !empty($roomRate) ? $roomRate : 0;
$SOccupMarkUpAmt = ($NetSOccupCost * $SOccupMarkUp) / 100;
// Single
// Double
$NetDOccupCost = !empty($roomRate) ? $roomRate : 0;
$DOccupMarkUpAmt = ($NetDOccupCost * $DOccupMarkUp) / 100;
// Double
// ExtraBed
$NetExtraBedCost = !empty($roomRate) ? $roomRate : 0;
$ExtraBedMarkUpAmt = ($NetExtraBedCost * $ExtraBedMarkUp) / 100;
// ExtraBed
// ExtraBed
$NetExtraWOBedCost = !empty($roomRate) ? $roomRate : 0;
$ExtraWOBedMarkUpAmt = ($NetExtraWOBedCost * $ExtraWOBedMarkUp) / 100;
// ExtraBed
} else {
// Single
$SOccupMarkUpAmt = 0;
// Single
// Double
$DOccupMarkUpAmt = 0;
// Double
// ExtraBed
$ExtraBedMarkUpAmt = 0;
// ExtraBed
// ExtraBed
$ExtraWOBedMarkUpAmt = 0;
// ExtraBed
}
$totalMember = 0;
$newcost = 0;
for ($m = 0; $m <= count($roominfoarr); $m++) {
$AdultPax = (int) @$roominfoarr[$m]['AdultPax'];
$ChildPax = (int) @$roominfoarr[$m]['ChildPax'];
$totalMember = $AdultPax + $ChildPax;
$ChildsAge = @$roominfoarr[$m]['ChildsAge'];
if ($totalMember == 1) {
$newcost = $newcost + (!empty($SOccupMarkUpAmt) ? $SOccupMarkUpAmt : $DOccupMarkUpAmt);
//$newcost = $newcost + $hotelArray['DOccupCost'];
} elseif ($totalMember == 2) {
$newcost = $newcost + $DOccupMarkUpAmt;
} else if ($totalMember > 2) {
if ($AdultPax == 3 && $ChildPax == 0) {
$newcost = $newcost + ($DOccupMarkUpAmt + $ExtraBedMarkUpAmt);
} else if ($AdultPax == 2 && $ChildPax == 1) {
$newcost = $newcost + ($DOccupMarkUpAmt + $ExtraWOBedMarkUpAmt);
} else if ($AdultPax == 3 && $ChildPax == 1) {
$newcost = $newcost + ($DOccupMarkUpAmt + $ExtraBedMarkUpAmt + $ExtraWOBedMarkUpAmt);
} else if ($AdultPax == 2 && $ChildPax == 2) {
$newcost = $newcost + ($DOccupMarkUpAmt + $ExtraWOBedMarkUpAmt + $ExtraWOBedMarkUpAmt);
} else if ($AdultPax == 1 && $ChildPax == 2) {
$newcost = $newcost + (!empty($SOccupMarkUpAmt) ? $SOccupMarkUpAmt : $DOccupMarkUpAmt + $ExtraWOBedMarkUpAmt + $ExtraWOBedMarkUpAmt);
}
}
}
return round($newcost + $roomRate);
}
public function markUpCalculation($cast, $roominfoarr)
{
// echo "<pre>";print_r($hotelArray);
// echo "<pre>";print_r($roominfoarr);
echo $cast;
exit;
$totalMember = 0;
$newcost = 0;
for ($m = 0; $m <= count($roominfoarr); $m++) {
$AdultPax = (int) @$roominfoarr[$m]['AdultPax'];
$ChildPax = (int) @$roominfoarr[$m]['ChildPax'];
$totalMember = $AdultPax + $ChildPax;
$ChildsAge = @$roominfoarr[$m]['ChildsAge'];
}
return round($newcost);
}
public function CreateSessionSearchParams($getData, $TraceId)
{
Zend_Session::namespaceUnset('sessionHotelSearchParams');
Zend_Session::namespaceUnset('sessionHotelTraceId');
if (!empty($getData)) {
$sessionHotelSearchParams = new Zend_Session_Namespace('sessionHotelSearchParams');
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$SearchHotelTraceId->params = $TraceId;
$roominfojson = json_decode($getData['roominfojson'],1);
//echo "<pre>";print_r($roominfojson);die;
$check_In = $getData['check_in'];
$check_Out = $getData['check_out'];
$room = $roominfojson['totalRoom'];
$totadlt = $roominfojson['totaladult'];
$totchld = $roominfojson['totalchild'];
$childage = $roominfojson['childage'];
$childArray = array();
if($totchld>0){
for($m = 0; $m< $totchld; $m++){
$childArray[] = $childage[$m];
}
}
$getData['childage'] = $childArray = (!empty($childArray)) ? array_reverse($childArray) : array();
$child1_bed_typeAr = $getData['child1_age'];
$child2_bed_typeAr = $getData['child2_age'];
$arrCheckInDate = explode("/", $check_In);
if (count($arrCheckInDate) > 0) {
$checkIn = $arrCheckInDate[2] . "-" . $arrCheckInDate[1] . "-" . $arrCheckInDate[0];
}
$arrCheckOutDate = explode("/", $check_Out);
if (count($arrCheckOutDate) > 0) {
$checkOut = $arrCheckOutDate[2] . "-" . $arrCheckOutDate[1] . "-" . $arrCheckOutDate[0];
}
$nightCoun = Zend_Controller_Action_HelperBroker::getStaticHelper("Hotel")->calculateNoOfDays($checkIn, $checkOut);
$nightCount = ($nightCoun > 1) ? ($nightCoun - 1) : 1;
$memberdata = [];
$memberdata[] = array(
'NoOfAdults' => $totadlt,
'NoOfChild' => $totchld,
'ChildAge' => $childArray
);
$sessionHotelSearchParams->params = $getData; // Putting all form data to Session
$sessionHotelSearchParams->params['memberdata'] = $memberdata;
$sessionHotelSearchParams->params['nightCount'] = $nightCount;
$sessionHotelSearchParams->params['strCheckin'] = $checkIn;
$sessionHotelSearchParams->params['strCheckout'] = $checkOut;
//
// die;
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $TraceId . '/' . time() . "_SearchParam_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, json_encode($sessionHotelSearchParams->params));
}
return true;
} else {
die('Oops something went wrong');
}
}
// TBO Api integration
public function authenticateAPI()
{
$TokenIdSession = new Zend_Session_Namespace('TokenIdSession');
$objFlight = new Travel_Model_FlightMaster();
$CheckFlightToken = $objFlight->CheckFlightToken('tbl_token');
if (empty($CheckFlightToken)) {
$data = array(
'ClientId' => FLIGHT_API_CLIENT_ID,
'UserName' => FLIGHT_API_USER,
'Password' => FLIGHT_API_PASSWORD,
'EndUserIp' => $_SERVER['REMOTE_ADDR']
);
$data_string = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_AUTHENTICATE_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string)
));
$output = curl_exec($ch);
$response = json_decode($output, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "flight/Auth/" . time() . "_Auth_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_string);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "flight/Auth/" . time() . "_Auth_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $output);
//Write Request Logs starts...
}
$tokenId = $response['TokenId'];
curl_close($ch);
$TokenIdSession = new Zend_Session_Namespace('TokenIdSession');
$TokenIdSession->params = $tokenId;
$insertArr = array(
'token' => $tokenId,
'created_at' => Zend_Date::now()->toString('YYYY-MM-dd HH:mm:ss'),
);
$objFlight->InsertFlightData('tbl_token', $insertArr);
return $tokenId;
} else {
$TokenIdSession->params = $CheckFlightToken['token'];
return $TokenIdSession->params;
}
}
public function searchApiHotel($arrSessionData = array())
{
if ($arrSessionData) {
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$HotelTraceId = $SearchHotelTraceId->params;
$tokenId = $this->authenticateAPI();
$arrSessionData['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$arrSessionData['TokenId'] = $tokenId;
$data_stringh = json_encode($arrSessionData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_SEARCH_URL);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_stringh)
));
$outputH = curl_exec($ch);
$response = json_decode($outputH, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/Search/" . time() . "_Hotels_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_stringh);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/Search/" . time() . "_Hotels_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $outputH);
//Write Request Logs starts...
}
$arrHotelSearchResponse = array();
$arrHotelSearchResponse['ResponseStatus'] = $response['HotelSearchResult']['ResponseStatus'];
$arrHotelSearchResponse['TraceId'] = $response['HotelSearchResult']['TraceId'];
$arrHotelSearchResponse['ErrorCode'] = $response['HotelSearchResult']['Error']['ErrorCode'];
$arrHotelSearchResponse['ErrorMessage'] = $response['HotelSearchResult']['Error']['ErrorMessage'];
$arrHotelSearchResponse['Remarks'] = $response['HotelSearchResult']['Remarks'];
$arrHotelSearchResponse['CheckInDate'] = $response['HotelSearchResult']['CheckInDate'];
$arrHotelSearchResponse['CheckOutDate'] = $response['HotelSearchResult']['CheckOutDate'];
$arrHotelSearchResponse['HotelResults'] = $response['HotelSearchResult']['HotelResults'];
$RequestRoomInfo = [];
$RequestHotelInfo = [];
if ($arrHotelSearchResponse['ResponseStatus'] == 1) {
$tokenId_ = $this->authenticateAPI();
if ($arrHotelSearchResponse['HotelResults']) {
foreach ($arrHotelSearchResponse['HotelResults'] as $key => $value) {
// Get Room details //
$GetHotelRoom['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$GetHotelRoom['TokenId'] = $tokenId_;
$GetHotelRoom['TraceId'] = $arrHotelSearchResponse['TraceId'];
$GetHotelRoom['ResultIndex'] = $value['ResultIndex'];
$GetHotelRoom['HotelCode'] = $value['HotelCode'];
$RequestRoomInfo[$key] = array(
'url' => TBO_HOTEL_API_HOTEL_ROOM_INFO,
'post' => $GetHotelRoom,
);
$RequestHotelInfo[$key] = array(
'url' => TBO_HOTEL_API_HOTEL_INFO,
'post' => $GetHotelRoom,
);
}
}
}
$arrHotelSearchResponse['RequestRoomInfo'] = $RequestRoomInfo;
$arrHotelSearchResponse['RequestHotelInfo'] = $RequestHotelInfo;
Zend_Session::namespaceUnset('HotelSearchResults');
$HotelSearchResults = new Zend_Session_Namespace('HotelSearchResults');
$HotelSearchResults->params = $arrHotelSearchResponse;
return $arrHotelSearchResponse;
}
}
public function apiGenerateVoucher($BookingId)
{
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$HotelTraceId = $SearchHotelTraceId->params;
$tokenId = $this->authenticateAPI();
$arrSessionData['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$arrSessionData['TokenId'] = $tokenId;
$arrSessionData['BookingId'] = $BookingId;
$data_string = json_encode($arrSessionData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_GENERATE_VOUCHER);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_string)
));
$output = curl_exec($ch);
$response = json_decode($output, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/GenerateVoucher/" . time() . "_GenerateVoucher_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_string);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/GenerateVoucher/" . time() . "_GenerateVoucher_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $output);
//Write Request Logs starts...
}
curl_close($ch);
return $response;
}
public function ApiGetBookingDetail($BookingId)
{
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$HotelTraceId = $SearchHotelTraceId->params;
$tokenId = $this->authenticateAPI();
$arrSessionData['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$arrSessionData['TokenId'] = $tokenId;
$arrSessionData['BookingId'] = $BookingId;
$data_string = json_encode($arrSessionData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_FETCH_BOOKING_DETAIL_URL);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_string)
));
$output = curl_exec($ch);
$response = json_decode($output, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/BookingDetail/" . time() . "_BookingDetail_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_string);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/BookingDetail/" . time() . "_BookingDetail_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $output);
//Write Request Logs starts...
}
curl_close($ch);
return $response;
}
public function apiChangeRequest($BookingId, $Remarks)
{
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$HotelTraceId = $SearchHotelTraceId->params;
$tokenId = $this->authenticateAPI();
$arrSessionData['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$arrSessionData['TokenId'] = $tokenId;
$arrSessionData['BookingMode'] = 5;
$arrSessionData['RequestType'] = 4;
$arrSessionData['Remarks'] = $Remarks;
$arrSessionData['BookingId'] = $BookingId;
$data_string = json_encode($arrSessionData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_CANCELLATION_URL);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_string)
));
$output = curl_exec($ch);
$response = json_decode($output, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/HotelCancel/" . time() . "_ChangeRequest_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_string);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/HotelCancel/" . time() . "_ChangeRequest_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $output);
//Write Request Logs starts...
}
curl_close($ch);
return $response;
}
public function apiGetChangeRequestStatus($ChangeRequestId)
{
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$HotelTraceId = $SearchHotelTraceId->params;
$tokenId = $this->authenticateAPI();
$arrSessionData['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$arrSessionData['TokenId'] = $tokenId;
$arrSessionData['ChangeRequestId'] = $ChangeRequestId;
$data_string = json_encode($arrSessionData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_CANCELLATION_STATUS_URL);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_string)
));
$output = curl_exec($ch);
$response = json_decode($output, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/HotelCancelStatus/" . time() . "_ChangeStatus_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_string);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/HotelCancelStatus/" . time() . "_ChangeStatus_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $output);
//Write Request Logs starts...
}
curl_close($ch);
return $response;
}
public function apiHotelBlocking($arrSessionData = array())
{
if ($arrSessionData) {
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$HotelTraceId = $SearchHotelTraceId->params;
$HotelData = $arrSessionData['HotelData'];
$RoomInfo = $arrSessionData['RoomInfoData'];
$getData = $arrSessionData['sessionHotelSearchParams'];
$SupplierHotelCodes = $HotelData['SupplierHotelCodes'];
$post = $arrSessionData['post'];
$TotalGuest = ($getData['totadlt'] + $getData['totchld']);
$memberdata = ($getData['memberdata']);
$ARR_SALUTION = unserialize(ARR_SALUTION);
$CancelDateskipped = false;
$HotelPassenger = [];
if ($memberdata) {
foreach ($memberdata as $key => $mem) {
$RoomInfoData = $RoomInfo[$key];
$currentDate = date('Y-m-d');
$LastCancellationDate = str_replace('T', ' ', $RoomInfoData['LastCancellationDate']);
if (strtotime($currentDate) > strtotime($LastCancellationDate)) {
$CancelDateskipped = true;
}
$HotelRoomsDetails[$key] = array(
'RoomIndex' => $RoomInfoData['RoomIndex'],
'RoomTypeCode' => $RoomInfoData['RoomTypeCode'],
'RoomTypeName' => $RoomInfoData['RoomTypeName'],
'RatePlanCode' => $RoomInfoData['RatePlanCode'],
'BedTypeCode' => null,
'SmokingPreference' => 0,
'Supplements' => null,
'Price' => array(
'CurrencyCode' => $RoomInfoData['Price']['CurrencyCode'],
'RoomPrice' => $RoomInfoData['Price']['RoomPrice'],
'Tax' => $RoomInfoData['Price']['Tax'],
'ExtraGuestCharge' => $RoomInfoData['Price']['ExtraGuestCharge'],
'ChildCharge' => $RoomInfoData['Price']['ChildCharge'],
'OtherCharges' => $RoomInfoData['Price']['OtherCharges'],
'Discount' => $RoomInfoData['Price']['Discount'],
'PublishedPrice' => $RoomInfoData['Price']['PublishedPrice'],
'PublishedPriceRoundedOff' => $RoomInfoData['Price']['PublishedPriceRoundedOff'],
'OfferedPrice' => $RoomInfoData['Price']['OfferedPrice'],
'OfferedPriceRoundedOff' => $RoomInfoData['Price']['OfferedPriceRoundedOff'],
'AgentCommission' => $RoomInfoData['Price']['AgentCommission'],
'AgentMarkUp' => $RoomInfoData['Price']['AgentMarkUp'],
'ServiceTax' => $RoomInfoData['Price']['ServiceTax'],
'TDS' => $RoomInfoData['Price']['TDS'],
),
//'HotelPassenger'=> $HotelPassenger,
);
}
}
$TraceId = $HotelData['TraceId'];
$bookingArr = array(
'ResultIndex' => $HotelData['ResultIndex'],
'HotelCode' => $HotelData['HotelCode'],
'HotelName' => $HotelData['HotelName'],
'GuestNationality' => 'IN',
'NoOfRooms' => $getData['room'],
'ClientReferenceNo' => 0,
'HotelRoomsDetails' => $HotelRoomsDetails,
);
if ($HotelData['IsTBOMapped'] == 1) {
$bookingArr['CategoryId'] = isset($SupplierHotelCodes[0]['CategoryId']) ? $SupplierHotelCodes[0]['CategoryId'] : '';
}
if ($CancelDateskipped) {
$bookingArr['IsVoucherBooking'] = true;
} else {
$bookingArr['IsVoucherBooking'] = false;
}
$tokenId = $this->authenticateAPI();
$bookingArr['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$bookingArr['TokenId'] = $tokenId;
$bookingArr['TraceId'] = $TraceId;
// echo "<pre>";print_r(($RoomInfo));
// echo "<pre>";print_r(($bookingArr));die;
$data_stringh = json_encode($bookingArr);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_HOTEL_ROOM_BLOCK);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_stringh)
));
$outputH = curl_exec($ch);
$response = json_decode($outputH, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/Block/" . time() . "_Block_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_stringh);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/Block/" . time() . "_Block_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $outputH);
//Write Request Logs starts...
}
Zend_Session::namespaceUnset('HotelBlockResponse');
$HotelBlockResponse = new Zend_Session_Namespace('HotelBlockResponse');
$HotelBlockResponse->params = $response;
return $response;
}
}
public function apiHotelBooking($arrSessionData = array())
{
if ($arrSessionData) {
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$HotelTraceId = $SearchHotelTraceId->params;
$HotelData = $arrSessionData['HotelData'];
$RoomInfo = $arrSessionData['RoomInfoData'];
$getData = $arrSessionData['sessionHotelSearchParams'];
$SupplierHotelCodes = $HotelData['SupplierHotelCodes'];
$IsPackageFare = $arrSessionData['IsPackageFare'];
$post = $arrSessionData['post'];
$HotelCusData = $arrSessionData['HotelCusData'];
$TotalGuest = ($getData['totadlt'] + $getData['totchld']);
$memberdata = ($getData['memberdata']);
$ARR_SALUTION = unserialize(ARR_SALUTION_HOTEL);
$CancelDateskipped = false;
$hotelPassengerArr = array();
$index = 0;
for ($i = 0; $i < count($memberdata); $i++) {
$IsPANMandatoryArr = isset($post['IsPANMandatoryArr'][$i]) ? $post['IsPANMandatoryArr'][$i] : 0;
$panno = isset($post['panno'][$i]) ? $post['panno'][$i] : null;
$AdultPaxTotal = $memberdata[$i]['NoOfAdults'];
$ChildPaxTotal = $memberdata[$i]['NoOfChild'];
$paxTitle = trim($ARR_SALUTION[$post['salution'][$i]], ".");
if ($AdultPaxTotal > 0) {
for ($m = 0; $m < $AdultPaxTotal; $m++) {
$index++;
$ind = ($index - 1);
if ($m == 0) {
$LeadPassenger = true;
} else {
$LeadPassenger = false;
}
$hotelPassengerArr[$i]["paxes"][] = array(
'Title' => $paxTitle,
'FirstName' => $post['firstname'][$ind],
'Middlename' => null,
'LastName' => $post['lastname'][$ind],
'Phoneno' => $post['leadMobile'],
'Email' => $post['leadEmail'],
'PaxType' => 1,
'LeadPassenger' => $LeadPassenger,
'Age' => 0,
);
if ($IsPANMandatoryArr == 1) {
$hotelPassengerArr[$i]["paxes"][$m]['PAN'] = $panno;
}
}
}
$ChildAge = $memberdata[$i]['ChildAge'];
if ($ChildPaxTotal > 0) {
$ch = 0;
for ($m = 0; $m < $ChildPaxTotal; $m++) {
$index++;
$ind = ($index - 1);
$hotelPassengerArr[$i]["paxes"][] = array(
'Title' => $paxTitle,
'FirstName' => $post['firstname'][$ind],
'Middlename' => null,
'LastName' => $post['lastname'][$ind],
'Phoneno' => $post['leadMobile'],
'Email' => $post['leadEmail'],
'PaxType' => 2,
'LeadPassenger' => false,
'Age' => isset($ChildAge[$ch]) ? $ChildAge[$ch] : 0,
);
$ch++;
}
}
}
if ($memberdata) {
foreach ($memberdata as $key => $mem) {
$HotelPassenger = $hotelPassengerArr[$key]['paxes'];
// echo "<pre>";print_r(($hotelPassengerArr[$key]['paxes']));
$RoomInfoData = $RoomInfo[$key];
$currentDate = date('Y-m-d');
$LastCancellationDate = str_replace('T', ' ', $RoomInfoData['LastCancellationDate']);
if (strtotime($currentDate) > strtotime($LastCancellationDate)) {
$CancelDateskipped = true;
}
$HotelRoomsDetails[$key] = array(
'RoomIndex' => $RoomInfoData['RoomIndex'],
'RoomTypeCode' => $RoomInfoData['RoomTypeCode'],
'RoomTypeName' => $RoomInfoData['RoomTypeName'],
'RatePlanCode' => $RoomInfoData['RatePlanCode'],
'BedTypeCode' => null,
'SmokingPreference' => 0,
'Supplements' => null,
'Price' => array(
'CurrencyCode' => $RoomInfoData['Price']['CurrencyCode'],
'RoomPrice' => $RoomInfoData['Price']['RoomPrice'],
'Tax' => $RoomInfoData['Price']['Tax'],
'ExtraGuestCharge' => $RoomInfoData['Price']['ExtraGuestCharge'],
'ChildCharge' => $RoomInfoData['Price']['ChildCharge'],
'OtherCharges' => $RoomInfoData['Price']['OtherCharges'],
'Discount' => $RoomInfoData['Price']['Discount'],
'PublishedPrice' => $RoomInfoData['Price']['PublishedPrice'],
'PublishedPriceRoundedOff' => $RoomInfoData['Price']['PublishedPriceRoundedOff'],
'OfferedPrice' => $RoomInfoData['Price']['OfferedPrice'],
'OfferedPriceRoundedOff' => $RoomInfoData['Price']['OfferedPriceRoundedOff'],
'AgentCommission' => $RoomInfoData['Price']['AgentCommission'],
'AgentMarkUp' => $RoomInfoData['Price']['AgentMarkUp'],
'ServiceTax' => $RoomInfoData['Price']['ServiceTax'],
'TDS' => $RoomInfoData['Price']['TDS'],
),
'HotelPassenger' => $HotelPassenger,
);
}
}
$TraceId = $HotelData['TraceId'];
$Surfacedata = date('Y-m-d');
$ArrivalTransport = array(
'ArrivalTransportType' => 1,
'TransportInfoId' => 'Sadan',
'Time' => $Surfacedata . "T11:00:00",
);
$bookingArr = array(
'ResultIndex' => $HotelData['ResultIndex'],
'HotelCode' => $HotelData['HotelCode'],
'HotelName' => $HotelData['HotelName'],
'GuestNationality' => 'IN',
'NoOfRooms' => $getData['room'],
'ClientReferenceNo' => 0,
//'IsPackageFare'=> true,
'HotelRoomsDetails' => $HotelRoomsDetails,
'ArrivalTransport' => $ArrivalTransport,
);
if ($HotelData['IsTBOMapped'] == 1) {
$bookingArr['CategoryId'] = isset($SupplierHotelCodes[0]['CategoryId']) ? $SupplierHotelCodes[0]['CategoryId'] : '';
}
if ($IsPackageFare) {
$bookingArr['IsPackageFare'] = $IsPackageFare;
}
if ($CancelDateskipped) {
$bookingArr['IsVoucherBooking'] = true;
} else {
$bookingArr['IsVoucherBooking'] = false;
}
$tokenId = $this->authenticateAPI();
$bookingArr['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$bookingArr['TokenId'] = $tokenId;
$bookingArr['TraceId'] = $TraceId;
// echo "<pre>";print_r(($bookingArr));die;
$data_stringh = json_encode($bookingArr);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_HOTEL_ROOM_BOOK);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_stringh)
));
$outputH = curl_exec($ch);
$response = json_decode($outputH, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/HotelBook/" . time() . "_Hotels_book_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_stringh);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/HotelBook/" . time() . "_Hotels_book_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $outputH);
//Write Request Logs starts...
}
Zend_Session::namespaceUnset('HotelBookingResponse');
$HotelBookingResponse = new Zend_Session_Namespace('HotelBookingResponse');
$HotelBookingResponse->params = $response;
return $response;
}
}
public function searchTaggingStaticData($arrSessionData = array())
{
if ($arrSessionData) {
$SearchHotelTraceId = new Zend_Session_Namespace('SearchHotelTraceId');
$HotelTraceId = $SearchHotelTraceId->params;
$tokenId = $this->authenticateAPI();
$arrSessionData['EndUserIp'] = $_SERVER['REMOTE_ADDR'];
$arrSessionData['TokenId'] = $tokenId;
$data_stringh = json_encode($arrSessionData);
echo "<pre>";
print_r(($arrSessionData));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TBO_HOTEL_API_TAGGINGSTATIC_DATA_URL);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_stringh)
));
$outputH = curl_exec($ch);
$response = json_decode($outputH, true);
if (HOTEL_API_LOGS) {
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/HotelSearch/" . time() . "_TaggingStatic_request.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $data_stringh);
//Write Request Logs starts...
//Write Request Logs starts...
$strFilePath = "hotels/SearchParam/" . $HotelTraceId . "/HotelSearch/" . time() . "_TaggingStatic_response.json";
Zend_Controller_Action_HelperBroker::getStaticHelper("General")->createApiCallLogs($strFilePath, $outputH);
//Write Request Logs starts...
}
Zend_Session::namespaceUnset('TaggingStaticData');
$TaggingStaticData = new Zend_Session_Namespace('TaggingStaticData');
$TaggingStaticData->params = $response;
return $response;
}
}
public function getApiPriceWithMarkupAndServiceTax($getMarkup, $intPrice, $intSTaxOnBasePrice = NULL, $intNoOfNights, $intNoOfRooms)
{
// echo '<pre>';print_r($getMarkup);echo '</pre>';
$arrPriceAndMarkUps = array();
$intPriceWithGTXMarkUp = 0;
$intGTXMarkUp = 0;
$arrAgencyMarkups = $getMarkup['arrAgencyMarkupsHotel'];
if (count($arrAgencyMarkups) > 0) {
$intAgencyCurrencySysId = isset($arrAgencyMarkups[0]['Currency']) ? $arrAgencyMarkups[0]['Currency'] : 0;
$intAgencyAccomType = isset($arrAgencyMarkups[0]['AccomType']) ? $arrAgencyMarkups[0]['AccomType'] : 0;
$intAgencyMarkUpType = isset($arrAgencyMarkups[0]['MarkUpType']) ? $arrAgencyMarkups[0]['MarkUpType'] : 1;
$intAgencyMarkUp = isset($arrAgencyMarkups[0]['MarkUp']) ? $arrAgencyMarkups[0]['MarkUp'] : 0;
$percentAgencySTax = isset($arrAgencyMarkups[0]['Tax']) ? $arrAgencyMarkups[0]['Tax'] : 0;
if ($intAgencyMarkUpType == 1) { // For Flat
$intAgencyMarkUp = (($intAgencyMarkUp * $intNoOfNights) * $intNoOfRooms);
} else { // For Percentage
$intAgencyMarkUp = ($intPrice * $intAgencyMarkUp) / 100; // mark ups per room / night
$intAgencyMarkUp = ($intAgencyMarkUp * $intNoOfNights) * $intNoOfRooms;
}
$intServiceTaxOnAgencyMarkUp = ($intAgencyMarkUp * $percentAgencySTax) / 100;
$intAgencyMarkUpWithSTax = $intAgencyMarkUp + $intServiceTaxOnAgencyMarkUp;
$intServiceTaxOnGTXMarkUp = ($intGTXMarkUp * $percentAgencySTax) / 100;
$intGTXMarkUpWithSTax = $intGTXMarkUp + $intServiceTaxOnGTXMarkUp;
$intNetPriceWithAllMarkupsAndSTax = $intPrice + $intSTaxOnBasePrice + $intGTXMarkUpWithSTax + $intAgencyMarkUpWithSTax;
$intNetSTax = $intSTaxOnBasePrice + $intServiceTaxOnGTXMarkUp + $intServiceTaxOnAgencyMarkUp;
$arrPriceAndMarkUps = array(
"intBasePrice" => $intPrice,
"intSTaxOnBasePrice" => $intSTaxOnBasePrice,
"intPriceWithMarkUpsAndSTax" => $intNetPriceWithAllMarkupsAndSTax,
"intGTXMarkUp" => $intGTXMarkUp,
"intSTaxOnGTXMarkUp" => $intServiceTaxOnGTXMarkUp,
"intGTXMarkUpWithSTax" => $intGTXMarkUpWithSTax,
"intAgencyMarkUp" => $intAgencyMarkUp,
"intSTaxOnAgencyMarkUp" => $intServiceTaxOnAgencyMarkUp,
"intAgencyMarkUpWithSTax" => $intAgencyMarkUpWithSTax,
"intNetSTax" => $intNetSTax,
"GTXMarkUpType" => 0,
"AgencyMarkUpType" => $intAgencyMarkUpType,
"AgencyMarkUpDB" => isset($arrAgencyMarkups[0]['MarkUp']) ? $arrAgencyMarkups[0]['MarkUp'] : 0,
);
return $arrPriceAndMarkUps;
}
}
public function getMarkup($intCountryCode)
{
if ($intCountryCode) {
$this->postFields = "";
$this->postFields .= "&AgencySysId=$this->gtxagencysysid";
$this->postFields .= "&AgentSysId=$this->gtxagentsysid";
$this->postFields .= "&intCountryCode=$intCountryCode";
$model = new Gtxwebservices_Model_Webservices();
$result = $model->getMarkupAndServiceTax($this->postFields);
$response = json_decode($result, true);
return $response;
} else {
$data = array('status' => false, 'message' => 'Invalid country code');
return ($data);
}
}
public function calculateServiceTax($intAmount, $percentAgencySTax)
{
$intAmount = (float) $intAmount;
$intNetSTax = (($intAmount * $percentAgencySTax) / 100);
$BasePriceWithSTax = $intNetSTax + $intAmount;
$arrSerciceTax = array(
"BasePrice" => $intAmount,
"serviceTaxAmount" => $intNetSTax,
"BasePriceWithSTax" => $BasePriceWithSTax,
"ServiceTaxPercentage" => $percentAgencySTax,
);
return $arrSerciceTax;
}
}