Как реализовать нужную логику списания денег?
Как реализовать нужную логику списания денег?
Здравствуйте.
Есть галочка хорошая в биллинге, в редактировании абонента: "В заблокированном состоянии - Не списывать абонентскую плату." Но когда она стоит, то деньги вообще не списываются ни за одну услугу, в заблокированном состоянии.
Мне надо, чтобы деньги в заблокированном состоянии списывались, но в меньшем количестве:
тарифы включают по три услуги:
- доступ в Интернет;
- трафик;
- доступ в локльную сеть.
надо, чтобы в заблокированном состоянии плата за "доступ в локальную сеть" продолжала списываться.
На форуме не нашел достаточной информации, чтобы решить эту проблему. Может кто-нибудь помочь?
Спасибо.
Есть галочка хорошая в биллинге, в редактировании абонента: "В заблокированном состоянии - Не списывать абонентскую плату." Но когда она стоит, то деньги вообще не списываются ни за одну услугу, в заблокированном состоянии.
Мне надо, чтобы деньги в заблокированном состоянии списывались, но в меньшем количестве:
тарифы включают по три услуги:
- доступ в Интернет;
- трафик;
- доступ в локльную сеть.
надо, чтобы в заблокированном состоянии плата за "доступ в локальную сеть" продолжала списываться.
На форуме не нашел достаточной информации, чтобы решить эту проблему. Может кто-нибудь помочь?
Спасибо.
Re: Как реализовать нужную логику списания денег?
А подробней, если я правильно понял вы хотите предоставлять доступ в локальную сеть при отрицательном балансе, точнее списывать АП в минус? Или при каких условиях у вас наступает такая блокировка?Аким писал(а):Здравствуйте.
Есть галочка хорошая в биллинге, в редактировании абонента: "В заблокированном состоянии - Не списывать абонентскую плату." Но когда она стоит, то деньги вообще не списываются ни за одну услугу, в заблокированном состоянии.
Мне надо, чтобы деньги в заблокированном состоянии списывались, но в меньшем количестве:
тарифы включают по три услуги:
- доступ в Интернет;
- трафик;
- доступ в локльную сеть.
надо, чтобы в заблокированном состоянии плата за "доступ в локальную сеть" продолжала списываться.
На форуме не нашел достаточной информации, чтобы решить эту проблему. Может кто-нибудь помочь?
Спасибо.
это я понял, я не понял что является критерием блокировки, когда она наступает. Короче я вижу только выход в написании костыля который при наступлении системной блокировки будет отключать "ненужные" услуги... Хотя может я не прав.AndrewE писал(а):Чел хочет при блокировке клиента продолжать списывать абонку по одной из услуг. А по другим не списывать.
Да, правильно поняли. Технически мы не можем блокировать доступ абонентам в локальную сеть и не хотим, "овчинка выделки не стоит". Больше мороки отключать их от локальной сети, чем сама абонентская плата за локальную сеть (60 рублей в месяц). В локальной сети у нас не управляемые свичи и бегать дергать кабеля у задолженников глупо. Поэтому даже при блокировке Интернета абоненты могут пользоваться локальными ресурсами. Поэтому при блокировке Интернета, надо, чтобы 60 рублей в месяц уходили в минус, а потом, когда абоненту опять понадобится Интернет, ему придется оплатить этот минус.А подробней, если я правильно понял вы хотите предоставлять доступ в локальную сеть при отрицательном балансе, точнее списывать АП в минус? Или при каких условиях у вас наступает такая блокировка?
критерий блокировки остается прежним: балланс меньший нуля.я не понял что является критерием блокировки
Интересная мысль. Это надо значит SQL запрос такой придумать? В какой таблице надо удалять и какие значения? А получится подключить эти услуги по новой автоматически, когда абонент оплатит и будет разблокирован? В общем-то это решение, но не ожиданное для меня.Короче я вижу только выход в написании костыля который при наступлении системной блокировки будет отключать "ненужные" услуги...
А реально сделать "костыль", который будет периодически списывать абонентскую плату за локальную сеть, а в UTM всем поставить галочки "не списывать абонентскую плату в заблокированном состоянии"? Это тоже SQL запросы, как сделать, чтобы этот скрипт вызывался во время отработки логики биллинга? Вообще логика биллинга через cron запускается или как? Тогда свой скрипт тоже можно периодически запускать и не привязывать его к UTM списаниям.
Спасибо, за участие.
- Chrst
- Сообщения: 370
- Зарегистрирован: Пт май 11, 2007 09:28
- Откуда: Медиахолдинг "ЛеККС"
- Контактная информация:
Это медицина в чистом виде, зовется геморой. Работать возможно и будет, но через известное место. Головная боль обеспечена, не говоря о побочных явлениях в других местах.Аким писал(а):Интересная мысль. Это надо значит SQL запрос такой придумать? В какой таблице надо удалять и какие значения? А получится подключить эти услуги по новой автоматически, когда абонент оплатит и будет разблокирован? В общем-то это решение, но не ожиданное для меня.Короче я вижу только выход в написании костыля который при наступлении системной блокировки будет отключать "ненужные" услуги...
Это более реальная схема, но только не через SQL запросы. Наверное правильнее будет создать разовую услугу не входящую в тарифный план и подключать ее через URFA-client. Ну или зачислять отрицательные суммы, только в этом случае в отчет по услугам это не попадет.А реально сделать "костыль", который будет периодически списывать абонентскую плату за локальную сеть, а в UTM всем поставить галочки "не списывать абонентскую плату в заблокированном состоянии"? Это тоже SQL запросы, как сделать, чтобы этот скрипт вызывался во время отработки логики биллинга? Вообще логика биллинга через cron запускается или как? Тогда свой скрипт тоже можно периодически запускать и не привязывать его к UTM списаниям.
Chrst дело говорите, а я написал первое что в голову пришло
Хотя особой разницы нет, единственное, что моя реализация сложнее...


