Перейти к содержимому
Калькуляторы

Вопрос спецам по Lanbilling'y переход с 1.9 до 2.0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там их писать минут 20 с чаем и перекурами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, saaremaa сказал:

Там их писать минут 20 с чаем и перекурами.

Ну-ну. Я уже пробовал. Ни фига это не просто получается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Господа - кто-нить делал генерацию счетов в pdf? Поделитесь плиз

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 04/01/2018 в 22:21, Andrei сказал:

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

На основании требований к оператору связи мы предоставляем оценку стоимости с учетом сделанных наработок (уже с учетом кастомизации). 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, lidia сказал:

На основании требований к оператору связи

Еще раз - требования типовые, утверждены ППРФ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

При ревизии абон.базы ЛБ для выгрузок в СОРМ аыявил в accounts пустую запись:

> select a.uid, a.login, a.name, a.abonent_surname, a.abonent_name, a.abonent_patronymic,agr.number from accounts as a, agreements as agr where a.uid=agr.uid and a.uid=6 ;
+-----+-------+------+-----------------+--------------+--------------------+-------------+
| uid | login | name | abonent_surname | abonent_name | abonent_patronymic | number      |
+-----+-------+------+-----------------+--------------+--------------------+-------------+
|   6 | NULL  |      |                 |              |                    | 14-01/140_1 |
|   6 | NULL  |      |                 |              |                    | 14-02/140_2 |
|   6 | NULL  |      |                 |              |                    | number-248  |
+-----+-------+------+-----------------+--------------+--------------------+-------------+
3 rows in set (0.00 sec)

При том, что реальный абонент с договором номер  14-01/140 вот он:

 select a.uid, a.login, a.name, a.abonent_surname, a.abonent_name, a.abonent_patronymic,agr.number from accounts as a, agreements as agr where a.uid=agr.uid and agr.number="14-01/140";
+-----+-------+-------------------------------------------------------------------------------------+-----------------+--------------+--------------------+-----------+
| uid | login | name                                                                                | abonent_surname | abonent_name | abonent_patronymic | number    |
+-----+-------+-------------------------------------------------------------------------------------+-----------------+--------------+--------------------+-----------+
| 262 | bshu  | Баххххххх ххххххххххххххххххххххххххххххОАО                                         |                 |              |                    | 14-01/140 |
+-----+-------+-------------------------------------------------------------------------------------+-----------------+--------------+--------------------+-----------+
1 row in set (0.01 sec)

Думаю - подчищу базу, чтоб не отсвечивала пустая запись в выгрузках в СОРМ (там такое не допускается), однако ж

delete from accounts where uid=6;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails 
(`billing`.`card_set`, CONSTRAINT `card_set_ibfk_2` FOREIGN KEY (`acc_tpl`) REFERENCES `accounts` (`uid`))

Как я понимаю - связанные записи в других таблицах? Но не пойму где именно:

mysql> select * from card_set ;
+--------+----------------------------------------------------+------------+--------+---------+---------------+
| set_id | set_descr                                          | created_by | cur_id | acc_tpl | expire_period |
+--------+----------------------------------------------------+------------+--------+---------+---------------+
|      1 | Универсальная карта оплаты                         |          0 |      1 |       6 |             0 |
+--------+----------------------------------------------------+------------+--------+---------+---------------+
1 row in set (0.00 sec)

Кто сталкивался с таким или подобным? Карты оплаты не используем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И попутно спрошу - в каком поле хранится параметр, указывающий к какому агенту относится учетка (скорее всего таблица vgroups)?

 describe vgroups;
+----------------+---------------------+------+-----+---------------------+----------------+
| Field          | Type                | Null | Key | Default             | Extra          |
+----------------+---------------------+------+-----+---------------------+----------------+
| vg_id          | int(11)             | NO   | PRI | NULL                | auto_increment |
| uid            | int(11)             | YES  | MUL | NULL                |                |
| cu_id          | int(11)             | YES  | MUL | NULL                |                |
| descr          | varchar(255)        | NO   |     |                     |                |
| login          | varchar(128)        | YES  | MUL | NULL                |                |
| pass           | varchar(128)        | YES  |     | NULL                |                |
| agrm_id        | int(11)             | YES  | MUL | NULL                |                |
| blk_req        | tinyint(4)          | NO   | MUL | 0                   |                |
| blocked        | tinyint(4)          | NO   | MUL | 0                   |                |
| changed        | tinyint(4)          | NO   | MUL | 0                   |                |
| tar_id         | int(11)             | YES  | MUL | NULL                |                |
| id             | int(11)             | NO   | MUL | 0                   |                |
| shape          | int(10) unsigned    | NO   |     | 0                   |                |
| c_date         | date                | NO   | MUL | 0000-00-00          |                |
| d_limit        | bigint(20) unsigned | NO   |     | 0                   |                |
| d_clear        | date                | YES  |     | NULL                |                |
| max_sessions   | int(11)             | NO   |     | 1                   |                |
| amount         | double              | NO   |     | 0                   |                |
| current_shape  | int(10) unsigned    | NO   |     | 0                   |                |
| ip_det         | tinyint(1)          | NO   |     | 0                   |                |
| port_det       | tinyint(1)          | NO   |     | 0                   |                |
| archive        | tinyint(1)          | NO   | MUL | 0                   |                |
| acc_ondate     | datetime            | NO   | MUL | 0000-00-00 00:00:00 |                |
| acc_offdate    | datetime            | NO   | MUL | 0000-00-00 00:00:00 |                |
| block_date     | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| creation_date  | timestamp           | NO   |     | CURRENT_TIMESTAMP   |                |
| template       | tinyint(1)          | NO   |     | 0                   |                |
| dirty          | tinyint(4)          | NO   |     | 0                   |                |
| connected_from | int(11)             | YES  |     | NULL                |                |
| parent_vg_id   | int(11)             | YES  | MUL | NULL                |                |
| port_id        | int(11)             | YES  | MUL | NULL                |                |
| user_packet_id | int(11)             | YES  | MUL | NULL                |                |
+----------------+---------------------+------+-----+---------------------+----------------+
32 rows in set (0.00 sec)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В первом случае uid=6, а во втором 262. Это разные абоненты с точки зрения БД.

