예제 #1
0
        private List <TipoLink> RecuperaTipiLinkPrivate()
        {
            List <TipoLink> tipiLink = new List <TipoLink>();

            SqlServerExecuteObject sseo = null;
            SqlDataReader          dr   = null;

            string sSql = "SELECT TipoLinkID, Nome_IT, Nome_EN FROM dbo.TBL_TipiLink;";

            sseo             = new SqlServerExecuteObject();
            sseo.CommandText = sSql;
            sseo.CommandType = CommandType.Text;

            dr = SqlProvider.ExecuteReaderObject(sseo);

            while (dr.Read())
            {
                TipoLink tipoLink = RiempiIstanza(dr);
                tipiLink.Add(tipoLink);
            }

            if (dr != null)
            {
                dr.Close();
                dr.Dispose();
            }

            return(tipiLink);
        }
예제 #2
0
        private TipoLink RecuperaObjetoTipoLink(MySqlDataReader dr)
        {
            TipoLink tipoLink = new TipoLink();

            tipoLink.id   = CastDB <int>(dr, "id_Tipo_Link");
            tipoLink.nome = CastDB <string>(dr, "nm_Tipo_Link");
            return(tipoLink);
        }
예제 #3
0
        private TipoLink RiempiIstanza(SqlDataReader dr)
        {
            if (dr == null)
            {
                throw new ArgumentNullException("dr");
            }

            TipoLink tipoLink = new TipoLink();

            tipoLink.ID       = dr.GetInt32(0);
            tipoLink._nome_IT = dr.GetString(1);
            tipoLink._nome_EN = dr.GetString(2);
            tipoLink.Enum     = (TipoLinkEnum)dr.GetInt32(0);

            return(tipoLink);
        }
예제 #4
0
        public static string ObtenerClaseLinkGrilla(TipoLink tipo)
        {
            string clase = "";

            switch (tipo)
            {
            case TipoLink.Editar: clase = "btn_icons_edit"; break;

            case TipoLink.Detalle: clase = "btn_cancelar_grilla"; break;

            case TipoLink.Eliminar: clase = "btn_icons_delete"; break;

            case TipoLink.Nuevo: clase = "btn_nuevo_grilla"; break;

            case TipoLink.Buscar: clase = "btn_buscar_grilla"; break;

            case TipoLink.Versionar: clase = "btn_Versionar"; break;
            }
            return(clase);
        }
예제 #5
0
        public static string ObtenerClaseLink(TipoLink tipo)
        {
            string clase = "";

            switch (tipo)
            {
            case TipoLink.Editar: clase = "btn_editar"; break;

            case TipoLink.Detalle: clase = "btn_editar"; break;

            case TipoLink.Eliminar: clase = "btn_eliminar"; break;

            case TipoLink.Nuevo: clase = "btn_nuevo"; break;

            case TipoLink.Buscar: clase = "btn_buscar"; break;

            case TipoLink.Versionar: clase = "btn_Versionar_grilla"; break;

            case TipoLink.Configuracion: clase = "btn_config"; break;

            case TipoLink.Editar_Span: clase = "spanBtn_editar"; break;
            }
            return(clase);
        }