Да такой скрипт, как предложил Chrst можно запускать по крону раз в месяц, ну или как часто у вас списывается АП за локальную сеть. Логика типа такой, когда наступает время списывать АП за локалку, дергается скрипт привязывается разовая услуга АП за локалку, деньги списываются, услуга отвязывается. Только вот возможен косяк сто после разблокирования АП за инет пересчитается и спишется не полностью или я не прав? Короче ясно одно без костыля не обойтисьТогда свой скрипт тоже можно периодически запускать и не привязывать его к UTM списаниям.

Привет.
1. Разовая услуга, как я понимаю, не подпадает под действие галочки "Не списывать абонентскую плату в заблокированном состоянии"? Надо проверить.
2. Ни разу на практике не пользовался URFA-client, дайте пожалуйста практический пример использования ввиде определенного скрипта, решающего прикладную задачу.
3. Зачислять отрицательные суммы можно с комментариями для абонента (за что), их всё-таки надо делать через SQL запросы, как я понимаю, да? Если "потыкаться" пару дней, то наверное смогу на приктике это сделать, но лучше, если есть, дайте пожалуйста тоже практический пример использования.
4. Про cron, тоже знаю только теоретически, практического опыта нет, тоже смогу сам разобраться, но быстрее если подскажете. У меня CentOS 5.2, где там файл настроек cron, и какую строчку надо бы добавить?
Спасибо.
Оба решения приемлемы, постараюсь реализовать их оба, а жизнь покажет, что лучше. Теоретически решение задачи понятно, теперь надо перейти к практике.Наверное правильнее будет создать разовую услугу не входящую в тарифный план и подключать ее через URFA-client. Ну или зачислять отрицательные суммы, только в этом случае в отчет по услугам это не попадет.
1. Разовая услуга, как я понимаю, не подпадает под действие галочки "Не списывать абонентскую плату в заблокированном состоянии"? Надо проверить.
2. Ни разу на практике не пользовался URFA-client, дайте пожалуйста практический пример использования ввиде определенного скрипта, решающего прикладную задачу.
3. Зачислять отрицательные суммы можно с комментариями для абонента (за что), их всё-таки надо делать через SQL запросы, как я понимаю, да? Если "потыкаться" пару дней, то наверное смогу на приктике это сделать, но лучше, если есть, дайте пожалуйста тоже практический пример использования.
4. Про cron, тоже знаю только теоретически, практического опыта нет, тоже смогу сам разобраться, но быстрее если подскажете. У меня CentOS 5.2, где там файл настроек cron, и какую строчку надо бы добавить?
Спасибо.
1. проверил, при подключении списание происходитАким писал(а):Привет.
Оба решения приемлемы, постараюсь реализовать их оба, а жизнь покажет, что лучше. Теоретически решение задачи понятно, теперь надо перейти к практике.Наверное правильнее будет создать разовую услугу не входящую в тарифный план и подключать ее через URFA-client. Ну или зачислять отрицательные суммы, только в этом случае в отчет по услугам это не попадет.
1. Разовая услуга, как я понимаю, не подпадает под действие галочки "Не списывать абонентскую плату в заблокированном состоянии"? Надо проверить.
2. Ни разу на практике не пользовался URFA-client, дайте пожалуйста практический пример использования ввиде определенного скрипта, решающего прикладную задачу.
3. Зачислять отрицательные суммы можно с комментариями для абонента (за что), их всё-таки надо делать через SQL запросы, как я понимаю, да? Если "потыкаться" пару дней, то наверное смогу на приктике это сделать, но лучше, если есть, дайте пожалуйста тоже практический пример использования.
4. Про cron, тоже знаю только теоретически, практического опыта нет, тоже смогу сам разобраться, но быстрее если подскажете. У меня CentOS 5.2, где там файл настроек cron, и какую строчку надо бы добавить?
Спасибо.
2. хм, тут скриптами не обойтись, сам урфа клиент есть у вас? Если нет можно поюзать урфа php, он вроде умеет услуги привязывать и отвязывать, хотя сам не использовал утверждать не берусь.
3. Зачем зачислять SQL запросом? Есть замечательная утилитка utm5_payment_tool живет в /netup/utm5/bin . Про неё читать на странице 323 руководства. А вообще зачисления при помощи её делать примерно так: /netup/utm5/bin/utm5_payment_tool -k "xxxx" -L " payment(id=)'.id" -a "'аккаунт'" -b сумма -c "810" -m "102" -e id -t время
4. Про крон читать тут http://www.rhd.ru/docs/manuals/enterpri ... -task.html
обычно crontab живет в /etc
маленькая заметка если не пользоваться урфа клиентом, а через скул запросы. многие вещи УТМ хранит в памяти, скидывая в базу через определенное время данные. например классы трафика без перезагрузки ядра он с базы невозьмет. следует уситывать это. ну и платежи скулом вносить вобще опасно. рассогласуются таблицы в момент когда утм и вы будете транзакции проводить. разве что утм стопить на время работы скрипта.
Ну вносить платежи прямыми запросами к базе при наличии спец. инструмента от нетап, это уж совсем мазохизмNShut писал(а):.... ну и платежи скулом вносить вобще опасно. рассогласуются таблицы в момент когда утм и вы будете транзакции проводить. разве что утм стопить на время работы скрипта.


Этот "скрипт" и есть URFA клиент.Аким писал(а):Спасибо.
В Дополнительно - > Плагины нет liburfa-client, как понимаю, значит нет у меня URFA клиента.
Но есть скрипт: /netup/utm5/bin/utm5_urfaclient.
Буду "переваривать" информацию, почитаю ещё документацию, разберусь, нужно время.
Даже удобнее будет viewtopic.php?t=6402
Угу, осталось только лицензию на него найти и вообще красота будетds писал(а):Этот "скрипт" и есть URFA клиент.Аким писал(а):Спасибо.
В Дополнительно - > Плагины нет liburfa-client, как понимаю, значит нет у меня URFA клиента.
Но есть скрипт: /netup/utm5/bin/utm5_urfaclient.
Буду "переваривать" информацию, почитаю ещё документацию, разберусь, нужно время.
Даже удобнее будет viewtopic.php?t=6402

