Beispiel #1
0
        public Task <IEnumerable <dynamic> > GetDataTable(string SearchText   = null, int NrRegistros = 50,
                                                          bool TodosRegistros = false, string Ordem   = "Ascendente", bool Inativos = true, bool Servicos = false)
        {
            var search = "%" + SearchText + "%";

            var query = new Model.Item().Query();

            query.LeftJoin("categoria", "categoria.id", "item.categoriaid")
            .Select("item.id", "item.nome", "item.referencia", "item.codebarras", "item.valorcompra",
                    "item.valorvenda", "item.estoqueatual", "item.medida", "categoria.nome as categoria")
            .Where("item.excluir", 0)
            //.Where("item.tipo", "Produtos")
            .Where
            (
                q => q.WhereLike("item.nome", search, true).OrWhere("item.referencia", "like", search).OrWhere("item.codebarras", "like", search).OrWhere("categoria.nome", "like", search)
            );

            if (!Servicos)
            {
                query.Where("item.tipo", "Produtos");
            }

            switch (Ordem)
            {
            case "Z-A":
                query.OrderByDesc("item.nome");
                break;

            case "A-Z":
                query.OrderByRaw("item.nome ASC");
                break;

            case "Aleatório":
                query.OrderByRaw("RAND()");
                break;
            }

            if (!TodosRegistros)
            {
                query.Limit(NrRegistros);
            }

            if (!Inativos)
            {
                query.Where
                (
                    q => q.Where("item.ativo", "0").OrWhereNull("item.ativo")
                );
            }


            return(query.GetAsync <dynamic>());
        }