예제 #6
0
    public static List <Extrato> ReadExtrato(IWebDriver driver, List <Conta> contas, CultureInfo cultureBR, TipoConta tipoConta, TipoLink tipoLink)
    {
        List <Extrato> extratos = new List <Extrato>();

        // Clica no menu "Saldos e Extratos"
        UI.Wait(1);
        driver.SwitchTo().DefaultContent();
        UI.Wait(1);
        UI.ClickWithPerform(driver, UI.WaitForClickable(driver, By.Id("topmenu_S")));
        UI.Wait(1);
        UI.WaitPageLoad(driver);

        // Clica no link da conta corrente ou ponpança, depende do parâmetro linkTitle
        UI.Wait(1);
        UI.WaitIFrameLoad(driver, "paginaCentral");
        UI.Wait(3);

        // Clica no link do extrato
        var lnkText = tipoLink == TipoLink.Ultimos_Lancamentos ? "Extrato (Últimos Lançamentos)" : "Extrato Mensal / Por Período";
        //UI.WaitForClickable(driver, By.LinkText(lnkText));

        var    lnkExtratos = driver.FindElements(By.LinkText(lnkText));
        string conta       = null;

        if (tipoConta == TipoConta.Conta_Corrente)
        {
            conta = (from a in contas where a.nome.ToUpper().EndsWith("CC") select a.nome).First(); // "Bradesco Lu CC";
            lnkExtratos[0].Click();
        }
        else if (tipoConta == TipoConta.Poupanca)
        {
            conta = (from a in contas where a.nome.ToUpper().EndsWith("POUP") select a.nome).First();
            lnkExtratos[1].Click();
        }

        if (tipoLink == TipoLink.Por_Periodo)
        {
            // Tela do extrato: clica no radio button 'A partir de:'
            UI.ClickWhenDisplayed(driver, By.Id("formFiltroMensal:opcaoData1"));
            UI.Wait(1);

            //Seta as datas iniciais
            UI.ClickWhenDisplayed(driver, By.Id("formFiltroMensal:dataInicialDia"));
            UI.Wait(1);

            // Blur para fechar o calendário de data inicial
            IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
            UI.Blur(driver, executor, driver.FindElement(By.Id("formFiltroMensal:dataInicialDia")));
            UI.Wait(1);

            // Clica na data final - dia
            UI.WaitForClickable(driver, By.Id("formFiltroMensal:dataFinalDia"));
            UI.Wait(1);

            // Seleciona o último dia possível
            var divCalendar             = UI.WaitForClickable(driver, By.Id("dp-popup"));
            IList <IWebElement> trsData = divCalendar.FindElement(By.ClassName("dp-calendar")).FindElement(By.ClassName("jCalendar")).FindElement(By.TagName("tbody")).FindElements(By.TagName("tr"));
            int diaFim = 0;

            foreach (IWebElement tr in trsData)
            {
                IList <IWebElement> tds = tr.FindElements(By.TagName("td"));
                {
                    foreach (IWebElement td in tds)
                    {
                        if (td.GetAttribute("class").Contains("disabled"))
                        {
                            break;
                        }
                        diaFim = Convert.ToInt32(td.Text);
                    }
                }
            }

            var dataFim = DateTime.Today.AddDays(-1); // new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day - 1);
            //dataFim = dataFim.AddDays(-1);
            //dataFim = new DateTime(2019, 11, 10); // XXXXXXX

            if (diaFim > DateTime.Today.Day)
            {
                dataFim = dataFim.AddMonths(-1);                              // caso hoje for 01/12 e o filtro máximo for 30/11. Corrige ficar como 30/12
            }
            // Blur para fechar o calendário de data inicial
            UI.Blur(driver, executor, driver.FindElement(By.Id("formFiltroMensal:dataFinalDia")));
            UI.Wait(1);

            // Seta a data inicial
            var ultima_atulizacao = contas[0].ultima_atulizacao;
            var dataInicio        = new DateTime(ultima_atulizacao.Year, ultima_atulizacao.Month, ultima_atulizacao.Day);
            if (dataInicio > dataFim)
            {
                dataInicio = dataFim;
            }

            //dataInicio = new DateTime(2019, 7, 1);
            //dataFim = new DateTime(2019, 7, 31);

            // Seta as datas
            UI.SetTextBoxValue(driver, By.Id("formFiltroMensal:dataInicialDia"), dataInicio.Day.ToString("00"));
            UI.SetTextBoxValue(driver, By.Id("formFiltroMensal:dataInicialMes"), dataInicio.Month.ToString("00"));
            UI.SetTextBoxValue(driver, By.Id("formFiltroMensal:dataInicialAno"), dataInicio.Year.ToString());

            UI.SetTextBoxValue(driver, By.Id("formFiltroMensal:dataFinalDia"), dataFim.Day.ToString("00"));
            UI.SetTextBoxValue(driver, By.Id("formFiltroMensal:dataFinalMes"), dataFim.Month.ToString("00"));
            UI.SetTextBoxValue(driver, By.Id("formFiltroMensal:dataFinalAno"), dataFim.Year.ToString());

            UI.Click(driver, By.Id("formFiltroMensal:dataInicialAno"));
            UI.Wait(1);
            UI.Blur(driver, executor, driver.FindElement(By.Id("formFiltroMensal:dataInicialAno")));
            UI.Wait(1);

            // Clica em buscar
            UI.Click(driver, By.Id("formFiltroMensal:botaoBuscar"));
        }

        // Aguarda carregar
        UI.WaitPageLoad(driver);

        // "Não há lançamentos/operações para o período selecionado."
        if (UI.IsDisplayed(driver, By.XPath("//table[@class='tabSaldosExtratos']")))
        {
            // Lê o extrato
            var table = UI.WaitForDisplayed(driver, By.XPath("//table[@class='tabSaldosExtratos']"));

            IList <IWebElement> trs = table.FindElement(By.TagName("tbody")).FindElements(By.TagName("tr"));
            string data             = null;

            foreach (IWebElement tr in trs)
            {
                IList <IWebElement> tds = tr.FindElements(By.TagName("td"));

                if (!string.IsNullOrWhiteSpace(tds[0].Text))
                {
                    data = tds[0].Text;
                }

                var extrato = new Extrato();
                extrato.conta = conta;
                extrato.data  = DateTime.ParseExact(data, "dd/MM/yy", CultureInfo.InvariantCulture);
                if (extrato.data > DateTime.Now)
                {
                    continue;
                }

                var    spans     = tds[1].FindElements(By.TagName("span"));
                string descricao = spans[0].Text.Trim();
                if (spans.Count > 1)
                {
                    descricao += " " + spans[1].Text.Trim();
                }
                extrato.descricao = ExtratoHelper.GetDescricao(descricao);

                if (extrato.descricao != null)
                {
                    decimal?nullable;
                    extrato.credito = string.IsNullOrWhiteSpace(tds[3].Text) ? ((decimal?)(nullable = null)) : new decimal?(decimal.Parse(tds[3].Text, NumberStyles.Currency, cultureBR));
                    extrato.debito  = string.IsNullOrWhiteSpace(tds[4].Text) ? ((decimal?)(nullable = null)) : new decimal?(-1 * decimal.Parse(tds[4].Text.Replace("-", "").Trim(), NumberStyles.Currency, cultureBR));
                    if (tipoLink == TipoLink.Por_Periodo)
                    {
                        extrato.saldo = string.IsNullOrWhiteSpace(tds[5].Text) ? ((decimal?)(nullable = null)) : new decimal?(decimal.Parse(tds[5].Text.Replace("- ", "-"), NumberStyles.Currency, cultureBR));
                    }
                    ExtratoHelper.AddExtrato(ref extratos, extrato);
                }
            }
        }
        return(extratos);
    }
