本文整理汇总了C#中Nop.Admin.Models.Orders.ShipmentModel类的典型用法代码示例。如果您正苦于以下问题:C# ShipmentModel类的具体用法?C# ShipmentModel怎么用?C# ShipmentModel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ShipmentModel类属于Nop.Admin.Models.Orders命名空间,在下文中一共展示了ShipmentModel类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PrepareShipmentModel
protected ShipmentModel PrepareShipmentModel(Shipment shipment, bool prepareProducts)
{
//measures
var baseWeight = _measureService.GetMeasureWeightById(_measureSettings.BaseWeightId);
var baseWeightIn = baseWeight != null ? baseWeight.Name : "";
var baseDimension = _measureService.GetMeasureDimensionById(_measureSettings.BaseDimensionId);
var baseDimensionIn = baseDimension != null ? baseDimension.Name : "";
var model = new ShipmentModel()
{
Id = shipment.Id,
OrderId = shipment.OrderId,
TrackingNumber = shipment.TrackingNumber,
TotalWeight = shipment.TotalWeight.HasValue ? string.Format("{0:F2} [{1}]", shipment.TotalWeight, baseWeightIn) : "",
ShippedDate = shipment.ShippedDateUtc.HasValue ? _dateTimeHelper.ConvertToUserTime(shipment.ShippedDateUtc.Value, DateTimeKind.Utc).ToString() : _localizationService.GetResource("Admin.Orders.Shipments.ShippedDate.NotYet"),
CanShip = !shipment.ShippedDateUtc.HasValue,
DeliveryDate = shipment.DeliveryDateUtc.HasValue ? _dateTimeHelper.ConvertToUserTime(shipment.DeliveryDateUtc.Value, DateTimeKind.Utc).ToString() : _localizationService.GetResource("Admin.Orders.Shipments.DeliveryDate.NotYet"),
CanDeliver = shipment.ShippedDateUtc.HasValue && !shipment.DeliveryDateUtc.HasValue,
DisplayPdfPackagingSlip = _pdfSettings.Enabled,
};
if (prepareProducts)
{
foreach (var sopv in shipment.ShipmentOrderProductVariants)
{
var opv = _orderService.GetOrderProductVariantById(sopv.OrderProductVariantId);
if (opv == null)
continue;
//quantities
var qtyInThisShipment = sopv.Quantity;
var maxQtyToAdd = opv.GetTotalNumberOfItemsCanBeAddedToShipment();
var qtyOrdered = opv.Quantity;
var qtyInAllShipments = opv.GetTotalNumberOfItemsInAllShipment();
var sopvModel = new ShipmentModel.ShipmentOrderProductVariantModel()
{
Id = sopv.Id,
OrderProductVariantId = opv.Id,
ProductVariantId = opv.ProductVariantId,
Sku = opv.ProductVariant.Sku,
AttributeInfo = opv.AttributeDescription,
ItemWeight = opv.ItemWeight.HasValue ? string.Format("{0:F2} [{1}]", opv.ItemWeight, baseWeightIn) : "",
ItemDimensions = string.Format("{0:F2} x {1:F2} x {2:F2} [{3}]", opv.ProductVariant.Length, opv.ProductVariant.Width, opv.ProductVariant.Height, baseDimensionIn),
QuantityOrdered = qtyOrdered,
QuantityInThisShipment = qtyInThisShipment,
QuantityInAllShipments = qtyInAllShipments,
QuantityToAdd = maxQtyToAdd,
};
//product name
if (!String.IsNullOrEmpty(opv.ProductVariant.Name))
sopvModel.FullProductName = string.Format("{0} ({1})", opv.ProductVariant.Product.Name,
opv.ProductVariant.Name);
else
sopvModel.FullProductName = opv.ProductVariant.Product.Name;
model.Products.Add(sopvModel);
}
}
return model;
}
示例2: AddShipment
public ActionResult AddShipment(int orderId)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(orderId);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
var model = new ShipmentModel()
{
OrderId = order.Id,
};
//measures
var baseWeight = _measureService.GetMeasureWeightById(_measureSettings.BaseWeightId);
var baseWeightIn = baseWeight != null ? baseWeight.Name : "";
var baseDimension = _measureService.GetMeasureDimensionById(_measureSettings.BaseDimensionId);
var baseDimensionIn = baseDimension != null ? baseDimension.Name : "";
foreach (var opv in order.OrderProductVariants)
{
//we can ship only shippable products
if (!opv.ProductVariant.IsShipEnabled)
continue;
//quantities
var qtyInThisShipment = 0;
var maxQtyToAdd = opv.GetTotalNumberOfItemsCanBeAddedToShipment();
var qtyOrdered = opv.Quantity;
var qtyInAllShipments = opv.GetTotalNumberOfItemsInAllShipment();
//ensure that this product variant can be added to a shipment
if (maxQtyToAdd <= 0)
continue;
var sopvModel = new ShipmentModel.ShipmentOrderProductVariantModel()
{
OrderProductVariantId = opv.Id,
ProductVariantId = opv.ProductVariantId,
Sku = opv.ProductVariant.Sku,
AttributeInfo = opv.AttributeDescription,
ItemWeight = opv.ItemWeight.HasValue ? string.Format("{0:F2} [{1}]", opv.ItemWeight, baseWeightIn) : "",
ItemDimensions = string.Format("{0:F2} x {1:F2} x {2:F2} [{3}]", opv.ProductVariant.Length, opv.ProductVariant.Width, opv.ProductVariant.Height, baseDimensionIn),
QuantityOrdered = qtyOrdered,
QuantityInThisShipment = qtyInThisShipment,
QuantityInAllShipments = qtyInAllShipments,
QuantityToAdd = maxQtyToAdd,
};
//product name
if (!String.IsNullOrEmpty(opv.ProductVariant.Name))
sopvModel.FullProductName = string.Format("{0} ({1})", opv.ProductVariant.Product.Name, opv.ProductVariant.Name);
else
sopvModel.FullProductName = opv.ProductVariant.Product.Name;
model.Products.Add(sopvModel);
}
return View(model);
}
示例3: AddShipment
public ActionResult AddShipment(int orderId)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(orderId);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && !HasAccessToOrder(order))
return RedirectToAction("List");
var model = new ShipmentModel()
{
OrderId = order.Id,
};
//measures
var baseWeight = _measureService.GetMeasureWeightById(_measureSettings.BaseWeightId);
var baseWeightIn = baseWeight != null ? baseWeight.Name : "";
var baseDimension = _measureService.GetMeasureDimensionById(_measureSettings.BaseDimensionId);
var baseDimensionIn = baseDimension != null ? baseDimension.Name : "";
var orderItems = order.OrderItems;
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null)
{
orderItems = orderItems.Where(orderItem => HasAccessToOrderItem(orderItem)).ToList();
}
foreach (var orderItem in orderItems)
{
//we can ship only shippable products
if (!orderItem.Product.IsShipEnabled)
continue;
//quantities
var qtyInThisShipment = 0;
var maxQtyToAdd = orderItem.GetTotalNumberOfItemsCanBeAddedToShipment();
var qtyOrdered = orderItem.Quantity;
var qtyInAllShipments = orderItem.GetTotalNumberOfItemsInAllShipment();
//ensure that this product can be added to a shipment
if (maxQtyToAdd <= 0)
continue;
var shipmentItemModel = new ShipmentModel.ShipmentItemModel()
{
OrderItemId = orderItem.Id,
ProductId = orderItem.ProductId,
ProductName = orderItem.Product.Name,
Sku = orderItem.Product.FormatSku(orderItem.AttributesXml, _productAttributeParser),
AttributeInfo = orderItem.AttributeDescription,
ItemWeight = orderItem.ItemWeight.HasValue ? string.Format("{0:F2} [{1}]", orderItem.ItemWeight, baseWeightIn) : "",
ItemDimensions = string.Format("{0:F2} x {1:F2} x {2:F2} [{3}]", orderItem.Product.Length, orderItem.Product.Width, orderItem.Product.Height, baseDimensionIn),
QuantityOrdered = qtyOrdered,
QuantityInThisShipment = qtyInThisShipment,
QuantityInAllShipments = qtyInAllShipments,
QuantityToAdd = maxQtyToAdd,
};
model.Items.Add(shipmentItemModel);
}
return View(model);
}
示例4: SetTrackingNumber
public ActionResult SetTrackingNumber(ShipmentModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var shipment = _shipmentService.GetShipmentById(model.Id);
if (shipment == null)
//No shipment found with the specified id
return RedirectToAction("List");
shipment.TrackingNumber = model.TrackingNumber;
_shipmentService.UpdateShipment(shipment);
return RedirectToAction("ShipmentDetails", new { id = shipment.Id });
}
示例5: SetTrackingNumber
public ActionResult SetTrackingNumber(ShipmentModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var shipment = _shipmentService.GetShipmentById(model.Id);
if (shipment == null)
//No shipment found with the specified id
return RedirectToAction("List");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && !HasAccessToShipment(shipment))
return RedirectToAction("List");
shipment.TrackingNumber = model.TrackingNumber;
_shipmentService.UpdateShipment(shipment);
return RedirectToAction("ShipmentDetails", new { id = shipment.Id });
}
示例6: PrepareShipmentModel
protected ShipmentModel PrepareShipmentModel(Shipment shipment, bool prepareProducts)
{
//measures
var baseWeight = _measureService.GetMeasureWeightById(_measureSettings.BaseWeightId);
var baseWeightIn = baseWeight != null ? baseWeight.Name : "";
var baseDimension = _measureService.GetMeasureDimensionById(_measureSettings.BaseDimensionId);
var baseDimensionIn = baseDimension != null ? baseDimension.Name : "";
var model = new ShipmentModel()
{
Id = shipment.Id,
OrderId = shipment.OrderId,
TrackingNumber = shipment.TrackingNumber,
TotalWeight = shipment.TotalWeight.HasValue ? string.Format("{0:F2} [{1}]", shipment.TotalWeight, baseWeightIn) : "",
ShippedDate = shipment.ShippedDateUtc.HasValue ? _dateTimeHelper.ConvertToUserTime(shipment.ShippedDateUtc.Value, DateTimeKind.Utc).ToString() : _localizationService.GetResource("Admin.Orders.Shipments.ShippedDate.NotYet"),
ShippedDateUtc = shipment.ShippedDateUtc,
CanShip = !shipment.ShippedDateUtc.HasValue,
DeliveryDate = shipment.DeliveryDateUtc.HasValue ? _dateTimeHelper.ConvertToUserTime(shipment.DeliveryDateUtc.Value, DateTimeKind.Utc).ToString() : _localizationService.GetResource("Admin.Orders.Shipments.DeliveryDate.NotYet"),
DeliveryDateUtc = shipment.DeliveryDateUtc,
CanDeliver = shipment.ShippedDateUtc.HasValue && !shipment.DeliveryDateUtc.HasValue,
};
if (prepareProducts)
{
foreach (var shipmentItem in shipment.ShipmentItems)
{
var orderItem = _orderService.GetOrderItemById(shipmentItem.OrderItemId);
if (orderItem == null)
continue;
//quantities
var qtyInThisShipment = shipmentItem.Quantity;
var maxQtyToAdd = orderItem.GetTotalNumberOfItemsCanBeAddedToShipment();
var qtyOrdered = orderItem.Quantity;
var qtyInAllShipments = orderItem.GetTotalNumberOfItemsInAllShipment();
var shipmentItemModel = new ShipmentModel.ShipmentItemModel()
{
Id = shipmentItem.Id,
OrderItemId = orderItem.Id,
ProductId = orderItem.ProductId,
ProductName = orderItem.Product.Name,
Sku = orderItem.Product.FormatSku(orderItem.AttributesXml, _productAttributeParser),
AttributeInfo = orderItem.AttributeDescription,
ItemWeight = orderItem.ItemWeight.HasValue ? string.Format("{0:F2} [{1}]", orderItem.ItemWeight, baseWeightIn) : "",
ItemDimensions = string.Format("{0:F2} x {1:F2} x {2:F2} [{3}]", orderItem.Product.Length, orderItem.Product.Width, orderItem.Product.Height, baseDimensionIn),
QuantityOrdered = qtyOrdered,
QuantityInThisShipment = qtyInThisShipment,
QuantityInAllShipments = qtyInAllShipments,
QuantityToAdd = maxQtyToAdd,
};
model.Items.Add(shipmentItemModel);
}
}
return model;
}
示例7: EditShippedDate
public ActionResult EditShippedDate(ShipmentModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var shipment = _shipmentService.GetShipmentById(model.Id);
if (shipment == null)
//No shipment found with the specified id
return RedirectToAction("List");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && !HasAccessToShipment(shipment))
return RedirectToAction("List");
try
{
if (!model.ShippedDateUtc.HasValue)
{
throw new Exception("Enter shipped date");
}
shipment.ShippedDateUtc = model.ShippedDateUtc;
_shipmentService.UpdateShipment(shipment);
return RedirectToAction("ShipmentDetails", new { id = shipment.Id });
}
catch (Exception exc)
{
//error
ErrorNotification(exc, true);
return RedirectToAction("ShipmentDetails", new { id = shipment.Id });
}
}
示例8: AddShipment
public ActionResult AddShipment(int orderId)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(orderId);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
var model = new ShipmentModel()
{
OrderId = order.Id,
};
foreach (var opv in order.OrderProductVariants)
{
//we can ship only shippable products
if (!opv.ProductVariant.IsShipEnabled)
continue;
//quantities
var qtyShippedTotal = opv.GetTotalNumberOfShippedItems();
var qtyOrdered = opv.Quantity;
var maxQtyToShip = qtyOrdered - qtyShippedTotal;
if (maxQtyToShip < 0)
maxQtyToShip = 0;
//ensure that this product variant can be shipped (have at least one item to ship)
if (maxQtyToShip <= 0)
continue;
var sopvModel = new ShipmentModel.ShipmentOrderProductVariantModel()
{
OrderProductVariantId = opv.Id,
ProductVariantId = opv.ProductVariantId,
AttributeInfo = opv.AttributeDescription,
QuantityOrdered = qtyOrdered,
QuantityShippedTotal = qtyShippedTotal,
QuantityToShip = maxQtyToShip,
};
//product name
if (!String.IsNullOrEmpty(opv.ProductVariant.Name))
sopvModel.FullProductName = string.Format("{0} ({1})", opv.ProductVariant.Product.Name, opv.ProductVariant.Name);
else
sopvModel.FullProductName = opv.ProductVariant.Product.Name;
model.Products.Add(sopvModel);
}
return View(model);
}
示例9: ShipmentDetails
public ActionResult ShipmentDetails(int id)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var shipment = _shipmentService.GetShipmentById(id);
if (shipment == null)
//No shipment found with the specified id
return RedirectToAction("List");
var model = new ShipmentModel()
{
Id = shipment.Id,
OrderId = shipment.OrderId,
TrackingNumber = shipment.TrackingNumber,
ShippedDate = _dateTimeHelper.ConvertToUserTime(shipment.ShippedDateUtc, DateTimeKind.Utc).ToString(),
DeliveryDate = shipment.DeliveryDateUtc.HasValue ? _dateTimeHelper.ConvertToUserTime(shipment.DeliveryDateUtc.Value, DateTimeKind.Utc).ToString() : _localizationService.GetResource("Admin.Orders.Shipments.DeliveryDate.NotYet"),
CanDeliver = !shipment.DeliveryDateUtc.HasValue,
DisplayPdfPackagingSlip = _pdfSettings.Enabled,
};
foreach (var sopv in shipment.ShipmentOrderProductVariants)
{
var opv = _orderService.GetOrderProductVariantById(sopv.OrderProductVariantId);
if (opv == null)
continue;
//quantities
var qtyShipped = sopv.Quantity;
var qtyShippedTotal = opv.GetTotalNumberOfShippedItems();
var qtyOrdered = opv.Quantity;
var maxQtyToShip = qtyOrdered - qtyShippedTotal;
if (maxQtyToShip < 0)
maxQtyToShip = 0;
var sopvModel = new ShipmentModel.ShipmentOrderProductVariantModel()
{
Id = sopv.Id,
OrderProductVariantId = opv.Id,
ProductVariantId = opv.ProductVariantId,
AttributeInfo = opv.AttributeDescription,
QuantityOrdered = qtyOrdered,
QuantityShipped = qtyShipped,
QuantityShippedTotal = qtyShippedTotal,
QuantityToShip = maxQtyToShip,
};
//product name
if (!String.IsNullOrEmpty(opv.ProductVariant.Name))
sopvModel.FullProductName = string.Format("{0} ({1})", opv.ProductVariant.Product.Name, opv.ProductVariant.Name);
else
sopvModel.FullProductName = opv.ProductVariant.Product.Name;
model.Products.Add(sopvModel);
}
return View(model);
}
示例10: PrepareShipmentModel
protected virtual ShipmentModel PrepareShipmentModel(Shipment shipment, bool prepareProducts, bool prepareShipmentEvent = false)
{
//measures
var baseWeight = _measureService.GetMeasureWeightById(_measureSettings.BaseWeightId);
var baseWeightIn = baseWeight != null ? baseWeight.Name : "";
var baseDimension = _measureService.GetMeasureDimensionById(_measureSettings.BaseDimensionId);
var baseDimensionIn = baseDimension != null ? baseDimension.Name : "";
var model = new ShipmentModel
{
Id = shipment.ID,
OrderId = shipment.OrderId,
TrackingNumber = shipment.TrackingNumber,
TotalWeight = shipment.TotalWeight.HasValue ? string.Format("{0:F2} [{1}]", shipment.TotalWeight, baseWeightIn) : "",
ShippedDate = shipment.ShippedDateUtc.HasValue ? _dateTimeHelper.ConvertToUserTime(shipment.ShippedDateUtc.Value, DateTimeKind.Utc).ToString() : _localizationService.GetResource("Admin.Orders.Shipments.ShippedDate.NotYet"),
ShippedDateUtc = shipment.ShippedDateUtc,
CanShip = !shipment.ShippedDateUtc.HasValue,
DeliveryDate = shipment.DeliveryDateUtc.HasValue ? _dateTimeHelper.ConvertToUserTime(shipment.DeliveryDateUtc.Value, DateTimeKind.Utc).ToString() : _localizationService.GetResource("Admin.Orders.Shipments.DeliveryDate.NotYet"),
DeliveryDateUtc = shipment.DeliveryDateUtc,
CanDeliver = shipment.ShippedDateUtc.HasValue && !shipment.DeliveryDateUtc.HasValue,
AdminComment = shipment.AdminComment,
};
if (prepareProducts)
{
foreach (var shipmentItem in shipment.ShipmentItems)
{
var orderItem = _orderService.GetOrderItemById(shipmentItem.OrderItemId);
if (orderItem == null)
continue;
//quantities
var qtyInThisShipment = shipmentItem.Quantity;
var maxQtyToAdd = orderItem.GetTotalNumberOfItemsCanBeAddedToShipment();
var qtyOrdered = orderItem.Quantity;
var qtyInAllShipments = orderItem.GetTotalNumberOfItemsInAllShipment();
var warehouse = _shippingService.GetWarehouseById(shipmentItem.WarehouseId);
var shipmentItemModel = new ShipmentModel.ShipmentItemModel
{
Id = shipmentItem.ID,
OrderItemId = orderItem.ID,
ProductId = orderItem.ProductId,
ProductName = orderItem.Product.Name,
Sku = orderItem.Product.FormatSku(orderItem.AttributesXml, _productAttributeParser),
AttributeInfo = orderItem.AttributeDescription,
ShippedFromWarehouse = warehouse != null ? warehouse.Name : null,
ShipSeparately = orderItem.Product.ShipSeparately,
ItemWeight = orderItem.ItemWeight.HasValue ? string.Format("{0:F2} [{1}]", orderItem.ItemWeight, baseWeightIn) : "",
ItemDimensions = string.Format("{0:F2} x {1:F2} x {2:F2} [{3}]", orderItem.Product.Length, orderItem.Product.Width, orderItem.Product.Height, baseDimensionIn),
QuantityOrdered = qtyOrdered,
QuantityInThisShipment = qtyInThisShipment,
QuantityInAllShipments = qtyInAllShipments,
QuantityToAdd = maxQtyToAdd,
};
//rental info
if (orderItem.Product.IsRental)
{
var rentalStartDate = orderItem.RentalStartDateUtc.HasValue ? orderItem.Product.FormatRentalDate(orderItem.RentalStartDateUtc.Value) : "";
var rentalEndDate = orderItem.RentalEndDateUtc.HasValue ? orderItem.Product.FormatRentalDate(orderItem.RentalEndDateUtc.Value) : "";
shipmentItemModel.RentalInfo = string.Format(_localizationService.GetResource("Order.Rental.FormattedDate"),
rentalStartDate, rentalEndDate);
}
model.Items.Add(shipmentItemModel);
}
}
if (prepareShipmentEvent && !String.IsNullOrEmpty(shipment.TrackingNumber))
{
var order = shipment.Order;
var srcm = _shippingService.LoadShippingRateComputationMethodBySystemName(order.ShippingRateComputationMethodSystemName);
if (srcm != null &&
srcm.PluginDescriptor.Installed &&
srcm.IsShippingRateComputationMethodActive(_shippingSettings))
{
var shipmentTracker = srcm.ShipmentTracker;
if (shipmentTracker != null)
{
model.TrackingNumberUrl = shipmentTracker.GetUrl(shipment.TrackingNumber);
if (_shippingSettings.DisplayShipmentEventsToStoreOwner)
{
var shipmentEvents = shipmentTracker.GetShipmentEvents(shipment.TrackingNumber);
if (shipmentEvents != null)
{
foreach (var shipmentEvent in shipmentEvents)
{
var shipmentStatusEventModel = new ShipmentModel.ShipmentStatusEventModel();
var shipmentEventCountry = _countryService.GetCountryByTwoLetterIsoCode(shipmentEvent.CountryCode);
shipmentStatusEventModel.Country = shipmentEventCountry != null
? shipmentEventCountry.GetLocalized(x => x.Name)
: shipmentEvent.CountryCode;
shipmentStatusEventModel.Date = shipmentEvent.Date;
shipmentStatusEventModel.EventName = shipmentEvent.EventName;
shipmentStatusEventModel.Location = shipmentEvent.Location;
model.ShipmentStatusEvents.Add(shipmentStatusEventModel);
}
}
}
}
//.........这里部分代码省略.........
示例11: AddShipment
public ActionResult AddShipment(int orderId)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
return AccessDeniedView();
var order = _orderService.GetOrderById(orderId);
if (order == null)
//No order found with the specified id
return RedirectToAction("List");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && !HasAccessToOrder(order))
return RedirectToAction("List");
var model = new ShipmentModel
{
OrderId = order.ID,
};
//measures
var baseWeight = _measureService.GetMeasureWeightById(_measureSettings.BaseWeightId);
var baseWeightIn = baseWeight != null ? baseWeight.Name : "";
var baseDimension = _measureService.GetMeasureDimensionById(_measureSettings.BaseDimensionId);
var baseDimensionIn = baseDimension != null ? baseDimension.Name : "";
var orderItems = order.OrderItems;
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null)
{
orderItems = orderItems.Where(HasAccessToOrderItem).ToList();
}
foreach (var orderItem in orderItems)
{
//we can ship only shippable products
if (!orderItem.Product.IsShipEnabled)
continue;
//quantities
var qtyInThisShipment = 0;
var maxQtyToAdd = orderItem.GetTotalNumberOfItemsCanBeAddedToShipment();
var qtyOrdered = orderItem.Quantity;
var qtyInAllShipments = orderItem.GetTotalNumberOfItemsInAllShipment();
//ensure that this product can be added to a shipment
if (maxQtyToAdd <= 0)
continue;
var shipmentItemModel = new ShipmentModel.ShipmentItemModel
{
OrderItemId = orderItem.ID,
ProductId = orderItem.ProductId,
ProductName = orderItem.Product.Name,
Sku = orderItem.Product.FormatSku(orderItem.AttributesXml, _productAttributeParser),
AttributeInfo = orderItem.AttributeDescription,
ShipSeparately = orderItem.Product.ShipSeparately,
ItemWeight = orderItem.ItemWeight.HasValue ? string.Format("{0:F2} [{1}]", orderItem.ItemWeight, baseWeightIn) : "",
ItemDimensions = string.Format("{0:F2} x {1:F2} x {2:F2} [{3}]", orderItem.Product.Length, orderItem.Product.Width, orderItem.Product.Height, baseDimensionIn),
QuantityOrdered = qtyOrdered,
QuantityInThisShipment = qtyInThisShipment,
QuantityInAllShipments = qtyInAllShipments,
QuantityToAdd = maxQtyToAdd,
};
//rental info
if (orderItem.Product.IsRental)
{
var rentalStartDate = orderItem.RentalStartDateUtc.HasValue ? orderItem.Product.FormatRentalDate(orderItem.RentalStartDateUtc.Value) : "";
var rentalEndDate = orderItem.RentalEndDateUtc.HasValue ? orderItem.Product.FormatRentalDate(orderItem.RentalEndDateUtc.Value) : "";
shipmentItemModel.RentalInfo = string.Format(_localizationService.GetResource("Order.Rental.FormattedDate"),
rentalStartDate, rentalEndDate);
}
if (orderItem.Product.ManageInventoryMethod == ManageInventoryMethod.ManageStock &&
orderItem.Product.UseMultipleWarehouses)
{
//multiple warehouses supported
shipmentItemModel.AllowToChooseWarehouse = true;
foreach (var pwi in orderItem.Product.ProductWarehouseInventory
.OrderBy(w => w.WarehouseId).ToList())
{
var warehouse = pwi.Warehouse;
if (warehouse != null)
{
shipmentItemModel.AvailableWarehouses.Add(new ShipmentModel.ShipmentItemModel.WarehouseInfo
{
WarehouseId = warehouse.ID,
WarehouseName = warehouse.Name,
StockQuantity = pwi.StockQuantity,
ReservedQuantity = pwi.ReservedQuantity,
PlannedQuantity = _shipmentService.GetQuantityInShipments(orderItem.Product, warehouse.ID, true, true)
});
}
}
}
else
{
//multiple warehouses are not supported
var warehouse = _shippingService.GetWarehouseById(orderItem.Product.WarehouseId);
if (warehouse != null)
{
//.........这里部分代码省略.........