Да и номера договоров различаются. 14-01/140_1 != 14-01/140
Думаю надо смотреть в поле archive, если оно 1 - то учетка/договор/абонент удалены (через веб-интерфейс не видно будет) и в СОРМ удаленных выгружать наверное не стоит.

 

ID агента - vgroups.id

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mysql> select count(*) from accounts where login='';
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*) from accounts where login=NULL;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*) from accounts where login='NULL';
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*) from accounts where login="NULL";
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

Вот и надо почистить их.

В вэб-интерфейсе ни пользователей, ни учеток с номерами договоров 14-01/140_1 или 14-01/140_2 или number-248 нет. 

И не архивные они:
 

 select a.uid, a.archive, a.login, a.name, a.abonent_surname, a.abonent_name, a.abonent_patronymic,agr.number from accounts as a, agreements as agr where a.uid=agr.uid and a.uid=6 ;
+-----+---------+-------+------+-----------------+--------------+--------------------+-------------+
| uid | archive | login | name | abonent_surname | abonent_name | abonent_patronymic | number      |
+-----+---------+-------+------+-----------------+--------------+--------------------+-------------+
|   6 |       0 | NULL  |      |                 |              |                    | 14-01/140_1 |
|   6 |       0 | NULL  |      |                 |              |                    | 14-02/140_2 |
|   6 |       0 | NULL  |      |                 |              |                    | number-248  |
+-----+---------+-------+------+-----------------+--------------+--------------------+-------------+
3 rows in set (0.00 sec)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 минут назад, Andrei сказал:

select count(*) from accounts where login=NULL;

Так не правильно.
надо select count(*) from accounts where login is NULL;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mysql> select count(*) from accounts where login is NULL;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

mysql> select uid,name,login from accounts where login is NULL;
+-----+------+-------+
| uid | name | login |
+-----+------+-------+
|   6 |      | NULL  |
+-----+------+-------+
1 row in set (0.00 sec)

Чет я не пойму что к чему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

select archive from agreements where uid=6; 

 

1 минуту назад, Andrei сказал:

mysql> select count(*) from accounts where login is NULL;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

mysql> select uid,name,login from accounts where login is NULL;
+-----+------+-------+
| uid | name | login |
+-----+------+-------+
|   6 |      | NULL  |
+-----+------+-------+
1 row in set (0.00 sec)

Чет я не пойму что к чему.

1 Абонент и к нему 3 договора. Видимо так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mysql> select archive,number from agreements where uid=6;
+---------+-------------+
| archive | number      |
+---------+-------------+
|       1 | 14-01/140_1 |
|       1 | 14-02/140_2 |
|       0 | number-248  |
+---------+-------------+
3 rows in set (0.00 sec)

Т.е. один-то должен быть виден. А нету

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интересный глюк. Проверил на тестовом - у нас не проявляется. Хотя у нас версия 2.0-024

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

посмотрите

select * from usergroups_staff where uid = 6;

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

28 минут назад, mvelich сказал:

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

 select * from usergroups_staff where uid = 6;
+----------+-----+
| group_id | uid |
+----------+-----+
|        0 |   6 |
|        1 |   6 |
+----------+-----+
2 rows in set (0.00 sec)

а что за 1я группа еще видна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

7 minutes ago, Andrei said:

а что за 1я группа еще видна?

Ну... какая-то группа с id = 1

select * from usergroups where group_id = 1;

 

 

А этот абонент у Вас, случаем, не шаблон?

Покажите полную запись

 

select * from accounts where uid = 6\G

 

5 minutes ago, mvelich said:

А этот абонент у Вас, случаем, не шаблон?

Скорее всего, так и есть. При удалении ругается на связь с card_set (набор карт), как раз к набору карт и привязывается шаблон пользователя

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот что видно:

