Биллинговая система Nodeny

Главная категория => Nodeny 49 => Тема начата: smallcms от 04 Сентября 2011, 19:28:23



Название: Смена тарифа не более, чем раз в n часов/дней/месяцев
Отправлено: smallcms от 04 Сентября 2011, 19:28:23
Код:
*** Ssetpacket.pl.old	2010-12-16 23:51:00.000000000 +0200
--- Ssetpacket.pl 2011-09-04 20:28:02.751302995 +0300
***************
*** 161,166 ****
--- 161,171 ----
  {
   {
    defined $F{paket} or last;
+   
+   $p=&sql_select_line($dbh,"SELECT COUNT(*) AS n FROM pays WHERE mid=$Mid AND type=50 AND category=432 AND time>($ut-3600*24*30)");
+   $p && $p->{n}>=$Max_paket_sets && !$Adm{id} && &Error('Вы превысили лимит заказов смены тарифного плана. '.
+      "Не разшешается осуществлять заказ смены тарифного плана чаще одного раза в месяц.",$EOUT); 
+   
    $Plan_flags[$paket]=~/b/ && &Error('Ваш текущий тарифный план не позволяет самостоятельно менять его на иной. Это может сделать только администратор.',$EOUT);
    (!$Fpaket || !&Check_Packet($Fpaket,1)) && &Error('Смена тарифного плана не выполнена - присланные вами данные неверны.',$EOUT);
    $F{balance}!=$balance && &Error('Обнаружено изменение вашего баланса. Возможно вы уже сменили тарифный план либо параллельно были проведены финансовые операции. '.
***************
*** 331,336 ****
--- 336,345 ----
  {
   {
    defined($F{paket}) or last;
+   
+   $p=&sql_select_line($dbh,"SELECT COUNT(*) AS n FROM pays WHERE mid=$Mid AND type=50 AND category=433 AND time>($ut-3600*24*30)");
+   $p && $p->{n}>=$Max_paket_sets && !$Adm{id} && &Error('Вы превысили лимит заказов смены тарифного плана. '.
+      "Не разшешается осуществлять заказ смены тарифного плана чаще одного раза в месяц.",$EOUT); 
 
    $Plans3{$Fpaket}{usr_grp_ask}!~/,$grp,/ && &Error('Смена тарифного плана не выполнена - неразрешенный пакет.',$EOUT);
    $Plans3{$Fpaket}{price_change}==0 && &Error('Смена тарифного плана не выполнена - на данный пакет не разрешено переключаться в середине месяца.',$EOUT);

(http://i.imgur.com/uVmzT.png)

Через админку ошибку не видно, т.к. !$Adm{id}. Только через stat.pl клиента. Можно вынести в админку параметр...


Название: Re: Смена тарифа не более, чем раз в n часов/дней/месяцев
Отправлено: poxy. от 07 Сентября 2011, 11:38:35
+1 к карме, Спасибо  :)