class ManterAltaRecomendacaoRN extends BaseBusiness {

	@SuppressWarnings("PMD.NPathComplexity")
	protected void verificarAtualizacao(MpmAltaRecomendacao altaRecomendacao,
			MpmAltaRecomendacaoVO atualAltaRecomendacao)
			throws ApplicationBusinessException {

		String novoDescSistema = altaRecomendacao.getDescricaoSistema();
		String atualDescSistema = atualAltaRecomendacao.getDescricaoSistema();
		String novoMatricula = altaRecomendacao.getServidorRecomendacaoAlta() != null ? altaRecomendacao
				.getServidorRecomendacaoAlta().getServidor()
				.getUsuario()
				: null;
		String atualMatricula = atualAltaRecomendacao
				.getServidorRecomendacaoAlta() != null ? atualAltaRecomendacao
				.getServidorRecomendacaoAlta().getServidor()
				.getUsuario() : null;
		String novoVinculo = altaRecomendacao.getServidorRecomendacaoAlta() != null ? altaRecomendacao
				.getServidorRecomendacaoAlta().getServidor()
				.getMatriculaVinculo() : null;
		String atualVinculo = atualAltaRecomendacao
				.getServidorRecomendacaoAlta() != null ? atualAltaRecomendacao
				.getServidorRecomendacaoAlta().getServidor()
				.getMatriculaVinculo() : null;
		Integer novoSeqp = altaRecomendacao.getServidorRecomendacaoAlta() != null ? altaRecomendacao
				.getServidorRecomendacaoAlta().getId().getSeqp()
				: null;
		Integer atualSeqp = atualAltaRecomendacao.getServidorRecomendacaoAlta() != null ? atualAltaRecomendacao
				.getServidorRecomendacaoAlta().getId().getSeqp()
				: null;
		Integer novoPdtAtdSeq = altaRecomendacao.getPdtAtdSeq();
		Integer atualPdtAtdSeq = atualAltaRecomendacao.getPdtAtdSeq();
		Integer novoPdtSeq = altaRecomendacao.getPdtSeq();
		Integer atualPdtSeq = atualAltaRecomendacao.getPdtSeq();
		Integer novoPcuAtdSeq = altaRecomendacao.getPcuAtdSeq();
		Integer atualPcuAtdSeq = atualAltaRecomendacao.getPcuAtdSeq();
		Integer novoPcuSeq = altaRecomendacao.getPcuSeq();
		Integer atualPcuSeq = atualAltaRecomendacao.getPcuSeq();
		Integer novoPmdSeq = altaRecomendacao.getPmdSeq();
		Integer atualPmdSeq = atualAltaRecomendacao.getPmdSeq();
		Integer novoPmdAtdSeq = altaRecomendacao.getPmdAtdSeq();
		Integer atualPmdAtdSeq = atualAltaRecomendacao.getPmdAtdSeq();

		if (CoreUtil.modificados(novoDescSistema, atualDescSistema)) {

			if (!CoreUtil.modificados(novoMatricula, atualMatricula)
					&& !CoreUtil.modificados(novoVinculo, atualVinculo)
					&& !CoreUtil.modificados(novoSeqp, atualSeqp)
					&& !CoreUtil.modificados(novoPdtAtdSeq, atualPdtAtdSeq)
					&& !CoreUtil.modificados(novoPdtSeq, atualPdtSeq)
					&& !CoreUtil.modificados(novoPcuAtdSeq, atualPcuAtdSeq)
					&& !CoreUtil.modificados(novoPcuSeq, atualPcuSeq)
					&& !CoreUtil.modificados(novoPmdSeq, atualPmdSeq)
					&& !CoreUtil.modificados(novoPmdAtdSeq, atualPmdAtdSeq)) {

				ManterAltaRecomendacaoRNExceptionCode.MPM_02690
						.throwException();

			}

		} else {

			if (CoreUtil.modificados(novoMatricula, atualMatricula)
					|| CoreUtil.modificados(novoVinculo, atualVinculo)
					|| CoreUtil.modificados(novoSeqp, atualSeqp)
					|| CoreUtil.modificados(novoPdtAtdSeq, atualPdtAtdSeq)
					|| CoreUtil.modificados(novoPdtSeq, atualPdtSeq)
					|| CoreUtil.modificados(novoPcuAtdSeq, atualPcuAtdSeq)
					|| CoreUtil.modificados(novoPcuSeq, atualPcuSeq)
					|| CoreUtil.modificados(novoPmdSeq, atualPmdSeq)
					|| CoreUtil.modificados(novoPmdAtdSeq, atualPmdAtdSeq)) {

				ManterAltaRecomendacaoRNExceptionCode.MPM_02691
						.throwException();

			}

		}

	}

}