@RequestMapping("/determinaQuantidade") @ResponseBody public String determinaQuantidade(Integer idProdutoGrupo, Integer idGrupo) { ProdutoGrupo produto = manager.getReference(ProdutoGrupo.class, idProdutoGrupo); Grupo grupo = manager.getReference(Grupo.class, idGrupo); DeterminaQuantidades d = produtoGrupoDAO.determinaQuant(idGrupo); DeterQuantpadrao detPad = produtoGrupoDAO.deterQuantPadrao(idGrupo); DetalhesItemProducao detalhes = new DetalhesItemProducao(); BigDecimal[] valores = pegaValores(produto.getIdProdutoGrupo(), grupo.getIdgrupo()); // valores [0] = t - valorUnit; // valores [1] = p - preco; // valores [2] = q - quantDeter Bigdecimal; // valores [3] = d - Diaria Bigdecimal; double quantDeter = valores[2].doubleValue(); double diarias = valores[3].doubleValue(); double quantDiaria = quantDeter * diarias; if (d == null) { if (detPad == null) { novoDeterminaQuant(produto, grupo); } else { manager.remove(detPad); novoDeterminaQuant(produto, grupo); } } else { d.setProdutoGrupo(produto); d.setValorUnit(valores[0]); d.setPrecoTotal(valores[1]); d.setQuantDeterm(quantDeter); d.setDiarias(diarias); manager.merge(d); } String quant = valores[2].toString(); String quantDia = String.valueOf(quantDiaria); String precs = valores[1].toString(); precs = util.ConverteDolarParaReal(precs); String tots = valores[0].toString(); tots = util.ConverteDolarParaReal(tots); detalhes.setDeterminaQuant(quantDia); detalhes.setPrecoTotal(precs); detalhes.setValorUnit(tots); Gson gson = new Gson(); return gson.toJson(detalhes); }
public BigDecimal[] pegaValores(Integer idProdutoGrupo, Integer idGrupo) { double quantDeter = produtoGrupoDAO.pegaQuantidade(idProdutoGrupo); double preco = produtoGrupoDAO.pegaPrecoGrupo(idGrupo); double diarias = produtoGrupoDAO.pegaDiaria(idProdutoGrupo); BigDecimal d = BigDecimal.valueOf(diarias); BigDecimal q = BigDecimal.valueOf(quantDeter); BigDecimal p = BigDecimal.valueOf(preco); BigDecimal t = p.divide(q, 5, RoundingMode.UP).divide(d, 5, RoundingMode.UP); BigDecimal[] valores = {t, p, q, d}; return valores; }
@RequestMapping("/itensProducao") public ModelAndView itensProducao(Integer idLIsta) { MV.setViewName("menuProducao/itensLista"); MV.addObject("lista", listaDAO.editaLista(idLIsta)); MV.addObject("categoria", listaDAO.listadeCategorias(idLIsta)); MV.addObject("grupos", listaDAO.listaDeGrupos(idLIsta)); List<Grupo> lista2 = grupoDAO.listaDeGrupos(idLIsta); // Pega lista de Grupos por idLista List<Integer> idEmpresas = new ArrayList<Integer>(); Integer num = 0; for (int i = 0; i < lista2.size(); i++) { // Percorre a lista de Grupos for (int j = 0; j < lista2.get(i).getProdutoGrupo().size(); j++) { // Percorre a lista de um grupo em procura de produtos desse grupo try { num = lista2 .get(i) .getProdutoGrupo() .get(j) .getEmpresa() .getIdEmpresa(); // Pega o id do Fornecedor desse produto } catch (Exception e) { num = 1234567890; } if (idEmpresas.contains(num)) { } else { idEmpresas.add(num); } } } List listaTotal = new ArrayList(); for (int r = 0; r < idEmpresas.size(); r++) { if (idEmpresas.get(r).equals(1234567890)) { listaTotal.add(0); } listaTotal.add(produtoGrupoDAO.produto(idEmpresas.get(r), idLIsta)); } MV.addObject("Total", listaTotal); return MV; }
@RequestMapping("/salvaDetalhesItem") public String salvaDetalhesItem(ProdutoGrupo produtoGrupo) { String teste = produtoGrupo.getCustoProdutoTransiente(); /** * Faz uma verificação se o valor unitário do item está zero ou nulo Se estiver preenche com o * valor 0,00 */ if (teste.equals("")) { produtoGrupo.setCustoProdutoTransiente("0,00"); } // Teste String quant = produtoGrupo.getQuantidadeTransiente().replace(",", "."); produtoGrupo.setQuantidade(utilConv.converterStringParaDouble(quant)); String quant2 = produtoGrupo.getQuantidade2Transiente().replace(",", "."); produtoGrupo.setQuantidade2(utilConv.converterStringParaDouble(quant2)); String diaria = produtoGrupo.getDiariasTransiente().replace(",", "."); produtoGrupo.setDiarias(utilConv.converterStringParaDouble(diaria)); // Fim Teste BigDecimal zero = new BigDecimal(0); Empresa empresa = manager.find(Empresa.class, produtoGrupo.getIdEmpresaTransiente()); Produto produto = manager.find(Produto.class, produtoGrupo.getIdprodutoTransiente()); Grupo grupo = manager.find(Grupo.class, produtoGrupo.getIdGrupoTransiente()); Lista lista = manager.find(Lista.class, grupo.getIdLista().getIdLista()); Usuario usuario = util.retornaUsuarioLogado(); produtoGrupo.setUsuario(usuario); BigDecimal custoProduto = new BigDecimal(util.formataValores(produtoGrupo.getCustoProdutoTransiente())); if (produtoGrupo.isCustoComBvFornecedor() == false) { // 1 ----- Verifica se terá Custo com BV forn. incluso * Caiu em desuso ---- // produtoGrupo.setBvFornecedor(zero); produtoGrupo.setCustoComBvFornecedor(false); produtoGrupo.setBvFornecedorEmPorcentagem(false); produtoGrupo.setBvFornecedorValor(zero); } else { valoresProdutoGrupo.custoComBvFornecedorIncluso(produtoGrupo); } valoresProdutoGrupo.BvVenda(produtoGrupo, custoProduto, produtoGrupo.getIdGrupoTransiente()); // 2 ----- Custo do produto sem impostos ou bv -------------- // produtoGrupo.setCustoProduto(custoProduto); produtoGrupo.setIdGrupo(grupo); produtoGrupo.setIdProduto(produto); produtoGrupo.setProduto(produto.getProduto()); produtoGrupo.setAlteradoEm(Calendar.getInstance()); produtoGrupo.setEmpresa(empresa); String al = Utilitaria.nomeAleatorio(12); produtoGrupo.setTidProdutoGrupo(al); manager.persist(produtoGrupo); // Verifica se é necessário uma quantidade Determinante nesse produto DeterminaQuantidades d = produtoGrupoDAO.determinaQuant(produtoGrupo.getIdGrupoTransiente()); if (d == null) { novoDeterminaQuant(produtoGrupo, grupo); } else { } valoresEmGrupo.atualizaImpostoGrupo( grupo); /// ------ Setando valores no Grupo dos itens e na Lista do Grupo ------ // valoresNaLista.InsereValoresLista( grupo, lista); // / ------- Setar valores na lista --------- /// valoresNaLista.calculaValorLista( lista.getIdLista()); // / ------- Setar valores na lista --------- /// if (produtoGrupo.isSalvarEfechar() == true) { return "redirect:editaLinha?idGrupo=" + produtoGrupo.getIdGrupoTransiente(); } else { return "redirect:descricaoItem?idProdutoGrupo=" + produtoGrupo.getIdProdutoGrupo() + "&idGrupo=" + produtoGrupo.getIdGrupoTransiente(); } }