public void LoadData() { string username = Request.Cookies["loginHiddenPage"].Value; var acc = AccountController.GetByUsername(username); DateTime DateConfig = new DateTime(2019, 12, 15); var config = ConfigController.GetByTop1(); if (config.ViewAllOrders == 1) { DateConfig = new DateTime(2018, 6, 22); } DateTime fromDate = DateConfig; DateTime toDate = DateTime.Now; if (!String.IsNullOrEmpty(Request.QueryString["orderfromdate"])) { fromDate = Convert.ToDateTime(Request.QueryString["orderfromdate"]); } if (!String.IsNullOrEmpty(Request.QueryString["ordertodate"])) { toDate = Convert.ToDateTime(Request.QueryString["ordertodate"]).AddDays(1).AddMinutes(-1); } rFromDate.SelectedDate = fromDate; rFromDate.MinDate = DateConfig; rFromDate.MaxDate = DateTime.Now; rToDate.SelectedDate = toDate; rToDate.MinDate = DateConfig; rToDate.MaxDate = DateTime.Now; string textSearch = ""; int categoryID = 0; int registerStatus = 0; int Page = 1; if (Request.QueryString["textsearch"] != null) { textSearch = Request.QueryString["textsearch"].Trim(); } if (Request.QueryString["categoryid"] != null) { categoryID = Request.QueryString["categoryid"].ToInt(); } if (Request.QueryString["registerstatus"] != null) { registerStatus = Request.QueryString["registerstatus"].ToInt(0); } if (Request.QueryString["Page"] != null) { Page = Request.QueryString["Page"].ToInt(); } txtSearchProduct.Text = textSearch; ddlCategory.SelectedValue = categoryID.ToString(); ddlRegisterStatus.SelectedValue = registerStatus.ToString(); // Create order fileter var filter = new RegisterProductFilterModel() { search = textSearch, category = categoryID, status = registerStatus, createdBy = acc.Username, fromDate = fromDate, toDate = toDate }; // Create pagination var page = new PaginationMetadataModel() { currentPage = Page, pageSize = 30 }; List <RegisterProductList> rs = new List <RegisterProductList>(); rs = RegisterProductController.Filter(filter, ref page); pagingall(rs, page); ltrHeading.Text = "Danh sách đặt hàng (" + page.totalCount.ToString() + ")"; ltrAccount.Text = "Tài khoản: <strong>" + acc.Username + "</strong>"; }
public static List <RegisterProductList> Filter(RegisterProductFilterModel filter, ref PaginationMetadataModel page) { using (var con = new inventorymanagementEntities()) { var data = con.RegisterProducts.Where(x => 1 == 1); var staff = con.tbl_Account.Where(x => 1 == 1); #region Thực hiện trích xuất dữ liệu theo bộ lọc // Filter theo ký tự search if (!String.IsNullOrEmpty(filter.search)) { data = data.Where(x => x.Title.Contains(filter.search) || x.Customer.Contains(filter.search) || x.SKU.Contains(filter.search) ); } // Filter theo category if (filter.category > 0) { var parentCatogory = con.tbl_Category.Where(x => x.ID == filter.category).FirstOrDefault(); var catogoryFilter = CategoryController.getCategoryChild(parentCatogory).Select(x => x.ID).ToList(); var product = con.tbl_Product .Where(x => catogoryFilter.Contains( x.CategoryID.HasValue ? x.CategoryID.Value : 0 ) ); data = data .Join( product, d => d.ProductID, p => p.ID, (d, p) => d ); } // Filter theo trang thái if (filter.status != 0) { data = data.Where(x => x.Status == filter.status); } // Filter theo người khở tạo if (!String.IsNullOrEmpty(filter.createdBy)) { staff = staff.Where(x => x.Username == filter.createdBy); data = data .Join( staff, d => d.CreatedBy, s => s.ID, (d, s) => d ); } // Filter Order Created Date if (filter.fromDate.HasValue && filter.toDate.HasValue) { data = data.Where(x => x.CreatedDate >= filter.fromDate.Value && x.CreatedDate <= filter.toDate.Value ); } // Filter color if (!String.IsNullOrEmpty(filter.color)) { data = data.Where(x => x.Color.Contains(filter.color)); } // Filter color if (!String.IsNullOrEmpty(filter.size)) { data = data.Where(x => x.Size.Contains(filter.size)); } // Filter theo đã chọn if (filter.selected) { var session = SessionController.getRegisterProductSession(filter.account) .Select(x => x.id) .ToList(); data = data.Where(x => session.Contains(x.ID)); } #endregion #region Tính toán phân trang // Calculate pagination page.totalCount = data.Count(); page.totalPages = (int)Math.Ceiling(page.totalCount / (double)page.pageSize); data = data .OrderByDescending(x => x.ID) .Skip((page.currentPage - 1) * page.pageSize) .Take(page.pageSize); #endregion var result = data .Join( staff, d => d.CreatedBy, s => s.ID, (d, s) => new { register = d, staff = s } ) .OrderByDescending(o => o.register.ID) .ToList(); return(result .Select(x => { var statusName = ""; switch (x.register.Status) { case (int)RegisterProductStatus.Approve: statusName = "Đã duyệt"; break; case (int)RegisterProductStatus.Ordering: statusName = "Đã đặt hàng"; break; case (int)RegisterProductStatus.Done: statusName = "Hàng về"; break; default: statusName = "Chưa duyệt"; break; } return new RegisterProductList() { check = false, id = x.register.ID, customer = x.register.Customer, productID = x.register.ProductID, variableID = x.register.VariableID, sku = x.register.SKU, productStyle = x.register.ProductStyle, status = x.register.Status, statusName = statusName, title = x.register.Title, image = x.register.Image, color = x.register.Color, size = x.register.Size, numberchild = x.register.NumberChild, quantity = x.register.Quantity, expectedDate = x.register.ExpectedDate, note1 = x.register.Note1, note2 = x.register.Note2, staffID = x.register.CreatedBy, staffName = x.staff.Username, createdDate = x.register.CreatedDate }; }) .ToList()); } }
public void LoadData() { string username = Request.Cookies["usernameLoginSystem"].Value; var acc = AccountController.GetByUsername(username); if (acc != null) { DateTime DateConfig = new DateTime(2019, 12, 15); var config = ConfigController.GetByTop1(); if (config.ViewAllOrders == 1) { DateConfig = new DateTime(2018, 6, 22); } DateTime fromDate = DateConfig; DateTime toDate = DateTime.Now; if (!String.IsNullOrEmpty(Request.QueryString["orderfromdate"])) { fromDate = Convert.ToDateTime(Request.QueryString["orderfromdate"]); } if (!String.IsNullOrEmpty(Request.QueryString["ordertodate"])) { toDate = Convert.ToDateTime(Request.QueryString["ordertodate"]).AddDays(1).AddMinutes(-1); } rFromDate.SelectedDate = fromDate; rFromDate.MinDate = DateConfig; rFromDate.MaxDate = DateTime.Now; rToDate.SelectedDate = toDate; rToDate.MinDate = DateConfig; rToDate.MaxDate = DateTime.Now; string textSearch = String.Empty; int registerStatus = 0; string createdBy = String.Empty; string color = String.Empty; string size = String.Empty; var isRegisterProductSession = false; int Page = 1; if (Request.QueryString["textsearch"] != null) { textSearch = Request.QueryString["textsearch"].Trim(); } if (Request.QueryString["registerstatus"] != null) { registerStatus = Request.QueryString["registerstatus"].ToInt(0); } if (Request.QueryString["createdby"] != null) { createdBy = Request.QueryString["createdby"]; } if (Request.QueryString["color"] != null) { color = Request.QueryString["color"]; } if (Request.QueryString["size"] != null) { size = Request.QueryString["size"]; } if (Request.QueryString["isregisterproductsession"] != null) { isRegisterProductSession = true; } if (Request.QueryString["Page"] != null) { Page = Request.QueryString["Page"].ToInt(); } txtSearchOrder.Text = textSearch; ddlRegisterStatus.SelectedValue = registerStatus.ToString(); ddlCreatedBy.SelectedValue = createdBy.ToString(); // Create order fileter var filter = new RegisterProductFilterModel() { search = textSearch, status = registerStatus, createdBy = createdBy, fromDate = fromDate, toDate = toDate, color = color, size = size, selected = isRegisterProductSession, account = acc }; // Create pagination var page = new PaginationMetadataModel() { currentPage = Page }; List <RegisterProductList> rs = new List <RegisterProductList>(); rs = RegisterProductController.Filter(filter, ref page); var data = SessionController.getRegisterProductSession(acc); hdfSession.Value = JsonConvert.SerializeObject(data); pagingall(rs, page); ltrNumberOfOrder.Text = page.totalCount.ToString(); } }