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

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

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #45 : 14 Июня 2018, 23:54:13 »

Причина в тому, що коли в коментах або в ФІО є " - то скрипт завершає роботу без помилок з повідомленням "ок".
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #46 : 17 Июня 2018, 00:35:36 »

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

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #47 : 17 Июня 2018, 15:01:36 »

Смотри /usr/local/nodeny/web/user_del.pl  или /usr/local/nodeny/web/_user_del.pl
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #48 : 17 Июня 2018, 15:59:46 »

    Db->do( "DELETE FROM mac_uid WHERE uid=?", $uid );
те що потрібно було ) якось не додумався.
Просто скрипт переноса, додає до клієнта ще один мак,
            "INSERT INTO mac_uid SET uid=?, mac=?, ip=0, device_mac='', device_port=0, oneconnect=2, `time`=0 ".
            "ON DUPLICATE KEY UPDATE uid=?, oneconnect=2", $uid, $mac, $uid
 якщо при оновленні в нього змінилася мак адреса.
Тому ліпше буде видалити всі маки клієнта, а потім додавати )
Звичайно можна апдейт робити, але тоді тре визначати, чи то новий клієнт чи оновлення учотки. Простіше  DELETE INSERT
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #49 : 21 Июня 2018, 22:42:05 »

Підкажіть, куди дивитися.
У клієнта недостатньо коштів і його послуга заморожена, а учотка заблокована. Роблю йому тимчасовий платіж - учотка розблоковується, послуга залишається бути замороженою. Відповідно він авторизовується, на заглушку не форвардить, але шейп не виставляє.
Пніть в якому напрямку копати?
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #50 : 22 Июня 2018, 02:27:44 »

Вроді розібрався.
Просто робили тимчасовий платіж на суму заборгованованості, без урахування вартості послуги. Тому в кабінеті показувало достатньо коштів, а от послуга не могла стартонути, бо для неї вже не вистачало коштів.. От така петрушка
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #51 : 24 Июня 2018, 00:51:43 »

Вітаю, допоможіть розібратися з ситуацією.
Приклад.
У клієнта на балансі -25 грн. Тарифний план підключений 200 грн. Відповідно абонента заблоковано, послуга заморожена, абона форвардить на заглушку - все добре.
Телефонує клієнт, включіть мені послугу, бо капець тре, завтра оплачу, сам не вмію користуватися. Колцентр робить тимчасовий платіж на 25 грн, адже згідно особистого кабінету саме такої суми не вистачає.

Ну і доступ клієнту видкриваєтья, з табилці ipset ip видаляється, але послуга не розморожується, а відповідно в accel не отримує швидкість. І виходить клієнт працює на анлімі, оськільки коли в accel  пусті данні в шейпері, то він взагалі не шейпить.. Але діло не в шейпі, а втому що послуга надається, але не розморожується.

Звичайно можна довго вчити колцентр користуватися калькулятором, або робити тимчасовий через особистий кабінет клієнта (але може потрібно тимчасовий на більший термін).

Що порадите? Якось фіксити баланс, що відображається, з урахування послуги, що заморозилась? Чи дрочити колцентр, щоб не втикали?
Записан
Pa4ka
Старожил
****

Карма: 4
Offline Offline

Сообщений: 281

591884591
Просмотр профиля Email
« Ответ #52 : 25 Июня 2018, 09:16:57 »

Вітаю, допоможіть розібратися з ситуацією.
Приклад.
У клієнта на балансі -25 грн. Тарифний план підключений 200 грн. Відповідно абонента заблоковано, послуга заморожена, абона форвардить на заглушку - все добре.
Телефонує клієнт, включіть мені послугу, бо капець тре, завтра оплачу, сам не вмію користуватися. Колцентр робить тимчасовий платіж на 25 грн, адже згідно особистого кабінету саме такої суми не вистачає.

Ну і доступ клієнту видкриваєтья, з табилці ipset ip видаляється, але послуга не розморожується, а відповідно в accel не отримує швидкість. І виходить клієнт працює на анлімі, оськільки коли в accel  пусті данні в шейпері, то він взагалі не шейпить.. Але діло не в шейпі, а втому що послуга надається, але не розморожується.

Звичайно можна довго вчити колцентр користуватися калькулятором, або робити тимчасовий через особистий кабінет клієнта (але може потрібно тимчасовий на більший термін).

Що порадите? Якось фіксити баланс, що відображається, з урахування послуги, що заморозилась? Чи дрочити колцентр, щоб не втикали?

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

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #53 : 26 Июня 2018, 02:38:33 »

Якщо у абона стоїть, що він не заблокований, то чому має ip не видалятися з ipset?
Ну я вже зрозумів, що колцентру будемо закуповувати калькулятори ) Ну в абона то працює, бо доступ відкрито, і видало швидкість по тарифу, або дефолтну.
Ось принцип роботи модуля СоА
ht  tp://forum.nodeny.com.ua/index.php?topic=3060.msg32878#msg32878
тут про заморожену послугу нічого не йдеться
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #54 : 26 Июня 2018, 19:17:52 »

расширение функционала любого программного продукта всегда ведет к таким вот багам
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #55 : 27 Июня 2018, 03:29:52 »

основне питання - це розширення функціоналу, чи допрацювання білінга, чи баг )))
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #56 : 27 Июня 2018, 19:04:26 »

Все таки я рахую, що це баг, або я якось не вірно налаштував.

