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

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

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« : 10 Августа 2018, 12:02:35 »

Вітаю.
Може хтось підказати, де я міг протупити.
Послуга при достатньому балансі не розморожується. Може щось не запущено? Чи якесь налаштування?
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #1 : 10 Августа 2018, 13:22:45 »

Щось не можу знайти де я читав, але вроді десь написано, що при видачі кредиту, списується вся вартість послуги, якщо за термін кредиту не було оплати, то видаляється тимчасовий платіж і пропорційно знімається за послугу, послуга знову стає в заморожену.
Чи це так? Чи це потрібно десь налаштовувати, чи це працює за дефолтом?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #2 : 10 Августа 2018, 15:42:17 »

Запусти perl nokernel.pl -v -m=services и покажи лог после строки: SELECT u.balance, u.discount, u.limit_balance, p.id, p.mid, p.reason ...
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #3 : 11 Августа 2018, 03:24:23 »

SELECT u.balance, u.discount, u.limit_balance, p.id, p.mid, p.reason FROM pays p JOIN users u ON p.mid=u.id WHERE p.category=208
Строк: 5923. Время выполнения sql: 0.0176 сек

SELECT v.id, v.uid, s.module, s.title, IF(u.balance < u.limit_balance,1,0) AS neg FROM users_services v JOIN users u ON v.uid = u.id LEFT JOIN services s ON v.service_id = s.service_id WHERE (v.tm_end > 0 AND v.tm_end < UNIX_TIMESTAMP()) OR v.tags LIKE '%,end_now,%'
Строк: 598. Время выполнения sql: 0.0148 сек
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #4 : 12 Августа 2018, 03:53:19 »

Ще, при переносі клієнта, якщо він вже є в білінгу і в нього послуга зморожена - то виходить така каша
[1092]Iv.Standart.25М.120   120 грн
01.07.2018 00:01 були припинені послуги:
[1092]Iv.Standart.25М.120

Будуть автоматично підключені коли баланс стане 120 грн

тобто і тариф працює, і пише що послуга припинена. Реально же вроді все норм, клієнт відпрацьовує доступ
mysql> SELECT * FROM users_services WHERE uid=12600;
+--------+-------+---------+------------+------------+------------+-----------------+---------------------------+-----------------------+
| id     | uid   | pay_id  | service_id | tm_start   | tm_end     | next_service_id | tags                      | radius_attr           |
+--------+-------+---------+------------+------------+------------+-----------------+---------------------------+-----------------------+
| 151455 | 12600 | 7320025 |         78 | 1534025942 | 1536617942 |              78 | ,inet,speed,start_traf=0, | Filter-Id=25000/25000 |

Переживати по цьому поводу? Воно само зникне? Чи тре файл переносу ще правити?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #5 : 13 Августа 2018, 14:05:12 »

Есть такой код:


Код:
        my $info = Debug->do_eval($p{reason}) or next;
        my $price = $p{discount}? $info->{price}*(100-$p{discount})/100 : $info->{price};
        ($p{balance} - $price) >= $p{limit_balance} or next;
        ref $info->{services} eq 'ARRAY' or next;

Можно его модифицировать и добавить код, который будет подробно писать в лог по каждой замороженной услуге. Только учти, что лога будет много, потом вернешь как было.


Код:
        debug('record:', \%p);
        my $info = Debug->do_eval($p{reason}) or next;
        debug('decoded info:', $info);
        my $price = $p{discount}? $info->{price}*(100-$p{discount})/100 : $info->{price};
        debug('check:', {
            'price' => $price,
            'balance - price' => ($p{balance} - $price),
            'limit_balance' => $p{limit_balance},
            'services ok?' => (ref $info->{services} eq 'ARRAY'),
        });
        ($p{balance} - $price) >= $p{limit_balance} or next;
        ref $info->{services} eq 'ARRAY' or next;
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #6 : 14 Августа 2018, 00:34:12 »

А який час реагування на розморозку, після поповнення чи тимчасового платежу? Цей параметр десь вказується?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #7 : 14 Августа 2018, 10:14:05 »

каждую 61 секунду
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

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