private void addSugestaoItemSolicitacao(SolicitacaoMedicamentoUnidadeItem item) { List<Estoque> estoques = new EstoqueConsultaRaiz().consultarEstoquesMaterial(item.getMaterial()); int quantidadeTemp = item.getQuantidadeSolicitada(); ItemDispensacao id = new ItemDispensacao(); id.setItem(item); for (Estoque estoque : estoques) { EstoqueDispensacao ed = new EstoqueDispensacao(); if (quantidadeTemp <= estoque.getQuantidadeAtual()) { ed.setEstoque(estoque); ed.setQuantidadeDispensada(quantidadeTemp); id.getEstoques().add(ed); break; } else { if (quantidadeTemp > estoque.getQuantidadeAtual()) { ed.setEstoque(estoque); ed.setQuantidadeDispensada(estoque.getQuantidadeAtual()); id.getEstoques().add(ed); quantidadeTemp = quantidadeTemp - estoque.getQuantidadeAtual(); } } } if (estoques == null || estoques.isEmpty()) { id.getItem().setStatusItem(TipoStatusSolicitacaoItemEnum.R); id.getItem().setJustificativa("Item recusado por n�o possuir algum lote com saldo"); } getItensDispensacao().add(id); }
private int getQuantidadeLiberada() { int total = 0; for (EstoqueDispensacao ed : getEstoquesEdicao()) { total += ed.getQuantidadeDispensada(); } return total; }
public void carregarEstoquesDispensacao() { List<Estoque> estoques = new EstoqueConsultaRaiz().consultarEstoquesMaterial(getItemEdicao().getMaterial()); setEstoquesEdicao(new ArrayList<EstoqueDispensacao>()); for (Estoque estoque : estoques) { EstoqueDispensacao ed = new EstoqueDispensacao(); ed.setEstoque(estoque); ed.setQuantidadeDispensada(quantidadeDispensadaItemEstoque(estoque)); getEstoquesEdicao().add(ed); } }
private void unlockEstoques() { for (ItemDispensacao item : getItensDispensacao()) { for (EstoqueDispensacao ed : item.getEstoques()) { try { new ControleEstoque().unLockEstoque(ed.getEstoque()); } catch (ExcecaoEstoqueUnLock e) { e.printStackTrace(); } } } }
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())); } }