Перейти до

Снятие абонентки у замороженных юзеров


Рекомендованные сообщения

Обнаружил неприятный баг (а может это фича?) :)

 

Если СТГ настроен на снятие абонентской платы раз в месяц (SpreadFee=no), то у замороженных пользователей абонентка тоже снимается. Хотя, по логике - не должна.

Если же SpreadFee=yes, то все в порядке.

 

Насколько я понимаю, в функции ежедневного снятия абонентки за это отвечает вот этот код (файл user.cpp):

void USER::ProcessDayFeeSpread()

{                                   

if (passive.ConstData())

    return;

....бла-бла-бла...

 

А вот в функции разового снятия абонентки этого кода почему то нет. (((

void USER::ProcessDayFee()

{                                   

double passiveTimePart = 1.0;

if (!settings->GetFullFee())

      {

      passiveTimePart = GetPassiveTimePart();

      }

....бла-бла-бла...

 

Так баг это или фича???

Ссылка на сообщение
Поделиться на других сайтах

+1

Пришлось вручную перелопачивать всех замороженных.

Хотелось бы, чтоб абонка не снималась у замороженных.. зачем тогда существует стоимость заморозки?

Ссылка на сообщение
Поделиться на других сайтах

За неснятие абонки у замороженных пользователей неявно отвечает passiveTimePart - часть времени, которую пользователь провел вне пассива. Так, например, если пользователь был заморожен в середине месяца - с него снимется половина абонки. Если в начале - не снимется вобще.

Логика работы меняется, если в конфиге указан FullFee=true - при этом снимается полная абонка вне зависимости от passiveTimePart. Бага скорее в том, что FullFee сделан необязательным, но по умолчанию установлен в true (см. settings.cpp, конструктор класса SETTINGS, строка 49). Уже пофикшен.

Ссылка на сообщение
Поделиться на других сайтах

Неееет.

Вот если абонентка снимается в конце месяца... тогда да, тогда эта логика применима.

Т.е. 15-го заморозили, 30-го снимаем абонентку и тут надо считать время заморозки и сколько снимать. Да и то, только в случае, если FullFee в конфиге не выставлен в true

 

А если у меня снятие абонентки 1-го числа?

И юзер при этом заморожен??

И FullFee в конфиге выставлен в true???

 

Тогда как?

Ссылка на сообщение
Поделиться на других сайтах

Если абонка снимается наперед, то естественно бессмыслено снимать часть АП. Это машина времени нужна :) Поэтому если логика снимать АП заранее, то должно быть FullFee=yes.

Ссылка на сообщение
Поделиться на других сайтах

Т.е. иными словами при FullFee=yes

в функцию ProcessDayFee() надо добавлять этот код?

 

if (passive.ConstData())

    return;

 

или надо усложнять, проверяя в какой день снимается абонка?

и если в 1-й, то выходить...

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...