@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("financeiro_ordem_compra_editar_material_circulante")
  public String editarMaterialCirculanteOC(HttpServletRequest request) {
    BcoDados bco = new BcoDados();

    int idOrdemCompra = Integer.parseInt(request.getParameter("id_ordem_compra"));
    int idMaterialCirculanteEstoque =
        Integer.parseInt(request.getParameter("editar_id_material_circulante"));
    double qtdeCompraMaterialCirculante = 0;

    Quantidade quantidade = new Quantidade();

    String qtdeCompraMaterialCirculanteString =
        request.getParameter("editar_qtde_material_circulante");

    try {
      qtdeCompraMaterialCirculante =
          quantidade.getValorEmDoubleDe(qtdeCompraMaterialCirculanteString);
    } catch (NumberFormatException e) {
    }

    String valorUnitarioString = request.getParameter("editar_valor_unitario");
    valorUnitarioString = valorUnitarioString.substring(3, valorUnitarioString.length());
    Moeda moeda = new Moeda();
    double valorUnitario = moeda.getValorEmDoubleDe(valorUnitarioString);

    MaterialCirculante materialCirculante = new MaterialCirculante();
    materialCirculante.setIdMaterialCirculante(idMaterialCirculanteEstoque);
    materialCirculante.setQtdeCompra(qtdeCompraMaterialCirculante);
    materialCirculante.setValorUnitario(valorUnitario);

    bco.conectarAoBco();
    double valorTotalMatCirculante =
        quantidade.multiplica(qtdeCompraMaterialCirculante, valorUnitario);
    materialCirculante.setValorTotal(valorTotalMatCirculante);

    double valorTotalMatCirculanteAnterior =
        bco.valorTotalMaterialCirculanteOrdemCompra(idOrdemCompra, idMaterialCirculanteEstoque);
    bco.editarMaterialCirculanteOrdemCompra(idOrdemCompra, materialCirculante);
    double valorTotalOC = bco.valorTotalOC(idOrdemCompra);
    double valorTotalOCAtualizado =
        quantidade.soma(
            (quantidade.subtrai(valorTotalOC, valorTotalMatCirculanteAnterior)),
            valorTotalMatCirculante);
    bco.atualizarTotalOC(idOrdemCompra, valorTotalOCAtualizado);
    bco.encerrarConexao();

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