очень похоже на ошибку...
имеется тарифный план, скрин приложил
лирическое отступление: у нас частенько бывают блокировки договора задним числом, и часто бывает что клиент был неактивен уже какое то время, потом очнулся в середине месяца и просит заблокировать договор и говорит что станция у него уже давно не работает, мол заблокируйте с начала месяца, комерческий отдел идет навстречу, а в биллинге у меня зависают наработки за трафик образованный обычным флудом в инете, в среднем там 3-4 мегабайта в день на каждый реальный IP падает
вообщем избавится от этого можно только закрыв диапазон адресов и затем перелив трафика, это очень неудобно не считая того что договор не закрыт а просто приостановлен статусом и как бы отрубать блок адресов не правильно
нашли кривое решение, может кому пригодится, которое и отображено в атаче, правда там есть ошибочка, ограничение на 100 мег надо делать безусловным, так как договор может (как правило так и есть) заблокирован статусом с ПЕРВОГО числа месяца при этом за этот месяц есть флуд, логично что пропорциональность схлопнет "ограничение" до нуля, но...
догвор:
Код:
mysql> select * from contract where id = 363;
+-----+-------+-------+--------+------------+-------+------+------------+------+------+----+---------+-----+------+----------+--------+-------------+---------------------+
| id | gr | title | pswd | date1 | date2 | mode | closesumma | pgid | pfid | fc | comment | del | scid | sub_list | status | status_date | last_tariff_change |
+-----+-------+-------+--------+------------+-------+------+------------+------+------+----+---------+-----+------+----------+--------+-------------+---------------------+
| 363 | 66561 | 5336 | xxxxxx | 2009-05-01 | NULL | 0 | -100000.00 | 1 | 1 | 1 | Радиант | 0 | 0 | | 4 | 2009-05-01 | 2009-06-08 17:38:20 |
+-----+-------+-------+--------+------------+-------+------+------------+------+------+----+---------+-----+------+----------+--------+-------------+---------------------+
Код:
mysql> select * from contract_status where cid = 363;
+-----+-----+--------+-----+------------+-------+------------------------+
| id | cid | status | uid | date1 | date2 | comment |
+-----+-----+--------+-----+------------+-------+------------------------+
| 196 | 363 | 4 | 1 | 2009-05-01 | NULL | временно приостановлен |
+-----+-----+--------+-----+------------+-------+------------------------+
трафик:
Код:
mysql> select * from ipn_contract_data_1_200906 where cid=363;
+--------+------------+----+-----------+-----+-----+-----+--------+---------+
| id | dt | hh | source_id | cid | aid | sid | amount | cost |
+--------+------------+----+-----------+-----+-----+-----+--------+---------+
| 95748 | 2009-06-08 | 17 | 1 | 363 | 493 | 1 | 43967 | 0.00000 |
| 96263 | 2009-06-08 | 18 | 1 | 363 | 493 | 1 | 6832 | 0.00000 |
| 96779 | 2009-06-08 | 19 | 1 | 363 | 493 | 1 | 448 | 0.00000 |
| 97810 | 2009-06-08 | 21 | 1 | 363 | 493 | 1 | 896 | 0.00000 |
| 98835 | 2009-06-08 | 23 | 1 | 363 | 493 | 1 | 448 | 0.00000 |
| 102400 | 2009-06-09 | 6 | 1 | 363 | 493 | 1 | 448 | 0.00000 |
| 105524 | 2009-06-09 | 12 | 1 | 363 | 493 | 1 | 448 | 0.00000 |
| 107613 | 2009-06-09 | 16 | 1 | 363 | 493 | 1 | 448 | 0.00000 |
| 113718 | 2009-06-10 | 4 | 1 | 363 | 493 | 1 | 448 | 0.00000 |
+--------+------------+----+-----------+-----+-----+-----+--------+---------+
наработка:
Код:
mysql> select * from contract_account where cid = 363;
+------+----+-----+-----+---------+
| yy | mm | cid | sid | summa |
+------+----+-----+-----+---------+
| 2009 | 6 | 363 | 1 | 0.00000 |
+------+----+-----+-----+---------+
детализация по тарифу:
Код:
mysql> select * from tariff_detail_1_200906 where cid = 363;
+-----+--------------+--------+------+
| cid | cost_type_id | amount | cost |
+-----+--------------+--------+------+
| 363 | 1 | 54383 | 0 |
+-----+--------------+--------+------+
cost_type_id = 1 это "Предоплаченный трафик"
Итог: договор блокирован весь месяц, пропорциональность должна свести условие узла тарифа к FALSE, и этот флудовый трафик должен был посчитаться в соответсвии с узлом "до 0 безусловно", но этого не произошло