/// <summary> /// Prepare low stock product search model /// </summary> /// <param name="searchModel">Low stock product search model</param> /// <returns>Low stock product search model</returns> public virtual LowStockProductSearchModel PrepareLowStockProductSearchModel(LowStockProductSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //prepare "published" filter (0 - all; 1 - published only; 2 - unpublished only) searchModel.AvailablePublishedOptions.Add(new SelectListItem { Value = "0", Text = _localizationService.GetResource("Admin.Reports.LowStock.SearchPublished.All") }); searchModel.AvailablePublishedOptions.Add(new SelectListItem { Value = "1", Text = _localizationService.GetResource("Admin.Reports.LowStock.SearchPublished.PublishedOnly") }); searchModel.AvailablePublishedOptions.Add(new SelectListItem { Value = "2", Text = _localizationService.GetResource("Admin.Reports.LowStock.SearchPublished.UnpublishedOnly") }); //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
public virtual async Task <IActionResult> LowStockList(LowStockProductSearchModel searchModel) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageProducts)) { return(await AccessDeniedDataTablesJson()); } //prepare model var model = await _reportModelFactory.PrepareLowStockProductListModelAsync(searchModel); return(Json(model)); }
public virtual IActionResult LowStockList(LowStockProductSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts)) { return(AccessDeniedDataTablesJson()); } //prepare model var model = _reportModelFactory.PrepareLowStockProductListModel(searchModel); return(Json(model)); }
/// <summary> /// Prepare paged low stock product list model /// </summary> /// <param name="searchModel">Low stock product search model</param> /// <returns>Low stock product list model</returns> public virtual LowStockProductListModel PrepareLowStockProductListModel(LowStockProductSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get parameters to filter comments var publishedOnly = searchModel.SearchPublishedId == 0 ? null : searchModel.SearchPublishedId == 1 ? true : (bool?)false; var vendorId = _workContext.CurrentVendor?.Id ?? 0; //get low stock product and product combinations var products = _productService.GetLowStockProducts(vendorId: vendorId, loadPublishedOnly: publishedOnly); var combinations = _productService.GetLowStockProductCombinations(vendorId: vendorId, loadPublishedOnly: publishedOnly); //prepare low stock product models var lowStockProductModels = new List <LowStockProductModel>(); lowStockProductModels.AddRange(products.Select(product => new LowStockProductModel { Id = product.Id, Name = product.Name, ManageInventoryMethod = _localizationService.GetLocalizedEnum(product.ManageInventoryMethod), StockQuantity = _productService.GetTotalStockQuantity(product), Published = product.Published })); lowStockProductModels.AddRange(combinations.Select(combination => { var product = _productService.GetProductById(combination.ProductId); return(new LowStockProductModel { Id = combination.ProductId, Name = product.Name, Attributes = _productAttributeFormatter .FormatAttributes(product, combination.AttributesXml, _workContext.CurrentCustomer, "<br />", true, true, true, false), ManageInventoryMethod = _localizationService.GetLocalizedEnum(product.ManageInventoryMethod), StockQuantity = combination.StockQuantity, Published = product.Published }); })); var pagesList = lowStockProductModels.ToPagedList(searchModel); //prepare list model var model = new LowStockProductListModel().PrepareToGrid(searchModel, pagesList, () => { return(pagesList); }); return(model); }