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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2
1  Главная категория / Модули NodenyPlus / Модуль(или модули) кассы Атол и терминала РНКБ ;D : 11 Февраля 2021, 16:34:34
Здравствуйте, прошу рассмотреть возможность создания модуля , размер оплаты и сроки работ.

Функционал модуля -  выводить чеки на печать при поступлении наличных денег,  передаче средств через платежную систему -например "Пэбери"(иногда люди требуют хоть терминалы им выдают чек но не всех устаривает то что там напечатано), через эквайринг - с сайта (да именно бумажный чек люди иногда требуют) через банковские терминалы оплаты кредитными картами (терминал может печатать чек но только на ту сумму что принял без указания услуг, периода, фио и т.д).

Предполагаем использовать фискальные чекопечатающие принтеры типа АТОЛ. Подключение USB. Виртуальный Com порт.

Также прошу рассмотреть возможность подключения терминалов оплаты банковских карт от РНКБ.
При чем желательно чтобы билинг передавал сумму оплаты на терминал - чтобы не приходилось руками ее набирать. Подключение терминалов по локальной сети. (вроде есть и через com порт и usb но я не видел).

Подключение к биллингу по локальной сети в которой предполагается полное отсутствие сбоев.

Алгоритм работы представляю такой:
1.Пришел клиент - менеджер нашел учетку, вызвал форму внесения денег (форма грузится - проверяет себя что загрузилась полностью и работоспособна), менеджер в форме вводит сумму, после набора суммы жмет на кнопку принять деньги с терминала или кнопку принять деньги наличные. Также нужно предусмотреть кнопку распечатать чек за уже поступившие средства и идет к пункту 3 минуя пункт 2.

2. Принимает деньги или списывает с карточки, видит факт поступления денег в вызванной форме и переходит к печати чека (чеков).

3. Ставит или не ставит птичку печатать чек, также ставит или не ставит птичку печатать копию чека (потому что иногда чеки выписываются вручную с печатью в книжках учета клиентов (копия чека не вносится в память фискального устройства).

Если печатается чек за предыдущий период - он не должен вноситься в память фискального устройства или задвоение будет, пусть печатается копия если это возможно.

Далее менеджер нажимает в форме кнопку ОК и на фискальник выводится чек или чек и копия чека.

4. Форма приема денег и печати чеков закрывается.

В чек должны вытягиваться следующие поля: Шапка чека (текст и логотип - может быть запрограммировано в принтер), Дата, время, ID клиента, ФИО клиента, адрес клиента, название услуги (или услуг) стоимость оплаченной услуги (услуг), период  оплаты для каждой услуги (это комментарий наверное), суммарная стоимость, подвал чека (просто Спасибо :-) или еще какой то текст и может картинка штрихкода).
 Строит глазки

Через 1С дорого стоит такое сделать и не надежно...
2  Главная категория / Nodeny Plus / Re: нет доступа в веб интерфейс ни под админом ни под пользователем : 31 Декабря 2020, 08:37:34
Оринтировочно проблема или в генерации ключей для вебсессий или в передаче -  поиске ID пользователя. Судя по проблеме и в древних версиях возможно баг с датой в самом линухе, но это маловероятно. Загуризиль на тестовом серваке - тоже ищем.
3  Главная категория / Nodeny Plus / Re: Связка Juniper MX80 и Nodeny Plus : 09 Декабря 2020, 23:50:37
Не могу грузить файлы почему то , спасиб за конфиги, попробую.

Я тоже против опции 82 но настаивает руководство из за того что пользователи не раз вскрывали ящики и переставляли порты в коммутаторе.

