Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Приложение 2. Программный код функции вычисления стомости игры/бронирования ⇐ ПредыдущаяСтр 6 из 6
Код функции вычисления стоимости игры/бронирования написан на языке программирования PHP.
function Calc($club, $rows, $date, $timeStart, $timeEnd, $actionId=0, $promoCode="") {
$todayTimeStamp=mktime(0, 0, 0, substr($date,5,2), substr($date,8,2), substr($date,0,4)); $total = 0; $rowsCalc=array();
foreach ($rows as $row) { $rowsCalc[$row]=$this->CalcRow($club, $row, $date, $timeStart, $timeEnd); $total+=$rowsCalc[$row]; }
$params= ['club'=>$club,'rows'=>$rows,'dateTimeStamp'=>$todayTimeStamp,'timeStart'=>$timeStart-$todayTimeStamp,'timeEnd'=>$timeEnd-$todayTimeStamp]; //var_dump($params); if ($actionId==0) { return $total; }
$AT = new ActionTable(); //var_dump($actionId); //var_dump($promoCode); if ($actionId=='-1' && $promoCode!="") { $Action = $AT->getByPromoCode($promoCode,$params); //var_dump($Action); } elseif ($actionId>0) { $Action = $AT->getByID($actionId); }
//var_dump($Action);
if (!$Action) { return $total; }
foreach ($rowsCalc as $key => $sum) {
// проверка на акцию - можно ли применять $canDoAction = $AT->checkAction($Action['actionId'], $club, $key, $todayTimeStamp, $timeStart, $timeEnd);
if (!$canDoAction) { continue; }
$this->actionInfo="(Акция: ".$Action['name'].")"; // еслиакциязафиксцену if ($Action['discountVariant']=='fix') { $rowsCalc[$key]=$Action['price']; } else { // если % if ($Action['discountType']=='%') { if ($Action['crossType']=='inside' || $Action['crossType']=='crossfull') { $rowsCalc[$key]=$rowsCalc[$key]-($rowsCalc[$key]*0.01*$Action['discount']); } else { // cross - расчитать период скидки // расчитать сумму за период // высчитать скидку // вычесть скидку } }
// если в рублях if ($Action['discountType']=='Р') { if ($Action['crossType']=='inside' || $Action['crossType']=='crossfull') { $rowsCalc[$key]=$rowsCalc[$key]-$Action['discount']; } else { // cross - расчитать период скидки // расчитать сумму за период // высчитать скидку // вычесть скидку } }
// если в минутах if ($Action['discountType']=='М') { // если cross - расчитать период скидки
// если вначале // расчет стоимости вначале // иначе // расчет стоимости вконце
// вычесть
//$timeMin = ($timeEnd-$timeStart)/60;
if ($Action['crossType']=='inside' || $Action['crossType']=='crossfull') {
if ($Action['timeDiscountFrom']=='start') { $rowsCalc[$key]=$this->CalcRow($club, $key, $date, $timeStart+$Action['discount']*60, $timeEnd); } else { $rowsCalc[$key]=$this->CalcRow($club, $key, $date, $timeStart, $timeEnd-$Action['discount']*60); } } else { // расчет } } } }
$total=0; foreach ($rowsCalc as $val) { $total+=$val; }
return $total; }
|