public ActionResult grid(FiltroPesquisa pesq, int page = 1, int pageSize = 4)
        {
            PagedList <Lista_Produtos2> pageList;

            using (null)
            {
                ProdutoDao dao = new ProdutoDao();
                IList <Lista_Produtos2>    listaProdutos;
                IList <FiltroDesconto>     filtroDesconto;
                IList <FiltroPrecoProduto> filtroPrecoProduto;
                IList <FiltroOrder>        filtroOrder;
                dao.ltProdutos(pesq, out listaProdutos, out filtroDesconto, out filtroPrecoProduto, out filtroOrder);

                //Paginação da webSite.
                PagedList <Lista_Produtos2> pl = new PagedList <Lista_Produtos2>(listaProdutos, page, pageSize);
                //ViewBag.listaProdutos = pageList;

                pageList = pl;

                ViewBag.filtroDesconto     = filtroDesconto;
                ViewBag.filtroPrecoProduto = filtroPrecoProduto;
                ViewBag.foCount            = filtroOrder.Count();
                ViewBag.filtroOrder        = filtroOrder;

                ViewBag.pesq              = pesq;
                ViewBag.VerificaFDesc     = pesq.desc;
                ViewBag.VerificaFPProduto = pesq.preco;
                ViewBag.page              = page;
                //ViewBag.order = Order;
            }
            return(View(pageList));
        }
Esempio n. 2
0
        public string TesteAcesso()
        {
            try
            {
                using (CadsusServicePortTypeClient consultaCNS = new CadsusServicePortTypeClient("CadsusServicePort"))
                {
                    //Atribui usuário e senha de acesso ao WebService
                    consultaCNS.ClientCredentials.UserName.UserName = "******";
                    consultaCNS.ClientCredentials.UserName.Password = "******";

                    //Parâmetros de Pesquisa padrão
                    requestPesquisar paramsPesquisa = new requestPesquisar();

                    FiltroPesquisa filtroPesquisa = new FiltroPesquisa();
                    filtroPesquisa.nomeCompleto = new NomeCompletoType()
                    {
                        Nome = "SERGIO ARAUJO CORREIA LIMA"
                    };
                    filtroPesquisa.tipoPesquisa = TipoPesquisaType.IDENTICA;

                    paramsPesquisa.FiltroPesquisa = filtroPesquisa;
                    paramsPesquisa.CNESUsuario    = new CNESUsuarioType()
                    {
                        CNES = "6963447", Usuario = "LEONARDO"
                    };
                    paramsPesquisa.higienizar = false;

                    ResultadoPesquisa[] result = consultaCNS.pesquisar(paramsPesquisa);
                }
            }
            catch (System.ServiceModel.FaultException <AcessoDATASUSv2.SvcAcessoDATASUS.MSFalha> errWS)
            {
                List <string> arMsgsErro = new List <string>();
                foreach (MensagemType msgErrosWS in errWS.Detail.Mensagem)
                {
                    arMsgsErro.Add(msgErrosWS.descricao);
                }

                return("A consulta retornou a(s) seguinte(s) mensagem(ns): " + String.Join(" / ", arMsgsErro.ToArray()));
            }
            catch (Exception ex)
            {
                return("ERRO -> " + ex.Message);
            }
            return("OK");
        }