Ситуація.
Підключили абона, включили тимчасовий на 3 дні, протягом 3 днів він не заплатив, з нього знялося за 3 днів. Потім він сплачує лише вартість тарифного плана. Але коштів мало б не вистачати. Але оськільки послуга заморожена - то доступ йому відкривається. Лише не видається швидкість по тарифу, а видається дефолтна..

Хтось знає як це фіксити?
Записан
Redmen
NoDeny
Ветеран
*

Карма: 62
Offline Offline

Сообщений: 546


Подяку в КАРМУ


Просмотр профиля WWW
« Ответ #57 : 28 Июня 2018, 00:56:01 »

Це не баг, а функціонал, все залежить від налаштувань і забаганок!
А взагалі то потрібно більше інформації!
Як побудоване ядро мережі (все в одному чи з НАСами), які НАСи, як налаштовані послуги і модуль послуг?

Крім того якщо абону дали кредит, то в цей момент, повноцінно підключаеться послуга і гроші списуються в відповідному розмірі, а коли кредит завершено = абона блокує, і коли абон погасив заборгованість = доступ розблоковується
Записан

Приймаю подяку у вигляді карми... та/або грошей Подмигивающий
t.me/MrMethod
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #58 : 28 Июня 2018, 01:12:44 »

Це не баг, а функціонал, все залежить від налаштувань і забаганок!
А взагалі то потрібно більше інформації!
Як побудоване ядро мережі (все в одному чи з НАСами), які НАСи, як налаштовані послуги і модуль послуг?

Крім того якщо абону дали кредит, то в цей момент, повноцінно підключаеться послуга і гроші списуються в відповідному розмірі, а коли кредит завершено = абона блокує, і коли абон погасив заборгованість = доступ розблоковується
В тому то весь і прикол, що доступ розблоковується,  послуга не може розморозитися, бо не вистачає коштів.

Я то про ядро можу розповісти, але не думаю, що це повязно з насами, чи ще чимось іншим. Все відпрацьовується вірно, згідно логіки і налаштувань.

Яку я бачу проблему, що в білінгку включається доступ коли послуга заморожена. А це не мало б бути, якщо тут звичайно не закладався якийсь інший сенс і логіка.

Ідея з замороженою послугою, дуже прикольна. Знову ж таки, можливо я її не вірно приміняю, або не вірно розумію. Як я бачу логіку дії з налаштуваннями послуги з режимом "стандарт" та "Не активувати послугу поки не стане достатньо коштів".
-Клієнту видається кредит і активується послуга з цього дня.
-Якщо клієнт заплатив все вчасно, то просто послуга активна 30 днів і знімається вартість послуги, по завершенню кредиту.
-Якщо через 30 днів на балансі клієнта достатньо коштів - повторна активація. (доречі, тут може бути така ж проблема, що при тарифу 200 грн, на рахунку буде 100 і послуга заморозиться, а доступ клієнту буде відкрито)
-Якщо клієнт не заплатив до строку закінчення кредиту, послуга закінчується і знімається кошти пропорційно.
-Коли клієнт робить оплату = Вартість послуги+Вартість використаних днів по кредиту - активується послуга з цього дня і активна 30 діб.

Але саме в останньому пункті проблема, якщо клієнт заплатив суму меншу.. В нього виходить вічне користування на дефолтній швидкості (1мбіт/с) Але не в цьому проблема, проблема в тому, що йому відкривається доступ коли послуга заморожена і він сплатив лише борг і не сплатив вартість послуги..
« Последнее редактирование: 28 Июня 2018, 01:49:41 от tom » Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #59 : 29 Июня 2018, 04:36:25 »

Дякую, всим хто допоміг. (Макс, Ваня, Дмитро)
Вирішується ця проблема дописуванням процедури radreply
А, саме потрібно змінити код на щось подібне. Де ця умова вирішальна " IF usr_id IS NULL OR usr_id = 0 OR u_state = 'off' OR ISNULL(add_attr) THEN" Тобто - якщо не знайдений користувач у звязці з таблиці mac_uid, або абонент ВІДКЛЮЧЕНИЙ (з цим теж були труднощі), або ж відсутній сервіс з радіус атрибутами (ось тут і вирішальна ситуйовіна, що якщо навіть білінг поставе клієнта на включений, він всерівно буде заблокований, доки не активується послуга)

SELECT NULL, login, 'Framed-IP-Address', usr_ip, '=';
    IF usr_id IS NULL OR usr_id = 0 OR u_state = 'off' OR ISNULL(add_attr) THEN
        SELECT NULL, login, 'L4-Redirect', '1', '=';
        SELECT NULL, login, 'L4-Redirect-ipset', 'cap', '=';
        SELECT NULL, login, 'Filter-Id', '1024/1024', '=';
    ELSE
        attr_loop: WHILE TRUE DO
          SELECT strSplit(add_attr, '\n', i) INTO line;
          IF LENGTH(line) = 0 OR i > 20 THEN LEAVE attr_loop; END IF;
          IF line LIKE '%+=%' THEN
              SELECT NULL,login,strSplit(line, '+=', 1),strSplit(line, '+=', 2),'+=';
          ELSEIF line LIKE '%=%' THEN
              SELECT NULL,login,strSplit(line, '=', 1),strSplit(line, '=', 2),'=';
          END IF;
          SET i = i + 1;
        END WHILE;
     END IF;

Ну і ще варто додати, якщо абони знайдений в mac_uid

        SELECT radius_attr INTO add_attr FROM users_services
            WHERE uid=usr_id AND tags LIKE '%,inet,%' LIMIT 1;
        SELECT state INTO u_state FROM users  WHERE id=usr_id;
Записан
Страниц: 1 2 3 [4]
  Печать  
 
Перейти в:  

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