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

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


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|}}
 +
  
cumulativediscounts.txt · Востаннє змінено: 2024/04/05 15:49 повз nightfly