public ActionResult OrderList(GridCommand command, OrderListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) return AccessDeniedView(); 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(startDateValue, endDateValue, orderStatus, paymentStatus, shippingStatus, model.CustomerEmail, model.OrderGuid, command.Page - 1, command.PageSize); var gridModel = new GridModel<OrderModel> { Data = orders.Select(x => { return new OrderModel() { Id = x.Id, 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 (orderStatus, paymentStatus, shippingStatus, startDateValue, endDateValue, model.CustomerEmail); var profit = _orderReportService.ProfitReport (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(); }
public ActionResult List() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) return AccessDeniedView(); 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" }); model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(false).ToList(); model.AvailablePaymentStatuses.Insert(0, new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); model.AvailableShippingStatuses = ShippingStatus.NotYetShipped.ToSelectList(false).ToList(); model.AvailableShippingStatuses.Insert(0, new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); return View(model); }
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 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 foreach (var store in _storeService.GetAllStores()) { model.AvailableStores.Add(new SelectListItem() { Text = store.Name, Value = store.Id.ToString() }); } model.AvailableStores.Insert(0, new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); return View(model); }
public ActionResult List(int? orderStatusId = null, int? paymentStatusId = null, int? shippingStatusId = null) { 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" }); if (orderStatusId.HasValue) { //pre-select value? var item = model.AvailableOrderStatuses.FirstOrDefault(x => x.Value == orderStatusId.Value.ToString()); if (item != null) item.Selected = true; } //payment statuses model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(false).ToList(); model.AvailablePaymentStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); if (paymentStatusId.HasValue) { //pre-select value? var item = model.AvailablePaymentStatuses.FirstOrDefault(x => x.Value == paymentStatusId.Value.ToString()); if (item != null) item.Selected = true; } //shipping statuses model.AvailableShippingStatuses = ShippingStatus.NotYetShipped.ToSelectList(false).ToList(); model.AvailableShippingStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); if (shippingStatusId.HasValue) { //pre-select value? var item = model.AvailableShippingStatuses.FirstOrDefault(x => x.Value == shippingStatusId.Value.ToString()); if (item != null) item.Selected = true; } //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(showHidden: true)) model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.ID.ToString() }); //warehouses model.AvailableWarehouses.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var w in _shippingService.GetAllWarehouses()) model.AvailableWarehouses.Add(new SelectListItem { Text = w.Name, Value = w.ID.ToString() }); //a vendor should have access only to orders with his products model.IsLoggedInAsVendor = _workContext.CurrentVendor != null; return View(model); }
public ActionResult OrderList(DataSourceRequest 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; var filterByProductId = 0; var product = _productService.GetProductById(model.ProductId); if (product != null && HasAccessToProduct(product)) filterByProductId = model.ProductId; //load orders var orders = _orderService.SearchOrders(storeId: model.StoreId, vendorId: model.VendorId, productId: filterByProductId, warehouseId: model.WarehouseId, createdFromUtc: startDateValue, createdToUtc: endDateValue, os: orderStatus, ps: paymentStatus, ss: shippingStatus, billingEmail: model.CustomerEmail, orderNotes: model.OrderNotes, orderGuid: model.OrderGuid, pageIndex: command.Page - 1, pageSize: command.PageSize); var gridModel = new DataSourceResult { 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, CustomerFullName = string.Format("{0} {1}", x.BillingAddress.FirstName, x.BillingAddress.LastName), CreatedOn = _dateTimeHelper.ConvertToUserTime(x.CreatedOnUtc, DateTimeKind.Utc) }; }), Total = orders.TotalCount }; //summary report var reportSummary = _orderReportService.GetOrderAverageReportLine( storeId: model.StoreId, vendorId: model.VendorId, orderId: 0, os: orderStatus, ps: paymentStatus, ss: shippingStatus, startTimeUtc: startDateValue, endTimeUtc: endDateValue, billingEmail: model.CustomerEmail, orderNotes: model.OrderNotes); var profit = _orderReportService.ProfitReport( storeId: model.StoreId, vendorId: model.VendorId, os: orderStatus, ps: paymentStatus, ss: shippingStatus, startTimeUtc: startDateValue, endTimeUtc: endDateValue, billingEmail: model.CustomerEmail, orderNotes: model.OrderNotes); var primaryStoreCurrency = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId); if (primaryStoreCurrency == null) throw new Exception("Cannot load primary store currency"); gridModel.ExtraData = new OrderAggreratorModel { aggregatorprofit = _priceFormatter.FormatPrice(profit, true, false), aggregatorshipping = _priceFormatter.FormatShippingPrice(reportSummary.SumShippingExclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, false), aggregatortax = _priceFormatter.FormatPrice(reportSummary.SumTax, true, false), aggregatortotal = _priceFormatter.FormatPrice(reportSummary.SumOrders, true, false) }; return new JsonResult { Data = gridModel }; }
public ActionResult PdfInvoiceAll(OrderListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageActualSales)) 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; var filterByProductId = 0; var product = _productService.GetProductById(model.ProductId); if (product != null && HasAccessToProduct(product)) filterByProductId = model.ProductId; //load orders var orders = _orderService.SearchOrders(storeId: model.StoreId, vendorId: model.VendorId, productId: filterByProductId, warehouseId: model.WarehouseId, billingCountryId: model.BillingCountryId, paymentMethodSystemName: model.PaymentMethodSystemName, createdFromUtc: startDateValue, createdToUtc: endDateValue, os: orderStatus, ps: paymentStatus, ss: shippingStatus, billingEmail: model.CustomerEmail, orderNotes: model.OrderNotes, orderGuid: model.OrderGuid); byte[] bytes; using (var stream = new MemoryStream()) { _pdfService.PrintOrdersToPdf(stream, orders, _workContext.WorkingLanguage.Id); bytes = stream.ToArray(); } return File(bytes, "application/pdf", "orders.pdf"); }
public ActionResult ExportExcelAll(OrderListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) return AccessDeniedView(); //a vendor cannot export orders if (_workContext.CurrentVendor != null) return AccessDeniedView(); 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; var filterByProductId = 0; var product = _productService.GetProductById(model.ProductId); if (product != null && HasAccessToProduct(product)) filterByProductId = model.ProductId; //load orders var orders = _orderService.SearchOrders(storeId: model.StoreId, vendorId: model.VendorId, productId: filterByProductId, warehouseId: model.WarehouseId, createdFromUtc: startDateValue, createdToUtc: endDateValue, os: orderStatus, ps: paymentStatus, ss: shippingStatus, billingEmail: model.CustomerEmail, orderNotes: model.OrderNotes, orderGuid: model.OrderGuid); try { byte[] bytes; using (var stream = new MemoryStream()) { _exportManager.ExportOrdersToXlsx(stream, orders); bytes = stream.ToArray(); } return File(bytes, "text/xls", "orders.xlsx"); } catch (Exception exc) { ErrorNotification(exc); return RedirectToAction("List"); } }
public ActionResult List( [ModelBinder(typeof(CommaSeparatedModelBinder))] List<string> orderStatusIds = null, [ModelBinder(typeof(CommaSeparatedModelBinder))] List<string> paymentStatusIds = null, [ModelBinder(typeof(CommaSeparatedModelBinder))] List<string> shippingStatusIds = null) { 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", Selected = true }); if (orderStatusIds != null && orderStatusIds.Any()) { foreach (var item in model.AvailableOrderStatuses.Where(os => orderStatusIds.Contains(os.Value))) item.Selected = true; model.AvailableOrderStatuses.First().Selected = false; } //payment statuses model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(false).ToList(); model.AvailablePaymentStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0", Selected = true }); if (paymentStatusIds != null && paymentStatusIds.Any()) { foreach (var item in model.AvailablePaymentStatuses.Where(ps => paymentStatusIds.Contains(ps.Value))) item.Selected = true; model.AvailablePaymentStatuses.First().Selected = false; } //shipping statuses model.AvailableShippingStatuses = ShippingStatus.NotYetShipped.ToSelectList(false).ToList(); model.AvailableShippingStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0", Selected = true }); if (shippingStatusIds != null && shippingStatusIds.Any()) { foreach (var item in model.AvailableShippingStatuses.Where(ss => shippingStatusIds.Contains(ss.Value))) item.Selected = true; model.AvailableShippingStatuses.First().Selected = false; } //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(showHidden: true)) model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() }); //warehouses model.AvailableWarehouses.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var w in _shippingService.GetAllWarehouses()) model.AvailableWarehouses.Add(new SelectListItem { Text = w.Name, Value = w.Id.ToString() }); //payment methods model.AvailablePaymentMethods.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); foreach (var pm in _paymentService.LoadAllPaymentMethods()) model.AvailablePaymentMethods.Add(new SelectListItem { Text = pm.PluginDescriptor.FriendlyName, Value = pm.PluginDescriptor.SystemName }); //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 = "0" }); //a vendor should have access only to orders with his products model.IsLoggedInAsVendor = _workContext.CurrentVendor != null; return View(model); }
public ActionResult ExportXmlAll(OrderListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageActualSales)) return AccessDeniedView(); //a vendor cannot export orders if (_workContext.CurrentVendor != null) return AccessDeniedView(); 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; var filterByProductId = 0; var product = _productService.GetProductById(model.ProductId); if (product != null && HasAccessToProduct(product)) filterByProductId = model.ProductId; //load orders var orders = _orderService.SearchOrders(storeId: model.StoreId, vendorId: model.VendorId, productId: filterByProductId, warehouseId: model.WarehouseId, billingCountryId: model.BillingCountryId, paymentMethodSystemName: model.PaymentMethodSystemName, createdFromUtc: startDateValue, createdToUtc: endDateValue, os: orderStatus, ps: paymentStatus, ss: shippingStatus, billingEmail: model.CustomerEmail, orderNotes: model.OrderNotes, orderGuid: model.OrderGuid); try { var xml = _exportManager.ExportOrdersToXml(orders); return new XmlDownloadResult(xml, "orders.xml"); } catch (Exception exc) { ErrorNotification(exc); return RedirectToAction("List"); } }
public ActionResult ExportExcelAll(OrderListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) return AccessDeniedView(); //a vendor cannot export orders if (_workContext.CurrentVendor != null) return AccessDeniedView(); 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); var orderStatusIds = !model.OrderStatusIds.Contains(0) ? model.OrderStatusIds : null; var paymentStatusIds = !model.PaymentStatusIds.Contains(0) ? model.PaymentStatusIds : null; var shippingStatusIds = !model.ShippingStatusIds.Contains(0) ? model.ShippingStatusIds : null; var filterByProductId = 0; var product = _productService.GetProductById(model.ProductId); if (product != null && HasAccessToProduct(product)) filterByProductId = model.ProductId; //load orders var orders = _orderService.SearchOrders(storeId: model.StoreId, vendorId: model.VendorId, productId: filterByProductId, warehouseId: model.WarehouseId, paymentMethodSystemName: model.PaymentMethodSystemName, createdFromUtc: startDateValue, createdToUtc: endDateValue, osIds: orderStatusIds, psIds: paymentStatusIds, ssIds: shippingStatusIds, billingEmail: model.BillingEmail, billingLastName: model.BillingLastName, billingCountryId: model.BillingCountryId, orderNotes: model.OrderNotes); try { byte[] bytes = _exportManager.ExportOrdersToXlsx(orders); return File(bytes, MimeTypes.TextXlsx, "orders.xlsx"); } catch (Exception exc) { ErrorNotification(exc); return RedirectToAction("List"); } }
public ActionResult OrderList(GridCommand command, OrderListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders)) return AccessDeniedView(); 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; var orders = _orderService.SearchOrders(startDateValue, endDateValue, orderStatus, paymentStatus, shippingStatus, model.CustomerEmail, model.OrderGuid, command.Page - 1, command.PageSize); var gridModel = new GridModel<OrderModel> { Data = orders.Select(x => { return new OrderModel() { Id = x.Id, 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 }; return new JsonResult { Data = gridModel }; }
public ActionResult List() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders) && !_permissionService.Authorize(StandardPermissionProvider.ManageVendor) //add by hz ) return AccessDeniedView(); 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" }); model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(false).ToList(); model.AvailablePaymentStatuses.Insert(0, new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); model.AvailableShippingStatuses = ShippingStatus.NotYetShipped.ToSelectList(false).ToList(); model.AvailableShippingStatuses.Insert(0, new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); //add by hz //vendors model.IsVendorManager = (customerVendorId > 0) ? true : false; model.AvailableVendors.Add(new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var s in _vendorService.GetAllVendors(0, true)) model.AvailableVendors.Add(new SelectListItem() { Text = s.Name, Value = s.Id.ToString() }); //end by hz 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, 0, 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 primaryStoreCurrency = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId); if (primaryStoreCurrency == null) throw new Exception("Cannot load primary store currency"); var aggregator = new OrderModel() { aggregatorprofit = _priceFormatter.FormatPrice(profit, true, false), aggregatorshipping = _priceFormatter.FormatShippingPrice(reportSummary.SumShippingExclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, 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 List(int? orderStatusId = null, int? paymentStatusId = null, int? shippingStatusId = null) { 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" }); if (orderStatusId.HasValue) { //pre-select value? var item = model.AvailableOrderStatuses.FirstOrDefault(x => x.Value == orderStatusId.Value.ToString()); if (item != null) item.Selected = true; } //payment statuses model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(false).ToList(); model.AvailablePaymentStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); if (paymentStatusId.HasValue) { //pre-select value? var item = model.AvailablePaymentStatuses.FirstOrDefault(x => x.Value == paymentStatusId.Value.ToString()); if (item != null) item.Selected = true; } //shipping statuses model.AvailableShippingStatuses = ShippingStatus.NotYetShipped.ToSelectList(false).ToList(); model.AvailableShippingStatuses.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); if (shippingStatusId.HasValue) { //pre-select value? var item = model.AvailableShippingStatuses.FirstOrDefault(x => x.Value == shippingStatusId.Value.ToString()); if (item != null) item.Selected = true; } //departments List<SelectListItem> departments = _productService.GetDepartments() .Select(i => new SelectListItem() { Text = i.DepartmentName, Value = i.Id.ToString() }).ToList(); model.AvailableDepartments = departments; //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(showHidden: true)) model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() }); //warehouses model.AvailableWarehouses.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var w in _shippingService.GetAllWarehouses()) model.AvailableWarehouses.Add(new SelectListItem { Text = w.Name, Value = w.Id.ToString() }); //payment methods model.AvailablePaymentMethods.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "" }); foreach (var pm in _paymentService.LoadAllPaymentMethods()) model.AvailablePaymentMethods.Add(new SelectListItem { Text = pm.PluginDescriptor.FriendlyName, Value = pm.PluginDescriptor.SystemName }); //billing countries foreach (var c in _countryService.GetAllCountriesForBilling(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 = "0" }); //a vendor should have access only to orders with his products model.IsLoggedInAsVendor = _workContext.CurrentVendor != null; return View(model); }