public async Task <ActionResult> SearchLogs(StockFilterViewModel filter)
        {
            Guid business_working = Guid.Parse(Session["BusinessWorking"].ToString());

            List <LogModel> result            = new List <LogModel>();
            long            totalRowsFiltered = 0;
            long            totalRows         = await applicationDbContext.ActivityLogs.CountAsync(x => x.Business_Id == business_working);

            List <ActivityLog> model;

            var entity = applicationDbContext.ActivityLogs.Include("User").Include("ActivityLogType").Where(x => x.Business_Id == business_working);

            if (!string.IsNullOrEmpty(filter.type))
            {
                int typeId = int.Parse(filter.type);

                totalRows = await applicationDbContext.ActivityLogs.CountAsync(x => x.Business_Id == business_working && x.ActivityLogType_Id == typeId);

                entity = entity.Where(x => x.Business_Id == business_working && x.ActivityLogType_Id == typeId);
            }

            IOrderedQueryable <ActivityLog> sort = null;

            if (filter.order[0].column == 0)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.User.UserName);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.User.UserName);
                }
            }
            else if (filter.order[0].column == 1)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.ActivityLogType.Name);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.ActivityLogType.Name);
                }
            }
            else if (filter.order[0].column == 2)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.Comment);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.Comment);
                }
            }
            else if (filter.order[0].column == 3)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.Date);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.Date);
                }
            }

            if (string.IsNullOrEmpty(filter.search.value))
            {
                totalRowsFiltered = totalRows;
                model             = await sort.Skip(filter.start)
                                    .Take(filter.length)
                                    .ToListAsync();
            }
            else
            {
                totalRowsFiltered = await
                                    applicationDbContext.ActivityLogs.CountAsync(x => x.Business_Id == business_working && (x.ActivityLogType.Name.ToString().Contains(filter.search.value) ||
                                                                                                                            x.Comment.ToString().Contains(filter.search.value) ||
                                                                                                                            x.User.UserName.ToString().Contains(filter.search.value) ||
                                                                                                                            x.Date.ToString().Contains(filter.search.value)));

                model = await
                        sort.Where(x => x.Business_Id == business_working && (x.ActivityLogType.Name.ToString().Contains(filter.search.value) ||
                                                                              x.Comment.ToString().Contains(filter.search.value) ||
                                                                              x.User.UserName.ToString().Contains(filter.search.value) ||
                                                                              x.Date.ToString().Contains(filter.search.value)))
                        .Skip(filter.start)
                        .Take(filter.length)
                        .ToListAsync();
            }

            foreach (var log in model)
            {
                result.Add(new LogModel()
                {
                    DT_RowId = log.Id.ToString(),
                    Date     = log.Date.ToString("yyyy-MM-dd hh:mm tt"),
                    Name     = log.ActivityLogType.Name,
                    Comment  = log.Comment,
                    User     = log.User.UserName
                });
            }

            return(Json(new
            {
                draw = filter.draw,
                recordsTotal = totalRows,
                recordsFiltered = totalRowsFiltered,
                data = result
            }));
        }
Beispiel #2
0
        public async Task <ActionResult> WorkerSearch(StockFilterViewModel filter)
        {
            Guid business_id = Guid.Parse(filter.type);

            List <BusinessUserModel> result = new List <BusinessUserModel>();
            long totalRowsFiltered          = 0;
            long totalRows = await applicationDbContext.BusinessUsers.CountAsync(x => x.Business_Id == business_id);

            List <BusinessUser> model;

            var entity = applicationDbContext.BusinessUsers.Include("User").Where(x => x.Business_Id == business_id);

            IOrderedQueryable <BusinessUser> sort = null;

            if (filter.order[0].column == 0)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.User.UserName);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.User.UserName);
                }
            }
            else if (filter.order[0].column == 1)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.Cash);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.Cash);
                }
            }
            else if (filter.order[0].column == 2)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.LastUpdated);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.LastUpdated);
                }
            }

            if (string.IsNullOrEmpty(filter.search.value))
            {
                totalRowsFiltered = totalRows;
                model             = await sort.Skip(filter.start)
                                    .Take(filter.length)
                                    .ToListAsync();
            }
            else
            {
                totalRowsFiltered = await
                                    applicationDbContext.BusinessUsers.Include("User").CountAsync(x => x.Business_Id == business_id && (x.User.UserName.ToString().Contains(filter.search.value) ||
                                                                                                                                        x.LastUpdated.ToString().Contains(filter.search.value)));

                model = await
                        sort.Where(x => x.Business_Id == business_id && (x.User.UserName.ToString().Contains(filter.search.value) ||
                                                                         x.LastUpdated.ToString().Contains(filter.search.value)))
                        .Skip(filter.start)
                        .Take(filter.length)
                        .ToListAsync();
            }

            foreach (var user in model)
            {
                result.Add(new BusinessUserModel()
                {
                    DT_RowId    = $"{user.Business_Id.ToString()}+{user.User_Id}",
                    Name        = user.User.UserName,
                    LastUpdated = user.LastUpdated.ToString("yyyy-MM-dd hh:mm tt"),
                    Cash        = user.Cash.ToString("#,##0.00")
                });
            }

            return(Json(new
            {
                draw = filter.draw,
                recordsTotal = totalRows,
                recordsFiltered = totalRowsFiltered,
                data = result
            }));
        }