вот все таблицы, только таблица pays и 2 таблицы с трафиком большие - остальные не очень.
Табл   Тип табл  Режим сопост     Объём данных?   Объём индекс Своб место? Авто приращ?   Строк?   Комментарий?
          admin   InnoDB   utf8_general_ci   16 384   16 384   0   45   ~ 34   
   auth_log   InnoDB   utf8_general_ci   16 384   49 152   0   1   0   
   auth_now   InnoDB   utf8_general_ci   16 384   49 152   0   22 234   ~ 198   
   cards   InnoDB   utf8_general_ci   65 536   32 768   0   501   ~ 500   
   changes   InnoDB   utf8_general_ci   2 637 824   212 992   2 097 152   3 533   ~ 3 545   
   config   MyISAM   utf8_general_ci   315 956   2 048   0   76   75   
   data0   InnoDB   utf8_general_ci   1 589 248   3 751 936   2 097 152   6 404   ~ 5 239   
   datasetup   MyISAM   utf8_general_ci   3 864   5 120   0   31   30   
   dictionary   InnoDB   utf8_general_ci   16 384   32 768   0   189   ~ 163   
   documents   InnoDB   utf8_general_ci   16 384   16 384   0   1   0   
   dopdata   Представление   ?   
   dopfields   InnoDB   cp1251_general_ci   16 384   32 768   0   34   ~ 28   
   dopvalues   InnoDB   cp1251_general_ci   18 366 464   11 567 104   4 194 304   372 284   ~ 346 859   
   fullusers   Представление   ?   
   ip_mac   InnoDB   utf8_general_ci   16 384   16 384   0      0   
   ip_pool   InnoDB   utf8_general_ci   1 589 248   2 326 528   2 097 152   27 182   ~ 27 430   
   links   InnoDB   utf8_unicode_ci   16 384   0   0   1   0   
   mac_uid   InnoDB   utf8_general_ci   360 448   524 288   0   5 672   ~ 5 173   
   nets   InnoDB   utf8_general_ci   16 384   0   0   3   ~ 1   
   notifications   InnoDB   utf8_general_ci   16 384   49 152   0   173   ~ 172   
   notifications_users   InnoDB   utf8_general_ci   16 384   49 152   0   1   0   
   pays   InnoDB   utf8_general_ci   84 492 288   17 350 656   2 097 152   998 521   ~ 338 850   
   pkt_to_srv   InnoDB   utf8_unicode_ci   196 608   0   0      ~ 3 836   
   places   InnoDB   utf8_general_ci   16 384   0   0   1   0   
   places_events   InnoDB   utf8_general_ci   16 384   81 920   0   1   0   
   ports   InnoDB   utf8_general_ci   16 384   16 384   0   1   0   
   p_country   InnoDB   cp1251_general_ci   16 384   0   0   2   ~ 1   
   p_filial   InnoDB   cp1251_general_ci   16 384   0   0   2   ~ 1   
   p_offices   InnoDB   cp1251_general_ci   16 384   0   0   3   ~ 2   
   p_okrug   InnoDB   cp1251_general_ci   16 384   0   0   3   ~ 2   
   p_region   InnoDB   cp1251_general_ci   16 384   0   0   2   ~ 1   
   p_town   InnoDB   cp1251_general_ci   16 384   0   0   19   ~ 18   
   services   InnoDB   utf8_general_ci   65 536   0   0   127   ~ 83   
   ses_traf   MyISAM   utf8_unicode_ci   0   1 024   0   1   0   
   smsru   InnoDB   utf8_general_ci   1 589 248   1 064 960   2 097 152   6 972   ~ 6 927   
   tickets   InnoDB   utf8_general_ci   16 384   196 608   0   1   0   
   traflost   MyISAM   utf8_general_ci   0   1 024   0      0   
   users   InnoDB   utf8_general_ci   1 589 248   81 920   2 097 152      ~ 4 972   
   users_services   InnoDB   utf8_general_ci   1 589 248   524 288   2 097 152   103 157   ~ 5 159   
   users_trf   InnoDB   utf8_general_ci   1 589 248   81 920   2 097 152      ~ 4 819   
   user_grp   InnoDB   utf8_general_ci   16 384   0   0   30   ~ 24   
   v_auth_now   Представление   ?   
   v_ips   Представление   ?   
   v_opt82   Представление   ?   
   v_services   Представление   ?   
   websessions   MyISAM   utf8_general_ci   0   4 096   0      0   
   webses_data   InnoDB   utf8_general_ci   16 384   49 152   0      ~ 6   
   X2020_2_19   MyISAM   utf8_unicode_ci   68 683 862   56 334 336   0      2 641 687   
   X2020_2_20   MyISAM   utf8_unicode_ci   36 625 758   30 100 480   0      1 408 683   
   
