====== Злочин та кара ======
{{ :raskolnikovsaxe.jpg?300|}}
Починаючи з Ubilling 0.6.7 реалізовано нову механіку вбивства старушенцій нарахування штрафів, за перебування абонентом у неактивному (читаємо - неоплаченому) стані впродовж певного інтервалу, який зазначається в кількості днів. Штраф нараховується одноразово, при досягненні абонентом зазначеного порогу.
====== Як конфігурується? ======
Вся обробка здійснюється щоденним викликом відповідного action з [[remoteapi|Remote API]] - crimeandpunishment. В кроні краще розмістити її вже після нарахування абонплати та інших дій, що зачіпають баланс абонента. Наприклад ось так:
2 2 * * * /bin/ubapi "crimeandpunishment"
Поведінка цього механізму повністю регулюється за допомогою таких опцій [[alteriniconf|alter.ini]] ось в такому вигляді для прикладу:\\
CAP_ENABLED=1
CAP_DAYLIMIT=30
CAP_PENALTY_PERCENT=0
CAP_PENALTY=20
CAP_PAYID=1
CAP_IGNOREFROZEN=1
====== Що взагалі відбувається? ======
Призначено це все для опису бізнес логіки такого вигляду:
* Абонент //Родіон Романович// забув оплатити інтернет і раптово стан його рахунку став меншим за кредитний ліміт.
* Він не є замороженим - ігнорування цього факту відбувається за допомогою **CAP_IGNOREFROZEN**.
* Для нього заводиться відповідний запис у БД і лічильник днів неактивності виставляється в 1 (один).
* Якщо лічильник неактивності вже існує - до нього додається ще один день, на шляху до невідворотного кінця.
* Якщо лічильник неактивності Раскольнікова стає рівним кількості в 30 днів - **CAP_DAYLIMIT** - відбувається зняття суми 20 грошей **CAP_PENALTY** з рахунку, під виглядом платежу типу "готівка" **CAP_PAYID**
* Лічильник продовжує тікати... ну так... про всяк випадок.
* Якщо абонент розкаявся і вніс на рахунок суму, достатню для погашення боргу (або Баланс почав дорівнювати кредитному ліміту) - лічильник неактивності виставляється в 0 (нуль) і продовжує очікувати подальшого розвитку подій у засідці.
* Про всі ці цікаві події можна дізнатися за допомогою відповідного модуля "Чорної магії":
{{:dostoevsky.png?|}}