//public void ValidarCotistasWebScraping(string Usuario, string Senha)
        //{
        //    List<long> CotistasAux = new BL_Cotista().DadosCompleto().Select(x => x.CODCOT).ToList();
        //    List<BL_Distribuidor> Distribuidores = new BL_Distribuidor().Dados().Where(x => x.POSSUICEO == "Sim").ToList();

        //    WebBrowser WebCaixa = new WebBrowser();
        //    WebCaixa.Navigate("https://www.itaucustodia.com.br/Passivo/");
        //    WebCaixa.ScriptErrorsSuppressed = true;

        //    while (WebCaixa.ReadyState.ToString() != "Complete") { Application.DoEvents(); }//Aguarda a pagina carregar

        //    var inputElements = WebCaixa.Document.GetElementsByTagName("input");
        //    var aElements = WebCaixa.Document.GetElementsByTagName("a");

        //    //Insere Login e Senha
        //    foreach (HtmlElement i in inputElements)
        //    {
        //        if (i.GetAttribute("name").Equals("ebusiness")) { i.InnerText = Usuario; }
        //        if (i.GetAttribute("name").Equals("senha")) { i.InnerText = Senha; }
        //    }

        //    //Clica no Login
        //    foreach (HtmlElement a in aElements) { if (a.GetAttribute("href").Equals("javascript:fn_login();")) { a.InvokeMember("click"); } }

        //    //Aguarda Pagina Carregar
        //    while (WebCaixa.ReadyState != WebBrowserReadyState.Interactive) { Application.DoEvents(); }

        //    //Navega até pagina do Check Upload
        //    WebCaixa.Navigate("https://www.itaucustodia.com.br/Passivo/abreFiltroConsultaUploadCheck.do?pageExecutionId=7376071690435952");

        //    //Aguarda Pagina Carregar
        //    while (WebCaixa.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }

        //    //Seleciona Gestor na lista
        //    var ElementosSelect = WebCaixa.Document.GetElementsByTagName("select");
        //    foreach (HtmlElement a3 in ElementosSelect)
        //    {
        //        if (a3.GetAttribute("Name").Equals("codigoGestor")) { a3.SetAttribute("Value", "991259"); }
        //        if (a3.GetAttribute("Name").Equals("tipo")) { a3.SetAttribute("Value", "1"); }
        //    }

        //    //Clica em Continuar
        //    var aElements2 = WebCaixa.Document.GetElementsByTagName("a");
        //    foreach (HtmlElement a2 in aElements2) { if (a2.GetAttribute("href").Equals("javascript:enviar();")) { a2.InvokeMember("click"); } }

        //    //Aguarda Pagina Carregar
        //    while (WebCaixa.ReadyState != WebBrowserReadyState.Interactive) { Application.DoEvents(); }

        //    var E = WebCaixa.Document.GetElementsByTagName("td");

        //    //Cadastrar Cotistas não cadastrados na Base
        //    for (int i = 0; i < E.Count; i++)
        //    {
        //        if (E[i].InnerText == "Cotista:")
        //        {
        //            long Codcot = Convert.ToInt64(E[i + 1].InnerText.Split('-')[0].Trim());
        //            string Nome = E[i + 1].InnerText.Split('-')[1].Trim().ToString();
        //            long Cpfcnpj = Convert.ToInt64(E[i + 3].InnerText.Trim());

        //            if (!CotistasAux.Contains(Codcot) && Distribuidores.Where(x => x.CNPJ == Cpfcnpj).Count() > 0)
        //            {
        //                long CODDIST = Distribuidores.FirstOrDefault(x => x.CNPJ == Cpfcnpj).CODIGO;

        //                new BL_Cotista().Inserir(Codcot, Nome, Cpfcnpj, CODDIST, 0, DateTime.Today);
        //                CotistasAux.Add(Codcot);
        //            }
        //        }
        //    }
        //}

        public BL_Cotista ConsultarCotista(string Usuario, string Senha, string CODCOT)
        {
            //trocar para consulta via web service
            string[] Consulta = new string[0];
            try
            {
                Consulta = new PosicaoGerencialServiceService().consultarCotistaXML(Usuario, Senha, "991259", CODCOT).Split(Convert.ToChar("\n"));
            }
            catch (Exception e) { new BL_LogOperacional().Inserir("BL_Cotista - AtualizarCotista", "Erro: " + e.Message); return(null); }

            BL_Cotista Cotista = new BL_Cotista();

            foreach (string line in Consulta)
            {
                if (line.Contains("<idClienteReceita>"))
                {
                    Cotista.CPFCNPJ = Convert.ToInt64(Extract(line, "idClienteReceita"));
                }
                if (line.Contains("<nomeCliente>"))
                {
                    Cotista.NOME = Extract(line, "nomeCliente");
                }
            }

            return(Cotista);
        }
