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

событие при смене тарифа скриптом
http://forum.bitel.ru/viewtopic.php?f=19&t=10255
Страница 1 из 1

Автор:  skyb [ 06 мар 2015, 12:25 ]
Заголовок сообщения:  событие при смене тарифа скриптом

не могу найти тему, там было про то что нужно бросать несколько событий при смене тарифа
Код:
                                                       ContractTariff t = new ContractTariff();
                     ContractTariff ct = new ContractTariff();
                     ct = lct.get(j);
                     ct.setComment( "Закрыл скриптом, дата модификации " + new Date());
                     ct.setDate2(Calendar.getInstance());
                     ctm.updateContractTariff(ct);
                     t.setContractId(cid);
                     t.setDate1(   c );
                     t.setTariffPlanId(standart);
                     t.setPos(ct.getPos() + 1);
                     t.setComment("Тариф изменился глобальным скриптом в " + new Date() );
                     ctm.updateContractTariff(t);
                     ContractTariffUpdateEvent ctu = new ContractTariffUpdateEvent(0, cid, t, true);
                     EventProcessor.getInstance().publish( ctu ) ;

этого же не достаточно?

Автор:  vkulakov [ 06 мар 2015, 12:51 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

При добавлении/изменении тарифов я бросаю два события: ContractTariffChangedEvent и ContractTariffUpdateEvent.

Автор:  Phricker [ 06 мар 2015, 15:33 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

Код:
EventProcessor.getInstance().publishAfterCommit(new ContractTariffUpdateEvent(User.USER_SERVER, cid, contractTariff, true));
EventProcessor.getInstance().publishAfterCommit(new ContractTariffChangedEvent( cid ));

Автор:  skyb [ 10 мар 2015, 10:00 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

спасибо посоны

Автор:  borin [ 18 май 2015, 17:47 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

Добрый день!
Пытаюсь добавить тариф на договор, ноо ни чего не происходит.
Код:
ContractTariff ct = new ContractTariff();
ct.setContractId(bgContract.getId());
ct.setDateFrom(new Date());
ct.setDateTo(null);
ct.setPosition(0);
ct.setTariffPlanId(49);
ct.setComment("");
EventProcessor.getInstance().publishAfterCommit(new ContractTariffUpdateEvent(USER_ID, bgContract.getId(), ct, true));
EventProcessor.getInstance().publishAfterCommit(new ContractTariffChangedEvent(bgContract.getId()));

Код:
Клиент: вер. 6.2.707 / 07.05.2015 21:41:04
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.871 / 07.05.2015 21:41:12
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_40

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

А где же вызов ctm.updateContractTariff(tariff)???

Автор:  borin [ 18 май 2015, 18:24 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

vkulakov писал(а):
А где же вызов ctm.updateContractTariff(tariff)???

Код:
/** @deprecated */
@Deprecated
public class ContractTariffManager {....

Deprecated он :(

Автор:  vkulakov [ 18 май 2015, 18:56 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

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

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

с 6.2 надо использовать ContractTariffService

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

borin писал(а):
vkulakov писал(а):
А где же вызов ctm.updateContractTariff(tariff)???

Код:
/** @deprecated */
@Deprecated
public class ContractTariffManager {....

Deprecated он :(



там же их 2 .

Цитата:
updateContractTariff(ContractTariff value)
Обновляет тариф
void updateContractTariff(java.lang.String id, ContractTariff value)
Deprecated.
Использовать updateContractTariff(ContractTariff value)

http://bgbilling.ru/v6.2/javadoc/bitel/ ... nager.html

Автор:  skyb [ 19 май 2015, 07:37 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

stark писал(а):
с 6.2 надо использовать ContractTariffService

вот опять пишу, незя без примеров такое писать, незя !!! ))))

Автор:  borin [ 19 май 2015, 10:11 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

stark писал(а):
с 6.2 надо использовать ContractTariffService

Спасибо, то что надо.

stark писал(а):
там же их 2 .

Да метода два, там но IDE показала что класс deprecated, зашел посмотрел, так и есть.

skyb писал(а):
вот опять пишу, незя без примеров такое писать, незя !!! ))))

Думаю как то так. Web-сервисы вызываются одинаково. Проблема в другом вроде простая задача, но куча методов и не знаешь какой использовать, вроде и этот не deprecated, но работает не так как надо. А оказывается надо использовать другой класс. Я за понятный API.
Код:
ContractTariff contractTariff = new ContractTariff();
contractTariff.setContractId(bgContract.getId());
contractTariff.setDateFrom(new Date());
contractTariff.setDateTo(null);
contractTariff.setPosition(0);
contractTariff.setTariffPlanId(49);
contractTariff.setComment("");

ServerContext context = ServerContext.get();
ContractTariffService contractTariffService = context.getService(ContractTariffService.class, 0);
contractTariffService.contractTariffUpdate(contractTariff);


PS. Единственно не пойму, как смотреть что делает метод. Например:
Код:
int contractTariffUpdate(@WebParam(
    name = "contractTariff"
) ContractTariff var1) throws BGException;

То что сделано не через web-сервисы понятно что делается, что пишется в базу и т.д. Если что то не работает можно попытаться понять где ошибка, то с web-сервисами не понятно куда глядеть :) Какая магия происходит под капотом, остается тайной.

Автор:  stark [ 19 май 2015, 11:26 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

borin писал(а):
stark писал(а):
с 6.2 надо использовать ContractTariffService

Спасибо, то что надо.

stark писал(а):
там же их 2 .

Да метода два, там но IDE показала что класс deprecated, зашел посмотрел, так и есть.



Да, класс тоже deprecated. Но там же сверху написано что использовать взамен ContractDAO. А использовать Web-сервисы предпочтительнее чем DAO, об этом написано в доке :

http://docs.bitel.ru/pages/viewpage.act ... Id=8650759

Автор:  stark [ 19 май 2015, 11:29 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

skyb писал(а):
stark писал(а):
с 6.2 надо использовать ContractTariffService

вот опять пишу, незя без примеров такое писать, незя !!! ))))



Пример есть в ссылке которую я дал в предыдущем посте.

Хватит уже просить пример вызова каждого Web-сервиса. Они все одинаково вызываются. Описание читайте в javadoc.
- Как сложить 2 и 2
- sum(2, 2);
- А как сложить 5 и 5
- sum(5, 5);
-А как сложить 7 и 7
-Вызвать функцию sum.
- Такое нельзя без примеров!!!

Автор:  Phricker [ 19 май 2015, 12:04 ]
Заголовок сообщения:  Re: событие при смене тарифа скриптом

stark писал(а):
...

У вас одинаковые цифры складываются.
Такое я и сам могу.
А пример для 2+3 где? Вот то-то и оно

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