4  Главная категория / Nodeny Plus / Re: Связка Juniper MX80 и Nodeny Plus : 09 Декабря 2020, 11:53:11
Абонов не много около 5000... муэскьюэльтюнер запускаю периодически... иннодб и в дефолте работает нормально во всем кроме СОА это продавец билинга реккомендовал увеличить до 19 гиг, мы попробовали - не помогло, убрали назад. Только с СОА проблемы, и найти не можем уже 3 дня.
5  Главная категория / Nodeny Plus / Re: Связка Juniper MX80 и Nodeny Plus : 09 Декабря 2020, 09:11:02
SELECT u.id, u.balance, u.name, u.state, a.auth_start, a.ip, a.properties, INET_ATON(a.ip) AS ipn FROM ( SELECT INET_NTOA(i.ip) AS ip, '' as properties, UNIX_TIMESTAMP() AS auth_start FROM users u JOIN ip_pool i ON i.uid=u.id WHERE u.lstate=1 UNION ALL SELECT ip, properties, start AS auth_start FROM auth_now ) a JOIN ip_pool i ON INET_ATON(a.ip)=i.ip JOIN users u ON i.uid=u.id WHERE TRUE  AND u.id=5288 AND u.state='on
но это для одного пользователя
+------+---------+------+-------+------------+--------------+------------+------------+
| id   | balance | name | state | auth_start | ip           | properties | ipn        |
+------+---------+------+-------+------------+--------------+------------+------------+
| 5288 |    0.00 | 5288 | on    | 1607414027 | 100.64.0.212 |            | 1681916116 |
+------+---------+------+-------+------------+--------------+------------+------------+
1 row in set (0.21 sec)

а вот для всех 4442 rows in set (3.22 sec)



SELECT INET_NTOA(i.ip) AS ip, '' as properties, UNIX_TIMESTAMP() AS auth_start FROM users u JOIN ip_pool i ON i.uid=u.id WHERE u.lstate=1 UNION ALL SELECT ip, properties, start AS auth_start FROM auth_now

5 189 строк (0.091 s)


mysql> SELECT count(*) from auth_now;
+----------+
| count(*) |
+----------+
|      198 |
+----------+
1 row in set (0.00 sec)
У нас отключена авторизация эти 198 якобы авторизованных это остаток после глюка когда нодени затирал мак адреса. На данный момент авторизация работает только в СОА.... там пока один юзер с ид 5288.

Но даже если запускать скрипт noserver  с одним пользователем все равно вываливается с ошибкой памяти
/usr/bin/perl  /usr/local/nodeny/noserver.pl -g=coa.cfg.pm -u=5288 -v

вот запрос перед ошибкой
SELECT uid, param, tags, service_id FROM v_services WHERE tags LIKE '%,speed,%'
Строк: 4526. Время выполнения sql: 0.0194 сек

*** Error in `/usr/bin/perl': malloc(): memory corruption: 0x00000000025b3200 ***

как временное решение нашли выход переименовать 3 процедуры в файле noserver  (load_usr_info  load_usr_traf  load_nets в load_usr_info_t  load_usr_traf_t  load_nets_t) и поставить SQL_NO_CACHE в 2 запросах.  Но это неправильно.

Максим предлагал увеличить кэш инно дб до 19G - не помогло.

Мы нашли в нете реккомендации по увеличению максимального размера пакета в мускуле до 256 мб - не помогло.

Памяти весь биллинг ест около 2 гиг оперативки из 20 , память протестили - без ошибок... Что еще можно сделать стобы запустить noserver без правок, такое впечатление что процедуры load_usr_info  load_usr_traf  load_nets где то пересекаются с другими частями программы, или в них есть противоречивые данные или запросы к БД не закрываются.

Возможно это из за того что работают


root      3135  0.9  0.1 181712 32568 ?        S    Dec02  91:55 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d
root      3136  3.3  0.7 292604 174276 ?       S    Dec02 332:50 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -d
root      3137 17.8  1.2 405192 319252 ?       Sl   Dec02 1779:41 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=collectors -d
root     23317  0.1  0.6 286176 167988 pts/3   S    Dec04   7:51 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos_uslugi -d
root     23334  0.0  0.6 285368 167248 pts/3   S    Dec04   7:08 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos_ip -d
root     23346  0.0  0.6 284428 166220 pts/3   S    Dec04   6:47 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos_ip_sorm2 -d
root     23358  0.0  0.6 283940 166024 pts/3   S    Dec04   7:03 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos_pays -d
root     23364  0.0  0.7 311160 191640 pts/3   S    Dec04   6:59 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos -d

но там нет таких процедур я проверил очень внимательно. 

Что еще можно сделать, не хочется с правками носервер запускать?
6  Главная категория / Nodeny Plus / Re: Связка Juniper MX80 и Nodeny Plus : 08 Декабря 2020, 09:27:18
Первый запрос порядка 4 сек. строк 4400

второй порядка 0,002 сек

третий 0,03 сек
7  Главная категория / Nodeny Plus / Re: Связка Juniper MX80 и Nodeny Plus : 07 Декабря 2020, 08:40:12
Ничего не модифицировали, кроме как поставили вывод меток чтобы понять где зависает и SQL_NO_CACHE в запросе.  Попробовали уже для оного пользователя вот такую строку запуска
/usr/bin/perl /usr/local/nodeny/noserver.pl -vv -g=coa.cfg.pm -u=5288

замирает на
SELECT SQL_NO_CACHE uid, MAX(service_id) AS sid FROM v_services WHERE tags LIKE '%,inet,%' GROUP BY uid
Строк: 4495. Время выполнения sql: 0.0187 сек

[1.226527: noserver.pl(137) tasks.pm::run(70) tasks.pm(70) noserver.pl::__ANON__(112) noserver.pl::load_usr_info(201) Db.pm::sql(133) Db.pm::sql(320)]
SELECT u.id, u.balance, u.name, u.state, a.auth_start, a.ip, a.properties, INET_ATON(a.ip) AS ipn FROM ( SELECT INET_NTOA(i.ip) AS ip, '' as properties, UNIX_TIMESTAMP() AS auth_start FROM users u JOIN ip_pool i ON i.uid=u.id WHERE u.lstate=1 UNION ALL SELECT ip, properties, start AS auth_start FROM auth_now ) a JOIN ip_pool i ON INET_ATON(a.ip)=i.ip JOIN users u ON i.uid=u.id WHERE TRUE  AND u.id=5288 AND u.state='on'



если убрать из запроса но кэш то
 SELECT uid, param, tags, service_id FROM v_services WHERE tags LIKE '%,speed,%'

[1.110164: noserver.pl(137) tasks.pm::run(70) tasks.pm(70) noserver.pl::__ANON__(112) noserver.pl::load_usr_info(191) Db.pm::sql(114) Db.pm::connect(94)]
Connecting to DBI:mysql:database=nodeny;host=localhost;port=3306;mysql_connect_timeout=5 : 0.001485 sec

*** Error in `/usr/bin/perl': malloc(): memory corruption: 0x00000000026101b0 ***
[10]+  Killed                  /usr/bin/perl /usr/local/nodeny/noserver.pl -vv -g=coa.cfg.pm -u=5288


