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

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

Карма: 1
Offline Offline

Сообщений: 108


Просмотр профиля Email
« : 01 Сентября 2009, 02:38:34 »

Здравствуйте. Закончился Август и начался Сентябрь, в билинге ни каких изменений не произашло. Со счета деньги у клиентов не сняло на размер абонплаты, никого не заблокировало. Почему? Как настроить чтоб каждый месяц снималась абонплата?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #1 : 01 Сентября 2009, 06:59:27 »

перечитай мануал внимательней, там есть об етом.
Записан
Fredik
NoDeny
Старожил
*

Карма: 5
Offline Offline

Сообщений: 362


Просмотр профиля
« Ответ #2 : 01 Сентября 2009, 08:27:58 »

с билингом ишла дока
блок "Закрытие месяца"
открываеш docs/work.html#month
и читаеш там все написано.
Цитировать
Расчетный период системы NoDeny - месяц. C 1 по 31 число происходит накопление трафика в учетной записи клиента, после чего вступает в действие новый тарифный план, для которого необходимо трафик учитывать с нуля, поэтому при наступлении нового месяца, должны быть выполнены следующие действия:

- формирование платежа-снятия согласно пакета тарификации клиента и потребленного им трафика;
- запись данных в архив;
- обнуление текущего трафика;
- перевод клиентов на заказанные пакеты.

Эти действия выполняет скрипт «перехода на новый месяц» new_month.pl. Вы должны прописать автоматический запуск new_month.pl в начале каждого месяца, например, 1го числа в 00:00, но никак не в конце - к примеру, 31го числа в 23:59 нельзя. Автоматический запуск можно оформить через crontab:
server_www# cd /usr/local/nodeny
server_www# ee crontab.txt

и введите:
0   0     1    *     *    /usr/bin/perl /usr/local/nodeny/new_month.pl

Поставьте crontab.txt в задания:
server_www# crontab crontab.txt

Текущие задания в crontab-е можно увидеть:
server_www# crontab -l

Должна отобразиться строка, введенная ранее в crontab.txt

Первый раз запустите new_month.pl вручную:
server_www# cd /usr/local/nodeny
server_www# perl new_month.pl
После отработки скрипта, изучите логи в файле NEW_MONTH_LOG_X.XXXX и NEW_MONTH_ERROR_X.XXX. Последний хранит лог ошибок и в обычном случае он не должен существовать, т.е не должно быть ни одной ошибки. Поскольку операция перехода на новый месяц ответственная, вы должны убедиться, что все клиенты были переведены. Если в процессе перевода возникнет ошибка, например, станет недоступна БД либо иной сбой, то скрипт new_month.pl попытается восстановить соединение. Если же это не удастся, то скрипт запишет в NEW_MONTH_ERROR_X.XXX сообщение где произошла ошибка. Когда при изучении данного лога, вы обнаружите, что не все клиенты были переведены - запустите скрипт снова - он не будет повторно переводить клиентов, которые уже прошли эту процедуру.

Кроме того, по окончании работы, new_month.pl записывает соответствующеее итоговое событие в БД, которое вы можете увидеть в админке.

Как было сказано выше, для каждого клиента формируется платеж-снятие согласно пакета тарификации и потребленного им трафика. Хотя скрипт запускается в начале месяца, записи о снятиях проводятся предудущим месяцем - за 5 секунд до его окончания. Это необходимо для корректной отчетности.

Перед «переходом на новый месяц» будет не лишним сделать резервную копию базы данных.

Рекомендуется запускать new_month.pl как можно ближе к 00:01 первого числа месяца. При наступлении 1го числа, трафик продолжает считаться и если осуществить поздно переход, то трафик с начала месяца до момента запуска скрипта будет считаться трафиком за прошлый месяц. Таким образом, будет некоторое несоответствие в данных клиента. Например, абонент скачал 50Мб в январе, наступило 1 февраля, клиент продолжает загружать из интернета информацию. В 4 часа ночи запускается скрипт перехода на новый месяц и считает что клиент загрузил в январе 55Мб (5мб успел загрузить за 4 часа в феврале). Таким образом, с клиента снимутся деньги за 55Мб, после чего трафик обнулится. В статистике клиент будет видеть что 1-го февраля он загрузил 5мб, но на титульной странице будет отображаться 0Мб - т.к. 5Мб уже засчитаны в предыдущий месяц. То есть чем позже будет запущен скрипт new_month.pl, тем больше будет разница в суточных и общих данных.

Запускайте new_month.pl в 00:01 первого числа каждого месяца и такой проблемы у вас не будет.

Если же по каким-либо причинам вам необходимо запустить скрипт не первого числа, то при запуске используйте ключ t:

server_www# perl new_month.pl -t

Условия при которых с наступлением нового месяца не производится списание денежных средств со счета клиента:

1) Если клиент находится в группе, в характеристиках которой указано не производить списание средств (например группа «удаленные»)

2) Если параметр клиента «день начала потребения услуг» отрицательный - означает, что клиент ни одним из его ip не авторизовался и не потреблял интернет никогда с момента создания его данных
Записан
gonhik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #3 : 04 Июля 2011, 21:34:30 »

