forum.bitel.ru
http://forum.bitel.ru/

Событие смены статуса, как получить DateFrom
http://forum.bitel.ru/viewtopic.php?f=19&t=8864
Страница 1 из 1

Автор:  skyb [ 21 янв 2014, 15:13 ]
Заголовок сообщения:  Событие смены статуса, как получить DateFrom

Как с евента вытянуть DateFrom при смене статуса
Код:
ContractStatus status = ((ContractStatus) event1).getDateFrom();
- эт чего то ошибку выдает

Автор:  Artur [ 21 янв 2014, 15:49 ]
Заголовок сообщения:  Re: Событие смены статуса, как получить DateFrom

Как можно ContractStatus приравнять к событию?

Автор:  skyb [ 21 янв 2014, 16:45 ]
Заголовок сообщения:  Re: Событие смены статуса, как получить DateFrom

Код:
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 + " Изменили на Активен");
      }
   }

}

Вобщем сделал так, НО почему то отрабатывает только на прошлые даты, если ставить статусы с будущей даты, то даже в логи не пишет что событие было

Автор:  Phricker [ 21 янв 2014, 17:06 ]
Заголовок сообщения:  Re: Событие смены статуса, как получить DateFrom

Так на будущую дату смена статуса отработает задачей планировщика "смена статуса у договоров"

Автор:  skyb [ 21 янв 2014, 17:08 ]
Заголовок сообщения:  Re: Событие смены статуса, как получить DateFrom

Phricker писал(а):
Так на будущую дату смена статуса отработает задачей планировщика "смена статуса у договоров"

даладно....афигеть, ок, проверю
девлоперы, подтверждаете?

Автор:  skyb [ 21 янв 2014, 18:20 ]
Заголовок сообщения:  Re: Событие смены статуса, как получить DateFrom

даладно, не верю что не знаете)

Автор:  dimOn [ 22 янв 2014, 15:22 ]
Заголовок сообщения:  Re: Событие смены статуса, как получить DateFrom

на будущую дату конечно нет событий, событие бросится из таска, всё верно сказано

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/