BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 июн 2025, 03:02

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
СообщениеДобавлено: 11 авг 2015, 20:02 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Добрый день.

При изменении тарифного плана необходимо назначать клиенту модули, все те, которые есть в дереве тарифа, на который происходит переход. Автоматически это происходит только при создании договора из шаблона. При переходе приходится добавлять модули вручную. Это неудобно, хотелось бы автоматизировать. Нашел скрипт в Wiki: http://wiki.bitel.ru/index.php/%D0%A1%D ... 0%BC%D0%B8, однако он для версии 6.0. Вопрос в том, будет ли он работать на 6.1, и если нет, то что необходимо допилить?

Тот же вопрос с группой договора. В редакторе тарифа есть поле для указания групп договора, хотелось бы, чтобы при изменении тарифа менялась также и группа, в соответствии с указанными в редакторе тарифа. В голову приходит костыль, который запускался бы по крону и обновлял группы в соответствии с тарифами. Но это, по понятным причинам, не самое хорошее решение. Возможно, имеется готовое решение для версии 6.1 на базе скриптов поведения, или на уровне настроек? С Java не очень, поэтому возникают подобные проблемы.

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

Заранее спасибо за помощь!

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 авг 2015, 20:12 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2677
Карма: 72
может сразу все необходимы модули добавить? Самое логичное решение и без костылей


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 авг 2015, 20:33 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
zavndw писал(а):
может сразу все необходимы модули добавить? Самое логичное решение и без костылей


Согласен, что так будет гораздо проще. Конфликтов между модулями не возникнет? Будет несколько экземпляров NPay. Всех добавлять датой создания договора, или вообще без даты можно?

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 08:39 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Nyan писал(а):
zavndw писал(а):
может сразу все необходимы модули добавить? Самое логичное решение и без костылей


Согласен, что так будет гораздо проще. Конфликтов между модулями не возникнет? Будет несколько экземпляров NPay. Всех добавлять датой создания договора, или вообще без даты можно?

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

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 13:30 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
skyb писал(а):
А зачем несколько экземпляров?


Они по-разному сконфигурированы, некоторые абонплаты должны начисляться только при положительном балансе, часть -- при любом балансе. Распределение идет по статусу, отрицательный баланс влечет изменение статуса на "отключен". Параметр contract.status.suspend.codes, как я понял, задается на весь модуль целиком, на услугу его повесить нельзя.

skyb писал(а):
дата установки услуги модуля должна равняться дате тарифа в котором он есть, чтоб не было ошибок
а у самих модулей нет дат же


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

Значит, проблема актуальна. Решаемо?

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 13:40 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Я так понял что service.no.suspend уже не феншуй.
Будем лепить модули по количеству статаусов :D

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 13:58 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Phricker писал(а):
Я так понял что service.no.suspend уже не феншуй.
Будем лепить модули по количеству статаусов :D

Спасибо! В 6.2 появилось? Страшно обновляться на живом биллинге, но похоже, придется, много заманчивых фишек появилось :-)

По второму и третьему вопросу есть какие-нибудь мысли?

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 14:05 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Я в 5.2 по-моему еще пользовался service.no.suspend :)

В редакторе тарифа группы указывают на то, какие договора будут показываться если при установке тарифа стоит галочка "Фильтр по группе договоров".

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 14:27 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Phricker писал(а):
Я в 5.2 по-моему еще пользовался service.no.suspend :)

В редакторе тарифа группы указывают на то, какие договора будут показываться если при установке тарифа стоит галочка "Фильтр по группе договоров".


Спасибо, попробуем.

И все-таки, менять группы при смене тарифа штатными средствами возможно? Не хочется костылей лепить.

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 14:27 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Скрипты вполне штатный метод :)
Код:
package ru.ellcom.contract;

import bitel.billing.server.contract.bean.Contract;
import bitel.billing.server.contract.bean.ContractManager;
import bitel.billing.server.contract.bean.ContractTariff;
import ru.bitel.bgbilling.kernel.event.events.ContractTariffUpdateEvent;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.kernel.tariff.server.bean.TariffPlanManager;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

import java.sql.Connection;

