class ManterMaterialSiconON extends BaseBusiness {

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

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

		// 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);
		}

		// RN03 - auditoria
		_materialSicon.setCriadoEm(new Date());
		_materialSicon.setServidor(servidorLogado);

		try {
			ScoMaterialSiconDAO scoMaterialSiconDAO = this.getScoMaterialSiconDAO();
			scoMaterialSiconDAO.persistir(_materialSicon);
			scoMaterialSiconDAO.flush();
		} catch (ConstraintViolationException ise) {
			String mensagem = " Valor inválido para o campo ";
			throw new ApplicationBusinessException(
					ManterTipoContratoONExceptionCode.MENSAGEM_ERRO_HIBERNATE_VALIDATION,
					mensagem);

		} catch (Exception e) {
			throw new ApplicationBusinessException(
					ManterTipoContratoONExceptionCode.MENSAGEM_ERRO_PERSISTIR_DADOS,
					e.getMessage());
		}

	}

}