class ItemDevolucaoAlmoxarifadoRN extends BaseBusiness {

	public void verificarDevolucaoUnidadeMedida(SceItemDas itemDa, String matcodigo) 
			throws ApplicationBusinessException {
		if (itemDa == null) {
			throw new IllegalArgumentException(MSG_ITEM_DA_NAO_INFORMADO);
		}
		SceEstoqueAlmoxarifadoDAO sceEstoqueAlmoxarifadoDAO = getSceEstoqueAlmoxarifadoDAO();
		SceEstoqueAlmoxarifado estoqueAlmoxarifadoItemDa = itemDa.getEstoqueAlmoxarifado();
		SceEstoqueAlmoxarifado estoqueAlmoxarifadoUnidMedida = null;
		
		estoqueAlmoxarifadoUnidMedida = sceEstoqueAlmoxarifadoDAO
				.obterEstoqueAlmoxarifadoPorSeqEUmdCodigo(
						itemDa.getEstoqueAlmoxarifado().getSeq(),
						itemDa.getUnidadeMedida().getCodigo());
		
		List<SceEstoqueAlmoxarifado> listaEstoqueAlmoxarifado = 
				sceEstoqueAlmoxarifadoDAO.buscarEstoqueAlmoxarifadoPorAlmSeqMatCodigoEFrnNumero(
						estoqueAlmoxarifadoItemDa.getAlmoxarifado().getSeq(),
						estoqueAlmoxarifadoItemDa.getMaterial().getCodigo(),
						estoqueAlmoxarifadoItemDa.getFornecedor().getNumero());
		
		if (matcodigo != null) {
			if (listaEstoqueAlmoxarifado.isEmpty()) {
				throw new ApplicationBusinessException(
						ItemDevolucaoAlmoxarifadoRNExceptionCode.ERRO_ESTOQUE_ALMOXARIFADO_NAO_CADASTRADO_OU_INATIVO,
						matcodigo,
						estoqueAlmoxarifadoItemDa.getAlmoxarifado().getSeq(),
						estoqueAlmoxarifadoItemDa.getFornecedor().getNumero());
			} else if (!listaEstoqueAlmoxarifado.get(0).getUnidadeMedida().getCodigo().equals(
					itemDa.getUnidadeMedida().getCodigo()) ) {
				 throw new ApplicationBusinessException(ItemDevolucaoAlmoxarifadoRNExceptionCode.SCE_00280);
			}
		} else if (estoqueAlmoxarifadoUnidMedida == null) {
			throw new ApplicationBusinessException(ItemDevolucaoAlmoxarifadoRNExceptionCode.SCE_00280);
		}
	}

}