Exemplo n.º 1
0
        public LaminaContrato GetOcalCalc(string contrato, DateTime data)
        {
            using (var emulator = ConnectAndLogin(_user, _pass, _ip, _port))
            {
                ResetToMainMenu(emulator);
                emulator.WaitForHostSettle(100, _timeout);

                //Navega até a tela Ocal
                WriteTextToField(emulator.CurrentScreenXML.Fields[3], emulator, "ocal");
                emulator.SendKey(true, TnKey.Enter, _timeout);
                emulator.WaitForHostSettle(100, _timeout);

                //Pesquisa pelo contrato
                WriteTextToField(emulator.CurrentScreenXML.Fields[22], emulator, (contrato));
                Thread.Sleep(100);
                emulator.SendKey(true, TnKey.Enter, _timeout);
                Thread.Sleep(50);


                //Pega num total de parcelas
                string   total = "";
                string[] tot   = emulator.CurrentScreenXML.Fields[25].Text.ToString().Split(' ');

                for (int p = 0; p < tot.Length; p++)
                {
                    if (tot[p] == "PAR")
                    {
                        total = tot[p + 2];
                        break;
                    }
                }

                int TotalParcelas = int.Parse(total);

                Thread.Sleep(50);
                emulator.SendKey(true, TnKey.F2, _timeout);

                Thread.Sleep(50);


                var retVal = new LaminaContrato();

                //Captura de dados do cliente
                retVal.NomeCliente = emulator.CurrentScreenXML.Fields[21].Text.Substring(8, 35);
                retVal.CpfCli      = emulator.CurrentScreenXML.Fields[23].Text.Substring(10, 16);
                retVal.Nascimento  = emulator.CurrentScreenXML.Fields[23].Text.Substring(58);
                retVal.Endereco    = emulator.CurrentScreenXML.Fields[25].Text.Substring(0, 40);
                retVal.BairroC     = emulator.CurrentScreenXML.Fields[25].Text.Substring(40);
                retVal.Cidade      = emulator.CurrentScreenXML.Fields[27].Text;
                emulator.SendKey(true, TnKey.F2, _timeout);
                retVal.Marca = emulator.CurrentScreenXML.Fields[35].Text.Substring(0, 50);
                retVal.Cor   = emulator.CurrentScreenXML.Fields[37].Text.Substring(0, 60);
                retVal.TIC   = emulator.CurrentScreenXML.Fields[63].Text;

                //Pega parcela atual

                emulator.SendKey(true, TnKey.F2, _timeout);
                string[] atu          = emulator.CurrentScreenXML.Fields[23].Text.ToString().Split(' ');
                int      parcelaAtual = int.Parse(atu[1]);
                //Console.Write(emulator.CurrentScreenXML.Dump());

                //Navegação até a tela CALC
                //emulator.SendKey(true, TnKey.F2, _timeout);
                WriteTextToField(emulator.CurrentScreenXML.Fields[2], emulator, "calc");
                emulator.SendKey(true, TnKey.Enter, _timeout);
                emulator.WaitForHostSettle(100, _timeout);


                retVal.ContratoCliente = emulator.CurrentScreenXML.Fields[24].Text;
                WriteTextToField(emulator.CurrentScreenXML.Fields[27], emulator, data.ToString("ddMMyyyy"));
                emulator.SendKey(true, TnKey.Enter, _timeout);

                //Console.Write(emulator.CurrentScreenXML.Dump());
                //Captura de parcelas

                for (int p = 0; p <= ((TotalParcelas - parcelaAtual) / 6); p++)
                {
                    for (int i = 0; i <= 6; i++)
                    {
                        var toAdd = new ParcelaLaminaContrato();

                        toAdd.Parcela      = emulator.CurrentScreenXML.Fields[81 + (16 * i)].Text;
                        toAdd.Vencimento   = emulator.CurrentScreenXML.Fields[83 + (16 * i)].Text;
                        toAdd.ValorParcela = emulator.CurrentScreenXML.Fields[85 + (16 * i)].Text;
                        toAdd.JurosDesc    = emulator.CurrentScreenXML.Fields[87 + (16 * i)].Text;
                        toAdd.IOF          = emulator.CurrentScreenXML.Fields[89 + (16 * i)].Text;
                        toAdd.Tec          = emulator.CurrentScreenXML.Fields[90 + (16 * i)].Text;
                        toAdd.ValorTotal   = emulator.CurrentScreenXML.Fields[92 + (16 * i)].Text;
                        toAdd.Gca          = emulator.CurrentScreenXML.Fields[204].Text;

                        if (emulator.CurrentScreenXML.Fields[85 + (16 * i)].Text != null)
                        {
                            retVal.Parcelas.Add(toAdd);
                        }
                    }



                    emulator.SendKey(true, TnKey.F8, _timeout);
                }

                return(retVal);
            }
        }
        public TelaRegistro(string user, string pass, string ip, int port)
        {
            InitializeComponent();


            _user = user;
            _pass = pass;
            _ip   = ip;
            _port = port;



            //this.mainframe = new Santander.Automation.TN3270Lib.CICS(_user, _pass, _ip, _port);

            calculadora = new Calculadora();
            calcula();

            //var cx = TestStack.White.Application.Attach("cobdesk");
            //var siscob = (Control)cx.GetWindows().Select(w => w.Name.Contains("cslog_rr_prod"));
            //siscob.SendToBack();

            Xuser.Text = Form1.UserCICSText;

            //copia contrato no momento da deteccao da chamada
            //var contrato = Clipboard.GetText();20028223758 20027749175 20028154413
            // contrato = "20025946587";//"20027749175";
            //idContrato = "95671555";

            contrato = Siscob.Contrato.Trim();
            //idContrato = Siscob.idContrato.Trim();
            //Console.WriteLine("Contrato: " + contrato);

            //informacoes da tela
            var mainframe = new Santander.Automation.TN3270Lib.CICS(_user, _pass, _ip, _port);

            var data = mainframe.GetOcalCalc(contrato, DateTime.Today.AddDays(0));

            //info cliente
            NomeC.Text       = data.NomeCliente;
            ContratoCli.Text = data.ContratoCliente;
            EnderecoC.Text   = data.Endereco;
            CidadeC.Text     = data.Cidade;
            BairroC.Text     = data.BairroC;
            CpfC.Text        = data.CpfCli;
            Nascimento.Text  = data.Nascimento;

            //info veiculo
            MarcaCar.Text = data.Marca;
            TicCar.Text   = data.TIC;
            CorCar.Text   = data.Cor;

            ////tabulação CTA

            //populaTabulacaoCTA(contrato);

            //historicos CTA
            populaHistoricoContatosAnt(contrato);
            populaHistoricoPagamentos(contrato);



            //Qtdparcela = data.Parcelas[0].Parcela;
            //ValorParcela = data.Parcelas[0].ValorParcela;
            //Vencimento = data.Parcelas[0].Vencimento;

            //Recupera valores das parcelas do contrato
            List <LaminaContrato> datas = new List <LaminaContrato>();

            var parc     = new LaminaContrato();
            var consulta = DateTime.Today;

            for (int d = 0; d < 5; d++)
            {
                do
                {
                    parc = mainframe.GetOcalCalc(contrato, consulta);
                    parc.dataConsulta = consulta;
                    consulta          = consulta.AddDays(1);
                } while (parc.Parcelas.Count() == 0);

                datas.Add(parc);
            }

            //Carrega valores nos list views
            List <ListView> listViews = new List <ListView>();

            listViews.Add(listView1);
            listViews.Add(listView2);
            listViews.Add(listView3);
            listViews.Add(listView4);
            listViews.Add(listView5);


            for (int t = 0; t < 5; t++)
            {
                Color cor = Color.LightGray;
                foreach (Santander.Automation.TN3270Lib.Models.ParcelaLaminaContrato p in datas[t].Parcelas)
                {
                    var item = new ListViewItem();
                    item.SubItems.Add(p.Parcela);
                    item.SubItems.Add(p.Vencimento);
                    item.SubItems.Add(p.ValorParcela);
                    item.SubItems.Add(p.JurosDesc);
                    item.SubItems.Add(p.IOF);
                    item.SubItems.Add(p.Gca); //GCA = p.Gca;
                    item.SubItems.Add(p.ValorTotal);
                    listViews[t].Parent.Text = datas[t].dataConsulta.ToString("dd/MM/yyyy");

                    item.BackColor = cor;

                    if (cor == Color.LightGray)
                    {
                        cor = Color.White;
                    }
                    else
                    {
                        cor = Color.LightGray;
                    }

                    listViews[t].Items.Add(item);
                }
            }


            //ShowWindow(this.Handle, SW_MAXIMIZE);
        }