public IActionResult BestsellersReportList(DataSourceRequest command, BestsellersReportModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) { return(Content("")); } //a vendor should have access only to his products if (_workContext.CurrentVendor != null) { model.VendorId = _workContext.CurrentVendor.Id; } DateTime?startDateValue = (model.StartDate == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.StartDate.Value, _dateTimeHelper.CurrentTimeZone); DateTime?endDateValue = (model.EndDate == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1); OrderStatus? orderStatus = model.OrderStatusId > 0 ? (OrderStatus?)(model.OrderStatusId) : null; PaymentStatus?paymentStatus = model.PaymentStatusId > 0 ? (PaymentStatus?)(model.PaymentStatusId) : null; var items = _orderReportService.BestSellersReport( createdFromUtc: startDateValue, createdToUtc: endDateValue, os: orderStatus, ps: paymentStatus, billingCountryId: model.BillingCountryId, orderBy: 2, vendorId: model.VendorId, pageIndex: command.Page - 1, pageSize: command.PageSize, showHidden: true, storeId: model.StoreId); var gridModel = new DataSourceResult { Data = items.Select(x => { var m = new BestsellersReportLineModel { ProductId = x.ProductId, TotalAmount = _priceFormatter.FormatPrice(x.TotalAmount, true, false), TotalQuantity = x.TotalQuantity, }; var product = _productService.GetProductById(x.ProductId); if (product != null) { m.ProductName = product.Name; } return(m); }), Total = items.TotalCount }; return(Json(gridModel)); }
public async Task <IActionResult> BestsellersReportList(DataSourceRequest command, BestsellersReportModel model) { //a vendor should have access only to his products if (_workContext.CurrentVendor != null && !_workContext.CurrentCustomer.IsStaff()) { model.VendorId = _workContext.CurrentVendor.Id; } if (_workContext.CurrentCustomer.IsStaff()) { model.StoreId = _workContext.CurrentCustomer.StaffStoreId; } DateTime?startDateValue = (model.StartDate == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.StartDate.Value, _dateTimeHelper.CurrentTimeZone); DateTime?endDateValue = (model.EndDate == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1); OrderStatus? orderStatus = model.OrderStatusId > 0 ? (OrderStatus?)(model.OrderStatusId) : null; PaymentStatus?paymentStatus = model.PaymentStatusId > 0 ? (PaymentStatus?)(model.PaymentStatusId) : null; var items = await _orderReportService.BestSellersReport( createdFromUtc : startDateValue, createdToUtc : endDateValue, os : orderStatus, ps : paymentStatus, billingCountryId : model.BillingCountryId, orderBy : 2, vendorId : model.VendorId, pageIndex : command.Page - 1, pageSize : command.PageSize, showHidden : true, storeId : model.StoreId); var result = new List <BestsellersReportLineModel>(); foreach (var x in items) { var m = new BestsellersReportLineModel { ProductId = x.ProductId, TotalAmount = _priceFormatter.FormatPrice(x.TotalAmount, true, false), TotalQuantity = x.TotalQuantity, }; var product = await _productService.GetProductById(x.ProductId); if (product != null) { m.ProductName = product.Name; } if (_workContext.CurrentVendor != null) { if (product.VendorId == _workContext.CurrentVendor.Id) { result.Add(m); } } else { result.Add(m); } } var gridModel = new DataSourceResult { Data = result, Total = items.TotalCount }; return(Json(gridModel)); }
public async Task <IActionResult> BestsellersReport() { var model = new BestsellersReportModel { //vendor IsLoggedInAsVendor = _workContext.CurrentVendor != null && !_workContext.CurrentCustomer.IsStaff() }; string storeId = ""; if (_workContext.CurrentCustomer.IsStaff()) { storeId = _workContext.CurrentCustomer.StaffStoreId; } //stores model.AvailableStores.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId))) { model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() }); } //order statuses model.AvailableOrderStatuses = OrderStatus.Pending.ToSelectList(HttpContext, false).ToList(); model.AvailableOrderStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); //payment statuses model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(HttpContext, false).ToList(); model.AvailablePaymentStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); //billing countries foreach (var c in await _countryService.GetAllCountriesForBilling(showHidden: true)) { model.AvailableCountries.Add(new SelectListItem { Text = c.Name, Value = c.Id.ToString() }); } model.AvailableCountries.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); //vendors model.AvailableVendors.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); var vendors = await _vendorService.GetAllVendors(showHidden : true); foreach (var v in vendors) { model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() }); } return(View(model)); }
public IActionResult BestsellersReport() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) { return(AccessDeniedView()); } var model = new BestsellersReportModel(); //vendor model.IsLoggedInAsVendor = _workContext.CurrentVendor != null; //stores model.AvailableStores.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); foreach (var s in _storeService.GetAllStores()) { model.AvailableStores.Add(new SelectListItem { Text = s.Name, Value = s.Id.ToString() }); } //order statuses model.AvailableOrderStatuses = OrderStatus.Pending.ToSelectList(false).ToList(); model.AvailableOrderStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); //payment statuses model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(false).ToList(); model.AvailablePaymentStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); //billing countries foreach (var c in _countryService.GetAllCountriesForBilling(showHidden: true)) { model.AvailableCountries.Add(new SelectListItem { Text = c.Name, Value = c.Id.ToString() }); } model.AvailableCountries.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); //vendors model.AvailableVendors.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); var vendors = _vendorService.GetAllVendors(showHidden: true); foreach (var v in vendors) { model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() }); } return(View(model)); }