private void processarRecusa() throws ExcecaoProfissionalLogado, ExcecaoPadraoFluxo {
   iniciarRecusaSolicitacao();
   recusarItens();
   PadraoFluxoTemp.getObjetoAtualizar()
       .put("solicitacaoMedicamentoUnidade-" + getInstancia().hashCode(), getInstancia());
   PadraoFluxoTemp.finalizarFluxo();
 }
 private void iniciarRecusa() {
   PadraoFluxoTemp.limparFluxo();
   try {
     processarRecusa();
     setExibirDialogRecusaSolicitacao(false);
     setJustificativaRecusaSolicitacao(null);
     SolicitacaoMedicamentoUnidadeConsultaRaiz.getInstanciaAtual()
         .consultarSolicitacoesPendentes();
   } catch (ExcecaoProfissionalLogado e) {
     e.printStackTrace();
   } catch (ExcecaoPadraoFluxo e) {
     e.printStackTrace();
   }
   PadraoFluxoTemp.limparFluxo();
 }
 private void recusarItens() {
   for (SolicitacaoMedicamentoUnidadeItem item : getInstancia().getItens()) {
     item.setJustificativa(Constantes.JUSTIFICATIVA_RECUSA_SOLICITACAO_ITEM);
     item.setStatusItem(TipoStatusSolicitacaoItemEnum.R);
     PadraoFluxoTemp.getObjetoAtualizar()
         .put("solicitacaoMedicamentoUnidadeItem-" + item.hashCode(), item);
   }
 }
  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()));
    }
  }
 public void cadastrarContagem() {
   try {
     PadraoFluxoTemp.limparFluxo();
     InventarioFarmaciaContagem ifc = new InventarioFarmaciaContagem();
     ifc.setDataContagem(new Date());
     InventarioMedicamentoEstoque estoqueAferido = verificarExistenciaContagem();
     ifc.setInventarioMedicamentoEstoque(estoqueAferido);
     ifc.setProfissionalContagem(Autenticador.getProfissionalLogado());
     ifc.setQuantidadeContada(getQuantidadeContada());
     if (estoqueAferido.getIdInventarioMedicamentoEstoque() == 0)
       PadraoFluxoTemp.getObjetoSalvar()
           .put("InventarioMedicamentoEstoque - " + estoqueAferido.hashCode(), estoqueAferido);
     PadraoFluxoTemp.getObjetoSalvar().put("InventarioFarmaciaContagem - " + ifc.hashCode(), ifc);
     PadraoFluxoTemp.finalizarFluxo();
     carregarLotesContados();
     setEstoqueAferido(new Estoque());
     setQuantidadeContada(null);
   } catch (ExcecaoProfissionalLogado e) {
     e.printStackTrace();
   } catch (ExcecaoPadraoFluxo e) {
     e.printStackTrace();
   }
   PadraoFluxoTemp.limparFluxo();
 }