none
Dificuldade em filtrar informações RRS feed

  • Pergunta

  • Sei que meu problema é lógica e isso deve partir de mim, eu sei, mas às vezes uma luz, não um código pronto, mas o apontar de um caminho nos ajuda bastante.

    1) Tenho 6 ComboBox em minha View que fazem os filtros para uma pesquisa.

    2) Essa pesquisa, deverá montar uns CheckBox's, baseado no filtro passado. Acontece que essa montagem dos checkbox's, a LINQ que trás o resultado é a minha model. Alguns me disseram aqui que passar parâmetro direto para a Model, quebra o paradigma da OO e concordo. Nesse momento começa meu problema.

    3) Estou tendo dificuldade para fazer isso. Preencho os parâmetros na View e via JQuery eu os pego. Agora como eu faço para distribuir para a minha model, de forma que a LINQ seja executada com esses filtros sendo passados no where da LINQ ou Lambda. Abaixo minha Model.

    public static List<MontaArvoreAcao> montaArvoreAcao( )
            {
                RupturaEntities db = new RupturaEntities();
    
                var monta_arvore = (from rup in db.Ruptura
                                    join ap in db.Apresentacao on rup.Codigo_Apresentacao equals (ap.Codigo_Apresentacao)
                                    join mo in db.Motivo on rup.IDMotivo equals (mo.IDMotivo)
                                    join pdv in db.PDV on rup.CodigoPDV equals (pdv.CodigoPDV)
    
                                    where rup.IDMotivo != 6
    
                                    //group rup by new { rup.IDRuptura} into gr
    
                                    select new MontaArvoreAcao
                                    {
                                        IDRuptura = rup.IDRuptura,
                                        DataRuptura = rup.DataRuptura,
                                        IDMotivo = rup.IDMotivo,
                                        Motivo = rup.Motivo.Motivo1,
                                        IDOrigem = rup.IDOrigem,
                                        CodigoPDV = rup.CodigoPDV,
                                        UF = rup.PDV.UF,
                                        Cidade = pdv.Cidade,
                                        CnpjDescricao = pdv.Cnpj + " - " + pdv.Descricao,
                                        Codigo_Apresentacao = rup.Codigo_Apresentacao,
                                        Unidade_Negocio = ap.Unidade_Negocio,
                                        Codigo_Unidade_Negocio = ap.Codigo_Unidade_Negocio,
                                        Franquia = ap.Franquia,
                                        Familia = ap.Familia,
                                        Descricao = ap.Descricao,
                                        Tipo_Rede = pdv.Tipo_PDV,
                                        Farmacia = pdv.Descricao
                                    }).ToList().OrderBy(r => r.IDMotivo);
    
                return monta_arvore.ToList();
            }

    Os parâmetros vindo da View são:

    Estado, Cidade, Tipo_PDV, Descricao, UN, Familia de Produto.
    quarta-feira, 1 de outubro de 2014 12:21

Todas as Respostas

  • Alterei a minha Action para receber parâmetros, conforme vocês estão vendo. Como eu passo?

    public ActionResult Acao(string _uf, string _cidade, string _descricao)
            {
                string user = System.Security.Principal.WindowsIdentity.GetCurrent().Name.Split('\\')[1].Trim();

                ViewBag.User = user;

                ViewData["ListaUn"] = MontaArvoreAcao.CriarListaArvoreUn(_uf,_cidade,_descricao);

                ViewData["ListaFamilia"] = MontaArvoreAcao.CriarListaArvoreFamilia();

                ViewData["ListaProd"] = MontaArvoreAcao.CriarListaArvoreProduto();

                ViewData["ListaPdv"] = MontaArvoreAcao.CriarListaArvorePdv();

                return View(MontaArvoreAcao.montaArvoreAcao());
            }

    quinta-feira, 2 de outubro de 2014 13:31
  • Lembrei-me que via jquery eu faço isso. Já está resolvido.

    function.....

    $.ajax({

    url: '/Controller/Action',

    ......

    data: JSON.stringify({ _uf: $('#cbxUf').val(), _cidade: $('#cbxCidade :selected').text(), _descricao: $('#cbxDescricao :selected').text() }),

    E assim por diante

    })

    quinta-feira, 2 de outubro de 2014 14:09