예제 #7
0
        private TipoLink RecuperaObjetoTipoLink(MySqlDataReader dr)
        {
            TipoLink tipoLink = new TipoLink();

            tipoLink.id = CastDB<int>(dr, "id_Tipo_Link");
            tipoLink.nome = CastDB<string>(dr, "nm_Tipo_Link");
            return tipoLink;
        }
예제 #8
0
        public static MvcHtmlString MTCBotonGrillaModal(this HtmlHelper helper, string accion, string controlador, string id, TipoLink tipo = TipoLink.Editar, bool imagen = false, int alto = 540, int ancho = 600, object htmlAttributes = null, object routeValues = null, string toolTip = "")
        {
            var accionActual      = helper.ViewContext.RouteData.GetRequiredString("action");
            var controladorActual = helper.ViewContext.RouteData.GetRequiredString("controller");
            var urlHelper         = new UrlHelper(helper.ViewContext.RequestContext);

            if (string.IsNullOrEmpty(accion))
            {
                accion = accionActual;
            }
            if (string.IsNullOrEmpty(controlador))
            {
                controlador = controladorActual;
            }

            var inputText = new TagBuilder("input");

            inputText.Attributes.Add("id", id);
            inputText.Attributes.Add("type", "button");
            inputText.AddCssClass(ObtenerClaseLinkGrilla(tipo));
            //inputText.AddCssClass("modalMTC btnGrilla");
            inputText.AddCssClass("modalMTC btn_icons");
            if (toolTip != "")
            {
                inputText.Attributes.Add("data-toggle", "tooltip");
                inputText.Attributes["title"] = toolTip;
            }

            inputText.Attributes["data-url"] = urlHelper.Action(accion, controlador, routeValues);
            if (htmlAttributes != null)
            {
                LlenarValores(inputText, htmlAttributes);
            }
            inputText.Attributes["data-ancho"] = ancho.ToString();
            inputText.Attributes["data-alto"]  = alto.ToString();
            return(MvcHtmlString.Create(inputText.ToString()));
        }
