Здравствуйте!
Обновились с версии 6.0 до 7.0.
В версии 6.0 добавляли услугу в модуле rscm с помощью дин кода:
Код:
ContractServiceManager csm1 = new ContractServiceManager(getConnection(), 6);
ContractService cs = new ContractService();
cs.setId(-1);
cs.setContractId(contr.getId());
cs.setServiceId(1);
cs.setAmount((long)debt);
cs.setDate(Calendar.getInstance());
cs.setUnit("");
cs.setService("");
cs.setComment(job_name);
csm1.updateContractService(cs);
new RunTaskDataManager(getConnection()).addTask( new RSCMRecalculator(6, Calendar.getInstance(), "", "" + contr.getId()));
EventProcessor.getInstance().publishAfterCommit( new RSCMContractServiceUpdateEvent( uid, 6, contr.getId(), cs ) );
Код нормально работал.
После обновления на 7.0 текущий код сломался(API изменилось). Переписал код на:
Код:
RSCMContractServiceManager csm1 = new RSCMContractServiceManager(connectionSet2.getConnection(), 6);
RSCMContractService cs = new RSCMContractService();
cs.setId(-1);
cs.setContractId(1303);
cs.setServiceId(1);
cs.setAmount((long)990000000.0);
cs.setDate(new Date());
cs.setUnit("");
//cs.setService("");
cs.setServiceId(1);
cs.setServiceTitle("");
cs.setComment("test");
csm1.updateContractService(cs);
new RunTaskDataManager(connectionSet2.getConnection()).addTask( new ru.bitel.bgbilling.modules.rscm.server.RSCMRecalculator(6, Calendar.getInstance(), "", "" + 1303));
EventProcessor.getInstance().publishAfterCommit( new RSCMContractServiceUpdateEvent( 12, 6, 1303, cs ) );
Услуга добавляется. Но баланс у договора не пересчитывается. То есть с договора не списываются деньги за услугу.
Подскажите что теперь нужно использовать для корректного списания?
Не по теме. Из документации при обновлении необходимо запустить скрипт для копирования данных из нескольких таблиц в одну в модуле rscm. Цитата:
Если используете модуль RSCM необходимо конвертировать таблицы, для этого скопируйте текст скрипта в файл и запустите его(работает в unix-подобных системах).
И приведен баш скрипт. Данный скрипт работает только если добавлен один модуль RSCM. Если их 2 то скрипт не работает. Для себя данную проблему решил.