BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: 04 авг 2010, 16:29 
Не в сети
Разработчик

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


а статус договора некто в это момент не менял ? руками или скрипт какой-то ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 авг 2010, 16:38 
смысл в том что дальше условия переменная не видна.
как будто надо ставить что то типа global. хотя это условие а не функция


Вернуться к началу
  
 
СообщениеДобавлено: 04 авг 2010, 16:45 
Переписали скрипт вот так
Код:
//ID абонента CID
cid = event.getContractId();
date = event.getGenerateTime().clone();
contract = new ContractManager(con).getContractByID(cid);
if (contract == null)
   {return;}
//IPN статус
ipnmodule = Setup.getSetup().getModuleSetup( 12 );
IPNContractStatusManager ipn = new IPNContractStatusManager (con, 12, ipnmodule);
ipnstat = ipn.getContractStatus (cid);
//Статус абонента
ContractStatusManager statusManager  = new ContractStatusManager (con);
status = statusManager.getStatus(cid, date.getTime());

if (status == null)
   {
      return;
   };

contract_status = status.getStatus();

if (ipnstat == KernelConst.CONTRACT_STATUS_ACTIVE && contract_status == KernelConst.CONTRACT_STATUS_ACTIVE)
   {
      return;
   };
if (ipnstat != KernelConst.CONTRACT_STATUS_ACTIVE && contract_status == KernelConst.CONTRACT_STATUS_ACTIVE)
   {
      ipn.changeStatus(cid, KernelConst.CONTRACT_STATUS_ACTIVE, 0, true);
      return;
   };
if (ipnstat == KernelConst.CONTRACT_STATUS_ACTIVE && contract_status != KernelConst.CONTRACT_STATUS_ACTIVE)
   {
       ipn.changeStatus(cid, KernelConst.CONTRACT_STATUS_DISCONNECTED, 0, true);
      return;
   };

По сути все скрипты с вики где похожее условие перестанут работать


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
stels писал(а):
По сути все скрипты с вики где похожее условие перестанут работать


да и это правильно ..переменная должна быть объявлена или определена на том уже уровне , где ее хотят использовать
Лучше писать явно выше блоков
int contract_status = 0;

Иначе если ее определяют присваиванием внутри какого-то блока , то она будет не видна вне этого блока . Это логично ..Но к сожалению, уже не вы первые, кто на это наперся . Прошу всех обратить внимание. так писать нельзя


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
sabriel писал(а):
смысл в том что дальше условия переменная не видна.
как будто надо ставить что то типа global. хотя это условие а не функция

не важно .вы определили блок ..т.е в это блоке как будто бы написали так
Код:
if ( bla-bla )
{
      int var =  10;
}

System.out.println ( "var = " + var ); //нет тут уже переменной var . Ее время жизни ограничено блоком if



любые {} - являются блоком , буть то функция , или условие и или просто {} без ничего . каждая переменная живет и видна только внутри своего блока , где она объялена . В случае BeanShell присваивание является как бы не явным объявленим . рекомендую всегда объявлять типы переменных


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
проблема в том, что предыдущая версия библиотеки bsh это позволяла делать .


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2

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


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

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


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

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