class ManterMaterialSiconON extends BaseBusiness {

	public void alterar(ScoMaterialSicon _materialSicon)
			throws ApplicationBusinessException {
		RapServidores servidorLogado = getServidorLogadoFacade().obterServidorLogado();

		if (_materialSicon == null) {
			throw new ApplicationBusinessException(
					ManterMaterialSiconONExceptionCode.MENSAGEM_PARAM_OBRIG);
		}

		// if (this.verificarRegistroIgual(_materialSicon)) {
		// throw new ApplicationBusinessException(
		// ManterMaterialSiconONExceptionCode.MENSAGEM_RELACIONAMENTO_DUPLICADO);
		// }

		if (_materialSicon.getSituacao() == DominioSituacao.A) {
			// RN02 - garante que o material do relacionamento não possui nenhum
			// outro relacionamento ativo.
			if (validaMaterial(_materialSicon.getMaterial()) == false) {
				throw new ApplicationBusinessException(
						ManterMaterialSiconONExceptionCode.MENSAGEM_RELACIONAMENTO_DUPLICADO);
			}
		}

		_materialSicon.setAlteradoEm(new Date());
		_materialSicon.setServidor(servidorLogado);
		
		try {
			ScoMaterialSiconDAO scoMaterialSiconDAO = this.getScoMaterialSiconDAO();
			scoMaterialSiconDAO.merge(_materialSicon);
		} catch (ConstraintViolationException ise) {
			String mensagem = " Valor inválido para o campo ";
			throw new ApplicationBusinessException(
					ManterMaterialSiconONExceptionCode.MENSAGEM_ERRO_HIBERNATE_VALIDATION,
					mensagem);

		}
	}

}