Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: andromeda от 28 Января 2019, 15:23:59



Название: Массовое изменение текущих пакетов
Отправлено: andromeda от 28 Января 2019, 15:23:59
День добрый.
В N+ предусмотрены механизмы массовой смены тарифных планом, как это было в N50?


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 29 Января 2019, 00:38:22
Выбираешь пользователей по фильтру, нажимаешь кнопку "сменить тариф", в новом окне выбираешь тип услуг (интернет или основные) которые подлежат смене т.к у одного абона может быть несколько услуг подключено, выбираешь услугу, нажимаешь enter и у всех выбранных абонентов услуга не меняется, но меняется параметр "следующая услуга". 600 грн. Делать?


Название: Re: Массовое изменение текущих пакетов
Отправлено: Redmen от 29 Января 2019, 13:13:10
делать! я за


Название: Re: Массовое изменение текущих пакетов
Отправлено: andromeda от 29 Января 2019, 15:16:13
Выбираешь пользователей по фильтру, нажимаешь кнопку "сменить тариф", в новом окне выбираешь тип услуг (интернет или основные) которые подлежат смене т.к у одного абона может быть несколько услуг подключено, выбираешь услугу, нажимаешь enter и у всех выбранных абонентов услуга не меняется, но меняется параметр "следующая услуга". 600 грн. Делать?
Я решил проблему, мне нужно единоразова. Оператор просто один день не спал.)


Название: Re: Массовое изменение текущих пакетов
Отправлено: Cell от 29 Января 2019, 23:43:38
гг а всего-то пару  очень простых запросов в мускуле. Чуваки, нужно читать книжки!!!!


Название: Re: Массовое изменение текущих пакетов
Отправлено: Redmen от 30 Января 2019, 09:24:17
гг а всего-то пару  очень простых запросов в мускуле. Чуваки, нужно читать книжки!!!!
Так и делаем! читать умеем)


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 30 Января 2019, 22:30:14
Так я не понял, делать или нет?

P.S. Сделал. Тестирую


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 31 Января 2019, 16:43:08
Модуль называется "Модуль массового изменения «следующей» услуги", 500 грн. Описание:

На странице списка клиентов после применения любых фильтров появится возможность всем выбранным клиентам изменить услугу, которая будет подключена после завершения текущей («следующая услуга»). Затрагиваются только услуги из одноименных модулей - например, если выбрать смену на услугу «интернет», то только такого типа услуги будут изменены.


Название: Re: Массовое изменение текущих пакетов
Отправлено: Jovani от 16 Октября 2019, 12:11:05
Поставил данный модуль.
Но при смене есть в Debug ошибки
Код:
The target table v_services of the UPDATE is not updatable 

{
  'param' => [
    4,
    8577,
    'inet_unlim'
  ],
  'sql' => 'UPDATE v_services SET next_service_id=? WHERE uid=? AND module=? LIMIT 1'
};
 
 UPDATE v_services SET next_service_id='4' WHERE uid='8577' AND module='inet_unlim' LIMIT 1


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 16 Октября 2019, 12:13:06
Какой mysql? Что-то много делают разрабы несовместимым...


Название: Re: Массовое изменение текущих пакетов
Отправлено: Jovani от 16 Октября 2019, 12:24:22
Версия сервера: 5.7.27


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 17 Октября 2019, 10:44:34
Да, уже такая штука запрещена, поэтому надо делать так:

Код:
UPDATE users_services u LEFT JOIN services s ON u.service_id = s.service_id SET next_service_id=? WHERE uid=? AND module=?

скачай модуль заново


Название: Re: Массовое изменение текущих пакетов
Отправлено: Jovani от 19 Октября 2019, 09:10:57
Скачал, переустановил.
Ошибки сейчас нет, но тариф не меняет.


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 21 Октября 2019, 17:26:51
Скачал, переустановил.
Ошибки сейчас нет, но тариф не меняет.
выше написано: у всех выбранных абонентов услуга не меняется, но меняется параметр "следующая услуга"


Название: Re: Массовое изменение текущих пакетов
Отправлено: sedo26 от 15 Июня 2021, 09:17:34
Не производит массового изменения услуги с обычного тарифа на комбо тариф (омега тв).


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 15 Июня 2021, 11:08:27
Т.е параметр "следующая услуга" не меняется?


Название: Re: Массовое изменение текущих пакетов
Отправлено: sedo26 от 15 Июня 2021, 11:47:41
Т.е параметр "следующая услуга" не меняется?

Да, и после изменения пишет что изменено 0 абонентам.


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 15 Июня 2021, 13:20:49
включай дебаг режим и приводи sql


