forum.bitel.ru http://forum.bitel.ru/ |
|
Как узнать новый статус договора? http://forum.bitel.ru/viewtopic.php?f=19&t=4155 |
Страница 1 из 1 |
Автор: | nolka4 [ 10 июн 2010, 13:43 ] |
Заголовок сообщения: | Как узнать новый статус договора? |
Если создать скрипт поведения и привязать его к событию "Изменение статуса договора", и в нем написать: Код: public void onEvent( event, setup, con, conSlave ) { cid = event.getContractID(); contract = new ContractManager(con).getContractByID(cid); print("status changed to contract "+cid+" to state: "+contract.getStatus() ); ... то будет возвращен текущий статус договора, до изменения. А как узнать новый установленный статус? |
Автор: | Cromeshnic [ 10 июн 2010, 13:49 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
http://bgbilling.ru/v5.0/javadoc/bitel/ ... Event.html Цитата: getStatus() Возвращает объект с устанавливаемым статусом, поля объекта можно изменять. ![]() |
Автор: | xwar [ 25 июл 2010, 03:50 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
Не вижу текущего статуса контракта Сервер Версия 5.1 сборка 452 Что интересно по событию "Приход платежа" второй способ срабатывает, а по событию "Изменение статуса договора" нет! 1) PreparedStatement status = con.prepareStatement("SELECT status,date2 FROM contract_status WHERE cid=? and date2 is null limit 1"); status.setInt(1,cid); ResultSet res = status.executeQuery(); while (res.next()){ ans=res.getInt(2); print ("integer "+ans); }; 2) и так тоже cstm = new ContractStatusManager( con ); StatusContractList = cstm.getStatusList(cid); print ("cid"+ cid +" date "+curtime+" status size "+StatusContractList.size()+" stat"+StatusContractList.get(0).getStatus()+StatusContractList.get(1).getStatus()); if (StatusContractList.size() == 0) return; StatusContract = StatusContractList.get(0); StatusContractNum=StatusContract.getStatus(); 3) так вижу но тот который до изменения contract = new ContractManager(con).getContractByID(cid); print("status:" + contract.getStatus()); Язык JAVA плохо знаю -можно прям кусочек кода? |
Автор: | xwar [ 27 июл 2010, 02:58 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
Оказывается причина была в том что скрипт вызывался по событию "Изменение статуса договора", а надо "Статус договора изменен"!!! |
Автор: | m2pod [ 27 июл 2010, 15:44 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
от перемены мест слагаемых сумма меняется? ![]() |
Автор: | skyb [ 27 июл 2010, 15:49 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
Ну если я правильно оцениваю правила русского языка, то Изменение статуса договора - это до совершения события а Статус договора изменен - это событие после совершения |
Автор: | m2pod [ 27 июл 2010, 15:52 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
skyb писал(а): Ну если я правильно оцениваю правила русского языка, то Изменение статуса договора - это до совершения события а Статус договора изменен - это событие после совершения тоесть скрипт будет выполняться до выполнения какого то действия? как же он тогда отработает, будет знать наперед что кто-то хочет изменить статус? я что-то не понимаю ![]() |
Автор: | dimOn [ 27 июл 2010, 16:38 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
Есть события синхронные, которых ждут вызывающие, как, например, при попытке смены статуса. Пока соответствующий скрипт не завершится - статус не сменится. причём в этом скрипте есть возможность повлиять на смену статуса, например, отменить её или дату сместить или что-то типа того. Есть события асинхронные, которые просто оповещают, что что-либо уже произошло. В том числе, например, сменился уже статус. Можно сделать внутри какие-то действия по этому факту. |
Автор: | dimOn [ 27 июл 2010, 16:41 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
m2pod писал(а): skyb писал(а): Ну если я правильно оцениваю правила русского языка, то Изменение статуса договора - это до совершения события а Статус договора изменен - это событие после совершения тоесть скрипт будет выполняться до выполнения какого то действия? как же он тогда отработает, будет знать наперед что кто-то хочет изменить статус? я что-то не понимаю ![]() А мне в свою очередь не очень понятно что именно непонятно. Скрипт отрабатывает, когда кто-то начал менять статус, уже нажал на кнопку "изменить". Мы можем знать и текущий, и тот, на который меняем. В скрипте можно делать что угодно, приложение ждёт завершения скрипта. После его завершения уже происходит собственно смена статуса физическая, в БД. После этого пуляется второе, асинхронное событие, а приложение занимается уже своими делами. |
Автор: | m2pod [ 27 июл 2010, 17:39 ] |
Заголовок сообщения: | Re: Как узнать новый статус договора? |
оказывается есть в доке Код: Изменение статуса договора : Вызывается при смене статуса договора. Позволяет изменить устанавливаемый статус.
Статус договора изменен: Вызывается после изменения статуса договора. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |