示例#1
0
        public ActionResult AffiliatedOrderList(DataSourceRequest command, AffiliatedOrderListModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageAffiliates))
            {
                return(AccessDeniedView());
            }

            var affiliate = _affiliateService.GetAffiliateById(model.AffliateId);

            if (affiliate == null)
            {
                throw new ArgumentException("No affiliate found with the specified 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);

            var orderStatusIds = model.OrderStatusId > 0 ? new List <int>()
            {
                model.OrderStatusId
            } : null;
            var paymentStatusIds = model.PaymentStatusId > 0 ? new List <int>()
            {
                model.PaymentStatusId
            } : null;
            var shippingStatusIds = model.ShippingStatusId > 0 ? new List <int>()
            {
                model.ShippingStatusId
            } : null;

            var orders = _orderService.SearchOrders(
                createdFromUtc: startDateValue,
                createdToUtc: endDateValue,
                osIds: orderStatusIds,
                psIds: paymentStatusIds,
                ssIds: shippingStatusIds,
                affiliateId: affiliate.Id,
                pageIndex: command.Page - 1,
                pageSize: command.PageSize);
            var gridModel = new DataSourceResult
            {
                Data = orders.Select(order =>
                {
                    var orderModel            = new AffiliateModel.AffiliatedOrderModel();
                    orderModel.Id             = order.Id;
                    orderModel.OrderStatus    = order.OrderStatus.GetLocalizedEnum(_localizationService, _workContext);
                    orderModel.PaymentStatus  = order.PaymentStatus.GetLocalizedEnum(_localizationService, _workContext);
                    orderModel.ShippingStatus = order.ShippingStatus.GetLocalizedEnum(_localizationService, _workContext);
                    orderModel.OrderTotal     = _priceFormatter.FormatPrice(order.OrderTotal, true, false);
                    orderModel.CreatedOn      = _dateTimeHelper.ConvertToUserTime(order.CreatedOnUtc, DateTimeKind.Utc);
                    return(orderModel);
                }),
                Total = orders.TotalCount
            };

            return(Json(gridModel));
        }
        /// <summary>
        /// Prepare paged affiliated order list model
        /// </summary>
        /// <param name="searchModel">Affiliated order search model</param>
        /// <param name="affiliate">Affiliate</param>
        /// <returns>Affiliated order list model</returns>
        public virtual AffiliatedOrderListModel PrepareAffiliatedOrderListModel(AffiliatedOrderSearchModel searchModel, Affiliate affiliate)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            if (affiliate == null)
            {
                throw new ArgumentNullException(nameof(affiliate));
            }

            //get parameters to filter orders
            var startDateValue = !searchModel.StartDate.HasValue ? null
                : (DateTime?)_dateTimeHelper.ConvertToUtcTime(searchModel.StartDate.Value, _dateTimeHelper.CurrentTimeZone);
            var endDateValue = !searchModel.EndDate.HasValue ? null
                : (DateTime?)_dateTimeHelper.ConvertToUtcTime(searchModel.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1);
            var orderStatusIds = searchModel.OrderStatusId > 0 ? new List <int> {
                searchModel.OrderStatusId
            } : null;
            var paymentStatusIds = searchModel.PaymentStatusId > 0 ? new List <int> {
                searchModel.PaymentStatusId
            } : null;
            var shippingStatusIds = searchModel.ShippingStatusId > 0 ? new List <int> {
                searchModel.ShippingStatusId
            } : null;

            //get orders
            var orders = _orderService.SearchOrders(createdFromUtc: startDateValue,
                                                    createdToUtc: endDateValue,
                                                    osIds: orderStatusIds,
                                                    psIds: paymentStatusIds,
                                                    ssIds: shippingStatusIds,
                                                    affiliateId: affiliate.Id,
                                                    pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize);

            //prepare list model
            var model = new AffiliatedOrderListModel
            {
                //fill in model values from the entity
                Data = orders.Select(order =>
                {
                    var affiliatedOrderModel = order.ToModel <AffiliatedOrderModel>();

                    //fill in additional values (not existing in the entity)
                    affiliatedOrderModel.OrderStatus    = _localizationService.GetLocalizedEnum(order.OrderStatus);
                    affiliatedOrderModel.PaymentStatus  = _localizationService.GetLocalizedEnum(order.PaymentStatus);
                    affiliatedOrderModel.ShippingStatus = _localizationService.GetLocalizedEnum(order.ShippingStatus);
                    affiliatedOrderModel.OrderTotal     = _priceFormatter.FormatPrice(order.OrderTotal, true, false);
                    affiliatedOrderModel.CreatedOn      = _dateTimeHelper.ConvertToUserTime(order.CreatedOnUtc, DateTimeKind.Utc);

                    return(affiliatedOrderModel);
                }),
                Total = orders.TotalCount
            };

            return(model);
        }
