Exemple #1
0
        //rules
        public void EvaluateRule(FileManager fm, appDB.ddRuleRow ddrr, DataRow dr2Validate)
        {
            ActivityConfig.ACSeriesRow acsr = fm.AtMng.acMng.DB.ACSeries.FindByACSeriesId(ddrr.ACSeriesId);

            //we need to endedit on the current record so that it can be evaluated by datatable.select operations
            dr2Validate.EndEdit();

            ACEngine MyACE = new ACEngine(fm);

            MyACE.myAcSeries     = acsr;
            MyACE.myActivityCode = acsr.ActivityCodeRow;

            MyACE.AddToRelTables(dr2Validate, "CONTEXT");

            //MyACE.LoadDataForStep(-10, acsr.ACSeriesId);
            MyACE.DoRelFields();
            //consider the blocks as short-circuited or's
            //eg  A || B || C
            //we succeed on the first successful block


            if (MyACE.HasRel0)
            {
                MyACE.LoadDataForStep(0, acsr.ACSeriesId);
                if (!MyACE.skipBlock)
                {
                    return;
                }
            }
            if (MyACE.HasRel1)
            {
                MyACE.LoadDataForStep(1, acsr.ACSeriesId);
                if (!MyACE.skipBlock)
                {
                    return;
                }
            }
            if (MyACE.HasRel2)
            {
                MyACE.LoadDataForStep(2, acsr.ACSeriesId);
                if (!MyACE.skipBlock)
                {
                    return;
                }
            }
            if (MyACE.HasRel3)
            {
                MyACE.LoadDataForStep(3, acsr.ACSeriesId);
                if (!MyACE.skipBlock)
                {
                    return;
                }
            }
            if (MyACE.HasRel4)
            {
                MyACE.LoadDataForStep(4, acsr.ACSeriesId);
                if (!MyACE.skipBlock)
                {
                    return;
                }
            }
            if (MyACE.HasRel5)
            {
                MyACE.LoadDataForStep(5, acsr.ACSeriesId);
                if (!MyACE.skipBlock)
                {
                    return;
                }
            }

            //rule failed

            string msg = myA.acMng.DB.ACDocumentation.FindByACDocId(ddrr.MsgId)[myA.Translate("TextEng")].ToString();

            throw new AtriumException(msg);
        }
Exemple #2
0
        public void ExecuteAction(FileManager fm, DataRow dr2Validate, ActivityConfig.ACSeriesRow acsr)
        {
            dr2Validate.EndEdit();

            ACEngine MyACE = new ACEngine(fm);

            MyACE.myAcSeries     = acsr;
            MyACE.myActivityCode = acsr.ActivityCodeRow;

            MyACE.AddToRelTables(dr2Validate, "CONTEXT");

            MyACE.DoRelFields();
            if (MyACE.HasRel0)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields0, true);
            }
            if (MyACE.HasRel1)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields1, true);
            }
            if (MyACE.HasRel2)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields2, true);
            }
            if (MyACE.HasRel3)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields3, true);
            }
            if (MyACE.HasRel4)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields4, true);
            }
            if (MyACE.HasRel5)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields5, true);
            }
            if (MyACE.HasRel6)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields6, true);
            }
            if (MyACE.HasRel7)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields7, true);
            }
            if (MyACE.HasRel8)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields8, true);
            }
            if (MyACE.HasRel9)
            {
                MyACE.DoStep(ACEngine.Step.RelatedFields9, true);
            }
            if (MyACE.HasTimeline)
            {
                MyACE.DoStep(ACEngine.Step.Timeline, true);
            }
            //if (MyACE.HasDoc)
            //{
            //    docDB.DocumentRow dr = (docDB.DocumentRow)MyACE.relTables["Document0"][0].Row;

            //    MyACE.DocumentDefaults(0 != 0);

            //}
            if (MyACE.HasBilling)
            {
                MyACE.DoStep(ACEngine.Step.Billing, true);
            }
        }