Beispiel #3
0
        public async Task <ActionResult> Search(StockFilterViewModel filter)
        {
            string current_user_id = User.Identity.GetUserId();

            List <BusinessModel> result = new List <BusinessModel>();
            long totalRowsFiltered      = 0;
            long totalRows = await applicationDbContext.Businesses.Include("BusinessUsers").CountAsync(x => x.BusinessUsers.FirstOrDefault(y => y.User_Id == current_user_id && y.IsRoot) != null);

            List <Business> model;

            var entity = applicationDbContext.Businesses.Include("BusinessUsers").Where(x => x.BusinessUsers.FirstOrDefault(y => y.User_Id == current_user_id && y.IsRoot) != null);

            IOrderedQueryable <Business> sort = null;

            if (filter.order[0].column == 1)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.Name);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.Name);
                }
            }
            else if (filter.order[0].column == 2)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.CreatedOn);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.CreatedOn);
                }
            }
            else if (filter.order[0].column == 3)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.BusinessUsers.Count);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.BusinessUsers.Count);
                }
            }

            if (string.IsNullOrEmpty(filter.search.value))
            {
                totalRowsFiltered = totalRows;
                model             = await sort.Skip(filter.start)
                                    .Take(filter.length)
                                    .ToListAsync();
            }
            else
            {
                totalRowsFiltered = await
                                    applicationDbContext.Businesses.CountAsync(x => x.BusinessUsers.FirstOrDefault(y => y.User_Id == current_user_id && y.IsRoot) != null && (x.Name.ToString().Contains(filter.search.value) ||
                                                                                                                                                                              x.CreatedOn.ToString().Contains(filter.search.value)));

                model = await
                        sort.Where(x => x.BusinessUsers.FirstOrDefault(y => y.User_Id == current_user_id && y.IsRoot) != null && (x.Name.ToString().Contains(filter.search.value) ||
                                                                                                                                  x.CreatedOn.ToString().Contains(filter.search.value)))
                        .Skip(filter.start)
                        .Take(filter.length)
                        .ToListAsync();
            }

            foreach (var business in model)
            {
                result.Add(new BusinessModel()
                {
                    DT_RowId     = business.Id.ToString(),
                    Name         = business.Name,
                    CreatedOn    = business.CreatedOn.ToString("yyyy-MM-dd hh:mm tt"),
                    CountWorkers = business.BusinessUsers.Count,
                    Photo        = business.Photo
                });
            }

            return(Json(new
            {
                draw = filter.draw,
                recordsTotal = totalRows,
                recordsFiltered = totalRowsFiltered,
                data = result
            }));
        }
