本文整理汇总了C#中Nop.Admin.Models.Orders.OrderModel类的典型用法代码示例。如果您正苦于以下问题:C# OrderModel类的具体用法?C# OrderModel怎么用?C# OrderModel使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
OrderModel类属于Nop.Admin.Models.Orders命名空间,在下文中一共展示了OrderModel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RefundOrderOffline
public ActionResult RefundOrderOffline(int id)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
throw new ArgumentException("No order found with the specified id");
try
{
_orderProcessingService.RefundOffline(order);
var model = new OrderModel();
PrepareOrderDetailsModel(model, order);
return View(model);
}
catch (Exception exc)
{
//error
var model = new OrderModel();
PrepareOrderDetailsModel(model, order);
ErrorNotification(exc, false);
return View(model);
}
}
示例2: PrepareOrderDetailsModel
protected void PrepareOrderDetailsModel(OrderModel model, Order order)
{
if (order == null)
throw new ArgumentNullException("order");
if (model == null)
throw new ArgumentNullException("model");
model.Id = order.Id;
model.OrderStatus = order.OrderStatus.GetLocalizedEnum(_localizationService, _workContext);
model.OrderGuid = order.OrderGuid;
model.CustomerId = order.CustomerId;
model.CustomerIp = order.CustomerIp;
model.VatNumber = order.VatNumber;
model.CreatedOn = _dateTimeHelper.ConvertToUserTime(order.CreatedOnUtc, DateTimeKind.Utc);
model.DisplayPdfInvoice = _pdfSettings.Enabled;
model.AllowCustomersToSelectTaxDisplayType = _taxSettings.AllowCustomersToSelectTaxDisplayType;
model.TaxDisplayType = _taxSettings.TaxDisplayType;
model.AffiliateId = order.AffiliateId;
#region Order totals
var primaryStoreCurrency = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId);
//subtotal
model.OrderSubtotalInclTax = _priceFormatter.FormatPrice(order.OrderSubtotalInclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, true);
model.OrderSubtotalExclTax = _priceFormatter.FormatPrice(order.OrderSubtotalExclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, false);
model.OrderSubtotalInclTaxValue = order.OrderSubtotalInclTax;
model.OrderSubtotalExclTaxValue = order.OrderSubtotalExclTax;
//discount (applied to order subtotal)
string orderSubtotalDiscountInclTaxStr = _priceFormatter.FormatPrice(order.OrderSubTotalDiscountInclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, true);
string orderSubtotalDiscountExclTaxStr = _priceFormatter.FormatPrice(order.OrderSubTotalDiscountExclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, false);
if (order.OrderSubTotalDiscountInclTax > decimal.Zero)
model.OrderSubTotalDiscountInclTax = orderSubtotalDiscountInclTaxStr;
if (order.OrderSubTotalDiscountExclTax > decimal.Zero)
model.OrderSubTotalDiscountExclTax = orderSubtotalDiscountExclTaxStr;
model.OrderSubTotalDiscountInclTaxValue = order.OrderSubTotalDiscountInclTax;
model.OrderSubTotalDiscountExclTaxValue = order.OrderSubTotalDiscountExclTax;
//shipping
model.OrderShippingInclTax = _priceFormatter.FormatShippingPrice(order.OrderShippingInclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, true);
model.OrderShippingExclTax = _priceFormatter.FormatShippingPrice(order.OrderShippingExclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, false);
model.OrderShippingInclTaxValue = order.OrderShippingInclTax;
model.OrderShippingExclTaxValue = order.OrderShippingExclTax;
//payment method additional fee
if (order.PaymentMethodAdditionalFeeInclTax > decimal.Zero)
{
model.PaymentMethodAdditionalFeeInclTax = _priceFormatter.FormatPaymentMethodAdditionalFee(order.PaymentMethodAdditionalFeeInclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, true);
model.PaymentMethodAdditionalFeeExclTax = _priceFormatter.FormatPaymentMethodAdditionalFee(order.PaymentMethodAdditionalFeeExclTax, true, primaryStoreCurrency, _workContext.WorkingLanguage, false);
}
model.PaymentMethodAdditionalFeeInclTaxValue = order.PaymentMethodAdditionalFeeInclTax;
model.PaymentMethodAdditionalFeeExclTaxValue = order.PaymentMethodAdditionalFeeExclTax;
//tax
model.Tax = _priceFormatter.FormatPrice(order.OrderTax, true, false);
SortedDictionary<decimal, decimal> taxRates = order.TaxRatesDictionary;
bool displayTaxRates = _taxSettings.DisplayTaxRates && taxRates.Count > 0;
bool displayTax = !displayTaxRates;
foreach (var tr in order.TaxRatesDictionary)
{
model.TaxRates.Add(new OrderModel.TaxRate()
{
Rate = _priceFormatter.FormatTaxRate(tr.Key),
Value = _priceFormatter.FormatPrice(tr.Value, true, false),
});
}
model.DisplayTaxRates = displayTaxRates;
model.DisplayTax = displayTax;
model.TaxValue = order.OrderTax;
model.TaxRatesValue = order.TaxRates;
//discount
if (order.OrderDiscount > 0)
model.OrderTotalDiscount = _priceFormatter.FormatPrice(-order.OrderDiscount, true, false);
model.OrderTotalDiscountValue = order.OrderDiscount;
//gift cards
foreach (var gcuh in order.GiftCardUsageHistory)
{
model.GiftCards.Add(new OrderModel.GiftCard()
{
CouponCode = gcuh.GiftCard.GiftCardCouponCode,
Amount = _priceFormatter.FormatPrice(-gcuh.UsedValue, true, false),
});
}
//reward points
if (order.RedeemedRewardPointsEntry != null)
{
model.RedeemedRewardPoints = -order.RedeemedRewardPointsEntry.Points;
model.RedeemedRewardPointsAmount = _priceFormatter.FormatPrice(-order.RedeemedRewardPointsEntry.UsedAmount, true, false);
}
//total
model.OrderTotal = _priceFormatter.FormatPrice(order.OrderTotal, true, false);
model.OrderTotalValue = order.OrderTotal;
//refunded amount
if (order.RefundedAmount > decimal.Zero)
//.........这里部分代码省略.........
示例3: DeleteLicenseFilePopup
public ActionResult DeleteLicenseFilePopup(string btnId, string formId, OrderModel.UploadLicenseModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(model.OrderId);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
var orderProductVariant = order.OrderProductVariants.Where(x => x.Id == model.OrderProductVariantId).FirstOrDefault();
if (orderProductVariant == null)
throw new ArgumentException("No order product variant found with the specified id");
//attach license
orderProductVariant.LicenseDownloadId = null;
_orderService.UpdateOrder(order);
//success
ViewBag.RefreshPage = true;
ViewBag.btnId = btnId;
ViewBag.formId = formId;
return View(model);
}
示例4: OrderList
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
};
}
示例5: PartiallyRefundOrderPopup
public ActionResult PartiallyRefundOrderPopup(string btnId, string formId, int id, bool online, OrderModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
try
{
decimal amountToRefund = model.AmountToRefund;
if (amountToRefund <= decimal.Zero)
throw new NopException("Enter amount to refund");
decimal maxAmountToRefund = order.OrderTotal - order.RefundedAmount;
if (amountToRefund > maxAmountToRefund)
amountToRefund = maxAmountToRefund;
var errors = new List<string>();
if (online)
errors = _orderProcessingService.PartiallyRefund(order, amountToRefund).ToList();
else
_orderProcessingService.PartiallyRefundOffline(order, amountToRefund);
if (errors.Count == 0)
{
//success
ViewBag.RefreshPage = true;
ViewBag.btnId = btnId;
ViewBag.formId = formId;
PrepareOrderDetailsModel(model, order);
return View(model);
}
else
{
//error
PrepareOrderDetailsModel(model, order);
foreach (var error in errors)
ErrorNotification(error, false);
return View(model);
}
}
catch (Exception exc)
{
//error
PrepareOrderDetailsModel(model, order);
ErrorNotification(exc, false);
return View(model);
}
}
示例6: CancelOrder
public ActionResult CancelOrder(int id)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor does not have to this functionality
if (_workContext.CurrentVendor != null)
return RedirectToAction("Edit", "Order", new { id = id });
try
{
_orderProcessingService.CancelOrder(order, true);
var model = new OrderModel();
PrepareOrderDetailsModel(model, order);
return View(model);
}
catch (Exception exc)
{
//error
var model = new OrderModel();
PrepareOrderDetailsModel(model, order);
ErrorNotification(exc, false);
return View(model);
}
}
示例7: EditOrderProductVariant
public ActionResult EditOrderProductVariant(int id, FormCollection form)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
ViewData["selectedTab"] = "products";
//get order product variant identifier
int opvId = 0;
foreach (var formValue in form.AllKeys)
if (formValue.StartsWith("btnSaveOpv", StringComparison.InvariantCultureIgnoreCase))
opvId = Convert.ToInt32(formValue.Substring("btnSaveOpv".Length));
var orderProductVariant = order.OrderProductVariants.Where(x => x.Id == opvId).FirstOrDefault();
if (orderProductVariant == null)
throw new ArgumentException("No order product variant found with the specified id");
decimal unitPriceInclTax, unitPriceExclTax, discountInclTax, discountExclTax,priceInclTax,priceExclTax;
int quantity;
if (!decimal.TryParse(form["pvUnitPriceInclTax" + opvId], out unitPriceInclTax))
unitPriceInclTax =orderProductVariant.UnitPriceInclTax;
if (!decimal.TryParse(form["pvUnitPriceExclTax" + opvId], out unitPriceExclTax))
unitPriceExclTax = orderProductVariant.UnitPriceExclTax;
if (!int.TryParse(form["pvQuantity" + opvId], out quantity))
quantity = orderProductVariant.Quantity;
if (!decimal.TryParse(form["pvDiscountInclTax" + opvId], out discountInclTax))
discountInclTax = orderProductVariant.DiscountAmountInclTax;
if (!decimal.TryParse(form["pvDiscountExclTax" + opvId], out discountExclTax))
discountExclTax = orderProductVariant.DiscountAmountExclTax;
if (!decimal.TryParse(form["pvPriceInclTax" + opvId], out priceInclTax))
priceInclTax = orderProductVariant.PriceInclTax;
if (!decimal.TryParse(form["pvPriceExclTax" + opvId], out priceExclTax))
priceExclTax = orderProductVariant.PriceExclTax;
if (quantity > 0)
{
orderProductVariant.UnitPriceInclTax = unitPriceInclTax;
orderProductVariant.UnitPriceExclTax = unitPriceExclTax;
orderProductVariant.Quantity = quantity;
orderProductVariant.DiscountAmountInclTax = discountInclTax;
orderProductVariant.DiscountAmountExclTax = discountExclTax;
orderProductVariant.PriceInclTax = priceInclTax;
orderProductVariant.PriceExclTax = priceExclTax;
_orderService.UpdateOrder(order);
}
else
{
_orderService.DeleteOrderProductVariant(orderProductVariant);
}
var model = new OrderModel();
PrepareOrderDetailsModel(model, order);
return View(model);
}
示例8: EditOrderTotals
public ActionResult EditOrderTotals(int id, OrderModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageActualSales))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor does not have access to this functionality
if (_workContext.CurrentVendor != null)
return RedirectToAction("Edit", "Order", new { id = id });
order.OrderSubtotalInclTax = model.OrderSubtotalInclTaxValue;
order.OrderSubtotalExclTax = model.OrderSubtotalExclTaxValue;
order.OrderSubTotalDiscountInclTax = model.OrderSubTotalDiscountInclTaxValue;
order.OrderSubTotalDiscountExclTax = model.OrderSubTotalDiscountExclTaxValue;
order.OrderShippingInclTax = model.OrderShippingInclTaxValue;
order.OrderShippingExclTax = model.OrderShippingExclTaxValue;
order.PaymentMethodAdditionalFeeInclTax = model.PaymentMethodAdditionalFeeInclTaxValue;
order.PaymentMethodAdditionalFeeExclTax = model.PaymentMethodAdditionalFeeExclTaxValue;
order.TaxRates = model.TaxRatesValue;
order.OrderTax = model.TaxValue;
order.OrderDiscount = model.OrderTotalDiscountValue;
order.OrderTotal = model.OrderTotalValue;
_orderService.UpdateOrder(order);
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = "Order totals have been edited",
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
PrepareOrderDetailsModel(model, order);
return View(model);
}
示例9: EditShippingMethod
public ActionResult EditShippingMethod(int id, OrderModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor does not have access to this functionality
if (_workContext.CurrentVendor != null)
return RedirectToAction("Edit", "Order", new { id = id });
order.ShippingMethod = model.ShippingMethod;
_orderService.UpdateOrder(order);
PrepareOrderDetailsModel(model, order);
//selected tab
SaveSelectedTabIndex(persistForTheNextRequest: false);
return View(model);
}
示例10: ChangeOrderStatus
public ActionResult ChangeOrderStatus(int id, OrderModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageActualSales))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor does not have access to this functionality
if (_workContext.CurrentVendor != null)
return RedirectToAction("Edit", "Order", new { id = id });
try
{
order.OrderStatusId = model.OrderStatusId;
_orderService.UpdateOrder(order);
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = string.Format("Order status has been edited. New status: {0}", order.OrderStatus.GetLocalizedEnum(_localizationService, _workContext)),
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
model = new OrderModel();
PrepareOrderDetailsModel(model, order);
return View(model);
}
catch (Exception exc)
{
//error
model = new OrderModel();
PrepareOrderDetailsModel(model, order);
ErrorNotification(exc, false);
return View(model);
}
}
示例11: EditCreditCardInfo
public ActionResult EditCreditCardInfo(int id, OrderModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageActualSales))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor does not have access to this functionality
if (_workContext.CurrentVendor != null)
return RedirectToAction("Edit", "Order", new { id = id });
if (order.AllowStoringCreditCardNumber)
{
string cardType = model.CardType;
string cardName = model.CardName;
string cardNumber = model.CardNumber;
string cardCvv2 = model.CardCvv2;
string cardExpirationMonth = model.CardExpirationMonth;
string cardExpirationYear = model.CardExpirationYear;
order.CardType = _encryptionService.EncryptText(cardType);
order.CardName = _encryptionService.EncryptText(cardName);
order.CardNumber = _encryptionService.EncryptText(cardNumber);
order.MaskedCreditCardNumber = _encryptionService.EncryptText(_paymentService.GetMaskedCreditCardNumber(cardNumber));
order.CardCvv2 = _encryptionService.EncryptText(cardCvv2);
order.CardExpirationMonth = _encryptionService.EncryptText(cardExpirationMonth);
order.CardExpirationYear = _encryptionService.EncryptText(cardExpirationYear);
_orderService.UpdateOrder(order);
}
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = "Credit card info has been edited",
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
PrepareOrderDetailsModel(model, order);
return View(model);
}
示例12: DeleteOrderItem
public ActionResult DeleteOrderItem(int id, FormCollection form)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor does not have access to this functionality
if (_workContext.CurrentVendor != null)
return RedirectToAction("Edit", "Order", new { id = id });
//get order item identifier
int orderItemId = 0;
foreach (var formValue in form.AllKeys)
if (formValue.StartsWith("btnDeleteOrderItem", StringComparison.InvariantCultureIgnoreCase))
orderItemId = Convert.ToInt32(formValue.Substring("btnDeleteOrderItem".Length));
var orderItem = order.OrderItems.FirstOrDefault(x => x.Id == orderItemId);
if (orderItem == null)
throw new ArgumentException("No order item found with the specified id");
if (_giftCardService.GetGiftCardsByPurchasedWithOrderItemId(orderItem.Id).Any())
{
//we cannot delete an order item with associated gift cards
//a store owner should delete them first
var model = new OrderModel();
PrepareOrderDetailsModel(model, order);
ErrorNotification("This order item has an associated gift card record. Please delete it first.", false);
//selected tab
SaveSelectedTabName(persistForTheNextRequest: false);
return View(model);
}
else
{
//adjust inventory
_productService.AdjustInventory(orderItem.Product, orderItem.Quantity, orderItem.AttributesXml);
//delete item
_orderService.DeleteOrderItem(orderItem);
//update order totals
var updateOrderParameters = new UpdateOrderParameters
{
UpdatedOrder = order,
UpdatedOrderItem = orderItem
};
_orderProcessingService.UpdateOrderTotals(updateOrderParameters);
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = "Order item has been deleted",
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
LogEditOrder(order.Id);
var model = new OrderModel();
PrepareOrderDetailsModel(model, order);
model.Warnings = updateOrderParameters.Warnings;
//selected tab
SaveSelectedTabName(persistForTheNextRequest: false);
return View(model);
}
}
示例13: EditOrderItem
public ActionResult EditOrderItem(int id, FormCollection form)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor does not have access to this functionality
if (_workContext.CurrentVendor != null)
return RedirectToAction("Edit", "Order", new { id = id });
//get order item identifier
int orderItemId = 0;
foreach (var formValue in form.AllKeys)
if (formValue.StartsWith("btnSaveOrderItem", StringComparison.InvariantCultureIgnoreCase))
orderItemId = Convert.ToInt32(formValue.Substring("btnSaveOrderItem".Length));
var orderItem = order.OrderItems.FirstOrDefault(x => x.Id == orderItemId);
if (orderItem == null)
throw new ArgumentException("No order item found with the specified id");
decimal unitPriceInclTax, unitPriceExclTax, discountInclTax, discountExclTax,priceInclTax,priceExclTax;
int quantity;
if (!decimal.TryParse(form["pvUnitPriceInclTax" + orderItemId], out unitPriceInclTax))
unitPriceInclTax = orderItem.UnitPriceInclTax;
if (!decimal.TryParse(form["pvUnitPriceExclTax" + orderItemId], out unitPriceExclTax))
unitPriceExclTax = orderItem.UnitPriceExclTax;
if (!int.TryParse(form["pvQuantity" + orderItemId], out quantity))
quantity = orderItem.Quantity;
if (!decimal.TryParse(form["pvDiscountInclTax" + orderItemId], out discountInclTax))
discountInclTax = orderItem.DiscountAmountInclTax;
if (!decimal.TryParse(form["pvDiscountExclTax" + orderItemId], out discountExclTax))
discountExclTax = orderItem.DiscountAmountExclTax;
if (!decimal.TryParse(form["pvPriceInclTax" + orderItemId], out priceInclTax))
priceInclTax = orderItem.PriceInclTax;
if (!decimal.TryParse(form["pvPriceExclTax" + orderItemId], out priceExclTax))
priceExclTax = orderItem.PriceExclTax;
if (quantity > 0)
{
int qtyDifference = orderItem.Quantity - quantity;
if (!_orderSettings.AutoUpdateOrderTotalsOnEditingOrder)
{
orderItem.UnitPriceInclTax = unitPriceInclTax;
orderItem.UnitPriceExclTax = unitPriceExclTax;
orderItem.Quantity = quantity;
orderItem.DiscountAmountInclTax = discountInclTax;
orderItem.DiscountAmountExclTax = discountExclTax;
orderItem.PriceInclTax = priceInclTax;
orderItem.PriceExclTax = priceExclTax;
_orderService.UpdateOrder(order);
}
//adjust inventory
_productService.AdjustInventory(orderItem.Product, qtyDifference, orderItem.AttributesXml);
}
else
{
//adjust inventory
_productService.AdjustInventory(orderItem.Product, orderItem.Quantity, orderItem.AttributesXml);
//delete item
_orderService.DeleteOrderItem(orderItem);
}
//update order totals
var updateOrderParameters = new UpdateOrderParameters
{
UpdatedOrder = order,
UpdatedOrderItem = orderItem,
PriceInclTax = unitPriceInclTax,
PriceExclTax = unitPriceExclTax,
DiscountAmountInclTax = discountInclTax,
DiscountAmountExclTax = discountExclTax,
SubTotalInclTax = priceInclTax,
SubTotalExclTax = priceExclTax,
Quantity = quantity
};
_orderProcessingService.UpdateOrderTotals(updateOrderParameters);
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = "Order item has been edited",
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
LogEditOrder(order.Id);
var model = new OrderModel();
PrepareOrderDetailsModel(model, order);
model.Warnings = updateOrderParameters.Warnings;
//.........这里部分代码省略.........
示例14: EditShippingMethod
public ActionResult EditShippingMethod(int id, OrderModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(id);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor does not have access to this functionality
if (_workContext.CurrentVendor != null)
return RedirectToAction("Edit", "Order", new { id = id });
order.ShippingMethod = model.ShippingMethod;
_orderService.UpdateOrder(order);
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = "Shipping method has been edited",
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
LogEditOrder(order.Id);
PrepareOrderDetailsModel(model, order);
//selected tab
SaveSelectedTabName(persistForTheNextRequest: false);
return View(model);
}
示例15: AddProductToOrder
public ActionResult AddProductToOrder(GridCommand command, OrderModel.AddOrderProductModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
//a vendor does not have to this functionality
if (_workContext.CurrentVendor != null)
return Content("");
var gridModel = new GridModel();
var products = _productService.SearchProducts(categoryIds: new List<int>() {model.SearchCategoryId},
manufacturerId: model.SearchManufacturerId,
productType: model.SearchProductTypeId > 0 ? (ProductType?)model.SearchProductTypeId : null,
keywords: model.SearchProductName,
pageIndex: command.Page - 1,
pageSize: command.PageSize,
showHidden: true);
gridModel.Data = products.Select(x =>
{
var productModel = new OrderModel.AddOrderProductModel.ProductModel()
{
Id = x.Id,
Name = x.Name,
Sku = x.Sku,
};
return productModel;
});
gridModel.Total = products.TotalCount;
return new JsonResult
{
Data = gridModel
};
}