====== Накопичувальні знижки ====== {{ :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|}}