mysql> select * from usergroups where group_id = 1;
+----------+------------------+------------------+---------------+-------------+-------------+--------------+--------------+---------------+--------------+--------------+-----------------------+-----------------------------+----------------+-------------------+
| group_id | name             | description      | promise_allow | promise_max | promise_min | promise_rent | promise_till | promise_limit | promise_curr | block_amount | block_duration_debtor | block_duration_denouncement | promise_ondays | promise_blockdays |
+----------+------------------+------------------+---------------+-------------+-------------+--------------+--------------+---------------+--------------+--------------+-----------------------+-----------------------------+----------------+-------------------+
|        1 | Абоненты         | Абоненты         |             1 |          50 |          10 |            0 |            3 |            30 |            0 |            0 |                     0 |                           0 |              0 |                10 |
+----------+------------------+------------------+---------------+-------------+-------------+--------------+--------------+---------------+--------------+--------------+-----------------------+-----------------------------+----------------+-------------------+
1 row in set (0.00 sec)

mysql> select * from accounts where uid = 6;
+-----+------+-------+------+----------+------+-------+------+-------+------+-------+---------------+----------+-----------+------------------+---------------+------------------+------+-------+------+------+------+------+------+-------+-----------+-----------+-------------+-------------+-------------+---------+----------------+---------------+-----------------+------------+------------+---------------------+--------------+---------------------+------+-------+----------+---------+--------+-----------+--------------+-----------------+--------------------+
| uid | uuid | login | pass | ipaccess | type | descr | name | phone | fax  | email | bill_delivery | category | bank_name | branch_bank_name | treasury_name | treasury_account | bik  | settl | corr | kpp  | inn  | ogrn | okpo | okved | gen_dir_u | gl_buhg_u | kont_person | act_on_what | pass_sernum | pass_no | pass_issuedate | pass_issuedep | pass_issueplace | birthdate  | birthplace | last_mod_date       | wrong_active | wrong_date          | oksm | okato | template | archive | mobile | ownership | abonent_name | abonent_surname | abonent_patronymic |
+-----+------+-------+------+----------+------+-------+------+-------+------+-------+---------------+----------+-----------+------------------+---------------+------------------+------+-------+------+------+------+------+------+-------+-----------+-----------+-------------+-------------+-------------+---------+----------------+---------------+-----------------+------------+------------+---------------------+--------------+---------------------+------+-------+----------+---------+--------+-----------+--------------+-----------------+--------------------+
|   6 | NULL | NULL  |      |        0 |    2 |       |      |       |      |       |             1 |        0 |           |                  |               |                  |      |       |      |      |      |      |      |       |           |           |             |             |             |         | NULL           |               |                 | 0000-00-00 |            | 2012-06-21 07:23:01 |            0 | 0000-00-00 00:00:00 |  643 |       |        1 |       0 | NULL   |      NULL |              |                 |                    |
+-----+------+-------+------+----------+------+-------+------+-------+------+-------+---------------+----------+-----------+------------------+---------------+------------------+------+-------+------+------+------+------+------+-------+-----------+-----------+-------------+-------------+-------------+---------+----------------+---------------+-----------------+------------+------------+---------------------+--------------+---------------------+------+-------+----------+---------+--------+-----------+--------------+-----------------+--------------------+
1 row in set (0.00 sec)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

39 minutes ago, Andrei said:

Вот что видно:

Как и предполагалось, template = 1.

Можно или в том запросе, где вы получаете данные для сорма, отфильтровать "and template = 0" (best) или попробовать удалить набор карт. Возможная засада -- что он уже где-то был использован, пусть даже в тестовом режиме, и система не даст этого сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может сделать

update accounts template set 0 where uid = 6

а потом просто удалить?

На счет карт - в вэбе в "наборах карт" пусто и тут

 select * from pay_cards;
Empty set (0.00 sec)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

14 hours ago, Andrei said:

update accounts template set 0 where uid = 6

Тоже вариант )

Можно тем же запросом проставить ей логин (чтобы удобнее было искать), а потом штатно через интф удалить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Только в синтаксисе я накосячил. :) Надо:
update accounts set template=0, login='empty' where uid=6;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После сильнейшей грозы почему-то стали отваливаться pppoe сессии. Запустил радиус-агента в режиме debug, в логе при разрыве сессии:

[RunAcctRequestInst:1802]       Acct STOP (Port-Error), Session-Id 0000198C, vg_id 1313
 [RunAcctRequestInst:1825]       Record with SessionID = '0000198C' found in cache
 [do_sql_query:354]      SELECT t.traff_type, t.dynamic_rent, c.cat_idx, c.includes, c.above, l.c_limit_in, l.c_limit_out FROM ....
 [PutIpBack:275] Put ip 172.21.43.250 back to pool
 [RunAcctRequestInst:1907]       Ip 172.21.43.250 released for session 0000198C (Acct-STOP)
 [do_sql_query:354]      DELETE FROM `sessionsradius` WHERE `session_id` = '0000198C' AND nas = '1474477830'
 [Close:1600]    Session '0000198C' removed from DB.

И такие Acct STOP (Port-Error) пролетают пачкой, штук 30-40. Потом эти роутеры поднимают сессии обратно,но через 4 минуты опять тоже самое.

В чем может быть причина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.