示例#3
0
        public IActionResult AffiliatedOrderList(DataSourceRequest command, AffiliatedOrderListModel model)
        {
            var affiliate = _affiliateService.GetAffiliateById(model.AffliateId);

            if (affiliate == null)
            {
                throw new ArgumentException("No affiliate found with the specified id");
            }

            var affiliateOrders = _affiliateViewModelService.PrepareAffiliatedOrderList(affiliate, model, command.Page, command.PageSize);

            var gridModel = new DataSourceResult
            {
                Data  = affiliateOrders.affiliateOrderModels,
                Total = affiliateOrders.totalCount
            };

            return(Json(gridModel));
        }
示例#4
0
        public async Task <IViewComponentResult> InvokeAsync(string affiliateId)
        {
            if (!await _permissionService.Authorize(StandardPermission.ManageAffiliates))
            {
                return(Content(""));
            }

            if (String.IsNullOrEmpty(affiliateId))
            {
                throw new Exception("Affliate ID cannot be empty");
            }

            var model = new AffiliatedOrderListModel();

            model.AffliateId = affiliateId;
            var status = await _orderStatusService.GetAll();

            //order statuses
            model.AvailableOrderStatuses = status.Select(x => new SelectListItem()
            {
                Value = x.StatusId.ToString(), Text = x.Name
            }).ToList();
            model.AvailableOrderStatuses.Insert(0, new SelectListItem {
                Text = _translationService.GetResource("Admin.Common.All"), Value = ""
            });

            //payment statuses
            model.AvailablePaymentStatuses = PaymentStatus.Pending.ToSelectList(HttpContext, false).ToList();
            model.AvailablePaymentStatuses.Insert(0, new SelectListItem {
                Text = _translationService.GetResource("Admin.Common.All"), Value = ""
            });

            //shipping statuses
            model.AvailableShippingStatuses = ShippingStatus.Pending.ToSelectList(HttpContext, false).ToList();
            model.AvailableShippingStatuses.Insert(0, new SelectListItem {
                Text = _translationService.GetResource("Admin.Common.All"), Value = ""
            });

            return(View(model));
        }
        public virtual ActionResult AffiliatedOrderList(int affiliateId)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageAffiliates))
            {
                return(Content(""));
            }

            if (affiliateId == 0)
            {
                throw new Exception("Affliate ID cannot be 0");
            }

            var model = new AffiliatedOrderListModel();

            model.AffliateId = affiliateId;

            //order statuses
            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"
            });

            return(PartialView(model));
        }
示例#6
0
        public async Task <IViewComponentResult> InvokeAsync(string affiliateId)//original Action name: AffiliatedOrderList
        {
            if (!await _permissionService.Authorize(StandardPermissionProvider.ManageAffiliates))
            {
                return(Content(""));
            }

            if (String.IsNullOrEmpty(affiliateId))
            {
                throw new Exception("Affliate ID cannot be empty");
            }

            var model = new AffiliatedOrderListModel();

            model.AffliateId = affiliateId;

            //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 = ""
            });

            //shipping statuses
            model.AvailableShippingStatuses = ShippingStatus.NotYetShipped.ToSelectList(false).ToList();
            model.AvailableShippingStatuses.Insert(0, new SelectListItem {
                Text = _localizationService.GetResource("Admin.Common.All"), Value = ""
            });

            return(View(model));
        }
