Пример #1
0
        private IQueryOver<Cliente, Cliente> ConstruirQuery(ClienteFiltroVm filtro)
        {
            Usuario usuarioConectado = _usuarios.UsuarioConectado();

            ClienteVenda areaDeVenda = null;
            Cliente cliente = null;

            IQueryOver<Cliente, Cliente> queryOver = _unitOfWorkNh.Session.QueryOver<Cliente>(() => cliente);

            queryOver.Where(
                Restrictions.Disjunction()
                    .Add(() => cliente.Eliminacao == null)
                    .Add(() => cliente.Eliminacao != "X"));

            if (!string.IsNullOrEmpty(filtro.Nome))
            {
                queryOver = queryOver.Where(x => x.Nome.IsInsensitiveLike(filtro.Nome, MatchMode.Anywhere));
            }

            if (!string.IsNullOrEmpty(filtro.Cnpj))
            {
                queryOver = queryOver.Where(x => x.Cnpj.IsInsensitiveLike(filtro.Cnpj, MatchMode.Anywhere));
            }

            if (!string.IsNullOrEmpty(filtro.Cpf))
            {
                queryOver = queryOver.Where(x => x.Cpf.IsInsensitiveLike(filtro.Cpf, MatchMode.Anywhere));
            }

            if (!string.IsNullOrEmpty(filtro.Codigo))
            {
                queryOver = queryOver.Where(x => x.Id_cliente.IsInsensitiveLike(filtro.Codigo, MatchMode.Anywhere));
            }

            if (!string.IsNullOrEmpty(filtro.Municipio))
            {
                queryOver = queryOver.Where(x => x.Municipio.IsInsensitiveLike(filtro.Municipio, MatchMode.Anywhere));
            }

            QueryOver<ClienteVenda, ClienteVenda> subQuery = QueryOver
                .Of<ClienteVenda>(() => areaDeVenda)
                .Where(Restrictions.EqProperty(Projections.Property(() => areaDeVenda.Cliente.Id_cliente),
                    Projections.Property(() => cliente.Id_cliente)))
                .Where(() => areaDeVenda.Fornecedor.Codigo == usuarioConectado.CodigoDoFornecedor)
                .Select(Projections.Property(() => areaDeVenda.Id));

            queryOver.WithSubquery.WhereExists(subQuery);

            return queryOver;

        }
Пример #2
0
        public KendoGridVm Listar(PaginacaoVm paginacaoVm, ClienteFiltroVm filtro)
        {

            var queryOver = ConstruirQuery(filtro);

            Cliente cliente = null;
            ClienteCadastroVm clienteVm = null;

            queryOver.SelectList(lista => lista
                .Select(x => cliente.Cnpj).WithAlias(() => clienteVm.Cnpj)
                .Select(x => cliente.Cpf).WithAlias(() => clienteVm.Cpf)
                .Select(x => cliente.Complemento).WithAlias(() => clienteVm.complemento)
                .Select(x => cliente.Email).WithAlias(() => clienteVm.email)
                .Select(x => cliente.Endereco).WithAlias(() => clienteVm.endereco)
                .Select(x => cliente.Id_cliente).WithAlias(() => clienteVm.id_cliente )
                .Select(x => cliente.Municipio).WithAlias(() => clienteVm.municipio)
                .Select(x => cliente.Nome).WithAlias(() => clienteVm.nome)
                .Select(x => cliente.Nr_ie_cli).WithAlias(() => clienteVm.nr_ie_for)
                .Select(x => cliente.Numero).WithAlias(() => clienteVm.numero)
                .Select(x => cliente.Pais).WithAlias(() => clienteVm.pais)
                .Select(x => cliente.Tel_cel).WithAlias(() => clienteVm.tel_cel)
                .Select(x => cliente.Tel_res).WithAlias(() => clienteVm.tel_res)
                .Select(x => cliente.Uf).WithAlias(() => clienteVm.uf)
                );

            var kendoGridVm = new KendoGridVm()
            {
                QuantidadeDeRegistros = queryOver.RowCount(),
                Registros = queryOver
                    .TransformUsing(Transformers.AliasToBean<ClienteCadastroVm>())
                    .Skip(paginacaoVm.Skip)
                    .Take(paginacaoVm.Take)
                    .List<ClienteCadastroVm>()
                    .Cast<ListagemVm>()
                    .ToList()
            };

            return kendoGridVm;

        }
Пример #3
0
        public KendoGridVm ListarParaSelecao(PaginacaoVm paginacaoVm, ClienteFiltroVm filtro)
        {
            var queryOver = ConstruirQuery(filtro);

            Cliente cliente = null;
            ClienteParaSelecaoVm clienteVm = null;

            queryOver.SelectList(lista => lista
                .Select(x => cliente.Id_cliente).WithAlias(() => clienteVm.Codigo)
                .Select(x => cliente.Nome).WithAlias(() => clienteVm.Nome)
                .Select(x => cliente.Cnpj).WithAlias(() => clienteVm.Cnpj)
                .Select(x => cliente.Cpf).WithAlias(() => clienteVm.Cpf)
                .Select(x => cliente.Municipio).WithAlias(() => clienteVm.Municipio)
                .Select(x => cliente.Uf).WithAlias(() => clienteVm.Uf)
                .Select(x => cliente.Tel_res).WithAlias(() => clienteVm.Telefone)
                );

            var kendoGridVm = new KendoGridVm()
            {
                QuantidadeDeRegistros = queryOver.RowCount(),
                Registros = queryOver
                    .TransformUsing(Transformers.AliasToBean<ClienteParaSelecaoVm>())
                    .Skip(paginacaoVm.Skip)
                    .Take(paginacaoVm.Take)
                    .List<ClienteParaSelecaoVm>()
                    .Cast<ListagemVm>()
                    .ToList()
            };

            return kendoGridVm;
        }
 public JsonResult ListarClienteParaSelecao(PaginacaoVm paginacaoVm, ClienteFiltroVm filtro)
 {
     KendoGridVm kendoGridVm = _consultaCliente.ListarParaSelecao(paginacaoVm, filtro);
     return Json(kendoGridVm, JsonRequestBehavior.AllowGet);
 }