Здравствуйте, запустил скрип new_month.pl -t (делал все по мануалу) но в результате в NEW_MONTH_ERROR записало вот что - DBD::mysql::db do failed: Duplicate entry '0-6-2011' for key 1 at /usr/local/nodeny/new_month.pl line 118.
  DBD::mysql::db do failed: Duplicate entry '0-6-2011' for key 1 at /usr/local/nodeny/new_month.pl line 121.
 и что теперь делать ?
 Непонимающий
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #4 : 04 Июля 2011, 23:40:20 »

1. Удалить дубликаты.
2. При появлении дубликатов  -- думать дальше
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #5 : 05 Июля 2011, 17:19:48 »

Репейр бзе данных сделай, тут на форуме есть как делать.
Подключить сервер с упсу, желательно не вырубать его с кнопки.
Вобщем это проблема базы данных..  Вот такой вот мускул чувствительный
Записан
dzensys
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 28


Просмотр профиля Email
« Ответ #6 : 22 Июля 2011, 02:32:20 »

Здравствуйте, запустил скрип new_month.pl -t (делал все по мануалу) но в результате в NEW_MONTH_ERROR записало вот что - DBD::mysql::db do failed: Duplicate entry '0-6-2011' for key 1 at /usr/local/nodeny/new_month.pl line 118.
  DBD::mysql::db do failed: Duplicate entry '0-6-2011' for key 1 at /usr/local/nodeny/new_month.pl line 121.
 и что теперь делать ?
 Непонимающий
http://forum.nodeny.com.ua/index.php?topic=1125.0
Записан
gonhik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #7 : 01 Сентября 2011, 00:07:48 »

Здравствуйте, после 00.00 01.09.2011 в клиентов не сняло денег со счета и не обнулило трафик , скрипт запустил даже в ручную несколько раз, появился файл NEW_MONTH_LOG_X.XXXX и NEW_MONTH_ERROR_X.XXX но там пусто, что делать ?   Непонимающий   
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #8 : 01 Сентября 2011, 12:46:40 »

1. Восстановить бэкап базы данных
2. Запустить скрипт перехода на след месяц.
3. Если не отработает, то представить более подробные данные.
Записан
gonhik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #9 : 01 Сентября 2011, 23:49:39 »

 Обеспокоенный и так  после проделанных (выше указанных действий) не чего не изменилось, а в логах добавилось вот такое сообщение
Цитировать
Can't call method "prepare" on an undefined value at nodeny.pl line 352.
DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Unknown database 'bill' at nodeny.pl line 488
DBD::mysql::db do failed: Table 'bill.users' doesn't exist at nodeny.pl line 512.
DBD::mysql::st execute failed: Table 'bill.dblogin' doesn't exist at nodeny.pl line 1313.
DBD::mysql::st execute failed: Table 'bill.dblogin' doesn't exist at nodeny.pl line 1313.
   и теперь при нажатие на кнопку "статистика" пишет
Цитировать
Таблица traf_info, содержащая данные о ходе записи трафика, пуста. Проверьте запущено ли ядро NoDeny.
и как быть теперь ?
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 350


Просмотр профиля
« Ответ #10 : 02 Сентября 2011, 06:13:36 »

Ну судя из лога, очень напрашивается вопрос, существует ли база bill?
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #11 : 02 Сентября 2011, 07:06:04 »

Обеспокоенный и так  после проделанных (выше указанных действий) не чего не изменилось, а в логах добавилось вот такое сообщение
Цитировать
Can't call method "prepare" on an undefined value at nodeny.pl line 352.
DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Unknown database 'bill' at nodeny.pl line 488
DBD::mysql::db do failed: Table 'bill.users' doesn't exist at nodeny.pl line 512.
DBD::mysql::st execute failed: Table 'bill.dblogin' doesn't exist at nodeny.pl line 1313.
DBD::mysql::st execute failed: Table 'bill.dblogin' doesn't exist at nodeny.pl line 1313.
   и теперь при нажатие на кнопку "статистика" пишет
Цитировать
Таблица traf_info, содержащая данные о ходе записи трафика, пуста. Проверьте запущено ли ядро NoDeny.
и как быть теперь ?
бекап етсь?
походу дело в мускуле - либо залочены таблицы либо их просто нет.
если есть ссн давай гляну.
аська.
Записан
gonhik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #12 : 02 Сентября 2011, 07:29:35 »

бекап есть , запустился все нормально, сделал как написано в мануале,
Цитировать
походу дело в мускуле - либо залочены таблицы либо их просто нет.
а как воете можно исправить ?
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #13 : 02 Сентября 2011, 09:26:56 »

бекап есть , запустился все нормально, сделал как написано в мануале,
Цитировать
походу дело в мускуле - либо залочены таблицы либо их просто нет.
а как воете можно исправить ?

Я понимаю что в гугле вас забанили, поэтому помогаю чем могу:

Цитировать

Но судя по ошибке, все же хотелось бы узнать а база данных bill  вобще существует в СУБД ?
Записан
gonhik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #14 : 04 Сентября 2011, 03:35:47 »

Всем огромное  спасибо, решение проблемы вот тут forum.nodeny.com.ua/index.php?topic=373.0
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

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