public static bool IsModifyable(this Shipment item, OrderGroup order)
		{
			var shipmentStatus = item.GetCurrentStatus(order);
			var orderStatus = order.GetCurrentStatus();
			var retVal = orderStatus == (orderStatus & ((int)OrderStatus.AwaitingExchange | (int)OrderStatus.InProgress | (int)OrderStatus.PartiallyShipped | (int)OrderStatus.Pending))
						&& (shipmentStatus == ShipmentStatus.AwaitingInventory.ToString() || shipmentStatus == ShipmentStatus.InventoryAssigned.ToString());
			return retVal;
		}
		public static string GetCurrentStatus(this Shipment item, OrderGroup order)
		{
			// shipment inherits onHold status from the order
			if (order.GetCurrentStatus() == (int)OrderStatus.OnHold)
			{
				return ShipmentStatus.OnHold.ToString();
			}

		    return string.IsNullOrEmpty(item.Status) ? ShipmentStatus.InventoryAssigned.ToString() : item.Status;
		}