class ManterAltaItemPedidoExameRN extends BaseBusiness {

	public void inserirAltaItemPedidoExame(
			MpmAltaItemPedidoExame altaItemPedidoExame)
			throws ApplicationBusinessException {
		
		
		List<MpmAltaItemPedidoExame> itens = this.getAltaItemPedidoExameDAO().obterMpmAltaItemPedidoExame(altaItemPedidoExame.getMpmAltaSumarios().getId().getApaAtdSeq(), altaItemPedidoExame.getMpmAltaSumarios().getId().getApaSeq(), altaItemPedidoExame.getMpmAltaSumarios().getId().getSeqp());
		MpmAltaSumarioId altaSumarioId = altaItemPedidoExame.getMpmAltaSumarios().getId();
		AelUnfExecutaExamesId executaExamesId = altaItemPedidoExame.getAelUnfExecutaExames().getId();
		MpmAltaItemPedidoExameId altaItemPedidoExameId = new MpmAltaItemPedidoExameId();
		altaItemPedidoExameId.setAexAsuApaAtdSeq(altaSumarioId.getApaAtdSeq());
		altaItemPedidoExameId.setAexAsuApaSeq(altaSumarioId.getApaSeq());
		altaItemPedidoExameId.setAexAsuSeqp(altaSumarioId.getSeqp());
		altaItemPedidoExameId.setUfeEmaExaSigla(executaExamesId.getEmaExaSigla());
		altaItemPedidoExameId.setUfeEmaManSeq(executaExamesId.getEmaManSeq());
		altaItemPedidoExameId.setUfeUnfSeq(executaExamesId.getUnfSeq());
		
		altaItemPedidoExame.setId(altaItemPedidoExameId);
		
		for(MpmAltaItemPedidoExame test : itens){
			if(test.getId().equals(altaItemPedidoExame.getId())){
				throw new ApplicationBusinessException(
						ManterAltaItemPedidoExameRNExceptionCode.ERRO_INSERIR_ITEM_PEDIDO_EXAME_DUPLICADO);
			}
		}
		altaItemPedidoExame.setId(null);

		try {

			this.preInserirAltaItemPedidoExame(altaItemPedidoExame);
			this.getAltaItemPedidoExameDAO().persistir(altaItemPedidoExame);
			this.getAltaItemPedidoExameDAO().flush();

		} catch (Exception e) {

			ManterAltaItemPedidoExameRNExceptionCode.ERRO_INSERIR_ITEM_PEDIDO_EXAME
					.throwException(e);

		}

	}

}