BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 24 дек 2013, 12:30 
Не в сети
Клиент

Зарегистрирован: 02 дек 2009, 12:28
Сообщения: 93
Откуда: Ленинградская обл.
Карма: 5
Точим скрипты под 6.0.
Вот с одним уперся. Помогите разобраться :facepalm:

Скрипт:
Код:
import bitel.billing.server.util.*;
import bitel.billing.common.*;
import bitel.billing.server.contract.bean.*;

import bitel.billing.server.npay.bean.*;
import java.math.*;


import bitel.billing.server.task.bean.*;
import bitel.billing.server.admin.bean.*;
import bitel.billing.server.npay.*;
import bitel.billing.common.KernelConst;
import ru.bitel.common.*;
import ru.bitel.bgbilling.modules.npay.server.*;
import java.util.*;
import java.sql.*;


includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/contract" );
includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/crm" );
includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/trial" );


public void onEvent( event, setup, con, conSlave )
{

   task = event.getTask();
   ttid = task.getTypeId();

   print("Проверяем ТИП закрываемой задачи");

   if ( ttid == 1 ) { // Тип задачи 1 - Подключение к сети

      print("ОК, закрыли задачу ТИПА 'подключение к сети'");

      Calendar now = new GregorianCalendar();
      ContractManager cm = new ContractManager( con );

      cid = event.getContractId();
      Contract contract = cm.getContractById( cid );
   
      // для дебитовых договоров открываем триал-период
      if ( contract.getBalanceMode() != Contract.CREDIT_BALANCE_MODE ) {

         // добавляем в группу тестирования
         addToGroup( con, cid, GROUP_TRIAL );

         // в группу живых договоров
         addToGroup( con, cid, GROUP_INET_ACTIVE );

         // удаляем из группы очереди подключения
         deleteFromGroup( con, cid, GROUP_JOIN_PROC );

         // устанавливаем дату начала предоставления услуг
         cpu = new ContractParamUtils( con );
         cpu.setDateParam( cid, PARAM_START_DATE, now.getTime(), 0 );

         // смотрим есть ли персональный тестовый период
         tp = cpu.getStringParam( cid, PARAM_TRIAL_PERIOD );
         if ( tp == null ) {
            tp = DAYS_TEST_PERIOD;
         }

         // открываем договор
         setContractStatus( con, cid, KernelConst.CONTRACT_STATUS_ACTIVE, now.getTime() , "Активация тестового периода на "+tp+" дн" );

      }
      // для кредитовых договоров активируем договор, создаем АП
      else {

         // открываем договор
         setContractStatus( con, cid, KernelConst.CONTRACT_STATUS_ACTIVE, now.getTime() , "Активация договора после подключения" );


         Calendar startMonth = TimeUtils.getStartMonth( now );
         Calendar endMonth = TimeUtils.getEndMonth( now );
 
         ServiceObjectManager som = new ServiceObjectManager( con, NPAY_MID );
         BalanceUtils bu = new BalanceUtils( con );
 
         // проверка наличия абонплаты
         List serviceObjectList = som.getServiceObjectList( cid, null );
         isServiceExist = false;
         for( ServiceObject s : serviceObjectList )
         {
            if( s.getServiceId() == ABON_SID )
            {
               print( "Abon already exists" );
               isServiceExist = true;
            }   
         }

         // открытие абонплаты
         if ( !isServiceExist ) {
            print( "Add AP" );
            ServiceObject serviceObject = new ServiceObject();
            serviceObject.setContractId( cid );
            serviceObject.setServiceId( ABON_SID );
            serviceObject.setDate1( TimeUtils.convertCalendarToDate( now ) );
 
            serviceObjectList.clear();
            serviceObjectList.add( serviceObject );   

            som.updateServiceObject( serviceObject );
         }

         print( "Active date: " + TimeUtils.formatDate( now ) );
         print( "Calс abon to date: " + TimeUtils.formatDate( endMonth ) );
 
         BigDecimal planAccount = BigDecimal.ZERO;
 
         // предначисление до конца месяца
         Calculator calculator = new Calculator();
         calculator.setExecutingTime( endMonth );
         calculator.setPreCalc();
         calculator.setActiveFromDate( now );
         calculator.setServiceObjectList( serviceObjectList );
         calculator.initTask( setup, 0, "mid=" + NPAY_MID );
         calculator.setCids( String.valueOf( cid ) );
         calculator.startTask();
 
         print( "Precalc for time: " + TimeUtils.formatDate( endMonth ) );
 
         if( calculator.isCalcErrors() )
         {
            print( "Precalc to end month errors!" );
            return;
         }
 
         Map planAccountMap = calculator.getCostCache().getContractAccounts();
         if( planAccountMap.get( cid ) == null )
         {
            print( "Can't calculate plan account" );
         }
 
         planAccount = planAccountMap.get( cid );
         print( "planAccount=" + planAccount );


         // запуск реального начисления
         new RunTaskDataManager( con ).addTask( new Recalculator( NPAY_MID, now, null, 0, String.valueOf( cid ), "Автоматическое открытие абонплаты" ) );

         // в группу живых договоров
         addToGroup( con, cid, GROUP_INET_ACTIVE );

         // удаляем из группы очереди подключения
         deleteFromGroup( con, cid, GROUP_JOIN_PROC );

         // устанавливаем дату начала предоставления услуг
         cpu = new ContractParamUtils( con );
         cpu.setDateParam( cid, PARAM_START_DATE, now.getTime(), 0 );

      }

   }

}

