@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); }
@RequestMapping("/atualizaCarta") public String atualizaCarta( CartaContratacao carta, Integer idFornecedor, Integer idLista, Integer idProdutoGrupo) { ArrayList<String> data = new ArrayList<String>(); data = utilDatas.dataHojeFormatada(); String dataHoje = "São Paulo, " + data.get(0) + " de " + data.get(1) + " de " + data.get(2); carta.setDataCabecalho(dataHoje); carta.setGerarCarta(true); carta.setAtualizacao(Calendar.getInstance()); Usuario u = util.retornaUsuarioLogado(); String usuario = u.getNome(); carta.setUsuario(usuario); if (carta.getIdCarta() == null) { manager.persist(carta); } else { manager.detach(carta); manager.merge(carta); } return "redirect:itemListaAjax?idFornecedor=" + idFornecedor + "&idLista=" + idLista + "&idProdutoGrupo=" + idProdutoGrupo; }
@RequestMapping("/calculaDiferencaOutroFornecedor") @ResponseBody public String calculaDiferencaOutroFornecedor(String diferenca, String impostoOutroFornecedor) { BigDecimal divide = new BigDecimal("100"); BigDecimal divide2 = new BigDecimal(impostoOutroFornecedor); BigDecimal B = divide2.divide(divide); BigDecimal valorDiferenca = new BigDecimal(util.formataValores(diferenca)); BigDecimal Y = valorDiferenca.multiply(B); ProducaoValoresGJson valoresGJon = new ProducaoValoresGJson(); valoresGJon.setValorPagamentoMesmoFornecedor(util.ConverteDolarParaReal(Y.toString())); Gson gson = new Gson(); return gson.toJson(valoresGJon); }
@RequestMapping("/calculaDiferencaFornecedor") @ResponseBody public String calculaDiferencaFornecedor( String itemValor, String contratacaoValor, String impostoMesmoFornecedor) { BigDecimal divide = new BigDecimal("100"); BigDecimal divide2 = new BigDecimal(impostoMesmoFornecedor); BigDecimal B = divide2.divide(divide); BigDecimal valorItem = new BigDecimal(util.formataValores(itemValor)); BigDecimal valorContratacao = new BigDecimal(util.formataValores(contratacaoValor)); BigDecimal A = valorItem.subtract(valorContratacao); BigDecimal Y = A.multiply(B); BigDecimal X = valorContratacao.add(Y); ProducaoValoresGJson valoresGJon = new ProducaoValoresGJson(); valoresGJon.setValorPagamentoMesmoFornecedor(util.ConverteDolarParaReal(X.toString())); Gson gson = new Gson(); return gson.toJson(valoresGJon); }
@RequestMapping("/salvaItem") public String salvaItem(Producao producao, Integer idProdutoGrupo) throws IOException, ParseException { ProdutoGrupo produtog = manager.find(ProdutoGrupo.class, idProdutoGrupo); Lista lista = manager.getReference(Lista.class, producao.getIdLista()); Integer parcelas = producao.getNumParcelas(); List<ValorPgtoAux> pagamentos = new ArrayList<ValorPgtoAux>(); for (int i = 0; i < parcelas; i++) { ValorPgtoAux valor = new ValorPgtoAux(); valor.setParcela(producao.getParcela().get(i)); valor.setPrazo(producao.getPrazo().get(i)); valor.setData(util.formataDatasStringParaCalendar(producao.getData().get(i) + " 08:00")); BigDecimal valorItem = util.valoresEmReais(producao.getValor().get(i)); valor.setValor(valorItem); pagamentos.add(valor); } Empresa fornecedor = manager.getReference(Empresa.class, producao.getIdEmpresaTransiente()); Usuario usuario = manager.getReference(Usuario.class, producao.getIdUsuario()); LocalEvento localEvento = localEventoDAO.ultimoLocalEvento(lista.getIdJob().getIdJob()); ProdutoGrupo produtoGrupo = manager.getReference(ProdutoGrupo.class, idProdutoGrupo); producao.setLista(lista); producao.setUsuario(usuario); producao.setIdEmpFornecedor(fornecedor); producao.setDataConsolidado(Calendar.getInstance()); producao.setResponsavelContratacao(usuario.getNome()); producao.setStatusProducao(StatusProducao.CONSOLIDADO); producao.setPrazoEntrega( utilDatas.formataDatasStringParaCalendar(producao.getpEntrega() + " " + "08:00")); if (localEvento == null) { producao.setPrazoPagamento(Calendar.getInstance().getTime()); } else { Date cs = localEvento.getLocalEventoDataTermino(); producao.setPrazoPagamento( utilDatas.SomaDias( cs, producao.getPrazo().get(0))); // Soma Termino do Evento + Dias para pagamento. } producao.setProdutoGrupo(produtoGrupo); producao.setValorItem(util.valoresEmReais(producao.getItemValor1())); producao.setValorContratacao(util.valoresEmReais(producao.getContratacaoValor1())); producao.setDiferenca(util.valoresEmReais(producao.getDiferencaValor1())); producao.setStatus(true); if (producao.getLocalEntrega().equals("localevento")) { if (localEvento == null) { producao.setReferenciaEntrega(producao.getLocalEntrega()); producao.setLocalEntrega("Nenhum endereço cadastrado no Job"); } else { producao.setReferenciaEntrega(producao.getLocalEntrega()); producao.setLocalEntrega(localEvento.getLocalEventoEndereco()); } } else { producao.setReferenciaEntrega(producao.getLocalEntrega()); producao.setLocalEntrega("agencia"); } /** * Verificar se existe mais algum item do Fornecedor * * <p>if(mais itens fornecedor === true){ fornecedorFinanceiro.setContratacao(true); }else{ * fornecedorFinanceiro.setContratacao(false); } */ // Verifica se item vai ser salvo ou atualizado if (producao.getIdProducao() == null) { // Será salvo manager.persist(producao); } else { // Será atualizado manager.detach(producao); manager.merge(producao); } auxDAOProducao.salvaFornecedorFinanceiro(producao, pagamentos); /*Contato contato = manager.getReference(Contato.class, producao.getContatoFornecedor()); List<Comunicador> comunicador = contatoDAO.buscaUltimoComunicador(producao.getContatoFornecedor()); if(FornecedorFinanceiro.getContratacao() == true){ menuCarta.geraNovaCarta(producao, produtog,comunicador,contato); }else{ }*/ // menuCarta.geraNovaCarta(producao, produtog,comunicador,contato); /** * Gerar carta de contratação * * <p>producao.setCartaContratacao(cartaContForn); */ /* Contato contato = manager.getReference(Contato.class, producao.getContatoFornecedor()); List<Comunicador> comunicador = contatoDAO.buscaUltimoComunicador(producao.getContatoFornecedor()); if(producao.getIdProducao() == null || producao.getIdProducao().equals(null) || producao.getIdProducao().equals(" ")){ menuCarta.geraNovaCarta(producao, produtog,comunicador,contato); }else{ menuCarta.geraNovaCarta(producao, produtog,comunicador,contato); }*/ return "redirect:itemListaAjax?idFornecedor=" + produtog.getEmpresa().getIdEmpresa() + "&idLista=" + lista.getIdLista() + "&idProdutoGrupo=" + producao.getProdutoGrupo().getIdProdutoGrupo(); }
@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(); } }