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; }