예제 #9
0
        public static MvcHtmlString MTCBotonGrilla(this HtmlHelper helper, string texto, string id, TipoLink tipo = TipoLink.Editar, bool imagen = false, object htmlAttributes = null, string toolTip = "")
        {
            var inputText = new TagBuilder("input");

            inputText.Attributes.Add("id", id);
            inputText.Attributes.Add("type", "button");
            if (!imagen)
            {
                inputText.SetInnerText(texto);
            }
            //inputText.AddCssClass("btnGrilla");
            inputText.AddCssClass("btn_icons");

            if (toolTip != "")
            {
                inputText.Attributes.Add("data-toggle", "tooltip");
                inputText.Attributes["title"] = toolTip;
            }

            inputText.AddCssClass(ObtenerClaseLinkGrilla(tipo));

            if (htmlAttributes != null)
            {
                LlenarValores(inputText, htmlAttributes);
            }
            return(MvcHtmlString.Create(inputText.ToString()));
        }
예제 #10
0
        public static MvcHtmlString MTCBotonModal(this HtmlHelper helper, string texto, string accion, string controlador, string idContenedor, TipoLink tipo = TipoLink.Editar, bool imagen = false, int alto = 540, int ancho = 600, object routeValues = null, object htmlAttributes = null, bool Url = true)
        {
            var accionActual      = helper.ViewContext.RouteData.GetRequiredString("action");
            var controladorActual = helper.ViewContext.RouteData.GetRequiredString("controller");

            var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
            var link      = new TagBuilder("a")
            {
                InnerHtml = texto
            };

            if (string.IsNullOrEmpty(accion))
            {
                accion = accionActual;
            }
            if (string.IsNullOrEmpty(controlador))
            {
                controlador = controladorActual;
            }

            if (htmlAttributes != null)
            {
                LlenarValores(link, htmlAttributes);
            }

            link.Attributes["data-ancho"] = ancho.ToString();
            link.Attributes["data-alto"]  = alto.ToString();

            if (Url)
            {
                link.Attributes["data-url"] = urlHelper.Action(accion, controlador, routeValues);
            }
            else
            {
                link.Attributes["role"]        = "button";
                link.Attributes["data-toggle"] = "modal";
            }

            link.Attributes["href"] = "#" + idContenedor;

            link.AddCssClass(ObtenerClaseLink(tipo));
            //link.AddCssClass("btn");

            if (imagen)
            {
                link.AddCssClass("modalMTC");
            }
            else
            {
                link.AddCssClass("btn modalMTC");
            }

            return(MvcHtmlString.Create(link.ToString()));
        }
예제 #11
0
        public static MvcHtmlString MTCBoton(this HtmlHelper helper, string texto, string id, TipoLink tipo = TipoLink.Editar, bool imagen = false, object htmlAttributes = null)
        {
            var inputText = new TagBuilder("input");

            inputText.Attributes.Add("id", id);
            inputText.Attributes.Add("type", "button");
            if (!imagen)
            {
                inputText.SetInnerText(texto);
            }
            inputText.AddCssClass(ObtenerClaseLink(tipo));

            if (htmlAttributes != null)
            {
                LlenarValores(inputText, htmlAttributes);
            }



            return(MvcHtmlString.Create(inputText.ToString()));
        }
예제 #12
0
        public static MvcHtmlString MTCActionLink(this HtmlHelper helper, string accion, string controlador, TipoLink tipo = TipoLink.Editar_Span, object routeValues = null, object htmlAttributes = null, string toolTip = "")
        {
            var accionActual      = helper.ViewContext.RouteData.GetRequiredString("action");
            var controladorActual = helper.ViewContext.RouteData.GetRequiredString("controller");

            var spanText = new TagBuilder("span");

            spanText.AddCssClass(ObtenerClaseLink(tipo));

            var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
            var link      = new TagBuilder("a")
            {
                InnerHtml = spanText.ToString()
            };

            if (string.IsNullOrEmpty(accion))
            {
                accion = accionActual;
            }
            if (string.IsNullOrEmpty(controlador))
            {
                controlador = controladorActual;
            }

            link.Attributes["href"]  = urlHelper.Action(accion, controlador, routeValues);
            link.Attributes["title"] = toolTip;

            if (htmlAttributes != null)
            {
                LlenarValores(spanText, htmlAttributes);
            }
            //link.MergeAttributes(new RouteValueDictionary(htmlAttributes));
            return(MvcHtmlString.Create(link.ToString()));
        }