package br.com.centralit.citcorpore.regras; import java.util.Calendar; import br.com.centralit.citcorpore.bean.ProgramacaoAtividadeDTO; import br.com.citframework.excecao.LogicException; import br.com.citframework.util.UtilDatas; public class RegraProgramacaoAtividade_D extends RegraProgramacaoAtividade { public java.util.Date calculaProximaExecucao(ProgramacaoAtividadeDTO programacaoAtividadeDto, java.util.Date dataRef) throws Exception { java.util.Date proximaExecucao = null; java.util.Date dataExecucao = programacaoAtividadeDto.getProximaExecucao(); if (dataExecucao == null) dataExecucao = programacaoAtividadeDto.getDataInicio(); if (dataExecucao.compareTo(dataRef) <= 0 && (programacaoAtividadeDto.getDataFim() == null || programacaoAtividadeDto.getDataFim().compareTo(dataRef) >= 0)) { while (dataExecucao.compareTo(dataRef) < 0) dataExecucao = UtilDatas.alteraData(dataExecucao, programacaoAtividadeDto.getPeriodicidadeDiaria().intValue(), Calendar.DAY_OF_MONTH); proximaExecucao = dataExecucao; } return proximaExecucao; } public void valida(ProgramacaoAtividadeDTO programacaoAtividadeDto) throws Exception { if (programacaoAtividadeDto.getPeriodicidadeDiaria() == null) throw new LogicException("Periodicidade da programa��o di�ria n�o foi informada"); } public String getDetalhamento(ProgramacaoAtividadeDTO programacaoAtividadeDto) throws Exception { String descricao = ""; if (programacaoAtividadeDto.getPeriodicidadeDiaria().intValue() == 1) descricao = "Todo dia �s "+programacaoAtividadeDto.getHoraInicio(); else descricao = "�s "+programacaoAtividadeDto.getHoraInicio()+" a cada "+programacaoAtividadeDto.getPeriodicidadeDiaria().intValue()+" dias"; return descricao; } }