Есть несколько тарифных планов и пользуются ими активно абоненты.
Начальству пришла в голову мысль поменять немного цены в тарифных планах.
Умру отключая абонентов от ТП и подключая обратно.
Вопрос: как можно без отключения абонентов от ТП поменять в тарифах цены на трафик и абонку ?
Изменить тарифные планы
Как то сталкивались с такой ситуацией.
Вот это помогло. Но желательно на тестовой базе проверить.
Данные по границам тарификации хранятся в таблице iptraffic_borders, однако прямых ссылок на эту таблицу нет и необходимо сделать несколько выборок для того чтобы узнать какую запись необходимо изменить.
Описание необходимых полей в необходимых таблицах:
Таблица iptraffic_services_data:
id - идентификатор услуги;
tst_id - идентификатор записи в таблице traf_serv_tclasses.
Таблица traf_serv_tclasses:
tst_id - идентификатор записи;
tclass_id - идентификатор класса трафика;
borders_id - идентификатор записей в таблице iptraffic_borders;
prepaid_units - количество предоплаченных единиц в байтах.
Таблица iptraffic_borders:
borders_id - идентификатор записей;
border - граница в байтах
cost - стоимость.
Пример изменение стоимости трафика класса 10 для границы 0 с 3.80 на 3.20:
mysql> select tst_id from iptraffic_services_data where id = 2;
+--------+
| tst_id |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)
mysql> select borders_id from traf_serv_tclasses where tst_id=1 and tclass_id = 10;
+------------+
| borders_id |
+------------+
| 1 |
+------------+
1 row in set (0.01 sec)
mysql> select * from iptraffic_borders where borders_id = 1;
+------------+------------+------+
| borders_id | border | cost |
+------------+------------+------+
| 1 | 5369757696 | 0.1 |
| 1 | 5368709120 | -100 |
| 1 | 0 | 3.80 |
+------------+------------+------+
3 rows in set (0.01 sec)
mysql> update iptraffic_borders set cost=3.20 where borders_id=1 and border=0;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
ВАЖНО!
Все операции с базой данных UTM5 необходимо выполнять исключительно при остановленном ядре UTM5.
Вот это помогло. Но желательно на тестовой базе проверить.
Данные по границам тарификации хранятся в таблице iptraffic_borders, однако прямых ссылок на эту таблицу нет и необходимо сделать несколько выборок для того чтобы узнать какую запись необходимо изменить.
Описание необходимых полей в необходимых таблицах:
Таблица iptraffic_services_data:
id - идентификатор услуги;
tst_id - идентификатор записи в таблице traf_serv_tclasses.
Таблица traf_serv_tclasses:
tst_id - идентификатор записи;
tclass_id - идентификатор класса трафика;
borders_id - идентификатор записей в таблице iptraffic_borders;
prepaid_units - количество предоплаченных единиц в байтах.
Таблица iptraffic_borders:
borders_id - идентификатор записей;
border - граница в байтах
cost - стоимость.
Пример изменение стоимости трафика класса 10 для границы 0 с 3.80 на 3.20:
mysql> select tst_id from iptraffic_services_data where id = 2;
+--------+
| tst_id |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)
mysql> select borders_id from traf_serv_tclasses where tst_id=1 and tclass_id = 10;
+------------+
| borders_id |
+------------+
| 1 |
+------------+
1 row in set (0.01 sec)
mysql> select * from iptraffic_borders where borders_id = 1;
+------------+------------+------+
| borders_id | border | cost |
+------------+------------+------+
| 1 | 5369757696 | 0.1 |
| 1 | 5368709120 | -100 |
| 1 | 0 | 3.80 |
+------------+------------+------+
3 rows in set (0.01 sec)
mysql> update iptraffic_borders set cost=3.20 where borders_id=1 and border=0;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
ВАЖНО!
Все операции с базой данных UTM5 необходимо выполнять исключительно при остановленном ядре UTM5.
Можно, но есть условие:mf.viper писал(а):хех ...
надо сейчас внести изменения ... тоесть в течении 1 дня ... а расчетный период закончится в конце месяца )
Упростим задачу ... можно ли изменить периодическую составляющую стоимость в услуге (например руками в базе) безболезненно для биллинга ?.. естественно при выключенном биллинге.
1) новая стоимость не должна быть меньше уже вычтенной периодической стоимости.
_уже_вычтенной_dwemer писал(а):хм. а мы меньшую стоимость безболезненно в базе ставили.
а вот бОльшую - наоборот, биллинг у всех досписал разницу, пришлось платежами всем возвращать
Допустим сегодня 5 число, стоимость периодики 30000, мы хотим чтобы стоимость стала 3000, в этом случае уже опоздали, а вот если бы было 2 число было бы все хорошо.