Строк: 0. Время выполнения sql: 0.0682 сек

может какие то особенные настройки мускула нужны, или особые настройки пользователя под которым запускается СОА пробовали ставить размер пакета в мускуле 256 мб, не помогло, памяти валом 20 гиг из них занято 2, буфера мусами в мускуле  пробовали ставить 19 гиг - не помогло, уже голову сломали...

При чем отдельно в админнере эти запросы выполняются нормально.

Машина на дебиане 8  ,   perl v5.20.2

запущены процессы биллинга паралельно

root      3135  0.9  0.0 146572 20232 ?        S    Dec02  66:44 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d
root      3136  3.3  0.7 293292 175164 ?       S    Dec02 235:54 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -d
root      3137 17.9  1.2 404164 316080 ?       Sl   Dec02 1262:37 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=collectors -d
root     23317  0.1  0.6 286112 167972 pts/3   S    Dec04   4:59 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos_uslugi -d
root     23334  0.0  0.6 284700 166660 pts/3   S    Dec04   4:28 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos_ip -d
root     23346  0.0  0.6 283956 165912 pts/3   S    Dec04   4:16 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos_ip_sorm2 -d
root     23358  0.0  0.6 283636 165720 pts/3   S    Dec04   4:26 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos_pays -d
root     23364  0.0  0.7 311160 191632 pts/3   S    Dec04   4:22 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -g=make_config_amos -d
root     23858  0.0  0.0 133860 15828 pts/4    T    09:28   0:00 /usr/bin/perl /usr/local/nodeny/noserver.pl -vv -g=coa.cfg.pm -u=5288
нижний - висит


и ничего не происходит...  Подскажите плиз что делать? Может посмотрите?
8  Главная категория / Nodeny Plus / Re: Связка Juniper MX80 и Nodeny Plus : 05 Декабря 2020, 15:12:27
Здравствуйте доделываем связку джунипера и нодени столкнулись с проблемой в модуле СОА

Зависает noserver.pl  намертво, подозреваю  где то не указали переменную или ошибка в программе.

были проблемы с тяжелым запросом... поставили но кэш - заработал
SELECT SQL_NO_CACHE uid, MAX(service_id) AS sid FROM v_services WHERE tags LIKE '%,inet,%' GROUP BY uid

