コード例 #1
0
        //Boleta Operações "Liberado" e que tenham caixa no caso de aplicação VIA TED
        private void BoletaOperacoes(string Usuario, string Senha)
        {
            //Dicionario de Cotistas Auxiliar
            Dictionary <long, long> INVCODCPF = new BL_Cotista().DadosCompleto().ToDictionary(Key => Key.CODCOT, Value => Value.CPFCNPJ);

            //Boleta operações com status Liberado
            //Valida Caixa no caso de Aplicações via ted
            List <BL_Boleta>         Boletas         = ObjBoleta.DadosDia(DateTime.Today).Where(x => x.STATUS == "Liberado" /*|| x.STATUS == "Cadastro Pendente"*/).ToList();
            List <BL_RegistroAplica> RegistrosAplica = ObjRegAp.Dados();

            //Boleta operações que não são aplicação VIA TED
            foreach (BL_Boleta B in Boletas.Where(x => !(x.OPERACAO == "AP" && x.CONTA == "VIA TED")))
            {
                ObjBoleta.Boletar(B, Usuario, Senha);
            }

            //Aplica Boletas de aplicação via TED
            foreach (BL_Boleta B in Boletas.Where(x => x.OPERACAO == "AP" && x.CONTA == "VIA TED"))
            {
                BL_RegistroAplica RegistroCaixa = RegistrosAplica.FirstOrDefault(x => x.CPFCNPJ == INVCODCPF[B.CODCOT] && x.CODFUND == B.CODFUND && x.VALOR == B.VALOR);

                if (RegistroCaixa == null)
                {
                    continue;
                }

                //Registro encontrado, Caso seja efetivamente Boletado, Remove Saldo do Caixa.
                if (ObjBoleta.Boletar(B, Usuario, Senha) == "Validando")
                {
                    RegistrosAplica.Remove(RegistroCaixa);
                }
            }
        }
コード例 #2
0
        public void AtualizaCaixaWebScraping(string Usuario, string Senha)
        {
            Limpar();

            //FUNÇÃO PARA AGUARDAR (MINUTOS E SEGUNDOS)
            void TimeWait(int minutes, int seconds)
            {
                var waitTime  = new TimeSpan(0, 0, minutes, seconds);
                var waitUntil = DateTime.Now + waitTime;

                while (DateTime.Now <= waitUntil)
                {
                    Application.DoEvents();
                }
            }

            Console.WriteLine("Atualiza Data Intrag");
            WebBrowser WebCaixa = new WebBrowser();

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

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

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

            foreach (HtmlElement i in inputElements)
            {
                if (i.GetAttribute("name").Equals("ebusiness"))
                {
                    i.InnerText = Usuario;
                }
                if (i.GetAttribute("name").Equals("senha"))
                {
                    i.InnerText = Senha;
                }
            }//Insere Login e Senha
            foreach (HtmlElement a in aElements)
            {
                //Clica no Login
                if (a.GetAttribute("href").Equals("javascript:fn_login();"))
                {
                    a.InvokeMember("click");
                }
            }

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

            WebCaixa.Navigate("https://www.itaucustodia.com.br/Passivo/abreFiltroCreditosAplicacaoGestor.do?pageExecutionId=5489278750081852");

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

            var optionElements = WebCaixa.Document.GetElementsByTagName("option");

            optionElements[1].SetAttribute("selected", "selected");//Seleciona Gestor na lista
            var selectElements = WebCaixa.Document.GetElementsByTagName("select");

            selectElements[0].InvokeMember("onchange");

            while (WebCaixa.Document.GetElementsByTagName("select").Count.ToString() != "2")
            {
                TimeWait(0, 1);
            }

            var optionElements2 = WebCaixa.Document.GetElementsByTagName("option");

            optionElements2[3].SetAttribute("selected", "selected");//Seleciona Gestor do Fundo na lista
            var selectElements2 = WebCaixa.Document.GetElementsByTagName("select");

            selectElements2[1].InvokeMember("onchange");
            var aElements2 = WebCaixa.Document.GetElementsByTagName("a");

            foreach (HtmlElement a2 in aElements2)
            {
                //Clica em Continuar
                if (a2.GetAttribute("href").Equals("javascript:fn_enviar();"))
                {
                    a2.InvokeMember("click");
                }
            }

            var tdElements = WebCaixa.Document.GetElementsByTagName("td");

            int tempo = 0;

            //Aguarda o Numero de elementos com tag "td" ser maior que 50 {Pagina Carregada}
            while (tdElements.Count < 50)
            {
                TimeWait(0, 1);
                tdElements = WebCaixa.Document.GetElementsByTagName("td");
                tempo++;
                if (tempo > 10)
                {
                    break;
                }
            }

            string Fundo;

            for (int i = 0; i < tdElements.Count - 1; i++)
            {
                if (tdElements[i].InnerText == "Fundo:")
                {
                    i++;
                    Fundo = tdElements[i].InnerText;
                    Console.WriteLine(tdElements[i].InnerText);
                    while (tdElements[i].InnerText != "Fundo:")
                    {
                        if (tdElements[i].InnerText == "Valor da Operação:")
                        {
                            if (tdElements[i + 7].InnerText == DateTime.Now.ToString("dd/MM/yyyy"))
                            {
                                BL_RegistroAplica RA = new BL_RegistroAplica();

                                RA.CODFUND = Convert.ToInt64(Fundo.Split('-')[0].Trim());
                                RA.CPFCNPJ = Convert.ToInt64(new Regex(@"[^\d]").Replace(tdElements[i - 3].InnerText.Trim(), "")); //Regex

                                try { RA.NOME = tdElements[i - 5].InnerText.Trim(); }
                                catch { RA.NOME = ""; }

                                RA.HORA  = Convert.ToDateTime(tdElements[i + 9].InnerText.Trim());
                                RA.VALOR = Convert.ToDecimal(tdElements[i + 1].InnerText.Trim(), new CultureInfo("pt-BR"));

                                ObjDA.Inserir(RA.CPFCNPJ, RA.NOME, RA.HORA, RA.VALOR, RA.CODFUND);
                            }
                        }
                        i++;
                        if (i > tdElements.Count - 1)
                        {
                            break;
                        }
                    }
                    i = i - 1;
                }
            }
        }