forum.bitel.ru http://forum.bitel.ru/ |
|
Приостановление договора клиентом через WEB http://forum.bitel.ru/viewtopic.php?f=19&t=6060 |
Страница 1 из 1 |
Автор: | crez [ 01 ноя 2011, 16:13 ] |
Заголовок сообщения: | Приостановление договора клиентом через WEB |
Победил все скрипты, что были у меня в биллинге, а этот никак не могу ![]() Подскажите, пожалуйста, как его поправить, чтоб не выдавал ошибок. Код: Сервер: вер. 5.1 сборка 718 от 12.10.2011 16:33:47 os:Linux; java:Sun Microsystems Inc., v.1.6.0_17 assist вер. 5.1 сборка 53 от 07.10.2011 17:58:09 bill вер. 5.1 сборка 239 от 20.09.2011 13:56:10 cerbercrypt вер. 5.1 сборка 209 от 23.09.2011 14:05:43 dba вер. 5.1 сборка 134 от 29.09.2010 13:00:59 dialup вер. 5.1 сборка 184 от 07.09.2011 15:13:58 drweb вер. 5.1 сборка 55 от 13.10.2011 18:38:13 email вер. 5.1 сборка 148 от 29.09.2010 13:00:35 gorod вер. 5.1 сборка 150 от 22.08.2011 15:39:47 ipn вер. 5.1 сборка 243 от 19.08.2011 16:13:38 mps вер. 5.1 сборка 168 от 06.10.2011 02:24:53 npay вер. 5.1 сборка 187 от 21.09.2011 17:44:07 phone вер. 5.1 сборка 266 от 20.10.2011 10:19:40 reports вер. 5.1 сборка 176 от 27.06.2011 18:48:24 rscm вер. 5.1 сборка 152 от 03.10.2011 14:11:04 ru.bitel.bgbilling.plugins.crm вер. 5.1 сборка 180 от 03.10.2011 14:10:41 trayinfo вер. 5.1 сборка 146 от 20.05.2011 16:24:48 voiceip вер. 5.1 сборка 169 от 07.09.2011 15:16:20 Скрипт сам из WIKI http://wiki.bgbilling.ru/index.php/Приостановление_договора_клиентом_через_WEB Код: import bitel.billing.server.contract.bean.*; import bitel.billing.server.util.*; import bitel.billing.common.*; import ru.bitel.bgbilling.common.*; public void onEvent( event, setup, con, conSlave ) { cid = event.getContractID(); cm = new ContractManager( con ); cstm = new ContractStatusManager( con ); tu = new TimeUtils(); print(event.toString()); contract = cm.getContractByID( cid ); status = cstm.getStatus(cid, event.getGenerateTime()); if( contract == null ) { error( "Contract not found!" ); return; } print(contract.getFc()); if(event.getTypeID() == 12) { // Получение списка действий if(contract.getFc() == 0) // Только для физ. лиц { print("Status: "+status.getStatus()+" from "+tu.convertCalendarToDateString(status.getDate1())); if (status.getStatus() == 0 && tu.daysDelta(status.getDate1(), event.getGenerateTime()) >=5) event.addAction(1, "Приостановление договора с текущего дня"); else if (status.getStatus() == 4 && tu.daysDelta(status.getDate1(), event.getGenerateTime()) >=5) event.addAction(2, "Возобновление договора с текущего дня"); } } if (event.getTypeID() == 16) { // Выполнение действия print(event.getActionId()); if (event.getActionId() == 1) { print("Changing status to suspended"); suspendDate = event.getGenerateTime(); suspendDate.roll(Calendar.DAY_OF_YEAR, 1); newStatus = new ContractStatus(); newStatus.setContractId(cid); newStatus.setStatus(4); newStatus.setDate1(suspendDate); newStatus.setComment("Установлено клиентом через WEB-статистику"); cstm.changeStatus(newStatus, 0); msg = "Договор "+contract.getTitle()+" ["+contract.getComment()+"] приостановлен с "+tu.convertCalendarToDateString(suspendDate); event.addReport(msg+"\r\nВы сможете возобновить договор не ранее, чем через 5 дней"); mail = new MailMsg(setup); mail.sendMessage("billmaster@example.com", "Приостановление "+contract.getTitle(), msg); } else if (event.getActionId() == 2) { print("Changing status to active"); newStatus = new ContractStatus(); newStatus.setContractId(cid); newStatus.setStatus(0); newStatus.setDate1(event.getGenerateTime()); newStatus.setComment("Установлено клиентом через WEB-статистику"); cstm.changeStatus(newStatus, 0); msg = "Договор "+contract.getTitle()+" ["+contract.getComment()+"] возобновлён с "+tu.convertCalendarToDateString(event.getGenerateTime()); event.addReport(msg+"\r\nВы сможете приостановить договор не ранее, чем через 5 дней"); mail = new MailMsg(setup); mail.sendMessage("billmaster@example.com", "Возобновление "+contract.getTitle(), msg); } } } Выдает вот такую ошибку: Код: OUT:
Event bitel.billing.server.script.bean.event.GetAdditionalWebActionListEvent cid: 1155; module: 0; type: 12; userId: -1 0 EXCEPTIONS: Error in method invocation: Method convertCalendarToDateString( java.sql.Date ) not found in class'bitel.billing.common.TimeUtils' : at Line: 28 : in file: Function [id:15; title:Приостановка договора абонентом через WEB] : tu .convertCalendarToDateString ( status .getFromDate ( ) ) java.util.concurrent.ExecutionException: Error in method invocation: Method convertCalendarToDateString( java.sql.Date ) not found in class'bitel.billing.common.TimeUtils' : at Line: 28 : in file: Function [id:15; title:Приостановка договора абонентом через WEB] : tu .convertCalendarToDateString ( status .getFromDate ( ) ) at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262) at java.util.concurrent.FutureTask.get(FutureTask.java:119) at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.runScriptImpl(ScriptMachine.java:371) at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:129) at bitel.billing.server.script.bean.event.EventProcessor.processContractEvent(EventProcessor.java:313) at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:231) at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:199) at bitel.billing.server.contract.action.web.ActionAdditionalAction.doAction(ActionAdditionalAction.java:64) at bitel.billing.server.WebExecuter.executeAction(WebExecuter.java:490) at bitel.billing.server.WebExecuter.doPost(WebExecuter.java:226) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at ru.bitel.server.servlet.filters.MultipartFilter.doFilter(MultipartFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at ru.bitel.server.servlet.filters.XSSFilter.doFilter(XSSFilter.java:87) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at bitel.billing.server.filters.BGAuthFilter.doFilter(BGAuthFilter.java:275) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at bitel.billing.server.filters.BGAuthFilter.doFilter(BGAuthFilter.java:275) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:49) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:636) Caused by: Error in method invocation: Method convertCalendarToDateString( java.sql.Date ) not found in class'bitel.billing.common.TimeUtils' : at Line: 28 : in file: Function [id:15; title:Приостановка договора абонентом через WEB] : tu .convertCalendarToDateString ( status .getFromDate ( ) ) at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:77) at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102) at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47) at bsh.BSHBinaryExpression.eval(BSHBinaryExpression.java:123) at bsh.BSHArguments.getArguments(BSHArguments.java:65) at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:69) at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102) at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47) at bsh.BSHBlock.evalBlock(BSHBlock.java:131) at bsh.BSHBlock.eval(BSHBlock.java:81) at bsh.BSHBlock.eval(BSHBlock.java:47) at bsh.BSHIfStatement.eval(BSHIfStatement.java:48) at bsh.BSHBlock.evalBlock(BSHBlock.java:131) at bsh.BSHBlock.eval(BSHBlock.java:81) at bsh.BSHBlock.eval(BSHBlock.java:47) at bsh.BSHIfStatement.eval(BSHIfStatement.java:48) at bsh.BSHBlock.evalBlock(BSHBlock.java:131) at bsh.BSHBlock.eval(BSHBlock.java:81) at bsh.BshMethod.invokeImpl(BshMethod.java:362) at bsh.BshMethod.invoke(BshMethod.java:258) at bsh.BshMethod.invoke(BshMethod.java:186) at bsh.This.invokeMethod(This.java:255) at bsh.This.invokeMethod(This.java:174) at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.invoke(ScriptInstance.java:371) at bitel.billing.server.script.bean.ScriptMachine$InvokeScriptRunner.runScript(ScriptMachine.java:85) at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:205) at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.access$0(ScriptMachine.java:1) at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:361) at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) ... 1 more |
Автор: | skyb [ 01 ноя 2011, 16:32 ] |
Заголовок сообщения: | Re: Приостановление договора клиентом через WEB |
так это же есть в поставке с биллингом из коробки ![]() |
Автор: | Artur [ 01 ноя 2011, 16:36 ] |
Заголовок сообщения: | Re: Приостановление договора клиентом через WEB |
Понятное дело, что он ругается! Метод convertCalnedarToDateString( Calendar cal) принимает в качестве аргумента не java.util.Date, а java.util.Calendar. Если вам принципиально использовать именно этот метод, то сперва нужно создать объект Calendar и передать в качестве аргумента нужный вам Date. Код: Calendar calendar = new GregoranCalendar(); calendar.setTime( event.getGenerateTime() ); либо использовать метод TimeUtils.format( Date, String ), который принимает java.util.Date и шаблон, по которому отформатировать дату. Если шаблон не задан, то будет использован шаблон по-умолчанию (dd.MM.yyyy) |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |