Exemplo n.º 1
0
        public static decimal GetAllowRunDownWip(AoEquipment aeqp, string productID, string productVersion, string ownerType, FabStep step, decimal remainRundown)
        {
            var job = InFlowMaster.GetJobState(productID, ownerType);

            if (job == null)
            {
                return(0m);
            }

            //Wip Profile
            WipProfile iflow = job.CreateWipProfile(step, productVersion, 0, aeqp.Target.Preset as FabWeightPreset, aeqp, remainRundown, false);

            iflow.CalcProfile();
            var qty = job.GetInflowWip(iflow, remainRundown);

            ////자신 + 직전
            ////자신의 대기재공중 Load가능한 수량
            //qty += job.GetCurrenStepWaitWipQty(aeqp, step, productVersion, remainRundown);

            ////자신의 직전의 Run중 Load가능한 수량
            //DateTime targetTime = aeqp.NowDT.AddHours((double)-remainRundown);
            //qty += job.GetPrevStepRunWipQty(aeqp, step, productVersion, targetTime);

            return(qty);
        }
Exemplo n.º 2
0
        //CHECK : jung (버전별 프로파일 확인여부)
        public static decimal GetInflowQty(string productID, string productVer, string ownerType, FabStep step, AoEquipment aeqp, decimal inflowHour, int excludeStepCnt)
        {
            var job = InFlowMaster.GetJobState(productID, ownerType);

            if (job == null || step == null)
            {
                return(0);
            }

            WipProfile profile = job.GetWipProfile(step, productVer);

            if (profile == null)
            {
                profile = job.CreateWipProfile(step, productVer, excludeStepCnt, aeqp.Target.Preset as FabWeightPreset, aeqp, inflowHour);
                profile.CalcProfile();
            }

            return(job.GetInflowWip(profile, inflowHour));
        }