Ejemplo n.º 1
0
        private static void CreateItensLicitacao(HtmlDocument htmDoc, Licitacao licitacao)
        {
            RService.Log("(CreateItensLicitacao) " + Name + ": Criando itens do objeto da licitação num.. " + licitacao.IdLicitacaoFonte + " at {0}", Path.GetTempPath() + Name + ".txt");

            int      count;
            HtmlNode dadosOc;
            int      rows = 1;

            /*Pega o html da table com o id dgItensOc pra essa OC*/
            dadosOc = htmDoc.DocumentNode.Descendants().FirstOrDefault(x => x.Id == "ctl00_c_area_conteudo_grdv_item");
            /*Percorre as linhas da tabela exceto o Header que tem o atributo class HeaderStyle*/
            foreach (var row in dadosOc.Descendants("tr") /*.Where(x => x.Attributes.Contains("class") && !x.Attributes["class"].Value.Contains("HeaderSt"))*/)
            {
                if (!row.InnerHtml.Contains("th scope="))
                {
                    ItemLicitacao item = new ItemLicitacao();
                    /*Contador usado para as colunas da tabela*/
                    count = 0;
                    /*Percorre cada coluna de uma linha da tabela Intes da Oferta de Compra*/
                    foreach (var data in row.Descendants("td"))
                    {
                        /*A terceira coluna da tabela de Itens da Oferta de Compra contém a descrição do Item.*/
                        switch (count)
                        {
                        case 0:
                            break;

                        case 1:
                            item.Numero = int.Parse(data.InnerText.Trim());
                            break;

                        case 2:
                            item.Codigo = data.InnerText.Trim();
                            break;

                        case 3:
                            string desc = data.InnerText.Trim();
                            item.DescricaoDetalhada = desc;
                            item.Descricao          = desc.Length > 50 ? desc.Substring(0, 50) + "..." : desc;
                            break;

                        case 4:
                            item.Quantidade = int.Parse(data.InnerText.Trim());
                            break;

                        case 5:
                            item.Unidade = data.InnerText.Trim();
                            break;
                        }
                        count++;
                    }

                    item.MargemPreferencia = "0";
                    item.Decreto7174       = "0";
                    licitacao.ItensLicitacao.Add(item);
                    rows++;
                }
            }
        }
Ejemplo n.º 2
0
        private static void CreateItensLicitacao(ChromeDriver web, Licitacao licitacao)
        {
            RService.Log("(CreateItensLicitacao) " + Name + ": Criando itens do objeto da licitação num.. " + licitacao.IdLicitacaoFonte + " at {0}", Path.GetTempPath() + Name + ".txt");
            int count;

            var itens = web.FindElements(By.TagName("tr"));

            //Percorre cada linha da tabela com os itens, cria cada registro no banco e os adiciona à licitação
            foreach (var row in itens)
            {
                var text = row.GetAttribute("style").ToString();
                if (row.GetAttribute("style").Contains("background-color: ") && !row.GetAttribute("style").Contains("color: white; background-color: rgb(107, 105, 107); font-weight: bold;"))
                {
                    count = 0;
                    ItemLicitacao item = new ItemLicitacao();
                    foreach (var td in row.FindElements(By.TagName("td")))
                    {
                        switch (count)
                        {
                        case 0:
                            break;

                        case 1:
                            item.Numero = int.Parse(td.Text);
                            break;

                        case 2:
                            item.Codigo = td.Text;
                            break;

                        case 3:
                            item.DescricaoDetalhada = td.Text;
                            item.Descricao          = item.DescricaoDetalhada.Length > 50 ? item.DescricaoDetalhada.Substring(0, 50) + "..." : item.DescricaoDetalhada;
                            break;

                        case 4:
                            item.Quantidade = int.Parse(td.Text);
                            break;

                        case 5:
                            item.Unidade = td.Text;
                            break;
                        }
                        count++;
                    }
                    item.MargemPreferencia = "0";
                    item.Decreto7174       = "0";
                    licitacao.ItensLicitacao.Add(item);
                }
            }
        }
