Биллинговая система Nodeny
15 Мая 2024, 07:12:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2]
  Печать  
Автор Тема: Суточная абонплата Скидка, %  (Прочитано 6149 раз)
fluffy
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 7


Просмотр профиля
« Ответ #15 : 05 Мая 2012, 12:34:53 »

где грабли и где опечатка покаж

Я же выше всё описал. Нельзя трогать в цикле начисления абоненту переменную $cash, потому что она посчитана в цикле более верхнего уровня для всей группы для экономии тактов на вычисление. Логика, логика, и ещё раз логика.
В итоге мой вариант — работает, твой — разносит базу в хлам ошибочными начислениями.

Сам же пройдись по циклу и увидишь эти грабли. Просто нарисовав на бумаге схему, на каком уровне что считается.
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #16 : 05 Мая 2012, 13:22:36 »

сори увидел опечатку
вот чем опасен копипаст  

$cas=$cash-sprintf("%.2f",$cash * $discount/100);

думаю почему у меня на тестовой все прокатило

там еще лист пл надо поправить  что бы рисовало
« Последнее редактирование: 05 Мая 2012, 13:24:09 от ser970 » Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #17 : 05 Мая 2012, 13:55:40 »

и еще в
"($mid,$cashd,10,'y',114,'','Суточная абонплата',$ut)",'Абонплата суточная');

в вписать что есть скидка  - так как скидка может быть изменена в течении месяца
Записан
fluffy
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 7


Просмотр профиля
« Ответ #18 : 05 Мая 2012, 14:45:01 »

хе. и не забывай, в базу надо вносить не чистый $cash, а после применения скидки Улыбающийся я сегодня весь день с этим бодался. но победил, результат ты видел Улыбающийся

да, я уже думал о том, что стоит выводить и размер скидки.
и может стоит предложить внести это в основной код?
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #19 : 05 Мая 2012, 15:53:21 »

водитсЯ не cash а cas

и вот как получилось

в инфо юзера

 
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #20 : 05 Мая 2012, 16:03:34 »

как видно нолики уже не рисует  - рисует снятие как  положено. ( на скрине дата не верная там 29 апреля)
но...
у меня пропало желание писать на халяву - в моих сетях это не нужно.

включай логику и на бумажке рисуй что и где выводится

и по пробуй победить вот это Смеющийся
« Последнее редактирование: 05 Мая 2012, 16:12:42 от ser970 » Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #21 : 05 Мая 2012, 16:23:15 »

Код:
$cash=$cash-sprintf("%.2f",$cash * $discount/100);
По-моему так красивее:
Код:
$cash=sprintf("%.2f",$cash * (1-$discount/100));
А вообще, глоб. переменную трогать и правда нельзя, но там она не глобальная, но не важно...
Там перед тем, как снимать с абона нужно сделать или другую переменную, или добавлять подсчет скидки в двух местах, или делать my а лучше всего local
т.е.
Код:
$mid=$p->{id};
$Ustart_day{$mid}<0 && next; # пока не начал пользоваться услугами
local $cash=sprintf("%.2f",$cash * (1-$discount/100)) if $discount; #Нафига нам что-то считать если скидки нет!?
Записан
Страниц: 1 [2]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!