Биллинговая система Nodeny
22 Ноября 2024, 06:45:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Не начислять скидку на доп. услуги. Как?  (Прочитано 6928 раз)
Inzevision
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 59


Просмотр профиля Email
« : 24 Апреля 2012, 07:54:59 »

Есть несколько доп услуг. Антивирус, реальный ИП, ИП-ТВ. Всё это стоит не дорого, но стоит. Дело в том, что когда начисляется скидка, она начисляется на полную абонплату, включая доп. услуги. Можно ли как-то сделать, что бы на доп услуги скидка не начислялась, а начислялась только на основную услугу?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #1 : 24 Апреля 2012, 08:20:28 »

можно, но геморно: надо код nomoney.pl хорошо поправить
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #2 : 01 Мая 2012, 10:38:05 »

Есть несколько доп услуг. Антивирус, реальный ИП, ИП-ТВ. Всё это стоит не дорого, но стоит. Дело в том, что когда начисляется скидка, она начисляется на полную абонплату, включая доп. услуги. Можно ли как-то сделать, что бы на доп услуги скидка не начислялась, а начислялась только на основную услугу?

nomoney.pl

Код:
if( $service )
{  # по крайней мере 1 услуга активирована
   for ($i=1;$i<32;$i++,$service>>=1)
   {
      next unless $service & 1;
      $m=$srv_p[$i];
      $money+=$m;
к  виду
Код:
if( $service )
{  # по крайней мере 1 услуга активирована
   for ($i=1;$i<32;$i++,$service>>=1)
   {
      next unless $service & 1;
      $m=$srv_p[$i];
      $money2+=$m;

Код:
 
if ($mode_report)
{
   if ($discount)
   {

      $ret->{report}.=sprintf("<tr class=".&prow($r1,$r2)."><td colspan=4>Итоговая стоимость тарифного плана, $gr</td><$td><span class=data2>%.2f</span></td></tr>",$m).
        "<tr class=".&prow($r1,$r2)."><td colspan=4><span class=data1>Скидка, %</span></td><$td><span class=data1>$discount</span></td></tr>".
        "<tr class=".&prow($r1,$r2)."><td colspan=4><span class=data1>Скидка, $gr</span></td><$td><span class=data1>$i</span></td></tr>";
   }
   $ret->{report}.="<tr class=".&prow($r1,$r2)."><td colspan=4><b>Итого к оплате</b>, $gr</td><$td><span class=data2>$money</span></td></tr>";
к виду
Код:
if ($mode_report)
{
   if ($discount)
   {

      $ret->{report}.=sprintf("<tr class=".&prow($r1,$r2)."><td colspan=4>Итоговая стоимость тарифного плана, $gr</td><$td><span class=data2>%.2f</span></td></tr>",$m).
        "<tr class=".&prow($r1,$r2)."><td colspan=4><span class=data1>Скидка, %</span></td><$td><span class=data1>$discount</span></td></tr>".
        "<tr class=".&prow($r1,$r2)."><td colspan=4><span class=data1>Скидка, $gr</span></td><$td><span class=data1>$i</span></td></tr>";
   }
   $money3=$money+$money2;
   $ret->{report}.="<tr class=".&prow($r1,$r2)."><td colspan=4><b>Итого к оплате</b>, $gr</td><$td><span class=data2>$money3</span></td></tr>";

Код:
$ret->{money}=$money;
$ret->{money_over}=$money_over;
return $ret;
к виду
Код:
$ret->{money}=$money+$money2;
$ret->{money_over}=$money_over;
return $ret;

переход не проверялся - но пологике должно работать. на услуги скидку не начисляем так хотел?
Записан
PHOENIX
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 36



Просмотр профиля
« Ответ #3 : 21 Февраля 2013, 12:55:05 »

как раз пригодилось ...
но ...
Итоговая стоимость тарифного плана, отражает только стоимость тарифа ($m)
правильней $m+$money2
 
Код:
if ($mode_report)
{
   if ($discount)
   {

      $ret->{report}.=sprintf("<tr class=".&prow($r1,$r2)."><td colspan=4>Итоговая стоимость тарифного плана, $gr</td><$td><span class=data2>%.2f</span></td></tr>",$m).
        "<tr class=".&prow($r1,$r2)."><td colspan=4><span class=data1>Скидка, %</span></td><$td><span class=data1>$discount</span></td></tr>".
        "<tr class=".&prow($r1,$r2)."><td colspan=4><span class=data1>Скидка, $gr</span></td><$td><span class=data1>$i</span></td></tr>";
   }
   $ret->{report}.="<tr class=".&prow($r1,$r2)."><td colspan=4><b>Итого к оплате</b>, $gr</td><$td><span class=data2>$money</span></td></tr>";

к виду
Код:
if ($mode_report)
{
   if ($discount)
   {

      $ret->{report}.=sprintf("<tr class=".&prow($r1,$r2)."><td colspan=4>Итоговая стоимость тарифного плана, $gr</td><$td><span class=data2>%.2f</span></td></tr>",$m+$money2).
        "<tr class=".&prow($r1,$r2)."><td colspan=4><span class=data1>Скидка, %</span></td><$td><span class=data1>$discount</span></td></tr>".
        "<tr class=".&prow($r1,$r2)."><td colspan=4><span class=data1>Скидка, $gr</span></td><$td><span class=data1>$i</span></td></tr>";
   }
   $money3=$money+$money2;
   $ret->{report}.="<tr class=".&prow($r1,$r2)."><td colspan=4><b>Итого к оплате</b>, $gr</td><$td><span class=data2>$money3</span></td></tr>";
Записан
PHOENIX
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 36



Просмотр профиля
« Ответ #4 : 30 Апреля 2013, 23:37:57 »

В прошлом месяце проверил на "живых" абонентах  В замешательстве
Хорошо что 1е Апреля и абоненты восприняли балансы в "минус несколько тысяч" как шутку.
А оказалось-то в начале не хватает:

Код:
my ($k,$money,$money_over,$price,$m,$p,$i,$preset,$p_price,$real_start_day)=(1,0,0,0,0,0,0,0,0,0);
на
Код:
my ($k,$money,$money2,$money_over,$price,$m,$p,$i,$preset,$p_price,$real_start_day)=(1,0,0,0,0,0,0,0,0,0,0);

и

Код:
my $ret={
 money => 0,
 money_over => 0,
на
Код:
my $ret={
 money => 0,
 money2 => 0,
 money_over => 0,


... проверено только-что. Май запустился прелестно !
тариф со скидкой + доп.услуга без скидки

з.ы.
кстати в правке вверху я бы использовал не $m+$money2, а $money
тогда "Итоговая стоимость тарифного плана" будет показывать стоимость тарифа со скидкой,
ниже будет расшифровка скидки
ниже будет "Сумма к оплате" (тариф со скидкой + доп. услуга)
так вроде корректней.
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #5 : 01 Мая 2013, 10:02:12 »

В прошлом месяце проверил на "живых" абонентах  В замешательстве
Хорошо что 1е Апреля и абоненты восприняли балансы в "минус несколько тысяч" как шутку.

я же написал что не проверялось....
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #6 : 31 Мая 2016, 08:03:07 »

Спасибо за диффы, сегодня вот тоже попробую проверить это у себя.
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

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