/// <summary> /// Gets the requested quantity change of line item in shipments /// </summary> /// <param name="lineItem">The line item.</param> /// <returns>The requested quantity change.</returns> private decimal GetLineItemRequestedQty(LineItem lineItem) { decimal lineItemRequestedQty = 0; OperationKeySerializer operationKeySerializer = new OperationKeySerializer(); var operationKeys = new List <string>(); var orderForm = lineItem.Parent; foreach (Shipment sh in orderForm.Shipments) { operationKeys.AddRange(sh.GetInventoryOperationKey(orderForm.LineItems.IndexOf(lineItem))); } InventoryRequestType requestType = default(InventoryRequestType); InventoryChange inventoryChange = null; foreach (string key in operationKeys) { operationKeySerializer.TryDeserialize(key, out requestType, out inventoryChange); switch (requestType) { case InventoryRequestType.Purchase: lineItemRequestedQty += inventoryChange.PurchaseRequestedChange; break; case InventoryRequestType.Backorder: lineItemRequestedQty += inventoryChange.BackorderRequestedChange; break; case InventoryRequestType.Preorder: lineItemRequestedQty += inventoryChange.PreorderRequestedChange; break; } } return(lineItemRequestedQty); }
private InventoryRequestItem CreateRequestItem(int index, InventoryRequestType requestType, string entryCode, string warehouseCode, decimal delta) { //We currently do not use operation key and context return(new InventoryRequestItem(index, requestType, entryCode, warehouseCode, delta, string.Empty, null)); }
/// <summary> /// Get inventory requests for shipment /// </summary> /// <param name="shipment">The shipment</param> /// <param name="itemIndexStart">The start index</param> /// <param name="type">The inventory request type</param> /// <returns>List inventory request item of a shipment</returns> private IEnumerable<InventoryRequestItem> GetRequestInventory(Shipment shipment, int itemIndexStart, InventoryRequestType type) { return shipment.OperationKeysMap.SelectMany(c => c.Value).Select(key => new InventoryRequestItem() { ItemIndex = itemIndexStart++, OperationKey = key, RequestType = type }); }
private InventoryRequestItem CreateRequestItem(int index, InventoryRequestType requestType, string entryCode, string warehouseCode, decimal delta) { //We currently do not use operation key and context return new InventoryRequestItem(index, requestType, entryCode, warehouseCode, delta, string.Empty, null); }
/// <summary> /// Get inventory request for the line item. /// </summary> /// <param name="shipment">The shipment</param> /// <param name="lineItemIndex">The line item index</param> /// <param name="itemIndexStart">The start index for request item</param> /// <param name="type">The inventory request type</param> /// <returns>List inventory request item for a line item</returns> private IEnumerable <InventoryRequestItem> GetLineItemRequestInventory(Shipment shipment, int lineItemIndex, int itemIndexStart, InventoryRequestType type) { return(shipment.OperationKeysMap.Where(c => c.Key == lineItemIndex).SelectMany(c => c.Value).Select(key => new InventoryRequestItem() { ItemIndex = itemIndexStart++, OperationKey = key, RequestType = type })); }