private async Task PrepareOrder(CustomerOrderListModel model, GetCustomerOrderList request) { if (request.Command.PageSize <= 0) { request.Command.PageSize = _orderSettings.PageSize; } if (request.Command.PageNumber <= 0) { request.Command.PageNumber = 1; } if (request.Command.PageSize == 0) { request.Command.PageSize = 10; } var customerId = string.Empty; var ownerId = string.Empty; if (!await _groupService.IsOwner(request.Customer)) { customerId = request.Customer.Id; } else { ownerId = request.Customer.Id; } var orders = await _orderService.SearchOrders( customerId : customerId, ownerId : ownerId, storeId : request.Store.Id, pageIndex : request.Command.PageNumber - 1, pageSize : request.Command.PageSize); model.PagingContext.LoadPagedList(orders); foreach (var order in orders) { var status = await _orderStatusService.GetByStatusId(order.OrderStatusId); var orderModel = new CustomerOrderListModel.OrderDetailsModel { Id = order.Id, OrderNumber = order.OrderNumber, OrderCode = order.Code, CustomerEmail = order.BillingAddress?.Email, CreatedOn = _dateTimeService.ConvertToUserTime(order.CreatedOnUtc, DateTimeKind.Utc), OrderStatusId = order.OrderStatusId, OrderStatus = status?.Name, PaymentStatus = order.PaymentStatusId.GetTranslationEnum(_translationService, request.Language.Id), ShippingStatus = order.ShippingStatusId.GetTranslationEnum(_translationService, request.Language.Id), IsMerchandiseReturnAllowed = await _mediator.Send(new IsMerchandiseReturnAllowedQuery() { Order = order }) }; orderModel.OrderTotal = await _priceFormatter.FormatPrice(order.OrderTotal, order.CustomerCurrencyCode, false, request.Language); model.Orders.Add(orderModel); } }
public async Task <OrderDetailsModel> Handle(GetOrderDetails request, CancellationToken cancellationToken) { var model = new OrderDetailsModel(); model.Id = request.Order.Id; model.OrderNumber = request.Order.OrderNumber; model.OrderCode = request.Order.Code; model.CreatedOn = _dateTimeService.ConvertToUserTime(request.Order.CreatedOnUtc, DateTimeKind.Utc); model.OrderStatus = (await _orderStatusService.GetByStatusId(request.Order.OrderStatusId))?.Name; model.IsReOrderAllowed = _orderSettings.IsReOrderAllowed; model.IsMerchandiseReturnAllowed = await _mediator.Send(new IsMerchandiseReturnAllowedQuery() { Order = request.Order }); model.PdfInvoiceDisabled = _pdfSettings.DisablePdfInvoicesForPendingOrders && request.Order.OrderStatusId == (int)OrderStatusSystem.Pending; model.ShowAddOrderNote = _orderSettings.AllowCustomerToAddOrderNote; //shipping info await PrepareShippingInfo(request, model); //billing info model.BillingAddress = await _mediator.Send(new GetAddressModel() { Language = request.Language, Model = null, Address = request.Order.BillingAddress, ExcludeProperties = false, }); //VAT number model.VatNumber = request.Order.VatNumber; //payment method await PreparePaymentMethod(request, model); //order subtotal await PrepareOrderTotal(request, model); //tax await PrepareTax(request, model); //discount (applied to order total) await PrepareDiscount(request, model); //gift vouchers await PrepareGiftVouchers(request, model); //loyalty points await PrepareLoyaltyPoints(request, model); //checkout attributes model.CheckoutAttributeInfo = request.Order.CheckoutAttributeDescription; //order notes await PrepareOrderNotes(request, model); //allow cancel order if (_orderSettings.UserCanCancelUnpaidOrder) { if (request.Order.OrderStatusId == (int)OrderStatusSystem.Pending && request.Order.PaymentStatusId == Domain.Payments.PaymentStatus.Pending && (request.Order.ShippingStatusId == ShippingStatus.ShippingNotRequired || request.Order.ShippingStatusId == ShippingStatus.Pending)) { model.UserCanCancelUnpaidOrder = true; } } //purchased products await PrepareOrderItems(request, model); return(model); }