Ejemplo n.º 3
0
        private static void GetItens(HtmlDocument htmlQuote, Licitacao l)
        {
            try
            {
                foreach (var row in htmlQuote.DocumentNode.Descendants("tr").Where(x => !x.Attributes.Contains("height") && x.Attributes.Contains("class") && x.Attributes["class"].Value.Equals("tex3")))
                {
                    ItemLicitacao item  = new ItemLicitacao();
                    int           count = 0;

                    foreach (var cell in row.ChildNodes.Where(x => x.Name.Equals("td")))
                    {
                        switch (count)
                        {
                        case 0:
                            item.Numero = Convert.ToInt32(cell.InnerText);
                            break;

                        case 1:
                            item.Descricao = cell.InnerText.Replace("\");\r\n      \">", "");
                            string       itemLink   = cell.ChildNodes[0].Attributes["href"].Value.ToString().Split('/')[2];
                            HtmlDocument itemDetail = WebHandle.GetHtmlDocOfPage(string.Format(Constants.CN_COTACAO_LINK, itemLink), Encoding.GetEncoding("ISO-8859-1"));
                            string       descDetail = Regex.Replace(itemDetail.DocumentNode.InnerHtml.ToString().Replace("<br>", "\n"), "<.*?>", String.Empty)
                                                      .Replace("\n\n\n\n  \tCOMPRASNET - O Portal de Compras do Governo Federal :: DESCRIÇÃO COMPLEMENTAR.\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n    function erroLogin(){\n        window.opener.erroLogin();\n        window.close();\n    }\n\n\n\n    function popup(ev, elA, features) {\n        var url, target;\n        url = elA.getAttribute(\"href\");\n        target = elA.getAttribute(\"target\");\n        window.open(url, target, features);\n\n        if (ev.cancelBubble != undefined) { //IE\n            ev.cancelBubble = true; \n            ev.returnValue = false;\n        }\n        if (ev.preventDefault) ev.preventDefault(); //Outros\n    }\n\n\n\n\n\n\nAguarde!\n\n\nDESCRIÇÃO COMPLEMENTAR\n\r\n\r\n", "")
                                                      .Replace("\r\n\r\n\r\n", "\n")
                                                      .Replace("  ", "");
                            item.DescricaoDetalhada = descDetail;
                            break;

                        case 2:
                            item.Quantidade = Convert.ToInt32(cell.InnerText);
                            break;

                        case 3:
                            item.Unidade = cell.InnerText;
                            break;
                        }
                        count++;
                    }
                    item.Decreto7174       = "0";
                    item.MargemPreferencia = "0";

                    l.ItensLicitacao.Add(item);
                }
            }
            catch (Exception e)
            {
                RService.Log("Exception (GetItens) " + Name + ": " + e.Message + " / " + e.StackTrace + " / " + e.InnerException + " at {0}", Path.GetTempPath() + Name + ".txt");
            }
        }
Ejemplo n.º 4
0
        private static void CreateItensAlternateId(HtmlDocument htmDoc, Licitacao licitacao, ref int count, ref int rows)
        {
            HtmlNode dadosOc = htmDoc.DocumentNode.Descendants().SingleOrDefault(x => x.Id == "ctl00_conteudo_loteGridItens_grdLote");

            foreach (var row in dadosOc.Descendants("tr"))
            {
                if (row.Attributes.Contains("class") && row.Attributes["class"].Value.Contains("HeaderStyle"))
                {
                    continue;
                }

                ItemLicitacao item = new ItemLicitacao();
                /*Contador usado para as colunas da tabela*/
                count = 0;
                /*Percorre cada coluna de uma linha da tabela Intes da Oferta de Compra*/
                foreach (var data in row.Descendants("td"))
                {
                    /*A quarta coluna da tabela de Itens da Oferta de Compra contém a descrição do Item.*/
                    switch (count)
                    {
                    case 2:
                        item.Numero = int.Parse(data.InnerText.Trim());
                        break;

                    case 3:
                        string desc = data.InnerText.Trim();
                        item.Descricao          = desc.Length > 50 ? desc.Substring(0, 50) + "..." : desc;
                        item.DescricaoDetalhada = desc;
                        break;

                    case 4:
                        item.Quantidade = int.Parse(data.InnerText.Trim().Replace(".", ""));
                        break;

                    case 1:
                        item.Unidade = "GRUPO";
                        break;
                    }
                    count++;
                }

                licitacao.ItensLicitacao.Add(item);
                rows++;
            }
        }
Ejemplo n.º 5
0
        private static void CreateItens(Licitacao licitacao, ref int count, ref int rows, HtmlNode dadosOc)
        {
            foreach (var row in dadosOc.Descendants("tr"))
            {
                if (row.Attributes.Contains("class") && row.Attributes["class"].Value.Contains("HeaderStyle"))
                {
                    continue;
                }

                ItemLicitacao item = new ItemLicitacao();
                /*Contador usado para as colunas da tabela*/
                count = 0;
                /*Percorre cada coluna de uma linha da tabela Intes da Oferta de Compra*/
                foreach (var data in row.Descendants("td"))
                {
                    /*A quarta coluna da tabela de Itens da Oferta de Compra contém a descrição do Item.*/
                    switch (count)
                    {
                    case 2:
                        item.Numero = int.Parse(data.InnerText.Trim());
                        break;

                    case 4:
                        string desc = data.InnerText.Trim();
                        item.Descricao          = desc.Length > 50 ? desc.Substring(0, 50) + "..." : desc;
                        item.DescricaoDetalhada = desc;
                        break;

                    case 5:
                        item.Quantidade = int.Parse(data.InnerText.Trim().Replace(".", ""));
                        break;

                    case 6:
                        item.Unidade = data.InnerText.Trim();
                        break;
                    }
                    count++;
                }

                licitacao.ItensLicitacao.Add(item);
                rows++;
            }
        }