private static bool IsMatched(this EqpArrangeInfo item, string stepID, string productID, string productVer, bool isFixedProductVer) { if (item.HasLimitType(LimitType.O)) { if (IsMatched(item.StepID, stepID) == false) { return(false); } } if (item.HasLimitType(LimitType.P)) { if (IsMatched(item.ProductID, productID) == false) { return(false); } } if (item.HasLimitType(LimitType.B)) { if (isFixedProductVer) { if (IsMatched(item.ProductVer, productVer) == false) { return(false); } } } return(true); }
private static bool IsLoadable_Etc(EqpArrangeInfo item, Dictionary <string, List <EqpArrangeInfo> > group, int qty) { if (item == null) { return(false); } if (group == null || group.Count == 0) { return(true); } foreach (var it in group.Values) { //Etc Group에 일치하는 비가용 존재시 비가용 처리 var find = it.Find(t => t.IsLoadable(item, qty) == false); if (find != null) { return(false); } } return(true); }
private static void AddItem(this EqpArrangeSet setInfo, EqpArrangeInfo item) { if (item == null) { return; } //All Items LcdHelper.AddSort(setInfo.Items, item, EqpArrangeInfoComparer.Default); //Group Items //SubEqp는 defaultArrange 미지정, 모두 Default로 처리(2019.09.07) bool isDefault = setInfo.IsSubEqp ? true : LcdHelper.Equals(item.LimitType, setInfo.DefaultArrange); var groups = isDefault ? setInfo.DefaultGroups : setInfo.EtcGroups; string groupKey = item.GetGroupKey(); List <EqpArrangeInfo> list; if (groups.TryGetValue(groupKey, out list) == false) { groups.Add(groupKey, list = new List <EqpArrangeInfo>()); } LcdHelper.AddSort(list, item, EqpArrangeInfoComparer.Default); }
private static void AddLimitInfo(this FabMask mask, EqpArrangeInfo info) { if (info == null) { return; } mask.Limits.Add(info); }
private static int GetLimitTypeCount(this EqpArrangeInfo item) { if (item.LimitTypeList == null) { return(0); } return(item.LimitTypeList.Count); }
private static bool IsMatchedByProductVersion(this EqpArrangeInfo item, string productVer) { if (item.HasLimitType(LimitType.B)) { if (IsMatched(item.ProductVer, productVer) == false) { return(false); } } return(true); }
internal static void AddEqpArrangeInfo(EqpArrangeInfo info) { var infos = EqpArrangeMaster.AllArrange; List <EqpArrangeInfo> list; if (infos.TryGetValue(info.EqpID, out list) == false) { list = new List <EqpArrangeInfo>(); infos.Add(info.EqpID, list); } list.Add(info); }
public static string GetGroupKey(this EqpArrangeInfo item) { bool hasB = item.HasLimitType(LimitType.B); string key = hasB ? item.ProductVer : Constants.NULL_ID; bool hasM = item.HasLimitType(LimitType.M); if (hasM) { key = string.Format("{0}{1}", key, item.MaskID); } return(key); }
private static bool IsLoadable(this EqpArrangeInfo item, EqpArrangeInfo targetItem, int qty) { //check matched bool isFixedProductVer = targetItem.HasLimitType(LimitType.B); bool isMatched = item.IsMatched(targetItem.StepID, targetItem.ProductID, item.ProductVer, isFixedProductVer); if (isMatched == false) { return(true); } return(item.IsLoadable(qty)); }
private static bool IsMatchedByMask(this EqpArrangeInfo item, FabMask mask) { if (item.HasLimitType(LimitType.M)) { if (mask == null) { return(false); } if (IsMatched(item.MaskID, mask.ToolID) == false) { return(false); } } return(true); }
internal static void AddLimit(EqpArrangeInfo info) { if (info == null) { return; } string maskID = info.MaskID; var mask = FindMask(maskID); if (mask == null) { return; } mask.AddLimitInfo(info); }
private static bool IsLoadable_ActivateType(this EqpArrangeInfo item) { if (item.ActivateType == ActivateType.N) { return(false); } if (item.ActivateType == ActivateType.M) { return(true); } if (item.ActivateType == ActivateType.Y) { return(true); } return(false); }
private static int GetSupportAllCount(this EqpArrangeInfo item) { int count = 0; if (IsSupportAll(item.StepID)) { count++; } if (IsSupportAll(item.ProductID)) { count++; } if (IsSupportAll(item.ProductVer)) { count++; } return(count); }
public static bool IsLoadable(this EqpArrangeInfo item, int qty) { if (item.IsLoadable_ActivateType() == false) { return(false); } //M 잔여 수량 미체크 if (qty <= 0) { return(true); } if (item.ActivateType == ActivateType.M) { //잔량보다 Capa가 작은 경우 미투입 처리 if (qty > item.RemainQty) { return(false); } } return(true); }
public static bool HasLimitType(this EqpArrangeInfo item, LimitType limitType) { var list = item.LimitTypeList; return(HasLimitType(list, limitType)); }