====== Накопичувальні знижки ======
{{ :cudiscounts.jpg?300|}}
Починаючи з Ubilling 0.6.7 реалізовано нову механіку накопичувальних знижок. Що вона собою являє? А представляє вона з себе страшну штуку, яка щодня динамічно крутить відсоток знижки для активних користувачів, при досягненні певних умов, і нараховує відносно цього відсотка частину повної вартості поточного тарифного плану. Вся обробка здійснюється щоденним викликом відповідної дії з [[remoteapi|Remote API]] - cudiscounts. Дуже добре б уже після нарахування абонплати. Наприклад ось так:
1 1 * * * /bin/ubapi "cudiscounts"
Поведінка накопичувальних знижок описується наступними опціями конфіга [[alteriniconf|alter.ini]] в ось такому вигляді для прикладу:\\
CUD_ENABLED=1
CUD_PULLDAYS=30
CUD_PERCENT=1
CUD_PERCENTLIMIT=10
CUD_PAYID=1
CUD_CFID="44"
CUD_OPERATION="ADD"
CUD_ONLY_TAGID=0
====== Що відбувається? ======
Призначено це все для опису бізнес логіки такого вигляду:
* Абонент //Василь Іларіонович// справно платить протягом 30 днів **CUD_PULLDAYS** (ну, як мінімум, у нього все добре з балансом, його не заморожено і не відключено примусово) Можливо, він заплатив наперед - це нас не хвилює. Загалом у Василя все добре.
* По проходженню цих самих 30 днів, йому виставляється 1 відсоток знижки **CUD_PERCENT**, і лічильник днів виставляється в 0. За поточним значенням відсотка знижки абоненту нараховуються кошти в розмірі 1% від вартості тарифу. Оплата буде проведена як типовий платіж (CUD_OPERATION=ADD) з типом **CUD_PAYID** - у нашому випадку це готівка. Так - ніхто не заважає зарезервувати під всякі такі речі якийсь особливий тип платежів. Також внесення на рахунок знижкових коштів можна оформити як "коригування балансу" за допомогою CUD_OPERATION=CORR
{{:cudiscountscash.png?600|}}
* Усе, абонент Василь пішов на наступний захід у 30 днів з накопичення наступного, другого відсотка своєї знижки.
* Через 300 днів активного використання нашої послуги Василь впирається у верхній поріг знижки в 10% **CUD_PERCENTLIMIT** (ну так, у нас же не благодійна організація, правда?)
* Загалом живе собі Василь щасливо, отримуючи щомісяця на рахунок по 10% вартості свого тарифу.
* І тут настає ситуація - гроші на рахунку Василя Іларіоновича несподівано закінчуються. З якої причини? Як завжди з трагічної. Його збив автобус. Так, на смерть, а як же ще? І він не зміг оплатити Інтернет вчасно. Що трапляється? А нічого - бонусні кошти вочевидь не нараховуються, відсоток знижки виставляється в 0 (нуль), і його невтішна вдова після поповнення рахунку знову накопичуватиме до 10% знижки впродовж 10 місяців заново. Несправедливо? Ну а як же ще - життя взагалі за своєю природою несправедлива штука.
* А що ж з абонентом на ім'я //Никодим Петрович//?
* А він постачальник якісного колумбійського кокаїну кави.
* За це йому від нас належить довічна знижка в 20%. Як це реалізовано? А за допомогою опції CUD_CFID, що вказує ID ось такого поля профілю, типу VARCHAR, де для абонента можна вказати примусову знижку.
{{:cudiscountscf1.png?600|}}
* Щоразу під час обробки абонента з цим заповненим полем замість "натуральної накопичувальної" знижковий відсоток буде підмінятися на зазначений у його профілі.
{{:cudiscountscf2.png?600|}}
====== Як перевіряти? ======
За великого бажання, про всі ці події можна дізнатися за допомогою відповідного модуля:\\
{{:cudiscpl1.png?600|}}
\\
{{:cudiscpl2.png?600|}}