All pastes #2053466 Raw Edit

Unnamed

public text v1 · immutable
#2053466 ·published 2011-05-03 13:51 UTC
rendered paste body
public static boolean isPeriodoDentroMesSeguinte(FeriasPeriodo periodoNEW, FeriasPeriodo periodoDB) {
		
		
		//Representa data com período mês/ano seguinte ao atual. Ex.: se o mês atual é maio/2011, representa junho/2011
		Calendar dataMesSeguinteAoAtual = getDataMesSeguinte();		
		
		//Data inicial das férias original (no banco de dados), ou seja, a ques está sendo alterada
		Calendar inicioOriginal = Calendar.getInstance();
		inicioOriginal.setTime(periodoDB.getInicio());
		
		//Nova data inicial do período de férias
		Calendar inicioAlterado = Calendar.getInstance();
		inicioAlterado.setTime(periodoNEW.getInicio());
		
		
		//Verificação da RN08 - É possível alterar a data de início das férias do mês seguinte que possua movimentação financeira desde que a data de início permaneça no mesmo mês de gozo das férias.
		if (inicioOriginal.get(Calendar.MONTH) == dataMesSeguinteAoAtual.get(Calendar.MONTH) && inicioOriginal.get(Calendar.YEAR) == dataMesSeguinteAoAtual.get(Calendar.YEAR)){
			//Se o período inicial das férias inicia do mês seguinte, elas podem ser alteradas, porém devem permanecer no mês seguinte
			if (inicioOriginal.get(Calendar.MONTH) != inicioAlterado.get(Calendar.MONTH) || inicioOriginal.get(Calendar.YEAR) != inicioAlterado.get(Calendar.YEAR)){
				
				//Se a data de início não tiver dentro do próprio mês, ou seja, mes posterior à data atual
				//Ex.: se o mês atual é maio/2011, e está alterando parcelas de férias que iniciam em junho/2011, as parcelas devem permanecer iniciando em junho/2011
				//Está infringindo a RN08
				return false;
			}
			
		}

		return true;
	}