Esempio n. 3
0
        public DataTable ConsultaFederal(string pNome, string pNomeMae, string pNomePai, DateTime pDataNascimento, string pNumeroCNS, string pCPF, out string msgRetorno)
        {
            msgRetorno = String.Empty;

            /*DataTable de retorno*/
            DataTable dtRet = new DataTable();

            dtRet.Columns.Add(new DataColumn("NOME", typeof(System.String)));
            dtRet.Columns.Add(new DataColumn("NOME_MAE", typeof(System.String)));
            dtRet.Columns.Add(new DataColumn("NOME_PAI", typeof(System.String)));
            dtRet.Columns.Add(new DataColumn("DATA_NASCIMENTO", typeof(System.DateTime)));
            dtRet.Columns.Add(new DataColumn("TIPO_CARTAO", typeof(System.String)));
            dtRet.Columns.Add(new DataColumn("NUMERO_CARTAO", typeof(System.String)));
            dtRet.Columns.Add(new DataColumn("MUNICIPIO_RESIDENCIA", typeof(System.String)));
            dtRet.Columns.Add((new DataColumn("ORIGEM_DADO", typeof(System.String))));

            //Chamada ao WebService do DATASUS
            try
            {
                using (CadsusServicePortTypeClient consultaCNS = new CadsusServicePortTypeClient(ConfigurationManager.AppSettings["EndpointConsultaCNSConfig"].ToString()))
                {
                    //Atribui usuário e senha de acesso ao WebService e dados do Estabelecimento de Saúde
                    consultaCNS.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["UserNameWebServiceDATASUS"].ToString();
                    consultaCNS.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["PasswordWebServiceDATASUS"].ToString();

                    CNESUsuarioType dadosCNES = new CNESUsuarioType()
                    {
                        CNES = ConfigurationManager.AppSettings["CNESWebServiceDATASUS"].ToString(), Usuario = ConfigurationManager.AppSettings["UsuarioCNESWebServiceDATASUS"].ToString()
                    };

                    //Caso o nº do CNS seja informado, é outro tipo de consulta, específica (outro método do WS a ser chamado). A abaixo é a consulta por outros dados
                    if (String.IsNullOrEmpty(pNumeroCNS))
                    {
                        //Inicializa filtro de pesquisa
                        FiltroPesquisa filtroPesquisa = new FiltroPesquisa();
                        filtroPesquisa.tipoPesquisa = TipoPesquisaType.APROXIMADA;

                        if (!String.IsNullOrEmpty(pNome))
                        {
                            filtroPesquisa.nomeCompleto = new NomeCompletoType()
                            {
                                Nome = pNome
                            }
                        }
                        ;
                        if (!String.IsNullOrEmpty(pNomeMae))
                        {
                            filtroPesquisa.Mae = new NomeCompletoType()
                            {
                                Nome = pNomeMae
                            }
                        }
                        ;
                        if (!String.IsNullOrEmpty(pNomePai))
                        {
                            filtroPesquisa.Pai = new NomeCompletoType()
                            {
                                Nome = pNomePai
                            }
                        }
                        ;
                        if (!pDataNascimento.Equals(DateTime.MinValue))
                        {
                            filtroPesquisa.dataNascimento = pDataNascimento;
                        }
                        if (!String.IsNullOrEmpty(pCPF))
                        {
                            filtroPesquisa.CPF = new CPFType()
                            {
                                numeroCPF = pCPF
                            }
                        }
                        ;

                        //Prepara objeto para fazer a requisição ao WebService
                        requestPesquisar paramsPesquisa = new requestPesquisar();
                        paramsPesquisa.FiltroPesquisa = filtroPesquisa;
                        paramsPesquisa.CNESUsuario    = dadosCNES;
                        paramsPesquisa.higienizar     = false;

                        //Chamada ao WebService
                        ResultadoPesquisa[] resultWS = consultaCNS.pesquisar(paramsPesquisa);

                        //Transporta resultados para o DataTable de retorno. Se a pesquisa não retornou registros, é disparada uma exceção que é tratada no primeiro "catch".
                        foreach (ResultadoPesquisa result in resultWS)
                        {
                            string munResidencia = "NÃO DISPONÍVEL";
                            if (result.MunicipioResidencia != null)
                            {
                                munResidencia = String.Format("{0} - {1}", result.MunicipioResidencia.codigoMunicipio, result.MunicipioResidencia.nomeMunicipio);
                            }

                            dtRet.Rows.Add(
                                result.NomeCompleto.Nome,
                                result.Mae.Nome,
                                result.Pai.Nome,
                                result.dataNascimento,
                                (result.CNS.tipoCartao.Equals(TipoCNSType.D) ? "DEFINITIVO" : "PROVISORIO"),
                                result.CNS.numeroCNS,
                                munResidencia,
                                "BASE FEDERAL");
                        }
                    }
                    else //Consulta específica por número de Cartão SUS.
                    {
                        //Filtro de Pesquisa
                        CNSType filtroConsulta = new CNSType();
                        filtroConsulta.numeroCNS = pNumeroCNS;

                        //Prepara objeto para requisição ao WebService
                        requestConsultar paramsConsulta = new requestConsultar();
                        paramsConsulta.CNESUsuario = dadosCNES;
                        paramsConsulta.CNS         = filtroConsulta;

                        responseConsultar resultWS = consultaCNS.consultar(paramsConsulta);

                        foreach (CNSType cartao in resultWS.UsuarioSUS.Cartoes)
                        {
                            //Coloca registro no DataTable de retorno: para cada nº do cartão do SUS encontrado.
                            dtRet.Rows.Add(
                                resultWS.UsuarioSUS.NomeCompleto.Nome,
                                (resultWS.UsuarioSUS.Mae != null) ? resultWS.UsuarioSUS.Mae.Nome : "NÃO DISPONÍVEL",
                                (resultWS.UsuarioSUS.Pai != null) ? resultWS.UsuarioSUS.Pai.Nome : "NÃO DISPONIVEL",
                                resultWS.UsuarioSUS.dataNascimento,
                                cartao.tipoCartao.Equals(TipoCNSType.D) ? "DEFINITIVO" : "PROVISÓRIO",
                                cartao.numeroCNS,
                                (resultWS.UsuarioSUS.Enderecos.Endereco.Municipio != null) ? String.Format("{0} - {1}", resultWS.UsuarioSUS.Enderecos.Endereco.Municipio.codigoMunicipio, resultWS.UsuarioSUS.Enderecos.Endereco.Municipio.nomeMunicipio) : "NÃO DISPONÍVEL",
                                "BASE FEDERAL"
                                );
                        }
                    }
                }
            }
            catch (System.ServiceModel.FaultException <AcessoDATASUSv2.SvcAcessoDATASUS.MSFalha> errWS) //Erros enviados pelo WebService
            {
                List <string> arMsgsErro = new List <string>();
                foreach (MensagemType msgErrosWS in errWS.Detail.Mensagem)
                {
                    arMsgsErro.Add(msgErrosWS.descricao);
                }

                msgRetorno = "A consulta retornou a(s) seguinte(s) mensagem(ns): " + String.Join(" / ", arMsgsErro.ToArray());
                dtRet      = null;
            }
            catch (Exception ex) //Erro geral da aplicação
            {
                msgRetorno = "[ERRO] " + ex.Message;
                dtRet      = null;
            }

            return(dtRet);
        }