Название: Re: Массовое изменение текущих пакетов
Отправлено: sedo26 от 15 Июня 2021, 14:49:36
выборка
Код:
........
+ 0.226441
320 Db.pm::sql
UPDATE v_services SET next_service_id='60' WHERE uid='21' AND module='inet_omegatv' LIMIT 1
Строк: 0. Время выполнения sql: 0.0001 сек
+ 0.226656
320 Db.pm::sql
UPDATE v_services SET next_service_id='60' WHERE uid='20' AND module='inet_omegatv' LIMIT 1
Строк: 0. Время выполнения sql: 0.0001 сек
+ 0.226873
320 Db.pm::sql
UPDATE v_services SET next_service_id='60' WHERE uid='19' AND module='inet_omegatv' LIMIT 1
Строк: 0. Время выполнения sql: 0.0001 сек
+ 0.227100
320 Db.pm::sql
UPDATE v_services SET next_service_id='60' WHERE uid='18' AND module='inet_omegatv' LIMIT 1
Строк: 0. Время выполнения sql: 0.0001 сек
+ 0.227317
320 Db.pm::sql
UPDATE v_services SET next_service_id='60' WHERE uid='16' AND module='inet_omegatv' LIMIT 1
Строк: 0. Время выполнения sql: 0.0001 сек
+ 0.227531
320 Db.pm::sql
UPDATE v_services SET next_service_id='60' WHERE uid='15' AND module='inet_omegatv' LIMIT 1
Строк: 0. Время выполнения sql: 0.0001 сек
+ 0.227745
320 Db.pm::sql
UPDATE v_services SET next_service_id='60' WHERE uid='12' AND module='inet_omegatv' LIMIT 1
Строк: 0. Время выполнения sql: 0.0001 сек
+ 0.227960
320 Db.pm::sql
UPDATE v_services SET next_service_id='60' WHERE uid='11' AND module='inet_omegatv' LIMIT 1
Строк: 0. Время выполнения sql: 0.0001 сек
+ 0.263024
320 Db.pm::sql
INSERT INTO pays SET cash='0', mid='0', category='380', reason='60', comment='<p class=\'small_msg\'>Выбрано 1992 клиентов</p><p class=\'small_msg\'>група XXX<br>Послуга = «Безмежний-30 Мбіт/сек»</p>', creator_ip=INET_ATON('100.111.6.91'), creator='admin', creator_id='8', time='1623761194'
Строк: 1. Время выполнения sql: 0.0348 сек
+ 0.265820
320 Db.pm::sql
INSERT INTO webses_data SET created=UNIX_TIMESTAMP(), expire=UNIX_TIMESTAMP()+'10800', role='admin', aid='8', unikey='xIq4VNTc6mcEEQ4t/k5b5w', module='users', data='$VAR1 = {\'-made\' => {\'msg\' => \'Выполнено для 0 клиентов\',\'error\' => undef,\'created\' => 1623761194},\'-input\' => {\'a\' => \'users\'}};'
Строк: 1. Время выполнения sql: 0.0024 сек
+ 0.268149
646 calls.pm::Render
Elapsed time: 0.268079 sec


Код:
+	0.050198	
94 Db.pm::connect
Connecting to DBI:mysql:database=nodeny;host=localhost;port=3306;mysql_connect_timeout=10 : 0.010986 sec
+ 0.052061
320 Db.pm::sql
SELECT *, UNIX_TIMESTAMP() AS t, (SELECT COUNT(*) FROM users) AS c, (SELECT GROUP_CONCAT(CONCAT(post, '-', login)) FROM admin WHERE post<>'0') AS employees, (SELECT COUNT(*) FROM documents WHERE tags LIKE '%,system,%' AND tags LIKE '%,template=%' AND parent_id>0) AS templates FROM config ORDER BY time DESC LIMIT 1
Строк: 1. Время выполнения sql: 0.0017 сек
+ 0.053034
221 calls.pm
GET data: _unikey=dZlEctMia4kDRoJfM5pc6w
+ 0.053105
272 calls.pm
  _unikey  = 'dZlEctMia4kDRoJfM5pc6w'
+ 0.053181
286 calls.pm
Cookies:
  _ga          = 'GA1.3.275292173.1622639961'
  _gid         = 'GA1.3.1137188940.1623664687'
  cols         = 'iauth,iip,uname,ufio,d_tip_ftth,d_adr_street,d_adr_house,d_adr_room,d_adr_telefon,d_level_onu,
d_mac_onu_client,d_olt_port_port,d_distf,d_entity,sservice_id,snext_service_id,utraf,ubalance,
d_snmp_name,d_nas_punkt,d_nas_punkt_sh,d_mac,d_wifis'
  debug        = '1'
  graph_rough  = '0'
  noses        = 'horWwCdACSrgbuB80Tao2Q'
  usr_field    = 'all'
