Ejemplo n.º 1
0
        //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));
        }
Ejemplo n.º 2
0
        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);
        }