示例#7
0
        public virtual (IEnumerable <AffiliateModel.AffiliatedOrderModel> affiliateOrderModels, int totalCount) PrepareAffiliatedOrderList(Affiliate affiliate, AffiliatedOrderListModel model, int pageIndex, int pageSize)
        {
            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(
                createdFromUtc: startDateValue,
                createdToUtc: endDateValue,
                os: orderStatus,
                ps: paymentStatus,
                ss: shippingStatus,
                affiliateId: affiliate.Id,
                pageIndex: pageIndex - 1,
                pageSize: pageSize);

            return(orders.Select(order =>
            {
                var orderModel = new AffiliateModel.AffiliatedOrderModel();
                orderModel.Id = order.Id;
                orderModel.OrderNumber = order.OrderNumber;
                orderModel.OrderStatus = order.OrderStatus.GetLocalizedEnum(_localizationService, _workContext);
                orderModel.PaymentStatus = order.PaymentStatus.GetLocalizedEnum(_localizationService, _workContext);
                orderModel.ShippingStatus = order.ShippingStatus.GetLocalizedEnum(_localizationService, _workContext);
                orderModel.OrderTotal = _priceFormatter.FormatPrice(order.OrderTotal, true, false);
                orderModel.CreatedOn = _dateTimeHelper.ConvertToUserTime(order.CreatedOnUtc, DateTimeKind.Utc);
                return orderModel;
            }), orders.TotalCount);
        }
        public async Task <IActionResult> AffiliatedOrderList(DataSourceRequest command, AffiliatedOrderListModel model)
        {
            if (!await _permissionService.Authorize(StandardPermissionProvider.ManageOrders))
            {
                return(Json(new DataSourceResult {
                    Data = null,
                    Total = 0
                }));
            }

            var affiliate = await _affiliateService.GetAffiliateById(model.AffliateId);

            if (affiliate == null)
            {
                throw new ArgumentException("No affiliate found with the specified id");
            }

            var affiliateOrders = await _affiliateViewModelService.PrepareAffiliatedOrderList(affiliate, model, command.Page, command.PageSize);

            var gridModel = new DataSourceResult
            {
                Data  = affiliateOrders.affiliateOrderModels,
                Total = affiliateOrders.totalCount
            };

            return(Json(gridModel));
        }
        public virtual async Task <(IEnumerable <AffiliateModel.AffiliatedOrderModel> affiliateOrderModels, int totalCount)> PrepareAffiliatedOrderList(Affiliate affiliate, AffiliatedOrderListModel model, int pageIndex, int pageSize)
        {
            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 = await _orderService.SearchOrders(
                createdFromUtc : startDateValue,
                createdToUtc : endDateValue,
                os : orderStatus,
                ps : paymentStatus,
                ss : shippingStatus,
                affiliateId : affiliate.Id,
                pageIndex : pageIndex - 1,
                pageSize : pageSize);

            var affiliateorders = new List <AffiliateModel.AffiliatedOrderModel>();

            foreach (var order in orders)
            {
                var orderModel = new AffiliateModel.AffiliatedOrderModel {
                    Id             = order.Id,
                    OrderNumber    = order.OrderNumber,
                    OrderCode      = order.Code,
                    OrderStatus    = order.OrderStatus.GetLocalizedEnum(_localizationService, _workContext),
                    PaymentStatus  = order.PaymentStatus.GetLocalizedEnum(_localizationService, _workContext),
                    ShippingStatus = order.ShippingStatus.GetLocalizedEnum(_localizationService, _workContext),
                    OrderTotal     = await _priceFormatter.FormatPrice(order.OrderTotal, true, order.CustomerCurrencyCode, false, _workContext.WorkingLanguage),
                    CreatedOn      = _dateTimeHelper.ConvertToUserTime(order.CreatedOnUtc, DateTimeKind.Utc)
                };
                affiliateorders.Add(orderModel);
            }

            return(affiliateorders, orders.TotalCount);
        }
示例#10
0
 public AffiliateModel()
 {
     Address             = new AddressModel();
     AffiliatedOrderList = new AffiliatedOrderListModel();
 }
示例#11
0
        public ActionResult AffiliatedCustomerAndOrderList(int affiliateId)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageAffiliates))
            {
                return(Content(""));
            }

            if (affiliateId == 0)
            {
                throw new Exception("Affliate ID cannot be 0");
            }

            var model = new AffiliatedOrderListModel();

            model.AffliateId = affiliateId;

            //order statuses
            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"
            });

            model.AvailableSubAffiliates.Add(new SelectListItem {
                Text = "无", Value = "0"
            });
            var a = _affiliateService.GetAffiliateById(affiliateId);

            if (a != null && a.Level < 3)
            {
                var alla   = _affiliateService.GetAllAffiliates();
                var subids = new List <int?>();
                foreach (var asub in alla.Where(af => af.ParentAffiliateId == affiliateId))
                {
                    subids.Add(asub.Id);
                    model.AvailableSubAffiliates.Add(new SelectListItem {
                        Text = asub.GetFullName(), Value = asub.Id.ToString()
                    });
                }
                if (a.Level == 1 && subids.Count > 0)
                {
                    foreach (var asub in alla.Where(af => subids.Contains(af.ParentAffiliateId)))
                    {
                        model.AvailableSubAffiliates.Add(new SelectListItem {
                            Text = asub.GetFullName(), Value = asub.Id.ToString()
                        });
                    }
                }
            }
            return(PartialView(model));
        }