Название: Суточная абонплата Скидка, % Отправлено: komnod от 12 Апреля 2012, 10:29:03 Собственно вопрос, каким образом можно сделать скидку в тарифах с суточной абонплатой?
просто имеются абоненты, от которых запитаны свичи (немного но есть такие) и им ставим Скидка, % но она не учитывается при суточной тарификации. Название: Re: Суточная абонплата Скидка, % Отправлено: francuz от 29 Апреля 2012, 14:30:24 Неужели никто не сталкивался?
Название: Re: Суточная абонплата Скидка, % Отправлено: Rico-X от 29 Апреля 2012, 14:32:15 А суточный тариф добавить отдельный для таких абонов не вариант?
Название: Re: Суточная абонплата Скидка, % Отправлено: 0xbad0c0d3 от 29 Апреля 2012, 14:58:51 И под каждый % свой тариф? oO -- Бред Пит'!
Название: Re: Суточная абонплата Скидка, % Отправлено: francuz от 30 Апреля 2012, 06:31:17 НЕ только под каждый % свой тариф, но и еще под тарифный план(( у кого то 100 руб в мес. а у кого то 50((( Так что полнейший БРЭЭЭЭД ПИТ
Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 01 Мая 2012, 10:57:55 а если так? nodeny.pl
это Код: # получим список клиентов, у которых тариф № $i, а также нет абонплаты за текущий день Код: # получим список клиентов, у которых тариф № $i, а также нет абонплаты за текущий день не проверялось. но должно работать. Название: Re: Суточная абонплата Скидка, % Отправлено: fluffy от 04 Мая 2012, 14:31:27 Проверил. Во-первых, в коде была опечатка :) видимо, чтобы оградить особо недогадливых? :)
Но идея отличная. Думаю, как бы ещё заставить отображаться сумму тарифа и в случае посуточного списания. а то нули всюду видны... Во-вторых, ввёл проверку на 0 в сумме списания — зачем гадить в лог пустыми записями? :) Код: --- nodeny.pl.bak 2010-02-21 05:02:47.000000000 +1000 Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 04 Мая 2012, 14:43:57 Проверил. Во-первых, в коде была опечатка :) видимо, чтобы оградить особо недогадливых? :) опечатка ... могет быть праздники все таки... Но идея отличная. Код: + $m=$cash; а это замени на одну строку и будет гуд Думаю, как бы ещё заставить отображаться сумму тарифа и в случае посуточного списания. а то нули всюду видны... Во-вторых, ввёл проверку на 0 в сумме списания — зачем гадить в лог пустыми записями? :) думаю тоже ничего сложного нет ... будет время сделаю. я там понял нужно сумма снятия что бы писался суточный тариф? Название: Re: Суточная абонплата Скидка, % Отправлено: fluffy от 05 Мая 2012, 07:26:50 Вот блин. :( на деле получилась фигня. тем, у кого скидка есть — всё пучком. У кого нет — начиляет всякую ерунду :( точнее, ощутимо меньше, чем должно быть.
Название: Re: Суточная абонплата Скидка, % Отправлено: fluffy от 05 Мая 2012, 08:10:37 Точнее, начисляет не ерунду, а сумму вдвое меньше
Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 05 Мая 2012, 10:04:31 Точнее, начисляет не ерунду, а сумму вдвое меньше по ходу у вас предыдущий клиет имел скидку 50% - переменая не обнулялась Название: Re: Суточная абонплата Скидка, % Отправлено: fluffy от 05 Мая 2012, 10:16:04 Ох ты ж ёжик!
Нельзя, нельзя в цикле трогать глобальную по отношению к нему переменную $cash!!!!! Вот и получалась хрень — дошли до пользователя со скидкой, и всем остальным на этом тарифе дальше начисляет неправильно! Код: --- nodeny.pl.bak 2010-02-21 05:02:47.000000000 +1000 Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 05 Мая 2012, 10:20:31 зачем там еще одна переменая ?
$cashd=$cash-sprintf("%.2f",$cash * $discount/100); ? если $cash=$cash-sprintf("%.2f",$cash * $discount/100); этого достаточно Название: Re: Суточная абонплата Скидка, % Отправлено: fluffy от 05 Мая 2012, 10:23:47 зачем там еще одна переменая ? Затем, что по отношению к циклу начисления абоненту переменная $cash — глобальная, и инициализируется на вхождении в цикл по тарифу, для всех абонентов этого ТП. заботливо разложеные вами грабли сработали :) Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 05 Мая 2012, 11:31:46 где грабли и где опечатка покаж
Название: Re: Суточная абонплата Скидка, % Отправлено: fluffy от 05 Мая 2012, 12:34:53 где грабли и где опечатка покаж Я же выше всё описал. Нельзя трогать в цикле начисления абоненту переменную $cash, потому что она посчитана в цикле более верхнего уровня для всей группы для экономии тактов на вычисление. Логика, логика, и ещё раз логика. В итоге мой вариант — работает, твой — разносит базу в хлам ошибочными начислениями. Сам же пройдись по циклу и увидишь эти грабли. Просто нарисовав на бумаге схему, на каком уровне что считается. Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 05 Мая 2012, 13:22:36 сори увидел опечатку
вот чем опасен копипаст $cas=$cash-sprintf("%.2f",$cash * $discount/100); думаю почему у меня на тестовой все прокатило там еще лист пл надо поправить что бы рисовало Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 05 Мая 2012, 13:55:40 и еще в
"($mid,$cashd,10,'y',114,'','Суточная абонплата',$ut)",'Абонплата суточная'); в вписать что есть скидка - так как скидка может быть изменена в течении месяца Название: Re: Суточная абонплата Скидка, % Отправлено: fluffy от 05 Мая 2012, 14:45:01 хе. и не забывай, в базу надо вносить не чистый $cash, а после применения скидки :) я сегодня весь день с этим бодался. но победил, результат ты видел :)
да, я уже думал о том, что стоит выводить и размер скидки. и может стоит предложить внести это в основной код? Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 05 Мая 2012, 15:53:21 водитсЯ не cash а cas
и вот как получилось в инфо юзера Название: Re: Суточная абонплата Скидка, % Отправлено: ser970 от 05 Мая 2012, 16:03:34 как видно нолики уже не рисует - рисует снятие как положено. ( на скрине дата не верная там 29 апреля)
но... у меня пропало желание писать на халяву - в моих сетях это не нужно. включай логику и на бумажке рисуй что и где выводится и по пробуй победить вот это ;D Название: Re: Суточная абонплата Скидка, % Отправлено: 0xbad0c0d3 от 05 Мая 2012, 16:23:15 Код: $cash=$cash-sprintf("%.2f",$cash * $discount/100); Код: $cash=sprintf("%.2f",$cash * (1-$discount/100)); Там перед тем, как снимать с абона нужно сделать или другую переменную, или добавлять подсчет скидки в двух местах, или делать my а лучше всего local т.е. Код: $mid=$p->{id}; |