Esempio n. 4
0
        public void ltProdutos(FiltroPesquisa pesq,
                               out IList <Lista_Produtos2> IlistaProdutos,
                               out IList <FiltroDesconto> IfiltroDesconto,
                               out IList <FiltroPrecoProduto> IfiltroPrecoProduto,
                               out IList <FiltroOrder> IfiltroOrder)
        {
            IList <String> IDesc = null;

            if (!String.IsNullOrEmpty(pesq.desc))
            {
                IDesc = pesq.desc.Split(',');
            }

            IList <String> IPreco = null;

            if (!String.IsNullOrEmpty(pesq.preco))
            {
                IPreco = pesq.preco.Split(',');
            }

            using (var dao = new EntidadeContext())
            {
                #region LISTA DE PRODUTOS

                //Order estabelece tipo de categória que ele é.
                //Ex: categória, Subcategoria ou Subcategoria2.
                IList <Lista_Produtos2> lista = dao.Lista_Produtos2.ToList();
                #endregion

                #region FILTRO CATEGÓRIA

                //if (pesq.busca != null)
                if (!String.IsNullOrEmpty(pesq.busca))
                {
                    List <Lista_Produtos2> linha = new List <Lista_Produtos2>();
                    foreach (var lt in lista)
                    {
                        bool item = Regex.IsMatch(lt.Titulo_produto.ToLower(), pesq.busca.ToLower());
                        if (item)
                        {
                            linha.Add(lt);
                        }
                    }
                    lista = linha;
                }

                var FiltroCat = (from gd in lista
                                 select new
                {
                    gd.id_categoria,
                    gd.nm_categoria,
                    gd.id_subcategoria,
                    gd.nm_subcategoria,
                    gd.id_subcategoria2,
                    gd.nm_subcategoria2,
                });

                List <FiltroOrder> filtroOrder = new List <FiltroOrder>();
                foreach (var gd in FiltroCat)
                {
                    FiltroOrder item = new Models.FiltraDados.FiltroOrder();
                    Categoria   cat  = new Categoria()
                    {
                        id_categoria = gd.id_categoria,
                        nm_categoria = gd.nm_categoria
                    };
                    Subcategoria subcat = new Subcategoria()
                    {
                        id_categoria    = gd.id_categoria,
                        id_subcategoria = gd.id_subcategoria,
                        nm_subcategoria = gd.nm_subcategoria
                    };
                    Subcategoria2 subcat2 = new Subcategoria2()
                    {
                        id_categoria     = gd.id_categoria,
                        id_subcategoria2 = gd.id_subcategoria2,
                        nm_subcategoria2 = gd.nm_subcategoria2
                    };

                    item.categorias     = cat;
                    item.Subcategorias  = subcat;
                    item.Subcategorias2 = subcat2;

                    filtroOrder.Add(item);
                }

                //OBS: O FINAL DESSE CÓDIGO SE ENCONTRA EM "FILTRO (PESQUISA DA PÁGINA)"
                #endregion

                #region FILTRO (PESQUISA DA PÁGINA)

                //OBS: A "order" representa a horientação entre a Categória, Subcategoria e Subcategoria2
                // 1 = Categória, 2 = Subcategoria, 3 = Subcategoria2.
                List <FiltroOrder> itemOrder = new List <FiltroOrder>();
                switch (pesq.or)
                {
                //E a todo categória.
                case 0:
                    //Lista de produtos.
                    IlistaProdutos = listaProdutosCheckList(lista, IDesc, IPreco);

                    //Filtro de desconto.
                    IfiltroDesconto = filtroDescReturno(lista);

                    //Filtro preço produto.
                    IfiltroPrecoProduto = FiltroPrProdutoRetorno(lista, IDesc);

                    //Filtro categória.
                    var cat = (from gd in filtroOrder.Where(p => p.categorias.id_categoria != 1)
                               group gd by new
                    {
                        gd.categorias.id_categoria,
                        gd.categorias.nm_categoria
                    }
                               into grd
                               where (grd.Key.nm_categoria != null)
                               select new
                    {
                        grd.Key.id_categoria,
                        grd.Key.nm_categoria,
                        total = grd.Count()
                    });
                    foreach (var i in cat)
                    {
                        FiltroOrder ab   = new FiltroOrder();
                        Categoria   cat1 = new Categoria()
                        {
                            id_categoria = i.id_categoria,
                            nm_categoria = i.nm_categoria
                        };
                        ab.categorias = cat1;
                        ab.total      = i.total;

                        //Número da próxima order para ser inserido no botão.
                        ab.or = 1;
                        itemOrder.Add(ab);
                    }
                    IfiltroOrder = itemOrder;
                    break;

                //E a SubCategória.
                case 1:

                    //Lista de produtos.
                    IlistaProdutos = listaProdutosCheckList(lista.Where(list => list.id_categoria == pesq.id).ToList(), IDesc, IPreco);

                    //Filtro de desconto.
                    IfiltroDesconto = filtroDescReturno(lista.Where(list => list.id_categoria == pesq.id).ToList());

                    //Filtro preço produto.
                    IfiltroPrecoProduto = FiltroPrProdutoRetorno(lista.Where(list => list.id_categoria == pesq.id).ToList(), IDesc);

                    //Filtro categória.
                    //IfiltroOrder = filtroOrder.Where(list => list.categorias.id_categoria == pesq.id).ToList();
                    var subCat = (from gd in filtroOrder.Where(p => p.Subcategorias.id_subcategoria != 1)
                                  group gd by new
                    {
                        gd.categorias.id_categoria,
                        gd.Subcategorias.id_subcategoria,
                        gd.Subcategorias.nm_subcategoria,
                    } into grd
                                  where (grd.Key.nm_subcategoria != null && grd.Key.id_categoria == pesq.id)
                                  select new
                    {
                        grd.Key.id_subcategoria,
                        grd.Key.nm_subcategoria,
                        total = grd.Count()
                    });
                    foreach (var i in subCat)
                    {
                        FiltroOrder  ab      = new FiltroOrder();
                        Subcategoria subCat1 = new Subcategoria()
                        {
                            id_subcategoria = i.id_subcategoria,
                            nm_subcategoria = i.nm_subcategoria
                        };
                        ab.Subcategorias = subCat1;
                        ab.total         = i.total;

                        //Número da próxima order para ser inserido no botão.
                        ab.or = pesq.or + 1;
                        itemOrder.Add(ab);
                    }
                    IfiltroOrder = itemOrder;
                    break;

                //E a Subcategoria2.
                case 2:
                    //Lista de produtos.
                    IlistaProdutos = listaProdutosCheckList(lista.Where(list => list.id_subcategoria == pesq.id).ToList(), IDesc, IPreco);

                    //Filtro de desconto
                    IfiltroDesconto = filtroDescReturno(lista.Where(list => list.id_subcategoria == pesq.id).ToList());;

                    //Filtro preço produto.
                    IfiltroPrecoProduto = FiltroPrProdutoRetorno(lista.Where(list => list.id_subcategoria == pesq.id).ToList(), IDesc);

                    //Filtro categória.
                    //IfiltroOrder = filtroOrder;
                    var subCat2 = (from gd in filtroOrder.Where(p => p.Subcategorias.id_subcategoria != 1 && p.Subcategorias2.id_subcategoria2 != 1)
                                   group gd by new
                    {
                        gd.Subcategorias.id_subcategoria,
                        gd.Subcategorias2.id_subcategoria2,
                        gd.Subcategorias2.nm_subcategoria2
                    } into grd
                                   where (grd.Key.nm_subcategoria2 != null && grd.Key.id_subcategoria == pesq.id)
                                   select new
                    {
                        grd.Key.id_subcategoria2,
                        grd.Key.nm_subcategoria2,
                        total = grd.Count()
                    });
                    foreach (var i in subCat2)
                    {
                        FiltroOrder   ab       = new FiltroOrder();
                        Subcategoria2 subCat2a = new Subcategoria2()
                        {
                            id_subcategoria2 = i.id_subcategoria2,
                            nm_subcategoria2 = i.nm_subcategoria2
                        };
                        ab.Subcategorias2 = subCat2a;
                        ab.total          = i.total;

                        //Número da próxima order para ser inserido no botão.
                        ab.or = pesq.or + 1;
                        itemOrder.Add(ab);
                    }
                    IfiltroOrder = itemOrder;
                    break;

                default:
                    //Lista de produtos.
                    IlistaProdutos = null;

                    //Filtro de desconto.
                    IfiltroDesconto = null;

                    //Filtro preço produto.
                    IfiltroPrecoProduto = null;

                    //Filtro Order.
                    IfiltroOrder = null;
                    break;
                }
                #endregion
            }
        }