Beispiel #4
0
        public async Task <ActionResult> Search(StockFilterViewModel filter)
        {
            Guid business_working = Guid.Parse(Session["BusinessWorking"].ToString());

            List <ProductModel> result = new List <ProductModel>();
            long totalRowsFiltered     = 0;
            long totalRows             = await applicationDbContext.Products.CountAsync(x => x.Business_Id == business_working);

            List <Product> model;

            var entity = applicationDbContext.Products.Include("Category").Where(x => x.Business_Id == business_working);

            if (!string.IsNullOrEmpty(filter.type))
            {
                Guid categoryId = Guid.Parse(filter.type);

                totalRows = await applicationDbContext.Products.CountAsync(x => x.Business_Id == business_working && x.Category_Id == categoryId);

                entity = entity.Where(x => x.Business_Id == business_working && x.Category_Id == categoryId);
            }

            if (filter.exist == "1")
            {
                totalRows = await applicationDbContext.Products.CountAsync(x => x.Stock > 0 && x.Business_Id == business_working);

                entity = entity.Where(x => x.Stock > 0);
            }
            else if (filter.exist == "2")
            {
                totalRows = await applicationDbContext.Products.CountAsync(x => x.Stock <= 0 && x.Business_Id == business_working);

                entity = entity.Where(x => x.Stock <= 0);
            }

            IOrderedQueryable <Product> sort = null;

            if (filter.order[0].column == 0)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.Category.Name);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.Category.Name);
                }
            }
            else if (filter.order[0].column == 1)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.Name);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.Name);
                }
            }
            else if (filter.order[0].column == 2)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.CurrentPrice);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.CurrentPrice);
                }
            }
            else if (filter.order[0].column == 3)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.SalePrice);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.SalePrice);
                }
            }
            else if (filter.order[0].column == 4)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.Stock);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.Stock);
                }
            }
            else if (filter.order[0].column == 5)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.LastUpdated);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.LastUpdated);
                }
            }
            else if (filter.order[0].column == 6)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.NoCountOut);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.NoCountOut);
                }
            }
            else if (filter.order[0].column == 7)
            {
                if (filter.order[0].dir.Equals("asc"))
                {
                    sort = entity.OrderBy(x => x.isAccesory);
                }
                else
                {
                    sort = entity.OrderByDescending(x => x.isAccesory);
                }
            }

            if (string.IsNullOrEmpty(filter.search.value))
            {
                totalRowsFiltered = totalRows;
                model             = await sort.Skip(filter.start)
                                    .Take(filter.length)
                                    .ToListAsync();
            }
            else
            {
                if (filter.exist == "1")
                {
                    totalRowsFiltered = await
                                        applicationDbContext.Products.CountAsync(x => x.Stock > 0 && x.Business_Id == business_working && (x.Category.Name.ToString().Contains(filter.search.value) ||
                                                                                                                                           x.Name.ToString().Contains(filter.search.value) ||
                                                                                                                                           x.User.UserName.ToString().Contains(filter.search.value) ||
                                                                                                                                           x.CurrentPrice.ToString().Contains(filter.search.value) ||
                                                                                                                                           x.SalePrice.ToString().Contains(filter.search.value) ||
                                                                                                                                           x.Stock.ToString().Contains(filter.search.value)));
                }
                else if (filter.exist == "2")
                {
                    totalRowsFiltered = await
                                        applicationDbContext.Products.CountAsync(x => x.Stock <= 0 && x.Business_Id == business_working && (x.Category.Name.ToString().Contains(filter.search.value) ||
                                                                                                                                            x.Name.ToString().Contains(filter.search.value) ||
                                                                                                                                            x.User.UserName.ToString().Contains(filter.search.value) ||
                                                                                                                                            x.CurrentPrice.ToString().Contains(filter.search.value) ||
                                                                                                                                            x.SalePrice.ToString().Contains(filter.search.value) ||
                                                                                                                                            x.Stock.ToString().Contains(filter.search.value)));
                }
                else
                {
                    totalRowsFiltered = await
                                        applicationDbContext.Products.CountAsync(x => x.Business_Id == business_working && (x.Category.Name.ToString().Contains(filter.search.value) ||
                                                                                                                            x.Name.ToString().Contains(filter.search.value) ||
                                                                                                                            x.User.UserName.ToString().Contains(filter.search.value) ||
                                                                                                                            x.CurrentPrice.ToString().Contains(filter.search.value) ||
                                                                                                                            x.SalePrice.ToString().Contains(filter.search.value) ||
                                                                                                                            x.Stock.ToString().Contains(filter.search.value)));
                }

                model = await
                        sort.Where(x => x.Category.Name.ToString().Contains(filter.search.value) ||
                                   x.Name.ToString().Contains(filter.search.value) ||
                                   x.User.UserName.ToString().Contains(filter.search.value) ||
                                   x.CurrentPrice.ToString().Contains(filter.search.value) ||
                                   x.SalePrice.ToString().Contains(filter.search.value) ||
                                   x.Stock.ToString().Contains(filter.search.value))
                        .Skip(filter.start)
                        .Take(filter.length)
                        .ToListAsync();
            }

            foreach (var product in model)
            {
                result.Add(new ProductModel()
                {
                    DT_RowId      = product.Id.ToString(),
                    Product       = product.Name,
                    LatestUpdated = product.LastUpdated.ToString("yyyy-MM-dd hh:mm tt"),
                    CurrentPrice  = product.CurrentPrice.ToString("#,##0.00"),
                    SalePrice     = product.SalePrice.ToString("#,##0.00"),
                    NoCountOut    = product.NoCountOut,
                    Stock         = product.Stock,
                    isAccesory    = product.isAccesory,
                    Category      = product.Category.Name
                });
            }

            return(Json(new
            {
                draw = filter.draw,
                recordsTotal = totalRows,
                recordsFiltered = totalRowsFiltered,
                data = result
            }));
        }