public void ListarRelatorioAnaliticoUsuario(Entidades.Relatorio.FiltroPesquisa filtro, ref DataTable oDT)
        {
            try
            {
                ConexaoPersonalizada oConn = new ConexaoPersonalizada();

                try
                {
                    OracleParameter[] arParms = new OracleParameter[5];

                    arParms[0] = new OracleParameter();
                    arParms[0].ParameterName = "V_CURSOR";
                    arParms[0].OracleDbType  = OracleDbType.RefCursor;
                    arParms[0].Direction     = ParameterDirection.Output;

                    arParms[1] = new OracleParameter();
                    arParms[1].ParameterName = "P_ID_USUARIO_INCLUSAO";
                    arParms[1].OracleDbType  = OracleDbType.Int64;
                    arParms[1].Direction     = ParameterDirection.Input;
                    arParms[1].Value         = filtro.IdUsuarioLogado;

                    arParms[2] = new OracleParameter();
                    arParms[2].ParameterName = "P_ID_PRODUTO_PRECO";
                    arParms[2].OracleDbType  = OracleDbType.Int64;
                    arParms[2].Direction     = ParameterDirection.Input;
                    if (filtro.CodigoItemProduto == null || filtro.CodigoItemProduto == string.Empty)
                    {
                        arParms[2].Value = DBNull.Value;
                    }
                    else
                    {
                        arParms[2].Value = filtro.CodigoItemProduto;
                    }

                    arParms[3] = new OracleParameter();
                    arParms[3].ParameterName = "P_DATA_INICAL";
                    arParms[3].OracleDbType  = OracleDbType.Date;
                    arParms[3].Direction     = ParameterDirection.Input;
                    arParms[3].Value         = filtro.DataInicialPesquisa;

                    arParms[4] = new OracleParameter();
                    arParms[4].ParameterName = "P_DATA_FINAL";
                    arParms[4].OracleDbType  = OracleDbType.Date;
                    arParms[4].Direction     = ParameterDirection.Input;
                    arParms[4].Value         = filtro.DataFinalPesquisa;

                    oConn.Execute("DNAINFO.P_REL_HISTORICO_BY_USUARIO", arParms, ref oDT);
                }
                catch (Exception ex)
                { throw ex; }
                finally
                {
                    oConn.CloseConnection();
                    oConn = null;
                }
            }
            catch (Exception ex)
            { throw ex; }
        }
        public Entidades.Relatorio.RetornoStatusPesquisa ConsultarStatusSolicitacao(Entidades.Relatorio.FiltroPesquisa filtro)
        {
            try
            {
                //Linq.MotorDataDBDataContext dc = new Linq.MotorDataDBDataContext(Linq.ConnectionString.GetStringConnMotorData);

                Entidades.Relatorio.RetornoStatusPesquisa ret = new Entidades.Relatorio.RetornoStatusPesquisa();

                //var q = from h in dc.PE_CONSULTA_STATUS_SOLICITACAO(filtro.IdHitoricoPesquisa)
                //        select new Entidades.RetornoStatusPesquisa
                //        {
                //            StatusConsulta = h.STATUS_CONSULTA,
                //            DataSolicitacao = h.DATA_SOLICITACAO
                //        };

                //ret = q.FirstOrDefault();

                return(ret);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List <Entidades.Relatorio.RelatorioAnaliticoUsuario> ListarRelatorioAnaliticoUsuario(Entidades.Relatorio.FiltroPesquisa filtro)
        {
            try
            {
                DataTable dtRel = new DataTable();
                Dados.Relatorios.Relatorio dadosRel = new Dados.Relatorios.Relatorio();
                List <Entidades.Relatorio.RelatorioAnaliticoUsuario> listRelUsuario = new List <Entidades.Relatorio.RelatorioAnaliticoUsuario>();

                dadosRel.ListarRelatorioAnaliticoUsuario(filtro, ref dtRel);

                foreach (DataRow dr in dtRel.Rows)
                {
                    Entidades.Relatorio.RelatorioAnaliticoUsuario rel = new Entidades.Relatorio.RelatorioAnaliticoUsuario();

                    rel.IdHistoricoConsulta          = int.Parse(dr["HIS_ID"].ToString());
                    rel.ParametroPesquisado          = dr["HIS_FILTRO_ENTRADA_PESQUISA"].ToString();
                    rel.DataSolicitacao              = DateTime.Parse(dr["HIS_DATA_INCLUSAO"].ToString());
                    rel.IdCliente                    = int.Parse(dr["ID_CLIENTE"].ToString());
                    rel.LoginUsuarioSolicitante      = dr["USU_LOGIN"].ToString();
                    rel.NomeUsuarioSolicitante       = dr["USU_NOME"].ToString();
                    rel.NomeFantasiaCliente          = dr["CLI_NOME_FANTASIA"].ToString();
                    rel.RazaoSocialCliente           = dr["CLI_NOME_RAZAO_SOCIAL"].ToString();
                    rel.NomeProdutoConsultado        = dr["PROD_NOME"].ToString();
                    rel.NomeInternoProdutoConsultado = dr["PROD_NOME_INTERNO"].ToString();
                    rel.StatusHistoricoPesquisa      = dr["HIS_FLAG_SUCESSO"].ToString().Equals("S") ? true : false;
                    rel.TipoParametroPesquisado      = dr["HIS_TP_FILTRO_ENTRADA_PESQUISA"].ToString();
                    rel.IdProdutoPrecoPesquisado     = int.Parse(dr["ID_PRODUTO_PRECO"].ToString());

                    // USAR ESSA VARIAVEL QUANDO PRECISAR CONVERTER A PROC PE_CONSULTA_STATUS_SOLICITACAO DA CHECKLOG
                    //rel.StatusPesquisa = dr[""].ToString();
                    rel.StatusPesquisa = "PROCESSADO";

                    listRelUsuario.Add(rel);
                }

                return(listRelUsuario);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List <Entidades.Relatorio.RelatorioSinteticoCliente> ListarRelatorioSinteticoClientes(Entidades.Relatorio.FiltroPesquisa filtro)
        {
            try
            {
                //Linq.MotorDataDBDataContext dc = new Linq.MotorDataDBDataContext(Linq.ConnectionString.GetStringConnMotorData);

                //var q = from h in dc.REL_SINTETICO_CLIENTES(null, filtro.DataInicialPesquisa, filtro.DataFinalPesquisa)
                //        select new Entidades.Relatorios.SinteticoCliente
                //        {
                //            QtdePesquisada = (int)h.QTDE_PESQUISAS,
                //            IdCliente = h.ID_CLIENTE,
                //            NomeFantasiaCliente = h.NOME_FANTASIA,
                //            RazaoSocialCliente = h.RAZAO_SOCIAL
                //        };

                //List<Entidades.Veicular.RelatorioSinteticoCliente> l = new List<Entidades.Veicular.RelatorioSinteticoCliente>();

                //l = q.ToList();

                //return l;

                return(new List <Entidades.Relatorio.RelatorioSinteticoCliente>());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List <Entidades.Relatorio.RelatorioAnaliticoCliente> ListarRelatorioAnaliticoClientes(Entidades.Relatorio.FiltroPesquisa filtro)
        {
            try
            {
                //Linq.MotorDataDBDataContext dc = new Linq.MotorDataDBDataContext(Linq.ConnectionString.GetStringConnMotorData);

                //var q = from h in dc.HISTORICO_CONSULTAs
                //        join u in dc.USUARIOs on h.ID_USUARIO_INCLUSAO equals u.ID
                //        join relUC in dc.RELACIONA_USUARIO_CLIENTEs on u.ID equals relUC.ID_USUARIO
                //        join cli in dc.CLIENTEs on relUC.ID_CLIENTE equals cli.ID
                //        where
                //            cli.ID == filtro.IdCliente
                //            && h.ID_USUARIO_INCLUSAO == (filtro.IdUsuarioLogado == 0 ? h.ID_USUARIO_INCLUSAO : filtro.IdUsuarioLogado)
                //            && h.DATA_INCLUSAO >= filtro.DataInicialPesquisa
                //            && h.DATA_INCLUSAO <= filtro.DataFinalPesquisa
                //            && h.ID_PRODUTO_PRECO == (filtro.IdProdutoPreco == 0 ? h.ID_PRODUTO_PRECO : filtro.IdProdutoPreco)
                //        orderby h.DATA_INCLUSAO descending
                //        select new Entidades.Veicular.RelatorioAnaliticoCliente
                //        {
                //            IdHistoricoConsulta = (int)h.ID,
                //            ParametroPesquisado = h.FILTRO_ENTRADA_PESQUISA,
                //            PlacaPesquisada = "",
                //            ChassiPesquisado = "",
                //            NumeroMotorPesquisado = "",
                //            NumeroCambioPesquisado = "",
                //            DataSolicitacao = h.DATA_INCLUSAO,
                //            IdCliente = cli.ID,
                //            LoginUsuarioSolicitante = h.USUARIO_INCLUSAO.LOGIN,
                //            NomeUsuarioSolicitante = h.USUARIO_INCLUSAO.NOME,
                //            NomeFantasiaCliente = cli.NOME_FANTASIA,
                //            RazaoSocialCliente = cli.NOME_RAZAO_SOCIAL,
                //            NomeProdutoConsultado = h.PRODUTO_PRECO.PRODUTO.NOME,
                //            StatusPesquisa = ConsultarStatusSolicitacao(new Entidades.FiltroPesquisa() { IdHitoricoPesquisa = h.ID }).StatusConsulta
                //        };

                //List<Entidades.Veicular.RelatorioAnaliticoCliente> l = new List<Entidades.Veicular.RelatorioAnaliticoCliente>();
                //l = q.ToList();

                //return l;

                return(new List <Entidades.Relatorio.RelatorioAnaliticoCliente>());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List <Entidades.Relatorio.RelatorioAnaliticoCliente> ListarSolicitacoesByUsuario(Entidades.Relatorio.FiltroPesquisa filtro)
        {
            try
            {
                //Linq.MotorDataDBDataContext dc = new Linq.MotorDataDBDataContext(Linq.ConnectionString.GetStringConnMotorData);

                //var q = from h in dc.HISTORICO_CONSULTAs
                //        where
                //            h.ID_USUARIO_INCLUSAO == filtro.IdUsuarioLogado
                //            && h.DATA_INCLUSAO >= filtro.DataInicialPesquisa
                //            && h.DATA_INCLUSAO <= filtro.DataFinalPesquisa
                //            && h.ID_PRODUTO_PRECO == (filtro.IdProdutoPreco == 0 ? h.ID_PRODUTO_PRECO : filtro.IdProdutoPreco)
                //        orderby h.DATA_INCLUSAO descending
                //        select new Entidades.Relatorios.AnaliticoCliente
                //        {
                //            IdHistoricoConsulta = (int)h.ID,
                //            ParametroPesquisado = h.FILTRO_ENTRADA_PESQUISA,
                //            PlacaPesquisada = "",
                //            ChassiPesquisado = "",
                //            NumeroMotorPesquisado = "",
                //            NumeroCambioPesquisado = "",
                //            DataSolicitacao = h.DATA_INCLUSAO,
                //            IdCliente = h.USUARIO_INCLUSAO.RELACIONA_USUARIO_CLIENTEs.Where(p => p.ID_USUARIO == filtro.IdUsuarioLogado).FirstOrDefault().CLIENTE.ID,
                //            LoginUsuarioSolicitante = h.USUARIO_INCLUSAO.LOGIN,
                //            NomeUsuarioSolicitante = h.USUARIO_INCLUSAO.NOME,
                //            NomeFantasiaCliente = h.USUARIO_INCLUSAO.RELACIONA_USUARIO_CLIENTEs.Where(p => p.ID_USUARIO == filtro.IdUsuarioLogado).FirstOrDefault().CLIENTE.NOME_FANTASIA,
                //            RazaoSocialCliente = h.USUARIO_INCLUSAO.RELACIONA_USUARIO_CLIENTEs.Where(p => p.ID_USUARIO == filtro.IdUsuarioLogado).FirstOrDefault().CLIENTE.NOME_RAZAO_SOCIAL,
                //            NomeProdutoConsultado = h.PRODUTO_PRECO.PRODUTO.NOME,
                //            NomeInternoProdutoConsultado = h.PRODUTO_PRECO.PRODUTO.NOME_INTERNO,
                //            StatusHistoricoPesquisa = h.FLAG_SUCESSO,
                //            TipoParametroPesquisado = h.TIPO_FILTRO_ENTRADA_PESQUISA,
                //            IdProdutoPrecoPesquisado = h.ID_PRODUTO_PRECO,
                //            StatusPesquisa = ConsultarStatusSolicitacao(new Entidades.ConsultaEspecialECV.FiltrosPesquisa() { IdHitoricoPesquisa = h.ID }).StatusConsulta
                //        };

                //List<Entidades.Relatorios.AnaliticoCliente> l = new List<Entidades.Relatorios.AnaliticoCliente>();
                //l = q.ToList();

                //return l;

                return(new List <Entidades.Relatorio.RelatorioAnaliticoCliente>());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void ListarRelatorio()
        {
            try
            {
                if (DateTime.Compare(DateTime.Parse(txtDataInicial.Text), DateTime.Parse(txtDataFinal.Text)) <= 0)
                {
                    Negocios.Relatorio.Relatorios      rel    = new Negocios.Relatorio.Relatorios();
                    Entidades.Relatorio.FiltroPesquisa filtro = new Entidades.Relatorio.FiltroPesquisa();
                    List <Entidades.Relatorio.RelatorioAnaliticoUsuario> listRet = new List <Entidades.Relatorio.RelatorioAnaliticoUsuario>();

                    filtro.IdUsuarioLogado     = usuarioLogado.IdUsuario;
                    filtro.DataInicialPesquisa = DateTime.Parse(txtDataInicial.Text + " 00:00:00");
                    filtro.DataFinalPesquisa   = DateTime.Parse(txtDataFinal.Text + " 23:59:59");
                    filtro.CodigoItemProduto   = ddlProdutos.SelectedItem.Value;

                    listRet = rel.ListarRelatorioAnaliticoUsuario(filtro);

                    gridResult.DataSource = null;

                    if (listRet != null && listRet.Count > 0)
                    {
                        int qtdeRegistros = 0;
                        if (ddlStatus.SelectedIndex == 1)
                        {
                            gridResult.DataSource = listRet.Where(p => p.StatusPesquisa.Equals("PROCESSADO") && (bool)p.StatusHistoricoPesquisa);
                            qtdeRegistros         = listRet.Where(p => p.StatusPesquisa.Equals("PROCESSADO") && (bool)p.StatusHistoricoPesquisa).Count();
                        }
                        else if (ddlStatus.SelectedIndex == 2)
                        {
                            gridResult.DataSource = listRet.Where(p => (bool)!p.StatusHistoricoPesquisa);
                            qtdeRegistros         = listRet.Where(p => (bool)!p.StatusHistoricoPesquisa).Count();
                        }
                        else
                        {
                            gridResult.DataSource = listRet;
                            qtdeRegistros         = listRet.Count;
                        }

                        gridResult.Visible = true;

                        divMensagemRetorno.Visible    = false;
                        lblMensagemRetorno.Visible    = false;
                        divEspacoBranco.Visible       = true;
                        divListarSolicitacoes.Visible = true;
                        divDetalhesRetorno.Visible    = true;

                        lblTotalPesquisas.Visible = true;
                        lblTotalPesquisas.Text    = "TOTAL DE PESQUISAS PARA O PERÍODO INFORMADO: <b>" + qtdeRegistros.ToString() + "</b>";
                    }
                    else
                    {
                        lblTotalPesquisas.Visible     = false;
                        divListarSolicitacoes.Visible = true;
                        divMensagemRetorno.Visible    = true;
                        lblMensagemRetorno.Visible    = true;
                        divEspacoBranco.Visible       = true;
                        divDetalhesRetorno.Visible    = false;
                        lblMensagemRetorno.Text       = "NÃO HÁ INFORMAÇÕES PARA O PERÍODO INFORMADO.";
                    }

                    gridResult.DataBind();

                    if (ddlStatus.SelectedIndex > 0)
                    {
                        Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 0);
                    }

                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 4);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 5);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 6);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 7);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 9);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 10);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 11);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 12);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 13);
                    Util.Format.OcultaColunaEspecificaGrid(ref gridResult, 14);
                }
                else
                {
                    gridResult.DataSource = null;
                    gridResult.DataBind();
                    gridResult.Visible = false;

                    divMensagemRetorno.Visible = true;
                    lblMensagemRetorno.Visible = true;
                    divEspacoBranco.Visible    = true;
                    lblMensagemRetorno.Text    = "A DATA FINAL NÃO PODE SER MAIOR DO QUE A DATA INCIAL.";
                }
            }
            catch (Exception ex)
            {
                Util.Log.Save("ex:" + ex.Message, "ListarRelatorio", "ExtratoConsumo", HttpContext.Current.Server.MapPath(diretorioLog));

                if (Session["UsuarioLogado"] == null)
                {
                    Response.Redirect("/Home.aspx", false);
                }
                else
                {
                    Response.Redirect("../Home.aspx", false);
                }
            }
        }