Нашел в чем причина!!!
Сначала написал простенький скрипт для проверки:
Код:
package ru.borin.atirra;
import bitel.billing.server.contract.bean.Contract;
import bitel.billing.server.contract.bean.ContractManager;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.status.common.service.ContractStatusMonitorService;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.Connection;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Test3
extends GlobalScriptBase
{
@Override
public void execute( Setup setup, ConnectionSet connectionSet )
throws Exception
{
Connection connection = connectionSet.getConnection();
ContractManager cm = new ContractManager(connection);
Calendar calendar = new GregorianCalendar(2009, 10, 12);
Contract contract = cm.createFromPattern(1, "100500", calendar, "12345");
ServerContext context = ServerContext.get();
ContractStatusMonitorService contractStatusMonitorService = context.getService(ContractStatusMonitorService.class, 0);
contractStatusMonitorService.changeContractStatus(new int[]{contract.getId()}, 4, new Date(), null, "тест");
}
}
И чудо произошло, создался договор и статус стоял верный. А скрипт который создает договор, добавляет платежи, расходы, устанавливает тариф, изменяет параметры договора. Создает договор ноо статус не меняется, как видно на скриншоте выше. Тогда я изменение статуса поместил в самый конец добавления договора и чудо все работает.
Решил выяснить где происходит ошибка , оказалось если статус изменить до cm.updateContract(contract);, то не работает, а если после то работает.
Пример кода который демонстрирует ошибку.
Код:
package ru.borin.atirra;
import bitel.billing.server.contract.bean.Contract;
import bitel.billing.server.contract.bean.ContractManager;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.status.common.service.ContractStatusMonitorService;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.Connection;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Test3
extends GlobalScriptBase
{
@Override
public void execute( Setup setup, ConnectionSet connectionSet )
throws Exception
{
Connection connection = connectionSet.getConnection();
ContractManager cm = new ContractManager(connection);
Calendar calendar = new GregorianCalendar(2009, 10, 12);
Contract contract = cm.createFromPattern(1, "100500", calendar, "12345");
ServerContext context = ServerContext.get();
ContractStatusMonitorService contractStatusMonitorService = context.getService(ContractStatusMonitorService.class, 0);
contractStatusMonitorService.changeContractStatus(new int[]{contract.getId()}, 4, new Date(), null, "тест");
contract.setComment("Иванов Иван Иванович");
cm.updateContract(contract);
}
}
_________________
Код:
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45