Код:
package ru.skyb.scripts.behavior;
import java.sql.Connection;
import java.util.Calendar;
import java.util.Date;
import bitel.billing.server.contract.bean.ContractStatus;
import bitel.billing.server.contract.bean.ContractStatusManager;
import ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent;
//import ru.bitel.bgbilling.kernel.event.events.ContractStatusChangingEvent;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
public class ChangeStatusRestructuring
extends EventScriptBase<ContractStatusChangedEvent>
{
@Override
public void onEvent( ContractStatusChangedEvent event1, Setup setup2, ConnectionSet connectionSet3 )
throws Exception
{
Connection con = connectionSet3.getConnection();
int cid = event1.getContractId();
ContractStatus status = event1.getStatus();
//ContractStatusChangedEvent csce = ((ContractStatusChangedEvent) event1).
//int status = ((ContractStatus) event1).getStatus();
//ContractStatusChangedEvent csce = ((ContractStatusChangedEvent) event1).getDateFrom();
Calendar c = Calendar.getInstance();
//Calendar nowDate = Calendar.getInstance();
//Date dateNow = TimeUtils.convertCalendarToDate(nowDate);
//GregorianCalendar three = (GregorianCalendar) c.clone();
//three.add( Calendar.DAY_OF_MONTH, +3 );
//Date dateThree = TimeUtils.convertCalendarToDate(three);
ContractStatusManager csm = new ContractStatusManager(con);
//ContractStatus status = csm.getStatus(cid, dateNow);
Date dt = status.getDateFrom();
c.setTime(dt);
c.add( Calendar.DAY_OF_MONTH, +3 );
//dt = Calendar.set(Calendar.DAY_OF_MONTH, +3);
//((Calendar) dt).add( Calendar.DAY_OF_MONTH, +3 );
/*if (status == null)
{
return;
}*/
print ("dt " + dt + " c.getTime() " + c.getTime());
int contract_status = status.getStatus();
print("Текущий статус " + contract_status);
if (contract_status == 6)
{
//Изменение статуса с будущей даты
ContractStatus statusR = new ContractStatus();
statusR.setContractId(cid);
statusR.setDateFrom(c.getTime());
statusR.setDateTo(null);
statusR.setStatus( 0 );
statusR.setComment("Автоматическое изменение статуса скриптом на Активен");
csm.changeStatus( statusR, 0, false );
print("Был статус Переоформление" + contract_status + " Изменили на Активен");
}
}
}
Вобщем сделал так, НО почему то отрабатывает только на прошлые даты, если ставить статусы с будущей даты, то даже в логи не пишет что событие было
_________________
Код:
Клиент: вер. 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Стиль программирования - пьяный мастерстер
Разработка мобильных приложений