| Server IP : 103.234.187.230 / Your IP : 216.73.216.216 Web Server : Apache System : Linux lserver42043-ind.megavelocity.net 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64 User : apache ( 48) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/b2bzend/library/Helper/ |
Upload File : |
<?php
/*
* Catabatic Technology Pvt. Ltd.
* File Name :DyanmicPackage.php
* File Description :Package helper contains methods related to package
* Created By : Pooja Choudhary
* Created Date: 2-August-2017
*/
//$priceRateMaster = Zend_Controller_Action_HelperBroker::getStaticHelper('DynamicPackage')->getDynamicPackageRate($totaltraveller, $travelplandata[0],$marketwiseratebyo);
class Zend_Controller_Action_Helper_DynamicPackage extends Zend_Controller_Action_Helper_Abstract {
/*
* getTotlaCostOfHotelByTravelers.
* Created by Pooja on 2-August-2017
* @param array $hotelArray hotel details
* @param array $roominfoarr room info array
* @return string (cost)
*/
public function getTotlaCostOfHotelByTravelers($hotelArray, $roominfoarr) {
$newcost = 0;
for ($m = 1; $m <= count($roominfoarr); $m++) {
if ($roominfoarr[$m]['Adult'] == 2) {
$newcost = $newcost + $hotelArray['TotalCostDO'];
}
if ($roominfoarr[$m]['Adult'] == 1) {
$newcost = $newcost + $hotelArray['TotalCostSO'];
}
$bedtype = $roominfoarr[$m]['bedtype'];
if ($roominfoarr[$m]['Adult'] == 3) {
if ($bedtype == "extrabed") {
$newcost = $newcost + $hotelArray['TotalCostExtraBed'] + $hotelArray['TotalCostDO'];
} else {
$newcost = $newcost + $hotelArray['TotalCostWithoutBed'] + $hotelArray['TotalCostDO'];
}
// $newcost = $newcost + $hotelArray['TotalCostSO'] + $hotelArray['TotalCostDO'];
}
if ($roominfoarr[$m]['Child'] > 0) {
if ($bedtype == "extrabed") {
$newcost = $newcost + $hotelArray['TotalCostExtraBed'];
}
if ($bedtype == "withoutbed") {
$newcost = $newcost + $hotelArray['TotalCostWithoutBed'];
}
}
}
return round($newcost);
}
//this function backedup by Amit for gst calculation on 30 August 2017 at 12:54 PM
public function getDynamicPackageRate_bkp($travelers, $flexiPackageList, $marketwiseratebyo) {
if (count($marketwiseratebyo) == 0) {
$responseArray = array();
$responseArray['availability'] = false;
$jsonData = json_encode($responseArray);
} else {
$arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getDynamicPrivateRates($flexiPackageList, $marketwiseratebyo);
$discount = $arrPkgCost['FinalDiscount'] + $arrPkgCost['ExtraDiscount'];
$responseArray = array();
$responseArray['availability'] = true;
$responseArray['AdvBookingPercent'] = $arrPkgCost['AdvBookingPercent'];
$responseArray['bookingAmount'] = $arrPkgCost['bookingAmount'];
$responseArray['TotalPrice'] = $arrPkgCost['TotalPrice'];
$responseArray['GrandTotal'] = $arrPkgCost['GrandTotal'];
$responseArray['PricePerPax'] = round($arrPkgCost['GrandTotal'] / $travelers);
$responseArray['DiscountedPrice'] = $discount;
$responseArray['FinalMarkUp'] = $arrPkgCost['FinalMarkUp'];
$responseArray['FinalCost'] = $arrPkgCost['FinalCost'];
$responseArray['NetCost'] = $arrPkgCost['NetCost'];
$responseArray['Tax'] = $arrPkgCost['Tax'];
$jsonData = json_encode($responseArray);
}
return $jsonData;
}
//this function's backup already done by name getDynamicPackageRate_bkp
public function getDynamicPackageRate($travelers, $flexiPackageList, $marketwiseratebyo, $gsttype = NULL) {
if (count($marketwiseratebyo) == 0) {
$responseArray = array();
$responseArray['availability'] = false;
$jsonData = json_encode($responseArray);
} else {
$arrPkgCost = Zend_Controller_Action_HelperBroker::getStaticHelper('Package')->getDynamicPrivateRates($flexiPackageList, $marketwiseratebyo);
$discount = $arrPkgCost['FinalDiscount'] + $arrPkgCost['ExtraDiscount'];
if (!empty($gsttype)) {
//echo "<pre>";print_r($arrPkgCost);
//calculate GST added by Er Amit Kumar Dubey on 17 august 2017 at 04:19 PM
$GSTApplicableOn = $gsttype;
$packageCost = ($arrPkgCost['NetCost']);
$AgencyMarkUp = $arrPkgCost['FinalMarkUp'];
$AgencyExtraMarkUp = $arrPkgCost['ExtraMarkup'];
$AgencyDiscount = $arrPkgCost['ExtraDiscount'];
$intProductType = 9;
$intProductGeoType = 1; // 1 For Domestic, 2 For International
$arrInputData = array(
"GSTApplicableOn" => $GSTApplicableOn,
"intProductType" => $intProductType,
"intProductGeoType" => $intProductGeoType,
"Cost" => $packageCost,
"AgencyMarkUp" => $AgencyMarkUp,
"AgencyExtraMarkUp" => $AgencyExtraMarkUp,
"AgencyDiscount" => $AgencyDiscount
);
$arrGSTCalculations = Zend_Controller_Action_HelperBroker::getStaticHelper("General")->calculateGST($arrInputData);
$arrPkgCost['Tax'] = $arrGSTCalculations['GSTAmount'];
$arrPkgCost['GrandTotal'] = ($arrGSTCalculations['AmountWithGST']);
//$arrPkgCost['TotalPrice']=$arrGSTCalculations['AmountWithGST'];
//$arrPkgCost['NetCost']=$arrGSTCalculations['AmountWithGST'];
//echo "<pre>";print_r($arrGSTCalculations);die;
//#end calculate GST
}
$responseArray = array();
$responseArray['availability'] = true;
$responseArray['AdvBookingPercent'] = $arrPkgCost['AdvBookingPercent'];
$responseArray['bookingAmount'] = $arrPkgCost['bookingAmount'];
$responseArray['TotalPrice'] = $arrPkgCost['TotalPrice'];
$responseArray['GrandTotal'] = $arrPkgCost['GrandTotal'];
$responseArray['PricePerPax'] = round($arrPkgCost['GrandTotal'] / $travelers);
$responseArray['DiscountedPrice'] = $discount;
$responseArray['FinalMarkUp'] = $arrPkgCost['FinalMarkUp'];
$responseArray['FinalCost'] = $arrPkgCost['FinalCost'];
$responseArray['NetCost'] = $arrPkgCost['NetCost'];
$responseArray['Tax'] = $arrPkgCost['Tax'];
//echo "<pre>";print_r($responseArray);die;
$jsonData = json_encode($responseArray);
}
return $jsonData;
}
public function getTotalCostOfIncludedEvent($eventsList, $adult, $child, $totaltraveler) {
$totalCost = 0;
if(is_array($eventsList)){
for ($i = 0; $i < count($eventsList); $i++) {
$adultcost = $eventsList[$i]['Cost'];
$kidscost = $eventsList[$i]['KidsCost'];
$totalCost += ($adult * $adultcost) + ($child * $kidscost);
$totalBaseCost += $eventsList[$i]['TotalBaseCost'];
}
}
$eventsCostArray['TotalBaseCost'] = ($totalBaseCost);
$eventsCostArray['PerPersonBaseCost'] = round($totalBaseCost / $totaltraveler);
$eventsCostArray['TotalCost'] = round($totalCost);
$eventsCostArray['PerPersonCost'] = round($totalCost / $totaltraveler);
return $eventsCostArray;
}
public function getTotalCostOfIncludedSightseeing($sightseeingList, $adult, $child, $totaltraveler) {
$totalCost = 0;
if(is_array($sightseeingList)){
for ($i = 0; $i < count($sightseeingList); $i++) {
if((int)$sightseeingList[$i]['RouteVechSysId']>0){
$PPTotalPrice = $sightseeingList[$i]['TotalPrice'] / ($adult + $child);
$adultcost = $kidscost = $PPTotalPrice;
}else{
$adultcost = $sightseeingList[$i]['Cost'];
$kidscost = $sightseeingList[$i]['KidsCost'];
}
$totalCost += ($adult * $adultcost) + ($child * $kidscost);
$totalBaseCost += $sightseeingList[$i]['TotalBaseCost'];
}
}
$sightseeingCostArray['TotalBaseCost'] = ($totalBaseCost);
$sightseeingCostArray['PerPersonBaseCost'] = round($totalBaseCost / $totaltraveler);
$sightseeingCostArray['TotalCost'] = round($totalCost);
$sightseeingCostArray['PerPersonCost'] = round($totalCost / $totaltraveler);
return $sightseeingCostArray;
}
public function getTotalCostOfIncludedServices($ServicesList, $totaltraveler) {
$totalCost = 0;
if(is_array($ServicesList)){
for ($j = 0; $j < count($ServicesList); $j++) {
if ($ServicesList[$j]['RateType'] == 0) { //Fixed
$totalServiceCost = $ServicesList[$j]['Cost'];
$totalServiceBaseCost = $ServicesList[$j]['BaseCost'];
} else { //Per Pax
$totalServiceCost = $ServicesList[$j]['Cost'] * $totaltraveler;
$totalServiceBaseCost = $ServicesList[$j]['BaseCost'] * $totaltraveler;
}
$totalCost = $totalCost + $totalServiceCost;
$totalBaseCost = $totalBaseCost + $totalServiceBaseCost;
}
}
$servicesCostArray['TotalBaseCost'] = ($totalBaseCost);
$servicesCostArray['PerPersonBaseCost'] = round($totalBaseCost / $totaltraveler);
$servicesCostArray['TotalCost'] = round($totalCost);
$servicesCostArray['PerPersonCost'] = round($totalCost / $totaltraveler);
return $servicesCostArray;
}
public function getTransportCost($getallPvtTransport, $totaltraveler) {
$totalCarCost = $totalCarBaseCost = 0;
$totalprivatecostperpersonwoc = 0;
if(is_array($getallPvtTransport)){
for ($m = 0; $m < count($getallPvtTransport); $m++) {
if ($getallPvtTransport[$m]['TransType'] == 'car') { //currency conversion is implemented in car
$totalCarCost = $totalCarCost + ($getallPvtTransport[$m]['TotalPrice'] * $getallPvtTransport[$m]['VehicleQty']);
$totalCarBaseCost = $totalCarBaseCost + ($getallPvtTransport[$m]['TotalBasePrice'] * $getallPvtTransport[$m]['VehicleQty']);
} else {
if($getallPvtTransport[$m]['CostPerson'] > 0){
$CostPerson = $getallPvtTransport[$m]['CostPerson'];
}else{
$CostPerson = $getallPvtTransport[$m]['TotalPrice']/$totaltraveler;
}
$totalprivatecostperpersonwoc = $totalprivatecostperpersonwoc + ($CostPerson * $getallPvtTransport[$m]['VehicleQty']);
}
}
}
$totalTransportCost = ($totalprivatecostperpersonwoc * $totaltraveler) + ($totalCarCost);
$PvtTransportCostArray['TotalBaseCost'] = $totalCarBaseCost;
$PvtTransportCostArray['PerPersonBaseCost'] = $totalCarBaseCost / $totaltraveler;
$PvtTransportCostArray['TotalCost'] = $totalTransportCost;
$PvtTransportCostArray['PerPersonCost'] = $totalTransportCost / $totaltraveler;
return $PvtTransportCostArray;
}
public function getGroupCarCost($getgroupwiseCarCost, $totaltraveler, $groupsize) {
$groupsize = ($groupsize > 0 ) ? $groupsize : 1;
$groupcostperperson = ($getgroupwiseCarCost[0]['TotalPrice']) / ($groupsize); // total price divide by defined group size;
$grpCarCostArray['TotalCost'] = $groupcostperperson * $totaltraveler;
$grpCarCostArray['PerPersonCost'] = $groupcostperperson;
return $grpCarCostArray;
}
public function getGroupCarBaseCost($getgroupwiseCarCost, $totaltraveler, $groupsize) {
$groupcostperperson = ($getgroupwiseCarCost[0]['TotalBaseCost']) / ($groupsize); // total price divide by defined group size;
$grpCarCostArray['TotalBaseCost'] = $groupcostperperson * $totaltraveler;
$grpCarCostArray['PerPersonBaseCost'] = $groupcostperperson;
return $grpCarCostArray;
}
public function calculateCostForCostsheet($flexiPackageHotelList, $flexiPackageActivityResult, $flexiPackageSightseenResult, $getservicedetail, $getallPvtTransport, $getallGroupTransport, $getgroupwiseCarCost, $adultPax, $childPax, $PackageCostCalType, $flexiPackageList, $totalnight) {
$PackageHelperObj = Zend_Controller_Action_HelperBroker::getStaticHelper('Package');
$PackageCostCalType = $flexiPackageList['PackageCostCalType'];
$groupsize = $flexiPackageList['GroupSize'];
$tourtype = $flexiPackageList['TourType'];
$totaltraveler = $adultPax + $childPax;
$totalHotelCost = 0;
foreach ($flexiPackageHotelList as $flexiPackageHotel) {
$IsMealPlanType = ($PackageCostCalType) ? $flexiPackageHotel['MealPlanType'] : 0;
$exchangerate = 1;
if (isset($flexiPackageHotel['CurrencyType']) && $flexiPackageHotel['CurrencyType'] != 1) {
$objPackage = new Travel_Model_TblPackage();
$exchangerate = $objPackage->currencyExchangeRate($flexiPackageHotel['CurrencyType'], 1);
}
$totalHotelCost += $PackageHelperObj->convertRatetoBaseCurrency($flexiPackageHotel['TotalCost'],$exchangerate);
}
$flexiPackageActivityRates = $this->getTotalCostOfIncludedEvent($flexiPackageActivityResult, $adultPax, $childPax, $totaltraveler);
$flexiPackageSightseenRates = $this->getTotalCostOfIncludedSightseeing($flexiPackageSightseenResult, $adultPax, $childPax, $totaltraveler);
$serviceCost = $this->getTotalCostOfIncludedServices($getservicedetail, $totaltraveler);
$pvtTransCostArr = $this->getTransportCost($getallPvtTransport, $totaltraveler); // car bus train
$grpTransCostArr = $this->getTransportCost($getallGroupTransport, $totaltraveler); // bus train
$grpCarCostArray = $this->getGroupCarCost($getgroupwiseCarCost, $totaltraveler, $groupsize); // groupCar
$transportCostTotal = $pvtTransCostArr['TotalCost'];
$transportCostPerPerson = $pvtTransCostArr['PerPersonCost'];
$totalCost = array();
$tourArray = ($tourtype == 3) ? array(1, 2) : array(1);
// $totalCost[$TourId][$packagecategoryId][$mealPlanId]['TotalCost'] =
$totalCost['TotalCost'] = $totalHotelCost + $flexiPackageActivityRates['TotalCost'] + $flexiPackageSightseenRates['TotalCost'] + $serviceCost['TotalCost'] + $transportCostTotal;
$totalCost['PerPersonCost'] = $totalHotelCost / $totaltraveler +
+ $flexiPackageActivityRates['PerPersonCost'] + $flexiPackageSightseenRates['PerPersonCost'] + $serviceCost['PerPersonCost'] + $transportCostPerPerson;
$responseArray['CostsheetRate'] = $totalCost;
return $responseArray;
}
public function calculateCostForCostsheet_dynamicCurrency($flexiPackageHotelList, $flexiPackageActivityResult, $flexiPackageSightseenResult, $getservicedetail, $getallPvtTransport, $getallGroupTransport, $getgroupwiseCarCost, $adultPax, $childPax, $PackageCostCalType, $flexiPackageList, $totalnight) {
// echo '<pre>'; print_r($flexiPackageActivityResult); echo '</pre>'; die;
$PackageCostCalType = $flexiPackageList['PackageCostCalType'];
$groupsize = $flexiPackageList['GroupSize'];
$tourtype = $flexiPackageList['TourType'];
$totaltraveler = $adultPax + $childPax;
$newflexiPackageHotelRatesArr = array();
foreach ($flexiPackageHotelList as $flexiPackageHotel) {
$IsMealPlanType = ($PackageCostCalType) ? $flexiPackageHotel['MealPlanType'] : 0;
$newflexiPackageHotelRatesArr[$flexiPackageHotel['BYOPackType']][$IsMealPlanType] += $flexiPackageHotel['TotalCost']; //base cost - converted cost
}
$flexiPackageActivityRates = $this->getTotalCostOfIncludedEvent($flexiPackageActivityResult, $adultPax, $childPax, $totaltraveler);
$flexiPackageSightseenRates = $this->getTotalCostOfIncludedSightseeing($flexiPackageSightseenResult, $adultPax, $childPax, $totaltraveler);
$serviceCost = $this->getTotalCostOfIncludedServices($getservicedetail, $totaltraveler);
$pvtTransCostArr = $this->getTransportCost($getallPvtTransport, $totaltraveler); // car bus train
$grpTransCostArr = $this->getTransportCost($getallGroupTransport, $totaltraveler); // bus train
$grpCarCostArray = $this->getGroupCarBaseCost($getgroupwiseCarCost, $totaltraveler, $groupsize); // groupCar
$totalCost = array();
$tourArray = ($tourtype == 3) ? array(1, 2) : array(1);
// $newArrayWithTourType = array();
// if(!empty($PackageCostCalType)){
// foreach($tourArray as $TourId){
// $newArrayWithTourType[$TourId] = $PossibleCombinationsOfMealPlanArr;
// }
// }
foreach ($newflexiPackageHotelRatesArr as $packagecategoryId => $newflexiPackageHotelRates) {
foreach ($newflexiPackageHotelRates as $mealPlanId => $totalHotelCost) {
foreach ($tourArray as $TourId) {
if ($TourId == 1) {
$transportCostTotal = $pvtTransCostArr['TotalBaseCost'];
$transportCostPerPerson = $pvtTransCostArr['PerPersonBaseCost'];
} else {
$transportCostTotal = $grpTransCostArr['TotalBaseCost'] + $grpCarCostArray['PerPersonBaseCost'];
$transportCostPerPerson = $grpTransCostArr['PerPersonBaseCost'] + $grpCarCostArray['PerPersonBaseCost'];
}
// $totalCost[$TourId][$packagecategoryId][$mealPlanId]['TotalCost'] =
$totalCost[$TourId][$packagecategoryId][$mealPlanId]['TotalCost'] = $totalHotelCost + $flexiPackageActivityRates['TotalBaseCost'] + $flexiPackageSightseenRates['TotalBaseCost'] + $serviceCost['TotalBaseCost'] + $transportCostTotal;
$totalCost[$TourId][$packagecategoryId][$mealPlanId]['PerPersonCost'] = $totalHotelCost / $totaltraveler +
+ $flexiPackageActivityRates['PerPersonBaseCost'] + $flexiPackageSightseenRates['PerPersonBaseCost'] + $serviceCost['PerPersonBaseCost'] + $transportCostPerPerson;
}
}
}
/* separate cost for hotel, activity, sightseeong,service, pvt transport(WC), group transport(WoC),Group car cost
* $responseArray['HotelsRateTotal'] = $newflexiPackageHotelRatesArr;
$responseArray['ActivityRate'] = $flexiPackageActivityRates;
$responseArray['SightSeeingRate'] = $flexiPackageSightseenRates;
$responseArray['ServiceCost'] = $serviceCost;
$responseArray['pvtTransCostArr'] = $pvtTransCostArr;
$responseArray['grpTransCostArr'] = $grpTransCostArr;
$responseArray['groupcostperperson'] = $grpCarCostArray; */
$responseArray['CostsheetRate'] = $totalCost;
return $responseArray;
}
}