Beispiel #2
0
        //Métodos da Classe
        #region

        public string AtualizarDados(string usuario, string senha)
        {
            CreditosAplicacaoBean[] creditos;
            try {
                //new DAL.Intrag.PosicaoGerencialServiceService().consultarCotista("","","","")
                creditos = new PosicaoGerencialServiceService().consultarCreditosAplicacaoGestor(usuario, senha, "991259", "");
            }
            catch (Exception e) {
                //retorno em formato html
                //testa se não há lançamentos
                Console.WriteLine(e.Message);
                if (e.Message.Contains("NAO HA LANCAMENTOS DE CREDITOS"))
                {
                    Limpar(); return("Não há lançamentos de créditos!");
                }
                else
                {
                    //new BL_LogErro().Inserir("BL_RegistroAplica - AtualizarDados", "Erro " + e.Message);
                    new BL_LogOperacional().Inserir("BL_RegistroAplica - AtualizarDados", "Erro " + e.Message);
                    AtualizaCaixaWebScraping(usuario, senha);
                    return("Consulta realizada por Web Scraping!");
                }
            }

            Limpar();
            foreach (CreditosAplicacaoBean cred in creditos)
            {
                ObjDA.Inserir(Convert.ToInt64(cred.cpfCnpjCotista), cred.nomeCotista, Convert.ToDateTime(cred.horaCredito),
                              Convert.ToDecimal(cred.valorCredito), Convert.ToInt64(cred.contaCaptacao.Substring(0, 5)));
            }
            return("Consulta realizada com sucesso!");
        }
        //Métodos Classe
        #region
        public void AtualizarDados(string Usuario, string Senha)
        {
            List <BL_BoletaIntrag> Boletas = new List <BL_BoletaIntrag>();

            string[] linhas;

            try { linhas = new PosicaoGerencialServiceService().consultarMovimentosDiaXML(Usuario, Senha, "991259").Split(Convert.ToChar("\n")); }
            catch { linhas = new string[0]; }

            for (int i = 0; i < linhas.Length; i++)
            {
                if (linhas[i].Length > 13 && (linhas[i].Substring(0, 14) == "<codigoBanco/>" || linhas[i].Substring(0, 13) == "<codigoBanco>"))
                {
                    BL_BoletaIntrag Boleta = new BL_BoletaIntrag
                    {
                        CODCOT      = Convert.ToInt64(Extract(linhas[i + 1], "codigoCotista").Insert(4, "0000")),
                        CODFUND     = Convert.ToInt64(Extract(linhas[i + 2], "codigoFundo")),
                        HORA        = Convert.ToDateTime(Extract(linhas[i + 6], "horaOperacao")),
                        OPERACAO    = Extract(linhas[i + 9], "operacao"),          //AP / CT / ST / TF
                        STATUS      = Extract(linhas[i + 11], "status"),
                        TIPOCONTA   = Extract(linhas[i + 12], "tipoContaCredito"), //C/C
                        TIPOLIQUIDA = Extract(linhas[i + 13], "tipoOperacao"),     //DISPONIVEL / CETIP / TEF / TED STR
                        USUARIO     = Extract(linhas[i + 15], "usuario"),
                        SOLICITACAO = DateTime.Today,
                    };

                    if (Boleta.OPERACAO != "AP")
                    {
                        try { Boleta.BANCO = Convert.ToInt64(Extract(linhas[i], "codigoBanco")); } catch { Boleta.BANCO = 0; }

                        try { Boleta.CONTACORRENTE = Extract(linhas[i + 3], "contaCorrente"); }
                        catch { Boleta.CONTACORRENTE = " "; }
                        finally { if (Boleta.CONTACORRENTE == null)
                                  {
                                      Boleta.CONTACORRENTE = " ";
                                  }
                        }

                        try
                        {
                            Boleta.IMPACTO = Convert.ToDateTime(Extract(linhas[i + 5], "dataPagamento"));
                            Console.WriteLine($"Data de impacto: {Boleta.IMPACTO}");
                        } catch { Boleta.IMPACTO = DateTime.Today; } //Erro de conversão para boletas de offshore ou máscara
                        try { Boleta.QUANTIDADE = Convert.ToDecimal(Extract(linhas[i + 10], "quantidadeCotas"), new CultureInfo("pt-BR")); } catch { Boleta.QUANTIDADE = 0; }
                        try { Boleta.TIPORESGATE = Extract(linhas[i + 14], "tipoResgate"); } catch { Boleta.TIPORESGATE = ""; }
                    }
                    else
                    {
                        Boleta.TIPORESGATE = ""; Boleta.IMPACTO = DateTime.Today; Boleta.CONTACORRENTE = "";
                    }

                    try { Boleta.COTIZA = Convert.ToDateTime(Extract(linhas[i + 4], "dataConversao")); }
                    catch { Boleta.COTIZA = DateTime.Today; }
                    try { Boleta.FINANCEIRO = Convert.ToDecimal(Extract(linhas[i + 16], "valorOperacao")); } catch { }

                    Boleta.FINANCEIRO = Convert.ToDecimal(Extract(linhas[i + 16], "valorOperacao"), new CultureInfo("pt-BR"));

                    Boletas.Add(Boleta);
                }
            }

            if (Boletas.Count == 0)
            {
                return;
            }

            Limpar();

            foreach (BL_BoletaIntrag Boleta in Boletas)
            {
                Inserir(Boleta);
            }
        }