| 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/uatb2c.hellogtx.com/application/models/ |
Upload File : |
<?php
class Travel_Model_HotelMaster {
protected $db = NULL;
public $intId = NULL;
protected $objHelperGeneral;
/* * ************************************ */
public function __construct() {
$request = Zend_Controller_Front::getInstance()->getRequest();
$this->baseUrl = $request->getScheme() . '://' . $request->getHttpHost();
$this->db = Zend_Db_Table::getDefaultAdapter();
$this->_session = new Zend_Session_Namespace('User');
$this->TrxCurrency = $this->_session->data['TrxCurrency'];
$this->SecurityKey = $this->_session->data['SecurityKey'];
$this->MasterAgencySysId = $this->_session->data['MasterAgencySysId'];
$this->gtxagencysysid = $this->_session->data['AgencySysId'];
}
public function __destruct() {
$this->db->closeConnection();
}
public function getHotel($destinationId, $table, $checkInDate, $checkOutDate, $adults, $child, $infent, $refId, $destIndex, $roomJsonInfo, $filterType = NULL, $markupDetailsArray = array(), $starFilterValue = NULL, $nameFilterValue = NULL) {
$objHelperGeneral = Zend_Controller_Action_HelperBroker::getStaticHelper('General');
$destinationId = trim($destinationId);
//$destinationId = 6000;
$order = 'StarRating ASC';
if ($filterType == 2) {
if ($starFilterValue == 1) {
$order = 'StarRating ASC';
} else {
$order = 'StarRating DESC';
}
} else if ($filterType == 1) {
if ($nameFilterValue == 1) {
$order = 'packageNameUrl ASC';
} else {
$order = 'packageNameUrl DESC';
}
}
$response = array();
$sql = "select * FROM $table A WHERE DestinationsId = $destinationId AND ItemType = 2 AND IsActive = '1' and IsMarkForDel = '0' order by $order";
$res = $this->db->query($sql)->fetchAll();
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$Adult = (int) $adults;
$roomJsonInfo = json_decode($roomJsonInfo, TRUE);
$roomJsonInfoNew = array();
$ChildWithOutBed = 0;
$ChildWithOutBed = (int) $child;
if (count($res) > 0) {
foreach ($res as $row) {
$longJsonDecode = $row['LongJsonInfo'];
$longJson = json_decode($longJsonDecode, TRUE);
$checkPlan = $RoomInfoArray = array();
$RoomInfo = $longJson['RoomInfo'];
foreach ($RoomInfo as $riKey => $riVal) {
$RoomInfoArray[$riVal['RoomType']] = $riVal;
}
$checkDuplicateDate = array();
foreach ($longJson['PriceAdditional'] as $priceVal) {
if($row['AgencySysId'] == '37338' || $row['AgencySysId'] == '14114'){
if($priceVal['MPTitle'] == 'EP'){
$priceVal['MPTitle'] = 'RO';
}
if($priceVal['MPTitle'] == 'CP'){
$priceVal['MPTitle'] = 'BB';
}
if($priceVal['MPTitle'] == 'AP'){
$priceVal['MPTitle'] = 'FB';
}
if($priceVal['MPTitle'] == 'MAP'){
$priceVal['MPTitle'] = 'HB';
}
}
if ($priceVal['CreateDate'] >= $checkInDate && $priceVal['CreateDate'] < $checkOutDate) {
if (!isset($checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate']) || !in_array($priceVal['CreateDate'], $checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'])) {
$remainAdults = (int) $adults;
$remainChilds = (int) $child;
$remainInfent = (int) $infent;
$RoomInfoForRoom = $RoomInfoArray[$priceVal['EType']];
// echo "<pre>";print_r($RoomInfoForRoom);die;
$roomJsonInfoNew = array();
for($imr = 1; $imr<= $adults; $imr++){
$FillAdult = $FillAdultExtra = $FillChild = $FillInfent = 0;
if(($remainAdults + $remainChilds + $remainInfent)>0){
// echo $remainAdults.'-';
if($remainAdults>0){
if($remainAdults<$RoomInfoForRoom['MAdult']){
if($remainAdults<$RoomInfoForRoom['Adult']){
$FillAdult = $remainAdults;
}else{
$FillAdult = $RoomInfoForRoom['Adult'];
$FillAdultExtra = $remainAdults-$RoomInfoForRoom['Adult'];
}
}else{
$FillAdult = $RoomInfoForRoom['Adult'];
if(($FillAdult) != ($remainAdults-$FillAdult)){
$FillAdultExtra = $RoomInfoForRoom['MAdult']-$RoomInfoForRoom['Adult'];
}
}
}
if($remainChilds>0){
if($remainChilds<$RoomInfoForRoom['MChild']){
$FillChild = $remainChilds;
}else{
$FillChild = $RoomInfoForRoom['MChild'];
}
}
if($remainInfent>0){
if($remainInfent>3){
$FillInfent = 3;
}else{
$FillInfent = $remainInfent;
}
}
if(($FillAdult + $FillAdultExtra + $FillChild)>$RoomInfoForRoom['TGuest']){
$Extrapax = ($FillAdult + $FillAdultExtra + $FillChild) - $RoomInfoForRoom['TGuest'];
// echo $Extrapax.'-';
if(($FillChild+$FillAdultExtra)>=$Extrapax){
if($FillAdultExtra > 0){
$Extrapax = $Extrapax-$FillAdultExtra;
$FillAdultExtra = 0;
}
if($FillChild >= $Extrapax){
$FillChild = $FillChild - $Extrapax;
}
}else if($FillChild>=$Extrapax){
$FillChild = $FillChild - $Extrapax;
// }else if($FillAdult>=$Extrapax){
// $FillAdult = $FillAdult - $Extrapax;
}else if($FillAdultExtra>=$Extrapax){
$FillAdultExtra = $FillAdultExtra - $Extrapax;
}
}else{ }
if($FillAdult>0){
$roomJsonInfoNew[$imr]['Adult'] = $FillAdult;
}
if($FillAdultExtra>0){
$roomJsonInfoNew[$imr]['AdultExtra'] = $FillAdultExtra;
}
if($FillChild>0){
$roomJsonInfoNew[$imr]['Child'] = $FillChild;
}
if($FillInfent>0){
$roomJsonInfoNew[$imr]['Infent'] = $FillInfent;
}
$remainAdults = $remainAdults - $FillAdult - $FillAdultExtra;
$remainChilds = $remainChilds - $FillChild;
$remainInfent = $remainInfent - $FillInfent;
}
}
// echo "<pre>";print_r($roomJsonInfoNew);die;
$checkPlan['category']['Name'] = $priceVal['Title'];
$checkPlan['category']['HotelName'] = $longJson['Title'];
$checkPlan['category']['Stars'] = $longJson['Stars'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'][] = $priceVal['CreateDate'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Title'] = $priceVal['MPTitle'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['ETitle'] = $priceVal['Title'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MPTypeId'] = $priceVal['MPType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['B2BMarkup'] = $priceVal['B2BMarkup'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MarkType'] = $priceVal['MarkType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['RoomInfo'] = $RoomInfoForRoom;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['priceVal'][] = $priceVal;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['roomJsonInfoNew'] = $roomJsonInfoNew;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['AminitiesMask'] = $RoomInfoArray[$priceVal['EType']]['AminitiesMask'];
$getPriceF = 0;
foreach ($roomJsonInfoNew as $paxKey => $paxVal) {
$adultsR = (int)$paxVal['Adult'];
$AdultExtraR = (int)$paxVal['AdultExtra'];
$childR = (int)$paxVal['Child'];
$infentR = (int)$paxVal['Infent'];
$totalAdultR = (int) $adultsR + (int) $childR + (int) $infentR;
$ChildWithBedR = 0;
$ChildWithOutBedR = (int) $childR;
$getPrice = 0;
if($adultsR>0){
if($adultsR == 1){
$getPrice += (float) $priceVal['NSOC'];
}else{
$getPrice += (float) $priceVal['NDOC'];
}
}
if($AdultExtraR>0){
$getPrice += (float) $priceVal['NEBC'] * $AdultExtraR;
}
if($childR>0){
if($ChildWithBedR>0){
$getPrice += (float) $priceVal['NEWBC'] * $ChildWithBedR;
}
if($ChildWithOutBedR>0){
$getPrice += (float) $priceVal['NEWOBC'] * $ChildWithOutBedR;
}
}
// switch ($totalAdult) {
// case 1 : {
// if ((int) $priceVal['NSOC'] > 0) {
// $getPrice = (float) $priceVal['NSOC'];
// } else {
// $getPrice = (float) $priceVal['NDOC'];
// }
// break;
// }
// case 2 : {
// if ($Adult == 2) {
// $getPrice = (float) $priceVal['NDOC'];
// } else if ($ChildWithOutBed == 2) {
// $getPrice = (float) $priceVal['NDOC'];
// } else if (($Adult + $ChildWithOutBed) == 2) {
// $getPrice = (float) $priceVal['NDOC'];
// } else {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
// }
// break;
// }
// case 3 : {
// if ($Adult == 3) {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
// } else if ($ChildWithOutBed == 3) {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'];
// } else {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
// }
// break;
// }
// case 4 : {
// if ($ChildWithOutBed + $Adult == 4) {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['NEWOBC'];
// } else {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['NEBC'];
// }
// break;
// }
// default : {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['EWOBC'];
// break;
// }
// }
$getPriceF = $getPriceF + $getPrice;
}
$exchangerate = 1;
if (isset($priceVal['Currency']) && $priceVal['Currency'] != 1) {
$exchangerate = $objHelperGeneral->currencyExchangeRate($priceVal['Currency'], $this->TrxCurrency, 0);
}
$getPriceF = $getPriceF * $exchangerate;
//echo "<pre>";print_r($getPriceF);die;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'][] = $getPriceF;
// $checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'][] = Catabatic_Helper::calculateMarkup($getPriceF,$markupDetailsArray);
}
}
}
//echo "<pre>";print_r($checkPlan);die;
$datetime1 = new DateTime($checkInDate);
$datetime2 = new DateTime($checkOutDate);
$interval = $datetime1->diff($datetime2);
$totalNight = (int) $interval->format('%a');
$countval = array();
$finalArray = array();
$Price = $Markup = 0;
$defaultRoomType = $defaultMealPlanType = '';
foreach ($checkPlan['category'] as $checkhotelkey => $checkHotelPrice) {
foreach ($checkHotelPrice as $SUBkey => $SUBVal) {
$i = 0;
foreach ($SUBVal as $keyItem => $checkRNd) {
$countval[$i] = count($checkRNd["CreateDate"]);
if ($countval[$i] == $totalNight) {
$finalArray['category']['Name'] = $checkHotelPrice['Title'];
$finalArray['category']['HotelName'] = $longJson['Title'];
$finalArray['category']['Stars'] = $longJson['Stars'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['CreateDate'][] = $checkRNd['CreateDate'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Title'] = $checkRNd['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ETitle'] = $checkRNd['ETitle'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MPTypeId'] = $checkRNd['MPTypeId'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['AminitiesMask'] = $checkRNd['AminitiesMask'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['B2BMarkup'] = $checkRNd['B2BMarkup'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MarkType'] = $checkRNd['MarkType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['priceVal'] = $checkRNd['priceVal'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['RoomInfo'] = $checkRNd['RoomInfo'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['roomJsonInfoNew'] = $checkRNd['roomJsonInfoNew'];
$mPrice = array_sum($checkRNd['Price']) / count($checkRNd['Price']);
$mmarkupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$mmarkupValue = (float) ($mPrice * ($checkRNd['B2BMarkup']) / 100);
} else {
$mmarkupValue = $checkRNd['B2BMarkup'];
}
}
// $mPrice = $mPrice + $mmarkupValue;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Price'] = $mPrice;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Markup'] = $mmarkupValue;
if ($Price == 0 || $Price > $mPrice) {
$Price = array_sum($checkRNd['Price']) / count($checkRNd['Price']);
$markupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$markupValue = (float) ($Price * ($checkRNd['B2BMarkup']) / 100);
} else {
$markupValue = $checkRNd['B2BMarkup'];
}
}
// $Price = $Price + $markupValue;
$Markup = $Markup + $markupValue;
$finalArray['category']['defaultRoomType'] = $SUBkey;
$finalArray['category']['defaultMealPlanType'] = $keyItem;
$finalArray['category']['roomJsonInfoNew'] = $checkRNd['roomJsonInfoNew'];
}
}
$i++;
}
}
}
//echo "<pre>";print_r($finalArray);die;
if (!empty($finalArray) && $Price>0) {
$response[] = array(
'destIndex' => $destIndex,
'refId' => $refId,
'GTXPkgId' => $row['GTXPkgId'],
'PkgSysId' => $row['PkgSysId'],
'DestinationId' => $row['DestinationsId'],
'Destinations' => $row['Destinations'],
'Title' => $longJson['Title'],
'Details' => $longJson['Details'],
'adults' => $adults,
'child' => $child,
'infent' => $infent,
'Stars' => $longJson['Stars'],
'ThumnailImg' => $longJson['ThumnailImg'],
'DetailImg' => $longJson['DetailImg'],
'PropertyType' => $longJson['PropertyType'],
'CheckinTime' => $longJson['CheckinTime'],
'Address' => $longJson['Address'],
'Area' => $longJson['Area'],
'latitude' => $longJson['latitude'],
'longitude' => $longJson['longitude'],
'CitySysId' => $longJson['CitySysId'],
'ContSysId' => $longJson['ContSysId'],
'PinCode' => $longJson['PinCode'],
'Location' => $longJson['Location'],
'checkPlan' => base64_encode(json_encode($finalArray)),
'AccoAminitiesMask' => $longJson['AccoAminitiesMask'],
'IsFeatured' => $row['IsFeatured'],
'totalNight' => $totalNight,
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'Price' => (int) $Price,
'Markup' => (int) $Markup,
'defaultRoomType' => (int) $defaultRoomType,
'defaultMealPlanType' => (int) $defaultMealPlanType,
);
}
}
}
return $response;
}
public function getHotelInv($destinationId, $table, $checkInDate, $checkOutDate, $adults, $child, $infent, $refId, $destIndex, $roomJsonInfo, $filterType = NULL, $markupDetailsArray = array(), $starFilterValue = NULL, $nameFilterValue = NULL) {
$objHelperGeneral = Zend_Controller_Action_HelperBroker::getStaticHelper('General');
$destinationId = trim($destinationId);
//$destinationId = 6000;
$order = 'StarRating ASC';
if ($filterType == 2) {
if ($starFilterValue == 1) {
$order = 'StarRating ASC, MinPrice ASC';
} else {
$order = 'StarRating DESC, MinPrice ASC';
}
} else if ($filterType == 1) {
if ($nameFilterValue == 1) {
$order = 'packageNameUrl ASC';
} else {
$order = 'packageNameUrl DESC';
}
}
$response = array();
$sql = "select * FROM $table A WHERE DestinationsId = $destinationId AND ItemType = 2 AND IsActive = '1' and IsMarkForDel = '0' order by $order";
$res = $this->db->query($sql)->fetchAll();
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$Adult = (int) $adults;
$roomJsonInfo = json_decode($roomJsonInfo, TRUE);
$roomJsonInfoNew = array();
$ChildWithOutBed = 0;
$ChildWithOutBed = (int) $child;
$datetime1 = new DateTime($checkInDate);
$datetime2 = new DateTime($checkOutDate);
$interval = $datetime1->diff($datetime2);
$totalNight = (int) $interval->format('%a');
if (count($res) > 0) {
foreach ($res as $row) {
$longJsonDecode = $row['LongJsonInfo'];
$longJson = json_decode($longJsonDecode, TRUE);
$checkPlan = $RoomInfoArray = array();
$RoomInfo = $longJson['RoomInfo'];
foreach ($RoomInfo as $riKey => $riVal) {
$RoomInfoArray[$riVal['RoomType']] = $riVal;
}
$checkDuplicateDate = array();
$ExtraServices = (isset($longJson['ExtraServices'])) ? $longJson['ExtraServices'] : array();
$TransferData = $OtherChargesData = array();
foreach($ExtraServices as $key => $value){
if($value['ServiceType'] == 1){
$TransferData[] = $value;
}else{
$OtherChargesData[] = $value;
}
}
$MinStayNights = (isset($longJson['MinStayNights'])) ? (int)$longJson['MinStayNights'] : 0;
if($totalNight<$MinStayNights){
$longJson['PriceAdditional'] = array();
}
foreach ($longJson['PriceAdditional'] as $priceVal) {
if ($priceVal['CreateDate'] >= $checkInDate && $priceVal['CreateDate'] < $checkOutDate) {
if (!isset($checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate']) || !in_array($priceVal['CreateDate'], $checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'])) {
$RoomInfoForRoom = $RoomInfoArray[$priceVal['EType']];
//echo "<pre>";print_r($RoomInfoForRoom);die;
$roomMinAdult = $RoomInfoForRoom['Adult'];
$roomMaxAdult = $RoomInfoForRoom['MAdult'];
$roomMinChild = $RoomInfoForRoom['Child'];
$roomMaxChild = $RoomInfoForRoom['MChild'];
$roomMaxGuest = $RoomInfoForRoom['TGuest'];
$checkPlan['category']['Name'] = $priceVal['Title'];
$checkPlan['category']['HotelName'] = $longJson['Title'];
$checkPlan['category']['Stars'] = $longJson['Stars'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'][] = $priceVal['CreateDate'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Title'] = $priceVal['MPTitle'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['ETitle'] = $priceVal['Title'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MPTypeId'] = $priceVal['MPType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['B2BMarkup'] = $priceVal['B2BMarkup'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MarkType'] = $priceVal['MarkType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['RoomInfo'] = $RoomInfoForRoom;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['priceVal'][] = $priceVal;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['roomJsonInfoNew'] = $roomJsonInfoNew;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['AminitiesMask'] = $RoomInfoArray[$priceVal['EType']]['AminitiesMask'];
$getPriceF = 0;
$checkR = 0;
$totalAdultss = $totalChildss = 0;
foreach ($roomJsonInfo as $paxKey => $paxVal) {
$adults = (int)$paxVal['Adult'];
$child = (int)$paxVal['Child'];
$infent = (int)$paxVal['Infent'];
$totalAdultss = $totalAdultss + $adults;
$totalChildss = $totalChildss + $child;
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$totalRoomPax = (int) $adults + (int) $child;
if($totalRoomPax > $roomMaxGuest || $adults > $roomMaxAdult || $child > $roomMaxChild ){
$checkR = 1;
}
$adultPrice = $adultPriceExtra = $childPrice = $childPriceExtra = 0;
$childAgeArray = array();
for ($ic = 1; $ic <= $child; $ic++) {
$childAge = $paxVal['ChildAge_' . $ic];
$childAgeArray[] = $childAge;
}
sort($childAgeArray);
if($totalRoomPax == 1){
$adultPrice = (float) $priceVal['NSOC'];
}else if($totalRoomPax>1){
$adultPrice = (float) $priceVal['NDOC'];
$adultsExtra = (int)($adults - $roomMinAdult);
if($adultsExtra<0){$adultsExtra = 0;}
$childExtra = (int)($totalRoomPax - $roomMinAdult-$adultsExtra);
if($adultsExtra>0){
$adultPriceExtra = (float) $priceVal['NEBC']*$adultsExtra;
}
if($childExtra>0){
$ChildWithBed = $ChildWithOutBed = 0;
for($che = 0; $che < $childExtra; $che++){
$childAge = (int)$childAgeArray[$che];
if ($childAge >= $priceVal['FCAT']) {
$ChildWithBed++;
}else{
$ChildWithOutBed++;
}
}
$childPrice = (float) $priceVal['NEWOBC']*$ChildWithOutBed;
$childPriceExtra = (float) $priceVal['NEWBC']*$ChildWithBed;
}
}
$getPrice = $adultPrice + $adultPriceExtra + $childPrice + $childPriceExtra;
$getPriceF = $getPriceF + $getPrice;
}
$exchangerate = 1;
if (isset($priceVal['Currency']) && $priceVal['Currency'] != 1) {
$exchangerate = $objHelperGeneral->currencyExchangeRate($priceVal['Currency'], $this->TrxCurrency, 0);
}
$getPriceF = $getPriceF * $exchangerate;
//echo "<pre>";print_r($getPriceF);die;
if($getPriceF>0){
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'][] = $getPriceF;
}
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['checkR'][] = $checkR;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['adults'][] = $totalAdultss;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['child'][] = $totalChildss;
// $checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'][] = Catabatic_Helper::calculateMarkup($getPriceF,$markupDetailsArray);
}
}
}
//echo "<pre>";print_r($checkPlan);die;
$countval = array();
$finalArray = array();
$Price = $Markup = 0;
$defaultRoomType = $defaultMealPlanType = '';
foreach ($checkPlan['category'] as $checkhotelkey => $checkHotelPrice) {
foreach ($checkHotelPrice as $SUBkey => $SUBVal) {
$i = 0;
foreach ($SUBVal as $keyItem => $checkRNd) {
$checkR = array_sum($checkRNd['checkR']);
$countval[$i] = count($checkRNd["CreateDate"]);
$countvalP[$i] = count($checkRNd["Price"]);
if ($countval[$i] == $totalNight && $countvalP[$i] == $totalNight && $checkR == 0) {
$finalArray['category']['Name'] = $checkHotelPrice['Title'];
$finalArray['category']['HotelName'] = $longJson['Title'];
$finalArray['category']['Stars'] = $longJson['Stars'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['CreateDate'][] = $checkRNd['CreateDate'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Title'] = $checkRNd['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ETitle'] = $checkRNd['ETitle'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MPTypeId'] = $checkRNd['MPTypeId'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['AminitiesMask'] = $checkRNd['AminitiesMask'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['B2BMarkup'] = $checkRNd['B2BMarkup'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MarkType'] = $checkRNd['MarkType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['priceVal'] = $checkRNd['priceVal'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['RoomInfo'] = $checkRNd['RoomInfo'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['roomJsonInfoNew'] = $checkRNd['roomJsonInfoNew'];
$mPrice = array_sum($checkRNd['Price']) / count($checkRNd['Price']);
$mmarkupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$mmarkupValue = (float) ($mPrice * ($checkRNd['B2BMarkup']) / 100);
} else {
$mmarkupValue = $checkRNd['B2BMarkup'];
}
}
// $mPrice = $mPrice + $mmarkupValue;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Price'] = $mPrice;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Markup'] = $mmarkupValue;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['adults'] = array_sum($checkRNd['adults']) / count($checkRNd['adults']);
$finalArray['category']['SUB'][$SUBkey][$keyItem]['child'] = array_sum($checkRNd['child']) / count($checkRNd['child']);
if ($Price == 0 || $Price > $mPrice) {
$Price = array_sum($checkRNd['Price']) / count($checkRNd['Price']);
$markupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$markupValue = (float) ($Price * ($checkRNd['B2BMarkup']) / 100);
} else {
$markupValue = $checkRNd['B2BMarkup'];
}
}
// $Price = $Price + $markupValue;
$Markup = $Markup + $markupValue;
$finalArray['category']['defaultRoomType'] = $SUBkey;
$finalArray['category']['defaultMealPlanType'] = $keyItem;
$finalArray['category']['roomJsonInfoNew'] = $checkRNd['roomJsonInfoNew'];
}
}
$i++;
}
}
}
// echo "<pre>";print_r($finalArray);die;
if (!empty($finalArray)) {
$response[] = array(
'destIndex' => $destIndex,
'refId' => $refId,
'GTXPkgId' => $row['GTXPkgId'],
'PkgSysId' => $row['PkgSysId'],
'DestinationId' => $row['DestinationsId'],
'Destinations' => $row['Destinations'],
'Title' => $longJson['Title'],
'Area' => $longJson['Area'],
'PropertyName' => $longJson['PropertyName'],
'Details' => $longJson['Details'],
'adults' => $adults,
'child' => $child,
'infent' => $infent,
'Stars' => $longJson['Stars'],
'ThumnailImg' => $longJson['ThumnailImg'],
'DetailImg' => $longJson['DetailImg'],
'PropertyType' => $longJson['PropertyType'],
'CheckinTime' => $longJson['CheckinTime'],
'Address' => $longJson['Address'],
'latitude' => $longJson['latitude'],
'longitude' => $longJson['longitude'],
'CitySysId' => $longJson['CitySysId'],
'ContSysId' => $longJson['ContSysId'],
'PinCode' => $longJson['PinCode'],
'Location' => $longJson['Location'],
'checkPlan' => base64_encode(json_encode($finalArray)),
'AccoAminitiesMask' => $longJson['AccoAminitiesMask'],
'IsFeatured' => $row['IsFeatured'],
'totalNight' => $totalNight,
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'Price' => (int) $Price,
'Markup' => (int) $Markup,
'defaultRoomType' => (int) $defaultRoomType,
'defaultMealPlanType' => (int) $defaultMealPlanType,
'TransferData' => $TransferData,
'OtherChargesData' => $OtherChargesData,
);
}
}
}
return $response;
}
function getHotelDetail($hotelRefSysId) {
$objHelperGeneral = Zend_Controller_Action_HelperBroker::getStaticHelper('General');
$select = $this->db->select()->from(array("t1" => "tb_travelplan_hotel"));
$select->joinLeft(array('t2' => 'tb_tbb2c_packages_master'), 't1.HotelId = t2.GTXPkgId', array("LongJsonInfo"));
$select->joinLeft(array('t3' => 'tb_master_geo_city'), 't1.DestinationId = t3.CityId', array("Title"));
$select->joinLeft(array('t4' => 'tb_traavelplan_destination'), 't1.destsysId = t4.Id', array("StartDate", "EndDate"));
$select->where("t1.ID IN(?)", $hotelRefSysId);
$select->order("t4.Id ASC");
$getZsontoArray = $this->db->fetchAll($select);
// echo "<pre>";print_r($getZsontoArray);die;
$selectionHotelByOption = array();
$i = 0;
$TSys = array();
foreach ($getZsontoArray as $key => $val) {
$TPSysId = (int) trim($val['TpsysId']);
$RoomTypeIdNew = trim($val['RoomTypeName']);
$RoomTypeId = trim($val['RoomTypeId']);
$MealPlanId = trim($val['MealPlanId']);
$MEAL_TYPE = unserialize(MEAL_TYPE);
foreach ($MEAL_TYPE as $MTKey => $MTValue) {
if ($val['MealPlanId'] == $MTKey) {
$MealTypeIdNew = $MTValue;
}
}
$keyVal = $val['DestinationId'] . "_" . $val['destSeq'];
$selectionHotelByOption[$keyVal]['Title'] = $val['Title'];
$longJson = json_decode($val['LongJsonInfo'], TRUE);
$selectionHotelByOption[$keyVal]['Hotel'][$val['HotelId']]['Title'] = $longJson['Title'];
$selectionHotelByOption[$keyVal]['Hotel'][$val['HotelId']]['Stars'] = $longJson['Stars'];
$selectionHotelByOption[$keyVal]['Hotel'][$val['HotelId']]['RoomTypeId'][] = $RoomTypeId;
$selectionHotelByOption[$keyVal]['Hotel'][$val['HotelId']]['MealPlanId'][] = $MealPlanId;
$selectionHotelByOption[$keyVal]['Hotel'][$val['HotelId']]['RoomTypeName'][] = $RoomTypeIdNew;
$selectionHotelByOption[$keyVal]['Hotel'][$val['HotelId']]['MealPlanName'][] = $MealTypeIdNew;
$selectionHotelByOption[$keyVal]['StartDate'] = $val['StartDate'];
$selectionHotelByOption[$keyVal]['EndDate'] = $val['EndDate'];
// $selectionHotelByOption[$keyVal]['RoomTypeId'][] = $val['RoomTypeId'];
// $selectionHotelByOption[$keyVal]['MealPlanId'][] = $val['MealPlanId'];
$TSys['TPSysId'] = $TPSysId;
// $selectionHotelByOption[$val['DestinationId']]['Hotel'][$val['HotelId']]['Price'][] = $getPrice;
$i++;
}
return $selectionHotelByOption = array(
"TPSysId" => $TSys,
"selectionHotelByOption" => $selectionHotelByOption,
);
}
function hotelPriceCalculation($hotelRefSysId, $TPSysId, $CurrencyTitle = '',$CostPP = 0) {
$objHelperGeneral = Zend_Controller_Action_HelperBroker::getStaticHelper('General');
$selectionHotelByOption = array();
$select = $this->db->select()->from(array("t1" => "tb_travelplan_hotel"));
$select->joinLeft(array('t2' => 'tb_tbb2c_packages_master'), 't1.HotelId = t2.GTXPkgId', array("LongJsonInfo"));
$select->joinLeft(array('t3' => 'tb_master_geo_city'), 't1.DestinationId = t3.CityId', array("Title"));
$select->joinLeft(array('t4' => 'tb_traavelplan_destination'), 't1.destsysId = t4.Id',array('destName','NoDay','Seq','CitySysId','StartDate','EndDate'));
$select->where("t1.HotelId IN(?)", $hotelRefSysId);
$select->where("t2.IsActive = ? ", 1);
$select->where("t1.IsMarkForDel = ? ", '0');
//$select->where("t1.HotelId IN(?)", $hotelRefSysId);
$select->where("t1.TpsysId = ?", $TPSysId);
$getZsontoArray = $this->db->fetchAll($select);
$finalPriceReturn = 0;
foreach ($getZsontoArray as $key => $val) {
$longJson = json_decode($val['LongJsonInfo'], TRUE);
$checkInDate = $val['StartDate'];
$checkOutDate = $val['EndDate'];
$RoomTypeId = (int) trim($val['RoomTypeId']);
$MealPlanId = (int) trim($val['MealPlanId']);
$adult = $Adult = (int) trim($val['Adult']);
$AdultExtraBed = (int) trim($val['AdultExtraBed']);
$ChildWithBed = (int) trim($val['ChildWithBed']);
$ChildWithOutBed = (int) trim($val['ChildWithOutBed']);
$child = $ChildWithBed + $ChildWithOutBed;
$Infent = (int) trim($val['Infent']);
$totalAdult = (int) $Adult + (int) $AdultExtraBed + (int) $ChildWithBed + (int) $ChildWithOutBed;
$getPriceBreakup = array();
$getPriceF = $getPrice = $NDOC = $NSOC = $NEBC = $NEWOBC = $EWOBC = $getMarkupF = 0;
// echo "<pre>";
// print_r($longJson['PriceAdditional']);
// exit;
$checkDupplicateCreateDates = array();
foreach ($longJson['PriceAdditional'] as $priceVal) {
if ((trim($priceVal['EType']) == $RoomTypeId && trim($priceVal['MPType']) == $MealPlanId) && ($priceVal['CreateDate'] >= $checkInDate && $priceVal['CreateDate'] < $checkOutDate)) {
if (!isset($checkDupplicateCreateDates[$priceVal['EType']][$priceVal['MPType']]) || !in_array($priceVal['CreateDate'], $checkDupplicateCreateDates[$priceVal['EType']][$priceVal['MPType']])) {
$checkDupplicateCreateDates[$priceVal['EType']][$priceVal['MPType']][] = $priceVal['CreateDate'];
$getPriceBreakup[] = $priceVal;
$getPrice = 0;
if($adult>0){
if($adult == 1){
$getPrice += (float) $priceVal['NSOC'];
}else{
$getPrice += (float) $priceVal['NDOC'];
}
}
if($AdultExtraBed>0){
$getPrice += (float) $priceVal['NEBC'] * $AdultExtraBed;
}
if($child>0){
if($ChildWithBed>0){
$getPrice += (float) $priceVal['NEWBC'] * $ChildWithBed;
}
if($ChildWithOutBed>0){
$getPrice += (float) $priceVal['NEWOBC'] * $ChildWithOutBed;
}
}
// switch ($totalAdult) {
// case 1 : {
// if ((int) $priceVal['NSOC'] > 0) {
// $getPrice = (float) $priceVal['NSOC'];
// } else {
// $getPrice = (float) $priceVal['NDOC'];
// }
// break;
// }
// case 2 : {
// if ($Adult == 2) {
// $getPrice = (float) $priceVal['NDOC'];
// } else if ($ChildWithOutBed == 2) {
// $getPrice = (float) $priceVal['NDOC'];
// } else if (($Adult + $ChildWithOutBed) == 2) {
// $getPrice = (float) $priceVal['NDOC'];
// } else {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
// }
// break;
// }
// case 3 : {
// if ($Adult == 3) {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
// } else if ($ChildWithOutBed == 3) {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'];
// } else {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
// }
// break;
// }
// case 4 : {
// if ($ChildWithOutBed + $Adult == 4) {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['NEWOBC'];
// } else {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['NEBC'];
// }
// break;
// }
// default : {
// $getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['EWOBC'];
// break;
// }
// }
$markupValue = 0;
if ((float) $priceVal['B2BMarkup'] > 0) {
if ($priceVal['MarkType'] == 1) {
$markupValue = (float) ($getPrice * ($priceVal['B2BMarkup']) / 100);
} else {
$markupValue = $priceVal['B2BMarkup'];
}
}
$exchangerate = 1;
if (isset($priceVal['Currency']) && $priceVal['Currency'] != $this->TrxCurrency) {
$exchangerate = $objHelperGeneral->currencyExchangeRate($priceVal['Currency'], $this->TrxCurrency, 0);
}
$getPriceF = $getPriceF + $getPrice * $exchangerate;
$getMarkupF = $getMarkupF + $markupValue * $exchangerate;
$Currency = $priceVal['Currency'];
$NDOC = $priceVal['NDOC'] * $exchangerate;
$NSOC = $priceVal['NSOC'] * $exchangerate;
$NEBC = $priceVal['NEBC'] * $exchangerate;
$NEWOBC = $priceVal['NEWOBC'] * $exchangerate;
$EWOBC = $priceVal['EWOBC'] * $exchangerate;
$SSID = $priceVal['SSID'];
}
}
}
$dataArr = array(
'Price' => $getPriceF + $getMarkupF,
);
$totalPrice = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getPriceWithMarkupAndServiceTax($dataArr);
$PriceBreakup = array(
'Currency' => (int) $Currency,
'NDOC' => (int) $NDOC,
'NSOC' => (int) $NSOC,
'NEBC' => (int) $NEBC,
'NEWOBC' => (int) $NEWOBC,
'EWOBC' => (int) $EWOBC,
'Price' => $getPriceF,
'Markup' => $getMarkupF,
'SSID' => $SSID,
'ZoneSysId' => (int)$longJson['ZoneSysId']
);
$finalPriceReturn += $totalPrice;
if($CostPP == 1){
$selectionHotelByOption['Hotel'][$val['Id']]['Price'] = $PriceBreakup;
$selectionHotelByOption['Hotel'][$val['Id']]['Currency'] = $Currency;
}
}
$selectionHotelByOption['Price'] = $CurrencyTitle . ' ' . round($finalPriceReturn, 2);
return $selectionHotelByOption;
}
public function getTotalDays($TPSysId, $startDate) {
$select = $this->db->select()->from(array("t1" => "tb_traavelplan_destination"), array("Sum(NoDay) as TotalNight"));
$select->where("t1.TPSysId = ?", $TPSysId);
// echo $select;exit;
$getZsontoArray = $this->db->fetchRow($select);
$totalDays = (int) $getZsontoArray["TotalNight"] + 1;
$datetime = new DateTime($startDate);
$datetime->modify("+$totalDays days");
$EndData = $datetime->format('Y-m-d');
$returnArray = array(
"startDate" => $startDate,
"endDate" => $EndData,
"totalDays" => $totalDays,
);
return $returnArray;
}
public function getItnaryDays($TPSysId) {
$select = $this->db->select()->from(array("t1" => "tb_traavelplan"), array("EndCityId", "EndCity", "StartCity", "TotalAdult", "TotalChild", "TotalInfant", "StartDate", "EndContId", "StartCityId"));
$select->joinLeft(array('t2' => 'tb_traavelplan_destination'), 't1.TPSysId = t2.TPSysId', array("CitySysId", "NoDay", "destName"));
$select->joinLeft(array('t3' => 'tb_master_geo_city'), 't2.CitySysId = t3.CityId', array("Title", "ContSysId"));
$select->where("t1.TPSysId = ?", $TPSysId);
$select->order("t2.StartDate ASC");
// echo $select;exit;
$getZsontoArray = $this->db->fetchAll($select);
// echo "<pre>";print_r($getZsontoArray);die;
$totalDays = 0;
$arraycity = array();
$i = 0;
foreach ($getZsontoArray as $key => $val) {
$days = (int) $val['NoDay'];
$totalDays = $totalDays + $days;
$arraycity['CitySysId'][$i]['days'] = (int) $days;
$arraycity['CitySysId'][$i]['cityId'] = (int) $val['CitySysId'];
$arraycity['CitySysId'][$i]['cityIdName'] = $val['destName'];
$arraycity['CitySysId'][$i]['ContSysId'] = $val['ContSysId'];
$arraycity['EndCityId'] = (int) $val['EndCityId'];
$arraycity['EndContId'] = (int) $val['EndContId'];
$arraycity['EndCity'] = $val['EndCity'];
$arraycity['StartCity'] = $val['StartCity'];
$arraycity['StartCityId'] = $val['StartCityId'];
$arraycity['TotalAdult'] = (int) $val['TotalAdult'];
$arraycity['TotalChild'] = (int) $val['TotalChild'];
$arraycity['TotalInfant'] = (int) $val['TotalInfant'];
$arraycity['StartDate'] = $val['StartDate'];
$i++;
}
$returnArray = array();
$d = 0;
foreach ($arraycity['CitySysId'] as $valueCity) {
for ($k = 0; $k < $valueCity['days']; $k++) {
$returnArray[$d]['destSysId'] = $valueCity['cityId'];
$returnArray[$d]['CityName'] = $valueCity['cityIdName'];
$returnArray[$d]['ContSysId'] = $valueCity['ContSysId'];
$d++;
}
}
$returnArray[$d]['destSysId'] = $arraycity['EndCityId'];
$arraycityEndCity = explode('(', $arraycity['EndCity']);
$returnArray[$d]['CityName'] = $arraycityEndCity[0];
$returnArray[$d]['ContSysId'] = $arraycity['EndContId'];
$returnAr = array(
"arraycity" => $arraycity,
"returnArray" => $returnArray
);
return $returnAr;
}
public function getTravelPlanHistory($TPSysId) {
$select = $this->db->select()->from(array("t1" => "tb_traavelplan"), array("EndCityId", "EndCity", "StartCity", "TotalAdult", "TotalChild", "TotalInfant", "StartDate", "StartCityId","query_type"));
$select->where("t1.TPSysId = ?", $TPSysId);
$getZsontoArray = $this->db->fetchAll($select);
return $getZsontoArray;
//$select->order("t.StartDate ASC");
}
public function getTransportRoute($TPSysId, $StartSysId, $totaldays, $endCityID) {
$select = $this->db->select()->from(array("t1" => "tb_transport_route"));
$select->where("t1.StartCitySysId = ?", $StartSysId);
$select->where("t1.EndCitySysId = ?", $endCityID);
$select->where("t1.Noofnights = ?", $totaldays);
$select->where("t1.IsActive = ?", 1);
$select->where("t1.IsMarkForDel = '0'");
// echo $select;
$getZsontoArray = $this->db->fetchAll($select);
$select1 = $this->db->select()->from(array("t2" => "tb_traavelplan_destination"), array("CitySysId"));
$select1->where("t2.TPSysId = ?", $TPSysId);
$CitySysIdArray = $this->db->fetchAll($select1);
// echo "<pre>";print_r($CitySysIdArray);
//
// echo "<br>";
//
// echo "<pre>";print_r($getZsontoArray);exit;
$arrCitySysId = array();
// $arrCitySysId[0] = 0;
foreach ($CitySysIdArray as $cityIdKey => $cityIdValue) {
$arrCitySysId[] = $cityIdValue['CitySysId'];
}
// echo "<pre>";print_r($arrCitySysId);
// echo "<br>";
$finalArray = array();
if (!empty($getZsontoArray)) {
foreach ($getZsontoArray as $key => $routeName) {
$category = json_decode($routeName['category'], TRUE);
$cityIncludes = json_decode($routeName['cityIncludes'], TRUE);
// echo "<pre>";print_r($category);
// echo "<br>";
$arrdesId = array();
$testResult = 0;
foreach ($cityIncludes as $ciKey => $ciValue) {
if ($ciValue['DestSysId'] == $arrCitySysId[$ciKey]) {
$testResult++;
}
}
$i = 0;
if ((count($cityIncludes) == count($arrCitySysId)) && (count($cityIncludes) == $testResult)) {
foreach ($category as $catKey => $catValue) {
$finalArray[$i] = [
'transport_route_id' => $routeName['transport_route_id'],
'RouteSysId' => $routeName['RouteSysId'],
'RouteName' => $routeName['RouteName'],
'SupplierSysId' => $routeName['SupplierSysId'],
'Title' => $routeName['Title'],
'Description' => $routeName['Description'],
'StartCitySysId' => $routeName['StartCitySysId'],
'Noofnights' => $routeName['Noofnights'],
'CityName' => $routeName['CityName'],
'EndCityName' => $routeName['EndCityName'],
'RouteVechSysId' => $catValue['RouteVechSysId'],
'VehicleSysId' => $catValue['VehicleSysId'],
'VehicleTypeSysId' => $catValue['VehicleTypeSysId'],
'Cost' => $catValue['Cost'],
'Capacity' => $catValue['Capacity'],
'CurrencyType' => $catValue['CurrencyType'],
'SupplierName' => $catValue['SupplierName'],
'VehName' => $catValue['VehName'],
'VehicleTypeName' => $catValue['VehicleTypeName'],
'CurrencySymbol' => $catValue['CurrencySymbol'],
'cityIncludes' => $cityIncludes,
];
$i++;
}
}
}
// exit;
// echo "<pre>";print_r($finalArray);exit;
}
return $finalArray;
//$select->order("t2.StartDate ASC");
}
public function getTncMasterData() {
$select = $this->db->select()->from(array("t1" => "tb_traavelplan_tnc_master"), '*');
$tncDataArray = $this->db->fetchAll($select);
return $tncDataArray;
//$select->order("t.StartDate ASC");
}
public function getAutosuggestTransportRouteData($StartSysId, $endCityID, $noofdays = NULL, $transferType = NULL, $categoryTransport = NULL, $subCategoryTransport = NULL, $StateSysId = 0) {
$select = $this->db->select()->from(array("t1" => "tb_transport_route"));
if (isset($categoryTransport) && $categoryTransport == 10 && $StateSysId > 0) {
$select->where("t1.StateSysId = ?", $StateSysId);
$select->where("t1.TransportSubType = ?", 10);
} else {
$select->where("t1.StartCitySysId = ?", $StartSysId);
// $select->where("t1.EndCitySysId = ?", $endCityID);
$select->where("t1.DestinationCitySysId = ?", $endCityID);
if ($noofdays) {
$select->where("t1.Noofnights = ?", $noofdays);
}
if ($transferType) {
$select->where("t1.TransportType = ?", $transferType);
}
if ($categoryTransport) {
if ($categoryTransport == 2) {
$select->where("t1.TransportSubType LIKE ?", "%,$subCategoryTransport%");
} else {
$select->where("t1.TransportSubType = ?", $categoryTransport);
}
}
}
$select->where("t1.IsActive = ?", 1);
$select->where("t1.IsMarkForDel = '0'");
// echo $select;die;
$finalArray = $this->db->fetchAll($select);
return $finalArray;
//$select->order("t2.StartDate ASC");
}
public function getAutosuggestTransportRouteDataById($transport_route_id) {
$select = $this->db->select()->from(array("t1" => "tb_transport_route"));
$select->where("t1.transport_route_id = ?", $transport_route_id);
$select->where("t1.IsActive = ?", 1);
$select->where("t1.IsMarkForDel = '0'");
$finalArray = $this->db->fetchAll($select);
return $finalArray;
//$select->order("t2.StartDate ASC");
}
public function getHotelByHotelid($table, $hotelIds, $nights, $ROOMTYPE, $MEALPLANTYPE, $getcheckIn, $roomJsonInfo, $DestinationsIds, $package_destination_night_detail = NULL, $markupDetailsArray = array()) {
$objHelperGeneral = Zend_Controller_Action_HelperBroker::getStaticHelper('General');
//echo "<pre>";print_r($hotelIds);exit;
$hotelIds = trim($hotelIds);
$hotelIdsE = explode(',', $hotelIds);
$nightsE = explode(',', $nights);
$ROOMTYPEE = explode(',', $ROOMTYPE);
$MEALPLANTYPEE = explode(',', $MEALPLANTYPE);
$package_destination_night_detailE = json_decode($package_destination_night_detail, 1);
$roomJsonInfo = json_decode($roomJsonInfo, 1);
//$destinationId = 6000;
$response = array();
$sql = "select * FROM $table A WHERE GTXPkgId IN ($hotelIds) AND ItemType = 2 AND IsActive = '1' and IsMarkForDel = '0' ";
$res = $this->db->query($sql)->fetchAll();
$resArr = $resFinalArr = array();
foreach ($res as $resKey => $resVal) {
$resArr[$resVal['GTXPkgId']] = $resVal;
}
foreach ($hotelIdsE as $hKey => $hVal) {
$resFinalArr[] = $resArr[$hVal];
}
//$resFinalArr = $res;
// echo "<pre>";print_r($resFinalArr);die;
if (count($resFinalArr) > 0) {
$inc = 0;
foreach ($resFinalArr as $rKey => $row) {
$longJsonDecode = $row['LongJsonInfo'];
$longJson = json_decode($longJsonDecode, TRUE);
$checkPlan = array();
$checkInDate = $getcheckIn;
$NoofNights = $nightsE[$rKey];
$checkOutDate = date('Y-m-d', strtotime($checkInDate . ' + ' . ($NoofNights) . ' days'));
$getPriceF = 0;
foreach ($longJson['PriceAdditional'] as $priceVal) {
if ($priceVal['CreateDate'] >= $checkInDate && $priceVal['CreateDate'] < $checkOutDate && $ROOMTYPEE[$rKey] == $priceVal['EType'] && $MEALPLANTYPEE[$rKey] == $priceVal['MPType']) {
$checkPlan['category']['Name'] = $priceVal['Title'];
$checkPlan['category']['HotelName'] = $longJson['Title'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'][] = $priceVal['CreateDate'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Title'] = $priceVal['MPTitle'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['ETitle'] = $priceVal['Title'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MPTypeId'] = $priceVal['MPType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['PriceVal'] = $priceVal;
$getPriceF = 0;
foreach ($roomJsonInfo as $paxKey => $paxVal) {
$adults = $paxVal['Adult'];
$child = $paxVal['Child'];
$infent = $paxVal['infent'];
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$Adult = (int) $adults;
$ChildWithOutBed = 0;
$ChildWithOutBed = (int) $child;
switch ($totalAdult) {
case 1 : {
if ((int) $priceVal['NSOC'] > 0) {
$getPrice = (float) $priceVal['NSOC'];
} else {
$getPrice = (float) $priceVal['NDOC'];
}
break;
}
case 2 : {
if ($Adult == 2) {
$getPrice = (float) $priceVal['NDOC'];
} else if ($ChildWithOutBed == 2) {
$getPrice = (float) $priceVal['NDOC'];
} else if (($Adult + $ChildWithOutBed) == 2) {
$getPrice = (float) $priceVal['NDOC'];
} else {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
}
break;
}
case 3 : {
if ($Adult == 3) {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'];
} else if ($ChildWithOutBed == 3) {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'];
} else {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
}
break;
}
case 4 : {
if ($ChildWithOutBed + $Adult == 4) {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['NEWOBC'];
} else {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['NEBC'];
}
break;
}
default : {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['EWOBC'];
break;
}
}
$getPriceF = $getPriceF + $getPrice;
}
$exchangerate = 1;
if (isset($priceVal['Currency']) && $priceVal['Currency'] != 1) {
$exchangerate = $objHelperGeneral->currencyExchangeRate($priceVal['Currency'], 1, 0);
}
$getPriceF = $getPriceF * $exchangerate;
if ($_SESSION['User']['data']['EmailId'] == 'mangal@catpl.co.in') {
// echo "<pre>";print_r($priceVal).'--';
// echo "<pre>";print_r($getPriceF).',';
//echo "<pre>";print_r(Catabatic_Helper::calculateMarkup($getPriceF,$markupDetailsArray)).',';
}
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'][] = $getPriceF;
// $checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'][] = Catabatic_Helper::calculateMarkup($getPriceF,$markupDetailsArray);
}
}
$datetime1 = new DateTime($checkInDate);
$datetime2 = new DateTime($checkOutDate);
$interval = $datetime1->diff($datetime2);
$totalNight = (int) $interval->format('%a');
$countval = array();
$finalArray = array();
$Price = 0;
// if($_SESSION['User']['data']['EmailId'] == 'mangal@catpl.co.in'){
// echo "<pre>";print_r($checkPlan);die;
// }
foreach ($checkPlan['category'] as $checkhotelkey => $checkHotelPrice) {
foreach ($checkHotelPrice as $SUBkey => $SUBVal) {
$i = 0;
foreach ($SUBVal as $keyItem => $checkRNd) {
$countval[$i] = count($checkRNd["CreateDate"]);
if ($countval[$i] == $totalNight) {
$finalArray['category']['Name'] = $checkHotelPrice['Title'];
$finalArray['category']['HotelName'] = $longJson['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['CreateDate'][] = $checkRNd['CreateDate'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Title'] = $checkRNd['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ETitle'] = $checkRNd['ETitle'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MPTypeId'] = $checkRNd['MPTypeId'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['PriceVal'] = $checkRNd['PriceVal'];
$Price = array_sum($checkRNd['Price']) / count($checkRNd['Price']);
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Price'] = $Price;
}
$i++;
}
}
}
if (!empty($finalArray)) {
$response[] = array(
'destIndex' => $destIndex,
'refId' => $refId,
'NoofNights' => $NoofNights,
'GTXPkgId' => $row['GTXPkgId'],
'DestinationId' => $row['DestinationsId'],
'Destinations' => $row['Destinations'],
'Title' => $longJson['Title'],
'Details' => $longJson['Details'],
'adults' => $adults,
'child' => $child,
'infent' => $infent,
'Stars' => $longJson['Stars'],
'ThumnailImg' => $longJson['ThumnailImg'],
'DetailImg' => $longJson['DetailImg'],
'PropertyType' => $longJson['PropertyType'],
'CheckinTime' => $longJson['CheckinTime'],
'Address' => $longJson['Address'],
'latitude' => $longJson['latitude'],
'longitude' => $longJson['longitude'],
'CitySysId' => $longJson['CitySysId'],
'ContSysId' => $longJson['ContSysId'],
'PinCode' => $longJson['PinCode'],
'Location' => $longJson['Location'],
'checkPlan' => base64_encode(json_encode($finalArray)),
'IsFeatured' => $row['IsFeatured'],
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'ROOMTYPE' => $ROOMTYPEE[$rKey],
'MEALPLANTYPE' => $MEALPLANTYPEE[$rKey],
'isPrice' => 1,
'Price' => $Price,
);
} else {
$response[] = array(
'destIndex' => $destIndex,
'refId' => $refId,
'NoofNights' => $package_destination_night_detailE[$inc]['nights'],
'GTXPkgId' => 121212 + $inc,
'DestinationId' => $package_destination_night_detailE[$inc]['cityId'],
'Destinations' => $package_destination_night_detailE[$inc]['title'],
'ContSysId' => $package_destination_night_detailE[$inc]['CountryIds'],
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'isPrice' => 0,
'Price' => 0,
);
}
$getcheckIn = $checkOutDate;
$inc++;
}
}
return $response;
}
public function getHotelDetailByHotelIds($table, $hotelIds) {
$sql = "select * FROM $table A WHERE GTXPkgId IN ($hotelIds) AND ItemType = 2 AND IsActive = '1' and IsMarkForDel = '0' ";
$res = $this->db->query($sql)->fetchAll();
return $res;
}
public function getTableDataByIds($table, $column, $Ids) {
//$where = "AND ItemType = 2 AND IsActive = '1' and IsMarkForDel = '0'";
$sql = "select * FROM $table A WHERE RouteSysId IN ($Ids)";
$res = $this->db->query($sql)->fetchAll();
return $res;
}
public function getTransportRouteDataByTransportSubType($StartSysId, $endCityID, $noofdays, $TransportSubType = 1) {
$select = $this->db->select()->from(array("t1" => "tb_transport_route"));
$select->where("t1.StartCitySysId = ?", $StartSysId);
$select->where("t1.EndCitySysId = ?", $endCityID);
$select->where("t1.Noofnights = ?", $noofdays);
$select->where("t1.TransportSubType IN ($TransportSubType)");
$select->where("t1.IsActive = ?", 1);
$select->where("t1.IsMarkForDel = '0'");
$finalArray = $this->db->fetchAll($select);
return $finalArray;
//$select->order("t2.StartDate ASC");
}
public function getHotelByPackageId($PkgSysId, $table, $checkInDate, $checkOutDate, $adults, $child, $infent, $refId, $destIndex, $roomJsonInfo, $filterType = NULL) {
$objHelperGeneral = Zend_Controller_Action_HelperBroker::getStaticHelper('General');
$PkgSysId = trim($PkgSysId);
//$destinationId = 6000;
$order = 'StarRating ASC';
if ($filterType == 1) {
$order = 'StarRating ASC';
} else if ($filterType == 2) {
$order = 'StarRating DESC';
}
$response = array();
$sql = "select * FROM $table A WHERE PkgSysId = $PkgSysId AND ItemType = 2 AND IsActive = '1' and IsMarkForDel = '0' order by IsFeatured DESC, $order";
$res = $this->db->query($sql)->fetchAll();
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$Adult = (int) $adults;
$roomJsonInfo = json_decode($roomJsonInfo, TRUE);
$ChildWithOutBed = 0;
$ChildWithOutBed = (int) $child;
if (count($res) > 0) {
foreach ($res as $row) {
$longJsonDecode = $row['LongJsonInfo'];
$longJson = json_decode($longJsonDecode, TRUE);
$checkPlan = array();
foreach ($longJson['PriceAdditional'] as $priceVal) {
if ($priceVal['CreateDate'] >= $checkInDate && $priceVal['CreateDate'] < $checkOutDate) {
$checkPlan['category']['Name'] = $priceVal['Title'];
$checkPlan['category']['HotelName'] = $longJson['Title'];
$checkPlan['category']['Stars'] = $longJson['Stars'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'][] = $priceVal['CreateDate'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Title'] = $priceVal['MPTitle'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['ETitle'] = $priceVal['Title'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MPTypeId'] = $priceVal['MPType'];
$getPriceF = 0;
foreach ($roomJsonInfo as $paxKey => $paxVal) {
$adults = $paxVal['Adult'];
$child = $paxVal['Child'];
$infent = $paxVal['infent'];
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$Adult = (int) $adults;
$ChildWithOutBed = 0;
$ChildWithOutBed = (int) $child;
switch ($totalAdult) {
case 1 : {
if ((int) $priceVal['NSOC'] > 0) {
$getPrice = (float) $priceVal['NSOC'];
} else {
$getPrice = (float) $priceVal['NDOC'];
}
break;
}
case 2 : {
if ($Adult == 2) {
$getPrice = (float) $priceVal['NDOC'];
} else if ($ChildWithOutBed == 2) {
$getPrice = (float) $priceVal['NDOC'];
} else if (($Adult + $ChildWithOutBed) == 2) {
$getPrice = (float) $priceVal['NDOC'];
} else {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
}
break;
}
case 3 : {
if ($Adult == 3) {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'];
} else if ($ChildWithOutBed == 3) {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'];
} else {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEBC'];
}
break;
}
case 4 : {
if ($ChildWithOutBed + $Adult == 4) {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['NEWOBC'];
} else {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['NEBC'];
}
break;
}
default : {
$getPrice = (float) $priceVal['NDOC'] + (float) $priceVal['NEWOBC'] + (float) $priceVal['EWOBC'];
break;
}
}
$getPriceF = $getPriceF + $getPrice;
}
$exchangerate = 1;
if (isset($priceVal['Currency']) && $priceVal['Currency'] != 1) {
$exchangerate = $objHelperGeneral->currencyExchangeRate($priceVal['Currency'], 1, 0);
}
$getPriceF = $getPriceF * $exchangerate;
//echo "<pre>";print_r($exchangerate);die;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'] = Catabatic_Helper::calculateMarkup($getPriceF);
//echo "<pre>";print_r($getPrice);die;
}
}
$datetime1 = new DateTime($checkInDate);
$datetime2 = new DateTime($checkOutDate);
$interval = $datetime1->diff($datetime2);
$totalNight = (int) $interval->format('%a');
$countval = array();
$finalArray = array();
$Price = 0;
foreach ($checkPlan['category'] as $checkhotelkey => $checkHotelPrice) {
foreach ($checkHotelPrice as $SUBkey => $SUBVal) {
$i = 0;
foreach ($SUBVal as $keyItem => $checkRNd) {
$countval[$i] = count($checkRNd["CreateDate"]);
if ($countval[$i] == $totalNight) {
$finalArray['category']['Name'] = $checkHotelPrice['Title'];
$finalArray['category']['HotelName'] = $longJson['Title'];
$finalArray['category']['Stars'] = $longJson['Stars'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['CreateDate'][] = $checkRNd['CreateDate'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Title'] = $checkRNd['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ETitle'] = $checkRNd['ETitle'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['EType'] = $checkRNd['EType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MPTypeId'] = $checkRNd['MPTypeId'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['roomInfo'] = $checkRNd['roomInfo'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Price'] = $checkRNd['Price'];
if ($Price == 0 || $Price > $checkRNd['Price']) {
$Price = $checkRNd['Price'];
}
}
$i++;
}
}
}
// echo "<pre>";print_r($finalArray);die;
if (!empty($finalArray)) {
$response[] = array(
'destIndex' => $destIndex,
'refId' => $refId,
'GTXPkgId' => $row['GTXPkgId'],
'PkgSysId' => $row['PkgSysId'],
'DestinationId' => $row['DestinationsId'],
'Destinations' => $row['Destinations'],
'Title' => $longJson['Title'],
'Details' => $longJson['Details'],
'adults' => $adults,
'child' => $child,
'infent' => $infent,
'Stars' => $longJson['Stars'],
'ThumnailImg' => $longJson['ThumnailImg'],
'Images' => $longJson['Images'],
'DetailImg' => $longJson['DetailImg'],
'PropertyType' => $longJson['PropertyType'],
'CheckinTime' => $longJson['CheckinTime'],
'Address' => $longJson['Address'],
'latitude' => $longJson['latitude'],
'longitude' => $longJson['longitude'],
'CitySysId' => $longJson['CitySysId'],
'ContSysId' => $longJson['ContSysId'],
'PinCode' => $longJson['PinCode'],
'Location' => $longJson['Location'],
'checkPlan' => base64_encode(json_encode($finalArray)),
'AccoAminitiesMask' => $longJson['AccoAminitiesMask'],
'IsFeatured' => $row['IsFeatured'],
'totalNight' => $totalNight,
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'Price' => $Price,
);
}
}
}
return $response;
}
function getAllTransportRouteTransportSubType($StartSysId = 0, $endCityID = 0, $TransportSubType = '') {
$where = '1=1';
if ($TransportSubType == 10) {
if ($StartSysId > 0) {
$sqlCity = "SELECT StateSysId FROM `tb_master_geo_city` where CityId = '$StartSysId' and IsMarkForDel = '0' and IsActive = '1' ORDER BY `StateSysId` DESC";
$resCity = $this->db->query($sqlCity)->fetchAll();
$StateSysId = (int) $resCity[0]['StateSysId'];
$where .= ' AND StateSysId = ' . $StateSysId . ' AND TransportSubType = 10';
}
} else {
if ($StartSysId > 0 && $endCityID > 0) {
$where .= ' AND StartCitySysId = ' . $StartSysId . ' AND DestinationCitySysId = ' . $endCityID;
}
if (!empty($TransportSubType)) {
if ($TransportSubType == 1) {
$where .= ' AND TransportSubType = 1 ';
} else if ($TransportSubType == 3) {
$where .= ' AND TransportSubType = 3 ';
} else {
$where .= ' AND TransportSubType != 1';
}
}
}
$sql = "SELECT DISTINCT TransportSubType FROM `tb_transport_route` where $where and IsMarkForDel = '0' ORDER BY `TransportSubType` DESC";
$res = $this->db->query($sql)->fetchAll();
$TransportSubTypeArr = array();
foreach ($res as $key => $val) {
$TransportSubTypeArr[] = $val['TransportSubType'];
}
$TransportSubTypeArr = array_unique(explode(',', implode(',', $TransportSubTypeArr)));
return $TransportSubTypeArr;
}
public function checkAvailableTransportCategory($StartSysId, $endCityID) {
$select = $this->db->select()->from(array("t1" => "tb_transport_route"));
$select->where("t1.StartCitySysId = ?", $StartSysId);
// $select->where("t1.EndCitySysId = ?", $endCityID);
$select->where("t1.DestinationCitySysId = ?", $endCityID);
$select->where("t1.IsActive = ?", 1);
$select->where("t1.IsMarkForDel = '0'");
//echo $select;die;
$finalArray = $this->db->fetchAll($select);
return $finalArray;
//$select->order("t2.StartDate ASC");
}
function getAllItinerayTransportRouteTransportSubType($StartCityId = 0, $endCityIDs = '') {
$where = '1=1';
if ($StartCityId > 0 && !empty($endCityIDs)) {
$where .= ' AND StartCitySysId = ' . $StartCityId . ' AND DestinationCitySysId IN(' . $endCityIDs . ')';
}
$where .= ' AND TransportSubType = 1 ';
$sql = "SELECT * FROM `tb_transport_route` where $where and IsMarkForDel = '0' ORDER BY `TransportSubType` DESC";
$res = $this->db->query($sql)->fetchAll();
return $res;
}
public function getHotelByPackageIdNew($PkgSysId, $table, $checkInDate, $checkOutDate, $adults, $child, $infent, $refId, $destIndex, $roomJsonInfo, $filterType = NULL, $hotelRoomMealArray = array()) {
$objHelperGeneral = Zend_Controller_Action_HelperBroker::getStaticHelper('General');
// $AgencyMarkupData = $objHelperGeneral->getAgencyMarkupData(2);
// $MarkUpType = $AgencyMarkupData['MarkUpType'];
// $MarkUp = $AgencyMarkupData['MarkUp'];
// $markupDetailsArray = array('MarkType'=>$MarkUpType,'MarkValue'=>$MarkUp);
$PkgSysId = trim($PkgSysId);
//$destinationId = 6000;
$order = 'StarRating ASC';
if ($filterType == 1) {
$order = 'StarRating ASC';
} else if ($filterType == 2) {
$order = 'StarRating DESC';
}
$response = array();
$sql = "select * FROM $table A WHERE PkgSysId = $PkgSysId AND ItemType = 2 AND IsActive = '1' and IsMarkForDel = '0' order by IsFeatured DESC, $order";
$res = $this->db->query($sql)->fetchAll();
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$AllAdult = (int) $adults;
$AllChild = (int) $child;
$roomJsonInfo = json_decode($roomJsonInfo, TRUE);
$rooms = count($roomJsonInfo);
$ChildWithOutBed = 0;
$ChildWithOutBed = (int) $child;
$currencyTypeArray = $objHelperGeneral->getCurrencyData();
$datetime1 = new DateTime($checkInDate);
$datetime2 = new DateTime($checkOutDate);
$interval = $datetime1->diff($datetime2);
$totalNight = (int) $interval->format('%a');
if (count($res) > 0) {
foreach ($res as $row) {
$longJsonDecode = $row['LongJsonInfo'];
$longJson = json_decode($longJsonDecode, TRUE);
$checkPlan = array();
$RoomInfo = $roomJsonInfoArr = $roomJsonInfoArrfinal = array();
$RoomImages = $longJson['RoomImages'];
// echo "<pre>";print_r($longJson['RoomInfo']);
$calculateRoomJsonPax = $this->calculateRoomJsonPax($roomJsonInfo, $AllAdult, $AllChild, $longJson['RoomInfo'], $RoomImages, $hotelRoomMealArray);
$RoomInfo = $calculateRoomJsonPax['RoomInfo'];
$roomJsonInfoArrfinal = $calculateRoomJsonPax['roomJsonInfoArrfinal'];
$Currency = $longJson['PriceAdditional'][0]['Currency'];
$CurrencyType = $currencyTypeArray[$Currency];
$ExtraServices = (isset($longJson['ExtraServices'])) ? $longJson['ExtraServices'] : array();
$TransferData = $OtherChargesData = array();
foreach($ExtraServices as $key => $value){
if($value['ServiceType'] == 1){
$TransferData[] = $value;
}else{
$OtherChargesData[] = $value;
}
}
$MinStayNights = (isset($longJson['MinStayNights'])) ? (int)$longJson['MinStayNights'] : 0;
if($totalNight<$MinStayNights){
$longJson['PriceAdditional'] = array();
}
foreach ($longJson['PriceAdditional'] as $priceVal) {
$checkPlan['category']['Name'] = $priceVal['Title'];
$checkPlan['category']['HotelName'] = $longJson['Title'];
$checkPlan['category']['Stars'] = $longJson['Stars'];
if($row['AgencySysId'] == '37338' || $row['AgencySysId'] == '14114'){
if($priceVal['MPTitle'] == 'EP'){
$priceVal['MPTitle'] = 'RO';
}
if($priceVal['MPTitle'] == 'CP'){
$priceVal['MPTitle'] = 'BB';
}
if($priceVal['MPTitle'] == 'AP'){
$priceVal['MPTitle'] = 'FB';
}
if($priceVal['MPTitle'] == 'MAP'){
$priceVal['MPTitle'] = 'HB';
}
}
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Title'] = $priceVal['MPTitle'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['ETitle'] = $priceVal['Title'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['EType'] = $priceVal['EType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MPTypeId'] = $priceVal['MPType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['roomInfo'] = $RoomInfo[$priceVal['EType']];
if ($priceVal['CreateDate'] >= $checkInDate && $priceVal['CreateDate'] < $checkOutDate) {
if (!isset($checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate']) || !in_array($priceVal['CreateDate'], $checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'])) {
$getPriceF = 0;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'][] = $priceVal['CreateDate'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['B2BMarkup'] = $priceVal['B2BMarkup'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MarkType'] = $priceVal['MarkType'];
$roomJsonInfoArrfinalArr = array();
if (!empty($hotelRoomMealArray)) {
$roomJsonInfoArrfinalArr[] = $roomJsonInfoArrfinal[$priceVal['EType']][$priceVal['MPType']];
} else {
$roomJsonInfoArrfinalArr = $roomJsonInfoArrfinal[$priceVal['EType']];
}
$roomMinAdult = $RoomInfo[$priceVal['EType']]['Adult'];
$roomMaxAdult = $RoomInfo[$priceVal['EType']]['MAdult'];
$roomMinChild = $RoomInfo[$priceVal['EType']]['Child'];
$roomMaxChild = $RoomInfo[$priceVal['EType']]['MChild'];
$roomMaxGuest = $RoomInfo[$priceVal['EType']]['TGuest'];
foreach ($roomJsonInfoArrfinalArr as $paxKey1 => $paxVal1) {
foreach ($paxVal1 as $paxKey => $paxVal) {
$adults = $paxVal['Adult'];
$child = $paxVal['Child'];
$infent = $paxVal['infent'];
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$totalRoomPax = (int) $adults + (int) $child;
$checkR = 0;
if($totalRoomPax > $roomMaxGuest || $adults > $roomMaxAdult || $child > $roomMaxChild ){
$checkR = 1;
}
$adultPrice = $adultPriceExtra = $childPrice = $childPriceExtra = 0;
$childAgeArray = array();
for ($ic = 1; $ic <= $child; $ic++) {
$childAge = $paxVal['ChildAge_' . $ic];
$childAgeArray[] = $childAge;
}
sort($childAgeArray);
if($totalRoomPax == 1){
$adultPrice = (float) $priceVal['NSOC'];
}else if($totalRoomPax>1){
$adultPrice = (float) $priceVal['NDOC'];
$adultsExtra = (int)($adults - $roomMinAdult);
if($adultsExtra<0){$adultsExtra = 0;}
$childExtra = (int)($totalRoomPax - $roomMinAdult-$adultsExtra);
if($adultsExtra>0){
$adultPriceExtra = (float) $priceVal['NEBC']*$adultsExtra;
}
if($childExtra>0){
$ChildWithBed = $ChildWithOutBed = 0;
for($che = 0; $che < $childExtra; $che++){
$childAge = (int)$childAgeArray[$che];
if ($childAge >= $priceVal['FCAT']) {
$ChildWithBed++;
}else{
$ChildWithOutBed++;
}
}
$childPrice = (float) $priceVal['NEWOBC']*$ChildWithOutBed;
$childPriceExtra = (float) $priceVal['NEWBC']*$ChildWithBed;
}
}
$getPrice = $adultPrice + $adultPriceExtra + $childPrice + $childPriceExtra;
//echo " P:".$getPrice;die;
$exchangerate = 1;
if (isset($priceVal['Currency']) && $priceVal['Currency'] != 1) {
$exchangerate = $objHelperGeneral->currencyExchangeRate($priceVal['Currency'], $this->TrxCurrency, 0);
}
$getPriceF = $getPrice * $exchangerate;
if($getPriceF>0){
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'][] = $getPriceF;
}
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['checkR'][] = $checkR;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['adults'][] = $adults;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['child'][] = $child;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['SSID'] = $priceVal['SSID'];
}
}
}
}
}
$countval = array();
$finalArray = array();
$Price = 0;
$Markup = 0;
if (!empty($hotelRoomMealArray)) {
foreach ($hotelRoomMealArray as $rmkey => $rmvalue) {
$SUBkey = $rmvalue['RoomType'];
$keyItem = $rmvalue['MealPlan'];
$ExtraServiceSysId = $rmvalue['ExtraServiceSysId'];
$checkRNd = (isset($checkPlan['category']['SUB'][$SUBkey][$keyItem])) ? $checkPlan['category']['SUB'][$SUBkey][$keyItem] : array();
// if (count($checkRNd["CreateDate"]) == $totalNight && count($checkRNd["Price"]) == $totalNight) {
if (count($checkRNd["CreateDate"]) == $totalNight) {
$finalArray['category']['SUB'][$SUBkey][$keyItem]['CreateDate'][] = $checkRNd['CreateDate'];
$finalArray['category']['Name'] = $longJson['Title'];
$finalArray['category']['HotelName'] = $longJson['Title'];
$finalArray['category']['Stars'] = $longJson['Stars'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Title'] = $checkRNd['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ETitle'] = $checkRNd['ETitle'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['EType'] = $checkRNd['EType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MPTypeId'] = $checkRNd['MPTypeId'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['roomInfo'] = $checkRNd['roomInfo'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['B2BMarkup'] = $checkRNd['B2BMarkup'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MarkType'] = $checkRNd['MarkType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['SSID'] = $checkRNd['SSID'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ExtraServiceSysId'] = $ExtraServiceSysId;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['adults'][] = (array_sum($checkRNd['adults'])/count($checkRNd['Price']))*$totalNight ;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['child'][] = (array_sum($checkRNd['child'])/count($checkRNd['Price']))*$totalNight ;
$mPrice = (array_sum($checkRNd['Price'])/count($checkRNd['Price'])) * $totalNight;
$mmarkupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$mmarkupValue = (float) ($mPrice * ($checkRNd['B2BMarkup']) / 100);
} else {
$mmarkupValue = $checkRNd['B2BMarkup'];
}
}
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Price'][] = $mPrice;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Markup'][] = $mmarkupValue;
$Price = $Price + $mPrice;
$Markup = $Markup + $mmarkupValue;
}
}
} else {
foreach ($checkPlan['category'] as $checkhotelkey => $checkHotelPrice) {
foreach ($checkHotelPrice as $SUBkey => $SUBVal) {
$i = 0;
foreach ($SUBVal as $keyItem => $checkRNd) {
$countval[$i] = count($checkRNd["CreateDate"]);
$checkR = array_sum($checkRNd['checkR']);
$mPrice = 0;
//if(count($checkRNd['Price']) == $totalNight){
$mPrice = array_sum($checkRNd['Price']) / $totalNight;
//}
if($mPrice>0 && $checkR == 0){
if ($countval[$i] == $totalNight) {
$finalArray['category']['SUB'][$SUBkey][$keyItem]['CreateDate'][] = $checkRNd['CreateDate'];
}
$finalArray['category']['Name'] = $checkHotelPrice['Title'];
$finalArray['category']['HotelName'] = $longJson['Title'];
$finalArray['category']['Stars'] = $longJson['Stars'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Title'] = $checkRNd['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ETitle'] = $checkRNd['ETitle'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['EType'] = $checkRNd['EType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MPTypeId'] = $checkRNd['MPTypeId'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['roomInfo'] = $checkRNd['roomInfo'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['B2BMarkup'] = $checkRNd['B2BMarkup'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MarkType'] = $checkRNd['MarkType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['SSID'] = $checkRNd['SSID'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['adults'][] = (array_sum($checkRNd['adults'])/$totalNight);
$finalArray['category']['SUB'][$SUBkey][$keyItem]['child'][] = (array_sum($checkRNd['child'])/$totalNight);
$mmarkupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$mmarkupValue = (float) ($mPrice * ($checkRNd['B2BMarkup']) / 100);
} else {
$mmarkupValue = $checkRNd['B2BMarkup'];
}
}
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Price'][] = $mPrice;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Markup'][] = $mmarkupValue;
if ($Price == 0 || $Price > $checkRNd['Price']) {
$Price = array_sum($checkRNd['Price']) / $totalNight;
$markupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$markupValue = (float) ($Price * ($checkRNd['B2BMarkup']) / 100);
} else {
$markupValue = $checkRNd['B2BMarkup'];
}
}
$Price = $Price + $markupValue;
$Markup = $Markup + $markupValue;
}
}
$i++;
}
}
}
}
//echo "<pre>";print_r($finalArray);die;
if (!empty($finalArray)) {
$response[] = array(
'destIndex' => $destIndex,
'refId' => $refId,
'GTXPkgId' => $row['GTXPkgId'],
'PkgSysId' => $row['PkgSysId'],
'DestinationId' => $row['DestinationsId'],
'Destinations' => $row['Destinations'],
'CountryIds' => $row['CountryIds'],
'Countries' => $row['Countries'],
'Title' => $longJson['Title'],
'Details' => $longJson['Details'],
'adults' => $AllAdult,
'child' => $AllChild,
'infent' => $infent,
'Stars' => $longJson['Stars'],
'ThumnailImg' => $longJson['ThumnailImg'],
'Images' => $longJson['Images'],
'DetailImg' => $longJson['DetailImg'],
'PropertyType' => $longJson['PropertyType'],
'CheckinTime' => $longJson['CheckinTime'],
'CheckOutTime' => $longJson['CheckOutTime'],
'Address' => $longJson['Address'],
'latitude' => $longJson['latitude'],
'longitude' => $longJson['longitude'],
'CitySysId' => $longJson['CitySysId'],
'ContSysId' => $longJson['ContSysId'],
'PinCode' => $longJson['PinCode'],
'Location' => $longJson['Location'],
'checkPlan' => base64_encode(json_encode($finalArray)),
'AccoAminitiesMask' => $longJson['AccoAminitiesMask'],
'SplitStayNights' => $longJson['SplitStayNights'],
'IsFeatured' => $row['IsFeatured'],
'totalNight' => $totalNight,
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'Price' => $Price,
'Markup' => $Markup,
'CurrencyType' => $CurrencyType,
'roomJsonInfo' => $roomJsonInfoArrfinal,
'roomJsonInfoNew' => $calculateRoomJsonPax['roomJsonInfo'],
'RoomInfo' => $RoomInfo,
'TransferData' => $TransferData,
'OtherChargesData' => $OtherChargesData,
);
} else {
$response[] = array(
'destIndex' => 1,
'refId' => 0,
'GTXPkgId' => $row['GTXPkgId'],
'PkgSysId' => $row['PkgSysId'],
'DestinationId' => $row['DestinationsId'],
'Destinations' => $row['Destinations'],
'CountryIds' => $row['CountryIds'],
'Countries' => $row['Countries'],
'Title' => $longJson['Title'],
'Details' => $longJson['Details'],
'adults' => $AllAdult,
'child' => $AllChild,
'infent' => $infent,
'Stars' => $longJson['Stars'],
'ThumnailImg' => $longJson['ThumnailImg'],
'Images' => $longJson['Images'],
'DetailImg' => $longJson['DetailImg'],
'PropertyType' => $longJson['PropertyType'],
'CheckinTime' => $longJson['CheckinTime'],
'CheckOutTime' => $longJson['CheckOutTime'],
'Address' => $longJson['Address'],
'latitude' => $longJson['latitude'],
'longitude' => $longJson['longitude'],
'CitySysId' => $longJson['CitySysId'],
'ContSysId' => $longJson['ContSysId'],
'PinCode' => $longJson['PinCode'],
'Location' => $longJson['Location'],
'checkPlan' => array(),
'AccoAminitiesMask' => $longJson['AccoAminitiesMask'],
'SplitStayNights' => $longJson['SplitStayNights'],
'IsFeatured' => $row['IsFeatured'],
'totalNight' => $totalNight,
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'Price' => $Price,
'CurrencyType' => $CurrencyType,
'roomJsonInfo' => $roomJsonInfoArrfinal,
'roomJsonInfoNew' => $calculateRoomJsonPax['roomJsonInfo'],
);
}
}
}
return $response;
}
public function getHotelByPackageIdNewSplit($PkgSysId, $table, $checkInDate, $checkOutDate, $adults, $child, $infent, $refId, $destIndex, $roomJsonInfo, $filterType = NULL, $hotelRoomMealArray = array()) {
$objHelperGeneral = Zend_Controller_Action_HelperBroker::getStaticHelper('General');
// $AgencyMarkupData = $objHelperGeneral->getAgencyMarkupData(2);
// $MarkUpType = $AgencyMarkupData['MarkUpType'];
// $MarkUp = $AgencyMarkupData['MarkUp'];
// $markupDetailsArray = array('MarkType'=>$MarkUpType,'MarkValue'=>$MarkUp);
$PkgSysId = trim($PkgSysId);
//$destinationId = 6000;
$order = 'StarRating ASC';
if ($filterType == 1) {
$order = 'StarRating ASC';
} else if ($filterType == 2) {
$order = 'StarRating DESC';
}
$response = array();
$sql = "select * FROM $table A WHERE PkgSysId = $PkgSysId AND ItemType = 2 AND IsActive = '1' and IsMarkForDel = '0' order by IsFeatured DESC, $order";
$res = $this->db->query($sql)->fetchAll();
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$AllAdult = (int) $adults;
$AllChild = (int) $child;
$roomJsonInfo = json_decode($roomJsonInfo, TRUE);
$rooms = count($roomJsonInfo);
$ChildWithOutBed = 0;
$ChildWithOutBed = (int) $child;
$currencyTypeArray = $objHelperGeneral->getCurrencyData();
$datetime1 = new DateTime($checkInDate);
$datetime2 = new DateTime($checkOutDate);
$interval = $datetime1->diff($datetime2);
$totalNight = (int) $interval->format('%a');
if (count($res) > 0) {
foreach ($res as $row) {
$longJsonDecode = $row['LongJsonInfo'];
$longJson = json_decode($longJsonDecode, TRUE);
$checkPlan = array();
$RoomInfo = $roomJsonInfoArr = $roomJsonInfoArrfinal = array();
$RoomImages = $longJson['RoomImages'];
$calculateRoomJsonPax = $this->calculateRoomJsonPax($roomJsonInfo, $AllAdult, $AllChild, $longJson['RoomInfo'], $RoomImages, $hotelRoomMealArray);
$RoomInfo = $calculateRoomJsonPax['RoomInfo'];
$roomJsonInfoArrfinal = $calculateRoomJsonPax['roomJsonInfoArrfinal'];
$Currency = $longJson['PriceAdditional'][0]['Currency'];
$CurrencyType = $currencyTypeArray[$Currency];
$ExtraServices = (isset($longJson['ExtraServices'])) ? $longJson['ExtraServices'] : array();
$TransferData = $OtherChargesData = array();
foreach($ExtraServices as $key => $value){
if($value['ServiceType'] == 1){
$TransferData[] = $value;
}else{
$OtherChargesData[] = $value;
}
}
$MinStayNights = (isset($longJson['MinStayNights'])) ? (int)$longJson['MinStayNights'] : 0;
// if($totalNight<$MinStayNights){
// $longJson['PriceAdditional'] = array();
// }
// echo "<pre>";print_r($TransferData);die;
foreach ($longJson['PriceAdditional'] as $priceVal) {
$checkPlan['category']['Name'] = $priceVal['Title'];
$checkPlan['category']['HotelName'] = $longJson['Title'];
$checkPlan['category']['Stars'] = $longJson['Stars'];
if($row['AgencySysId'] == '37338' || $row['AgencySysId'] == '14114'){
if($priceVal['MPTitle'] == 'EP'){
$priceVal['MPTitle'] = 'RO';
}
if($priceVal['MPTitle'] == 'CP'){
$priceVal['MPTitle'] = 'BB';
}
if($priceVal['MPTitle'] == 'AP'){
$priceVal['MPTitle'] = 'FB';
}
if($priceVal['MPTitle'] == 'MAP'){
$priceVal['MPTitle'] = 'HB';
}
}
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Title'] = $priceVal['MPTitle'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['ETitle'] = $priceVal['Title'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['EType'] = $priceVal['EType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MPTypeId'] = $priceVal['MPType'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['roomInfo'] = $RoomInfo[$priceVal['EType']];
if ($priceVal['CreateDate'] >= $checkInDate && $priceVal['CreateDate'] < $checkOutDate) {
if (!isset($checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate']) || !in_array($priceVal['CreateDate'], $checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'])) {
$getPriceF = 0;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['CreateDate'][] = $priceVal['CreateDate'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['B2BMarkup'] = $priceVal['B2BMarkup'];
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['MarkType'] = $priceVal['MarkType'];
$roomJsonInfoArrfinalArr = array();
if (!empty($hotelRoomMealArray)) {
$roomJsonInfoArrfinalArr[] = $roomJsonInfoArrfinal[$priceVal['EType']][$priceVal['MPType']];
} else {
$roomJsonInfoArrfinalArr = $roomJsonInfoArrfinal[$priceVal['EType']];
}
$roomMinAdult = $RoomInfo[$priceVal['EType']]['Adult'];
$roomMaxAdult = $RoomInfo[$priceVal['EType']]['MAdult'];
$roomMinChild = $RoomInfo[$priceVal['EType']]['Child'];
$roomMaxChild = $RoomInfo[$priceVal['EType']]['MChild'];
$roomMaxGuest = $RoomInfo[$priceVal['EType']]['TGuest'];
foreach ($roomJsonInfoArrfinalArr as $paxKey1 => $paxVal1) {
foreach ($paxVal1 as $paxKey => $paxVal) {
$adults = $paxVal['Adult'];
$child = $paxVal['Child'];
$infent = $paxVal['infent'];
$totalAdult = (int) $adults + (int) $child + (int) $infent;
$totalRoomPax = (int) $adults + (int) $child;
$checkR = 0;
if($totalRoomPax > $roomMaxGuest || $adults > $roomMaxAdult || $child > $roomMaxChild ){
$checkR = 1;
}
$adultPrice = $adultPriceExtra = $childPrice = $childPriceExtra = 0;
$childAgeArray = array();
for ($ic = 1; $ic <= $child; $ic++) {
$childAge = $paxVal['ChildAge_' . $ic];
$childAgeArray[] = $childAge;
}
sort($childAgeArray);
if($totalRoomPax == 1){
$adultPrice = (float) $priceVal['NSOC'];
}else if($totalRoomPax>1){
$adultPrice = (float) $priceVal['NDOC'];
$adultsExtra = (int)($adults - $roomMinAdult);
if($adultsExtra<0){$adultsExtra = 0;}
$childExtra = (int)($totalRoomPax - $roomMinAdult-$adultsExtra);
if($adultsExtra>0){
$adultPriceExtra = (float) $priceVal['NEBC']*$adultsExtra;
}
if($childExtra>0){
$ChildWithBed = $ChildWithOutBed = 0;
for($che = 0; $che < $childExtra; $che++){
$childAge = (int)$childAgeArray[$che];
if ($childAge >= $priceVal['FCAT']) {
$ChildWithBed++;
}else{
$ChildWithOutBed++;
}
}
$childPrice = (float) $priceVal['NEWOBC']*$ChildWithOutBed;
$childPriceExtra = (float) $priceVal['NEWBC']*$ChildWithBed;
}
}
$getPrice = $adultPrice + $adultPriceExtra + $childPrice + $childPriceExtra;
//echo " P:".$getPrice;die;
$exchangerate = 1;
if (isset($priceVal['Currency']) && $priceVal['Currency'] != 1) {
$exchangerate = $objHelperGeneral->currencyExchangeRate($priceVal['Currency'], $this->TrxCurrency, 0);
}
$getPriceF = $getPrice * $exchangerate;
if($getPriceF>0){
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['Price'][] = $getPriceF;
}
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['checkR'][] = $checkR;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['adults'][] = $adults;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['child'][] = $child;
$checkPlan['category']['SUB'][$priceVal['EType']][$priceVal['MPType']]['SSID'] = $priceVal['SSID'];
}
}
}
}
}
$countval = array();
$finalArray = array();
$Price = 0;
$Markup = 0;
if (!empty($hotelRoomMealArray)) {
foreach ($hotelRoomMealArray as $rmkey => $rmvalue) {
$SUBkey = $rmvalue['RoomType'];
$keyItem = $rmvalue['MealPlan'];
$ExtraServiceSysId = $rmvalue['ExtraServiceSysId'];
$checkRNd = (isset($checkPlan['category']['SUB'][$SUBkey][$keyItem])) ? $checkPlan['category']['SUB'][$SUBkey][$keyItem] : array();
// if (count($checkRNd["CreateDate"]) == $totalNight && count($checkRNd["Price"]) == $totalNight) {
if (count($checkRNd["CreateDate"]) == $totalNight) {
$finalArray['category']['SUB'][$SUBkey][$keyItem]['CreateDate'][] = $checkRNd['CreateDate'];
$finalArray['category']['Name'] = $longJson['Title'];
$finalArray['category']['HotelName'] = $longJson['Title'];
$finalArray['category']['Stars'] = $longJson['Stars'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Title'] = $checkRNd['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ETitle'] = $checkRNd['ETitle'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['EType'] = $checkRNd['EType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MPTypeId'] = $checkRNd['MPTypeId'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['roomInfo'] = $checkRNd['roomInfo'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['B2BMarkup'] = $checkRNd['B2BMarkup'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MarkType'] = $checkRNd['MarkType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['SSID'] = $checkRNd['SSID'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ExtraServiceSysId'] = $ExtraServiceSysId;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['adults'][] = (array_sum($checkRNd['adults'])/count($checkRNd['Price']))*$totalNight ;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['child'][] = (array_sum($checkRNd['child'])/count($checkRNd['Price']))*$totalNight ;
$mPrice = (array_sum($checkRNd['Price'])/count($checkRNd['Price'])) * $totalNight;
$mmarkupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$mmarkupValue = (float) ($mPrice * ($checkRNd['B2BMarkup']) / 100);
} else {
$mmarkupValue = $checkRNd['B2BMarkup'];
}
}
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Price'][] = $mPrice;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Markup'][] = $mmarkupValue;
$Price = $Price + $mPrice;
$Markup = $Markup + $mmarkupValue;
}
}
} else {
foreach ($checkPlan['category'] as $checkhotelkey => $checkHotelPrice) {
foreach ($checkHotelPrice as $SUBkey => $SUBVal) {
$i = 0;
foreach ($SUBVal as $keyItem => $checkRNd) {
$countval[$i] = count($checkRNd["CreateDate"]);
$checkR = array_sum($checkRNd['checkR']);
$mPrice = 0;
// if(count($checkRNd['Price']) == $totalNight){
$mPrice = array_sum($checkRNd['Price']) / $totalNight;
// }
if($mPrice>0 && $checkR == 0){
if ($countval[$i] == $totalNight) {
$finalArray['category']['SUB'][$SUBkey][$keyItem]['CreateDate'][] = $checkRNd['CreateDate'];
}
$finalArray['category']['Name'] = $checkHotelPrice['Title'];
$finalArray['category']['HotelName'] = $longJson['Title'];
$finalArray['category']['Stars'] = $longJson['Stars'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Title'] = $checkRNd['Title'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['ETitle'] = $checkRNd['ETitle'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['EType'] = $checkRNd['EType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MPTypeId'] = $checkRNd['MPTypeId'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['roomInfo'] = $checkRNd['roomInfo'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['B2BMarkup'] = $checkRNd['B2BMarkup'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['MarkType'] = $checkRNd['MarkType'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['SSID'] = $checkRNd['SSID'];
$finalArray['category']['SUB'][$SUBkey][$keyItem]['adults'][] = (array_sum($checkRNd['adults'])/$totalNight);
$finalArray['category']['SUB'][$SUBkey][$keyItem]['child'][] = (array_sum($checkRNd['child'])/$totalNight);
$mmarkupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$mmarkupValue = (float) ($mPrice * ($checkRNd['B2BMarkup']) / 100);
} else {
$mmarkupValue = $checkRNd['B2BMarkup'];
}
}
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Price'][] = $mPrice;
$finalArray['category']['SUB'][$SUBkey][$keyItem]['Markup'][] = $mmarkupValue;
if ($Price == 0 || $Price > $checkRNd['Price']) {
$Price = array_sum($checkRNd['Price']) / $totalNight;
$markupValue = 0;
if ((float) $checkRNd['B2BMarkup'] > 0) {
if ($checkRNd['MarkType'] == 1) {
$markupValue = (float) ($Price * ($checkRNd['B2BMarkup']) / 100);
} else {
$markupValue = $checkRNd['B2BMarkup'];
}
}
$Price = $Price + $markupValue;
$Markup = $Markup + $markupValue;
}
}
$i++;
}
}
}
}
//echo "<pre>";print_r($finalArray);die;
if (!empty($finalArray)) {
$response[] = array(
'destIndex' => $destIndex,
'refId' => $refId,
'GTXPkgId' => $row['GTXPkgId'],
'PkgSysId' => $row['PkgSysId'],
'DestinationId' => $row['DestinationsId'],
'Destinations' => $row['Destinations'],
'CountryIds' => $row['CountryIds'],
'Countries' => $row['Countries'],
'Title' => $longJson['Title'],
'Details' => $longJson['Details'],
'adults' => $AllAdult,
'child' => $AllChild,
'infent' => $infent,
'Stars' => $longJson['Stars'],
'ThumnailImg' => $longJson['ThumnailImg'],
'Images' => $longJson['Images'],
'DetailImg' => $longJson['DetailImg'],
'PropertyType' => $longJson['PropertyType'],
'CheckinTime' => $longJson['CheckinTime'],
'CheckOutTime' => $longJson['CheckOutTime'],
'Address' => $longJson['Address'],
'latitude' => $longJson['latitude'],
'longitude' => $longJson['longitude'],
'CitySysId' => $longJson['CitySysId'],
'ContSysId' => $longJson['ContSysId'],
'PinCode' => $longJson['PinCode'],
'Location' => $longJson['Location'],
'checkPlan' => base64_encode(json_encode($finalArray)),
'AccoAminitiesMask' => $longJson['AccoAminitiesMask'],
'SplitStayNights' => $longJson['SplitStayNights'],
'IsFeatured' => $row['IsFeatured'],
'totalNight' => $totalNight,
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'Price' => $Price,
'Markup' => $Markup,
'CurrencyType' => $CurrencyType,
'roomJsonInfo' => $roomJsonInfoArrfinal,
'roomJsonInfoNew' => $calculateRoomJsonPax['roomJsonInfo'],
'RoomInfo' => $RoomInfo,
'TransferData' => $TransferData,
'OtherChargesData' => $OtherChargesData,
);
} else {
$response[] = array(
'destIndex' => 1,
'refId' => 0,
'GTXPkgId' => $row['GTXPkgId'],
'PkgSysId' => $row['PkgSysId'],
'DestinationId' => $row['DestinationsId'],
'Destinations' => $row['Destinations'],
'CountryIds' => $row['CountryIds'],
'Countries' => $row['Countries'],
'Title' => $longJson['Title'],
'Details' => $longJson['Details'],
'adults' => $AllAdult,
'child' => $AllChild,
'infent' => $infent,
'Stars' => $longJson['Stars'],
'ThumnailImg' => $longJson['ThumnailImg'],
'Images' => $longJson['Images'],
'DetailImg' => $longJson['DetailImg'],
'PropertyType' => $longJson['PropertyType'],
'CheckinTime' => $longJson['CheckinTime'],
'CheckOutTime' => $longJson['CheckOutTime'],
'Address' => $longJson['Address'],
'latitude' => $longJson['latitude'],
'longitude' => $longJson['longitude'],
'CitySysId' => $longJson['CitySysId'],
'ContSysId' => $longJson['ContSysId'],
'PinCode' => $longJson['PinCode'],
'Location' => $longJson['Location'],
'checkPlan' => array(),
'AccoAminitiesMask' => $longJson['AccoAminitiesMask'],
'SplitStayNights' => $longJson['SplitStayNights'],
'IsFeatured' => $row['IsFeatured'],
'totalNight' => $totalNight,
'checkInDate' => $checkInDate,
'checkOutDate' => $checkOutDate,
'Price' => $Price,
'CurrencyType' => $CurrencyType,
'roomJsonInfo' => $roomJsonInfoArrfinal,
'roomJsonInfoNew' => $calculateRoomJsonPax['roomJsonInfo'],
);
}
}
}
return $response;
}
public function calculateRoomJsonPax($roomJsonInfo, $Adult, $Child, $RoomInfo, $RoomImages = array(), $hotelRoomMealArray = array()) {
$RoomInfo1 = $roomJsonInfoArr = $roomJsonInfoArrfinal = $RoomImagesArray = array();
foreach ($RoomImages as $key => $value) {
$RoomImagesArray[$value['ItemSysId']][] = $value['Details'];
}
foreach ($RoomInfo as $RoomInfoVal) {
$searchAdult = $Adult;
$totalCh = $searchChild = $Child;
$searchTotal = $Adult + $Child;
$roomMinAdult = $RoomInfoVal['Adult'];
$roomMaxAdult = $RoomInfoVal['MAdult'];
$roomMinChild = $RoomInfoVal['Child'];
$roomMaxChild = $RoomInfoVal['MChild'];
$roomMaxGuest = $RoomInfoVal['TGuest'];
$RoomType = $RoomInfoVal['RoomType'];
$RoomInfoVal['RoomImage'] = $RoomImagesArray[$RoomInfoVal['ItemSysId']];
$RoomInfo1[$RoomInfoVal['RoomType']] = $RoomInfoVal;
$rooms = count($roomJsonInfo);
$checkRoomAvailability = 0;
$roomJsonInfoNew = $roomJsonInfoRM = array();
$IM1 = 0;
foreach ($roomJsonInfo as $key => $val) {
$TotalAdultChild = $val['Adult'] + $val['Child'];
// if($val['Adult'] >= $roomMinAdult && $val['Adult'] <= $roomMaxAdult && $val['Child'] >= $roomMinChild && $val['Child'] <= $roomMaxChild && $TotalAdultChild <= $roomMaxGuest){
if ($val['Adult'] <= $roomMaxAdult && $val['Child'] <= $roomMaxChild && $TotalAdultChild <= $roomMaxGuest) {
$checkRoomAvailability++;
}
$val['RoomType'] = (isset($hotelRoomMealArray[$key - 1]['RoomType'])) ? $hotelRoomMealArray[$key - 1]['RoomType'] : $key;
$val['MealPlan'] = (isset($hotelRoomMealArray[$key - 1]['MealPlan'])) ? $hotelRoomMealArray[$key - 1]['MealPlan'] : $key;
$roomJsonInfoNew[$key] = $val;
$roomJsonInfoRM[$val['MealPlan']][] = $val;
$IM1++;
}
if ($checkRoomAvailability == $rooms) {
$roomJsonInfoArr[$RoomType] = $roomJsonInfoRM;
} else {
$roomJsonInfoArr[$RoomType][] = $roomJsonInfo;
// for ($k = 1; $k <= $searchTotal; $k++) {
// $MealPlan = (isset($hotelRoomMealArray[$k-1]['MealPlan']) && !empty($hotelRoomMealArray[$k-1]['MealPlan'])) ? (int)$hotelRoomMealArray[$k-1]['MealPlan'] : $k;
// if ($searchAdult > 0) {
// $roomJsonInfoArr[$RoomType][$MealPlan][] = array('Adult'=>($searchAdult >= $roomMinAdult) ? $roomMinAdult : $searchAdult);
// $searchAdult = $searchAdult - $roomMinAdult;
// }
// if ($searchChild > 0) {
// $roomJsonInfoArr[$RoomType][$MealPlan][] = array('Child'=> ($searchChild >= $roomMinChild) ? $roomMinChild : $searchChild);
// $searchChild = $searchChild - $roomMinChild;
// }
// }
}
}
$roomJsonInfoArrfinal = $roomJsonInfoArr;
$return = array('RoomInfo' => $RoomInfo1, 'roomJsonInfoArrfinal' => $roomJsonInfoArrfinal, 'roomJsonInfo' => $roomJsonInfoNew);
return $return;
}
public function getMarkupHotel() {
if ($this->SecurityKey) {
$dataArray = array(
'PlanType' => 2,
'MasterAgencySysId' => $this->MasterAgencySysId,
'B2BAgencySysIdKey' => $this->SecurityKey,
'B2CAgencySysIdKey' => SECURITYKEY,
);
$model = new Gtxwebservices_Model_Webservices();
$result = $model->getMarkupAndServiceTaxNew($dataArray);
$response = json_decode($result, true);
return $response;
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function getMealsData($city_id,$mealsCategory,$mealsType,$TotalAdult,$TotalChild){
$mealNameArray = array();
if ($this->SecurityKey && !empty($city_id)) {
$mealsTypeUtl = ($mealsType>0) ? '&meal_type='.$mealsType : '';
$mealsCategoryUrl = ($mealsCategory>0) ? '&meal_category='.$mealsCategory : '';
$url = 'https://admin.globaltravelexchange.com/api/v1/restaurant/meals/?city_id='.$city_id.$mealsTypeUtl.$mealsCategoryUrl;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'SECURITYKEY: '.SECURITYKEY
),
));
$mealData = curl_exec($curl);
curl_close($curl);
// $mealData = '[{"id":12,"restaurant_name":"Hera Sweet","is_preferred":true,"address":"Harsh Vihar","city_id":19543,"supplier_name":10390,"restaurant_meals":{"0":{"id":128,"meal_name":"Test 1","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"1":{"id":129,"meal_name":"Test 1","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"2":{"id":130,"meal_name":"Test 1","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"3":{"id":131,"meal_name":"Test 1","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"4":{"id":132,"meal_name":"Test 1","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"5":{"id":133,"meal_name":"Test 1","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"6":{"id":134,"meal_name":"Test 1","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"7":{"id":135,"meal_name":"Test 1","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"8":{"id":136,"meal_name":"Test 1","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"9":{"id":137,"meal_name":"Test 2","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"10":{"id":138,"meal_name":"Test 2","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"11":{"id":139,"meal_name":"Test 2","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"12":{"id":140,"meal_name":"Test 2","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"13":{"id":141,"meal_name":"Test 2","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"14":{"id":142,"meal_name":"Test 2","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"15":{"id":143,"meal_name":"Test 2","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"16":{"id":144,"meal_name":"Test 2","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"17":{"id":145,"meal_name":"Test 2","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"18":{"id":146,"meal_name":"Test 3","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"19":{"id":147,"meal_name":"Test 3","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"20":{"id":148,"meal_name":"Test 3","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"21":{"id":149,"meal_name":"Test 3","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"22":{"id":150,"meal_name":"Test 3","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"23":{"id":151,"meal_name":"Test 3","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"24":{"id":152,"meal_name":"Test 3","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"25":{"id":153,"meal_name":"Test 3","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0},"26":{"id":154,"meal_name":"Test 3","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":4000.0,"child_sales":4000.0}}},{"id":16,"restaurant_name":"Hera Sweet","is_preferred":true,"address":"Jaipur ","city_id":12995,"supplier_name":10390,"restaurant_meals":{"0":{"id":159,"meal_name":"Raj Thali","meal_type":1,"meal_category":1,"symbol":"INR","adult_sales":500.0,"child_sales":500.0},"1":{"id":160,"meal_name":"Raj Thali","meal_type":1,"meal_category":2,"symbol":"INR","adult_sales":500.0,"child_sales":500.0},"2":{"id":161,"meal_name":"Raj Thali","meal_type":1,"meal_category":3,"symbol":"INR","adult_sales":500.0,"child_sales":500.0}}}]';
$mealDataArray = json_decode($mealData,1);
$checkMealId = array();
foreach($mealDataArray as $key => $value){
$restaurant_meals = $value['restaurant_meals'];
$supplier_name = $value['supplier_name'];
foreach($restaurant_meals as $rKey => $rValue){
if($mealsCategory>0 && $mealsType>0){
if(!in_array($rValue['id'],$checkMealId) && $rValue['meal_type'] == $mealsType && $rValue['meal_category'] == $mealsCategory){
$checkMealId[] = $rValue['id'];
$exchangerate = 1;
// if($rValue['CurrencyType'] != $this->TrxCurrency){
// $exchangerate = $this->objHelperGeneral->currencyExchangeRate($rValue['CurrencyType'], $this->TrxCurrency, 0);
// }
$Cost = ($rValue['adult_sales'] * $TotalAdult + $rValue['child_sales'] * $TotalChild) * $exchangerate;
$dataArr = array(
'Price' => $Cost,
);
$COstWM = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getPriceWithMarkupAndServiceTax($dataArr);
$mealNameArray[] = array('id'=>$rValue['id'],'meal_name'=>trim($rValue['meal_name']),'cost'=>$COstWM,'city_id'=>$value['city_id']);
}
}else{
if(!in_array($rValue['id'],$checkMealId)){
$checkMealId[] = $rValue['id'];
$exchangerate = 1;
// if($rValue['CurrencyType'] != $this->TrxCurrency){
// $exchangerate = $this->objHelperGeneral->currencyExchangeRate($rValue['CurrencyType'], $this->TrxCurrency, 0);
// }
$Cost = ($rValue['adult_sales'] * $TotalAdult + $rValue['child_sales'] * $TotalChild) * $exchangerate;
$dataArr = array(
'Price' => $Cost,
);
$COstWM = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->getPriceWithMarkupAndServiceTax($dataArr);
$mealNameArray[$value['city_id']][] = array('id'=>$rValue['id'],'meal_type'=>$rValue['meal_type'],'meal_category'=>$rValue['meal_category'],'meal_name'=>trim($rValue['meal_name']),'cost'=>$Cost,'COstWM'=>$COstWM,'city_id'=>$value['city_id'],'adult_sales'=>$rValue['adult_sales'],'child_sales'=>$rValue['child_sales'],'supplier_name'=>(int)$supplier_name);
}
}
}
}
}
return $mealNameArray;
}
}