+ 0.069998
320 Db.pm::sql
SELECT * FROM websessions s LEFT JOIN admin a ON (s.uid=a.id AND s.role='admin') WHERE BINARY ses='horWwCdACSrgbuB80Tao2Q' AND uid>0 LIMIT 1
Строк: 1. Время выполнения sql: 0.0002 сек
+ 0.070077
374 calls.pm
Сессия `horWwCdACSrgbuB80Tao2Q` существует, uid: 8, role: admin
+ 0.070319
320 Db.pm::sql
UPDATE websessions SET expire=UNIX_TIMESTAMP()+'7200' WHERE BINARY ses='horWwCdACSrgbuB80Tao2Q' LIMIT 1
Строк: 1. Время выполнения sql: 0.0001 сек
+ 0.070511
320 Db.pm::sql
SELECT * FROM webses_data WHERE BINARY unikey='dZlEctMia4kDRoJfM5pc6w' LIMIT 1
Строк: 1. Время выполнения sql: 0.0001 сек
+ 0.070672
426 calls.pm
Данные по unikey dZlEctMia4kDRoJfM5pc6w:
{
  '-input' => {
    'a' => 'users'
  },
  '-made' => {
    'error' => undef,
    'msg' => 'Выполнено для 0 клиентов',
    'created' => 1623760947
  }
};
+ 0.072002
1585 calls.pm::Require_mod
require /usr/local/nodeny/web/start_admin.pl
+ 0.072595
1585 calls.pm::Require_mod
require /usr/local/nodeny/web/_users.pl
+ 0.081426
1585 calls.pm::Require_mod
require /usr/local/nodeny/web/_Data.pl
+ 0.088114
320 Db.pm::sql
SELECT * FROM dictionary
Строк: 567. Время выполнения sql: 0.0004 сек
+ 0.094038
320 Db.pm::sql
SELECT id, location, gpsX, gpsY FROM places
Строк: 1270. Время выполнения sql: 0.0014 сек
+ 0.106909
320 Db.pm::sql
SELECT service_id, title FROM services ORDER BY module, title
Строк: 43. Время выполнения sql: 0.0002 сек
+ 0.107880
320 Db.pm::sql
SELECT * FROM datasetup ORDER BY title
Строк: 21. Время выполнения sql: 0.0002 сек
+ 0.108957
320 Db.pm::sql
SELECT * FROM user_grp ORDER BY grp_name
Строк: 18. Время выполнения sql: 0.0002 сек
+ 0.115492
320 Db.pm::sql
SELECT * FROM services ORDER BY module, title
Строк: 43. Время выполнения sql: 0.0002 сек
+ 0.144414
320 Db.pm::sql
SELECT COUNT(*) AS n FROM users u WHERE u.grp in (13,8,20,10,21,15,14,4,7,6,11,2,12,22,16,17,9,18)
Строк: 1. Время выполнения sql: 0.0021 сек
+ 0.144491
687 _users.pl::go
не выбрано ни одного фильтра
+ 0.146235
646 calls.pm::Render
Elapsed time: 0.146192 sec


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 16 Июня 2021, 07:41:27
Покажи результат:
Код:
SELECT * FROM v_services WHERE uid='21'\G


Название: Re: Массовое изменение текущих пакетов
Отправлено: sedo26 от 16 Июня 2021, 09:01:41
Покажи результат:
Код:
SELECT * FROM v_services WHERE uid='21'\G

Код:
mysql> SELECT * FROM v_services WHERE uid='21'\G
*************************** 1. row ***************************
             id: 236105
            uid: 21
         pay_id: 670470
     service_id: 30
       tm_start: 1622494807
         tm_end: 1625086800
next_service_id: 32
           tags: ,inet,speed,start_traf=0,service_log_token=300010008243,
         module: inet_unlim
       category:
          title: Безмежний-30 Мбіт/сек
    description: <div><b>Безмежний-30 Мбіт/сек</b></div>
<div><font size="2">Безлімітний інтернет на швидкості:&nbsp;</font></div>
<div><font size="2">до 30 Мбіт/сек - світ</font></div>
<div><font size="2">до 100 Мбіт/сек - Україна</font></div>
       grp_list: ,,
          price: 200
     auto_renew: 1
       no_renew: 0
          param: $VAR1 = {'wait_pos_balance' => '0','speed_in2' => 100000000,'period' => 2592000,'script' => '','speed_in1' => 30000000,'min_traf' => '0','speed_out1' => 30000000,'mode' => '2','speed_in4' => 0,'speed_out3' => 0,'speed_in3' => 0,'tags' => '','finish_count' => '1','speed_out4' => 0,'speed_out2' => 100000000};
1 row in set (0.00 sec)


Название: Re: Массовое изменение текущих пакетов
Отправлено: Efendy от 16 Июня 2021, 21:12:07
Пофиксил. Скачай модуль заново. Проблема была в том, что модуль разрешал переходить только на тот же самый тип услуг чтобы избежать проблем когда у абона несколько услуг и модуль должен знать какой именно услуге менять "следующую услугу". Сделал чтоб если услуга связана с инетом, то можно заказать для любой комбинации: инет <-> Любой комботариф или Любой комботариф <-> Любой комботариф