forum.bitel.ru
http://forum.bitel.ru/

Управление лимитом из веб статистики. статусы
http://forum.bitel.ru/viewtopic.php?f=22&t=7711
Страница 1 из 1

Автор:  afedorov [ 12 фев 2013, 13:57 ]
Заголовок сообщения:  Управление лимитом из веб статистики. статусы

Каким образом различаются те, кто просрочил обещанный платеж, но все же оплатил и те, кто не оплатил свое понижение лимита вообще?
В contract_limit_manage.status статус, 0 - "лимит не погашен", 1 - "лимит частично погашен", 2 - "лимит погашен", 3 - "лимит просрочен."
3 - "лимит просрочен." - это те, у кого срок вышел, а как помечаются, те, кто после этого оплатил? Им назначается статус 2 - "лимит погашен" или они навсегда остаются в 3?

Автор:  barguzin2 [ 12 фев 2013, 15:18 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Просрочен. И если просроченных кол-во достигает значения, заданного в конфиге параметром contract.limit.1.maxexpiredforblock
то этому юзеру блокируется возможность понижения лимита до ручной разблокировки менеджером.

Автор:  afedorov [ 12 фев 2013, 15:31 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Код:
#максимальное количество не оплаченных(не возвратившихся) понижений
#при котором клиенту будет доступно понижение, при 0 клиент не сможет выполнять
#понижение до тех пор пока будет хотя бы одно не оплаченное
contract.limit.1.maxnotpayoffed=0
#максимальное количество частично оплаченных понижений
#при котором клиенту будет доступно понижение (0-1, частично оплаченное понижение
#может быть только одно)
contract.limit.1.maxpartialpayoffed=0
#количество просроченных платежей после последней разблокировки
#после которых доступ к понижению будет заблокирован
contract.limit.1.maxexpiredforblock=0


Как отличить тех, у кого наступило contract.limit.1.maxnotpayoffed от тех, у кого наступило contract.limit.1.maxexpiredforblock ?
Т.е. первые вообще не оплатили, а вторые оплатили, но позже обещанной даты.

Автор:  skn [ 12 фев 2013, 16:20 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

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

Автор:  afedorov [ 12 фев 2013, 16:45 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Во-первых хотелось бы знать сколько таких. Сейчас строим графики количества по group by contract_limit_manage.status. И по ним не видно тех, кто опоздал с платежем, но все же оплатил.
Во-вторых как сделать так, что те кто оплатил в предыдущем месяце, смогли воспользоваться обещанным платежем в новом месяце, а те кто не оплатил - нет?
С текущими настройками, которые приведены выше, те, кто просрочил платеж, не имеют возможность воспользоваться управлением лимитом независимо от того оплатили они или нет. А если сделать ненулевой maxexpiredforblock, то это затронет и тех, кто не платил.

Автор:  skn [ 12 фев 2013, 18:23 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

если клиент ДО СИХ ПОР не оплатил обещанный платеж значит у него до сих пор минус и он не работает, так какая разница в каком месяце это было?

Цитата:
"И по ним не видно тех, кто опоздал с платежем, но все же оплатил."

если вы стротите отчет 1 числа месяца, то все у кого просрочен обещанный платеж и отричательный баланс, именно те кто вам нужен.

Цитата:
Во-вторых как сделать так, что те кто оплатил в предыдущем месяце, смогли воспользоваться обещанным платежем в новом месяце, а те кто не оплатил - нет?


написать скриптик который 1 числа будет выбирать клиентов со статусом "лимит просрочен" и балансом > 0 и менять им статус на "лимит погашен"

Автор:  afedorov [ 12 фев 2013, 18:48 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

skn писал(а):
если клиент ДО СИХ ПОР не оплатил обещанный платеж значит у него до сих пор минус и он не работает, так какая разница в каком месяце это было?

Цитата:
"И по ним не видно тех, кто опоздал с платежем, но все же оплатил."

если вы стротите отчет 1 числа месяца, то все у кого просрочен обещанный платеж и отричательный баланс, именно те кто вам нужен.


Мы строим график, раз в минуту извлекая из базы данные. Хотелось бы видеть что происходит в динамике.

skn писал(а):
Цитата:
Во-вторых как сделать так, что те кто оплатил в предыдущем месяце, смогли воспользоваться обещанным платежем в новом месяце, а те кто не оплатил - нет?


написать скриптик который 1 числа будет выбирать клиентов со статусом "лимит просрочен" и балансом > 0 и менять им статус на "лимит погашен"


А может лучше добавить еще один статус "оплачен с опозданием" и переводить в него просроченные после оплаты?

Автор:  skn [ 12 фев 2013, 19:07 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

afedorov писал(а):
А может лучше добавить еще один статус "оплачен с опозданием" и переводить в него просроченные после оплаты?


когда переводить в такой статус? когда пришел платеж на любую сумму? а если сумма меньше обещанной? переводить в статус "частично оплачен просроченный платеж"? а при следующем платеже суммировать все платежи и если опять не покрыл ставить статус "дважды частично оплачен пророченный платеж" и т.д.
а когда и по каким критериям эти статусы менять менять на разрешено (еще вводить параметры с критериями)?

не совсем понимаю чего вы хотите получить...
что бы клиент 1 числа делал обещенный платеж потом забивал на него, 31 числа погашал его и первого следующего месяца мог опять это повторить?

Автор:  afedorov [ 12 фев 2013, 19:30 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

skn писал(а):
afedorov писал(а):
А может лучше добавить еще один статус "оплачен с опозданием" и переводить в него просроченные после оплаты?


когда переводить в такой статус? когда пришел платеж на любую сумму? а если сумма меньше обещанной? переводить в статус "частично оплачен просроченный платеж"? а при следующем платеже суммировать все платежи и если опять не покрыл ставить статус "дважды частично оплачен пророченный платеж" и т.д.
а когда и по каким критериям эти статусы менять менять на разрешено (еще вводить параметры с критериями)?


В этот статус переводить из просроченных, если contract.status после очередного поступления денег станет 0. Частичная оплата не интересна вообще.

Автор:  vkulakov [ 12 фев 2013, 19:53 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

В конечном счёте хотелось бы получить вот что:
При поступлении платежа сумму платежа раскидывать не только по обещанным платежам со статусом 0 (лимит не погашен) и 1 (лимит частично погашен), но и со статусом 3 (лимит просрочен). Остаток обещанного платежа уменьшать на сумму поступившего платежа, и если он достигает нуля, то менять статус платежу на 2 (лимит погашен), а таблице contract_limit_manage_mode уменьшать счётчик на 1 и, если необходимо, mode на 0.

Можно всё это сделать в скрипте и повесить его на событие "Приход платежа", но, боюсь, могу не учесть все тонкости сего процесса, да и разработчикам проще всё это реализовать, когда есть исходники.

Автор:  skn [ 12 фев 2013, 20:38 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

сейчас логика такая:
1) при приходе платежа см. если текущие обещанные платежи, если есть и сумма платежа больше или равна сумме обещанного, закрываем ощещанный платеж и ставим статус лимит погашен, возвращаем лимит
2) если при приходе сумма меньше активного обещанного платежа, меняем статус на частично погашен, если статус уже частично погашен сумируем платежи с даты обещанного платежа и сверяем суммы, если сумма перекрыла меняем статус на погашен и возвращаем лимит
3) когда приходит время отката лимта, возращаем лимит и ставим статус не погашен
4) если при приходе нет активных понижений лимита, то ни чего не делаем

вы же предлагаете в п. 4 находить последний обещанный лимит (не понятно за какой срок?) проверять его статус и если он "просрочен", сравнивать с текущим платежом (если его не хватает, вытаскивать и суммировать все платежи с даты просрочки) и если он перекрывает менять статус на "погашен просроченный платеж" и потом 1 числа месяца проверять если дата просрочки и дата установки статуса "погашен просроченный лимит" в прошедшем месяце по то менять статус на "можно понижать лимит", а если не в одном то .... ?

Автор:  afedorov [ 13 фев 2013, 00:21 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

можно и более простой вариант.
в п.4 если при приходе статус контракта переходит в активное состояние, и есть обещанный лимит в состоянии "просрочен"(а в этом случае он может быть только один), то менять статус у такого обещанного лимита на "погашен просроченный лимит".

Автор:  skn [ 13 фев 2013, 03:10 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

а зачем вам статус такой если можно просто
1) выбираем всех клиентов у кого статус договора Заблокирован и лимит просрочен - это те кто "просрочил и не заплатил"
2) выбираем всех клиентов у кого статус договора Активен и лимит просрочен - это те кто "просрочил и погасил"

Автор:  vkulakov [ 14 фев 2013, 17:12 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Сейчас обнаружил следующую проблему: если лимит договора восстанавливается задачей восстановления лимитов (соответственно, обещанный платёж оказывается просроченным), то статус договора остаётся "Активен", а не "Закрыт", как ожидается. Соответственно, скрипт, который будет разблокировать возможность активации обещанного платежа, работать не будет, и графики мы тоже построить не сможем.
Это ошибка в конфигурации или так и задумано?

Автор:  skn [ 14 фев 2013, 20:51 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

после востановления лимита, если клиент не пополнил баланс, у него он по идее будет отрицательный и его должно заблокировать при попытке воспользовываться услугами.

Автор:  vkulakov [ 15 фев 2013, 12:53 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

То, что абонент не сможет воспользоваться услугами - понятно. Статусы должны меняться или нет? Вы раньше давали советы, как графики строить и как разблокировать обещанный платёж, если после блокировки была оплата. Сейчас получается, что ваши советы не применимы.

Автор:  skn [ 15 фев 2013, 13:18 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Статусы напрямую не меняются при востановление лимита, должно кидаться событие измененение баланса, обработчик которого должен в том числе и менять статусы.

Автор:  vkulakov [ 15 фев 2013, 13:27 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Так почему не меняет?

Автор:  dimOn [ 15 фев 2013, 13:40 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

так а вы меняете?

Автор:  vkulakov [ 15 фев 2013, 14:03 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Чего-то в списке событий для привязки дин. кода я не видел события "Изменение баланса". Собственно, кто должен обрабатывать это события и закрывать договор: дин. код или стандартный класс?

Автор:  stark [ 15 фев 2013, 18:17 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

vkulakov писал(а):
Чего-то в списке событий для привязки дин. кода я не видел события "Изменение баланса". Собственно, кто должен обрабатывать это события и закрывать договор: дин. код или стандартный класс?

На это событие не привязываются обработчики. Оно внутреннее, системное.

Автор:  vkulakov [ 15 фев 2013, 19:17 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Вы бы между собой уже разобрались... Кто должен менять статус договора при восстановлении лимита?

Автор:  skn [ 15 фев 2013, 19:53 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

В данный момент ни кто не меняет, не было такой задачи.

Автор:  barguzin2 [ 15 фев 2013, 20:05 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

vkulakov писал(а):
Сейчас обнаружил следующую проблему: если лимит договора восстанавливается задачей восстановления лимитов (соответственно, обещанный платёж оказывается просроченным), то статус договора остаётся "Активен", а не "Закрыт", как ожидается. Соответственно, скрипт, который будет разблокировать возможность активации обещанного платежа, работать не будет, и графики мы тоже построить не сможем.
Это ошибка в конфигурации или так и задумано?


Перевод в статус Закрыт выполняет соответствующая задача планировщика, и никто более. Вот срабатывает задача восстановления лимитов, далее следом идёт задача закрытия Npay договоров, дальше начисление абонплат. Вроде всё сходится. Доступ к услугам блокируется даже в Активном статусе при отрицательном балансе (меньше лимита).

Для себя я все эти игры с понижением лимитов решил реализовать так - блокировать возможность понижения если есть хотя бы один просроченный платеж и делать разблокировку по приходу платежа, если его хватает на положительный баланс. Таким образом получается что если юзер гасит понижение вовремя - то тут всё штатно (блокировки нет), а если не гасит - то сидит отключенным до тех пор, пока таки не оплатит (т.к. повторно нельзя понизить, заблокирован уже, хоть и минимум лимита позволяет), а как оплачивает - срабатывает скрипт разблокировки на событие Приход платежа.

А то что предлагается блокировать при N просроченных и потом вручную разблокировать - это неее, ручной работы должно быть минимум. А если не блокировать совсем - юзер может телепаться в постоянном долгу - вышел на ноль - опять берет понижения.

Автор:  vkulakov [ 18 фев 2013, 11:42 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Судя по документации http://bgbilling.ru/v5.2/doc/ch22s07.html, при выполнении задачи закрытия договоров не производится никаких действий, если уже начисленная наработка более или равна планируемой к начислению. Это показал и эксперимент. В нашем случае запуск задачи закрытия договоров не приводит к закрытию договора, т. к. при понижении лимита списывается полная наработка за месяц.
При навешивании скрипта на приход платежа уже нельзя ориентироваться на статус договора, чтобы сделать разблокировку. Пока единственный вариант, который я вижу - периодически запускать скрипт и, если баланс договора больше нуля, то разблокировать обещанный платёж. Но это не очень эффективно в плане расходования ресурсов.

Автор:  vkulakov [ 19 фев 2013, 15:07 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Куда-то все пропали...

Автор:  skn [ 19 фев 2013, 17:43 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

а чего вы ждете?

Автор:  vkulakov [ 20 фев 2013, 13:51 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Единственный вариант решения нашей задачи периодически запускать скрипт и снимать блокировку с обещанного платежа, если баланс договора больше нуля. Правильно ли я понял?

Автор:  skn [ 20 фев 2013, 15:38 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

Если честно я так до конца и не понял в чем задача, а главное для каких целей она нужна.

Автор:  vkulakov [ 21 фев 2013, 17:42 ]
Заголовок сообщения:  Re: Управление лимитом из веб статистики. статусы

В общем, сделал задачу для планировщика, которая разблокирует отложенный платёж, если баланс договора больше нуля. Других подходящих способов не нашёл. То, что договор не закрывается при возвращении лимита считаю особенностью архитектуры биллинга.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/