@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("/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("/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();
    }
  }