Користувальницькькі налаштування

Налаштування сайту


cumulativediscounts

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
cumulativediscounts [2015/05/28 01:21]
cumulativediscounts [2023/06/16 14:03] (поточний)
borisov
Рядок 1: Рядок 1:
 +====== Накопичувальні знижки ======
 +{{ :cudiscounts.jpg?300|}}
 +Починаючи з Ubilling 0.6.7 реалізовано нову механіку накопичувальних знижок. Що вона собою являє? А представляє вона з себе страшну штуку, яка щодня динамічно крутить відсоток знижки для активних користувачів, при досягненні певних умов, і нараховує відносно цього відсотка частину повної вартості поточного тарифного плану. Вся обробка здійснюється щоденним викликом відповідної дії з [[remoteapi|Remote API]] - cudiscounts. Дуже добре б уже після нарахування абонплати. Наприклад ось так:
 +<code bash>
 +1 1 * * *       /bin/ubapi "cudiscounts"
 +</code>
 +
 +Поведінка накопичувальних знижок описується наступними опціями конфіга [[alteriniconf|alter.ini]] в ось такому вигляді для прикладу:\\
 +
 +<code ini>
 +  CUD_ENABLED=1
 +  CUD_PULLDAYS=30 
 +  CUD_PERCENT=1
 +  CUD_PERCENTLIMIT=10
 +  CUD_PAYID=1
 +  CUD_CFID="44"
 +  CUD_OPERATION="ADD"
 +</code>
 +
 +====== Що відбувається? ======
 +Призначено це все для опису бізнес логіки такого вигляду: 
 +  * Абонент //Василь Іларіонович// справно платить протягом 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 місяців заново. Несправедливо? Ну а як же ще - життя взагалі за своєю природою несправедлива штука.
 +  * А що ж з абонентом на ім'я //Никодим Петрович//? 
 +  * А він постачальник якісного колумбійського <del>кокаїну</del> кави. 
 +  * За це йому від нас належить довічна знижка в 20%. Як це реалізовано? А за допомогою опції CUD_CFID, що вказує ID ось такого поля профілю, типу VARCHAR, де для абонента можна вказати примусову знижку.
 +{{:cudiscountscf1.png?600|}}
 +  * Щоразу під час обробки абонента з цим заповненим полем замість "натуральної накопичувальної" знижковий відсоток буде підмінятися на зазначений у його профілі.
 +{{:cudiscountscf2.png?600|}}
 +
 +====== Як перевіряти? ======
 +За великого бажання, про всі ці події можна дізнатися за допомогою відповідного модуля:\\
 +{{:cudiscpl1.png?600|}}
 +\\
 +{{:cudiscpl2.png?600|}}
 +