//internal static bool IsNeedSetup(this FabSubEqp subEqp, string stepID, string productID, string prodVer, string ownerType) //{ // if (ResHelper.IsIgnoreSetup(subEqp.LoadInfos)) // return false; // FabPlanInfo last = subEqp.LastPlan; // if (subEqp.Current != null) // { // FabLot current = subEqp.Current as FabLot; // last = current.CurrentFabPlan; // } // if (last == null) // return true; // if (last.Step == null || last.Product == null) // return true; // var eqp = ResHelper.GetFabAoEquipment(subEqp.Parent.EqpID); // if (eqp == null) // return false; // if (last.StepID != stepID) // return true; // if (last.ProductID != productID) // return true; // if (last.ProductVersion != prodVer) // return true; // if (last.OwnerType != ownerType) // return true; // return false; //} internal static bool IsLastPlan(this FabSubEqp subEqp, FabLot lot) { if (lot == null) { return(false); } return(subEqp.IsLastPlan(lot.CurrentShopID, lot.CurrentStepID, lot.CurrentProductID, lot.CurrentProductVersion, lot.OwnerType, lot.OwnerID)); }
public static bool IsLoadable_ParallelChamber(FabSubEqp subEqp, FabLot lot, bool checkQty = true) { if (InputMart.Instance.GlobalParameters.ApplyChamberArrange == false) { return(true); } var step = lot.CurrentFabStep; var stdStep = step.StdStep; string eqpID = subEqp.SubEqpID; string productID = lot.CurrentProductID; string productVer = lot.CurrentProductVersion; var targetEqp = subEqp.Parent as FabEqp; var setInfo = GetEqpArrangeSet(eqpID, targetEqp, stdStep, productID, productVer, true); if (setInfo == null) { return(false); } bool isLastPlan = subEqp.IsLastPlan(lot); List <EqpArrangeInfo> loadableList; bool isLoadable = setInfo.IsLoadable(lot, checkQty, isLastPlan, out loadableList); if (isLoadable) { lot.CurrentEqpArrange = new CurrentArrange() { EqpArrrangeSet = setInfo, LoadableList = loadableList, UsedEqpArrange = null }; } return(isLoadable); }