Уважаемые программисты Нодени + помогите пожалуйста  я поставил вывод переменных в консоль, одна из них равна нулю... а на ноль делить нельзя - у меня памяти для ответа не хватит :-)))

 my $n = $max_ipn{$uid} - $min_ipn{$uid};
print "N-".$n."\n";

        my $mask = $masks{$n} or next;

и вот эта $n все время ноль потому что $max_ipn{$uid} и  $min_ipn{$uid} получаются одинаковыми.

зависает программа на этом месте

в районе кода

 my ($res, $ipn1, $ipn2, $mask) = nod::util::check_is_it_net($ip1, $ip2);

        $res or next;

        $M->{users}{$uid}{net_ips} = $ip1.'/'.$mask;


Что мы делаем не так?
9  Главная категория / Модули NodenyPlus / Re: Модуль SMS + : 01 Июня 2020, 14:43:44
Модуль нужен - работать как он будет?  Будет отсылать 5 СМС если подключено 5 услуг?
10  Главная категория / Модули NodenyPlus / Re: Модуль SMS + : 01 Июня 2020, 13:05:59
Хорошо, остался последний шаг, как без добавления тегов в установленные услуги пользователю с 5 услугами, заставить смс отсылать когда заканчиваются 2 и 5 услуга? Можно допустим в комент как то ставить названия услуг через запятую, чтобы модуль считывал название и отсылал смс или доп. поле сделать в которое можно вписывать название услуг за которыми модуль смс будет следить и отсылать смс при изменении состояния услуг.
11  Главная категория / Модули NodenyPlus / Re: Модуль SMS + : 30 Мая 2020, 12:08:21
Тут все классно в модуле отправки СМС о ПОПОЛНЕНИИ СЧЕТА , но опять же смс нужно отсылать не всем, а только тем кто хочет, как это регулировать?  Что значит нужно менять логику работы модуля списаний?

Можно ли сделать как у Вас это хорошо получилось с модулем отправки смс, там есть тэг который регулирует кому отсылать СМС, и сделать такой же модуль но который будет следить за + пополнением балланса или установкой кредита.
12  Главная категория / Модули NodenyPlus / Re: Модуль SMS + : 29 Мая 2020, 16:33:32
Извините но нет, нужно чтобы без тегов в услугах, потому что они у многих назначены, тут желательно посмотреть бы в сторону настроек на странице клиента.
13  Главная категория / Модули NodenyPlus / Re: РНКБ онлаин взаимодействие : 29 Мая 2020, 12:54:16
Так на данный момент работает модуль проплат через РНКБ или только эквайринг?
14  Главная категория / Модули NodenyPlus / Модуль SMS + : 29 Мая 2020, 12:53:02
Здравствуйте, кто возьмется доработать модуль СМС. В стандартной версии модуля для Nodeny2 -Plus, модуль умее отсылать СМС только тем пользователям у которых присутствует услуга с тегом remindsms , но модуль отправляет столько смс сколько у клиента услуг, а услуг у клиента может быть 5 и более , это нерационально, пользователям не нравится.

Нужно добавить в этот модуль функцию выбора услуги  или услуг при окончании или изменении которых должна отсылаться смс.

А также смс о пополнении счета.
15  Главная категория / Общий раздел / Re: Не верно снимаются средства : 26 Мая 2020, 14:30:30
У меня вот такой код есть только, код (2|4) или {2|4}  не находится нигде. Хелп.  Непонимающий
Код:
# Режим уменьшения длительности услуги до X числа следующего месяца
            if( ref $actions->{set_service} && $actions->{set_service}{mode} == 2 && !$const_price )
            {
                my %p = %{$actions->{set_service}};
                $p{tm1} == $p{tm2} && last; # защита
                my $k = sprintf '%.2f', ($p{tm_end} - $p{tm_start}) / ($p{tm2} - $p{tm1});
                $k = 0.01 if $k < 0.01;
                # Неполный месяц, коэффициент $k может быть > 1 кстати
                $reason->{last_day_k} = $k;
                $cash = sprintf '%.2f', $k * $cash;

Блин, я же не могу поддерживать все устаревшие ревизии.  В N+ такой код есть. Если у вас не обновленный бил, тогда ищите фрагмент
Код:
(2|4)
например он есть в
Код:
if( ref $actions->{set_service} && $actions->{set_service}{mode} =~ /^(2|4)$/ && !$const_price )
Еще есть такие фрагменты:
Код:
$p->{mode} == 2
их можно заменить на
Код:
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!