Добрый день.
Хотелось бы поднять вопрос затронутый в соседней ветке.
Тариф: 100 р/мес, 100 Мб в АП
На счету пользователя на первое число месяца - 10 рублей.
Хочу чтобы пользователь мог проработать либо 3 дня, либо скачать не более 10 Мб трафика.
Такой способ позволит мне не давать пользователю кредит, но в то же время я смогу получить от пользователя эти 10 рублей.
Так же необходимо, чтобы при достижении определенной суммы на счету пользователя, договор блокировался и снятие АП с него не производилось. (по этому вопросу я ответ от разработчиков уже видел)
Возможна ли такая работа системы?
Как в вашей компании (либо компании - от которой идет постановка задачи) решается ситуация описаная в примере (когда на первое число месяца - 10 рублей и на всю АП денег не хватает)?
PS. Как я себе понимаю логику работы:
Есть тариф, в котором в ветке npay сказано:
АП, помесячный режим снятия.
IPN до 100 мб - 100 рублей как выгоднее.
IPN свыше 100 мб - 100 рублей безусловно.
при запуске процедуры расчета суммы АП я бы брал реально потребленный временной период, а не приводил бы его к концу месяца.
Код:
DEBUG 25.01.2008 12:39:59 [23:00:00; 0] Found service taker cid: 25; sid: 10; date1: 01.12.2006; date2:
DEBUG 25.01.2008 12:39:59 [23:00:00; 0] After trimming cid: 25; sid: 10; date1: 01.01.2008; date2: 31.01.2008
В логе видно, что при запуске расчета изначально date2 - неопределен.
Вероятно в результате приведения в date2 записывается конец месяца, но я бы туда записывал бы текущее время. так как услуга оказана пользователю только до настоящего времени, а не до конца месяца.
Потом получаем:
число1 - (date2-date1)/дней в месяце
число2 - (количестов потребленных Мб)/Мб в АП
Берем большее число из число1 и число2 - это и есть процент от снимаемой АП.
Когда пользователь уходит в минус (у него не кредит и лимит 0), то данный договор блокируется. АП не списывается. Услуги не доступны.
Вот как-то так.