@RequestMapping("financeiro-nova_ordem_compra_salvar_informacoes")
  public String salvarInformacoesNovaOC(HttpSession session, HttpServletRequest request) {
    OrdemCompra ordemCompra = new OrdemCompra();
    Data data = new Data();
    BcoDados bco = new BcoDados();
    double valorFrete = 0;

    Usuario usuario = (Usuario) session.getAttribute("usuarioLogado");

    ordemCompra.setIdFornecedor(Integer.parseInt(request.getParameter("id_fornecedor")));

    try {
      ordemCompra.setDataCompra(
          data.converteStringParaDataSQL(request.getParameter("data_compra")));
      ordemCompra.setDataEntrega(
          data.converteStringParaDataSQL(request.getParameter("data_entrega")));
    } catch (ParseException e) {
    }

    ordemCompra.setFormaPgto(request.getParameter("forma_pgto"));
    ordemCompra.setTransporte(request.getParameter("transporte"));

    if (ordemCompra.getTransporte().equals("Frete")) {
      try {
        String valorFreteTexto = request.getParameter("valor_frete");
        valorFreteTexto = valorFreteTexto.substring(3, valorFreteTexto.length());
        Moeda moeda = new Moeda();
        valorFrete = moeda.getValorEmDoubleDe(valorFreteTexto);
      } catch (NullPointerException | StringIndexOutOfBoundsException e) {
      }

      ordemCompra.setValorFrete(valorFrete);
      ordemCompra.setValorTotal(valorFrete);
      ordemCompra.setCargaDescarga(request.getParameter("carga_descarga"));
      ordemCompra.setLocalEntrega(request.getParameter("endereco_entrega"));
    } else {
      ordemCompra.setValorFrete(0);
      ordemCompra.setValorTotal(0);
      ordemCompra.setCargaDescarga(null);
      ordemCompra.setLocalEntrega(null);
    }

    ordemCompra.setLocalEntregaNF(request.getParameter("endereco_entrega_nf"));
    ordemCompra.setPrazoPgto(request.getParameter("prazo_pgto"));
    ordemCompra.setObservacao(request.getParameter("observacao"));
    ordemCompra.setContato(request.getParameter("contato_fornecedor"));

    bco.conectarAoBco();
    int idOrdemCompra = bco.salvarNovaOC(usuario.getIdUsuario(), ordemCompra);
    bco.encerrarConexao();

    return "redirect:ordem_compra_visualizar?id_ordem_compra=" + idOrdemCompra;
  }
  @RequestMapping("editar_ordem_compra")
  public String editarOrdemCompra(HttpSession session, HttpServletRequest request) {
    OrdemCompra ordemCompra = new OrdemCompra();
    Data data = new Data();
    BcoDados bco = new BcoDados();
    Quantidade quantidade = new Quantidade();
    double valorFrete = 0;
    double valorTotalOrdemCompra = 0;

    Usuario usuario = (Usuario) session.getAttribute("usuarioLogado");

    int idOrdemCompra = Integer.parseInt(request.getParameter("id_ordem_compra"));
    ordemCompra.setIdOrdemCompra(idOrdemCompra);
    ordemCompra.setIdFornecedor(Integer.parseInt(request.getParameter("id_fornecedor")));

    try {
      ordemCompra.setDataCompra(
          data.converteStringParaDataSQL(request.getParameter("data_compra")));
      ordemCompra.setDataEntrega(
          data.converteStringParaDataSQL(request.getParameter("data_entrega")));
    } catch (ParseException e) {
    }

    ordemCompra.setFormaPgto(request.getParameter("forma_pgto"));
    ordemCompra.setTransporte(request.getParameter("transporte"));

    bco.conectarAoBco();
    double valorFreteAnterior = bco.buscarOrdemCompra(idOrdemCompra).getValorFrete();
    valorTotalOrdemCompra = bco.valorTotalOC(idOrdemCompra);
    bco.encerrarConexao();

    if (ordemCompra.getTransporte().equals("Próprio")) {
      valorTotalOrdemCompra = quantidade.subtrai(valorTotalOrdemCompra, valorFreteAnterior);
      ordemCompra.setCargaDescarga(null);
      ordemCompra.setLocalEntrega(null);
      ordemCompra.setValorFrete(0);
      ordemCompra.setValorTotal(valorTotalOrdemCompra);
    } else {
      try {
        String valorFreteTexto = request.getParameter("valor_frete");
        valorFreteTexto = valorFreteTexto.substring(3, valorFreteTexto.length());
        valorFrete = quantidade.getValorEmDoubleDe(valorFreteTexto);
      } catch (NullPointerException | StringIndexOutOfBoundsException e) {
      }

      valorTotalOrdemCompra = quantidade.subtrai(valorTotalOrdemCompra, valorFreteAnterior);
      valorTotalOrdemCompra = quantidade.soma(valorTotalOrdemCompra, valorFrete);

      ordemCompra.setCargaDescarga(request.getParameter("carga_descarga"));
      ordemCompra.setLocalEntrega(request.getParameter("endereco_entrega"));
      ordemCompra.setValorFrete(valorFrete);
      ordemCompra.setValorTotal(valorTotalOrdemCompra);
    }

    ordemCompra.setPrazoPgto(request.getParameter("prazo_pgto"));
    ordemCompra.setLocalEntregaNF(request.getParameter("endereco_entrega_nf"));
    ordemCompra.setObservacao(request.getParameter("observacao"));
    ordemCompra.setContato(request.getParameter("contato_fornecedor"));

    bco.conectarAoBco();
    bco.editarOrdemCompra(ordemCompra);
    bco.encerrarConexao();

    return "redirect:ordem_compra_visualizar?id_ordem_compra=" + idOrdemCompra;
  }