public class ChangeContractGroupWhenTariffChange extends EventScriptBase<ContractTariffUpdateEvent> {
    @Override
    public void onEvent(ContractTariffUpdateEvent event, Setup setup, ConnectionSet connectionSet)
            throws Exception {
        Connection con = connectionSet.getConnection();
        TariffPlanManager tpm = new TariffPlanManager(con);
        ContractManager cm = new ContractManager(con);

        int cid = event.getContractId();
        Contract contract = cm.getContractById(cid);

        long tarGroups = tpm.getTariffPlan(event.getContractTariff().getTariffPlanId()).getFilterGroups()

        contract.setGroups(tarGroups);
        cm.updateContract(contract);

    }
}

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 18:18 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Nyan писал(а):
И еще один вопрос. Возможно, существуют решения, позволяющие вызывать скрипт на другом языке программирования при срабатывании какого-либо события с передачей ему параметров?

Заранее спасибо за помощь!


Да , есть. http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%B7%D0%B0

Код:
 Process process = Runtime.getRuntime().exec( arguments );


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 авг 2015, 18:18 
Не в сети

Зарегистрирован: 11 авг 2015, 19:08
Сообщения: 44
Карма: 5
Спасибо за скрипт!

По поводу услуги и service.no.suspend. Например, у нас есть два тарифа: Тариф 1 и Тариф 2. Тариф 1 должен начислять абонентскую плату, 100 рублей в месяц только при положительном балансе. Тариф 2 должен начислять ту же абонентскую плату 100 рублей в месяц при положительном балансе, помимо чего он должен вне зависимости от баланса начислять 50 рублей в месяц.

Как сделано сейчас: заведено 2 модуля, в каждом по одной услуге. Разница в конфигурации модуля, параметр contract.status.suspend.codes.

Как предлагается сделать: завести один модуль, в нем две услуги, разводить параметром service.no.suspend.

НО: при переходе с Тарифа 1 на Тариф 2 нужно будет назначать дополнительно вторую услугу, которая добавит фиксированный платеж и делать это датой перехода на тариф, иначе, как заметил skyb, могут быть проблемы. И все-таки, как сделать правильно?

_________________
Биллинг: 6.1.895
ОС: Debian GNU/Linux
Java: 1.8.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 авг 2015, 13:28 
Не в сети

Зарегистрирован: 03 июн 2015, 14:00
Сообщения: 249
Карма: 5
Nyan писал(а):
Спасибо за скрипт!

По поводу услуги и service.no.suspend. Например, у нас есть два тарифа: Тариф 1 и Тариф 2. Тариф 1 должен начислять абонентскую плату, 100 рублей в месяц только при положительном балансе. Тариф 2 должен начислять ту же абонентскую плату 100 рублей в месяц при положительном балансе, помимо чего он должен вне зависимости от баланса начислять 50 рублей в месяц.

Как сделано сейчас: заведено 2 модуля, в каждом по одной услуге. Разница в конфигурации модуля, параметр contract.status.suspend.codes.

Как предлагается сделать: завести один модуль, в нем две услуги, разводить параметром service.no.suspend.

НО: при переходе с Тарифа 1 на Тариф 2 нужно будет назначать дополнительно вторую услугу, которая добавит фиксированный платеж и делать это датой перехода на тариф, иначе, как заметил skyb, могут быть проблемы. И все-таки, как сделать правильно?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 авг 2015, 13:51 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Nyan писал(а):
Спасибо за скрипт!

По поводу услуги и service.no.suspend. Например, у нас есть два тарифа: Тариф 1 и Тариф 2. Тариф 1 должен начислять абонентскую плату, 100 рублей в месяц только при положительном балансе. Тариф 2 должен начислять ту же абонентскую плату 100 рублей в месяц при положительном балансе, помимо чего он должен вне зависимости от баланса начислять 50 рублей в месяц.

Как сделано сейчас: заведено 2 модуля, в каждом по одной услуге. Разница в конфигурации модуля, параметр contract.status.suspend.codes.

Как предлагается сделать: завести один модуль, в нем две услуги, разводить параметром service.no.suspend.

НО: при переходе с Тарифа 1 на Тариф 2 нужно будет назначать дополнительно вторую услугу, которая добавит фиксированный платеж и делать это датой перехода на тариф, иначе, как заметил skyb, могут быть проблемы. И все-таки, как сделать правильно?



Да, можно так.. делать 2 экземпляра модуля - не нужно это. Можно сриптами на смену тарифа услугу вторую добавлять.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 авг 2015, 20:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
http://wiki.bitel.ru/index.php/%D0%93%D ... 0%BE%D0%BC
разные услуги и погнали

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.073s | 46 Queries | GZIP : On ]