protected virtual IEnumerable Action(PXAdapter adapter,
                                             [PXInt]
                                             [PXIntList(new int[] { 1, 2, 3 }, new string[]
        {
            "Update Price",
            "Update Cost",
            "View Restriction Groups"
        })]
                                             int?actionID
                                             )
        {
            switch (actionID)
            {
            case 2:
                if (ItemSettings.Current != null && ItemSettings.Current.PendingStdCostDate != null)
                {
                    ItemSettings.Current.LastStdCost        = ItemSettings.Current.StdCost;
                    ItemSettings.Current.StdCostDate        = ItemSettings.Current.PendingStdCostDate.GetValueOrDefault((DateTime)this.Accessinfo.BusinessDate);
                    ItemSettings.Current.StdCost            = ItemSettings.Current.PendingStdCost;
                    ItemSettings.Current.PendingStdCost     = 0;
                    ItemSettings.Current.PendingStdCostDate = null;
                    ItemSettings.Update(ItemSettings.Current);

                    this.Save.Press();
                }

                break;

            case 3:
                if (Item.Current != null)
                {
                    INAccessDetailByItem graph = CreateInstance <INAccessDetailByItem>();
                    graph.Item.Current = graph.Item.Search <InventoryItem.inventoryCD>(Item.Current.InventoryCD);
                    throw new PXRedirectRequiredException(graph, false, "Restricted Groups");
                }
                break;
            }
            return(adapter.Get());
        }