Просмотр сообщений
|
Страниц: [1] 2
|
1
|
Главная категория / Модули NodenyPlus / Модуль(или модули) кассы Атол и терминала РНКБ ;D
|
: 11 Февраля 2021, 16:34:34
|
Здравствуйте, прошу рассмотреть возможность создания модуля , размер оплаты и сроки работ. Функционал модуля - выводить чеки на печать при поступлении наличных денег, передаче средств через платежную систему -например "Пэбери"(иногда люди требуют хоть терминалы им выдают чек но не всех устаривает то что там напечатано), через эквайринг - с сайта (да именно бумажный чек люди иногда требуют) через банковские терминалы оплаты кредитными картами (терминал может печатать чек но только на ту сумму что принял без указания услуг, периода, фио и т.д). Предполагаем использовать фискальные чекопечатающие принтеры типа АТОЛ. Подключение USB. Виртуальный Com порт. Также прошу рассмотреть возможность подключения терминалов оплаты банковских карт от РНКБ. При чем желательно чтобы билинг передавал сумму оплаты на терминал - чтобы не приходилось руками ее набирать. Подключение терминалов по локальной сети. (вроде есть и через com порт и usb но я не видел). Подключение к биллингу по локальной сети в которой предполагается полное отсутствие сбоев. Алгоритм работы представляю такой: 1.Пришел клиент - менеджер нашел учетку, вызвал форму внесения денег (форма грузится - проверяет себя что загрузилась полностью и работоспособна), менеджер в форме вводит сумму, после набора суммы жмет на кнопку принять деньги с терминала или кнопку принять деньги наличные. Также нужно предусмотреть кнопку распечатать чек за уже поступившие средства и идет к пункту 3 минуя пункт 2. 2. Принимает деньги или списывает с карточки, видит факт поступления денег в вызванной форме и переходит к печати чека (чеков). 3. Ставит или не ставит птичку печатать чек, также ставит или не ставит птичку печатать копию чека (потому что иногда чеки выписываются вручную с печатью в книжках учета клиентов (копия чека не вносится в память фискального устройства). Если печатается чек за предыдущий период - он не должен вноситься в память фискального устройства или задвоение будет, пусть печатается копия если это возможно. Далее менеджер нажимает в форме кнопку ОК и на фискальник выводится чек или чек и копия чека. 4. Форма приема денег и печати чеков закрывается. В чек должны вытягиваться следующие поля: Шапка чека (текст и логотип - может быть запрограммировано в принтер), Дата, время, ID клиента, ФИО клиента, адрес клиента, название услуги (или услуг) стоимость оплаченной услуги (услуг), период оплаты для каждой услуги (это комментарий наверное), суммарная стоимость, подвал чека (просто Спасибо :-) или еще какой то текст и может картинка штрихкода). Через 1С дорого стоит такое сделать и не надежно...
|
|
|
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
но там нет таких процедур я проверил очень внимательно.
Что еще можно сделать, не хочется с правками носервер запускать?
|
|
|
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;
Что мы делаем не так?
|
|
|
10
|
Главная категория / Модули NodenyPlus / Re: Модуль SMS +
|
: 01 Июня 2020, 13:05:59
|
Хорошо, остался последний шаг, как без добавления тегов в установленные услуги пользователю с 5 услугами, заставить смс отсылать когда заканчиваются 2 и 5 услуга? Можно допустим в комент как то ставить названия услуг через запятую, чтобы модуль считывал название и отсылал смс или доп. поле сделать в которое можно вписывать название услуг за которыми модуль смс будет следить и отсылать смс при изменении состояния услуг.
|
|
|
11
|
Главная категория / Модули NodenyPlus / Re: Модуль SMS +
|
: 30 Мая 2020, 12:08:21
|
Тут все классно в модуле отправки СМС о ПОПОЛНЕНИИ СЧЕТА , но опять же смс нужно отсылать не всем, а только тем кто хочет, как это регулировать? Что значит нужно менять логику работы модуля списаний?
Можно ли сделать как у Вас это хорошо получилось с модулем отправки смс, там есть тэг который регулирует кому отсылать СМС, и сделать такой же модуль но который будет следить за + пополнением балланса или установкой кредита.
|
|
|
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+ такой код есть. Если у вас не обновленный бил, тогда ищите фрагмент например он есть в if( ref $actions->{set_service} && $actions->{set_service}{mode} =~ /^(2|4)$/ && !$const_price ) Еще есть такие фрагменты: их можно заменить на
|
|
|
|