public ActionResult List() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) return AccessDeniedView(); //order statuses var model = new OrderListModel(); model.AvailableOrderStatuses = OrderStatus.Pending.ToSelectList(false).ToList(); model.AvailableOrderStatuses.Insert(0, new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); //payment statuses model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(false).ToList(); model.AvailablePaymentStatuses.Insert(0, new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); //shipping statuses model.AvailableShippingStatuses = ShippingStatus.NotYetShipped.ToSelectList(false).ToList(); model.AvailableShippingStatuses.Insert(0, new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); //stores model.AvailableStores.Add(new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var s in _storeService.GetAllStores()) model.AvailableStores.Add(new SelectListItem() { Text = s.Name, Value = s.Id.ToString() }); //vendors model.AvailableVendors.Add(new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var v in _vendorService.GetAllVendors(0, int.MaxValue, true)) model.AvailableVendors.Add(new SelectListItem() { Text = v.Name, Value = v.Id.ToString() }); //a vendor should have access only to orders with his products model.IsLoggedInAsVendor = _workContext.CurrentVendor != null; return View(model); }
public ActionResult OrderList(GridCommand command, OrderListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) return AccessDeniedView(); //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; ShippingStatus? shippingStatus = model.ShippingStatusId > 0 ? (ShippingStatus?)(model.ShippingStatusId) : null; //load orders var orders = _orderService.SearchOrders(model.StoreId, model.VendorId, 0, startDateValue, endDateValue, orderStatus, paymentStatus, shippingStatus, model.CustomerEmail, model.OrderGuid, command.Page - 1, command.PageSize); var gridModel = new GridModel<OrderModel> { Data = orders.Select(x => { var store = _storeService.GetStoreById(x.StoreId); return new OrderModel() { Id = x.Id, StoreName = store != null ? store.Name : "Unknown", OrderTotal = _priceFormatter.FormatPrice(x.OrderTotal, true, false), OrderStatus = x.OrderStatus.GetLocalizedEnum(_localizationService, _workContext), PaymentStatus = x.PaymentStatus.GetLocalizedEnum(_localizationService, _workContext), ShippingStatus = x.ShippingStatus.GetLocalizedEnum(_localizationService, _workContext), CustomerEmail = x.BillingAddress.Email, CreatedOn = _dateTimeHelper.ConvertToUserTime(x.CreatedOnUtc, DateTimeKind.Utc) }; }), Total = orders.TotalCount }; //summary report //implemented as a workaround described here: http://www.telerik.com/community/forums/aspnet-mvc/grid/gridmodel-aggregates-how-to-use.aspx var reportSummary = _orderReportService.GetOrderAverageReportLine(model.StoreId, model.VendorId, orderStatus, paymentStatus, shippingStatus, startDateValue, endDateValue, model.CustomerEmail); var profit = _orderReportService.ProfitReport(model.StoreId, model.VendorId, orderStatus, paymentStatus, shippingStatus, startDateValue, endDateValue, model.CustomerEmail); var aggregator = new OrderModel() { aggregatorprofit = _priceFormatter.FormatPrice(profit, true, false), aggregatortax = _priceFormatter.FormatPrice(reportSummary.SumTax, true, false), aggregatortotal = _priceFormatter.FormatPrice(reportSummary.SumOrders, true, false) }; gridModel.Aggregates = aggregator; return new JsonResult { Data = gridModel }; }
public ActionResult GoToOrderId(OrderListModel model) { var order = _orderService.GetOrderById(model.GoDirectlyToNumber); if (order != null) return RedirectToAction("Edit", "Order", new { id = order.Id }); else return List(); }