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

Изменение группы и модулей договора при изменении тарифа
http://forum.bitel.ru/viewtopic.php?f=22&t=10782
Страница 1 из 1

Автор:  Nyan [ 11 авг 2015, 20:02 ]
Заголовок сообщения:  Изменение группы и модулей договора при изменении тарифа

Добрый день.

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

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

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

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

Автор:  zavndw [ 11 авг 2015, 20:12 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

может сразу все необходимы модули добавить? Самое логичное решение и без костылей

Автор:  Nyan [ 11 авг 2015, 20:33 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

zavndw писал(а):
может сразу все необходимы модули добавить? Самое логичное решение и без костылей


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

Автор:  skyb [ 12 авг 2015, 08:39 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Nyan писал(а):
zavndw писал(а):
может сразу все необходимы модули добавить? Самое логичное решение и без костылей


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

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

Автор:  Nyan [ 12 авг 2015, 13:30 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

skyb писал(а):
А зачем несколько экземпляров?


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

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


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

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

Автор:  Phricker [ 12 авг 2015, 13:40 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Я так понял что service.no.suspend уже не феншуй.
Будем лепить модули по количеству статаусов :D

Автор:  Nyan [ 12 авг 2015, 13:58 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Phricker писал(а):
Я так понял что service.no.suspend уже не феншуй.
Будем лепить модули по количеству статаусов :D

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

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

Автор:  Phricker [ 12 авг 2015, 14:05 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Я в 5.2 по-моему еще пользовался service.no.suspend :)

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

Автор:  Nyan [ 12 авг 2015, 14:27 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Phricker писал(а):
Я в 5.2 по-моему еще пользовался service.no.suspend :)

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


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

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

Автор:  Phricker [ 12 авг 2015, 14:27 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Скрипты вполне штатный метод :)
Код:
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);

    }
}

Автор:  stark [ 12 авг 2015, 18:18 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

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

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


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

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

Автор:  Nyan [ 12 авг 2015, 18:18 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Спасибо за скрипт!

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

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

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

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

Автор:  lexusrid [ 13 авг 2015, 13:28 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Nyan писал(а):
Спасибо за скрипт!

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

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

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

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

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

Автор:  stark [ 13 авг 2015, 13:51 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

Nyan писал(а):
Спасибо за скрипт!

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

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

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

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



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

Автор:  skyb [ 13 авг 2015, 20:23 ]
Заголовок сообщения:  Re: Изменение группы и модулей договора при изменении тарифа

http://wiki.bitel.ru/index.php/%D0%93%D ... 0%BE%D0%BC
разные услуги и погнали

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