Перешел на биллинг вер. 4.6.
Переписал скрипты.
При создании договора вызывается функция SetStatusForNewContract(cid,con).
Код:
//Определение ID пользователя для синхронных событий
public Integer getCurrentUserId()
{
Subject subject = Subject.getSubject( AccessController.getContext() );
if( subject != null )
{
for( UserPrincipal userPrincipal : subject.getPrincipals( UserPrincipal.class ) )
{
return userPrincipal.getUser().getID();
}
}
return 0;
}
//Приостановка договора при создании
public SetStatusForNewContract(cid,con)
{
contract = new ContractManager(con).getContractByID(cid);
contract_status_manager = new ContractStatusManager(con);
contract_status = new ContractStatus();
contract_status.setContractId(cid);
contract_status.setDate1( TimeUtils.convertSqlDateToCalendar(contract.getDateFrom()));
contract_status.setStatus(KernelConst.CONTRACT_STATUS_SUSPENDED);
contract_status.setComment( "Автоматически при создании" );
contract_status_manager.changeStatus(contract_status,getCurrentUserId());
};
Вчера было заключено 15 договоров, в 3 из них функция getCurrentUserId() вернула не того пользователя.
Т.е. договор заключал один пользователь, а в "Истории изменения статусов" стоит другой.
Прошу помочь.
сервер вер. 4.6 сборка 524