/// <summary>
    /// Resets all data
    /// </summary>
    public void Reset()
    {
        LastWidth.Clear();
        LastThickness.Clear();
        LastRunConfigurationGroups.Clear();
        SalesList.Clear();
        PredictionList.Clear();
        LastRunMachine.Clear();
        PriorityList.Clear();
        foreach (var line in StaticFactoryValuesManager.CoatingLines)
        {
            ScheduledItem[line] = false;
        }
        CurrentWaste = StaticFactoryValuesManager.CurrentWaste;

        if (CurrentInventory == null)
        {
            CurrentInventory = new List <InventoryItem>();
        }
        CurrentInventory.Clear();

        if (PrereqMakeOrders == null)
        {
            PrereqMakeOrders = new List <PrereqMakeOrder>();
        }
        PrereqMakeOrders.Clear();
    }
    public PriorityItem GetPriorityItem(int itemIndex)
    {
        var item      = PriorityList[itemIndex];
        var hasPrereq = PrereqMakeOrders.Any(p => p.MasterID == item.Item.MasterID);

        if (hasPrereq)
        {
            var prereq = PrereqMakeOrders.FirstOrDefault(p => p.MasterID == item.Item.MasterID);
            if (prereq != null)
            {
                var make   = prereq.GetLowestRequirement();
                var master = StaticInventoryTracker.ProductMasterList.FirstOrDefault(m => m.MasterID == make.MasterID);
                return(new PriorityItem(master, item.Priority));
            }
            return(new PriorityItem(item.Item, item.Priority));
        }

        return(item);
    }