private int getQuantidadeLiberada() {
   int total = 0;
   for (EstoqueDispensacao ed : getEstoquesEdicao()) {
     total += ed.getQuantidadeDispensada();
   }
   return total;
 }
 private void atualizarItensEstoqueEdicao() {
   for (ItemDispensacao item : getItensDispensacao()) {
     if (item.getItem().equals(getItemEdicao())) {
       item.setEstoques(new ArrayList<EstoqueDispensacao>());
       for (EstoqueDispensacao ed : getEstoquesEdicao()) {
         if (ed.getQuantidadeDispensada() != 0) {
           item.getEstoques().add(ed);
         }
       }
       break;
     }
   }
 }
 private int quantidadeDispensadaItemEstoque(Estoque estoque) {
   for (ItemDispensacao item : getItensDispensacao()) {
     if (item.getItem().equals(getItemEdicao())) {
       for (EstoqueDispensacao ed : item.getEstoques()) {
         if (ed.getEstoque().getLote().equals(estoque.getLote())) {
           return ed.getQuantidadeDispensada();
         }
       }
       return 0;
     }
   }
   return 0;
 }
  private void finalizarDispensacao() {
    PadraoFluxoTemp.limparFluxo();
    try {
      TipoMovimento tipoMovimentoDS = Parametro.tipoMovimentoDispensacaoSimples();
      Date date = new Date();
      for (ItemDispensacao item : getItensDispensacao()) {
        item.getItem().setDataLiberacao(date);
        item.getItem().setProfissionalLiberacao(Autenticador.getProfissionalLogado());
        if (!item.getItem().getStatusItem().equals(TipoStatusSolicitacaoItemEnum.R)) {
          for (EstoqueDispensacao ed : item.getEstoques()) {
            MovimentoLivro ml = new MovimentoLivro();
            ml.setEstoque(ed.getEstoque());
            ml.setTipoMovimento(tipoMovimentoDS);
            ml.setQuantidadeMovimentacao(ed.getQuantidadeDispensada());
            ml.setJustificativa("RM: " + getInstancia().getIdSolicitacaoMedicamentoUnidade());
            new ControleEstoque().liberarAjuste(date, ml);

            PadraoFluxoTemp.getObjetoSalvar().put("MovimentoLivro" + ml.hashCode(), ml);

            DispensacaoSimples ds = new DispensacaoSimples();
            ds.setSolicitacaoMedicamentoUnidadeItem(item.getItem());
            ds.setMovimentoLivro(ml);
            ds.setUnidadeDispensada(
                item.getItem().getSolicitacaoMedicamentoUnidade().getUnidadeDestino());
            PadraoFluxoTemp.getObjetoSalvar().put("DispensacaoSimples" + ds.hashCode(), ds);
          }
        }
        PadraoFluxoTemp.getObjetoAtualizar()
            .put("ItemDispensacao" + item.hashCode(), item.getItem());
      }
      getInstancia().setDataDispensacao(date);
      getInstancia().setProfissionalDispensacao(Autenticador.getProfissionalLogado());
      getInstancia().setStatusDispensacao(TipoStatusDispensacaoEnum.D);
      PadraoFluxoTemp.getObjetoAtualizar()
          .put("Dispensacao" + getInstancia().hashCode(), getInstancia());
      PadraoFluxoTemp.finalizarFluxo();
      setExibirDialogProfissionalReceptor(false);
      setExibirDialogDispensacao(true);
      SolicitacaoMedicamentoUnidadeConsultaRaiz.getInstanciaAtual()
          .consultarSolicitacoesPendentes();
    } catch (Exception e) {
      e.printStackTrace();
      getInstancia().setStatusDispensacao(TipoStatusDispensacaoEnum.P);
    } finally {
      PadraoFluxoTemp.limparFluxo();
      unlockEstoques();
      setInstancia(
          new SolicitacaoMedicamentoUnidadeConsultaRaiz()
              .solicitacaoId(getInstancia().getIdSolicitacaoMedicamentoUnidade()));
    }
  }