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

При тестировании 5.1 скрип пишет ошибку
http://forum.bitel.ru/viewtopic.php?f=19&t=4932
Страница 1 из 1

Автор:  madmax [ 19 дек 2010, 19:34 ]
Заголовок сообщения:  При тестировании 5.1 скрип пишет ошибку

Не подскажите почему в версии 5.1 выходит ошибка. Есть скрипт который устанавливает группу должников или убирает.
Но непонятно что за ошибка появляется

Вот скрипт
Код:
import bitel.billing.server.call.bean.*;
import bitel.billing.server.radius.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.script.event.*;
import bitel.billing.common.KernelConst;
import bitel.billing.server.ipn.bean.*;
import java.text.*;
import java.util.*;
import bitel.billing.server.tariff.bean.*;
import java.math.*;


if ( event.flag == 12 )
  {
// номер контракта
cid = event.getContractID();
evdate=event.getGenerateTime();
datefrm = new SimpleDateFormat("yyyy");
evyear=datefrm.format(evdate.getTime()).toString();
datefrm = new SimpleDateFormat("MM");
evmonth=datefrm.format(evdate.getTime()).toString();

// Сумма задолженности на начало месяца
ps = con.prepareStatement("SELECT summa1 FROM contract_balance WHERE cid=? AND yy="+evyear+" AND mm="+evmonth);
ps.setInt( 1, cid);
rs = ps.executeQuery();
if ( rs.first() ) { asum1 = rs.getLong(1); } else { break; }

// Сумма оплаты за текущий месяц
ps = con.prepareStatement("SELECT summa2 FROM contract_balance WHERE cid=? AND yy="+evyear+" AND mm="+evmonth);
ps.setInt( 1, cid);
rs = ps.executeQuery();
rs.first();
asum2 = rs.getLong(1);

//Текущие группы договора и тип физического лица
cpu = new ContractParamUtils( con ); 
contract = new ContractManager(con).getContractByID(cid);
contract_groups = contract.getGroups();
contract_fc = contract.getFc();


//Итоговая сумма равна сумме оплат плюс задолженность на начало месяца
total= asum2 + asum1;

// Если у договора присутствует группа служебные тогда выход
if (( contract_groups & (1L<<57)) > 0) {   break; }

//Если физическое лицо и сумма задолженности больше или равно - 100 тогда не должник
if ( contract_fc == 0 && total >= -100 )
     {
       if (( contract_groups & (1L<<54)) > 0) {   cpu.unsetGroup( cid,  54 );  }
        break;
     }
//Если юридическое лицо и сумма задолженности больше или равно - 200  тогда не должник
if ( contract_fc == 1 && total >= -200 )
     {
       if (( contract_groups & (1L<<54)) > 0) {   cpu.unsetGroup( cid,  54 );  }
        break;
     }

//Установить группу должники
cpu.setGroup( cid,  54 ); 

}


А вот какая выходит ошибка
Typed variable declaration : illegal use of undefined variable, class, or 'void' literal : at Line: 54 :
Именно на записи total= asum2 + asum1;
Почему стала появляться ошибка?

Автор:  skyb [ 20 дек 2010, 05:50 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

в 5.1 необходимо проинициализировать переменную

Автор:  madmax [ 20 дек 2010, 10:04 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

Да я так пробовал но ошибка не исчезает.
Я в самом начале прописал int total = 10000;
Но ошибка осталась без изменения

Автор:  skyb [ 20 дек 2010, 10:42 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

может не видит? отдебажте скрипт
Код:
print("total>" + total);

Автор:  madmax [ 20 дек 2010, 10:50 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

отдебажел - результат в файле server.script.log выходит ошибка а дальше total>10000
после записи я также поставил
total = asum2 + asum1;
print("total>" + total);
Но в логе уже ничего не появляется, только ошибка.
Может он не может суммировать (хотя скрипт отрабатывает и меняет группу) или нужно не integer ставить?

Автор:  skyb [ 20 дек 2010, 13:39 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

Код:
asum2
asum1

тоже бы инициализировать

Автор:  madmax [ 20 дек 2010, 14:56 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

да действительно ошибки исчезли. учтем. спасибо
Но правда сейчас появились два WARM
1) using deprecated method [public bitel.billing.server.contract.bean.ContractStatus bitel.billing.server.contract.bean.ContractStatusManager.getStatus(int,java.util.Calendar)]
2) using deprecated method [public int bitel.billing.server.script.bean.event.Event.getContractID()]

Автор:  skyb [ 20 дек 2010, 14:57 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

madmax писал(а):
да действительно ошибки исчезли. учтем. спасибо
Но правда сейчас появились два WARM
1) using deprecated method [public bitel.billing.server.contract.bean.ContractStatus bitel.billing.server.contract.bean.ContractStatusManager.getStatus(int,java.util.Calendar)]
2) using deprecated method [public int bitel.billing.server.script.bean.event.Event.getContractID()]

используются старые класы, в явадок и смотреть на что сменилось :)
madmax писал(а):
2) using deprecated method [public int bitel.billing.server.script.bean.event.Event.getContractID()

тут кстати кажись нада указать
Код:
getContractId()

ну тоесть с большой D поменять на маленькую d

Автор:  madmax [ 20 дек 2010, 16:16 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

По второму спасибо отработало.
а вот по первому не пойму что делаем не так.
написано
getStatus(int cid, java.util.Calendar date)
Deprecated. использовать public ContractStatus getStatus( int cid, Date date )

а как этот public использовать что-то не пойму

Автор:  dimOn [ 20 дек 2010, 16:44 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

просто второй параметр не календарь, а дата сейчас. много где так переделалось. либо в дате всё храните, ли если надо вычислять итд, то из календаря можно получить дату через .getTime()

Автор:  madmax [ 03 июн 2011, 20:45 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

откладывал проблему в долгий ящик. Теперь решил убрать проблему.
Делаю как написали evdate = event.getGenerateTime().getTime();
Но в итоге вообще скрипт не работает.
Как же убрать эту ошибку, не пойму

Автор:  madmax [ 04 июн 2011, 13:09 ]
Заголовок сообщения:  Re: При тестировании 5.1 скрип пишет ошибку

проблему решили прописав evdate.getTime()

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