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())); } }
@Override public boolean enviar() { try { boolean liberadoGeral = Parametro.getLiberadoSolicitacaoMedicamentoForaHU(); if (!liberadoGeral) new RestringirAcessoRedeHU().validarAcessoRedeHU(); getInstancia().setDataInsercao(new Date()); getInstancia().setProfissionalInsercao(Autenticador.getProfissionalLogado()); getInstancia().setStatusDispensacao(TipoStatusDispensacaoEnum.A); return super.enviar(); } catch (ExcecaoProfissionalLogado e) { e.printStackTrace(); } catch (ExcecaoForaRedeHU e) { e.printStackTrace(); } return false; }