/*
      @RequestMapping("ordem_compra_visualizar_editar")
      public ModelAndView paginaEditarOC(HttpServletRequest request) {
      	ModelAndView mv = new ModelAndView();
      	BcoDados bco = new BcoDados();
  //		ArrayList<Cadastro> listaDadosFornecedor = new ArrayList<Cadastro>();
  //        ArrayList<OrdemCompra> listaDadosOrdemCompra = new ArrayList<OrdemCompra>();
      	ArrayList<MaterialCirculante> listaMaterialCirculanteEstoque = new ArrayList<MaterialCirculante>();

      	int idOrdemCompra = Integer.parseInt(request.getParameter("id_ordem_compra"));

      	bco.conectarAoBco();
      	int idFornecedor = bco.idFornecedorDaOrdemCompra(idOrdemCompra);
      	Cadastro cadastro = bco.buscarFornecedor(idFornecedor);

      	OrdemCompra ordemCompra = bco.buscarOrdemCompra(idOrdemCompra);
      	listaMaterialCirculanteEstoque = bco.listaMaterialCirculanteEstoqueNaoAdicionadosOC(idOrdemCompra);

      	ArrayList<MaterialCirculante> listaMaterialCirculanteOC = bco.listaMaterialCirculanteOC(idOrdemCompra);

      	bco.encerrarConexao();

      	mv.setViewName("financeiro/ordem_compra/editar_ordem_compra");
      	mv.addObject("cadastro", cadastro);
      	mv.addObject("ordemCompra", ordemCompra);
      	mv.addObject("listaMaterialCirculanteEstoque", listaMaterialCirculanteEstoque);
      	mv.addObject("listaMaterialCirculanteOC", listaMaterialCirculanteOC);

      	return mv;
      }
       */
  @RequestMapping("excluir_ordem_compra")
  public String excluirOrdemCompra(HttpServletRequest request, HttpSession session) {
    BcoDados bco = new BcoDados();
    LogSistema logSistema = new LogSistema();
    Usuario usuario = (Usuario) session.getAttribute("usuarioLogado");

    int idOrdemCompra = Integer.parseInt(request.getParameter("id_ordem_compra"));

    bco.conectarAoBco();

    OrdemCompra ordemCompra = bco.buscarOrdemCompra(idOrdemCompra);

    if (ordemCompra.isEfetivada() == false) {
      bco.excluirTodosItensDaOrdemDeCompra(idOrdemCompra);
      bco.excluirOrdemDeCompra(idOrdemCompra);

      logSistema.setIdUsuarioSistema(usuario.getIdUsuario());
      logSistema.setDescricao("Excluir Ordem de Compra. Ordem de Compra número " + idOrdemCompra);
      bco.logSistema(logSistema);
    }

    bco.encerrarConexao();

    return "redirect:ordem_compra_lista";
  }
  @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;
  }