3) У услуг не забудьте добавить возможность выбрать нужную политику, которая бы срабатывала при подключении услуги пользователю.serjk писал(а):Затянули немного с ТЗ. Вот что получилось.
Проект изменений по функционалу периодических списаний.
1. Вводится разделение на системные, пользовательские, административные блокировки (перечислены в порядке возрастания приоритета)
2. В данный момент времени может существовать несколько блокировок лицевого счета (не более одной каждого типа). При этом действует блокировка с наивысшим приоритетом. При удалении этой блокировки, вступает в действие блокировка с более низким приоритетом.
3. В систему вводится новая сущность "Политика списаний". Каждая сервисная связка ссылается на одну из политик, заведенных в системе. Политика данной сервисной связки может быть выбрана в произвольный момент времени, так же может быть изменена сама сущность политики. При изменении политики, текущие настройки пересчета для данной сервисной связки действуют до конца текущей блокировки.
4. Политика списаний включает в себя следующие настройки
4.1 Параметры пересчета для каждого из типов блокировок (админская, пользовательская, системная)
a) не списывать абонентскую плату в блокировке
б) пересчитывать абонентскую плату
в) уменьшать предоплаченный трафик
4.2 Параметры блокировки
а) устанавливать системную блокировку при недостатке средств
[Если данный параметр установлен, перед проведением периодических списаний с типом "в начале РП", "плавный" проверяется достаточность средств на лицевом счете для проведения списания. В начале РП проверка производится для всех сервисных связок данного лицевого счета, привязанных к данному РП, у которых параметр 4.2а установлен. Если средств недостаточно, лицевой счет блокируется системной блокировкой до проведения списаний. Поведение списаний по счету в состоянии системной блокировки определяется политикой каждой из сервисных связок]
б) проверять разблокировку - список временных точек (например 9:00, 21:00)
[в случае, если лицевой счет был заблокирован до проведения списания и на нем имеются средства, в некоторой момент времени пересчитанный в состоянии блокировки размер абонентской платы может стать достаточен для разблокировки счета и проведения списания]
4.3 Параметры возврата средств
[параметры определяют, возвращать ли средства на лицевой счет в случае, если в результате пересчета абонентской платы в состоянии блокировки в течение данного расчетного периода средства были списаны излишне]
a) возвращать при снятии блокировки
б) возвращать при внесении платежа
в) возвращать в конце расчетного периода
г) возвращать при удалении сервисной связки
5. В свойствах лицевого счета добавляется флаг "включать интернет при выходе из блокировки"
4.1) Стоит надеяться на перерасчитывать предоплаченные единицы по телефонии?
4.2а) Гениально, но как быть со списаниями в конце РП? И мне кажется можно упростить:
[Если данный параметр установлен, то перед проведением любых периодических списаний проверяется достаточность средств на лицевом счете для проведения списания. Если средств недостаточно, лицевой счет блокируется системной блокировкой до проведения списаний. Поведение списаний по счету в состоянии системной блокировки определяется политикой каждой из сервисных связок]
Еще предлагаю рассмотреть возможность приоритезации услуг, т.е. выставить каждой зарегистрированной услуги приоритет, с порядке уменьшения которого и будут проводится списания в первую очередь у услуг.
4.2б) Тут спорно, не понимаю. Смотрите могут ли быть в принципе списаны излишние средства? Мы же теперь блокируем счет до проведения списания. Соответственно единственная причина снятия системной блокировки это изменение баланса лицевого счета в большую сторону, может только ее и мониторить?
4.3) Нужен ли этот пункт с учетом выше написанного?
5) Этот флаг вообще по моему анахронизм, лично мне его мало, я давно делаю: блокировки нет - интернет есть, системная блокировка - интернет есть, но медленный, админская - интернета нет, да и вообще это можно регулировать RFW.