Лог отработки:
Код:
12-24/10:09:15  INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Caught event: ru.bitel.bgbilling.plugins.crm.server.bean.event.RegisterTaskClosedEvent
12-24/10:09:15  INFO [scrpt-evnt-lstnr-p-4-t-2] ScriptInstance - Invoke method Function [id:71; title:Закрытие задачи на подключение] : onEvent
12-24/10:09:15  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent
12-24/10:09:15  INFO [scrpt-evnt-lstnr-p-4-t-3] ScriptInstance - Invoke method Function [id:49; title:Изменение группы в соответствии со статусом договора] : onEvent
12-24/10:09:15  INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Process time => 169
12-24/10:09:15  INFO ["http-bio-/0.0.0.0-8443"-exec-4] ScriptEventListener - Проверяем ТИП закрываемой задачи
ОК, закрыли задачу ТИПА 'подключение к сети'

12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'val' cannot be null
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at java.lang.reflect.Constructor.newInstance(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.Util.getInstance(Util.java:386)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1339)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:825)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bitel.billing.server.contract.bean.ContractParameterManager.updateDateParam(ContractParameterManager.java:240)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bitel.billing.server.contract.bean.ContractParameterManager.setDateParam(ContractParameterManager.java:198)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at java.lang.reflect.Method.invoke(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.Reflect.invokeMethod(Reflect.java:137)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.Reflect.invokeObjectMethod(Reflect.java:83)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.Name.invokeMethod(Name.java:858)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:186)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.This.invokeMethod(This.java:255)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at bsh.This.invokeMethod(This.java:174)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.invoke(ScriptInstance.java:385)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$Invoker.runScriptImpl(ScriptEventListener.java:116)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.runScript(ScriptEventListener.java:353)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener.access$0(ScriptEventListener.java:1)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener$1.call(ScriptEventListener.java:454)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at java.util.concurrent.FutureTask.run(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at java.lang.Thread.run(Unknown Source)
12-24/10:09:15 ERROR [scrpt-evnt-lstnr-p-4-t-3] LoggingPrintStream -    at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
12-24/10:09:15  INFO [event-proc-p-2-t-1] ScriptEventListener - Process time => 26
12-24/10:09:15  INFO [event-proc-p-2-t-1] ScriptEventListener - Статус:0
Добавляем в группу 'Недостаточно средств'
Удаляем из группы 'Недостаточно средств'


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 05:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
LoggingPrintStream - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'val' cannot be null

вот же, какое то поле не может быть null

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 11:20 
Не в сети
Клиент

Зарегистрирован: 02 дек 2009, 12:28
Сообщения: 93
Откуда: Ленинградская обл.
Карма: 5
Об этом я догадался :)
Единственное такое поле "val" нашел в таблице "setup". Я так понимаю, означает дату закрытого периода.(может я не прав)
По-умолчанию был "00-00-0000". Пробовал поменять на "01-01-1980" - ошибка остается. Значит, не отсюда должно браться.
Откуда?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 13:09 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
crez писал(а):
Об этом я догадался :)
Единственное такое поле "val" нашел в таблице "setup". Я так понимаю, означает дату закрытого периода.(может я не прав)
По-умолчанию был "00-00-0000". Пробовал поменять на "01-01-1980" - ошибка остается. Значит, не отсюда должно браться.
Откуда?


судя по логу ошибка возникает при вызове
at bitel.billing.server.contract.bean.ContractParameterManager.updateDateParam(ContractParameterManager.java:240)
- установка параметра договора типа Дата


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

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


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

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


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

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