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

ContractTariffDeleteEvent
http://forum.bitel.ru/viewtopic.php?f=22&t=7832
Страница 1 из 1

Автор:  nikav80 [ 13 мар 2013, 15:28 ]
Заголовок сообщения:  ContractTariffDeleteEvent

Для чего нужен getContractTariffId(), который возвращает id удаленного тарифного плана договора?
Нельзя-ли сделать такой-же метод, как и в ContractTariffUpdateEvent - getContractTariff(), при помощи которого получаем ContractTariff, а уж из него можно получить всю необходимую информацию об удаленном из договора тарифном плане, нежели getContractTariffId() - int результат которого, нам ничего не дает.
Или я ошибаюсь? и этот(getContractTariffId()) метод мне поможет получить иформацию о тарифном плане, удаленного из договора?
И если это так, то подскажите пожалуйста, как?

Автор:  barguzin2 [ 13 мар 2013, 22:48 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

ContractTariffDeleteEvent - тариф то только из договора удаляется, а как сущность в биллинге остается и получить информацию по нему можно через ContractTariffManager.getContractTariffByID

Кстати, а в 5.2 в событии ContractTariffChangedEvent вообще нет каких-либо нативных методов.

Автор:  nikav80 [ 13 мар 2013, 23:37 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

barguzin2 писал(а):
ContractTariffDeleteEvent - тариф то только из договора удаляется, а как сущность в биллинге остается и получить информацию по нему можно через ContractTariffManager.getContractTariffByID


Я пробовал, не получается, выдает null.
Информацию, ContractTariffManager.getContractTariffByID получает из таблицы contract_tariff, но её уже там нет.
Сначала удаляется строка по id из таблицы contract_tariff, а за тем генерирует событие ContractTariffDeleteEvent. getContractTariffId(), которое дает порядковый номер записи в таблице contract_tariff, которой уже там нет.

barguzin2 писал(а):
Кстати, а в 5.2 в событии ContractTariffChangedEvent вообще нет каких-либо нативных методов.

Не ContractTariffChangedEvent, а ContractTariffUpdateEvent.

Автор:  barguzin2 [ 14 мар 2013, 10:23 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

Судя по имени класса события полагаю что у вас 5.1, так как именно там ContractTariffUpdateEvent, у которого есть метод getContractTariff. Я же внес еще попутно замечание для 5.2, где событие называется ContractTariffChangedEvent и у него нет методов.

Да, всё правильно, ContractTariffManager работает с contract_tariff, это TariffPlanManager работает с таблицей tariff_plan. Получается что раз тариф удалили - то и всё, нет по нему инфы :)

Автор:  nikav80 [ 14 мар 2013, 10:54 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

Уважаемые разработчики, Вы могли бы добавить в событие ContractTariffDeleteEvent метод, который возвращает информацию об удаленном тарифном плане из договора?(BGB v5.2)

Автор:  dimOn [ 14 мар 2013, 15:29 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

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

Автор:  Phricker [ 14 мар 2013, 15:46 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

Код:
import bitel.billing.server.util.*;
import bitel.billing.server.tariff.bean.*;
import ru.bitel.common.*;
import bitel.billing.server.contract.bean.*;

public void onEvent( event, setup, con, conSlave )
{
   ContractTariffManager ctm = new ContractTariffManager( con ); //тариф менеджер
   
   delTar = event.getContractTariffId(); //получаем ID удаленного тарифа из таблицы contract_tariff
   newTar = ctm.getContractTariffById(delTar); // пытаемся получить тарифный план из таблицы tariff_plan
   print( "TariffId = " + newTar.getTariffPlanId()  ); //получаем фигу с маслом.
}


Код:
EXCEPTIONS:
null : at Line: 12 : in file: Function [id:54; title:Удаление тарифа] : newTar .getTariffPlanId ( )


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

Автор:  barguzin2 [ 14 мар 2013, 16:45 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

Цитата:
Код:
newTar = ctm.getContractTariffById(delTar); // пытаемся получить тарифный план из таблицы tariff_plan



как уже было отмечено ConractTariffManager берет данные из contract_tariff, а их там нет, т.к. из договора тариф уже удален. Единственное что можно сделать в этом случае - дернуть инфу про удаленный тариф из таблицы tariff_plan, а для этого уже другой класс нужен - TariffPlanManager

Автор:  Phricker [ 14 мар 2013, 17:51 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

а ну да. ошибся и написал tariff_plan вместо contract_tariff

Автор:  nikav80 [ 14 мар 2013, 18:25 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

Phricker писал(а):
Код:
import bitel.billing.server.util.*;
import bitel.billing.server.tariff.bean.*;
import ru.bitel.common.*;
import bitel.billing.server.contract.bean.*;

public void onEvent( event, setup, con, conSlave )
{
   ContractTariffManager ctm = new ContractTariffManager( con ); //тариф менеджер
   
   delTar = event.getContractTariffId(); //получаем ID удаленного тарифа из таблицы contract_tariff
   newTar = ctm.getContractTariffById(delTar); // пытаемся получить тарифный план из таблицы tariff_plan
   print( "TariffId = " + newTar.getTariffPlanId()  ); //получаем фигу с маслом.
}


Код:
EXCEPTIONS:
null : at Line: 12 : in file: Function [id:54; title:Удаление тарифа] : newTar .getTariffPlanId ( )


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

Точно!

Автор:  nikav80 [ 16 мар 2013, 00:20 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

dimOn писал(а):
ну там там есть же getContractTariffId. а что ещё нужно? остальной информации нету в принципе, т.к. событие уже постфактум бросается

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

Совсем не понимаю, зачем нужен этот id.
Вот если бы можно было получить tpid тарифного плана, который, в свою очередь, можно было бы получить перед удалением из класса ContractTariff, то было бы гораздо полезней.

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

Автор:  dimOn [ 18 мар 2013, 14:40 ]
Заголовок сообщения:  Re: ContractTariffDeleteEvent

этот id нужен чтобы удалить какие-то свои разные сущности если они есть.
да, можно было бы туда передавать ContractTariff вместо только id от него.

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