Example usage for org.apache.commons.lang3.mutable MutableDouble MutableDouble

List of usage examples for org.apache.commons.lang3.mutable MutableDouble MutableDouble

Introduction

In this page you can find the example usage for org.apache.commons.lang3.mutable MutableDouble MutableDouble.

Prototype

public MutableDouble(final String value) throws NumberFormatException 

Source Link

Document

Constructs a new MutableDouble parsing the given string.

Usage

From source file:com.quinsoft.zencas.lTrnscpt_Object.java

private int olTrnscpt_ProcessRepeatRecur(View lTrnscptRepeating, View lTrnscptNextOrig) {
    zVIEW lTrnscptNext = new zVIEW();
    //:DECIMAL EarlierGrade
    double EarlierGrade = 0.0;
    //:DECIMAL LaterGrade
    double LaterGrade = 0.0;
    //:STRING ( 20 ) szDecimalString
    String szDecimalString = null;
    int RESULT = 0;
    int lTempInteger_0 = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;

    //:// This is a recursive operation for looking for entries that repeat a Class. It may be called by the
    //:// initial check for a Registration entry to see if it is repeated, or it may be called for an additional
    //:// check to see if an entry is repeated more than once.
    //:// If the operation is being called for the initial entry to see if it is repeated, both lTrnscptRepeating
    //:// and lTrnscptNext are positioned on the same entity.
    //:// If the operation is being called to look for an additional repeating entry, lTrnscptRepeating is positioned
    //:// on the "repeating" Registration entry (or the latest one if the grade for both entries is the same), and
    //:// lTrnscptNext will be positioned to look for the next repeating entry.

    //:CreateViewFromView( lTrnscptNext, lTrnscptNextOrig )
    CreateViewFromView(lTrnscptNext, lTrnscptNextOrig);
    //:SET CURSOR NEXT lTrnscptNext.Registration 
    //:          WHERE lTrnscptNext.Registration.wCourseID = lTrnscptRepeating.Registration.wCourseID 
    {/*from w  ww .  j  ava  2s  .  c  om*/
        MutableInt mi_lTempInteger_0 = new MutableInt(lTempInteger_0);
        GetIntegerFromAttribute(mi_lTempInteger_0, lTrnscptRepeating, "Registration", "wCourseID");
        lTempInteger_0 = mi_lTempInteger_0.intValue();
    }
    RESULT = lTrnscptNext.cursor("Registration").setNext("wCourseID", lTempInteger_0).toInt();
    //:IF RESULT >= zCURSOR_SET
    if (RESULT >= zCURSOR_SET) {
        //:IF lTrnscptRepeating.Registration.OverridingGradePointValue = "" 
        if (CompareAttributeToString(lTrnscptRepeating, "Registration", "OverridingGradePointValue", "") == 0) {
            //:GetStringFromAttributeByContext( szDecimalString,
            //:                                 lTrnscptRepeating, "Registration", "FinalGrade", "DegreeTrackGradePointValue", 20 )
            {
                StringBuilder sb_szDecimalString;
                if (szDecimalString == null)
                    sb_szDecimalString = new StringBuilder(32);
                else
                    sb_szDecimalString = new StringBuilder(szDecimalString);
                GetStringFromAttributeByContext(sb_szDecimalString, lTrnscptRepeating, "Registration",
                        "FinalGrade", "DegreeTrackGradePointValue", 20);
                szDecimalString = sb_szDecimalString.toString();
            }
            //:EarlierGrade = StrToDecimal( szDecimalString )
            {
                ZGLOBAL1_Operation m_ZGLOBAL1_Operation = new ZGLOBAL1_Operation(lTrnscptRepeating);
                EarlierGrade = m_ZGLOBAL1_Operation.StrToDecimal(szDecimalString);
                // m_ZGLOBAL1_Operation = null;  // permit gc  (unnecessary)
            }
            //:ELSE
        } else {
            //:EarlierGrade = lTrnscptRepeating.Registration.OverridingGradePointValue
            {
                MutableDouble md_EarlierGrade = new MutableDouble(EarlierGrade);
                GetDecimalFromAttribute(md_EarlierGrade, lTrnscptRepeating, "Registration",
                        "OverridingGradePointValue");
                EarlierGrade = md_EarlierGrade.doubleValue();
            }
        }

        //:END
        //:IF lTrnscptNext.Registration.OverridingGradePointValue = "" 
        if (CompareAttributeToString(lTrnscptNext, "Registration", "OverridingGradePointValue", "") == 0) {
            //:GetStringFromAttributeByContext( szDecimalString,
            //:                                 lTrnscptNext, "Registration", "FinalGrade", "DegreeTrackGradePointValue", 20 )
            {
                StringBuilder sb_szDecimalString;
                if (szDecimalString == null)
                    sb_szDecimalString = new StringBuilder(32);
                else
                    sb_szDecimalString = new StringBuilder(szDecimalString);
                GetStringFromAttributeByContext(sb_szDecimalString, lTrnscptNext, "Registration", "FinalGrade",
                        "DegreeTrackGradePointValue", 20);
                szDecimalString = sb_szDecimalString.toString();
            }
            //:LaterGrade = StrToDecimal( szDecimalString )
            {
                ZGLOBAL1_Operation m_ZGLOBAL1_Operation = new ZGLOBAL1_Operation(lTrnscptRepeating);
                LaterGrade = m_ZGLOBAL1_Operation.StrToDecimal(szDecimalString);
                // m_ZGLOBAL1_Operation = null;  // permit gc  (unnecessary)
            }
            //:ELSE
        } else {
            //:LaterGrade = lTrnscptNext.Registration.OverridingGradePointValue
            {
                MutableDouble md_LaterGrade = new MutableDouble(LaterGrade);
                GetDecimalFromAttribute(md_LaterGrade, lTrnscptNext, "Registration",
                        "OverridingGradePointValue");
                LaterGrade = md_LaterGrade.doubleValue();
            }
        }

        //:END
        //:// We will only consider entries with final grades.
        //:IF lTrnscptNext.Registration.FinalGrade != ""
        if (CompareAttributeToString(lTrnscptNext, "Registration", "FinalGrade", "") != 0) {
            //:IF LaterGrade >= EarlierGrade
            if (LaterGrade >= EarlierGrade) {
                //:lTrnscptRepeating.Registration.wRepeatedClass       = "R"     // This Class is "repeated" by another Class.
                SetAttributeFromString(lTrnscptRepeating, "Registration", "wRepeatedClass", "R");
                //:lTrnscptNext.Registration.wRepeatedClass            = "P"     // This Class "replaces" the "repeated" Class.
                SetAttributeFromString(lTrnscptNext, "Registration", "wRepeatedClass", "P");
                //:// Set the hours that will be replaced for CumulativeAttempted for the entry when the Class is retaken.
                //:lTrnscptNext.Registration.wReplacedAttemptedCredits = lTrnscptRepeating.Registration.CreditHours 
                SetAttributeFromAttribute(lTrnscptNext, "Registration", "wReplacedAttemptedCredits",
                        lTrnscptRepeating, "Registration", "CreditHours");
                //:IF EarlierGrade > 0 OR 
                //:   lTrnscptRepeating.Registration.FinalGrade = "S" OR
                //:   lTrnscptRepeating.Registration.FinalGrade = ""
                if (EarlierGrade > 0
                        || CompareAttributeToString(lTrnscptRepeating, "Registration", "FinalGrade", "S") == 0
                        || CompareAttributeToString(lTrnscptRepeating, "Registration", "FinalGrade", "") == 0) {
                    //:// Earned Credits are only adjusted if the Repeated Class grade had grade points.
                    //:lTrnscptNext.Registration.wReplacedEarnedCredits = lTrnscptRepeating.Registration.CreditHours 
                    SetAttributeFromAttribute(lTrnscptNext, "Registration", "wReplacedEarnedCredits",
                            lTrnscptRepeating, "Registration", "CreditHours");
                }

                //:END
                //:// Grade of U, S or W does not impact GPA values.
                //:// The following IF was replaced on 10/11/06 by DonC to correct the setting of wReplacedGPA_DivisorCredits for
                //:// "W" grades.
                //:/*IF lTrnscptNext.Registration.FinalGrade != "U" AND 
                //:   lTrnscptNext.Registration.FinalGrade != "S" AND 
                //:   lTrnscptNext.Registration.FinalGrade != "W" AND 
                //:   lTrnscptNext.Registration.FinalGrade != ""*/
                //:IF lTrnscptRepeating.Registration.FinalGrade != "U" AND 
                //:   lTrnscptRepeating.Registration.FinalGrade != "S" AND 
                //:   lTrnscptRepeating.Registration.FinalGrade != "W" AND 
                //:   lTrnscptRepeating.Registration.FinalGrade != ""  AND 
                //:   lTrnscptNext.Registration.FinalGrade != "U" AND 
                //:   lTrnscptNext.Registration.FinalGrade != "S" AND 
                //:   lTrnscptNext.Registration.FinalGrade != "W" AND 
                //:   lTrnscptNext.Registration.FinalGrade != ""
                if (CompareAttributeToString(lTrnscptRepeating, "Registration", "FinalGrade", "U") != 0
                        && CompareAttributeToString(lTrnscptRepeating, "Registration", "FinalGrade", "S") != 0
                        && CompareAttributeToString(lTrnscptRepeating, "Registration", "FinalGrade", "W") != 0
                        && CompareAttributeToString(lTrnscptRepeating, "Registration", "FinalGrade", "") != 0
                        && CompareAttributeToString(lTrnscptNext, "Registration", "FinalGrade", "U") != 0
                        && CompareAttributeToString(lTrnscptNext, "Registration", "FinalGrade", "S") != 0
                        && CompareAttributeToString(lTrnscptNext, "Registration", "FinalGrade", "W") != 0
                        && CompareAttributeToString(lTrnscptNext, "Registration", "FinalGrade", "") != 0) {

                    //:lTrnscptNext.Registration.wReplacedGPA_DivisorCredits = lTrnscptRepeating.Registration.CreditHours
                    SetAttributeFromAttribute(lTrnscptNext, "Registration", "wReplacedGPA_DivisorCredits",
                            lTrnscptRepeating, "Registration", "CreditHours");
                    //:lTrnscptNext.Registration.wReplacedGPA_Points = EarlierGrade * lTrnscptRepeating.Registration.CreditHours
                    {
                        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                        GetDecimalFromAttribute(md_dTempDecimal_0, lTrnscptRepeating, "Registration",
                                "CreditHours");
                        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                    }
                    dTempDecimal_1 = EarlierGrade * dTempDecimal_0;
                    SetAttributeFromDecimal(lTrnscptNext, "Registration", "wReplacedGPA_Points",
                            dTempDecimal_1);
                }

                //:END

                //:// Look for next repeating entry.
                //:ProcessRepeatRecur( lTrnscptNext, lTrnscptNext )
                olTrnscpt_ProcessRepeatRecur(lTrnscptNext, lTrnscptNext);

                //:ELSE
            } else {
                //:lTrnscptNext.Registration.wRepeatedClass      = "V"     // This Class record is considered "void", as the earlier Class is used.
                SetAttributeFromString(lTrnscptNext, "Registration", "wRepeatedClass", "V");
                //:lTrnscptRepeating.Registration.wRepeatedClass = "P"     // This Class "replaces" the "voided" Class.
                SetAttributeFromString(lTrnscptRepeating, "Registration", "wRepeatedClass", "P");
                //:// Attempted Credits, Earned Credits, Divisor Credits and GPA Points aren't affected in the "voided" Class for this case.

                //:// Look for next repeating entry.
                //:ProcessRepeatRecur( lTrnscptRepeating, lTrnscptNext )
                olTrnscpt_ProcessRepeatRecur(lTrnscptRepeating, lTrnscptNext);
            }

            //:END
        }

        //:END
    }

    //:END
    //:DropView( lTrnscptNext )
    DropView(lTrnscptNext);
    return (0);
    // END
}

From source file:com.quinsoft.zencas.mDegTrk_Object.java

public int omDegTrk_AuditStudentCourses(View mDegTrk, View mStudenC_Orig) {
    zVIEW mStudenC = new zVIEW();
    //:VIEW mStudenCT   BASED ON LOD  mStudenC
    zVIEW mStudenCT = new zVIEW();
    //:VIEW mDegTrkC    BASED ON LOD  mDegTrk
    zVIEW mDegTrkC = new zVIEW();
    //:VIEW mDegTrkR    BASED ON LOD  mDegTrkR
    zVIEW mDegTrkR = new zVIEW();
    //:VIEW mStudent    REGISTERED AS mStudent
    zVIEW mStudent = new zVIEW();
    int RESULT = 0;
    //:VIEW mDegreeLST  BASED ON LOD  mDegree
    zVIEW mDegreeLST = new zVIEW();
    //:VIEW mUser       BASED ON LOD  mUser
    zVIEW mUser = new zVIEW();
    //:VIEW mCollegeLST BASED ON LOD  mCollege
    zVIEW mCollegeLST = new zVIEW();
    //:VIEW lTrnscpt    BASED ON LOD  lTrnscpt
    zVIEW lTrnscpt = new zVIEW();
    //:VIEW lTrnscptT   BASED ON LOD  lTrnscpt
    zVIEW lTrnscptT = new zVIEW();
    //:INTEGER       CourseID
    int CourseID = 0;
    //:INTEGER       CourseCount
    int CourseCount = 0;
    //:INTEGER       CourseTakenCount
    int CourseTakenCount = 0;
    //:INTEGER       CourseCompletedCount
    int CourseCompletedCount = 0;
    //:INTEGER       MinimumElectiveGrade
    int MinimumElectiveGrade = 0;
    //:INTEGER       Count
    int Count = 0;
    //:DECIMAL       CreditsTaken
    double CreditsTaken = 0.0;
    //:DECIMAL       CreditsCompleted
    double CreditsCompleted = 0.0;
    //:DECIMAL       GraduationCreditsEarned
    double GraduationCreditsEarned = 0.0;
    //:DECIMAL       MinCreditsTaken
    double MinCreditsTaken = 0.0;
    //:DECIMAL       MinCreditsCompleted
    double MinCreditsCompleted = 0.0;
    //:DECIMAL       MinCreditsRequired
    double MinCreditsRequired = 0.0;
    //:DECIMAL       FinalGrade
    double FinalGrade = 0.0;
    //:DECIMAL       TotalDegreeTrackCreditsTaken
    double TotalDegreeTrackCreditsTaken = 0.0;
    //:DECIMAL       TotalDegreeTrackCreditsEarned
    double TotalDegreeTrackCreditsEarned = 0.0;
    //:DECIMAL       MinimumGPA
    double MinimumGPA = 0.0;
    //:STRING ( 5 )  szCourseCount
    String szCourseCount = null;/* w  w w.j a  v  a  2 s.  c  o m*/
    //:STRING ( 5 )  szCourseTakenCount
    String szCourseTakenCount = null;
    //:STRING ( 10 ) szCreditsNeeded
    String szCreditsNeeded = null;
    //:STRING ( 10 ) szCreditsTaken
    String szCreditsTaken = null;
    //:STRING ( 1 )  szCourseTakenFlag
    String szCourseTakenFlag = null;
    //:STRING ( 1 )  szCourseCompletedFlag
    String szCourseCompletedFlag = null;
    //:STRING ( 10 ) CourseNumber
    String CourseNumber = null;
    //:STRING ( 50 ) CourseTitle
    String CourseTitle = null;
    //:STRING ( 20 ) szFinalGradeString
    String szFinalGradeString = null;
    //:STRING ( 1 )  SubstituteFlag
    String SubstituteFlag = null;
    //:STRING ( 1 )  RepeatableForCreditFlag
    String RepeatableForCreditFlag = null;
    //:STRING ( 1 )  DevelopmentalFlag
    String DevelopmentalFlag = null;
    //:STRING ( 20 ) StudentStatus
    String StudentStatus = null;
    //:STRING ( 4 )  szWorkYear
    String szWorkYear = null;
    //:STRING ( 8 )  szWorkDate
    String szWorkDate = null;
    //:STRING ( 200 ) Msg
    String Msg = null;
    //:STRING ( 20 ) szCollegeType
    String szCollegeType = null;
    //:STRING ( 1 )  GradUndergradFlag
    String GradUndergradFlag = null;
    //:STRING ( 1 )  TransferGradUndergradFlag
    String TransferGradUndergradFlag = null;
    //:SHORT         nRC
    int nRC = 0;
    int lTempInteger_0 = 0;
    int lTempInteger_1 = 0;
    int lTempInteger_2 = 0;
    int lTempInteger_3 = 0;
    int lTempInteger_4 = 0;
    int lTempInteger_5 = 0;
    zVIEW vTempViewVar_0 = new zVIEW();
    int lTempInteger_6 = 0;
    int lTempInteger_7 = 0;
    int lTempInteger_8 = 0;
    int lTempInteger_9 = 0;
    int lTempInteger_10 = 0;
    int lTempInteger_11 = 0;
    int lTempInteger_12 = 0;
    zVIEW vTempViewVar_1 = new zVIEW();
    int lTempInteger_13 = 0;
    int lTempInteger_14 = 0;
    int lTempInteger_15 = 0;
    int lTempInteger_16 = 0;
    int lTempInteger_17 = 0;
    int lTempInteger_18 = 0;
    int lTempInteger_19 = 0;
    String szTempString_0 = null;
    int lTempInteger_20 = 0;
    String szTempString_1 = null;
    int lTempInteger_21 = 0;
    int lTempInteger_22 = 0;
    int lTempInteger_23 = 0;
    int lTempInteger_24 = 0;
    int lTempInteger_25 = 0;
    int lTempInteger_26 = 0;
    int lTempInteger_27 = 0;
    int lTempInteger_28 = 0;
    int lTempInteger_29 = 0;
    int lTempInteger_30 = 0;
    int lTempInteger_31 = 0;
    int lTempInteger_32 = 0;
    int lTempInteger_33 = 0;
    int lTempInteger_34 = 0;
    int lTempInteger_35 = 0;
    int lTempInteger_36 = 0;
    int lTempInteger_37 = 0;
    int lTempInteger_38 = 0;
    int lTempInteger_39 = 0;
    int lTempInteger_40 = 0;
    int lTempInteger_41 = 0;
    int lTempInteger_42 = 0;
    int lTempInteger_43 = 0;
    int lTempInteger_44 = 0;
    int lTempInteger_45 = 0;
    int lTempInteger_46 = 0;
    int lTempInteger_47 = 0;
    int lTempInteger_48 = 0;
    int lTempInteger_49 = 0;
    int lTempInteger_50 = 0;
    int lTempInteger_51 = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;
    double dTempDecimal_2 = 0.0;
    String szTempString_2 = null;
    String szTempString_3 = null;
    double dTempDecimal_3 = 0.0;
    double dTempDecimal_4 = 0.0;
    double dTempDecimal_5 = 0.0;
    double dTempDecimal_6 = 0.0;
    int lTempInteger_52 = 0;
    String szTempString_4 = null;
    String szTempString_5 = null;
    double dTempDecimal_7 = 0.0;
    double dTempDecimal_8 = 0.0;
    double dTempDecimal_9 = 0.0;
    double dTempDecimal_10 = 0.0;
    double dTempDecimal_11 = 0.0;
    double dTempDecimal_12 = 0.0;
    int lTempInteger_53 = 0;
    String szTempString_6 = null;
    String szTempString_7 = null;
    int lTempInteger_54 = 0;
    String szTempString_8 = null;
    String szTempString_9 = null;
    String szTempString_10 = null;
    String szTempString_11 = null;
    double dTempDecimal_13 = 0.0;
    double dTempDecimal_14 = 0.0;
    double dTempDecimal_15 = 0.0;
    double dTempDecimal_16 = 0.0;
    String szTempString_12 = null;
    int lTempInteger_55 = 0;
    String szTempString_13 = null;
    String szTempString_14 = null;
    String szTempString_15 = null;
    double dTempDecimal_17 = 0.0;
    double dTempDecimal_18 = 0.0;
    double dTempDecimal_19 = 0.0;
    String szTempString_16 = null;
    double dTempDecimal_20 = 0.0;
    String szTempString_17 = null;
    int lTempInteger_56 = 0;
    int lTempInteger_57 = 0;
    String szTempString_18 = null;
    String szTempString_19 = null;
    int lTempInteger_58 = 0;
    int lTempInteger_59 = 0;
    int lTempInteger_60 = 0;
    String szTempString_20 = null;
    String szTempString_21 = null;
    int lTempInteger_61 = 0;
    int lTempInteger_62 = 0;
    String szTempString_22 = null;
    String szTempString_23 = null;
    int lTempInteger_63 = 0;
    int lTempInteger_64 = 0;
    int lTempInteger_65 = 0;
    int lTempInteger_66 = 0;
    double dTempDecimal_21 = 0.0;
    double dTempDecimal_22 = 0.0;

    RESULT = GetViewByName(mStudent, "mStudent", mDegTrk, zLEVEL_TASK);

    //:// Process the courses taken in mStudenC against the degree audit requirements of mDegTrk.
    //:// The results will be specified in the work attributes of mDegTrk.

    //:nRC = GetViewByName( mUser, "mUser", mDegTrk, zLEVEL_APPLICATION )
    nRC = GetViewByName(mUser, "mUser", mDegTrk, zLEVEL_APPLICATION);
    //:IF nRC < 0
    if (nRC < 0) {
        //:// Use task view in case we're running under Web.
        //:GetViewByName( mUser, "mUser", mDegTrk, zLEVEL_TASK )
        GetViewByName(mUser, "mUser", mDegTrk, zLEVEL_TASK);
    }

    //:END
    //:mDegTrk.DegreeTrack.wAuditorName = mUser.User.dFullNameLFM 
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "wAuditorName", mUser, "User", "dFullNameLFM");

    //:// Build the Student data from view mStudent.
    //:IF mDegTrk.AuditedStudent EXISTS 
    lTempInteger_0 = CheckExistenceOfEntity(mDegTrk, "AuditedStudent");
    if (lTempInteger_0 == 0) {
        //:DELETE ENTITY mDegTrk.AuditedStudent  
        RESULT = DeleteEntity(mDegTrk, "AuditedStudent", zPOS_NEXT);
    }

    //:END
    //:CREATE ENTITY mDegTrk.AuditedStudent 
    RESULT = CreateEntity(mDegTrk, "AuditedStudent", zPOS_AFTER);
    //:mDegTrk.AuditedStudent.FullName               = mStudent.Person.dFullName
    SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "FullName", mStudent, "Person", "dFullName");
    //:mDegTrk.AuditedStudent.DegreeMajorName        = mStudent.DegreeMajor.Name 
    SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "DegreeMajorName", mStudent, "DegreeMajor", "Name");
    //:mDegTrk.AuditedStudent.DegreeMajorTrackName   = mStudent.MajorDegreeTrack.Name 
    SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "DegreeMajorTrackName", mStudent, "MajorDegreeTrack",
            "Name");
    //:mDegTrk.AuditedStudent.ClassificationAtAudit  = mStudent.Student.CurrentLevel 
    SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "ClassificationAtAudit", mStudent, "Student",
            "CurrentLevel");
    //:mDegTrk.AuditedStudent.ComprehensiveTestScore = mStudent.StudentMajorDegreeTrack.ComprehensiveTestScore 
    SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "ComprehensiveTestScore", mStudent,
            "StudentMajorDegreeTrack", "ComprehensiveTestScore");
    //:mDegTrk.AuditedStudent.eMailAddress           = mStudent.Student.eMailAddress
    SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "eMailAddress", mStudent, "Student", "eMailAddress");
    //:IF mStudent.DegreeTrackCollegeDegree EXISTS
    lTempInteger_1 = CheckExistenceOfEntity(mStudent, "DegreeTrackCollegeDegree");
    if (lTempInteger_1 == 0) {
        //:mDegTrk.AuditedStudent.DegreeTrackCollegeDegreeName = mStudent.DegreeTrackCollegeDegree.Name 
        SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "DegreeTrackCollegeDegreeName", mStudent,
                "DegreeTrackCollegeDegree", "Name");
    }

    //:END
    //:IF mStudent.Advisor EXISTS
    lTempInteger_2 = CheckExistenceOfEntity(mStudent, "Advisor");
    if (lTempInteger_2 == 0) {
        //:mDegTrk.AuditedStudent.StudentAdvisorShortName = mStudent.Advisor.ShortName 
        SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "StudentAdvisorShortName", mStudent, "Advisor",
                "ShortName");
    }

    //:END
    //:SET CURSOR FIRST mStudent.DegreeMinorCollege WITHIN mStudent.Student 
    //:           WHERE mStudent.DegreeMinorCollege.ID = mStudent.DegreeMajorCollege.ID 
    {
        MutableInt mi_lTempInteger_3 = new MutableInt(lTempInteger_3);
        GetIntegerFromAttribute(mi_lTempInteger_3, mStudent, "DegreeMajorCollege", "ID");
        lTempInteger_3 = mi_lTempInteger_3.intValue();
    }
    RESULT = mStudent.cursor("DegreeMinorCollege").setFirst("ID", lTempInteger_3, "Student").toInt();
    //:IF RESULT >= zCURSOR_SET
    if (RESULT >= zCURSOR_SET) {
        //:mDegTrk.AuditedStudent.DegreeMinorName = mStudent.DegreeMinor.Name 
        SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "DegreeMinorName", mStudent, "DegreeMinor",
                "Name");
    }

    //:END
    //:IF mStudent.DC_AnticipatedGraduationDate EXISTS
    lTempInteger_4 = CheckExistenceOfEntity(mStudent, "DC_AnticipatedGraduationDate");
    if (lTempInteger_4 == 0) {
        //:mDegTrk.AuditedStudent.AnticipatedGraduationDateName = mStudent.DC_AnticipatedGraduationDate.Name
        SetAttributeFromAttribute(mDegTrk, "AuditedStudent", "AnticipatedGraduationDateName", mStudent,
                "DC_AnticipatedGraduationDate", "Name");
    }

    //:END
    //: 

    //:// Activate the Transcript object, which is used for displaying Earned Credits, GPA, etc.
    //:GET VIEW lTrnscpt NAMED "lTrnscpt"
    RESULT = GetViewByName(lTrnscpt, "lTrnscpt", mDegTrk, zLEVEL_TASK);
    //:IF RESULT >= 0
    if (RESULT >= 0) {
        //:DropObjectInstance( lTrnscpt ) 
        DropObjectInstance(lTrnscpt);
    }

    //:END
    //:ACTIVATE lTrnscpt WHERE lTrnscpt.Student.ID = mStudenC_Orig.Student.ID
    {
        MutableInt mi_lTempInteger_5 = new MutableInt(lTempInteger_5);
        GetIntegerFromAttribute(mi_lTempInteger_5, mStudenC_Orig, "Student", "ID");
        lTempInteger_5 = mi_lTempInteger_5.intValue();
    }
    omDegTrk_fnLocalBuildQual_0(mDegTrk, vTempViewVar_0, lTempInteger_5);
    RESULT = ActivateObjectInstance(lTrnscpt, "lTrnscpt", mDegTrk, vTempViewVar_0, zSINGLE);
    DropView(vTempViewVar_0);
    //:NAME VIEW lTrnscpt "lTrnscpt"
    SetNameForView(lTrnscpt, "lTrnscpt", null, zLEVEL_TASK);

    //:// Build the Transcript object as either graduate or undergraduate, depending on the type of DegreeTrack.
    //:szCollegeType = mDegTrk.DegreeMajorCollege.Type  // Type is Graduate or Undergraduate
    {
        MutableInt mi_lTempInteger_6 = new MutableInt(lTempInteger_6);
        StringBuilder sb_szCollegeType;
        if (szCollegeType == null)
            sb_szCollegeType = new StringBuilder(32);
        else
            sb_szCollegeType = new StringBuilder(szCollegeType);
        GetVariableFromAttribute(sb_szCollegeType, mi_lTempInteger_6, 'S', 21, mDegTrk, "DegreeMajorCollege",
                "Type", "", 0);
        lTempInteger_6 = mi_lTempInteger_6.intValue();
        szCollegeType = sb_szCollegeType.toString();
    }
    //:GradUndergradFlag = szCollegeType                // Flag is G or U
    {
        StringBuilder sb_GradUndergradFlag;
        if (GradUndergradFlag == null)
            sb_GradUndergradFlag = new StringBuilder(32);
        else
            sb_GradUndergradFlag = new StringBuilder(GradUndergradFlag);
        ZeidonStringCopy(sb_GradUndergradFlag, 1, 0, szCollegeType, 1, 0, 2);
        GradUndergradFlag = sb_GradUndergradFlag.toString();
    }
    //:BuildTranscript( lTrnscpt, GradUndergradFlag )
    {
        lTrnscpt_Object m_lTrnscpt_Object = new lTrnscpt_Object(lTrnscpt);
        m_lTrnscpt_Object.olTrnscpt_BuildTranscript(lTrnscpt, GradUndergradFlag);
        // m_lTrnscpt_Object = null;  // permit gc  (unnecessary)
    }

    //:// Use a new copy of mStudenC, since we may drop entities in the object.
    //:ActivateOI_FromOI( mStudenC, mStudenC_Orig, zSINGLE )
    ActivateOI_FromOI(mStudenC, mStudenC_Orig, zSINGLE);
    //:NAME VIEW mStudenC "mStudenC_Audit"
    SetNameForView(mStudenC, "mStudenC_Audit", null, zLEVEL_TASK);

    //:// Treat any IP grades as if the student is still enrolled in the Class.
    //:FOR EACH mStudenC.Registration
    RESULT = mStudenC.cursor("Registration").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:szFinalGradeString = mStudenC.Registration.FinalGrade
        {
            MutableInt mi_lTempInteger_7 = new MutableInt(lTempInteger_7);
            StringBuilder sb_szFinalGradeString;
            if (szFinalGradeString == null)
                sb_szFinalGradeString = new StringBuilder(32);
            else
                sb_szFinalGradeString = new StringBuilder(szFinalGradeString);
            GetVariableFromAttribute(sb_szFinalGradeString, mi_lTempInteger_7, 'S', 21, mStudenC,
                    "Registration", "FinalGrade", "", 0);
            lTempInteger_7 = mi_lTempInteger_7.intValue();
            szFinalGradeString = sb_szFinalGradeString.toString();
        }
        //:IF szFinalGradeString = "IP" OR
        //:   szFinalGradeString = "I"  OR
        //:   szFinalGradeString = "NG" OR
        //:   szFinalGradeString = "X"  OR
        //:   szFinalGradeString = "AI"
        if (ZeidonStringCompare(szFinalGradeString, 1, 0, "IP", 1, 0, 21) == 0
                || ZeidonStringCompare(szFinalGradeString, 1, 0, "I", 1, 0, 21) == 0
                || ZeidonStringCompare(szFinalGradeString, 1, 0, "NG", 1, 0, 21) == 0
                || ZeidonStringCompare(szFinalGradeString, 1, 0, "X", 1, 0, 21) == 0
                || ZeidonStringCompare(szFinalGradeString, 1, 0, "AI", 1, 0, 21) == 0) {

            //:mStudenC.Registration.FinalGrade = ""
            SetAttributeFromString(mStudenC, "Registration", "FinalGrade", "");
            //:mStudenC.Registration.Status = "T"
            SetAttributeFromString(mStudenC, "Registration", "Status", "T");
        }

        RESULT = mStudenC.cursor("Registration").setNextContinue().toInt();
        ;
        //:END
    }

    //:END

    //:// Drop any Registration entries that are not for the grad/undergrad type of the College of the DegreeMajor.
    //:IF mDegTrk.DegreeMajorCollege EXISTS
    lTempInteger_8 = CheckExistenceOfEntity(mDegTrk, "DegreeMajorCollege");
    if (lTempInteger_8 == 0) {
        //:GET VIEW mCollegeLST NAMED "mCollegeLST"
        RESULT = GetViewByName(mCollegeLST, "mCollegeLST", mDegTrk, zLEVEL_TASK);
        //:IF RESULT < 0
        if (RESULT < 0) {
            //:ACTIVATE mCollegeLST RootOnlyMultiple
            RESULT = ActivateObjectInstance(mCollegeLST, "mCollege", mDegTrk, 0, zACTIVATE_ROOTONLY_MULTIPLE);
            //:NAME VIEW mCollegeLST "mCollegeLST"
            SetNameForView(mCollegeLST, "mCollegeLST", null, zLEVEL_TASK);
        }

        //:END
        //:FOR EACH mStudenC.Registration
        RESULT = mStudenC.cursor("Registration").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF mStudenC.Registration.GradUndergradOverrideFlag != ""
            if (CompareAttributeToString(mStudenC, "Registration", "GradUndergradOverrideFlag", "") != 0) {
                //:IF mStudenC.Registration.GradUndergradOverrideFlag != GradUndergradFlag
                if (CompareAttributeToString(mStudenC, "Registration", "GradUndergradOverrideFlag",
                        GradUndergradFlag) != 0) {
                    //:DropEntity( mStudenC, "Registration", zREPOS_NONE )
                    DropEntity(mStudenC, "Registration", zREPOS_NONE);
                }

                //:END
                //:ELSE
            } else {
                //:IF mStudenC.RegistrationCourseCollege EXISTS
                lTempInteger_9 = CheckExistenceOfEntity(mStudenC, "RegistrationCourseCollege");
                if (lTempInteger_9 == 0) {
                    //:SET CURSOR FIRST mCollegeLST.College WHERE mCollegeLST.College.ID = mStudenC.RegistrationCourseCollege.ID 
                    {
                        MutableInt mi_lTempInteger_10 = new MutableInt(lTempInteger_10);
                        GetIntegerFromAttribute(mi_lTempInteger_10, mStudenC, "RegistrationCourseCollege",
                                "ID");
                        lTempInteger_10 = mi_lTempInteger_10.intValue();
                    }
                    RESULT = mCollegeLST.cursor("College").setFirst("ID", lTempInteger_10).toInt();
                    //:IF mCollegeLST.College.Type != szCollegeType
                    if (CompareAttributeToString(mCollegeLST, "College", "Type", szCollegeType) != 0) {
                        //:DropEntity( mStudenC, "Registration", zREPOS_NONE )
                        DropEntity(mStudenC, "Registration", zREPOS_NONE);
                    }

                    //:END
                    //:ELSE
                } else {
                    //:TransferGradUndergradFlag = "U"
                    {
                        StringBuilder sb_TransferGradUndergradFlag;
                        if (TransferGradUndergradFlag == null)
                            sb_TransferGradUndergradFlag = new StringBuilder(32);
                        else
                            sb_TransferGradUndergradFlag = new StringBuilder(TransferGradUndergradFlag);
                        ZeidonStringCopy(sb_TransferGradUndergradFlag, 1, 0, "U", 1, 0, 2);
                        TransferGradUndergradFlag = sb_TransferGradUndergradFlag.toString();
                    }
                    //:IF mStudenC.RegTransferGroup EXISTS
                    lTempInteger_11 = CheckExistenceOfEntity(mStudenC, "RegTransferGroup");
                    if (lTempInteger_11 == 0) {
                        //:// Converted by DonC from GraduateCollegeFlag to ApplyToCollegeLevel on 1/13/2008.
                        //://IF mStudenC.RegTransferGroup.GraduateCollegeFlag = "Y"
                        //:IF mStudenC.RegTransferGroup.ApplyToCollegeLevel = "G"
                        if (CompareAttributeToString(mStudenC, "RegTransferGroup", "ApplyToCollegeLevel",
                                "G") == 0) {
                            //:TransferGradUndergradFlag = "G"
                            {
                                StringBuilder sb_TransferGradUndergradFlag;
                                if (TransferGradUndergradFlag == null)
                                    sb_TransferGradUndergradFlag = new StringBuilder(32);
                                else
                                    sb_TransferGradUndergradFlag = new StringBuilder(TransferGradUndergradFlag);
                                ZeidonStringCopy(sb_TransferGradUndergradFlag, 1, 0, "G", 1, 0, 2);
                                TransferGradUndergradFlag = sb_TransferGradUndergradFlag.toString();
                            }
                        }

                        //:END
                    }

                    //:END
                    //:IF TransferGradUndergradFlag != GradUndergradFlag
                    if (ZeidonStringCompare(TransferGradUndergradFlag, 1, 0, GradUndergradFlag, 1, 0, 2) != 0) {
                        //:DropEntity( mStudenC, "Registration", zREPOS_NONE )
                        DropEntity(mStudenC, "Registration", zREPOS_NONE);
                    }

                    //:END
                }

                //:END
            }

            RESULT = mStudenC.cursor("Registration").setNextContinue().toInt();
            ;
            //:END
        }

        //:END
    }

    //:END

    //:// Add an "Electives" group for putting all classes that don't fall into one of the original Degree Track
    //:// Groups.
    //:SET CURSOR LAST mDegTrk.DegreeTrackRequiredGroup
    RESULT = mDegTrk.cursor("DegreeTrackRequiredGroup").setLast().toInt();
    ;
    //:CREATE ENTITY mDegTrk.DegreeTrackRequiredGroup AFTER
    RESULT = CreateEntity(mDegTrk, "DegreeTrackRequiredGroup", zPOS_AFTER);
    //:CREATE ENTITY mDegTrk.RequiredGroup 
    RESULT = CreateEntity(mDegTrk, "RequiredGroup", zPOS_AFTER);
    //:mDegTrk.RequiredGroup.Name = "Electives"
    SetAttributeFromString(mDegTrk, "RequiredGroup", "Name", "Electives");
    //:mDegTrk.RequiredGroup.Type = "E"
    SetAttributeFromString(mDegTrk, "RequiredGroup", "Type", "E");

    //:// Add any Student Requirements groups at the beginning.
    //:SET CURSOR FIRST mDegTrk.DegreeTrackRequiredGroup
    RESULT = mDegTrk.cursor("DegreeTrackRequiredGroup").setFirst().toInt();
    //:FOR EACH mStudenC.HS_RequiredGroup 
    RESULT = mStudenC.cursor("HS_RequiredGroup").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:ACTIVATE mDegTrkR WHERE mDegTrkR.RequiredGroup.ID = mStudenC.HS_RequiredGroup.ID 
        {
            MutableInt mi_lTempInteger_12 = new MutableInt(lTempInteger_12);
            GetIntegerFromAttribute(mi_lTempInteger_12, mStudenC, "HS_RequiredGroup", "ID");
            lTempInteger_12 = mi_lTempInteger_12.intValue();
        }
        omDegTrk_fnLocalBuildQual_1(mDegTrk, vTempViewVar_1, lTempInteger_12);
        RESULT = ActivateObjectInstance(mDegTrkR, "mDegTrkR", mDegTrk, vTempViewVar_1, zSINGLE);
        DropView(vTempViewVar_1);
        //:CREATE ENTITY mDegTrk.DegreeTrackRequiredGroup BEFORE
        RESULT = CreateEntity(mDegTrk, "DegreeTrackRequiredGroup", zPOS_BEFORE);
        //:INCLUDE mDegTrk.RequiredGroup FROM mDegTrkR.RequiredGroup
        RESULT = IncludeSubobjectFromSubobject(mDegTrk, "RequiredGroup", mDegTrkR, "RequiredGroup", zPOS_AFTER);
        //:DropObjectInstance( mDegTrkR )
        DropObjectInstance(mDegTrkR);
        RESULT = mStudenC.cursor("HS_RequiredGroup").setNextContinue().toInt();
        ;
    }

    //:END

    //:// Add an additional "Developmental" group at the beginning.
    //:SET CURSOR FIRST mDegTrk.DegreeTrackRequiredGroup
    RESULT = mDegTrk.cursor("DegreeTrackRequiredGroup").setFirst().toInt();
    //:CREATE ENTITY mDegTrk.DegreeTrackRequiredGroup BEFORE
    RESULT = CreateEntity(mDegTrk, "DegreeTrackRequiredGroup", zPOS_BEFORE);
    //:CREATE ENTITY mDegTrk.RequiredGroup 
    RESULT = CreateEntity(mDegTrk, "RequiredGroup", zPOS_AFTER);
    //:mDegTrk.RequiredGroup.Name = "Developmental"
    SetAttributeFromString(mDegTrk, "RequiredGroup", "Name", "Developmental");
    //:mDegTrk.RequiredGroup.Type = "D"
    SetAttributeFromString(mDegTrk, "RequiredGroup", "Type", "D");
    //:SetAttributeFromCurrentDateTime( mDegTrk, "DegreeTrack", "wCreatedDate" )
    {
        ZGLOBAL1_Operation m_ZGLOBAL1_Operation = new ZGLOBAL1_Operation(mDegTrk);
        m_ZGLOBAL1_Operation.SetAttributeFromCurrentDateTime(mDegTrk, "DegreeTrack", "wCreatedDate");
        // m_ZGLOBAL1_Operation = null;  // permit gc  (unnecessary)
    }

    //:// First, loop through and process any substituted Courses and assign them to the correct Group Course or Group.
    //:// If one or more entries exist to assign the Course to a particular Group and/or Course, we will first try to 
    //:// use that information in assigning the Course. If it doesn't work or if no particular Course was requested,
    //:// we will skip assignment here.
    //:FOR EACH mStudenC.Registration 
    //:                       WHERE mStudenC.Registration.Status = "C"    // Completed
    //:                          OR mStudenC.Registration.Status = "T"    // Currently Enrolled
    //:                          OR mStudenC.Registration.Status = "V"    // Waived
    //:                          OR mStudenC.Registration.Status = "F"    // Transferred
    //:                          OR mStudenC.Registration.Status = "X"    // L. Transferred
    //:                          OR mStudenC.Registration.Status = "Y"    // L. Waived
    //:                          OR mStudenC.Registration.Status = "P"    // Pre-Transferred
    RESULT = mStudenC.cursor("Registration").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        if (CompareAttributeToString(mStudenC, "Registration", "Status", "C") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "T") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "V") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "F") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "X") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "Y") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "P") == 0) {

            //:IF mStudenC.RegistrationClass EXISTS
            lTempInteger_13 = CheckExistenceOfEntity(mStudenC, "RegistrationClass");
            if (lTempInteger_13 == 0) {
                //:IF mStudenC.CrossListedCourse EXISTS
                lTempInteger_14 = CheckExistenceOfEntity(mStudenC, "CrossListedCourse");
                if (lTempInteger_14 == 0) {
                    //:CourseID = mStudenC.CrossListedCourse.ID 
                    {
                        MutableInt mi_CourseID = new MutableInt(CourseID);
                        GetIntegerFromAttribute(mi_CourseID, mStudenC, "CrossListedCourse", "ID");
                        CourseID = mi_CourseID.intValue();
                    }
                    //:ELSE
                } else {
                    //:CourseID = mStudenC.RegistrationCourse.ID
                    {
                        MutableInt mi_CourseID = new MutableInt(CourseID);
                        GetIntegerFromAttribute(mi_CourseID, mStudenC, "RegistrationCourse", "ID");
                        CourseID = mi_CourseID.intValue();
                    }
                }

                //:END
                //:RepeatableForCreditFlag = mStudenC.RegistrationCourse.RepeatableForCreditFlag 
                {
                    MutableInt mi_lTempInteger_15 = new MutableInt(lTempInteger_15);
                    StringBuilder sb_RepeatableForCreditFlag;
                    if (RepeatableForCreditFlag == null)
                        sb_RepeatableForCreditFlag = new StringBuilder(32);
                    else
                        sb_RepeatableForCreditFlag = new StringBuilder(RepeatableForCreditFlag);
                    GetVariableFromAttribute(sb_RepeatableForCreditFlag, mi_lTempInteger_15, 'S', 2, mStudenC,
                            "RegistrationCourse", "RepeatableForCreditFlag", "", 0);
                    lTempInteger_15 = mi_lTempInteger_15.intValue();
                    RepeatableForCreditFlag = sb_RepeatableForCreditFlag.toString();
                }
                //:ELSE
            } else {
                //:IF mStudenC.EquivalentCourse EXISTS
                lTempInteger_16 = CheckExistenceOfEntity(mStudenC, "EquivalentCourse");
                if (lTempInteger_16 == 0) {
                    //:CourseID                = mStudenC.EquivalentCourse.ID
                    {
                        MutableInt mi_CourseID = new MutableInt(CourseID);
                        GetIntegerFromAttribute(mi_CourseID, mStudenC, "EquivalentCourse", "ID");
                        CourseID = mi_CourseID.intValue();
                    }
                    //:RepeatableForCreditFlag = mStudenC.EquivalentCourse.RepeatableForCreditFlag 
                    {
                        MutableInt mi_lTempInteger_17 = new MutableInt(lTempInteger_17);
                        StringBuilder sb_RepeatableForCreditFlag;
                        if (RepeatableForCreditFlag == null)
                            sb_RepeatableForCreditFlag = new StringBuilder(32);
                        else
                            sb_RepeatableForCreditFlag = new StringBuilder(RepeatableForCreditFlag);
                        GetVariableFromAttribute(sb_RepeatableForCreditFlag, mi_lTempInteger_17, 'S', 2,
                                mStudenC, "EquivalentCourse", "RepeatableForCreditFlag", "", 0);
                        lTempInteger_17 = mi_lTempInteger_17.intValue();
                        RepeatableForCreditFlag = sb_RepeatableForCreditFlag.toString();
                    }
                    //:ELSE
                } else {
                    //:CourseID = 0
                    CourseID = 0;
                }

                //:END
            }

            //:END

            //:SubstituteFlag = ""
            {
                StringBuilder sb_SubstituteFlag;
                if (SubstituteFlag == null)
                    sb_SubstituteFlag = new StringBuilder(32);
                else
                    sb_SubstituteFlag = new StringBuilder(SubstituteFlag);
                ZeidonStringCopy(sb_SubstituteFlag, 1, 0, "", 1, 0, 2);
                SubstituteFlag = sb_SubstituteFlag.toString();
            }
            //:mStudenC.Registration.wSubstituteFlag = ""
            SetAttributeFromString(mStudenC, "Registration", "wSubstituteFlag", "");
            //:FOR EACH mStudenC.DegreeAuditSpecification 
            RESULT = mStudenC.cursor("DegreeAuditSpecification").setFirst().toInt();
            while (RESULT > zCURSOR_UNCHANGED) {
                //:IF mStudenC.DAS_DegreeTrack DOES NOT EXIST
                lTempInteger_18 = CheckExistenceOfEntity(mStudenC, "DAS_DegreeTrack");
                if (lTempInteger_18 != 0) {
                    //:IF mStudenC.DAS_Course EXISTS
                    lTempInteger_19 = CheckExistenceOfEntity(mStudenC, "DAS_Course");
                    if (lTempInteger_19 == 0) {
                        //:Msg = "The Degree Track for Substitute Course, " + mStudenC.DAS_Course.Number + ", does not exist." + NEW_LINE +
                        //:   "Please delete the manual assignment entry."
                        {
                            MutableInt mi_lTempInteger_20 = new MutableInt(lTempInteger_20);
                            StringBuilder sb_szTempString_0;
                            if (szTempString_0 == null)
                                sb_szTempString_0 = new StringBuilder(32);
                            else
                                sb_szTempString_0 = new StringBuilder(szTempString_0);
                            GetVariableFromAttribute(sb_szTempString_0, mi_lTempInteger_20, 'S', 11, mStudenC,
                                    "DAS_Course", "Number", "", 0);
                            lTempInteger_20 = mi_lTempInteger_20.intValue();
                            szTempString_0 = sb_szTempString_0.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringCopy(sb_Msg, 1, 0, "The Degree Track for Substitute Course, ", 1, 0,
                                    201);
                            Msg = sb_Msg.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringConcat(sb_Msg, 1, 0, szTempString_0, 1, 0, 201);
                            Msg = sb_Msg.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringConcat(sb_Msg, 1, 0, ", does not exist.", 1, 0, 201);
                            Msg = sb_Msg.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringConcat(sb_Msg, 1, 0, NEW_LINE, 1, 0, 201);
                            Msg = sb_Msg.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringConcat(sb_Msg, 1, 0, "Please delete the manual assignment entry.", 1, 0,
                                    201);
                            Msg = sb_Msg.toString();
                        }
                        //:MessageSend( mStudenC, "", "Degree Audit", Msg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                        MessageSend(mStudenC, "", "Degree Audit", Msg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                        //:ELSE
                    } else {
                        //:Msg = "The Degree Track for Substitute Group, " + mStudenC.DAS_RequiredGroup.Name + ", does not exist." + NEW_LINE +
                        //:   "Please delete the manual assignment entry."
                        {
                            MutableInt mi_lTempInteger_21 = new MutableInt(lTempInteger_21);
                            StringBuilder sb_szTempString_1;
                            if (szTempString_1 == null)
                                sb_szTempString_1 = new StringBuilder(32);
                            else
                                sb_szTempString_1 = new StringBuilder(szTempString_1);
                            GetVariableFromAttribute(sb_szTempString_1, mi_lTempInteger_21, 'S', 51, mStudenC,
                                    "DAS_RequiredGroup", "Name", "", 0);
                            lTempInteger_21 = mi_lTempInteger_21.intValue();
                            szTempString_1 = sb_szTempString_1.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringCopy(sb_Msg, 1, 0, "The Degree Track for Substitute Group, ", 1, 0,
                                    201);
                            Msg = sb_Msg.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringConcat(sb_Msg, 1, 0, szTempString_1, 1, 0, 201);
                            Msg = sb_Msg.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringConcat(sb_Msg, 1, 0, ", does not exist.", 1, 0, 201);
                            Msg = sb_Msg.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringConcat(sb_Msg, 1, 0, NEW_LINE, 1, 0, 201);
                            Msg = sb_Msg.toString();
                        }
                        {
                            StringBuilder sb_Msg;
                            if (Msg == null)
                                sb_Msg = new StringBuilder(32);
                            else
                                sb_Msg = new StringBuilder(Msg);
                            ZeidonStringConcat(sb_Msg, 1, 0, "Please delete the manual assignment entry.", 1, 0,
                                    201);
                            Msg = sb_Msg.toString();
                        }
                        //:MessageSend( mStudenC, "", "Degree Audit", Msg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                        MessageSend(mStudenC, "", "Degree Audit", Msg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                    }

                    //:END
                    //:ELSE
                } else {
                    //:IF SubstituteFlag = "" AND mStudenC.DAS_DegreeTrack.ID = mDegTrk.DegreeTrack.ID 
                    if (ZeidonStringCompare(SubstituteFlag, 1, 0, "", 1, 0, 2) == 0
                            && CompareAttributeToAttribute(mStudenC, "DAS_DegreeTrack", "ID", mDegTrk,
                                    "DegreeTrack", "ID") == 0) {
                        //:SET CURSOR FIRST mDegTrk.RequiredGroup WITHIN mDegTrk.DegreeTrack
                        //:        WHERE mDegTrk.RequiredGroup.ID = mStudenC.DAS_RequiredGroup.ID
                        {
                            MutableInt mi_lTempInteger_22 = new MutableInt(lTempInteger_22);
                            GetIntegerFromAttribute(mi_lTempInteger_22, mStudenC, "DAS_RequiredGroup", "ID");
                            lTempInteger_22 = mi_lTempInteger_22.intValue();
                        }
                        RESULT = mDegTrk.cursor("RequiredGroup").setFirst("ID", lTempInteger_22, "DegreeTrack")
                                .toInt();
                        //:IF mStudenC.DAS_RequiredSubGroup EXISTS
                        lTempInteger_23 = CheckExistenceOfEntity(mStudenC, "DAS_RequiredSubGroup");
                        if (lTempInteger_23 == 0) {
                            //:SET CURSOR FIRST mDegTrk.RequiredSubGroup 
                            //:        WHERE mDegTrk.RequiredSubGroup.ID = mStudenC.DAS_RequiredSubGroup.ID  
                            {
                                MutableInt mi_lTempInteger_24 = new MutableInt(lTempInteger_24);
                                GetIntegerFromAttribute(mi_lTempInteger_24, mStudenC, "DAS_RequiredSubGroup",
                                        "ID");
                                lTempInteger_24 = mi_lTempInteger_24.intValue();
                            }
                            RESULT = mDegTrk.cursor("RequiredSubGroup").setFirst("ID", lTempInteger_24).toInt();
                        }

                        //:END
                        //:IF mStudenC.DAS_Course EXISTS
                        lTempInteger_25 = CheckExistenceOfEntity(mStudenC, "DAS_Course");
                        if (lTempInteger_25 == 0) {
                            //:// A particular Course override entry is selected, so just position on that Course.
                            //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.RequiredGroup
                            //:        WHERE mDegTrk.CourseType1or2.ID = mStudenC.DAS_Course.ID 
                            {
                                MutableInt mi_lTempInteger_26 = new MutableInt(lTempInteger_26);
                                GetIntegerFromAttribute(mi_lTempInteger_26, mStudenC, "DAS_Course", "ID");
                                lTempInteger_26 = mi_lTempInteger_26.intValue();
                            }
                            RESULT = mDegTrk.cursor("CourseType1or2")
                                    .setFirst("ID", lTempInteger_26, "RequiredGroup").toInt();
                            //:IF RESULT >= zCURSOR_SET AND mDegTrk.RequiredGroup.Type != "E"
                            if (RESULT >= zCURSOR_SET
                                    && CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "E") != 0) {
                                //:CourseType1or2Match( mDegTrk, mStudenC, mStudent )
                                omDegTrk_CourseType1or2Match(mDegTrk, mStudenC, mStudent);
                                //:SubstituteFlag = "Y"
                                {
                                    StringBuilder sb_SubstituteFlag;
                                    if (SubstituteFlag == null)
                                        sb_SubstituteFlag = new StringBuilder(32);
                                    else
                                        sb_SubstituteFlag = new StringBuilder(SubstituteFlag);
                                    ZeidonStringCopy(sb_SubstituteFlag, 1, 0, "Y", 1, 0, 2);
                                    SubstituteFlag = sb_SubstituteFlag.toString();
                                }
                                //:mStudenC.Registration.wSubstituteFlag = "Y"
                                SetAttributeFromString(mStudenC, "Registration", "wSubstituteFlag", "Y");
                                //:ELSE
                            } else {
                                //:IF mStudenC.DAS_RequiredSubGroup EXISTS
                                lTempInteger_27 = CheckExistenceOfEntity(mStudenC, "DAS_RequiredSubGroup");
                                if (lTempInteger_27 == 0) {
                                    //:SET CURSOR FIRST mDegTrk.RequiredSubGroup 
                                    //:        WHERE mDegTrk.RequiredSubGroup.ID = mStudenC.DAS_RequiredSubGroup.ID  
                                    {
                                        MutableInt mi_lTempInteger_28 = new MutableInt(lTempInteger_28);
                                        GetIntegerFromAttribute(mi_lTempInteger_28, mStudenC,
                                                "DAS_RequiredSubGroup", "ID");
                                        lTempInteger_28 = mi_lTempInteger_28.intValue();
                                    }
                                    RESULT = mDegTrk.cursor("RequiredSubGroup").setFirst("ID", lTempInteger_28)
                                            .toInt();
                                    //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.RequiredSubGroup
                                    //:        WHERE mDegTrk.CourseType3or4.ID = mStudenC.DAS_Course.ID       
                                    {
                                        MutableInt mi_lTempInteger_29 = new MutableInt(lTempInteger_29);
                                        GetIntegerFromAttribute(mi_lTempInteger_29, mStudenC, "DAS_Course",
                                                "ID");
                                        lTempInteger_29 = mi_lTempInteger_29.intValue();
                                    }
                                    RESULT = mDegTrk.cursor("CourseType3or4")
                                            .setFirst("ID", lTempInteger_29, "RequiredSubGroup").toInt();
                                    //:ELSE
                                } else {
                                    //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.RequiredGroup
                                    //:        WHERE mDegTrk.CourseType3or4.ID = mStudenC.DAS_Course.ID 
                                    {
                                        MutableInt mi_lTempInteger_30 = new MutableInt(lTempInteger_30);
                                        GetIntegerFromAttribute(mi_lTempInteger_30, mStudenC, "DAS_Course",
                                                "ID");
                                        lTempInteger_30 = mi_lTempInteger_30.intValue();
                                    }
                                    RESULT = mDegTrk.cursor("CourseType3or4")
                                            .setFirst("ID", lTempInteger_30, "RequiredGroup").toInt();
                                }

                                //:END
                                //:IF RESULT >= zCURSOR_SET AND mDegTrk.RequiredGroup.Type != "E"
                                if (RESULT >= zCURSOR_SET && CompareAttributeToString(mDegTrk, "RequiredGroup",
                                        "Type", "E") != 0) {
                                    //:CourseType3or4Match( mDegTrk, mStudenC, mStudent )
                                    omDegTrk_CourseType3or4Match(mDegTrk, mStudenC, mStudent);
                                    //:SubstituteFlag = "Y"
                                    {
                                        StringBuilder sb_SubstituteFlag;
                                        if (SubstituteFlag == null)
                                            sb_SubstituteFlag = new StringBuilder(32);
                                        else
                                            sb_SubstituteFlag = new StringBuilder(SubstituteFlag);
                                        ZeidonStringCopy(sb_SubstituteFlag, 1, 0, "Y", 1, 0, 2);
                                        SubstituteFlag = sb_SubstituteFlag.toString();
                                    }
                                    //:mStudenC.Registration.wSubstituteFlag = "Y"
                                    SetAttributeFromString(mStudenC, "Registration", "wSubstituteFlag", "Y");
                                }

                                //:END
                            }

                            //:END
                            //:ELSE
                        } else {
                            //:// A particular Course entry is not selected.
                            //:IF RepeatableForCreditFlag = "Y"
                            if (ZeidonStringCompare(RepeatableForCreditFlag, 1, 0, "Y", 1, 0, 2) == 0) {
                                //:// For Repeatable Course, we don't care about whether we've already processed the entry.
                                //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.RequiredGroup
                                //:        WHERE mDegTrk.CourseType1or2.ID = CourseID
                                RESULT = mDegTrk.cursor("CourseType1or2")
                                        .setFirst("ID", CourseID, "RequiredGroup").toInt();
                                //:IF RESULT >= zCURSOR_SET AND mDegTrk.RequiredGroup.Type != "E"
                                if (RESULT >= zCURSOR_SET && CompareAttributeToString(mDegTrk, "RequiredGroup",
                                        "Type", "E") != 0) {
                                    //:CourseType1or2Match( mDegTrk, mStudenC, mStudent )
                                    omDegTrk_CourseType1or2Match(mDegTrk, mStudenC, mStudent);
                                    //:SubstituteFlag = "Y"
                                    {
                                        StringBuilder sb_SubstituteFlag;
                                        if (SubstituteFlag == null)
                                            sb_SubstituteFlag = new StringBuilder(32);
                                        else
                                            sb_SubstituteFlag = new StringBuilder(SubstituteFlag);
                                        ZeidonStringCopy(sb_SubstituteFlag, 1, 0, "Y", 1, 0, 2);
                                        SubstituteFlag = sb_SubstituteFlag.toString();
                                    }
                                    //:mStudenC.Registration.wSubstituteFlag = "Y"
                                    SetAttributeFromString(mStudenC, "Registration", "wSubstituteFlag", "Y");
                                    //:ELSE
                                } else {
                                    //:IF mStudenC.DAS_RequiredSubGroup EXISTS
                                    lTempInteger_31 = CheckExistenceOfEntity(mStudenC, "DAS_RequiredSubGroup");
                                    if (lTempInteger_31 == 0) {
                                        //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.RequiredSubGroup
                                        //:        WHERE mDegTrk.CourseType3or4.ID = CourseID       
                                        RESULT = mDegTrk.cursor("CourseType3or4")
                                                .setFirst("ID", CourseID, "RequiredSubGroup").toInt();
                                        //:ELSE
                                    } else {
                                        //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.RequiredGroup
                                        //:        WHERE mDegTrk.CourseType3or4.ID = CourseID 
                                        RESULT = mDegTrk.cursor("CourseType3or4")
                                                .setFirst("ID", CourseID, "RequiredGroup").toInt();
                                    }

                                    //:END
                                    //:IF RESULT >= zCURSOR_SET AND mDegTrk.RequiredGroup.Type != "E"
                                    if (RESULT >= zCURSOR_SET && CompareAttributeToString(mDegTrk,
                                            "RequiredGroup", "Type", "E") != 0) {
                                        //:CourseType3or4Match( mDegTrk, mStudenC, mStudent )
                                        omDegTrk_CourseType3or4Match(mDegTrk, mStudenC, mStudent);
                                        //:SubstituteFlag = "Y"
                                        {
                                            StringBuilder sb_SubstituteFlag;
                                            if (SubstituteFlag == null)
                                                sb_SubstituteFlag = new StringBuilder(32);
                                            else
                                                sb_SubstituteFlag = new StringBuilder(SubstituteFlag);
                                            ZeidonStringCopy(sb_SubstituteFlag, 1, 0, "Y", 1, 0, 2);
                                            SubstituteFlag = sb_SubstituteFlag.toString();
                                        }
                                        //:mStudenC.Registration.wSubstituteFlag = "Y"
                                        SetAttributeFromString(mStudenC, "Registration", "wSubstituteFlag",
                                                "Y");
                                    }

                                    //:END
                                }

                                //:END
                                //:ELSE
                            } else {
                                //:// For non-Repeatable Course, we DO care about whether we've already processed the entry.
                                //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.RequiredGroup
                                //:        WHERE mDegTrk.CourseType1or2.ID = CourseID
                                //:          AND mDegTrk.CourseType1or2.wDegreeAuditCourseTaken = ""
                                RESULT = mDegTrk.cursor("CourseType1or2").setFirst("RequiredGroup").toInt();
                                if (RESULT > zCURSOR_UNCHANGED) {
                                    while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToInteger(mDegTrk,
                                            "CourseType1or2", "ID", CourseID) != 0
                                            || CompareAttributeToString(mDegTrk, "CourseType1or2",
                                                    "wDegreeAuditCourseTaken", "") != 0)) {
                                        RESULT = mDegTrk.cursor("CourseType1or2").setNextContinue().toInt();
                                        ;
                                    }

                                }

                                //:IF RESULT >= zCURSOR_SET AND mDegTrk.RequiredGroup.Type != "E"
                                if (RESULT >= zCURSOR_SET && CompareAttributeToString(mDegTrk, "RequiredGroup",
                                        "Type", "E") != 0) {
                                    //:CourseType1or2Match( mDegTrk, mStudenC, mStudent )
                                    omDegTrk_CourseType1or2Match(mDegTrk, mStudenC, mStudent);
                                    //:SubstituteFlag = "Y"
                                    {
                                        StringBuilder sb_SubstituteFlag;
                                        if (SubstituteFlag == null)
                                            sb_SubstituteFlag = new StringBuilder(32);
                                        else
                                            sb_SubstituteFlag = new StringBuilder(SubstituteFlag);
                                        ZeidonStringCopy(sb_SubstituteFlag, 1, 0, "Y", 1, 0, 2);
                                        SubstituteFlag = sb_SubstituteFlag.toString();
                                    }
                                    //:mStudenC.Registration.wSubstituteFlag = "Y"
                                    SetAttributeFromString(mStudenC, "Registration", "wSubstituteFlag", "Y");
                                    //:ELSE
                                } else {
                                    //:IF mStudenC.DAS_RequiredSubGroup EXISTS
                                    lTempInteger_32 = CheckExistenceOfEntity(mStudenC, "DAS_RequiredSubGroup");
                                    if (lTempInteger_32 == 0) {
                                        //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.RequiredSubGroup
                                        //:        WHERE mDegTrk.CourseType3or4.ID = CourseID
                                        //:          AND mDegTrk.CourseType3or4.wDegreeAuditCourseTaken = ""    
                                        RESULT = mDegTrk.cursor("CourseType3or4").setFirst("RequiredSubGroup")
                                                .toInt();
                                        if (RESULT > zCURSOR_UNCHANGED) {
                                            while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToInteger(
                                                    mDegTrk, "CourseType3or4", "ID", CourseID) != 0
                                                    || CompareAttributeToString(mDegTrk, "CourseType3or4",
                                                            "wDegreeAuditCourseTaken", "") != 0)) {
                                                RESULT = mDegTrk.cursor("CourseType3or4").setNextContinue()
                                                        .toInt();
                                                ;
                                            }

                                        }

                                        //:ELSE
                                    } else {
                                        //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.RequiredGroup
                                        //:        WHERE mDegTrk.CourseType3or4.ID = CourseID
                                        //:          AND mDegTrk.CourseType3or4.wDegreeAuditCourseTaken = ""
                                        RESULT = mDegTrk.cursor("CourseType3or4").setFirst("RequiredGroup")
                                                .toInt();
                                        if (RESULT > zCURSOR_UNCHANGED) {
                                            while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToInteger(
                                                    mDegTrk, "CourseType3or4", "ID", CourseID) != 0
                                                    || CompareAttributeToString(mDegTrk, "CourseType3or4",
                                                            "wDegreeAuditCourseTaken", "") != 0)) {
                                                RESULT = mDegTrk.cursor("CourseType3or4").setNextContinue()
                                                        .toInt();
                                                ;
                                            }

                                        }

                                    }

                                    //:END
                                    //:IF RESULT >= zCURSOR_SET AND mDegTrk.RequiredGroup.Type != "E"
                                    if (RESULT >= zCURSOR_SET && CompareAttributeToString(mDegTrk,
                                            "RequiredGroup", "Type", "E") != 0) {
                                        //:CourseType3or4Match( mDegTrk, mStudenC, mStudent )
                                        omDegTrk_CourseType3or4Match(mDegTrk, mStudenC, mStudent);
                                        //:SubstituteFlag = "Y"
                                        {
                                            StringBuilder sb_SubstituteFlag;
                                            if (SubstituteFlag == null)
                                                sb_SubstituteFlag = new StringBuilder(32);
                                            else
                                                sb_SubstituteFlag = new StringBuilder(SubstituteFlag);
                                            ZeidonStringCopy(sb_SubstituteFlag, 1, 0, "Y", 1, 0, 2);
                                            SubstituteFlag = sb_SubstituteFlag.toString();
                                        }
                                        //:mStudenC.Registration.wSubstituteFlag = "Y"
                                        SetAttributeFromString(mStudenC, "Registration", "wSubstituteFlag",
                                                "Y");
                                    }

                                    //:END
                                }

                                //:END
                            }

                            //:END
                        }

                        //:END
                    }

                    //:END
                }

                RESULT = mStudenC.cursor("DegreeAuditSpecification").setNextContinue().toInt();
                ;
                //:END
            }

        }

        RESULT = mStudenC.cursor("Registration").setNextContinue().toInt();
        ;
        //:END
    }

    //:END

    //:// Next, loop through all non-substitute courses taken (or equivalency, if taken somewhere else) and indicate in
    //:// mDegTrk if the grade in the class qualifies the course for credit in mDegTrk.
    //:// We will not consider repeated courses or Developmental courses on this pass.
    //:MinimumElectiveGrade = 1       // Minimum grade is D, which has quality points of 1.
    MinimumElectiveGrade = 1;
    //:FOR EACH mStudenC.Registration 
    //:                       WHERE mStudenC.Registration.Status = "C"    // Completed
    //:                          OR mStudenC.Registration.Status = "T"    // Currently Enrolled
    //:                          OR mStudenC.Registration.Status = "V"    // Waived
    //:                          OR mStudenC.Registration.Status = "F"    // Transferred
    //:                          OR mStudenC.Registration.Status = "X"    // L. Transferred
    //:                          OR mStudenC.Registration.Status = "Y"    // L. Waived
    //:                          OR mStudenC.Registration.Status = "P"    // Pre-Transferred
    RESULT = mStudenC.cursor("Registration").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        if (CompareAttributeToString(mStudenC, "Registration", "Status", "C") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "T") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "V") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "F") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "X") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "Y") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "P") == 0) {

            //:IF mStudenC.RegistrationClass EXISTS
            lTempInteger_33 = CheckExistenceOfEntity(mStudenC, "RegistrationClass");
            if (lTempInteger_33 == 0) {
                //:IF mStudenC.CrossListedCourse EXISTS
                lTempInteger_34 = CheckExistenceOfEntity(mStudenC, "CrossListedCourse");
                if (lTempInteger_34 == 0) {
                    //:CourseID = mStudenC.CrossListedCourse.ID 
                    {
                        MutableInt mi_CourseID = new MutableInt(CourseID);
                        GetIntegerFromAttribute(mi_CourseID, mStudenC, "CrossListedCourse", "ID");
                        CourseID = mi_CourseID.intValue();
                    }
                    //:ELSE
                } else {
                    //:CourseID = mStudenC.RegistrationCourse.ID
                    {
                        MutableInt mi_CourseID = new MutableInt(CourseID);
                        GetIntegerFromAttribute(mi_CourseID, mStudenC, "RegistrationCourse", "ID");
                        CourseID = mi_CourseID.intValue();
                    }
                }

                //:END
                //:RepeatableForCreditFlag = mStudenC.RegistrationCourse.RepeatableForCreditFlag 
                {
                    MutableInt mi_lTempInteger_35 = new MutableInt(lTempInteger_35);
                    StringBuilder sb_RepeatableForCreditFlag;
                    if (RepeatableForCreditFlag == null)
                        sb_RepeatableForCreditFlag = new StringBuilder(32);
                    else
                        sb_RepeatableForCreditFlag = new StringBuilder(RepeatableForCreditFlag);
                    GetVariableFromAttribute(sb_RepeatableForCreditFlag, mi_lTempInteger_35, 'S', 2, mStudenC,
                            "RegistrationCourse", "RepeatableForCreditFlag", "", 0);
                    lTempInteger_35 = mi_lTempInteger_35.intValue();
                    RepeatableForCreditFlag = sb_RepeatableForCreditFlag.toString();
                }
                //:DevelopmentalFlag       = mStudenC.RegistrationCourse.DevelopmentalFlag 
                {
                    MutableInt mi_lTempInteger_36 = new MutableInt(lTempInteger_36);
                    StringBuilder sb_DevelopmentalFlag;
                    if (DevelopmentalFlag == null)
                        sb_DevelopmentalFlag = new StringBuilder(32);
                    else
                        sb_DevelopmentalFlag = new StringBuilder(DevelopmentalFlag);
                    GetVariableFromAttribute(sb_DevelopmentalFlag, mi_lTempInteger_36, 'S', 2, mStudenC,
                            "RegistrationCourse", "DevelopmentalFlag", "", 0);
                    lTempInteger_36 = mi_lTempInteger_36.intValue();
                    DevelopmentalFlag = sb_DevelopmentalFlag.toString();
                }
                //:ELSE
            } else {
                //:IF mStudenC.EquivalentCourse EXISTS
                lTempInteger_37 = CheckExistenceOfEntity(mStudenC, "EquivalentCourse");
                if (lTempInteger_37 == 0) {
                    //:CourseID                = mStudenC.EquivalentCourse.ID
                    {
                        MutableInt mi_CourseID = new MutableInt(CourseID);
                        GetIntegerFromAttribute(mi_CourseID, mStudenC, "EquivalentCourse", "ID");
                        CourseID = mi_CourseID.intValue();
                    }
                    //:RepeatableForCreditFlag = mStudenC.EquivalentCourse.RepeatableForCreditFlag 
                    {
                        MutableInt mi_lTempInteger_38 = new MutableInt(lTempInteger_38);
                        StringBuilder sb_RepeatableForCreditFlag;
                        if (RepeatableForCreditFlag == null)
                            sb_RepeatableForCreditFlag = new StringBuilder(32);
                        else
                            sb_RepeatableForCreditFlag = new StringBuilder(RepeatableForCreditFlag);
                        GetVariableFromAttribute(sb_RepeatableForCreditFlag, mi_lTempInteger_38, 'S', 2,
                                mStudenC, "EquivalentCourse", "RepeatableForCreditFlag", "", 0);
                        lTempInteger_38 = mi_lTempInteger_38.intValue();
                        RepeatableForCreditFlag = sb_RepeatableForCreditFlag.toString();
                    }
                    //:DevelopmentalFlag       = ""
                    {
                        StringBuilder sb_DevelopmentalFlag;
                        if (DevelopmentalFlag == null)
                            sb_DevelopmentalFlag = new StringBuilder(32);
                        else
                            sb_DevelopmentalFlag = new StringBuilder(DevelopmentalFlag);
                        ZeidonStringCopy(sb_DevelopmentalFlag, 1, 0, "", 1, 0, 2);
                        DevelopmentalFlag = sb_DevelopmentalFlag.toString();
                    }
                    //:ELSE
                } else {
                    //:CourseID = 0
                    CourseID = 0;
                }

                //:END
            }

            //:END
            //:GetStringFromAttributeByContext( StudentStatus, mStudenC, "Registration", "Status", "", 20 )
            {
                StringBuilder sb_StudentStatus;
                if (StudentStatus == null)
                    sb_StudentStatus = new StringBuilder(32);
                else
                    sb_StudentStatus = new StringBuilder(StudentStatus);
                GetStringFromAttributeByContext(sb_StudentStatus, mStudenC, "Registration", "Status", "", 20);
                StudentStatus = sb_StudentStatus.toString();
            }
            //:// Skip repeated courses, Developmental courses or substituted courses.
            //:IF mStudenC.Registration.wRepeatedClass = "" AND
            //://DevelopmentalFlag = "" AND 
            //:mStudenC.Registration.wSubstituteFlag != "Y"
            if (CompareAttributeToString(mStudenC, "Registration", "wRepeatedClass", "") == 0
                    && CompareAttributeToString(mStudenC, "Registration", "wSubstituteFlag", "Y") != 0) {

                //:GetStringFromAttributeByContext( szFinalGradeString,
                //:                              mStudenC, "Registration", "FinalGrade", "DegreeTrackGradePointValue", 20 )
                {
                    StringBuilder sb_szFinalGradeString;
                    if (szFinalGradeString == null)
                        sb_szFinalGradeString = new StringBuilder(32);
                    else
                        sb_szFinalGradeString = new StringBuilder(szFinalGradeString);
                    GetStringFromAttributeByContext(sb_szFinalGradeString, mStudenC, "Registration",
                            "FinalGrade", "DegreeTrackGradePointValue", 20);
                    szFinalGradeString = sb_szFinalGradeString.toString();
                }
                //:FinalGrade = StrToDecimal( szFinalGradeString )   // FinalGrade is in "Quality Points".
                {
                    ZGLOBAL1_Operation m_ZGLOBAL1_Operation = new ZGLOBAL1_Operation(mDegTrk);
                    FinalGrade = m_ZGLOBAL1_Operation.StrToDecimal(szFinalGradeString);
                    // m_ZGLOBAL1_Operation = null;  // permit gc  (unnecessary)
                }
                //:szFinalGradeString = mStudenC.Registration.FinalGrade     // Get grade again as normal string.
                {
                    MutableInt mi_lTempInteger_39 = new MutableInt(lTempInteger_39);
                    StringBuilder sb_szFinalGradeString;
                    if (szFinalGradeString == null)
                        sb_szFinalGradeString = new StringBuilder(32);
                    else
                        sb_szFinalGradeString = new StringBuilder(szFinalGradeString);
                    GetVariableFromAttribute(sb_szFinalGradeString, mi_lTempInteger_39, 'S', 21, mStudenC,
                            "Registration", "FinalGrade", "", 0);
                    lTempInteger_39 = mi_lTempInteger_39.intValue();
                    szFinalGradeString = sb_szFinalGradeString.toString();
                }

                //:// Process Course ID just selected if it has not already been assigned as a substitue Course.
                //:// How we try to position on a particular Course entry depends on whether or not the Course is repeatable and
                //:// whether the Course entry has been selected to be assigned to a particular Group or a particular Course within
                //:// a Group..

                //:IF mStudenC.Registration.wSubstituteFlag = ""
                if (CompareAttributeToString(mStudenC, "Registration", "wSubstituteFlag", "") == 0) {
                    //:IF mStudenC.Registration.TakingClassType = "A"
                    if (CompareAttributeToString(mStudenC, "Registration", "TakingClassType", "A") == 0) {
                        //:// Course is being audited, so add to Elective group.
                        //:CreateElectiveEntry( mDegTrk, mStudenC, mStudent )
                        omDegTrk_CreateElectiveEntry(mDegTrk, mStudenC, mStudent);
                        //:mDegTrk.CourseType1or2.wCreditsTaken = 0
                        SetAttributeFromInteger(mDegTrk, "CourseType1or2", "wCreditsTaken", 0);
                        //:IF mStudenC.Registration.Status = "C"
                        if (CompareAttributeToString(mStudenC, "Registration", "Status", "C") == 0) {
                            //:mDegTrk.CourseType1or2.wCourseStatus = "Audited"
                            SetAttributeFromString(mDegTrk, "CourseType1or2", "wCourseStatus", "Audited");
                            //:ELSE
                        } else {
                            //:mDegTrk.CourseType1or2.wCourseStatus = "Auditing"
                            SetAttributeFromString(mDegTrk, "CourseType1or2", "wCourseStatus", "Auditing");
                        }

                        //:END
                        //:ELSE
                    } else {
                        //:IF RepeatableForCreditFlag = "Y"
                        if (ZeidonStringCompare(RepeatableForCreditFlag, 1, 0, "Y", 1, 0, 2) == 0) {
                            //:// For Repeatable Course, we don't care about whether we've already processed the entry.
                            //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.DegreeTrack
                            //:        WHERE mDegTrk.CourseType1or2.ID = CourseID
                            RESULT = mDegTrk.cursor("CourseType1or2").setFirst("ID", CourseID, "DegreeTrack")
                                    .toInt();
                            //:// If the RequiredGroup is Type 1, then we do care about positioning on an entry that we've not yet processed.
                            //:IF mDegTrk.RequiredGroup.Type = "1"
                            if (CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "1") == 0) {
                                //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.DegreeTrack
                                //:        WHERE mDegTrk.CourseType1or2.ID = CourseID
                                //:          AND mDegTrk.CourseType1or2.wDegreeAuditCourseTaken = ""
                                RESULT = mDegTrk.cursor("CourseType1or2").setFirst("DegreeTrack").toInt();
                                if (RESULT > zCURSOR_UNCHANGED) {
                                    while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToInteger(mDegTrk,
                                            "CourseType1or2", "ID", CourseID) != 0
                                            || CompareAttributeToString(mDegTrk, "CourseType1or2",
                                                    "wDegreeAuditCourseTaken", "") != 0)) {
                                        RESULT = mDegTrk.cursor("CourseType1or2").setNextContinue().toInt();
                                        ;
                                    }

                                }

                            }

                            //:END
                            //:ELSE
                        } else {
                            //:// For non-Repeatable Course, we DO care about whether we've already processed the entry.
                            //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.DegreeTrack
                            //:        WHERE mDegTrk.CourseType1or2.ID = CourseID
                            //:          AND mDegTrk.CourseType1or2.wDegreeAuditCourseTaken = ""
                            RESULT = mDegTrk.cursor("CourseType1or2").setFirst("DegreeTrack").toInt();
                            if (RESULT > zCURSOR_UNCHANGED) {
                                while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToInteger(mDegTrk,
                                        "CourseType1or2", "ID", CourseID) != 0
                                        || CompareAttributeToString(mDegTrk, "CourseType1or2",
                                                "wDegreeAuditCourseTaken", "") != 0)) {
                                    RESULT = mDegTrk.cursor("CourseType1or2").setNextContinue().toInt();
                                    ;
                                }

                            }

                        }

                        //:END

                        //:IF RESULT >= zCURSOR_SET AND mDegTrk.RequiredGroup.Type != "E"
                        if (RESULT >= zCURSOR_SET
                                && CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "E") != 0) {
                            //:// There was a match on CourseType1or2. Go process entry.
                            //:CourseType1or2Match( mDegTrk, mStudenC, mStudent )
                            omDegTrk_CourseType1or2Match(mDegTrk, mStudenC, mStudent);
                            //:ELSE
                        } else {
                            //:// There wasn't a match on CourseType1or2, so try CourseType3or4.
                            //:IF RepeatableForCreditFlag = "Y"
                            if (ZeidonStringCompare(RepeatableForCreditFlag, 1, 0, "Y", 1, 0, 2) == 0) {
                                //:// For Repeatable Course, we don't care about whether we've already processed the entry.
                                //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.DegreeTrack
                                //:        WHERE mDegTrk.CourseType3or4.ID = CourseID
                                RESULT = mDegTrk.cursor("CourseType3or4")
                                        .setFirst("ID", CourseID, "DegreeTrack").toInt();
                                //:ELSE
                            } else {
                                //:// For non-Repeatable Course, we DO care about whether we've already processed the entry.
                                //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.DegreeTrack
                                //:        WHERE mDegTrk.CourseType3or4.ID = CourseID
                                //:          AND mDegTrk.CourseType3or4.wDegreeAuditCourseTaken = ""
                                RESULT = mDegTrk.cursor("CourseType3or4").setFirst("DegreeTrack").toInt();
                                if (RESULT > zCURSOR_UNCHANGED) {
                                    while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToInteger(mDegTrk,
                                            "CourseType3or4", "ID", CourseID) != 0
                                            || CompareAttributeToString(mDegTrk, "CourseType3or4",
                                                    "wDegreeAuditCourseTaken", "") != 0)) {
                                        RESULT = mDegTrk.cursor("CourseType3or4").setNextContinue().toInt();
                                        ;
                                    }

                                }

                            }

                            //:END
                            //:IF RESULT >= zCURSOR_SET AND mDegTrk.RequiredGroup.Type != "E"
                            if (RESULT >= zCURSOR_SET
                                    && CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "E") != 0) {
                                //:// There was a match on CourseType3or4. Go process entry.
                                //:CourseType3or4Match( mDegTrk, mStudenC, mStudent )
                                omDegTrk_CourseType3or4Match(mDegTrk, mStudenC, mStudent);
                                //:ELSE
                            } else {
                                //:// There was no match with any of the Required Groups, so add to Electives or general Developmental group.
                                //:// For "not-waived courses", if the course wasn't passed  we'll override the CreditHours to 0.
                                //:IF DevelopmentalFlag = "Y" 
                                if (ZeidonStringCompare(DevelopmentalFlag, 1, 0, "Y", 1, 0, 2) == 0) {
                                    //:CreateDevelopmentEntry( mDegTrk, mStudenC, mStudent )
                                    omDegTrk_CreateDevelopmentEntry(mDegTrk, mStudenC, mStudent);
                                    //:ELSE
                                } else {
                                    //:CreateElectiveEntry( mDegTrk, mStudenC, mStudent )
                                    omDegTrk_CreateElectiveEntry(mDegTrk, mStudenC, mStudent);
                                    //:IF mStudenC.Registration.Status != "V" AND   // Waived
                                    //:mStudenC.Registration.Status != "Y"       // L. Waived 
                                    if (CompareAttributeToString(mStudenC, "Registration", "Status", "V") != 0
                                            && CompareAttributeToString(mStudenC, "Registration", "Status",
                                                    "Y") != 0) {

                                        //:IF FinalGrade < MinimumElectiveGrade AND szFinalGradeString != "S" AND szFinalGradeString != ""
                                        if (FinalGrade < MinimumElectiveGrade
                                                && ZeidonStringCompare(szFinalGradeString, 1, 0, "S", 1, 0,
                                                        21) != 0
                                                && ZeidonStringCompare(szFinalGradeString, 1, 0, "", 1, 0,
                                                        21) != 0) {
                                            //:mDegTrk.CourseType1or2.wCreditsTaken = 0
                                            SetAttributeFromInteger(mDegTrk, "CourseType1or2", "wCreditsTaken",
                                                    0);
                                        }

                                        //:END
                                    }

                                    //:END
                                }

                                //:END
                            }

                            //:END
                        }

                        //:END
                    }

                    //:END
                }

                //:END
            }

        }

        RESULT = mStudenC.cursor("Registration").setNextContinue().toInt();
        ;
        //:      
        //:END
    }

    //:END

    //:// Make another pass and add any repeated Courses to the entry representing the superceding Course.
    //:// We will duplicate the original line and show as "Repeated" with 0 Credits.
    //:FOR EACH mStudenC.Registration 
    //:                          WHERE mStudenC.Registration.Status = "C"    // Completed
    //:                             OR mStudenC.Registration.Status = "T"    // Currently Taking
    //:                             OR mStudenC.Registration.Status = "V"    // Waived
    //:                             OR mStudenC.Registration.Status = "F"    // Transferred
    //:                             OR mStudenC.Registration.Status = "X"    // L. Transferred
    //:                             OR mStudenC.Registration.Status = "Y"    // L. Waived
    //:                             OR mStudenC.Registration.Status = "P"    // Pre-Transferred
    RESULT = mStudenC.cursor("Registration").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        if (CompareAttributeToString(mStudenC, "Registration", "Status", "C") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "T") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "V") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "F") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "X") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "Y") == 0
                || CompareAttributeToString(mStudenC, "Registration", "Status", "P") == 0) {

            //:IF mStudenC.Registration.wRepeatedClass = "R" OR mStudenC.Registration.wRepeatedClass = "AR"
            if (CompareAttributeToString(mStudenC, "Registration", "wRepeatedClass", "R") == 0
                    || CompareAttributeToString(mStudenC, "Registration", "wRepeatedClass", "AR") == 0) {
                //:IF mStudenC.RegistrationClass EXISTS
                lTempInteger_40 = CheckExistenceOfEntity(mStudenC, "RegistrationClass");
                if (lTempInteger_40 == 0) {
                    //:IF mStudenC.Registration.ManuallyRepeatingRegistrationID = ""
                    if (CompareAttributeToString(mStudenC, "Registration", "ManuallyRepeatingRegistrationID",
                            "") == 0) {
                        //:IF mStudenC.CrossListedCourse EXISTS
                        lTempInteger_41 = CheckExistenceOfEntity(mStudenC, "CrossListedCourse");
                        if (lTempInteger_41 == 0) {
                            //:CourseID = mStudenC.CrossListedCourse.ID 
                            {
                                MutableInt mi_CourseID = new MutableInt(CourseID);
                                GetIntegerFromAttribute(mi_CourseID, mStudenC, "CrossListedCourse", "ID");
                                CourseID = mi_CourseID.intValue();
                            }
                            //:ELSE
                        } else {
                            //:CourseID = mStudenC.RegistrationCourse.ID
                            {
                                MutableInt mi_CourseID = new MutableInt(CourseID);
                                GetIntegerFromAttribute(mi_CourseID, mStudenC, "RegistrationCourse", "ID");
                                CourseID = mi_CourseID.intValue();
                            }
                        }

                        //:END
                        //:ELSE
                    } else {
                        //:CreateViewFromView( mStudenCT, mStudenC )
                        CreateViewFromView(mStudenCT, mStudenC);
                        //:SET CURSOR FIRST mStudenCT.Registration WHERE 
                        //:              mStudenCT.Registration.ID = mStudenC.Registration.ManuallyRepeatingRegistrationID 
                        {
                            MutableInt mi_lTempInteger_42 = new MutableInt(lTempInteger_42);
                            GetIntegerFromAttribute(mi_lTempInteger_42, mStudenC, "Registration",
                                    "ManuallyRepeatingRegistrationID");
                            lTempInteger_42 = mi_lTempInteger_42.intValue();
                        }
                        RESULT = mStudenCT.cursor("Registration").setFirst("ID", lTempInteger_42).toInt();
                        //:IF mStudenCT.EquivalentCourse EXISTS
                        lTempInteger_43 = CheckExistenceOfEntity(mStudenCT, "EquivalentCourse");
                        if (lTempInteger_43 == 0) {
                            //:CourseID = mStudenCT.EquivalentCourse.ID 
                            {
                                MutableInt mi_CourseID = new MutableInt(CourseID);
                                GetIntegerFromAttribute(mi_CourseID, mStudenCT, "EquivalentCourse", "ID");
                                CourseID = mi_CourseID.intValue();
                            }
                            //:ELSE
                        } else {
                            //:IF mStudenCT.CrossListedCourse EXISTS
                            lTempInteger_44 = CheckExistenceOfEntity(mStudenCT, "CrossListedCourse");
                            if (lTempInteger_44 == 0) {
                                //:CourseID = mStudenCT.CrossListedCourse.ID 
                                {
                                    MutableInt mi_CourseID = new MutableInt(CourseID);
                                    GetIntegerFromAttribute(mi_CourseID, mStudenCT, "CrossListedCourse", "ID");
                                    CourseID = mi_CourseID.intValue();
                                }
                                //:ELSE
                            } else {
                                //:CourseID = mStudenCT.RegistrationCourse.ID
                                {
                                    MutableInt mi_CourseID = new MutableInt(CourseID);
                                    GetIntegerFromAttribute(mi_CourseID, mStudenCT, "RegistrationCourse", "ID");
                                    CourseID = mi_CourseID.intValue();
                                }
                            }

                            //:END
                        }

                        //:END
                        //:DropView( mStudenCT )
                        DropView(mStudenCT);
                    }

                    //:END
                    //:CourseNumber = mStudenC.RegistrationCourse.Number 
                    {
                        MutableInt mi_lTempInteger_45 = new MutableInt(lTempInteger_45);
                        StringBuilder sb_CourseNumber;
                        if (CourseNumber == null)
                            sb_CourseNumber = new StringBuilder(32);
                        else
                            sb_CourseNumber = new StringBuilder(CourseNumber);
                        GetVariableFromAttribute(sb_CourseNumber, mi_lTempInteger_45, 'S', 11, mStudenC,
                                "RegistrationCourse", "Number", "", 0);
                        lTempInteger_45 = mi_lTempInteger_45.intValue();
                        CourseNumber = sb_CourseNumber.toString();
                    }
                    //:IF mStudenC.CourseTopic EXISTS
                    lTempInteger_46 = CheckExistenceOfEntity(mStudenC, "CourseTopic");
                    if (lTempInteger_46 == 0) {
                        //:CourseTitle  = mStudenC.CourseTopic.Title 
                        {
                            MutableInt mi_lTempInteger_47 = new MutableInt(lTempInteger_47);
                            StringBuilder sb_CourseTitle;
                            if (CourseTitle == null)
                                sb_CourseTitle = new StringBuilder(32);
                            else
                                sb_CourseTitle = new StringBuilder(CourseTitle);
                            GetVariableFromAttribute(sb_CourseTitle, mi_lTempInteger_47, 'S', 51, mStudenC,
                                    "CourseTopic", "Title", "", 0);
                            lTempInteger_47 = mi_lTempInteger_47.intValue();
                            CourseTitle = sb_CourseTitle.toString();
                        }
                        //:ELSE
                    } else {
                        //:CourseTitle  = mStudenC.RegistrationCourse.Title 
                        {
                            MutableInt mi_lTempInteger_48 = new MutableInt(lTempInteger_48);
                            StringBuilder sb_CourseTitle;
                            if (CourseTitle == null)
                                sb_CourseTitle = new StringBuilder(32);
                            else
                                sb_CourseTitle = new StringBuilder(CourseTitle);
                            GetVariableFromAttribute(sb_CourseTitle, mi_lTempInteger_48, 'S', 51, mStudenC,
                                    "RegistrationCourse", "Title", "", 0);
                            lTempInteger_48 = mi_lTempInteger_48.intValue();
                            CourseTitle = sb_CourseTitle.toString();
                        }
                    }

                    //:END
                    //:ELSE
                } else {
                    //:IF mStudenC.EquivalentCourse EXISTS
                    lTempInteger_49 = CheckExistenceOfEntity(mStudenC, "EquivalentCourse");
                    if (lTempInteger_49 == 0) {
                        //:CourseID     = mStudenC.EquivalentCourse.ID 
                        {
                            MutableInt mi_CourseID = new MutableInt(CourseID);
                            GetIntegerFromAttribute(mi_CourseID, mStudenC, "EquivalentCourse", "ID");
                            CourseID = mi_CourseID.intValue();
                        }
                        //:CourseNumber = mStudenC.EquivalentCourse.Number 
                        {
                            MutableInt mi_lTempInteger_50 = new MutableInt(lTempInteger_50);
                            StringBuilder sb_CourseNumber;
                            if (CourseNumber == null)
                                sb_CourseNumber = new StringBuilder(32);
                            else
                                sb_CourseNumber = new StringBuilder(CourseNumber);
                            GetVariableFromAttribute(sb_CourseNumber, mi_lTempInteger_50, 'S', 11, mStudenC,
                                    "EquivalentCourse", "Number", "", 0);
                            lTempInteger_50 = mi_lTempInteger_50.intValue();
                            CourseNumber = sb_CourseNumber.toString();
                        }
                        //:CourseTitle  = mStudenC.EquivalentCourse.Title 
                        {
                            MutableInt mi_lTempInteger_51 = new MutableInt(lTempInteger_51);
                            StringBuilder sb_CourseTitle;
                            if (CourseTitle == null)
                                sb_CourseTitle = new StringBuilder(32);
                            else
                                sb_CourseTitle = new StringBuilder(CourseTitle);
                            GetVariableFromAttribute(sb_CourseTitle, mi_lTempInteger_51, 'S', 51, mStudenC,
                                    "EquivalentCourse", "Title", "", 0);
                            lTempInteger_51 = mi_lTempInteger_51.intValue();
                            CourseTitle = sb_CourseTitle.toString();
                        }
                        //:ELSE
                    } else {
                        //:CourseID = 0
                        CourseID = 0;
                    }

                    //:END
                }

                //:END

                //:IF CourseID != 0
                if (CourseID != 0) {
                    //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.DegreeTrack
                    //:        WHERE mDegTrk.CourseType1or2.wCourseSatisfyingID = CourseID
                    RESULT = mDegTrk.cursor("CourseType1or2")
                            .setFirst("wCourseSatisfyingID", CourseID, "DegreeTrack").toInt();
                    //:        //WHERE mDegTrk.CourseType1or2.ID = CourseID
                    //:        //  AND mDegTrk.CourseType1or2.wDegreeAuditCourseTaken = "Y"
                    //:IF RESULT >= zCURSOR_SET
                    if (RESULT >= zCURSOR_SET) {
                        //:// Repeated course for CourseType1or2
                        //:CREATE ENTITY mDegTrk.RequiredGroupCourseType1or2 
                        RESULT = CreateEntity(mDegTrk, "RequiredGroupCourseType1or2", zPOS_AFTER);
                        //:CREATE ENTITY mDegTrk.CourseType1or2
                        RESULT = CreateEntity(mDegTrk, "CourseType1or2", zPOS_AFTER);
                        //:mDegTrk.CourseType1or2.ID     = CourseID
                        SetAttributeFromInteger(mDegTrk, "CourseType1or2", "ID", CourseID);
                        //:mDegTrk.CourseType1or2.Number = CourseNumber
                        SetAttributeFromString(mDegTrk, "CourseType1or2", "Number", CourseNumber);
                        //:mDegTrk.CourseType1or2.Title  = CourseTitle
                        SetAttributeFromString(mDegTrk, "CourseType1or2", "Title", CourseTitle);
                        //:mDegTrk.CourseType1or2.wCourseStatus = "Repeated"
                        SetAttributeFromString(mDegTrk, "CourseType1or2", "wCourseStatus", "Repeated");
                        //:mDegTrk.CourseType1or2.wFinalGrade   = mStudenC.Registration.FinalGrade
                        SetAttributeFromAttribute(mDegTrk, "CourseType1or2", "wFinalGrade", mStudenC,
                                "Registration", "FinalGrade");
                        //:mDegTrk.CourseType1or2.wCreditsTaken = 0
                        SetAttributeFromInteger(mDegTrk, "CourseType1or2", "wCreditsTaken", 0);
                        //:mDegTrk.CourseType1or2.wRegistrationSatisfyingID = mStudenC.Registration.ID
                        SetAttributeFromAttribute(mDegTrk, "CourseType1or2", "wRegistrationSatisfyingID",
                                mStudenC, "Registration", "ID");
                        //:ELSE
                    } else {
                        //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.DegreeTrack
                        //:        WHERE mDegTrk.CourseType3or4.wCourseSatisfyingID = CourseID
                        RESULT = mDegTrk.cursor("CourseType3or4")
                                .setFirst("wCourseSatisfyingID", CourseID, "DegreeTrack").toInt();
                        //:        //WHERE mDegTrk.CourseType3or4.ID = CourseID
                        //:        //  AND mDegTrk.CourseType3or4.wDegreeAuditCourseTaken = "Y"
                        //:IF RESULT >= zCURSOR_SET
                        if (RESULT >= zCURSOR_SET) {
                            //:// Repeated course for CourseType3or4
                            //:CREATE ENTITY mDegTrk.RequiredGroupCourseType3or4 
                            RESULT = CreateEntity(mDegTrk, "RequiredGroupCourseType3or4", zPOS_AFTER);
                            //:CREATE ENTITY mDegTrk.CourseType3or4
                            RESULT = CreateEntity(mDegTrk, "CourseType3or4", zPOS_AFTER);
                            //:mDegTrk.CourseType3or4.ID     = CourseID
                            SetAttributeFromInteger(mDegTrk, "CourseType3or4", "ID", CourseID);
                            //:mDegTrk.CourseType3or4.Number = CourseNumber
                            SetAttributeFromString(mDegTrk, "CourseType3or4", "Number", CourseNumber);
                            //:mDegTrk.CourseType3or4.Title  = CourseTitle
                            SetAttributeFromString(mDegTrk, "CourseType3or4", "Title", CourseTitle);
                            //:mDegTrk.CourseType3or4.wCourseStatus = "Repeated"
                            SetAttributeFromString(mDegTrk, "CourseType3or4", "wCourseStatus", "Repeated");
                            //:mDegTrk.CourseType3or4.wFinalGrade   = mStudenC.Registration.FinalGrade
                            SetAttributeFromAttribute(mDegTrk, "CourseType3or4", "wFinalGrade", mStudenC,
                                    "Registration", "FinalGrade");
                            //:mDegTrk.CourseType3or4.wCreditsTaken = 0
                            SetAttributeFromInteger(mDegTrk, "CourseType3or4", "wCreditsTaken", 0);
                            //:mDegTrk.CourseType3or4.wRegistrationSatisfyingID = mStudenC.Registration.ID
                            SetAttributeFromAttribute(mDegTrk, "CourseType3or4", "wRegistrationSatisfyingID",
                                    mStudenC, "Registration", "ID");
                            //:ELSE
                        } else {
                            //:SET CURSOR FIRST mDegTrk.RequiredGroup WITHIN mDegTrk.DegreeTrack 
                            //:        WHERE mDegTrk.RequiredGroup.Type = "D"
                            RESULT = mDegTrk.cursor("RequiredGroup").setFirst("Type", "D", "DegreeTrack")
                                    .toInt();
                            //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.RequiredGroup
                            //:        WHERE mDegTrk.CourseType1or2.ID = CourseID
                            RESULT = mDegTrk.cursor("CourseType1or2").setFirst("ID", CourseID, "RequiredGroup")
                                    .toInt();
                            //:IF RESULT >= zCURSOR_SET
                            if (RESULT >= zCURSOR_SET) {
                                //:// Repeated course for Development course
                                //:CREATE ENTITY mDegTrk.RequiredGroupCourseType1or2 
                                RESULT = CreateEntity(mDegTrk, "RequiredGroupCourseType1or2", zPOS_AFTER);
                                //:CREATE ENTITY mDegTrk.CourseType1or2
                                RESULT = CreateEntity(mDegTrk, "CourseType1or2", zPOS_AFTER);
                                //:mDegTrk.CourseType1or2.ID     = CourseID                         
                                SetAttributeFromInteger(mDegTrk, "CourseType1or2", "ID", CourseID);
                                //:mDegTrk.CourseType1or2.Number = CourseNumber
                                SetAttributeFromString(mDegTrk, "CourseType1or2", "Number", CourseNumber);
                                //:mDegTrk.CourseType1or2.Title  = CourseTitle 
                                SetAttributeFromString(mDegTrk, "CourseType1or2", "Title", CourseTitle);
                                //:mDegTrk.CourseType1or2.wCourseStatus = "Repeated"
                                SetAttributeFromString(mDegTrk, "CourseType1or2", "wCourseStatus", "Repeated");
                                //:mDegTrk.CourseType1or2.wFinalGrade   = mStudenC.Registration.FinalGrade
                                SetAttributeFromAttribute(mDegTrk, "CourseType1or2", "wFinalGrade", mStudenC,
                                        "Registration", "FinalGrade");
                                //:mDegTrk.CourseType1or2.wCreditsTaken = 0
                                SetAttributeFromInteger(mDegTrk, "CourseType1or2", "wCreditsTaken", 0);
                                //:mDegTrk.CourseType1or2.wRegistrationSatisfyingID = mStudenC.Registration.ID
                                SetAttributeFromAttribute(mDegTrk, "CourseType1or2",
                                        "wRegistrationSatisfyingID", mStudenC, "Registration", "ID");
                                //:ELSE
                            } else {
                                //:// Duplicate entry where the CourseID does not match.
                                //:Msg = "There is a duplicate Course Number or otherwise erroneous Course entry for " + 
                                //:   CourseNumber  + NEW_LINE +
                                //:   "The repeated entry for the Course is not being considered in the Audit."
                                {
                                    StringBuilder sb_Msg;
                                    if (Msg == null)
                                        sb_Msg = new StringBuilder(32);
                                    else
                                        sb_Msg = new StringBuilder(Msg);
                                    ZeidonStringCopy(sb_Msg, 1, 0,
                                            "There is a duplicate Course Number or otherwise erroneous Course entry for ",
                                            1, 0, 201);
                                    Msg = sb_Msg.toString();
                                }
                                {
                                    StringBuilder sb_Msg;
                                    if (Msg == null)
                                        sb_Msg = new StringBuilder(32);
                                    else
                                        sb_Msg = new StringBuilder(Msg);
                                    ZeidonStringConcat(sb_Msg, 1, 0, CourseNumber, 1, 0, 201);
                                    Msg = sb_Msg.toString();
                                }
                                {
                                    StringBuilder sb_Msg;
                                    if (Msg == null)
                                        sb_Msg = new StringBuilder(32);
                                    else
                                        sb_Msg = new StringBuilder(Msg);
                                    ZeidonStringConcat(sb_Msg, 1, 0, NEW_LINE, 1, 0, 201);
                                    Msg = sb_Msg.toString();
                                }
                                {
                                    StringBuilder sb_Msg;
                                    if (Msg == null)
                                        sb_Msg = new StringBuilder(32);
                                    else
                                        sb_Msg = new StringBuilder(Msg);
                                    ZeidonStringConcat(sb_Msg, 1, 0,
                                            "The repeated entry for the Course is not being considered in the Audit.",
                                            1, 0, 201);
                                    Msg = sb_Msg.toString();
                                }
                                //:MessageSend( mStudenC, "", "Degree Audit", Msg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                                MessageSend(mStudenC, "", "Degree Audit", Msg, zMSGQ_OBJECT_CONSTRAINT_ERROR,
                                        0);
                            }

                            //:END
                        }

                        //:END
                    }

                    //:END
                }

                //:END
            }

        }

        RESULT = mStudenC.cursor("Registration").setNextContinue().toInt();
        ;
        //:END
    }

    //:END

    //:// Evaluate the courses that have been flagged against the degree audit requirements.
    //:TotalDegreeTrackCreditsTaken = 0
    TotalDegreeTrackCreditsTaken = 0;
    //:TotalDegreeTrackCreditsEarned = 0
    TotalDegreeTrackCreditsEarned = 0;
    //:FOR EACH mDegTrk.RequiredGroup WITHIN mDegTrk.DegreeTrack 
    RESULT = mDegTrk.cursor("RequiredGroup").setFirst("DegreeTrack").toInt();
    while (RESULT > zCURSOR_UNCHANGED) {

        //: // Group Type 1: All courses are required.

        //: IF mDegTrk.RequiredGroup.Type = "1"
        if (CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "1") == 0) {

            //: CourseCount          = 0
            CourseCount = 0;
            //: CourseTakenCount     = 0
            CourseTakenCount = 0;
            //: CourseCompletedCount = 0
            CourseCompletedCount = 0;
            //: CreditsTaken         = 0
            CreditsTaken = 0;
            //: FOR EACH mDegTrk.CourseType1or2 WITHIN mDegTrk.RequiredGroup 
            RESULT = mDegTrk.cursor("CourseType1or2").setFirst("RequiredGroup").toInt();
            while (RESULT > zCURSOR_UNCHANGED) {
                //: IF mDegTrk.CourseType1or2.wCourseStatus != "Repeated"
                if (CompareAttributeToString(mDegTrk, "CourseType1or2", "wCourseStatus", "Repeated") != 0) {
                    //: CourseCount = CourseCount + 1
                    CourseCount = CourseCount + 1;
                    //: IF mDegTrk.CourseType1or2.wDegreeAuditCourseTaken = "Y"
                    if (CompareAttributeToString(mDegTrk, "CourseType1or2", "wDegreeAuditCourseTaken",
                            "Y") == 0) {
                        //: CourseTakenCount = CourseTakenCount + 1
                        CourseTakenCount = CourseTakenCount + 1;
                        //: CreditsTaken = CreditsTaken + mDegTrk.CourseType1or2.wCreditsTaken 
                        {
                            MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                            GetDecimalFromAttribute(md_dTempDecimal_0, mDegTrk, "CourseType1or2",
                                    "wCreditsTaken");
                            dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                        }
                        CreditsTaken = CreditsTaken + dTempDecimal_0;
                    }

                    //: END
                    //: TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + mDegTrk.CourseType1or2.wCreditsTaken
                    {
                        MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                        GetDecimalFromAttribute(md_dTempDecimal_1, mDegTrk, "CourseType1or2", "wCreditsTaken");
                        dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                    }
                    TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + dTempDecimal_1;
                    //: IF mDegTrk.CourseType1or2.wDegreeAuditCourseCompleted = "Y"
                    if (CompareAttributeToString(mDegTrk, "CourseType1or2", "wDegreeAuditCourseCompleted",
                            "Y") == 0) {
                        //: CourseCompletedCount = CourseCompletedCount + 1
                        CourseCompletedCount = CourseCompletedCount + 1;
                        //: TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned + mDegTrk.CourseType1or2.wCreditsTaken
                        {
                            MutableDouble md_dTempDecimal_2 = new MutableDouble(dTempDecimal_2);
                            GetDecimalFromAttribute(md_dTempDecimal_2, mDegTrk, "CourseType1or2",
                                    "wCreditsTaken");
                            dTempDecimal_2 = md_dTempDecimal_2.doubleValue();
                        }
                        TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned + dTempDecimal_2;
                    }

                    //: END
                }

                RESULT = mDegTrk.cursor("CourseType1or2").setNextContinue().toInt();
                ;
                //: END
            }

            //: END
            //: szCourseTakenCount = CourseTakenCount
            {
                StringBuilder sb_szCourseTakenCount;
                if (szCourseTakenCount == null)
                    sb_szCourseTakenCount = new StringBuilder(32);
                else
                    sb_szCourseTakenCount = new StringBuilder(szCourseTakenCount);
                ZeidonStringConvertFromNumber(sb_szCourseTakenCount, 1, 0, 5, CourseTakenCount, (double) 0.0,
                        "I");
                szCourseTakenCount = sb_szCourseTakenCount.toString();
            }
            //: szCourseCount      = CourseCount
            {
                StringBuilder sb_szCourseCount;
                if (szCourseCount == null)
                    sb_szCourseCount = new StringBuilder(32);
                else
                    sb_szCourseCount = new StringBuilder(szCourseCount);
                ZeidonStringConvertFromNumber(sb_szCourseCount, 1, 0, 5, CourseCount, (double) 0.0, "I");
                szCourseCount = sb_szCourseCount.toString();
            }
            //: IF mDegTrk.RequiredGroup.wDegreeAuditHasTakingFlag = "Y"
            if (CompareAttributeToString(mDegTrk, "RequiredGroup", "wDegreeAuditHasTakingFlag", "Y") == 0) {
                //: mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                //:                  "  (" + szCourseTakenCount + " of " + szCourseCount + " courses completed/enrolled)"
                {
                    StringBuilder sb_szTempString_2;
                    if (szTempString_2 == null)
                        sb_szTempString_2 = new StringBuilder(32);
                    else
                        sb_szTempString_2 = new StringBuilder(szTempString_2);
                    GetStringFromAttribute(sb_szTempString_2, mDegTrk, "RequiredGroup", "dReportValue");
                    szTempString_2 = sb_szTempString_2.toString();
                }
                {
                    StringBuilder sb_szTempString_2;
                    if (szTempString_2 == null)
                        sb_szTempString_2 = new StringBuilder(32);
                    else
                        sb_szTempString_2 = new StringBuilder(szTempString_2);
                    ZeidonStringConcat(sb_szTempString_2, 1, 0, "  (", 1, 0, 255);
                    szTempString_2 = sb_szTempString_2.toString();
                }
                {
                    StringBuilder sb_szTempString_2;
                    if (szTempString_2 == null)
                        sb_szTempString_2 = new StringBuilder(32);
                    else
                        sb_szTempString_2 = new StringBuilder(szTempString_2);
                    ZeidonStringConcat(sb_szTempString_2, 1, 0, szCourseTakenCount, 1, 0, 255);
                    szTempString_2 = sb_szTempString_2.toString();
                }
                {
                    StringBuilder sb_szTempString_2;
                    if (szTempString_2 == null)
                        sb_szTempString_2 = new StringBuilder(32);
                    else
                        sb_szTempString_2 = new StringBuilder(szTempString_2);
                    ZeidonStringConcat(sb_szTempString_2, 1, 0, " of ", 1, 0, 255);
                    szTempString_2 = sb_szTempString_2.toString();
                }
                {
                    StringBuilder sb_szTempString_2;
                    if (szTempString_2 == null)
                        sb_szTempString_2 = new StringBuilder(32);
                    else
                        sb_szTempString_2 = new StringBuilder(szTempString_2);
                    ZeidonStringConcat(sb_szTempString_2, 1, 0, szCourseCount, 1, 0, 255);
                    szTempString_2 = sb_szTempString_2.toString();
                }
                {
                    StringBuilder sb_szTempString_2;
                    if (szTempString_2 == null)
                        sb_szTempString_2 = new StringBuilder(32);
                    else
                        sb_szTempString_2 = new StringBuilder(szTempString_2);
                    ZeidonStringConcat(sb_szTempString_2, 1, 0, " courses completed/enrolled)", 1, 0, 255);
                    szTempString_2 = sb_szTempString_2.toString();
                }
                SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value", szTempString_2);
                //:ELSE
            } else {
                //: mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                //:                  "  (" + szCourseTakenCount + " of " + szCourseCount + " courses completed)"
                {
                    StringBuilder sb_szTempString_3;
                    if (szTempString_3 == null)
                        sb_szTempString_3 = new StringBuilder(32);
                    else
                        sb_szTempString_3 = new StringBuilder(szTempString_3);
                    GetStringFromAttribute(sb_szTempString_3, mDegTrk, "RequiredGroup", "dReportValue");
                    szTempString_3 = sb_szTempString_3.toString();
                }
                {
                    StringBuilder sb_szTempString_3;
                    if (szTempString_3 == null)
                        sb_szTempString_3 = new StringBuilder(32);
                    else
                        sb_szTempString_3 = new StringBuilder(szTempString_3);
                    ZeidonStringConcat(sb_szTempString_3, 1, 0, "  (", 1, 0, 255);
                    szTempString_3 = sb_szTempString_3.toString();
                }
                {
                    StringBuilder sb_szTempString_3;
                    if (szTempString_3 == null)
                        sb_szTempString_3 = new StringBuilder(32);
                    else
                        sb_szTempString_3 = new StringBuilder(szTempString_3);
                    ZeidonStringConcat(sb_szTempString_3, 1, 0, szCourseTakenCount, 1, 0, 255);
                    szTempString_3 = sb_szTempString_3.toString();
                }
                {
                    StringBuilder sb_szTempString_3;
                    if (szTempString_3 == null)
                        sb_szTempString_3 = new StringBuilder(32);
                    else
                        sb_szTempString_3 = new StringBuilder(szTempString_3);
                    ZeidonStringConcat(sb_szTempString_3, 1, 0, " of ", 1, 0, 255);
                    szTempString_3 = sb_szTempString_3.toString();
                }
                {
                    StringBuilder sb_szTempString_3;
                    if (szTempString_3 == null)
                        sb_szTempString_3 = new StringBuilder(32);
                    else
                        sb_szTempString_3 = new StringBuilder(szTempString_3);
                    ZeidonStringConcat(sb_szTempString_3, 1, 0, szCourseCount, 1, 0, 255);
                    szTempString_3 = sb_szTempString_3.toString();
                }
                {
                    StringBuilder sb_szTempString_3;
                    if (szTempString_3 == null)
                        sb_szTempString_3 = new StringBuilder(32);
                    else
                        sb_szTempString_3 = new StringBuilder(szTempString_3);
                    ZeidonStringConcat(sb_szTempString_3, 1, 0, " courses completed)", 1, 0, 255);
                    szTempString_3 = sb_szTempString_3.toString();
                }
                SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value", szTempString_3);
            }

            //: END 
            //: IF CourseCompletedCount >= CourseCount
            if (CourseCompletedCount >= CourseCount) {
                //: mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "C"
                SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "C");
                //:ELSE
            } else {
                //: IF CourseTakenCount >= CourseCount
                if (CourseTakenCount >= CourseCount) {
                    //: mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "T"
                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "T");
                    //:ELSE
                } else {
                    //: mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "N"
                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "N");
                }

                //: END
            }

            //: END
            //: mDegTrk.RequiredGroup.wDegreeAuditTotalCreditsTaken = CreditsTaken
            SetAttributeFromDecimal(mDegTrk, "RequiredGroup", "wDegreeAuditTotalCreditsTaken", CreditsTaken);

            //:// Group Type 2: A minimum number of credits is required for courses in the group.

            //:ELSE
        } else {
            //:IF mDegTrk.RequiredGroup.Type = "2"
            if (CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "2") == 0) {

                //:CreditsTaken     = 0
                CreditsTaken = 0;
                //:CreditsCompleted = 0
                CreditsCompleted = 0;
                //:FOR EACH mDegTrk.CourseType1or2 WITHIN mDegTrk.RequiredGroup
                RESULT = mDegTrk.cursor("CourseType1or2").setFirst("RequiredGroup").toInt();
                while (RESULT > zCURSOR_UNCHANGED) {
                    //:IF mDegTrk.CourseType1or2.wDegreeAuditCourseTaken = "Y"
                    if (CompareAttributeToString(mDegTrk, "CourseType1or2", "wDegreeAuditCourseTaken",
                            "Y") == 0) {
                        //:CreditsTaken = CreditsTaken + mDegTrk.CourseType1or2.wCreditsTaken 
                        {
                            MutableDouble md_dTempDecimal_3 = new MutableDouble(dTempDecimal_3);
                            GetDecimalFromAttribute(md_dTempDecimal_3, mDegTrk, "CourseType1or2",
                                    "wCreditsTaken");
                            dTempDecimal_3 = md_dTempDecimal_3.doubleValue();
                        }
                        CreditsTaken = CreditsTaken + dTempDecimal_3;
                    }

                    //:END
                    //:TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + mDegTrk.CourseType1or2.wCreditsTaken
                    {
                        MutableDouble md_dTempDecimal_4 = new MutableDouble(dTempDecimal_4);
                        GetDecimalFromAttribute(md_dTempDecimal_4, mDegTrk, "CourseType1or2", "wCreditsTaken");
                        dTempDecimal_4 = md_dTempDecimal_4.doubleValue();
                    }
                    TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + dTempDecimal_4;
                    //:IF mDegTrk.CourseType1or2.wDegreeAuditCourseCompleted = "Y"
                    if (CompareAttributeToString(mDegTrk, "CourseType1or2", "wDegreeAuditCourseCompleted",
                            "Y") == 0) {
                        //:CreditsCompleted = CreditsCompleted + mDegTrk.CourseType1or2.wCreditsTaken
                        {
                            MutableDouble md_dTempDecimal_5 = new MutableDouble(dTempDecimal_5);
                            GetDecimalFromAttribute(md_dTempDecimal_5, mDegTrk, "CourseType1or2",
                                    "wCreditsTaken");
                            dTempDecimal_5 = md_dTempDecimal_5.doubleValue();
                        }
                        CreditsCompleted = CreditsCompleted + dTempDecimal_5;
                        //:TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned + mDegTrk.CourseType1or2.wCreditsTaken
                        {
                            MutableDouble md_dTempDecimal_6 = new MutableDouble(dTempDecimal_6);
                            GetDecimalFromAttribute(md_dTempDecimal_6, mDegTrk, "CourseType1or2",
                                    "wCreditsTaken");
                            dTempDecimal_6 = md_dTempDecimal_6.doubleValue();
                        }
                        TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned + dTempDecimal_6;
                    }

                    RESULT = mDegTrk.cursor("CourseType1or2").setNextContinue().toInt();
                    ;
                    //:END
                }

                //:END
                //:szCreditsNeeded = mDegTrk.RequiredGroup.TotalRequiredCredits
                {
                    MutableInt mi_lTempInteger_52 = new MutableInt(lTempInteger_52);
                    StringBuilder sb_szCreditsNeeded;
                    if (szCreditsNeeded == null)
                        sb_szCreditsNeeded = new StringBuilder(32);
                    else
                        sb_szCreditsNeeded = new StringBuilder(szCreditsNeeded);
                    GetVariableFromAttribute(sb_szCreditsNeeded, mi_lTempInteger_52, 'S', 11, mDegTrk,
                            "RequiredGroup", "TotalRequiredCredits", "", 0);
                    lTempInteger_52 = mi_lTempInteger_52.intValue();
                    szCreditsNeeded = sb_szCreditsNeeded.toString();
                }
                //:szCreditsTaken  = CreditsTaken
                {
                    StringBuilder sb_szCreditsTaken;
                    if (szCreditsTaken == null)
                        sb_szCreditsTaken = new StringBuilder(32);
                    else
                        sb_szCreditsTaken = new StringBuilder(szCreditsTaken);
                    ZeidonStringConvertFromNumber(sb_szCreditsTaken, 1, 0, 10, 0, CreditsTaken, "D");
                    szCreditsTaken = sb_szCreditsTaken.toString();
                }
                //:IF mDegTrk.RequiredGroup.wDegreeAuditHasTakingFlag = "Y"
                if (CompareAttributeToString(mDegTrk, "RequiredGroup", "wDegreeAuditHasTakingFlag", "Y") == 0) {
                    //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                    //:               "  (" + szCreditsTaken + " of " + szCreditsNeeded + " credits completed/enrolled.)"
                    {
                        StringBuilder sb_szTempString_4;
                        if (szTempString_4 == null)
                            sb_szTempString_4 = new StringBuilder(32);
                        else
                            sb_szTempString_4 = new StringBuilder(szTempString_4);
                        GetStringFromAttribute(sb_szTempString_4, mDegTrk, "RequiredGroup", "dReportValue");
                        szTempString_4 = sb_szTempString_4.toString();
                    }
                    {
                        StringBuilder sb_szTempString_4;
                        if (szTempString_4 == null)
                            sb_szTempString_4 = new StringBuilder(32);
                        else
                            sb_szTempString_4 = new StringBuilder(szTempString_4);
                        ZeidonStringConcat(sb_szTempString_4, 1, 0, "  (", 1, 0, 255);
                        szTempString_4 = sb_szTempString_4.toString();
                    }
                    {
                        StringBuilder sb_szTempString_4;
                        if (szTempString_4 == null)
                            sb_szTempString_4 = new StringBuilder(32);
                        else
                            sb_szTempString_4 = new StringBuilder(szTempString_4);
                        ZeidonStringConcat(sb_szTempString_4, 1, 0, szCreditsTaken, 1, 0, 255);
                        szTempString_4 = sb_szTempString_4.toString();
                    }
                    {
                        StringBuilder sb_szTempString_4;
                        if (szTempString_4 == null)
                            sb_szTempString_4 = new StringBuilder(32);
                        else
                            sb_szTempString_4 = new StringBuilder(szTempString_4);
                        ZeidonStringConcat(sb_szTempString_4, 1, 0, " of ", 1, 0, 255);
                        szTempString_4 = sb_szTempString_4.toString();
                    }
                    {
                        StringBuilder sb_szTempString_4;
                        if (szTempString_4 == null)
                            sb_szTempString_4 = new StringBuilder(32);
                        else
                            sb_szTempString_4 = new StringBuilder(szTempString_4);
                        ZeidonStringConcat(sb_szTempString_4, 1, 0, szCreditsNeeded, 1, 0, 255);
                        szTempString_4 = sb_szTempString_4.toString();
                    }
                    {
                        StringBuilder sb_szTempString_4;
                        if (szTempString_4 == null)
                            sb_szTempString_4 = new StringBuilder(32);
                        else
                            sb_szTempString_4 = new StringBuilder(szTempString_4);
                        ZeidonStringConcat(sb_szTempString_4, 1, 0, " credits completed/enrolled.)", 1, 0, 255);
                        szTempString_4 = sb_szTempString_4.toString();
                    }
                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value", szTempString_4);
                    //:ELSE
                } else {
                    //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                    //:               "  (" + szCreditsTaken + " of " + szCreditsNeeded + " credits completed.)"
                    {
                        StringBuilder sb_szTempString_5;
                        if (szTempString_5 == null)
                            sb_szTempString_5 = new StringBuilder(32);
                        else
                            sb_szTempString_5 = new StringBuilder(szTempString_5);
                        GetStringFromAttribute(sb_szTempString_5, mDegTrk, "RequiredGroup", "dReportValue");
                        szTempString_5 = sb_szTempString_5.toString();
                    }
                    {
                        StringBuilder sb_szTempString_5;
                        if (szTempString_5 == null)
                            sb_szTempString_5 = new StringBuilder(32);
                        else
                            sb_szTempString_5 = new StringBuilder(szTempString_5);
                        ZeidonStringConcat(sb_szTempString_5, 1, 0, "  (", 1, 0, 255);
                        szTempString_5 = sb_szTempString_5.toString();
                    }
                    {
                        StringBuilder sb_szTempString_5;
                        if (szTempString_5 == null)
                            sb_szTempString_5 = new StringBuilder(32);
                        else
                            sb_szTempString_5 = new StringBuilder(szTempString_5);
                        ZeidonStringConcat(sb_szTempString_5, 1, 0, szCreditsTaken, 1, 0, 255);
                        szTempString_5 = sb_szTempString_5.toString();
                    }
                    {
                        StringBuilder sb_szTempString_5;
                        if (szTempString_5 == null)
                            sb_szTempString_5 = new StringBuilder(32);
                        else
                            sb_szTempString_5 = new StringBuilder(szTempString_5);
                        ZeidonStringConcat(sb_szTempString_5, 1, 0, " of ", 1, 0, 255);
                        szTempString_5 = sb_szTempString_5.toString();
                    }
                    {
                        StringBuilder sb_szTempString_5;
                        if (szTempString_5 == null)
                            sb_szTempString_5 = new StringBuilder(32);
                        else
                            sb_szTempString_5 = new StringBuilder(szTempString_5);
                        ZeidonStringConcat(sb_szTempString_5, 1, 0, szCreditsNeeded, 1, 0, 255);
                        szTempString_5 = sb_szTempString_5.toString();
                    }
                    {
                        StringBuilder sb_szTempString_5;
                        if (szTempString_5 == null)
                            sb_szTempString_5 = new StringBuilder(32);
                        else
                            sb_szTempString_5 = new StringBuilder(szTempString_5);
                        ZeidonStringConcat(sb_szTempString_5, 1, 0, " credits completed.)", 1, 0, 255);
                        szTempString_5 = sb_szTempString_5.toString();
                    }
                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value", szTempString_5);
                }

                //:END
                //:IF CreditsCompleted >= mDegTrk.RequiredGroup.TotalRequiredCredits
                if (CompareAttributeToDecimal(mDegTrk, "RequiredGroup", "TotalRequiredCredits",
                        CreditsCompleted) <= 0) {
                    //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "C"
                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "C");
                    //:ELSE
                } else {
                    //:IF CreditsTaken >= mDegTrk.RequiredGroup.TotalRequiredCredits
                    if (CompareAttributeToDecimal(mDegTrk, "RequiredGroup", "TotalRequiredCredits",
                            CreditsTaken) <= 0) {
                        //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "T"
                        SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "T");
                        //:ELSE
                    } else {
                        //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "N"
                        SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "N");
                    }

                    //:END
                }

                //:END
                //:mDegTrk.RequiredGroup.wDegreeAuditTotalCreditsTaken = CreditsTaken
                SetAttributeFromDecimal(mDegTrk, "RequiredGroup", "wDegreeAuditTotalCreditsTaken",
                        CreditsTaken);

                //:// Group Type 3: The same as Group Type 2, except that all courses exist under subgroups,
                //://               where each subgroup defines the minimum number of credits that must be
                //://               taken from the courses under it. All courses must be defined under a subgroup.

                //:ELSE
            } else {
                //:IF mDegTrk.RequiredGroup.Type = "3"
                if (CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "3") == 0) {

                    //:CreditsTaken     = 0
                    CreditsTaken = 0;
                    //:CreditsCompleted = 0
                    CreditsCompleted = 0;
                    //:FOR EACH mDegTrk.RequiredSubGroup
                    RESULT = mDegTrk.cursor("RequiredSubGroup").setFirst().toInt();
                    while (RESULT > zCURSOR_UNCHANGED) {
                        //:MinCreditsTaken     = 0
                        MinCreditsTaken = 0;
                        //:MinCreditsCompleted = 0
                        MinCreditsCompleted = 0;
                        //:FOR EACH mDegTrk.CourseType3or4 WITHIN mDegTrk.RequiredSubGroup
                        RESULT = mDegTrk.cursor("CourseType3or4").setFirst("RequiredSubGroup").toInt();
                        while (RESULT > zCURSOR_UNCHANGED) {
                            //:IF mDegTrk.CourseType3or4.wDegreeAuditCourseTaken = "Y"
                            if (CompareAttributeToString(mDegTrk, "CourseType3or4", "wDegreeAuditCourseTaken",
                                    "Y") == 0) {
                                //:CreditsTaken    = CreditsTaken + mDegTrk.CourseType3or4.wCreditsTaken 
                                {
                                    MutableDouble md_dTempDecimal_7 = new MutableDouble(dTempDecimal_7);
                                    GetDecimalFromAttribute(md_dTempDecimal_7, mDegTrk, "CourseType3or4",
                                            "wCreditsTaken");
                                    dTempDecimal_7 = md_dTempDecimal_7.doubleValue();
                                }
                                CreditsTaken = CreditsTaken + dTempDecimal_7;
                                //:MinCreditsTaken = MinCreditsTaken + mDegTrk.CourseType3or4.wCreditsTaken
                                {
                                    MutableDouble md_dTempDecimal_8 = new MutableDouble(dTempDecimal_8);
                                    GetDecimalFromAttribute(md_dTempDecimal_8, mDegTrk, "CourseType3or4",
                                            "wCreditsTaken");
                                    dTempDecimal_8 = md_dTempDecimal_8.doubleValue();
                                }
                                MinCreditsTaken = MinCreditsTaken + dTempDecimal_8;
                            }

                            //:END
                            //:TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + mDegTrk.CourseType3or4.wCreditsTaken
                            {
                                MutableDouble md_dTempDecimal_9 = new MutableDouble(dTempDecimal_9);
                                GetDecimalFromAttribute(md_dTempDecimal_9, mDegTrk, "CourseType3or4",
                                        "wCreditsTaken");
                                dTempDecimal_9 = md_dTempDecimal_9.doubleValue();
                            }
                            TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + dTempDecimal_9;
                            //:IF mDegTrk.CourseType3or4.wDegreeAuditCourseCompleted = "Y"
                            if (CompareAttributeToString(mDegTrk, "CourseType3or4",
                                    "wDegreeAuditCourseCompleted", "Y") == 0) {
                                //:CreditsCompleted    = CreditsCompleted + mDegTrk.CourseType3or4.wCreditsTaken 
                                {
                                    MutableDouble md_dTempDecimal_10 = new MutableDouble(dTempDecimal_10);
                                    GetDecimalFromAttribute(md_dTempDecimal_10, mDegTrk, "CourseType3or4",
                                            "wCreditsTaken");
                                    dTempDecimal_10 = md_dTempDecimal_10.doubleValue();
                                }
                                CreditsCompleted = CreditsCompleted + dTempDecimal_10;
                                //:MinCreditsCompleted = MinCreditsCompleted + mDegTrk.CourseType3or4.wCreditsTaken
                                {
                                    MutableDouble md_dTempDecimal_11 = new MutableDouble(dTempDecimal_11);
                                    GetDecimalFromAttribute(md_dTempDecimal_11, mDegTrk, "CourseType3or4",
                                            "wCreditsTaken");
                                    dTempDecimal_11 = md_dTempDecimal_11.doubleValue();
                                }
                                MinCreditsCompleted = MinCreditsCompleted + dTempDecimal_11;
                                //:TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned + mDegTrk.CourseType3or4.wCreditsTaken
                                {
                                    MutableDouble md_dTempDecimal_12 = new MutableDouble(dTempDecimal_12);
                                    GetDecimalFromAttribute(md_dTempDecimal_12, mDegTrk, "CourseType3or4",
                                            "wCreditsTaken");
                                    dTempDecimal_12 = md_dTempDecimal_12.doubleValue();
                                }
                                TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned + dTempDecimal_12;
                            }

                            RESULT = mDegTrk.cursor("CourseType3or4").setNextContinue().toInt();
                            ;
                            //:END
                        }

                        //:END
                        //:szCreditsNeeded = mDegTrk.RequiredSubGroup.TotalRequiredCredits
                        {
                            MutableInt mi_lTempInteger_53 = new MutableInt(lTempInteger_53);
                            StringBuilder sb_szCreditsNeeded;
                            if (szCreditsNeeded == null)
                                sb_szCreditsNeeded = new StringBuilder(32);
                            else
                                sb_szCreditsNeeded = new StringBuilder(szCreditsNeeded);
                            GetVariableFromAttribute(sb_szCreditsNeeded, mi_lTempInteger_53, 'S', 11, mDegTrk,
                                    "RequiredSubGroup", "TotalRequiredCredits", "", 0);
                            lTempInteger_53 = mi_lTempInteger_53.intValue();
                            szCreditsNeeded = sb_szCreditsNeeded.toString();
                        }
                        //:szCreditsTaken  = MinCreditsTaken
                        {
                            StringBuilder sb_szCreditsTaken;
                            if (szCreditsTaken == null)
                                sb_szCreditsTaken = new StringBuilder(32);
                            else
                                sb_szCreditsTaken = new StringBuilder(szCreditsTaken);
                            ZeidonStringConvertFromNumber(sb_szCreditsTaken, 1, 0, 10, 0, MinCreditsTaken, "D");
                            szCreditsTaken = sb_szCreditsTaken.toString();
                        }
                        //:IF mDegTrk.RequiredSubGroup.wDegreeAuditHasTakingFlag = "Y"
                        if (CompareAttributeToString(mDegTrk, "RequiredSubGroup", "wDegreeAuditHasTakingFlag",
                                "Y") == 0) {
                            //:mDegTrk.RequiredSubGroup.wDegreeAuditOL_Value = mDegTrk.RequiredSubGroup.dReportValue +
                            //:            "  (" + szCreditsTaken + " of " + szCreditsNeeded + " credits completed/enrolled.)"
                            {
                                StringBuilder sb_szTempString_6;
                                if (szTempString_6 == null)
                                    sb_szTempString_6 = new StringBuilder(32);
                                else
                                    sb_szTempString_6 = new StringBuilder(szTempString_6);
                                GetStringFromAttribute(sb_szTempString_6, mDegTrk, "RequiredSubGroup",
                                        "dReportValue");
                                szTempString_6 = sb_szTempString_6.toString();
                            }
                            {
                                StringBuilder sb_szTempString_6;
                                if (szTempString_6 == null)
                                    sb_szTempString_6 = new StringBuilder(32);
                                else
                                    sb_szTempString_6 = new StringBuilder(szTempString_6);
                                ZeidonStringConcat(sb_szTempString_6, 1, 0, "  (", 1, 0, 255);
                                szTempString_6 = sb_szTempString_6.toString();
                            }
                            {
                                StringBuilder sb_szTempString_6;
                                if (szTempString_6 == null)
                                    sb_szTempString_6 = new StringBuilder(32);
                                else
                                    sb_szTempString_6 = new StringBuilder(szTempString_6);
                                ZeidonStringConcat(sb_szTempString_6, 1, 0, szCreditsTaken, 1, 0, 255);
                                szTempString_6 = sb_szTempString_6.toString();
                            }
                            {
                                StringBuilder sb_szTempString_6;
                                if (szTempString_6 == null)
                                    sb_szTempString_6 = new StringBuilder(32);
                                else
                                    sb_szTempString_6 = new StringBuilder(szTempString_6);
                                ZeidonStringConcat(sb_szTempString_6, 1, 0, " of ", 1, 0, 255);
                                szTempString_6 = sb_szTempString_6.toString();
                            }
                            {
                                StringBuilder sb_szTempString_6;
                                if (szTempString_6 == null)
                                    sb_szTempString_6 = new StringBuilder(32);
                                else
                                    sb_szTempString_6 = new StringBuilder(szTempString_6);
                                ZeidonStringConcat(sb_szTempString_6, 1, 0, szCreditsNeeded, 1, 0, 255);
                                szTempString_6 = sb_szTempString_6.toString();
                            }
                            {
                                StringBuilder sb_szTempString_6;
                                if (szTempString_6 == null)
                                    sb_szTempString_6 = new StringBuilder(32);
                                else
                                    sb_szTempString_6 = new StringBuilder(szTempString_6);
                                ZeidonStringConcat(sb_szTempString_6, 1, 0, " credits completed/enrolled.)", 1,
                                        0, 255);
                                szTempString_6 = sb_szTempString_6.toString();
                            }
                            SetAttributeFromString(mDegTrk, "RequiredSubGroup", "wDegreeAuditOL_Value",
                                    szTempString_6);
                            //:ELSE
                        } else {
                            //:mDegTrk.RequiredSubGroup.wDegreeAuditOL_Value = mDegTrk.RequiredSubGroup.dReportValue +
                            //:            "  (" + szCreditsTaken + " of " + szCreditsNeeded + " credits completed.)"
                            {
                                StringBuilder sb_szTempString_7;
                                if (szTempString_7 == null)
                                    sb_szTempString_7 = new StringBuilder(32);
                                else
                                    sb_szTempString_7 = new StringBuilder(szTempString_7);
                                GetStringFromAttribute(sb_szTempString_7, mDegTrk, "RequiredSubGroup",
                                        "dReportValue");
                                szTempString_7 = sb_szTempString_7.toString();
                            }
                            {
                                StringBuilder sb_szTempString_7;
                                if (szTempString_7 == null)
                                    sb_szTempString_7 = new StringBuilder(32);
                                else
                                    sb_szTempString_7 = new StringBuilder(szTempString_7);
                                ZeidonStringConcat(sb_szTempString_7, 1, 0, "  (", 1, 0, 255);
                                szTempString_7 = sb_szTempString_7.toString();
                            }
                            {
                                StringBuilder sb_szTempString_7;
                                if (szTempString_7 == null)
                                    sb_szTempString_7 = new StringBuilder(32);
                                else
                                    sb_szTempString_7 = new StringBuilder(szTempString_7);
                                ZeidonStringConcat(sb_szTempString_7, 1, 0, szCreditsTaken, 1, 0, 255);
                                szTempString_7 = sb_szTempString_7.toString();
                            }
                            {
                                StringBuilder sb_szTempString_7;
                                if (szTempString_7 == null)
                                    sb_szTempString_7 = new StringBuilder(32);
                                else
                                    sb_szTempString_7 = new StringBuilder(szTempString_7);
                                ZeidonStringConcat(sb_szTempString_7, 1, 0, " of ", 1, 0, 255);
                                szTempString_7 = sb_szTempString_7.toString();
                            }
                            {
                                StringBuilder sb_szTempString_7;
                                if (szTempString_7 == null)
                                    sb_szTempString_7 = new StringBuilder(32);
                                else
                                    sb_szTempString_7 = new StringBuilder(szTempString_7);
                                ZeidonStringConcat(sb_szTempString_7, 1, 0, szCreditsNeeded, 1, 0, 255);
                                szTempString_7 = sb_szTempString_7.toString();
                            }
                            {
                                StringBuilder sb_szTempString_7;
                                if (szTempString_7 == null)
                                    sb_szTempString_7 = new StringBuilder(32);
                                else
                                    sb_szTempString_7 = new StringBuilder(szTempString_7);
                                ZeidonStringConcat(sb_szTempString_7, 1, 0, " credits completed.)", 1, 0, 255);
                                szTempString_7 = sb_szTempString_7.toString();
                            }
                            SetAttributeFromString(mDegTrk, "RequiredSubGroup", "wDegreeAuditOL_Value",
                                    szTempString_7);
                        }

                        //:END
                        //:IF MinCreditsCompleted >= mDegTrk.RequiredSubGroup.TotalRequiredCredits
                        if (CompareAttributeToDecimal(mDegTrk, "RequiredSubGroup", "TotalRequiredCredits",
                                MinCreditsCompleted) <= 0) {
                            //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "C"
                            SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "C");
                            //:ELSE
                        } else {
                            //:IF MinCreditsTaken >= mDegTrk.RequiredSubGroup.TotalRequiredCredits
                            if (CompareAttributeToDecimal(mDegTrk, "RequiredSubGroup", "TotalRequiredCredits",
                                    MinCreditsTaken) <= 0) {
                                //:mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "T"
                                SetAttributeFromString(mDegTrk, "RequiredSubGroup", "wDegreeAuditSatisfied",
                                        "T");
                                //:ELSE
                            } else {
                                //:mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "N"
                                SetAttributeFromString(mDegTrk, "RequiredSubGroup", "wDegreeAuditSatisfied",
                                        "N");
                            }

                            //:END
                        }

                        RESULT = mDegTrk.cursor("RequiredSubGroup").setNextContinue().toInt();
                        ;
                        //:END
                    }

                    //:END
                    //:szCreditsNeeded = mDegTrk.RequiredGroup.TotalRequiredCredits
                    {
                        MutableInt mi_lTempInteger_54 = new MutableInt(lTempInteger_54);
                        StringBuilder sb_szCreditsNeeded;
                        if (szCreditsNeeded == null)
                            sb_szCreditsNeeded = new StringBuilder(32);
                        else
                            sb_szCreditsNeeded = new StringBuilder(szCreditsNeeded);
                        GetVariableFromAttribute(sb_szCreditsNeeded, mi_lTempInteger_54, 'S', 11, mDegTrk,
                                "RequiredGroup", "TotalRequiredCredits", "", 0);
                        lTempInteger_54 = mi_lTempInteger_54.intValue();
                        szCreditsNeeded = sb_szCreditsNeeded.toString();
                    }
                    //:szCreditsTaken  = CreditsTaken
                    {
                        StringBuilder sb_szCreditsTaken;
                        if (szCreditsTaken == null)
                            sb_szCreditsTaken = new StringBuilder(32);
                        else
                            sb_szCreditsTaken = new StringBuilder(szCreditsTaken);
                        ZeidonStringConvertFromNumber(sb_szCreditsTaken, 1, 0, 10, 0, CreditsTaken, "D");
                        szCreditsTaken = sb_szCreditsTaken.toString();
                    }
                    //:IF mDegTrk.RequiredGroup.wDegreeAuditHasTakingFlag = "Y"
                    if (CompareAttributeToString(mDegTrk, "RequiredGroup", "wDegreeAuditHasTakingFlag",
                            "Y") == 0) {
                        //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                        //:            "  (" + szCreditsTaken + " of " + szCreditsNeeded + " credits completed/enrolled.)"
                        {
                            StringBuilder sb_szTempString_8;
                            if (szTempString_8 == null)
                                sb_szTempString_8 = new StringBuilder(32);
                            else
                                sb_szTempString_8 = new StringBuilder(szTempString_8);
                            GetStringFromAttribute(sb_szTempString_8, mDegTrk, "RequiredGroup", "dReportValue");
                            szTempString_8 = sb_szTempString_8.toString();
                        }
                        {
                            StringBuilder sb_szTempString_8;
                            if (szTempString_8 == null)
                                sb_szTempString_8 = new StringBuilder(32);
                            else
                                sb_szTempString_8 = new StringBuilder(szTempString_8);
                            ZeidonStringConcat(sb_szTempString_8, 1, 0, "  (", 1, 0, 255);
                            szTempString_8 = sb_szTempString_8.toString();
                        }
                        {
                            StringBuilder sb_szTempString_8;
                            if (szTempString_8 == null)
                                sb_szTempString_8 = new StringBuilder(32);
                            else
                                sb_szTempString_8 = new StringBuilder(szTempString_8);
                            ZeidonStringConcat(sb_szTempString_8, 1, 0, szCreditsTaken, 1, 0, 255);
                            szTempString_8 = sb_szTempString_8.toString();
                        }
                        {
                            StringBuilder sb_szTempString_8;
                            if (szTempString_8 == null)
                                sb_szTempString_8 = new StringBuilder(32);
                            else
                                sb_szTempString_8 = new StringBuilder(szTempString_8);
                            ZeidonStringConcat(sb_szTempString_8, 1, 0, " of ", 1, 0, 255);
                            szTempString_8 = sb_szTempString_8.toString();
                        }
                        {
                            StringBuilder sb_szTempString_8;
                            if (szTempString_8 == null)
                                sb_szTempString_8 = new StringBuilder(32);
                            else
                                sb_szTempString_8 = new StringBuilder(szTempString_8);
                            ZeidonStringConcat(sb_szTempString_8, 1, 0, szCreditsNeeded, 1, 0, 255);
                            szTempString_8 = sb_szTempString_8.toString();
                        }
                        {
                            StringBuilder sb_szTempString_8;
                            if (szTempString_8 == null)
                                sb_szTempString_8 = new StringBuilder(32);
                            else
                                sb_szTempString_8 = new StringBuilder(szTempString_8);
                            ZeidonStringConcat(sb_szTempString_8, 1, 0, " credits completed/enrolled.)", 1, 0,
                                    255);
                            szTempString_8 = sb_szTempString_8.toString();
                        }
                        SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                szTempString_8);
                        //:ELSE
                    } else {
                        //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                        //:            "  (" + szCreditsTaken + " of " + szCreditsNeeded + " credits completed.)"
                        {
                            StringBuilder sb_szTempString_9;
                            if (szTempString_9 == null)
                                sb_szTempString_9 = new StringBuilder(32);
                            else
                                sb_szTempString_9 = new StringBuilder(szTempString_9);
                            GetStringFromAttribute(sb_szTempString_9, mDegTrk, "RequiredGroup", "dReportValue");
                            szTempString_9 = sb_szTempString_9.toString();
                        }
                        {
                            StringBuilder sb_szTempString_9;
                            if (szTempString_9 == null)
                                sb_szTempString_9 = new StringBuilder(32);
                            else
                                sb_szTempString_9 = new StringBuilder(szTempString_9);
                            ZeidonStringConcat(sb_szTempString_9, 1, 0, "  (", 1, 0, 255);
                            szTempString_9 = sb_szTempString_9.toString();
                        }
                        {
                            StringBuilder sb_szTempString_9;
                            if (szTempString_9 == null)
                                sb_szTempString_9 = new StringBuilder(32);
                            else
                                sb_szTempString_9 = new StringBuilder(szTempString_9);
                            ZeidonStringConcat(sb_szTempString_9, 1, 0, szCreditsTaken, 1, 0, 255);
                            szTempString_9 = sb_szTempString_9.toString();
                        }
                        {
                            StringBuilder sb_szTempString_9;
                            if (szTempString_9 == null)
                                sb_szTempString_9 = new StringBuilder(32);
                            else
                                sb_szTempString_9 = new StringBuilder(szTempString_9);
                            ZeidonStringConcat(sb_szTempString_9, 1, 0, " of ", 1, 0, 255);
                            szTempString_9 = sb_szTempString_9.toString();
                        }
                        {
                            StringBuilder sb_szTempString_9;
                            if (szTempString_9 == null)
                                sb_szTempString_9 = new StringBuilder(32);
                            else
                                sb_szTempString_9 = new StringBuilder(szTempString_9);
                            ZeidonStringConcat(sb_szTempString_9, 1, 0, szCreditsNeeded, 1, 0, 255);
                            szTempString_9 = sb_szTempString_9.toString();
                        }
                        {
                            StringBuilder sb_szTempString_9;
                            if (szTempString_9 == null)
                                sb_szTempString_9 = new StringBuilder(32);
                            else
                                sb_szTempString_9 = new StringBuilder(szTempString_9);
                            ZeidonStringConcat(sb_szTempString_9, 1, 0, " credits completed.)", 1, 0, 255);
                            szTempString_9 = sb_szTempString_9.toString();
                        }
                        SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                szTempString_9);
                    }

                    //:END
                    //:// All subgroups must meet minimums for the group to meet requirements.
                    //:// Add to subgroup display value.
                    //:SET CURSOR FIRST mDegTrk.RequiredSubGroup WHERE mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "N"
                    RESULT = mDegTrk.cursor("RequiredSubGroup").setFirst("wDegreeAuditSatisfied", "N").toInt();
                    //:IF RESULT >= zCURSOR_SET
                    if (RESULT >= zCURSOR_SET) {
                        //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "N"
                        SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "N");
                        //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.wDegreeAuditOL_Value +
                        //:                                        " (Subgroups not met)"
                        {
                            StringBuilder sb_szTempString_10;
                            if (szTempString_10 == null)
                                sb_szTempString_10 = new StringBuilder(32);
                            else
                                sb_szTempString_10 = new StringBuilder(szTempString_10);
                            GetStringFromAttribute(sb_szTempString_10, mDegTrk, "RequiredGroup",
                                    "wDegreeAuditOL_Value");
                            szTempString_10 = sb_szTempString_10.toString();
                        }
                        {
                            StringBuilder sb_szTempString_10;
                            if (szTempString_10 == null)
                                sb_szTempString_10 = new StringBuilder(32);
                            else
                                sb_szTempString_10 = new StringBuilder(szTempString_10);
                            ZeidonStringConcat(sb_szTempString_10, 1, 0, " (Subgroups not met)", 1, 0, 255);
                            szTempString_10 = sb_szTempString_10.toString();
                        }
                        SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                szTempString_10);
                        //:ELSE
                    } else {
                        //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.wDegreeAuditOL_Value +
                        //:                                        " (Subgroups met)"
                        {
                            StringBuilder sb_szTempString_11;
                            if (szTempString_11 == null)
                                sb_szTempString_11 = new StringBuilder(32);
                            else
                                sb_szTempString_11 = new StringBuilder(szTempString_11);
                            GetStringFromAttribute(sb_szTempString_11, mDegTrk, "RequiredGroup",
                                    "wDegreeAuditOL_Value");
                            szTempString_11 = sb_szTempString_11.toString();
                        }
                        {
                            StringBuilder sb_szTempString_11;
                            if (szTempString_11 == null)
                                sb_szTempString_11 = new StringBuilder(32);
                            else
                                sb_szTempString_11 = new StringBuilder(szTempString_11);
                            ZeidonStringConcat(sb_szTempString_11, 1, 0, " (Subgroups met)", 1, 0, 255);
                            szTempString_11 = sb_szTempString_11.toString();
                        }
                        SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                szTempString_11);
                        //:SET CURSOR FIRST mDegTrk.RequiredSubGroup WHERE mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "T"
                        RESULT = mDegTrk.cursor("RequiredSubGroup").setFirst("wDegreeAuditSatisfied", "T")
                                .toInt();
                        //:IF RESULT >= zCURSOR_SET
                        if (RESULT >= zCURSOR_SET) {
                            //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "T"
                            SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "T");
                            //:ELSE
                        } else {
                            //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "C"
                            SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "C");
                        }

                        //:END
                    }

                    //:END
                    //:mDegTrk.RequiredGroup.wDegreeAuditTotalCreditsTaken = CreditsTaken
                    SetAttributeFromDecimal(mDegTrk, "RequiredGroup", "wDegreeAuditTotalCreditsTaken",
                            CreditsTaken);

                    //:// Group Type 4: The same as Group Type 2, except that all courses exist under subgroups,
                    //://               and all the courses in one of the subgroups must be taken. The subgroups are
                    //://               thus evaluated as OR conditions. All courses must be defined under a subgroup.

                    //:ELSE
                } else {
                    //:IF mDegTrk.RequiredGroup.Type = "4"
                    if (CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "4") == 0) {

                        //:CreditsTaken     = 0
                        CreditsTaken = 0;
                        //:CreditsCompleted = 0
                        CreditsCompleted = 0;
                        //:FOR EACH mDegTrk.RequiredSubGroup
                        RESULT = mDegTrk.cursor("RequiredSubGroup").setFirst().toInt();
                        while (RESULT > zCURSOR_UNCHANGED) {
                            //:szCourseTakenFlag     = "Y"
                            {
                                StringBuilder sb_szCourseTakenFlag;
                                if (szCourseTakenFlag == null)
                                    sb_szCourseTakenFlag = new StringBuilder(32);
                                else
                                    sb_szCourseTakenFlag = new StringBuilder(szCourseTakenFlag);
                                ZeidonStringCopy(sb_szCourseTakenFlag, 1, 0, "Y", 1, 0, 2);
                                szCourseTakenFlag = sb_szCourseTakenFlag.toString();
                            }
                            //:szCourseCompletedFlag = "Y"
                            {
                                StringBuilder sb_szCourseCompletedFlag;
                                if (szCourseCompletedFlag == null)
                                    sb_szCourseCompletedFlag = new StringBuilder(32);
                                else
                                    sb_szCourseCompletedFlag = new StringBuilder(szCourseCompletedFlag);
                                ZeidonStringCopy(sb_szCourseCompletedFlag, 1, 0, "Y", 1, 0, 2);
                                szCourseCompletedFlag = sb_szCourseCompletedFlag.toString();
                            }
                            //:FOR EACH mDegTrk.CourseType3or4 WITHIN mDegTrk.RequiredSubGroup
                            RESULT = mDegTrk.cursor("CourseType3or4").setFirst("RequiredSubGroup").toInt();
                            while (RESULT > zCURSOR_UNCHANGED) {
                                //:IF mDegTrk.CourseType3or4.wDegreeAuditCourseTaken = "Y"
                                if (CompareAttributeToString(mDegTrk, "CourseType3or4",
                                        "wDegreeAuditCourseTaken", "Y") == 0) {
                                    //:CreditsTaken = CreditsTaken + mDegTrk.CourseType3or4.wCreditsTaken 
                                    {
                                        MutableDouble md_dTempDecimal_13 = new MutableDouble(dTempDecimal_13);
                                        GetDecimalFromAttribute(md_dTempDecimal_13, mDegTrk, "CourseType3or4",
                                                "wCreditsTaken");
                                        dTempDecimal_13 = md_dTempDecimal_13.doubleValue();
                                    }
                                    CreditsTaken = CreditsTaken + dTempDecimal_13;
                                    //:ELSE
                                } else {
                                    //:szCourseTakenFlag = "N"
                                    {
                                        StringBuilder sb_szCourseTakenFlag;
                                        if (szCourseTakenFlag == null)
                                            sb_szCourseTakenFlag = new StringBuilder(32);
                                        else
                                            sb_szCourseTakenFlag = new StringBuilder(szCourseTakenFlag);
                                        ZeidonStringCopy(sb_szCourseTakenFlag, 1, 0, "N", 1, 0, 2);
                                        szCourseTakenFlag = sb_szCourseTakenFlag.toString();
                                    }
                                }

                                //:END
                                //:TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + mDegTrk.CourseType3or4.wCreditsTaken
                                {
                                    MutableDouble md_dTempDecimal_14 = new MutableDouble(dTempDecimal_14);
                                    GetDecimalFromAttribute(md_dTempDecimal_14, mDegTrk, "CourseType3or4",
                                            "wCreditsTaken");
                                    dTempDecimal_14 = md_dTempDecimal_14.doubleValue();
                                }
                                TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + dTempDecimal_14;
                                //:IF mDegTrk.CourseType3or4.wDegreeAuditCourseCompleted = "Y"
                                if (CompareAttributeToString(mDegTrk, "CourseType3or4",
                                        "wDegreeAuditCourseCompleted", "Y") == 0) {
                                    //:CreditsCompleted = CreditsCompleted + mDegTrk.CourseType3or4.wCreditsTaken
                                    {
                                        MutableDouble md_dTempDecimal_15 = new MutableDouble(dTempDecimal_15);
                                        GetDecimalFromAttribute(md_dTempDecimal_15, mDegTrk, "CourseType3or4",
                                                "wCreditsTaken");
                                        dTempDecimal_15 = md_dTempDecimal_15.doubleValue();
                                    }
                                    CreditsCompleted = CreditsCompleted + dTempDecimal_15;
                                    //:TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned + mDegTrk.CourseType3or4.wCreditsTaken
                                    {
                                        MutableDouble md_dTempDecimal_16 = new MutableDouble(dTempDecimal_16);
                                        GetDecimalFromAttribute(md_dTempDecimal_16, mDegTrk, "CourseType3or4",
                                                "wCreditsTaken");
                                        dTempDecimal_16 = md_dTempDecimal_16.doubleValue();
                                    }
                                    TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned
                                            + dTempDecimal_16;
                                    //:ELSE
                                } else {
                                    //:szCourseCompletedFlag = "N"
                                    {
                                        StringBuilder sb_szCourseCompletedFlag;
                                        if (szCourseCompletedFlag == null)
                                            sb_szCourseCompletedFlag = new StringBuilder(32);
                                        else
                                            sb_szCourseCompletedFlag = new StringBuilder(szCourseCompletedFlag);
                                        ZeidonStringCopy(sb_szCourseCompletedFlag, 1, 0, "N", 1, 0, 2);
                                        szCourseCompletedFlag = sb_szCourseCompletedFlag.toString();
                                    }
                                }

                                RESULT = mDegTrk.cursor("CourseType3or4").setNextContinue().toInt();
                                ;
                                //:END
                            }

                            //:END
                            //:IF szCourseTakenFlag = "Y"
                            if (ZeidonStringCompare(szCourseTakenFlag, 1, 0, "Y", 1, 0, 2) == 0) {
                                //:mDegTrk.RequiredSubGroup.wDegreeAuditOL_Value = mDegTrk.RequiredSubGroup.dReportValue +
                                //:    "  (All courses for subgroup taken.)"
                                {
                                    StringBuilder sb_szTempString_12;
                                    if (szTempString_12 == null)
                                        sb_szTempString_12 = new StringBuilder(32);
                                    else
                                        sb_szTempString_12 = new StringBuilder(szTempString_12);
                                    GetStringFromAttribute(sb_szTempString_12, mDegTrk, "RequiredSubGroup",
                                            "dReportValue");
                                    szTempString_12 = sb_szTempString_12.toString();
                                }
                                {
                                    StringBuilder sb_szTempString_12;
                                    if (szTempString_12 == null)
                                        sb_szTempString_12 = new StringBuilder(32);
                                    else
                                        sb_szTempString_12 = new StringBuilder(szTempString_12);
                                    ZeidonStringConcat(sb_szTempString_12, 1, 0,
                                            "  (All courses for subgroup taken.)", 1, 0, 255);
                                    szTempString_12 = sb_szTempString_12.toString();
                                }
                                SetAttributeFromString(mDegTrk, "RequiredSubGroup", "wDegreeAuditOL_Value",
                                        szTempString_12);
                                //:IF szCourseCompletedFlag = "Y"
                                if (ZeidonStringCompare(szCourseCompletedFlag, 1, 0, "Y", 1, 0, 2) == 0) {
                                    //:mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "C"
                                    SetAttributeFromString(mDegTrk, "RequiredSubGroup", "wDegreeAuditSatisfied",
                                            "C");
                                    //:ELSE
                                } else {
                                    //:mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "T"
                                    SetAttributeFromString(mDegTrk, "RequiredSubGroup", "wDegreeAuditSatisfied",
                                            "T");
                                }

                                //:END
                                //:ELSE
                            } else {
                                //:mDegTrk.RequiredSubGroup.wDegreeAuditOL_Value = mDegTrk.RequiredSubGroup.dReportValue
                                SetAttributeFromAttribute(mDegTrk, "RequiredSubGroup", "wDegreeAuditOL_Value",
                                        mDegTrk, "RequiredSubGroup", "dReportValue");
                                //:mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "N"
                                SetAttributeFromString(mDegTrk, "RequiredSubGroup", "wDegreeAuditSatisfied",
                                        "N");
                            }

                            RESULT = mDegTrk.cursor("RequiredSubGroup").setNextContinue().toInt();
                            ;
                            //:END
                        }

                        //:END
                        //:szCreditsNeeded = mDegTrk.RequiredGroup.TotalRequiredCredits
                        {
                            MutableInt mi_lTempInteger_55 = new MutableInt(lTempInteger_55);
                            StringBuilder sb_szCreditsNeeded;
                            if (szCreditsNeeded == null)
                                sb_szCreditsNeeded = new StringBuilder(32);
                            else
                                sb_szCreditsNeeded = new StringBuilder(szCreditsNeeded);
                            GetVariableFromAttribute(sb_szCreditsNeeded, mi_lTempInteger_55, 'S', 11, mDegTrk,
                                    "RequiredGroup", "TotalRequiredCredits", "", 0);
                            lTempInteger_55 = mi_lTempInteger_55.intValue();
                            szCreditsNeeded = sb_szCreditsNeeded.toString();
                        }
                        //:szCreditsTaken  = CreditsTaken
                        {
                            StringBuilder sb_szCreditsTaken;
                            if (szCreditsTaken == null)
                                sb_szCreditsTaken = new StringBuilder(32);
                            else
                                sb_szCreditsTaken = new StringBuilder(szCreditsTaken);
                            ZeidonStringConvertFromNumber(sb_szCreditsTaken, 1, 0, 10, 0, CreditsTaken, "D");
                            szCreditsTaken = sb_szCreditsTaken.toString();
                        }
                        //:/*IF mDegTrk.RequiredGroup.wDegreeAuditHasTakingFlag = "Y"
                        //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                        //:            "  (" + szCreditsTaken + " of " + szCreditsNeeded + " credits completed/enrolled.)"
                        //:ELSE
                        //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                        //:            "  (" + szCreditsTaken + " of " + szCreditsNeeded + " credits completed.)"
                        //:END*/
                        //:// One subgroup must have all courses taken for the group to meet requirements.
                        //:// Add to subgroup display value.
                        //:SET CURSOR FIRST mDegTrk.RequiredSubGroup WHERE mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "C"
                        RESULT = mDegTrk.cursor("RequiredSubGroup").setFirst("wDegreeAuditSatisfied", "C")
                                .toInt();
                        //:IF RESULT >= zCURSOR_SET
                        if (RESULT >= zCURSOR_SET) {
                            //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                            //:                                     " (All courses in one subgroup must be taken: Reqmt MET)"
                            {
                                StringBuilder sb_szTempString_13;
                                if (szTempString_13 == null)
                                    sb_szTempString_13 = new StringBuilder(32);
                                else
                                    sb_szTempString_13 = new StringBuilder(szTempString_13);
                                GetStringFromAttribute(sb_szTempString_13, mDegTrk, "RequiredGroup",
                                        "dReportValue");
                                szTempString_13 = sb_szTempString_13.toString();
                            }
                            {
                                StringBuilder sb_szTempString_13;
                                if (szTempString_13 == null)
                                    sb_szTempString_13 = new StringBuilder(32);
                                else
                                    sb_szTempString_13 = new StringBuilder(szTempString_13);
                                ZeidonStringConcat(sb_szTempString_13, 1, 0,
                                        " (All courses in one subgroup must be taken: Reqmt MET)", 1, 0, 255);
                                szTempString_13 = sb_szTempString_13.toString();
                            }
                            SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                    szTempString_13);
                            //:IF CreditsCompleted >= mDegTrk.RequiredGroup.TotalRequiredCredits
                            if (CompareAttributeToDecimal(mDegTrk, "RequiredGroup", "TotalRequiredCredits",
                                    CreditsCompleted) <= 0) {
                                //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "C"
                                SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "C");
                                //:ELSE
                            } else {
                                //:IF CreditsTaken >= mDegTrk.RequiredGroup.TotalRequiredCredits
                                if (CompareAttributeToDecimal(mDegTrk, "RequiredGroup", "TotalRequiredCredits",
                                        CreditsTaken) <= 0) {
                                    //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "T"
                                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied",
                                            "T");
                                    //:ELSE
                                } else {
                                    //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "N"
                                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied",
                                            "N");
                                }

                                //:END
                            }

                            //:END
                            //:ELSE
                        } else {
                            //:SET CURSOR FIRST mDegTrk.RequiredSubGroup WHERE mDegTrk.RequiredSubGroup.wDegreeAuditSatisfied = "T"
                            RESULT = mDegTrk.cursor("RequiredSubGroup").setFirst("wDegreeAuditSatisfied", "T")
                                    .toInt();
                            //:IF RESULT >= zCURSOR_SET
                            if (RESULT >= zCURSOR_SET) {
                                //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                                //:                                     " (All courses in one subgroup must be taken: Reqmt MET)"
                                {
                                    StringBuilder sb_szTempString_14;
                                    if (szTempString_14 == null)
                                        sb_szTempString_14 = new StringBuilder(32);
                                    else
                                        sb_szTempString_14 = new StringBuilder(szTempString_14);
                                    GetStringFromAttribute(sb_szTempString_14, mDegTrk, "RequiredGroup",
                                            "dReportValue");
                                    szTempString_14 = sb_szTempString_14.toString();
                                }
                                {
                                    StringBuilder sb_szTempString_14;
                                    if (szTempString_14 == null)
                                        sb_szTempString_14 = new StringBuilder(32);
                                    else
                                        sb_szTempString_14 = new StringBuilder(szTempString_14);
                                    ZeidonStringConcat(sb_szTempString_14, 1, 0,
                                            " (All courses in one subgroup must be taken: Reqmt MET)", 1, 0,
                                            255);
                                    szTempString_14 = sb_szTempString_14.toString();
                                }
                                SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                        szTempString_14);
                                //:IF CreditsTaken >= mDegTrk.RequiredGroup.TotalRequiredCredits
                                if (CompareAttributeToDecimal(mDegTrk, "RequiredGroup", "TotalRequiredCredits",
                                        CreditsTaken) <= 0) {
                                    //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "T"
                                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied",
                                            "T");
                                    //:ELSE
                                } else {
                                    //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "N"
                                    SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied",
                                            "N");
                                }

                                //:END
                                //:ELSE
                            } else {
                                //:mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "N"
                                SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "N");
                                //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
                                //:                                     " (NO subgroup meets reqmts)"
                                {
                                    StringBuilder sb_szTempString_15;
                                    if (szTempString_15 == null)
                                        sb_szTempString_15 = new StringBuilder(32);
                                    else
                                        sb_szTempString_15 = new StringBuilder(szTempString_15);
                                    GetStringFromAttribute(sb_szTempString_15, mDegTrk, "RequiredGroup",
                                            "dReportValue");
                                    szTempString_15 = sb_szTempString_15.toString();
                                }
                                {
                                    StringBuilder sb_szTempString_15;
                                    if (szTempString_15 == null)
                                        sb_szTempString_15 = new StringBuilder(32);
                                    else
                                        sb_szTempString_15 = new StringBuilder(szTempString_15);
                                    ZeidonStringConcat(sb_szTempString_15, 1, 0, " (NO subgroup meets reqmts)",
                                            1, 0, 255);
                                    szTempString_15 = sb_szTempString_15.toString();
                                }
                                SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                        szTempString_15);
                            }

                            //:END
                        }

                        //:END
                        //:mDegTrk.RequiredGroup.wDegreeAuditTotalCreditsTaken = CreditsTaken
                        SetAttributeFromDecimal(mDegTrk, "RequiredGroup", "wDegreeAuditTotalCreditsTaken",
                                CreditsTaken);
                        //:ELSE
                    } else {

                        //:// Group Type E: Electives

                        //:IF mDegTrk.RequiredGroup.Type = "E"
                        if (CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "E") == 0) {

                            //:CourseTakenCount  = 0
                            CourseTakenCount = 0;
                            //:CreditsTaken      = 0
                            CreditsTaken = 0;
                            //:FOR EACH mDegTrk.CourseType1or2 WITHIN mDegTrk.RequiredGroup
                            RESULT = mDegTrk.cursor("CourseType1or2").setFirst("RequiredGroup").toInt();
                            while (RESULT > zCURSOR_UNCHANGED) {
                                //:IF mDegTrk.CourseType1or2.wDegreeAuditCourseTaken = "Y"
                                if (CompareAttributeToString(mDegTrk, "CourseType1or2",
                                        "wDegreeAuditCourseTaken", "Y") == 0) {
                                    //:CourseTakenCount = CourseTakenCount + 1
                                    CourseTakenCount = CourseTakenCount + 1;
                                    //:CreditsTaken     = CreditsTaken + mDegTrk.CourseType1or2.wCreditsTaken 
                                    {
                                        MutableDouble md_dTempDecimal_17 = new MutableDouble(dTempDecimal_17);
                                        GetDecimalFromAttribute(md_dTempDecimal_17, mDegTrk, "CourseType1or2",
                                                "wCreditsTaken");
                                        dTempDecimal_17 = md_dTempDecimal_17.doubleValue();
                                    }
                                    CreditsTaken = CreditsTaken + dTempDecimal_17;
                                }

                                //:END
                                //:TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + mDegTrk.CourseType1or2.wCreditsTaken
                                {
                                    MutableDouble md_dTempDecimal_18 = new MutableDouble(dTempDecimal_18);
                                    GetDecimalFromAttribute(md_dTempDecimal_18, mDegTrk, "CourseType1or2",
                                            "wCreditsTaken");
                                    dTempDecimal_18 = md_dTempDecimal_18.doubleValue();
                                }
                                TotalDegreeTrackCreditsTaken = TotalDegreeTrackCreditsTaken + dTempDecimal_18;
                                //:IF mDegTrk.CourseType1or2.wCourseStatus = "Completed"
                                if (CompareAttributeToString(mDegTrk, "CourseType1or2", "wCourseStatus",
                                        "Completed") == 0) {
                                    //:TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned + mDegTrk.CourseType1or2.wCreditsTaken
                                    {
                                        MutableDouble md_dTempDecimal_19 = new MutableDouble(dTempDecimal_19);
                                        GetDecimalFromAttribute(md_dTempDecimal_19, mDegTrk, "CourseType1or2",
                                                "wCreditsTaken");
                                        dTempDecimal_19 = md_dTempDecimal_19.doubleValue();
                                    }
                                    TotalDegreeTrackCreditsEarned = TotalDegreeTrackCreditsEarned
                                            + dTempDecimal_19;
                                }

                                RESULT = mDegTrk.cursor("CourseType1or2").setNextContinue().toInt();
                                ;
                                //:END
                            }

                            //:END
                            //:szCourseTakenCount = CourseTakenCount
                            {
                                StringBuilder sb_szCourseTakenCount;
                                if (szCourseTakenCount == null)
                                    sb_szCourseTakenCount = new StringBuilder(32);
                                else
                                    sb_szCourseTakenCount = new StringBuilder(szCourseTakenCount);
                                ZeidonStringConvertFromNumber(sb_szCourseTakenCount, 1, 0, 5, CourseTakenCount,
                                        (double) 0.0, "I");
                                szCourseTakenCount = sb_szCourseTakenCount.toString();
                            }
                            //:szCreditsTaken     = CreditsTaken
                            {
                                StringBuilder sb_szCreditsTaken;
                                if (szCreditsTaken == null)
                                    sb_szCreditsTaken = new StringBuilder(32);
                                else
                                    sb_szCreditsTaken = new StringBuilder(szCreditsTaken);
                                ZeidonStringConvertFromNumber(sb_szCreditsTaken, 1, 0, 10, 0, CreditsTaken,
                                        "D");
                                szCreditsTaken = sb_szCreditsTaken.toString();
                            }
                            //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = "Electives - " +
                            //:         "Courses: " + szCourseTakenCount + ", Credits: " + szCreditsTaken
                            {
                                StringBuilder sb_szTempString_16;
                                if (szTempString_16 == null)
                                    sb_szTempString_16 = new StringBuilder(32);
                                else
                                    sb_szTempString_16 = new StringBuilder(szTempString_16);
                                ZeidonStringCopy(sb_szTempString_16, 1, 0, "Electives - ", 1, 0, 255);
                                szTempString_16 = sb_szTempString_16.toString();
                            }
                            {
                                StringBuilder sb_szTempString_16;
                                if (szTempString_16 == null)
                                    sb_szTempString_16 = new StringBuilder(32);
                                else
                                    sb_szTempString_16 = new StringBuilder(szTempString_16);
                                ZeidonStringConcat(sb_szTempString_16, 1, 0, "Courses: ", 1, 0, 255);
                                szTempString_16 = sb_szTempString_16.toString();
                            }
                            {
                                StringBuilder sb_szTempString_16;
                                if (szTempString_16 == null)
                                    sb_szTempString_16 = new StringBuilder(32);
                                else
                                    sb_szTempString_16 = new StringBuilder(szTempString_16);
                                ZeidonStringConcat(sb_szTempString_16, 1, 0, szCourseTakenCount, 1, 0, 255);
                                szTempString_16 = sb_szTempString_16.toString();
                            }
                            {
                                StringBuilder sb_szTempString_16;
                                if (szTempString_16 == null)
                                    sb_szTempString_16 = new StringBuilder(32);
                                else
                                    sb_szTempString_16 = new StringBuilder(szTempString_16);
                                ZeidonStringConcat(sb_szTempString_16, 1, 0, ", Credits: ", 1, 0, 255);
                                szTempString_16 = sb_szTempString_16.toString();
                            }
                            {
                                StringBuilder sb_szTempString_16;
                                if (szTempString_16 == null)
                                    sb_szTempString_16 = new StringBuilder(32);
                                else
                                    sb_szTempString_16 = new StringBuilder(szTempString_16);
                                ZeidonStringConcat(sb_szTempString_16, 1, 0, szCreditsTaken, 1, 0, 255);
                                szTempString_16 = sb_szTempString_16.toString();
                            }
                            SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                    szTempString_16);
                            //:mDegTrk.RequiredGroup.wDegreeAuditTotalCreditsTaken = CreditsTaken
                            SetAttributeFromDecimal(mDegTrk, "RequiredGroup", "wDegreeAuditTotalCreditsTaken",
                                    CreditsTaken);
                            //:OrderEntityForView( mDegTrk, "RequiredGroupCourseType1or2", "CourseType1or2.Number A" )
                            OrderEntityForView(mDegTrk, "RequiredGroupCourseType1or2",
                                    "CourseType1or2.Number A");

                            //:ELSE
                        } else {

                            //:// Group Type D: Developmental Courses

                            //:IF mDegTrk.RequiredGroup.Type = "D"
                            if (CompareAttributeToString(mDegTrk, "RequiredGroup", "Type", "D") == 0) {

                                //:CourseTakenCount  = 0
                                CourseTakenCount = 0;
                                //:CreditsTaken      = 0
                                CreditsTaken = 0;
                                //:FOR EACH mDegTrk.CourseType1or2 WITHIN mDegTrk.RequiredGroup
                                RESULT = mDegTrk.cursor("CourseType1or2").setFirst("RequiredGroup").toInt();
                                while (RESULT > zCURSOR_UNCHANGED) {
                                    //:CourseTakenCount = CourseTakenCount + 1
                                    CourseTakenCount = CourseTakenCount + 1;
                                    //:CreditsTaken     = CreditsTaken + mDegTrk.CourseType1or2.wCreditsTaken 
                                    {
                                        MutableDouble md_dTempDecimal_20 = new MutableDouble(dTempDecimal_20);
                                        GetDecimalFromAttribute(md_dTempDecimal_20, mDegTrk, "CourseType1or2",
                                                "wCreditsTaken");
                                        dTempDecimal_20 = md_dTempDecimal_20.doubleValue();
                                    }
                                    CreditsTaken = CreditsTaken + dTempDecimal_20;
                                    RESULT = mDegTrk.cursor("CourseType1or2").setNextContinue().toInt();
                                    ;
                                }

                                //:END
                                //:szCourseTakenCount = CourseTakenCount
                                {
                                    StringBuilder sb_szCourseTakenCount;
                                    if (szCourseTakenCount == null)
                                        sb_szCourseTakenCount = new StringBuilder(32);
                                    else
                                        sb_szCourseTakenCount = new StringBuilder(szCourseTakenCount);
                                    ZeidonStringConvertFromNumber(sb_szCourseTakenCount, 1, 0, 5,
                                            CourseTakenCount, (double) 0.0, "I");
                                    szCourseTakenCount = sb_szCourseTakenCount.toString();
                                }
                                //:szCreditsTaken     = CreditsTaken
                                {
                                    StringBuilder sb_szCreditsTaken;
                                    if (szCreditsTaken == null)
                                        sb_szCreditsTaken = new StringBuilder(32);
                                    else
                                        sb_szCreditsTaken = new StringBuilder(szCreditsTaken);
                                    ZeidonStringConvertFromNumber(sb_szCreditsTaken, 1, 0, 10, 0, CreditsTaken,
                                            "D");
                                    szCreditsTaken = sb_szCreditsTaken.toString();
                                }
                                //:mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.Name +
                                //:      " - Courses: " + szCourseTakenCount + ", Credits: " + szCreditsTaken
                                {
                                    StringBuilder sb_szTempString_17;
                                    if (szTempString_17 == null)
                                        sb_szTempString_17 = new StringBuilder(32);
                                    else
                                        sb_szTempString_17 = new StringBuilder(szTempString_17);
                                    GetStringFromAttribute(sb_szTempString_17, mDegTrk, "RequiredGroup",
                                            "Name");
                                    szTempString_17 = sb_szTempString_17.toString();
                                }
                                {
                                    StringBuilder sb_szTempString_17;
                                    if (szTempString_17 == null)
                                        sb_szTempString_17 = new StringBuilder(32);
                                    else
                                        sb_szTempString_17 = new StringBuilder(szTempString_17);
                                    ZeidonStringConcat(sb_szTempString_17, 1, 0, " - Courses: ", 1, 0, 255);
                                    szTempString_17 = sb_szTempString_17.toString();
                                }
                                {
                                    StringBuilder sb_szTempString_17;
                                    if (szTempString_17 == null)
                                        sb_szTempString_17 = new StringBuilder(32);
                                    else
                                        sb_szTempString_17 = new StringBuilder(szTempString_17);
                                    ZeidonStringConcat(sb_szTempString_17, 1, 0, szCourseTakenCount, 1, 0, 255);
                                    szTempString_17 = sb_szTempString_17.toString();
                                }
                                {
                                    StringBuilder sb_szTempString_17;
                                    if (szTempString_17 == null)
                                        sb_szTempString_17 = new StringBuilder(32);
                                    else
                                        sb_szTempString_17 = new StringBuilder(szTempString_17);
                                    ZeidonStringConcat(sb_szTempString_17, 1, 0, ", Credits: ", 1, 0, 255);
                                    szTempString_17 = sb_szTempString_17.toString();
                                }
                                {
                                    StringBuilder sb_szTempString_17;
                                    if (szTempString_17 == null)
                                        sb_szTempString_17 = new StringBuilder(32);
                                    else
                                        sb_szTempString_17 = new StringBuilder(szTempString_17);
                                    ZeidonStringConcat(sb_szTempString_17, 1, 0, szCreditsTaken, 1, 0, 255);
                                    szTempString_17 = sb_szTempString_17.toString();
                                }
                                SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value",
                                        szTempString_17);
                                //:OrderEntityForView( mDegTrk, "RequiredGroupCourseType1or2", "CourseType1or2.Number A" )
                                OrderEntityForView(mDegTrk, "RequiredGroupCourseType1or2",
                                        "CourseType1or2.Number A");
                            }

                            //:END
                        }

                        //:END
                    }

                    //:END
                }

                //:END
            }

            //:END
        }

        //: END
        //: 
        //: // If the RequiredGroup has been manually satisfied, we will override the results set above.
        //: // We will first validate that no ManuallySatisfied entry exists without a DegreeTrack entity as this
        //: // case leads to a Core error.
        //: FOR EACH mStudenC.ManuallySatisfied 
        RESULT = mStudenC.cursor("ManuallySatisfied").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //: IF mStudenC.MS_DegreeTrack DOES NOT EXIST
            lTempInteger_56 = CheckExistenceOfEntity(mStudenC, "MS_DegreeTrack");
            if (lTempInteger_56 != 0) {
                //: MessageSend( mStudenC, "", "Degree Audit",
                //:              "The Student has a 'Manually Satisfied Groups' entry that doesn't have a Degree Track associated with it.",
                //:              zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                MessageSend(mStudenC, "", "Degree Audit",
                        "The Student has a 'Manually Satisfied Groups' entry that doesn't have a Degree Track associated with it.",
                        zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                //: RETURN -1
                if (8 == 8)
                    return (-1);
            }

            //: END
            //: IF mStudenC.MS_RequiredGroup DOES NOT EXIST
            lTempInteger_57 = CheckExistenceOfEntity(mStudenC, "MS_RequiredGroup");
            if (lTempInteger_57 != 0) {
                //: MessageSend( mStudenC, "", "Degree Audit",
                //:              "The Student has a 'Manually Satisfied Groups' entry that doesn't have a Required Group associated with it.",
                //:              zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                MessageSend(mStudenC, "", "Degree Audit",
                        "The Student has a 'Manually Satisfied Groups' entry that doesn't have a Required Group associated with it.",
                        zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                //: RETURN -1
                if (8 == 8)
                    return (-1);
            }

            RESULT = mStudenC.cursor("ManuallySatisfied").setNextContinue().toInt();
            ;
            //: END
        }

        //: END
        //: SET CURSOR FIRST mStudenC.ManuallySatisfied 
        //:            WHERE mStudenC.MS_DegreeTrack.ID   = mDegTrk.DegreeTrack.ID 
        //:              AND mStudenC.MS_RequiredGroup.ID = mDegTrk.RequiredGroup.ID 
        RESULT = mStudenC.cursor("ManuallySatisfied").setFirst().toInt();
        if (RESULT > zCURSOR_UNCHANGED) {
            while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToAttribute(mStudenC, "MS_DegreeTrack", "ID",
                    mDegTrk, "DegreeTrack", "ID") != 0
                    || CompareAttributeToAttribute(mStudenC, "MS_RequiredGroup", "ID", mDegTrk, "RequiredGroup",
                            "ID") != 0)) {
                RESULT = mStudenC.cursor("ManuallySatisfied").setNextContinue().toInt();
                ;
            }

        }

        //: IF RESULT >= zCURSOR_SET
        if (RESULT >= zCURSOR_SET) {
            //: mDegTrk.RequiredGroup.wDegreeAuditOL_Value = mDegTrk.RequiredGroup.dReportValue +
            //:                     "  (Manually satisfied: " + mStudenC.ManuallySatisfied.SatisfiedReason + ")"
            {
                StringBuilder sb_szTempString_18;
                if (szTempString_18 == null)
                    sb_szTempString_18 = new StringBuilder(32);
                else
                    sb_szTempString_18 = new StringBuilder(szTempString_18);
                GetStringFromAttribute(sb_szTempString_18, mDegTrk, "RequiredGroup", "dReportValue");
                szTempString_18 = sb_szTempString_18.toString();
            }
            {
                StringBuilder sb_szTempString_18;
                if (szTempString_18 == null)
                    sb_szTempString_18 = new StringBuilder(32);
                else
                    sb_szTempString_18 = new StringBuilder(szTempString_18);
                ZeidonStringConcat(sb_szTempString_18, 1, 0, "  (Manually satisfied: ", 1, 0, 255);
                szTempString_18 = sb_szTempString_18.toString();
            }
            {
                MutableInt mi_lTempInteger_58 = new MutableInt(lTempInteger_58);
                StringBuilder sb_szTempString_19;
                if (szTempString_19 == null)
                    sb_szTempString_19 = new StringBuilder(32);
                else
                    sb_szTempString_19 = new StringBuilder(szTempString_19);
                GetVariableFromAttribute(sb_szTempString_19, mi_lTempInteger_58, 'S', 51, mStudenC,
                        "ManuallySatisfied", "SatisfiedReason", "", 0);
                lTempInteger_58 = mi_lTempInteger_58.intValue();
                szTempString_19 = sb_szTempString_19.toString();
            }
            {
                StringBuilder sb_szTempString_18;
                if (szTempString_18 == null)
                    sb_szTempString_18 = new StringBuilder(32);
                else
                    sb_szTempString_18 = new StringBuilder(szTempString_18);
                ZeidonStringConcat(sb_szTempString_18, 1, 0, szTempString_19, 1, 0, 255);
                szTempString_18 = sb_szTempString_18.toString();
            }
            {
                StringBuilder sb_szTempString_18;
                if (szTempString_18 == null)
                    sb_szTempString_18 = new StringBuilder(32);
                else
                    sb_szTempString_18 = new StringBuilder(szTempString_18);
                ZeidonStringConcat(sb_szTempString_18, 1, 0, ")", 1, 0, 255);
                szTempString_18 = sb_szTempString_18.toString();
            }
            SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditOL_Value", szTempString_18);
            //: mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "C"
            SetAttributeFromString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "C");
        }

        RESULT = mDegTrk.cursor("RequiredGroup").setNextContinue().toInt();
        ;
        //: END
    }

    //:END

    //:// Add any Waitlisted courses, though they won't apply to any credit counts or audit results.
    //:// We also won't consider any repeatable classes that have already been taken.
    //:FOR EACH mStudenC.StudentWaitlisted 
    RESULT = mStudenC.cursor("StudentWaitlisted").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:SET CURSOR FIRST mDegTrk.CourseType1or2 WITHIN mDegTrk.DegreeTrack
        //:           WHERE mDegTrk.CourseType1or2.ID = mStudenC.StudentWaitlistedCourse.ID 
        {
            MutableInt mi_lTempInteger_59 = new MutableInt(lTempInteger_59);
            GetIntegerFromAttribute(mi_lTempInteger_59, mStudenC, "StudentWaitlistedCourse", "ID");
            lTempInteger_59 = mi_lTempInteger_59.intValue();
        }
        RESULT = mDegTrk.cursor("CourseType1or2").setFirst("ID", lTempInteger_59, "DegreeTrack").toInt();
        //:IF RESULT >= zCURSOR_SET
        if (RESULT >= zCURSOR_SET) {
            //:// There was a match on CourseType1or2. 
            //:// If the entry has already been satisfied, add a new item.
            //:IF mDegTrk.CourseType1or2.wDegreeAuditCourseTaken = ""
            if (CompareAttributeToString(mDegTrk, "CourseType1or2", "wDegreeAuditCourseTaken", "") == 0) {
                //:mDegTrk.CourseType1or2.wCourseStatus = "Waitlisted"
                SetAttributeFromString(mDegTrk, "CourseType1or2", "wCourseStatus", "Waitlisted");
                //:mDegTrk.CourseType1or2.wCreditsTaken = mStudenC.StudentWaitlistedClass.CreditHours
                SetAttributeFromAttribute(mDegTrk, "CourseType1or2", "wCreditsTaken", mStudenC,
                        "StudentWaitlistedClass", "CreditHours");
                //:ELSE
            } else {
                //:CreateViewFromView( mDegTrkC, mDegTrk )
                CreateViewFromView(mDegTrkC, mDegTrk);
                //:CREATE ENTITY mDegTrkC.RequiredGroupCourseType1or2 
                RESULT = CreateEntity(mDegTrkC, "RequiredGroupCourseType1or2", zPOS_AFTER);
                //:CREATE ENTITY mDegTrkC.CourseType1or2 
                RESULT = CreateEntity(mDegTrkC, "CourseType1or2", zPOS_AFTER);
                //:SetMatchingAttributesByName( mDegTrkC, "CourseType1or2", mDegTrk, "CourseType1or2", zSET_NULL )
                SetMatchingAttributesByName(mDegTrkC, "CourseType1or2", mDegTrk, "CourseType1or2", zSET_NULL);
                //:IF mStudenC.StudentWaitlistedCourseTopic EXISTS
                lTempInteger_60 = CheckExistenceOfEntity(mStudenC, "StudentWaitlistedCourseTopic");
                if (lTempInteger_60 == 0) {
                    //:mDegTrkC.CourseType1or2.Number = mStudenC.StudentWaitlistedCourse.Number + 
                    //:                                 mStudenC.StudentWaitlistedCourseTopic.Number 
                    {
                        StringBuilder sb_szTempString_20;
                        if (szTempString_20 == null)
                            sb_szTempString_20 = new StringBuilder(32);
                        else
                            sb_szTempString_20 = new StringBuilder(szTempString_20);
                        GetStringFromAttribute(sb_szTempString_20, mStudenC, "StudentWaitlistedCourse",
                                "Number");
                        szTempString_20 = sb_szTempString_20.toString();
                    }
                    {
                        StringBuilder sb_szTempString_21;
                        if (szTempString_21 == null)
                            sb_szTempString_21 = new StringBuilder(32);
                        else
                            sb_szTempString_21 = new StringBuilder(szTempString_21);
                        GetStringFromAttribute(sb_szTempString_21, mStudenC, "StudentWaitlistedCourseTopic",
                                "Number");
                        szTempString_21 = sb_szTempString_21.toString();
                    }
                    {
                        StringBuilder sb_szTempString_20;
                        if (szTempString_20 == null)
                            sb_szTempString_20 = new StringBuilder(32);
                        else
                            sb_szTempString_20 = new StringBuilder(szTempString_20);
                        ZeidonStringConcat(sb_szTempString_20, 1, 0, szTempString_21, 1, 0, 11);
                        szTempString_20 = sb_szTempString_20.toString();
                    }
                    SetAttributeFromString(mDegTrkC, "CourseType1or2", "Number", szTempString_20);
                    //:mDegTrkC.CourseType1or2.Title  = mStudenC.StudentWaitlistedCourseTopic.Title
                    SetAttributeFromAttribute(mDegTrkC, "CourseType1or2", "Title", mStudenC,
                            "StudentWaitlistedCourseTopic", "Title");
                    //:ELSE
                } else {
                    //:mDegTrkC.CourseType1or2.Number = mStudenC.StudentWaitlistedCourse.Number 
                    SetAttributeFromAttribute(mDegTrkC, "CourseType1or2", "Number", mStudenC,
                            "StudentWaitlistedCourse", "Number");
                    //:mDegTrkC.CourseType1or2.Title  = mStudenC.StudentWaitlistedCourse.Title
                    SetAttributeFromAttribute(mDegTrkC, "CourseType1or2", "Title", mStudenC,
                            "StudentWaitlistedCourse", "Title");
                }

                //:END
                //:mDegTrkC.CourseType1or2.wCourseStatus = "Waitlisted"
                SetAttributeFromString(mDegTrkC, "CourseType1or2", "wCourseStatus", "Waitlisted");
                //:mDegTrkC.CourseType1or2.wCreditsTaken = mStudenC.StudentWaitlistedClass.CreditHours
                SetAttributeFromAttribute(mDegTrkC, "CourseType1or2", "wCreditsTaken", mStudenC,
                        "StudentWaitlistedClass", "CreditHours");
                //:DropView( mDegTrkC )
                DropView(mDegTrkC);
            }

            //:END
            //:ELSE
        } else {
            //:// There wasn't a match on CourseType1or2, so try CourseType3or4.
            //:SET CURSOR FIRST mDegTrk.CourseType3or4 WITHIN mDegTrk.DegreeTrack
            //:           WHERE mDegTrk.CourseType3or4.ID = mStudenC.StudentWaitlistedCourse.ID 
            {
                MutableInt mi_lTempInteger_61 = new MutableInt(lTempInteger_61);
                GetIntegerFromAttribute(mi_lTempInteger_61, mStudenC, "StudentWaitlistedCourse", "ID");
                lTempInteger_61 = mi_lTempInteger_61.intValue();
            }
            RESULT = mDegTrk.cursor("CourseType3or4").setFirst("ID", lTempInteger_61, "DegreeTrack").toInt();
            //:IF RESULT >= zCURSOR_SET
            if (RESULT >= zCURSOR_SET) {
                //:// There was a match on CourseType3or4.
                //:// If the entry has already been satisfied, add a new item.
                //:IF mDegTrk.CourseType3or4.wDegreeAuditCourseTaken = ""
                if (CompareAttributeToString(mDegTrk, "CourseType3or4", "wDegreeAuditCourseTaken", "") == 0) {
                    //:mDegTrk.CourseType3or4.wCourseStatus = "Waitlisted"
                    SetAttributeFromString(mDegTrk, "CourseType3or4", "wCourseStatus", "Waitlisted");
                    //:mDegTrk.CourseType3or4.wCreditsTaken = mStudenC.StudentWaitlistedClass.CreditHours
                    SetAttributeFromAttribute(mDegTrk, "CourseType3or4", "wCreditsTaken", mStudenC,
                            "StudentWaitlistedClass", "CreditHours");
                    //:ELSE
                } else {
                    //:CreateViewFromView( mDegTrkC, mDegTrk )
                    CreateViewFromView(mDegTrkC, mDegTrk);
                    //:CREATE ENTITY mDegTrkC.RequiredGroupCourseType3or4 
                    RESULT = CreateEntity(mDegTrkC, "RequiredGroupCourseType3or4", zPOS_AFTER);
                    //:CREATE ENTITY mDegTrkC.CourseType3or4 
                    RESULT = CreateEntity(mDegTrkC, "CourseType3or4", zPOS_AFTER);
                    //:SetMatchingAttributesByName( mDegTrkC, "CourseType3or4", mDegTrk, "CourseType3or4", zSET_NULL )
                    SetMatchingAttributesByName(mDegTrkC, "CourseType3or4", mDegTrk, "CourseType3or4",
                            zSET_NULL);
                    //:IF mStudenC.StudentWaitlistedCourseTopic EXISTS
                    lTempInteger_62 = CheckExistenceOfEntity(mStudenC, "StudentWaitlistedCourseTopic");
                    if (lTempInteger_62 == 0) {
                        //:mDegTrkC.CourseType3or4.Number = mStudenC.StudentWaitlistedCourse.Number + 
                        //:                                 mStudenC.StudentWaitlistedCourseTopic.Number 
                        {
                            StringBuilder sb_szTempString_22;
                            if (szTempString_22 == null)
                                sb_szTempString_22 = new StringBuilder(32);
                            else
                                sb_szTempString_22 = new StringBuilder(szTempString_22);
                            GetStringFromAttribute(sb_szTempString_22, mStudenC, "StudentWaitlistedCourse",
                                    "Number");
                            szTempString_22 = sb_szTempString_22.toString();
                        }
                        {
                            StringBuilder sb_szTempString_23;
                            if (szTempString_23 == null)
                                sb_szTempString_23 = new StringBuilder(32);
                            else
                                sb_szTempString_23 = new StringBuilder(szTempString_23);
                            GetStringFromAttribute(sb_szTempString_23, mStudenC, "StudentWaitlistedCourseTopic",
                                    "Number");
                            szTempString_23 = sb_szTempString_23.toString();
                        }
                        {
                            StringBuilder sb_szTempString_22;
                            if (szTempString_22 == null)
                                sb_szTempString_22 = new StringBuilder(32);
                            else
                                sb_szTempString_22 = new StringBuilder(szTempString_22);
                            ZeidonStringConcat(sb_szTempString_22, 1, 0, szTempString_23, 1, 0, 11);
                            szTempString_22 = sb_szTempString_22.toString();
                        }
                        SetAttributeFromString(mDegTrkC, "CourseType3or4", "Number", szTempString_22);
                        //:mDegTrkC.CourseType3or4.Title  = mStudenC.StudentWaitlistedCourseTopic.Title
                        SetAttributeFromAttribute(mDegTrkC, "CourseType3or4", "Title", mStudenC,
                                "StudentWaitlistedCourseTopic", "Title");
                        //:ELSE
                    } else {
                        //:mDegTrkC.CourseType3or4.Number = mStudenC.StudentWaitlistedCourse.Number 
                        SetAttributeFromAttribute(mDegTrkC, "CourseType3or4", "Number", mStudenC,
                                "StudentWaitlistedCourse", "Number");
                        //:mDegTrkC.CourseType3or4.Title  = mStudenC.StudentWaitlistedCourse.Title
                        SetAttributeFromAttribute(mDegTrkC, "CourseType3or4", "Title", mStudenC,
                                "StudentWaitlistedCourse", "Title");
                    }

                    //:END
                    //:mDegTrkC.CourseType3or4.wCourseStatus = "Waitlisted"
                    SetAttributeFromString(mDegTrkC, "CourseType3or4", "wCourseStatus", "Waitlisted");
                    //:mDegTrkC.CourseType3or4.wCreditsTaken = mStudenC.StudentWaitlistedClass.CreditHours
                    SetAttributeFromAttribute(mDegTrkC, "CourseType3or4", "wCreditsTaken", mStudenC,
                            "StudentWaitlistedClass", "CreditHours");
                    //:DropView( mDegTrkC )
                    DropView(mDegTrkC);
                }

                //:END
            }

            //:END
        }

        RESULT = mStudenC.cursor("StudentWaitlisted").setNextContinue().toInt();
        ;
        //:END
    }

    //:END

    //:// Mark Course entries "No longer offered" if are no longer Active, unless they are satisfied 
    //:// by a Course.
    //:FOR EACH mDegTrk.CourseType1or2 WITHIN mDegTrk.DegreeTrack 
    RESULT = mDegTrk.cursor("CourseType1or2").setFirst("DegreeTrack").toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF mDegTrk.CourseType1or2.Status != "" AND
        //:   mDegTrk.CourseType1or2.Status != "A" AND
        //:   mDegTrk.CourseType1or2.wCourseStatus = ""
        if (CompareAttributeToString(mDegTrk, "CourseType1or2", "Status", "") != 0
                && CompareAttributeToString(mDegTrk, "CourseType1or2", "Status", "A") != 0
                && CompareAttributeToString(mDegTrk, "CourseType1or2", "wCourseStatus", "") == 0) {

            //:mDegTrk.CourseType1or2.wCourseStatus = "No longer offered"
            SetAttributeFromString(mDegTrk, "CourseType1or2", "wCourseStatus", "No longer offered");
        }

        RESULT = mDegTrk.cursor("CourseType1or2").setNextContinue().toInt();
        ;
        //:END 
    }

    //:END
    //:FOR EACH mDegTrk.CourseType3or4 WITHIN mDegTrk.DegreeTrack 
    RESULT = mDegTrk.cursor("CourseType3or4").setFirst("DegreeTrack").toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF mDegTrk.CourseType3or4.Status != "" AND
        //:   mDegTrk.CourseType3or4.Status != "A" AND
        //:   mDegTrk.CourseType3or4.wCourseStatus = ""
        if (CompareAttributeToString(mDegTrk, "CourseType3or4", "Status", "") != 0
                && CompareAttributeToString(mDegTrk, "CourseType3or4", "Status", "A") != 0
                && CompareAttributeToString(mDegTrk, "CourseType3or4", "wCourseStatus", "") == 0) {

            //:mDegTrk.CourseType3or4.wCourseStatus = "No longer offered"
            SetAttributeFromString(mDegTrk, "CourseType3or4", "wCourseStatus", "No longer offered");
        }

        RESULT = mDegTrk.cursor("CourseType3or4").setNextContinue().toInt();
        ;
        //:END 
    }

    //:END

    //:// Drop any entries for Generic Courses that have not been satisfied.
    //:/*FOR EACH mDegTrk.CourseType1or2 WITHIN mDegTrk.DegreeTrack 
    //:   IF mDegTrk.CourseType1or2.GenericCourseFlag = "Y" AND
    //:      mDegTrk.CourseType1or2.wCourseStatus = ""
    //:      
    //:      DropEntity( mDegTrk, "RequiredGroupCourseType1or2", zREPOS_NONE )
    //:   END 
    //:END
    //:FOR EACH mDegTrk.CourseType3or4 WITHIN mDegTrk.DegreeTrack 
    //:   IF mDegTrk.CourseType3or4.GenericCourseFlag = "Y" AND
    //:      mDegTrk.CourseType3or4.wCourseStatus = ""
    //:      
    //:      DropEntity( mDegTrk, "RequiredGroupCourseType3or4", zREPOS_NONE )
    //:   END 
    //:END*/

    //:// Delete the general "Developmental" group if it has no entries.
    //:SET CURSOR FIRST mDegTrk.RequiredGroup WITHIN mDegTrk.DegreeTrack 
    //:           WHERE mDegTrk.RequiredGroup.Type = "D" 
    RESULT = mDegTrk.cursor("RequiredGroup").setFirst("Type", "D", "DegreeTrack").toInt();
    //:IF mDegTrk.RequiredGroupCourseType1or2 DOES NOT EXIST
    lTempInteger_63 = CheckExistenceOfEntity(mDegTrk, "RequiredGroupCourseType1or2");
    if (lTempInteger_63 != 0) {
        //:DELETE ENTITY mDegTrk.DegreeTrackRequiredGroup   
        RESULT = DeleteEntity(mDegTrk, "DegreeTrackRequiredGroup", zPOS_NEXT);
    }

    //:END

    //:// Set total credits applicable to Degree Track.
    //:mDegTrk.DegreeTrack.wDegreeAuditTotalCreditsTaken = TotalDegreeTrackCreditsTaken
    SetAttributeFromDecimal(mDegTrk, "DegreeTrack", "wDegreeAuditTotalCreditsTaken",
            TotalDegreeTrackCreditsTaken);
    //:mDegTrk.DegreeTrack.wDegreeAuditTotalCreditsEarned = TotalDegreeTrackCreditsEarned
    SetAttributeFromDecimal(mDegTrk, "DegreeTrack", "wDegreeAuditTotalCreditsEarned",
            TotalDegreeTrackCreditsEarned);

    //:// Set indication whether or not all audit requirements are met. The indication depends on a combination of whether or
    //:// not Class Requirements are met and the value of the Comprehensive Test Score.
    //:// There are three different possibilities for whether Class Requirements are met.
    //:// 1. Classes Satisfied (CS)
    //://    - All RequiredGroup requirements are met by courses completed.
    //://    - The EarnedCredits - DevelopmentCredits are >= MinimumCredits required, as specified by Degree and graduating year.
    //://    - The Student's GPA is >= MinimumGPA, as specified on the Degree Track.
    //:// 2. Classes On Track (CT)
    //://    - All RequiredGroup requirements are met by courses completed and enrolled (not considering Pre_Transfer courses).
    //://    - The EarnedCredits + EnrolledCredits - DevelopmentCredits (Graduation Credits) are >= MinimumCredits required, 
    //://      as specified by Degree and graduating year.
    //://    - The Student's GPA is >= MinimumGPA, as specified on the Degree Track.
    //:// 3. Classes Not Satisfied (CN)
    //://    - If neither of the above is true.

    //:// The final indication value depends one of the above cases and on the value of the Comprehensive Test Score as follows:
    //:// 1. Requirements Satisfied
    //://    - Courses are Satisfied.
    //://    - The ComprehensiveTestScore value is L, H, D, P, N or R.
    //:// 2. Courses Satisfied, No Comp Results
    //://    - Courses are Satisfied.
    //://    - The ComprehensiveTestScore value is null.
    //:// 3. Courses Satisfied, Failed Comp
    //://    - Courses are Satisfied.
    //://    - The ComprehensiveTestScore value is F.
    //:// 4. Courses on Track, Passed Comp
    //://    - Courses on Track
    //://    - The ComprehensiveTestScore value is L, H, D, P, N or R.
    //:// 5. Courses on Track, No Comp Results
    //://    - Courses on Track
    //://    - The ComprehensiveTestScore value is null.
    //:// 6. Courses on Track, Failed Comp
    //://    - Courses on Track
    //://    - The ComprehensiveTestScore value is F.
    //:// 7. Requirements NOT satisfied
    //://    - If none of the above is true.

    //:// Minimum Credits Required
    //:GET VIEW mDegreeLST NAMED "mDegreeLST"
    RESULT = GetViewByName(mDegreeLST, "mDegreeLST", mDegTrk, zLEVEL_TASK);
    //:IF RESULT < 0
    if (RESULT < 0) {
        //:ACTIVATE mDegreeLST Multiple
        RESULT = ActivateObjectInstance(mDegreeLST, "mDegree", mDegTrk, 0, zMULTIPLE);
        //:NAME VIEW mDegreeLST "mDegreeLST" 
        SetNameForView(mDegreeLST, "mDegreeLST", null, zLEVEL_TASK);
    }

    //:END
    //:IF mStudent.DC_AnticipatedGraduationDate DOES NOT EXIST
    lTempInteger_64 = CheckExistenceOfEntity(mStudent, "DC_AnticipatedGraduationDate");
    if (lTempInteger_64 != 0) {
        //:MinCreditsRequired = 124
        MinCreditsRequired = 124;
        //:ELSE
    } else {
        //:szWorkDate = mStudent.DC_AnticipatedGraduationDate.Date 
        {
            MutableInt mi_lTempInteger_65 = new MutableInt(lTempInteger_65);
            StringBuilder sb_szWorkDate;
            if (szWorkDate == null)
                sb_szWorkDate = new StringBuilder(32);
            else
                sb_szWorkDate = new StringBuilder(szWorkDate);
            GetVariableFromAttribute(sb_szWorkDate, mi_lTempInteger_65, 'S', 9, mStudent,
                    "DC_AnticipatedGraduationDate", "Date", "", 0);
            lTempInteger_65 = mi_lTempInteger_65.intValue();
            szWorkDate = sb_szWorkDate.toString();
        }
        //:szWorkYear = szWorkDate
        {
            StringBuilder sb_szWorkYear;
            if (szWorkYear == null)
                sb_szWorkYear = new StringBuilder(32);
            else
                sb_szWorkYear = new StringBuilder(szWorkYear);
            ZeidonStringCopy(sb_szWorkYear, 1, 0, szWorkDate, 1, 0, 5);
            szWorkYear = sb_szWorkYear.toString();
        }
        //:SET CURSOR FIRST mDegreeLST.CollegeDegree WHERE mDegreeLST.CollegeDegree.ID = mStudent.DegreeTrackCollegeDegree.ID 
        {
            MutableInt mi_lTempInteger_66 = new MutableInt(lTempInteger_66);
            GetIntegerFromAttribute(mi_lTempInteger_66, mStudent, "DegreeTrackCollegeDegree", "ID");
            lTempInteger_66 = mi_lTempInteger_66.intValue();
        }
        RESULT = mDegreeLST.cursor("CollegeDegree").setFirst("ID", lTempInteger_66).toInt();
        //:SET CURSOR FIRST mDegreeLST.DegreeYearData 
        //:           WHERE mDegreeLST.DegreeYearData.FromYear    <= szWorkYear 
        //:             AND mDegreeLST.DegreeYearData.ThroughYear >= szWorkYear 
        RESULT = mDegreeLST.cursor("DegreeYearData").setFirst().toInt();
        if (RESULT > zCURSOR_UNCHANGED) {
            while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToString(mDegreeLST, "DegreeYearData",
                    "FromYear", szWorkYear) > 0
                    || CompareAttributeToString(mDegreeLST, "DegreeYearData", "ThroughYear", szWorkYear) < 0)) {
                RESULT = mDegreeLST.cursor("DegreeYearData").setNextContinue().toInt();
                ;
            }

        }

        //:IF RESULT < zCURSOR_SET
        if (RESULT < zCURSOR_SET) {
            //:MinCreditsRequired = 124
            MinCreditsRequired = 124;
            //:ELSE
        } else {
            //:MinCreditsRequired = mDegreeLST.DegreeYearData.MinimumCreditsRequired 
            {
                MutableDouble md_MinCreditsRequired = new MutableDouble(MinCreditsRequired);
                GetDecimalFromAttribute(md_MinCreditsRequired, mDegreeLST, "DegreeYearData",
                        "MinimumCreditsRequired");
                MinCreditsRequired = md_MinCreditsRequired.doubleValue();
            }
        }

        //:END 
    }

    //:END
    //:mDegTrk.DegreeTrack.wMinimumCreditsRequired = MinCreditsRequired
    SetAttributeFromDecimal(mDegTrk, "DegreeTrack", "wMinimumCreditsRequired", MinCreditsRequired);

    //:// Set summary attributes in DegreeTrack.
    //:mDegTrk.DegreeTrack.AuditTotalCreditsEarned       = lTrnscpt.Student.dEarnedCredits 
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditTotalCreditsEarned", lTrnscpt, "Student",
            "dEarnedCredits");
    //:mDegTrk.DegreeTrack.AuditDevelopmentalCredits     = mDegTrk.DegreeTrack.dDevelopmentalCredits 
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditDevelopmentalCredits", mDegTrk, "DegreeTrack",
            "dDevelopmentalCredits");
    //:mDegTrk.DegreeTrack.AuditEnrolledCredits          = mStudenC.Student.dEnrolledCredits 
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditEnrolledCredits", mStudenC, "Student",
            "dEnrolledCredits");
    //:mDegTrk.DegreeTrack.AuditGraduationCredits        = mDegTrk.DegreeTrack.dGraduationCredits
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditGraduationCredits", mDegTrk, "DegreeTrack",
            "dGraduationCredits");
    //:mDegTrk.DegreeTrack.AuditEnrolledCreditsRepeating = mStudenC.Student.dEnrolledCreditsRepeated 
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditEnrolledCreditsRepeating", mStudenC, "Student",
            "dEnrolledCreditsRepeated");
    //:mDegTrk.DegreeTrack.AuditPreTransferCredits       = mStudenC.Student.dPreTransferCredits 
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditPreTransferCredits", mStudenC, "Student",
            "dPreTransferCredits");
    //:mDegTrk.DegreeTrack.AuditMinimumCreditsRequired   = mDegTrk.DegreeTrack.wMinimumCreditsRequired 
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditMinimumCreditsRequired", mDegTrk, "DegreeTrack",
            "wMinimumCreditsRequired");
    //:mDegTrk.DegreeTrack.AuditGPA                      = lTrnscpt.Student.dGradePointAverage 
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditGPA", lTrnscpt, "Student", "dGradePointAverage");
    //:mDegTrk.DegreeTrack.AuditMajorGPA                 = mStudent.StudentMajorDegreeTrack.dMajorGPA
    SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditMajorGPA", mStudent, "StudentMajorDegreeTrack",
            "dMajorGPA");

    //:GraduationCreditsEarned = lTrnscpt.Student.dEarnedCredits - mDegTrk.DegreeTrack.AuditDevelopmentalCredits
    {
        MutableDouble md_dTempDecimal_21 = new MutableDouble(dTempDecimal_21);
        GetDecimalFromAttribute(md_dTempDecimal_21, lTrnscpt, "Student", "dEarnedCredits");
        dTempDecimal_21 = md_dTempDecimal_21.doubleValue();
    }
    {
        MutableDouble md_dTempDecimal_22 = new MutableDouble(dTempDecimal_22);
        GetDecimalFromAttribute(md_dTempDecimal_22, mDegTrk, "DegreeTrack", "AuditDevelopmentalCredits");
        dTempDecimal_22 = md_dTempDecimal_22.doubleValue();
    }
    GraduationCreditsEarned = dTempDecimal_21 - dTempDecimal_22;

    //:// Compute Local Institution GPA, which will be the AuiditGPA from a copy of the Transcript without
    //:// transfer entries. Thus, if there are not transfer entries, it will be the normal AuditGPA.
    //:SET CURSOR FIRST lTrnscpt.Registration WHERE lTrnscpt.Registration.Status = "F" OR lTrnscpt.Registration.Status = "X"
    RESULT = lTrnscpt.cursor("Registration").setFirst().toInt();
    if (RESULT > zCURSOR_UNCHANGED) {
        while (RESULT > zCURSOR_UNCHANGED
                && (CompareAttributeToString(lTrnscpt, "Registration", "Status", "F") != 0
                        && CompareAttributeToString(lTrnscpt, "Registration", "Status", "X") != 0)) {
            RESULT = lTrnscpt.cursor("Registration").setNextContinue().toInt();
            ;
        }

    }

    //:IF RESULT >= zCURSOR_SET
    if (RESULT >= zCURSOR_SET) {
        //:// There are transfer records, so create a copy of the transcript and eliminate transfer records.
        //:ActivateOI_FromOI( lTrnscptT, lTrnscpt, zSINGLE )
        ActivateOI_FromOI(lTrnscptT, lTrnscpt, zSINGLE);
        //:FOR EACH lTrnscptT.PrintGroup 
        RESULT = lTrnscptT.cursor("PrintGroup").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:DropEntity( lTrnscptT, "PrintGroup", zREPOS_NONE )
            DropEntity(lTrnscptT, "PrintGroup", zREPOS_NONE);
            RESULT = lTrnscptT.cursor("PrintGroup").setNextContinue().toInt();
            ;
        }

        //:END
        //:FOR EACH lTrnscptT.TranscriptGroup 
        RESULT = lTrnscptT.cursor("TranscriptGroup").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF lTrnscptT.TranscriptGroup.wRecordType = "T"
            if (CompareAttributeToString(lTrnscptT, "TranscriptGroup", "wRecordType", "T") == 0) {
                //:DropEntity( lTrnscptT, "TranscriptGroup", zREPOS_NONE )
                DropEntity(lTrnscptT, "TranscriptGroup", zREPOS_NONE);
            }

            RESULT = lTrnscptT.cursor("TranscriptGroup").setNextContinue().toInt();
            ;
            //:END
        }

        //:END
        //:BuildPrintGroup( lTrnscptT )
        {
            lTrnscpt_Object m_lTrnscpt_Object = new lTrnscpt_Object(lTrnscptT);
            m_lTrnscpt_Object.olTrnscpt_BuildPrintGroup(lTrnscptT);
            // m_lTrnscpt_Object = null;  // permit gc  (unnecessary)
        }
        //:mDegTrk.DegreeTrack.AuditLocalCollegeGPA = lTrnscptT.Student.dGradePointAverage
        SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditLocalCollegeGPA", lTrnscptT, "Student",
                "dGradePointAverage");
        //:DropObjectInstance( lTrnscptT )
        DropObjectInstance(lTrnscptT);
        //:ELSE
    } else {
        //:// There are not transfer records, so use AuditGPA.
        //:mDegTrk.DegreeTrack.AuditLocalCollegeGPA = mDegTrk.DegreeTrack.AuditGPA 
        SetAttributeFromAttribute(mDegTrk, "DegreeTrack", "AuditLocalCollegeGPA", mDegTrk, "DegreeTrack",
                "AuditGPA");
    }

    //:END

    //:// Minimum GPA
    //:IF mDegTrk.DegreeTrack.MinimumGPA = ""
    if (CompareAttributeToString(mDegTrk, "DegreeTrack", "MinimumGPA", "") == 0) {
        //:MessageSend( mDegTrk, "", "Degree Audit", 
        //:             "Minimum GPA is not set for the Degree Track. '2.0' will be used.",
        //:             zMSGQ_OBJECT_CONSTRAINT_WARNING, 0 )
        MessageSend(mDegTrk, "", "Degree Audit",
                "Minimum GPA is not set for the Degree Track. '2.0' will be used.",
                zMSGQ_OBJECT_CONSTRAINT_WARNING, 0);
        //:MinimumGPA = 2.0
        MinimumGPA = 2.0;
        //:ELSE
    } else {
        //:MinimumGPA = mDegTrk.DegreeTrack.MinimumGPA
        {
            MutableDouble md_MinimumGPA = new MutableDouble(MinimumGPA);
            GetDecimalFromAttribute(md_MinimumGPA, mDegTrk, "DegreeTrack", "MinimumGPA");
            MinimumGPA = md_MinimumGPA.doubleValue();
        }
    }

    //:END

    //:SET CURSOR FIRST mDegTrk.RequiredGroup WITHIN mDegTrk.DegreeTrack 
    //:           WHERE mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "N" OR
    //:                 mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "T"
    RESULT = mDegTrk.cursor("RequiredGroup").setFirst("DegreeTrack").toInt();
    if (RESULT > zCURSOR_UNCHANGED) {
        while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToString(mDegTrk, "RequiredGroup",
                "wDegreeAuditSatisfied", "N") != 0
                && CompareAttributeToString(mDegTrk, "RequiredGroup", "wDegreeAuditSatisfied", "T") != 0)) {
            RESULT = mDegTrk.cursor("RequiredGroup").setNextContinue().toInt();
            ;
        }

    }

    //:IF RESULT < zCURSOR_SET AND    // All group requirements are met as Completed
    //:   GraduationCreditsEarned >= MinCreditsRequired AND 
    //:   lTrnscpt.Student.dGradePointAverage >= MinimumGPA
    if (RESULT < zCURSOR_SET && GraduationCreditsEarned >= MinCreditsRequired
            && CompareAttributeToDecimal(lTrnscpt, "Student", "dGradePointAverage", MinimumGPA) >= 0) {

        //:mDegTrk.DegreeTrack.wDegreeAuditSatisfiedDescription = "Courses SATISFIED"
        SetAttributeFromString(mDegTrk, "DegreeTrack", "wDegreeAuditSatisfiedDescription", "Courses SATISFIED");
        //:ELSE
    } else {
        //:SET CURSOR FIRST mDegTrk.RequiredGroup WITHIN mDegTrk.DegreeTrack 
        //:           WHERE mDegTrk.RequiredGroup.wDegreeAuditSatisfied = "N" 
        RESULT = mDegTrk.cursor("RequiredGroup").setFirst("wDegreeAuditSatisfied", "N", "DegreeTrack").toInt();
        //:IF RESULT < zCURSOR_SET AND    // All group requirements are met as Taken or Completed
        //:   mDegTrk.DegreeTrack.AuditGraduationCredits >= MinCreditsRequired AND 
        //:   lTrnscpt.Student.dGradePointAverage >= MinimumGPA
        if (RESULT < zCURSOR_SET
                && CompareAttributeToDecimal(mDegTrk, "DegreeTrack", "AuditGraduationCredits",
                        MinCreditsRequired) >= 0
                && CompareAttributeToDecimal(lTrnscpt, "Student", "dGradePointAverage", MinimumGPA) >= 0) {

            //:mDegTrk.DegreeTrack.wDegreeAuditSatisfiedDescription = "Courses on Track"
            SetAttributeFromString(mDegTrk, "DegreeTrack", "wDegreeAuditSatisfiedDescription",
                    "Courses on Track");
            //:ELSE
        } else {
            //:mDegTrk.DegreeTrack.wDegreeAuditSatisfiedDescription = "Courses NOT satisfied"
            SetAttributeFromString(mDegTrk, "DegreeTrack", "wDegreeAuditSatisfiedDescription",
                    "Courses NOT satisfied");
        }

        //:END
    }

    //:END

    //:// Make sure the RequiredGroup entries are sequenced.
    //:Count = 0
    Count = 0;
    //:FOR EACH mDegTrk.DegreeTrackRequiredGroup 
    RESULT = mDegTrk.cursor("DegreeTrackRequiredGroup").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:Count = Count + 1
        Count = Count + 1;
        //:mDegTrk.DegreeTrackRequiredGroup.SequenceNumber = Count 
        SetAttributeFromInteger(mDegTrk, "DegreeTrackRequiredGroup", "SequenceNumber", Count);
        RESULT = mDegTrk.cursor("DegreeTrackRequiredGroup").setNextContinue().toInt();
        ;
    }

    //:END

    //:SET CURSOR FIRST mDegTrk.DegreeTrack
    RESULT = mDegTrk.cursor("DegreeTrack").setFirst().toInt();
    //:SetSelectStateOfEntity( mDegTrk, "DegreeTrack", 1 )
    SetSelectStateOfEntity(mDegTrk, "DegreeTrack", 1);
    //:mDegTrk.DegreeTrack.wShowHideToggleStatus = "A"
    SetAttributeFromString(mDegTrk, "DegreeTrack", "wShowHideToggleStatus", "A");

    //:// Set up the copy object for showing and contracting entries.
    //:ActivateOI_FromOI( mDegTrkC, mDegTrk, zSINGLE )
    ActivateOI_FromOI(mDegTrkC, mDegTrk, zSINGLE);
    //:NAME VIEW mDegTrkC "mDegTrkCopy"
    SetNameForView(mDegTrkC, "mDegTrkCopy", null, zLEVEL_TASK);

    //:DropObjectInstance( mStudenC )
    DropObjectInstance(mStudenC);
    return (0);
    // END
}

From source file:com.quinsoft.zencas.mFAProf_Object.java

public int omFAProf_CreateReturningProfile(View mCurrentFAProf, int nAdminID) {
    zVIEW mFAProf = new zVIEW();
    //:VIEW wXferO    REGISTERED AS wXferO    
    zVIEW wXferO = new zVIEW();
    int RESULT = 0;
    //:VIEW mAdmDiv   REGISTERED AS mAdmDiv
    zVIEW mAdmDiv = new zVIEW();
    //:VIEW mFAStu    BASED ON LOD  mFAStu
    zVIEW mFAStu = new zVIEW();
    //:VIEW mStudenC  BASED ON LOD  mStudenC
    zVIEW mStudenC = new zVIEW();
    //:VIEW mPerson   BASED ON LOD  mPerson
    zVIEW mPerson = new zVIEW();
    //:VIEW mFAProfLAST BASED ON LOD mFAProf
    zVIEW mFAProfLAST = new zVIEW();
    //:VIEW mFAAdmin  BASED ON LOD  mFAAdmin
    zVIEW mFAAdmin = new zVIEW();
    //:VIEW mFANdPro  BASED ON LOD  mFANdPro
    zVIEW mFANdPro = new zVIEW();
    //:VIEW mFARuleS  BASED ON LOD  mFARuleS
    zVIEW mFARuleS = new zVIEW();
    //:VIEW lTermLST  BASED ON LOD  lTermLST
    zVIEW lTermLST = new zVIEW();
    //:STRING ( 127) szString
    String szString = null;/*from  w w  w  .j a va 2  s.com*/
    //:STRING ( 18 ) szDate
    String szDate = null;
    //:STRING ( 18 ) szBeginDate
    String szBeginDate = null;
    //:STRING ( 18 ) szEndDate
    String szEndDate = null;
    //:STRING ( 18 ) szYear
    String szYear = null;
    //:STRING ( 18 ) szTerm
    String szTerm = null;
    //:DECIMAL nTotalReg
    double nTotalReg = 0.0;
    //:DECIMAL TotalAwardAmount
    double TotalAwardAmount = 0.0;
    //:INTEGER nFound
    int nFound = 0;
    //:INTEGER nRC
    int nRC = 0;
    //:INTEGER nID
    int nID = 0;
    //:INTEGER nDropmStudenC
    int nDropmStudenC = 0;
    zVIEW vTempViewVar_0 = new zVIEW();
    int lTempInteger_0 = 0;
    zVIEW vTempViewVar_1 = new zVIEW();
    int lTempInteger_1 = 0;
    zVIEW vTempViewVar_2 = new zVIEW();
    int lTempInteger_2 = 0;
    zVIEW vTempViewVar_3 = new zVIEW();
    int lTempInteger_3 = 0;
    zVIEW vTempViewVar_4 = new zVIEW();
    int lTempInteger_4 = 0;
    zVIEW vTempViewVar_5 = new zVIEW();
    int lTempInteger_5 = 0;
    int lTempInteger_6 = 0;
    zVIEW vTempViewVar_6 = new zVIEW();
    int lTempInteger_7 = 0;
    double dTempDecimal_0 = 0.0;
    int lTempInteger_8 = 0;
    int lTempInteger_9 = 0;
    double dTempDecimal_1 = 0.0;
    int lTempInteger_10 = 0;

    RESULT = GetViewByName(wXferO, "wXferO", mCurrentFAProf, zLEVEL_TASK);
    RESULT = GetViewByName(mAdmDiv, "mAdmDiv", mCurrentFAProf, zLEVEL_TASK);
    //: 
    //:nTotalReg = 0
    nTotalReg = 0;
    //:nFound = 0
    nFound = 0;
    //:szYear = ""
    {
        StringBuilder sb_szYear;
        if (szYear == null)
            sb_szYear = new StringBuilder(32);
        else
            sb_szYear = new StringBuilder(szYear);
        ZeidonStringCopy(sb_szYear, 1, 0, "", 1, 0, 19);
        szYear = sb_szYear.toString();
    }

    //:ACTIVATE mFAAdmin  
    //:   WHERE mFAAdmin.FinAidAdmin.ID = nAdminID 
    omFAProf_fnLocalBuildQual_11(mCurrentFAProf, vTempViewVar_0, nAdminID);
    RESULT = ActivateObjectInstance(mFAAdmin, "mFAAdmin", mCurrentFAProf, vTempViewVar_0, zSINGLE);
    DropView(vTempViewVar_0);

    //:IF RESULT < 0 
    if (RESULT < 0) {
        //:IssueError( mAdmDiv, 0,0, "Invalid Year ID" )
        IssueError(mAdmDiv, 0, 0, "Invalid Year ID");
        //:RETURN -1
        if (8 == 8)
            return (-1);
    }

    //:END 

    //:ACTIVATE mPerson 
    //:   WHERE mPerson.Person.ID = mCurrentFAProf.Person.ID 
    {
        MutableInt mi_lTempInteger_0 = new MutableInt(lTempInteger_0);
        GetIntegerFromAttribute(mi_lTempInteger_0, mCurrentFAProf, "Person", "ID");
        lTempInteger_0 = mi_lTempInteger_0.intValue();
    }
    omFAProf_fnLocalBuildQual_12(mCurrentFAProf, vTempViewVar_1, lTempInteger_0);
    RESULT = ActivateObjectInstance(mPerson, "mPerson", mCurrentFAProf, vTempViewVar_1, zSINGLE);
    DropView(vTempViewVar_1);

    //:ACTIVATE mFAStu
    //:   WHERE mFAStu.Student.ID = mCurrentFAProf.Student.ID 
    {
        MutableInt mi_lTempInteger_1 = new MutableInt(lTempInteger_1);
        GetIntegerFromAttribute(mi_lTempInteger_1, mCurrentFAProf, "Student", "ID");
        lTempInteger_1 = mi_lTempInteger_1.intValue();
    }
    omFAProf_fnLocalBuildQual_13(mCurrentFAProf, vTempViewVar_2, lTempInteger_1);
    RESULT = ActivateObjectInstance(mFAStu, "mFAStu", mCurrentFAProf, vTempViewVar_2, zSINGLE);
    DropView(vTempViewVar_2);

    //:ACTIVATE mFANdPro MULTIPLE 
    //:   WHERE mFANdPro.AdministrativeDivision.ID = mAdmDiv.AdministrativeDivision.ID 
    {
        MutableInt mi_lTempInteger_2 = new MutableInt(lTempInteger_2);
        GetIntegerFromAttribute(mi_lTempInteger_2, mAdmDiv, "AdministrativeDivision", "ID");
        lTempInteger_2 = mi_lTempInteger_2.intValue();
    }
    omFAProf_fnLocalBuildQual_14(mCurrentFAProf, vTempViewVar_3, lTempInteger_2);
    RESULT = ActivateObjectInstance(mFANdPro, "mFANdPro", mCurrentFAProf, vTempViewVar_3, zMULTIPLE);
    DropView(vTempViewVar_3);

    //:SET CURSOR FIRST mPerson.FinAidProfile 
    //:   WHERE mPerson.CollegeYear.ID = mFAAdmin.CollegeYear.ID 
    RESULT = mPerson.cursor("FinAidProfile").setFirst().toInt();
    if (RESULT > zCURSOR_UNCHANGED) {
        while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToAttribute(mPerson, "CollegeYear", "ID",
                mFAAdmin, "CollegeYear", "ID") != 0)) {
            RESULT = mPerson.cursor("FinAidProfile").setNextContinue().toInt();
            ;
        }

    }

    //:IF RESULT >= zCURSOR_SET 
    if (RESULT >= zCURSOR_SET) {
        //:ACTIVATE mFAProf 
        //:   WHERE mFAProf.FinAidProfile.ID = mPerson.FinAidProfile.ID 
        {
            MutableInt mi_lTempInteger_3 = new MutableInt(lTempInteger_3);
            GetIntegerFromAttribute(mi_lTempInteger_3, mPerson, "FinAidProfile", "ID");
            lTempInteger_3 = mi_lTempInteger_3.intValue();
        }
        omFAProf_fnLocalBuildQual_15(mCurrentFAProf, vTempViewVar_4, lTempInteger_3);
        RESULT = ActivateObjectInstance(mFAProf, "mFAProf", mCurrentFAProf, vTempViewVar_4, zSINGLE);
        DropView(vTempViewVar_4);
        //:ELSE 
    } else {
        //:ACTIVATE mFAProf EMPTY
        RESULT = ActivateEmptyObjectInstance(mFAProf, "mFAProf", mCurrentFAProf, zSINGLE);
        //:CREATE ENTITY mFAProf.FinAidProfile 
        RESULT = CreateEntity(mFAProf, "FinAidProfile", zPOS_AFTER);
        //://n IF mPerson.CurrentFinAidProfile EXISTS 
        //://n    EXCLUDE mPerson.CurrentFinAidProfile   
        //://n END
        //://n IF mFAProf.CurrentPerson EXISTS 
        //://n    EXCLUDE mFAProf.CurrentPerson  
        //://n END

        //:INCLUDE mFAProf.Person         FROM mPerson.Person
        RESULT = IncludeSubobjectFromSubobject(mFAProf, "Person", mPerson, "Person", zPOS_AFTER);
        //://n INCLUDE mFAProf.CurrentPerson  FROM mPerson.Person
        //:INCLUDE mFAProf.FinAidAdmin    FROM mFAAdmin.FinAidAdmin 
        RESULT = IncludeSubobjectFromSubobject(mFAProf, "FinAidAdmin", mFAAdmin, "FinAidAdmin", zPOS_AFTER);
    }

    //:END

    //:// The following 4 lines were delete by DonC on 3/11/11 because they often created an erroneous FinAidProfile without Periods and
    //:// the code did not seem to be necessary.
    //://COMMIT mFAProf
    //://nID = mFAProf.FinAidProfile.ID
    //://DropView( mFAProf )
    //://ACTIVATE  mFAProf WHERE mFAProf.FinAidProfile.ID = nID 

    //:IF mFAStu.Student.CurrentLevel = "1" OR mFAStu.Student.CurrentLevel = "8"
    if (CompareAttributeToString(mFAStu, "Student", "CurrentLevel", "1") == 0
            || CompareAttributeToString(mFAStu, "Student", "CurrentLevel", "8") == 0) {
        //:mFAProf.FinAidProfile.AnticipatedClassification = "2"
        SetAttributeFromString(mFAProf, "FinAidProfile", "AnticipatedClassification", "2");
        //:ELSE    
    } else {
        //:IF mFAStu.Student.CurrentLevel = "2" 
        if (CompareAttributeToString(mFAStu, "Student", "CurrentLevel", "2") == 0) {
            //:mFAProf.FinAidProfile.AnticipatedClassification = "3"
            SetAttributeFromString(mFAProf, "FinAidProfile", "AnticipatedClassification", "3");
            //:ELSE 
        } else {
            //:IF mFAStu.Student.CurrentLevel = "3" 
            if (CompareAttributeToString(mFAStu, "Student", "CurrentLevel", "3") == 0) {
                //:mFAProf.FinAidProfile.AnticipatedClassification = "4"
                SetAttributeFromString(mFAProf, "FinAidProfile", "AnticipatedClassification", "4");
                //:ELSE 
            } else {
                //:mFAProf.FinAidProfile.AnticipatedClassification = mFAStu.Student.CurrentLevel 
                SetAttributeFromAttribute(mFAProf, "FinAidProfile", "AnticipatedClassification", mFAStu,
                        "Student", "CurrentLevel");
            }

            //:END 
        }

        //:END 
    }

    //:END 

    //:// if this is for a student, do the work on the profile object 
    //://   not the student object.
    //:ACTIVATE  mStudenC  
    //:   WHERE  mStudenC.Student.ID = mPerson.Student.ID 
    {
        MutableInt mi_lTempInteger_4 = new MutableInt(lTempInteger_4);
        GetIntegerFromAttribute(mi_lTempInteger_4, mPerson, "Student", "ID");
        lTempInteger_4 = mi_lTempInteger_4.intValue();
    }
    omFAProf_fnLocalBuildQual_16(mCurrentFAProf, vTempViewVar_5, lTempInteger_4);
    RESULT = ActivateObjectInstance(mStudenC, "mStudenC", mCurrentFAProf, vTempViewVar_5, zSINGLE);
    DropView(vTempViewVar_5);
    //:SET CURSOR FIRST mStudenC.ScheduleCollegeYear 
    //:   WHERE mStudenC.ScheduleCollegeYear.ID = mFAAdmin.CollegeYear.ID 
    {
        MutableInt mi_lTempInteger_5 = new MutableInt(lTempInteger_5);
        GetIntegerFromAttribute(mi_lTempInteger_5, mFAAdmin, "CollegeYear", "ID");
        lTempInteger_5 = mi_lTempInteger_5.intValue();
    }
    RESULT = mStudenC.cursor("ScheduleCollegeYear").setFirst("ID", lTempInteger_5).toInt();
    //:IF RESULT < 0
    if (RESULT < 0) {
        //:INCLUDE mStudenC.ScheduleCollegeYear FROM  mFAAdmin.CollegeYear 
        RESULT = IncludeSubobjectFromSubobject(mStudenC, "ScheduleCollegeYear", mFAAdmin, "CollegeYear",
                zPOS_AFTER);
    }

    //:END

    //:GET VIEW lTermLST NAMED "lTermLST"
    RESULT = GetViewByName(lTermLST, "lTermLST", mCurrentFAProf, zLEVEL_TASK);
    //:IF RESULT < 0
    if (RESULT < 0) {
        //:ACTIVATE lTermLST MULTIPLE 
        //:   WHERE lTermLST.CollegeYear.ID = mFAAdmin.CollegeYear.ID // mYearLST.CollegeYear.ID
        {
            MutableInt mi_lTempInteger_6 = new MutableInt(lTempInteger_6);
            GetIntegerFromAttribute(mi_lTempInteger_6, mFAAdmin, "CollegeYear", "ID");
            lTempInteger_6 = mi_lTempInteger_6.intValue();
        }
        omFAProf_fnLocalBuildQual_17(mCurrentFAProf, vTempViewVar_6, lTempInteger_6);
        RESULT = ActivateObjectInstance(lTermLST, "lTermLST", mCurrentFAProf, vTempViewVar_6, zMULTIPLE);
        DropView(vTempViewVar_6);
        //:NAME VIEW lTermLST "lTermLST"
        SetNameForView(lTermLST, "lTermLST", null, zLEVEL_TASK);
    }

    //:END 
    //:      
    //:BuildCurrentSchedule( mStudenC )

    //:nTotalReg = 0
    nTotalReg = 0;
    //:FOR EACH mStudenC.CurrentScheduleEntry 
    RESULT = mStudenC.cursor("CurrentScheduleEntry").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF mStudenC.CurrentClass EXISTS 
        lTempInteger_7 = CheckExistenceOfEntity(mStudenC, "CurrentClass");
        if (lTempInteger_7 == 0) {
            //:// get the largets value as it will be the 
            //:OrderEntityForView( mStudenC, "CurrentClass", "wStudentCreditHours  D" )
            OrderEntityForView(mStudenC, "CurrentClass", "wStudentCreditHours  D");
            //:IF  mStudenC.CurrentClass.ID > 0 // the total lines do not have an ID so jut grab those.
            if (CompareAttributeToInteger(mStudenC, "CurrentClass", "ID", 0) > 0) {
                //:ELSE 
            } else {
                //:nTotalReg = nTotalReg + mStudenC.CurrentClass.wStudentCreditHours 
                {
                    MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                    GetDecimalFromAttribute(md_dTempDecimal_0, mStudenC, "CurrentClass", "wStudentCreditHours");
                    dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                }
                nTotalReg = nTotalReg + dTempDecimal_0;
            }

            //:END
        }

        RESULT = mStudenC.cursor("CurrentScheduleEntry").setNextContinue().toInt();
        ;
        //:END 
    }

    //:END
    //:DropView( mStudenC )
    DropView(mStudenC);
    //:IF nTotalReg = 0
    if (nTotalReg == 0) {
        //:nTotalReg = mFAAdmin.FinAidAdmin.FullTimeMinCredits 
        {
            MutableDouble md_nTotalReg = new MutableDouble(nTotalReg);
            GetDecimalFromAttribute(md_nTotalReg, mFAAdmin, "FinAidAdmin", "FullTimeMinCredits");
            nTotalReg = md_nTotalReg.doubleValue();
        }
    }

    //:END
    //:IF nTotalReg >= mFAAdmin.FinAidAdmin.FullTimeMinCredits 
    if (CompareAttributeToDecimal(mFAAdmin, "FinAidAdmin", "FullTimeMinCredits", nTotalReg) <= 0) {
        //:mFAProf.FinAidProfile.FullPartTime = "F"
        SetAttributeFromString(mFAProf, "FinAidProfile", "FullPartTime", "F");
        //:ELSE 
    } else {
        //:mFAProf.FinAidProfile.FullPartTime = "P"
        SetAttributeFromString(mFAProf, "FinAidProfile", "FullPartTime", "P");
    }

    //:END
    //:mFAProf.FinAidProfile.ExpectedCreditLoad = nTotalReg
    SetAttributeFromDecimal(mFAProf, "FinAidProfile", "ExpectedCreditLoad", nTotalReg);

    //:IF mFAAdmin.AdministrativeDivision.UsesCohortsFlag != "Y" 
    if (CompareAttributeToString(mFAAdmin, "AdministrativeDivision", "UsesCohortsFlag", "Y") != 0) {
        //:IF mFAAdmin.FinAidAdmin.FullTimeCalculated = "S" 
        //:      OR mFAAdmin.FinAidAdmin.FullTimeCalculated = "Q"
        if (CompareAttributeToString(mFAAdmin, "FinAidAdmin", "FullTimeCalculated", "S") == 0
                || CompareAttributeToString(mFAAdmin, "FinAidAdmin", "FullTimeCalculated", "Q") == 0) {
            //:FOR EACH mFAAdmin.FinAidAwardPeriod 
            RESULT = mFAAdmin.cursor("FinAidAwardPeriod").setFirst().toInt();
            while (RESULT > zCURSOR_UNCHANGED) {
                //:CREATE ENTITY mFAProf.PerProfileFinAidAwardPeriod 
                RESULT = CreateEntity(mFAProf, "PerProfileFinAidAwardPeriod", zPOS_AFTER);
                //:mFAProf.PerProfileFinAidAwardPeriod.PeriodDesignator = mFAAdmin.FinAidAwardPeriod.PeriodDesignator 
                SetAttributeFromAttribute(mFAProf, "PerProfileFinAidAwardPeriod", "PeriodDesignator", mFAAdmin,
                        "FinAidAwardPeriod", "PeriodDesignator");
                //:mFAProf.PerProfileFinAidAwardPeriod.BeginDate = mFAAdmin.FinAidAwardPeriod.BeginDate 
                SetAttributeFromAttribute(mFAProf, "PerProfileFinAidAwardPeriod", "BeginDate", mFAAdmin,
                        "FinAidAwardPeriod", "BeginDate");
                //:mFAProf.PerProfileFinAidAwardPeriod.EndDate = mFAAdmin.FinAidAwardPeriod.EndDate 
                SetAttributeFromAttribute(mFAProf, "PerProfileFinAidAwardPeriod", "EndDate", mFAAdmin,
                        "FinAidAwardPeriod", "EndDate");
                //:FOR EACH mFAAdmin.DisbCollegeTerm
                RESULT = mFAAdmin.cursor("DisbCollegeTerm").setFirst().toInt();
                while (RESULT > zCURSOR_UNCHANGED) {
                    //:INCLUDE mFAProf.CollegeTerm FROM mFAAdmin.DisbCollegeTerm 
                    RESULT = IncludeSubobjectFromSubobject(mFAProf, "CollegeTerm", mFAAdmin, "DisbCollegeTerm",
                            zPOS_AFTER);
                    RESULT = mFAAdmin.cursor("DisbCollegeTerm").setNextContinue().toInt();
                    ;
                }

                RESULT = mFAAdmin.cursor("FinAidAwardPeriod").setNextContinue().toInt();
                ;
                //:END 
            }

            //:END
        }

        //:END
        //:ELSE 
    } else {
        //:FOR EACH mFAAdmin.FinAidAwardPeriod 
        RESULT = mFAAdmin.cursor("FinAidAwardPeriod").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:CREATE ENTITY mFAProf.PerProfileFinAidAwardPeriod 
            RESULT = CreateEntity(mFAProf, "PerProfileFinAidAwardPeriod", zPOS_AFTER);
            //:mFAProf.PerProfileFinAidAwardPeriod.PeriodDesignator = mFAAdmin.FinAidAwardPeriod.PeriodDesignator 
            SetAttributeFromAttribute(mFAProf, "PerProfileFinAidAwardPeriod", "PeriodDesignator", mFAAdmin,
                    "FinAidAwardPeriod", "PeriodDesignator");
            RESULT = mFAAdmin.cursor("FinAidAwardPeriod").setNextContinue().toInt();
            ;
        }

        //:END
    }

    //:END

    //:   
    //:// set up the disb periods
    //:/*IF mFAAdmin.FinAidAdmin.FullTimeCalculated = "S" 
    //:      OR mFAAdmin.FinAidAdmin.FullTimeCalculated = "Q"
    //:   FOR EACH mFAAdmin.FinAidAwardPeriod 
    //:      SET CURSOR FIRST  mFAProf.PerProfileFinAidAwardPeriod 
    //:         WHERE mFAProf.PerProfileFinAidAwardPeriod.PeriodDesignator = mFAAdmin.FinAidAwardPeriod.PeriodDesignator 
    //:      IF RESULT < zCURSOR_SET  
    //:         SET CURSOR LAST mFAProf.PerProfileFinAidAwardPeriod 
    //:         CREATE ENTITY mFAProf.PerProfileFinAidAwardPeriod 
    //:         mFAProf.PerProfileFinAidAwardPeriod.PeriodDesignator = mFAAdmin.FinAidAwardPeriod.PeriodDesignator 
    //:         mFAProf.PerProfileFinAidAwardPeriod.BeginDate = mFAAdmin.FinAidAwardPeriod.BeginDate 
    //:         mFAProf.PerProfileFinAidAwardPeriod.EndDate = mFAAdmin.FinAidAwardPeriod.EndDate 
    //:         FOR EACH mFAAdmin.DisbCollegeTerm
    //:            INCLUDE mFAProf.CollegeTerm FROM mFAAdmin.DisbCollegeTerm 
    //:         END 
    //:         IF mAdmDiv.AdministrativeDivision.UsesCohortsFlag = "Y" 
    //:            szBeginDate = mFAProf.PerProfileFinAidAwardPeriod.BeginDate 
    //:            szEndDate = mFAProf.PerProfileFinAidAwardPeriod.EndDate 
    //:            OrderEntityForView( mFAProf, "Enrolled", "Class.ClassStartDate A" )
    //:            FOR EACH mFAProf.Enrolled
    //:               WHERE mFAProf.Class.ClassStartDate >= szBeginDate
    //:                 AND mFAProf.Class.ClassStartDate <= szEndDate
    //:               INCLUDE mFAProf.PeriodEnrolled  FROM mFAProf.Enrolled 
    //:            END
    //:         END
    //:      END
    //:   END
    //:END*/

    //:mFAProf.FinAidProfile.DependencyStatus = "D"
    SetAttributeFromString(mFAProf, "FinAidProfile", "DependencyStatus", "D");
    //:szDate = wXferO.Root.dCurrentDate 
    {
        MutableInt mi_lTempInteger_8 = new MutableInt(lTempInteger_8);
        StringBuilder sb_szDate;
        if (szDate == null)
            sb_szDate = new StringBuilder(32);
        else
            sb_szDate = new StringBuilder(szDate);
        GetVariableFromAttribute(sb_szDate, mi_lTempInteger_8, 'S', 19, wXferO, "Root", "dCurrentDate", "", 0);
        lTempInteger_8 = mi_lTempInteger_8.intValue();
        szDate = sb_szDate.toString();
    }
    //:mFAProf.FinAidProfile.DependencyStatus = mCurrentFAProf.FinAidProfile.DependencyStatus
    SetAttributeFromAttribute(mFAProf, "FinAidProfile", "DependencyStatus", mCurrentFAProf, "FinAidProfile",
            "DependencyStatus");
    //:mFAProf.FinAidProfile.ResidencyStatus  = mCurrentFAProf.FinAidProfile.ResidencyStatus
    SetAttributeFromAttribute(mFAProf, "FinAidProfile", "ResidencyStatus", mCurrentFAProf, "FinAidProfile",
            "ResidencyStatus");
    //:mFAProf.FinAidProfile.MasterPromissorySignedDate = mCurrentFAProf.FinAidProfile.MasterPromissorySignedDate
    SetAttributeFromAttribute(mFAProf, "FinAidProfile", "MasterPromissorySignedDate", mCurrentFAProf,
            "FinAidProfile", "MasterPromissorySignedDate");

    //:IF mFAProf.FinAidProfile.ResidencyStatus = ""
    if (CompareAttributeToString(mFAProf, "FinAidProfile", "ResidencyStatus", "") == 0) {
        //:mFAProf.FinAidProfile.ResidencyStatus = "R" 
        SetAttributeFromString(mFAProf, "FinAidProfile", "ResidencyStatus", "R");
    }

    //:END

    //:// Deleted by DonC on 3/16/2010
    //:/*IF mFAProf.FinAidCOAItemAssigned DOES NOT EXIST
    //:   FOR EACH mFANdPro.FinAidCOA
    //:      IF nFound = 0 
    //:         IF mFANdPro.QualifyingFinAidRuleSet EXISTS 
    //:            ACTIVATE mFARuleS 
    //:               WHERE mFARuleS.FinAidRuleSet.ID = mFANdPro.QualifyingFinAidRuleSet.ID 
    //:            IF RESULT >= 0 
    //:               nRC = QualifyRuleSet( mFARuleS, mFAProf, 0, mPerson )
    //:               IF  nRC > 0
    //:                  // Include each selected Requirement into the target FinAid Track.
    //:                  FOR EACH mFANdPro.FinAidCOAItem   
    //:                     CREATE ENTITY  mFAProf.FinAidCOAItemAssigned  
    //:                     INCLUDE mFAProf.FinAidCOAItem  FROM mFANdPro.FinAidCOAItem
    //:                     mFAProf.FinAidCOAItemAssigned.RevenueAmount = mFAProf.FinAidCOAItem.FixedRevenueAmount  
    //:                  END 
    //:                  nFound = 1
    //:                  SET CURSOR LAST mFANdPro.FinAidCOA
    //:               END 
    //:            END 
    //:            DropView( mFARuleS ) 
    //:         END
    //:      END
    //:   END
    //:END*/

    //:IF mFAProf.FinAidTrack DOES NOT EXIST 
    lTempInteger_9 = CheckExistenceOfEntity(mFAProf, "FinAidTrack");
    if (lTempInteger_9 != 0) {
        //:// If a default Admission Track exists, include it here and initial Admissions Requirements.
        //:SET CURSOR FIRST mAdmDiv.FinAidTrack 
        //:           WHERE mAdmDiv.FinAidTrack.DefaultFlag = "Y" 
        //:             AND mAdmDiv.FinAidTrack.ActiveFlag  = "Y" 
        RESULT = mAdmDiv.cursor("FinAidTrack").setFirst().toInt();
        if (RESULT > zCURSOR_UNCHANGED) {
            while (RESULT > zCURSOR_UNCHANGED
                    && (CompareAttributeToString(mAdmDiv, "FinAidTrack", "DefaultFlag", "Y") != 0
                            || CompareAttributeToString(mAdmDiv, "FinAidTrack", "ActiveFlag", "Y") != 0)) {
                RESULT = mAdmDiv.cursor("FinAidTrack").setNextContinue().toInt();
                ;
            }

        }

        //:IF RESULT >= zCURSOR_SET 
        if (RESULT >= zCURSOR_SET) {
            //:INCLUDE mFAProf.FinAidTrack    FROM mAdmDiv.FinAidTrack 
            RESULT = IncludeSubobjectFromSubobject(mFAProf, "FinAidTrack", mAdmDiv, "FinAidTrack", zPOS_AFTER);
        }

        //:END 
    }

    //:END
    //:// apply awards
    //:FOR EACH mCurrentFAProf.FinAidAward 
    RESULT = mCurrentFAProf.cursor("FinAidAward").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:/*IF mCurrentFAProf.FinAidAward.Amount = ""
        //:   AddReturningAward( mFAProf, mCurrentFAProf.FinAidSource.ID, mCurrentFAProf.FinAidAward.AmountOffered )
        //:ELSE
        //:   AddReturningAward( mFAProf, mCurrentFAProf.FinAidSource.ID, mCurrentFAProf.FinAidAward.Amount )
        //:END*/

        //:// We will determine the award as the total of the original award disbursements.
        //:TotalAwardAmount = 0
        TotalAwardAmount = 0;
        //:FOR EACH mCurrentFAProf.FinAidAwardDisbursement 
        RESULT = mCurrentFAProf.cursor("FinAidAwardDisbursement").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:TotalAwardAmount = TotalAwardAmount + mCurrentFAProf.FinAidAwardDisbursement.OriginalAmountExpected 
            {
                MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                GetDecimalFromAttribute(md_dTempDecimal_1, mCurrentFAProf, "FinAidAwardDisbursement",
                        "OriginalAmountExpected");
                dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
            }
            TotalAwardAmount = TotalAwardAmount + dTempDecimal_1;
            RESULT = mCurrentFAProf.cursor("FinAidAwardDisbursement").setNextContinue().toInt();
            ;
        }

        //:END

        //:AddReturningAward( mFAProf, mCurrentFAProf.FinAidSource.ID, TotalAwardAmount )
        {
            MutableInt mi_lTempInteger_10 = new MutableInt(lTempInteger_10);
            GetIntegerFromAttribute(mi_lTempInteger_10, mCurrentFAProf, "FinAidSource", "ID");
            lTempInteger_10 = mi_lTempInteger_10.intValue();
        }
        omFAProf_AddReturningAward(mFAProf, lTempInteger_10, TotalAwardAmount);
        RESULT = mCurrentFAProf.cursor("FinAidAward").setNextContinue().toInt();
        ;
    }

    //:END

    //:NAME VIEW  mFAProf  "mReturningFAProf"  
    SetNameForView(mFAProf, "mReturningFAProf", null, zLEVEL_TASK);
    //:DropView( mFAAdmin )
    DropView(mFAAdmin);
    //:DropView( mFANdPro )
    DropView(mFANdPro);
    return (0);
    // END
}

From source file:com.quinsoft.zencas.lTrnscpt_Object.java

public int olTrnscpt_BuildPrintGroup(View lTrnscpt) {
    String szAttemptedCredits = null;
    //:STRING ( 10 ) szAttemptedCreditsOrig
    String szAttemptedCreditsOrig = null;
    //:STRING ( 20 ) szFinalGrade
    String szFinalGrade = null;/*from ww  w  .j  ava  2  s. com*/
    //:STRING ( 1 )  szGPA_PointsTwoDecimalDigitsFlag
    String szGPA_PointsTwoDecimalDigitsFlag = null;
    //:DECIMAL GPA_Points
    double GPA_Points = 0.0;
    //:DECIMAL GPA_Divisor
    double GPA_Divisor = 0.0;
    //:DECIMAL TermAttemptedCredits
    double TermAttemptedCredits = 0.0;
    //:DECIMAL TermEarnedCredits
    double TermEarnedCredits = 0.0;
    //:DECIMAL TermGPA_Points
    double TermGPA_Points = 0.0;
    //:DECIMAL TermGPA_Divisor
    double TermGPA_Divisor = 0.0;
    //:DECIMAL TermGPA
    double TermGPA = 0.0;
    //:DECIMAL CumulativeAttemptedCredits
    double CumulativeAttemptedCredits = 0.0;
    //:DECIMAL CumulativeEarnedCredits
    double CumulativeEarnedCredits = 0.0;
    //:DECIMAL CumulativeGPA_Points
    double CumulativeGPA_Points = 0.0;
    //:DECIMAL CumulativeGPA_Divisor
    double CumulativeGPA_Divisor = 0.0;
    //:DECIMAL CumulativeGPA
    double CumulativeGPA = 0.0;
    //:DECIMAL CreditHours
    double CreditHours = 0.0;
    //:DECIMAL FinalGrade
    double FinalGrade = 0.0;
    int RESULT = 0;
    int lTempInteger_0 = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;
    double dTempDecimal_2 = 0.0;
    double dTempDecimal_3 = 0.0;
    double dTempDecimal_4 = 0.0;
    double dTempDecimal_5 = 0.0;
    double dTempDecimal_6 = 0.0;
    double dTempDecimal_7 = 0.0;
    double dTempDecimal_8 = 0.0;
    double dTempDecimal_9 = 0.0;
    double dTempDecimal_10 = 0.0;
    double dTempDecimal_11 = 0.0;
    double dTempDecimal_12 = 0.0;
    double dTempDecimal_13 = 0.0;
    double dTempDecimal_14 = 0.0;
    double dTempDecimal_15 = 0.0;
    double dTempDecimal_16 = 0.0;
    int lTempInteger_1 = 0;
    String szTempString_0 = null;
    String szTempString_1 = null;
    int lTempInteger_2 = 0;
    String szTempString_2 = null;
    String szTempString_3 = null;

    //:// Initialize Cumulative Values.
    //:CumulativeAttemptedCredits = 0
    CumulativeAttemptedCredits = 0;
    //:CumulativeEarnedCredits    = 0
    CumulativeEarnedCredits = 0;
    //:CumulativeGPA_Points       = 0
    CumulativeGPA_Points = 0;
    //:CumulativeGPA_Divisor      = 0
    CumulativeGPA_Divisor = 0;

    //:// Loop throught Term and Class entries to create totals and set repeat indicators.
    //:FOR EACH lTrnscpt.TranscriptGroup 
    RESULT = lTrnscpt.cursor("TranscriptGroup").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {

        //:// Cumulative for regular entries
        //:TermAttemptedCredits = 0
        TermAttemptedCredits = 0;
        //:TermEarnedCredits    = 0
        TermEarnedCredits = 0;
        //:TermGPA_Points       = 0
        TermGPA_Points = 0;
        //:TermGPA_Divisor      = 0
        TermGPA_Divisor = 0;

        //:// If any Registration entries in this group have a OverridingGradePointValue value, then flag the group
        //:// as needing to carry GPA_Points to two digits.
        //:SET CURSOR FIRST lTrnscpt.TermRegistration 
        //:           WHERE lTrnscpt.TermRegistration.OverridingGradePointValue != ""
        RESULT = lTrnscpt.cursor("TermRegistration").setFirst().toInt();
        if (RESULT > zCURSOR_UNCHANGED) {
            while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToString(lTrnscpt, "TermRegistration",
                    "OverridingGradePointValue", "") == 0)) {
                RESULT = lTrnscpt.cursor("TermRegistration").setNextContinue().toInt();
                ;
            }

        }

        //:IF RESULT >= zCURSOR_SET
        if (RESULT >= zCURSOR_SET) {
            //:szGPA_PointsTwoDecimalDigitsFlag = "Y"
            {
                StringBuilder sb_szGPA_PointsTwoDecimalDigitsFlag;
                if (szGPA_PointsTwoDecimalDigitsFlag == null)
                    sb_szGPA_PointsTwoDecimalDigitsFlag = new StringBuilder(32);
                else
                    sb_szGPA_PointsTwoDecimalDigitsFlag = new StringBuilder(szGPA_PointsTwoDecimalDigitsFlag);
                ZeidonStringCopy(sb_szGPA_PointsTwoDecimalDigitsFlag, 1, 0, "Y", 1, 0, 2);
                szGPA_PointsTwoDecimalDigitsFlag = sb_szGPA_PointsTwoDecimalDigitsFlag.toString();
            }
            //:lTrnscpt.TranscriptGroup.wGPA_PointsTwoDecimalDigitsFlag = "Y"
            SetAttributeFromString(lTrnscpt, "TranscriptGroup", "wGPA_PointsTwoDecimalDigitsFlag", "Y");
        }

        //:END 

        //:FOR EACH lTrnscpt.TermRegistration
        RESULT = lTrnscpt.cursor("TermRegistration").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {

            //:// Set parens around the credits of any Class that has been repeated.
            //:IF lTrnscpt.TermRegistration.wRepeatedClass = "R" OR lTrnscpt.TermRegistration.wRepeatedClass = "V"
            if (CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass", "R") == 0
                    || CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass", "V") == 0) {
                //:lTrnscpt.TermRegistration.wDisplayLeftParen = "("
                SetAttributeFromString(lTrnscpt, "TermRegistration", "wDisplayLeftParen", "(");
                //:lTrnscpt.TermRegistration.wDisplayRightParen = ")"
                SetAttributeFromString(lTrnscpt, "TermRegistration", "wDisplayRightParen", ")");
            }

            //:END

            //:// Set an asterisk for any Class that "replaces" a "repeated" Class, unless it is also a "repeated" Class.
            //:IF lTrnscpt.TermRegistration.wRepeatedClass = "P" AND lTrnscpt.TermRegistration.wRepeatedClass != "R"
            if (CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass", "P") == 0
                    && CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass", "R") != 0) {
                //:lTrnscpt.TermRegistration.wDisplayAsterisk = "*"
                SetAttributeFromString(lTrnscpt, "TermRegistration", "wDisplayAsterisk", "*");
            }

            //:END

            //:CreditHours  = lTrnscpt.TermRegistration.CreditHours 
            {
                MutableDouble md_CreditHours = new MutableDouble(CreditHours);
                GetDecimalFromAttribute(md_CreditHours, lTrnscpt, "TermRegistration", "CreditHours");
                CreditHours = md_CreditHours.doubleValue();
            }
            //:szFinalGrade = lTrnscpt.TermRegistration.FinalGrade 
            {
                MutableInt mi_lTempInteger_0 = new MutableInt(lTempInteger_0);
                StringBuilder sb_szFinalGrade;
                if (szFinalGrade == null)
                    sb_szFinalGrade = new StringBuilder(32);
                else
                    sb_szFinalGrade = new StringBuilder(szFinalGrade);
                GetVariableFromAttribute(sb_szFinalGrade, mi_lTempInteger_0, 'S', 21, lTrnscpt,
                        "TermRegistration", "FinalGrade", "", 0);
                lTempInteger_0 = mi_lTempInteger_0.intValue();
                szFinalGrade = sb_szFinalGrade.toString();
            }

            //:IF szFinalGrade = "F"
            if (ZeidonStringCompare(szFinalGrade, 1, 0, "F", 1, 0, 21) == 0) {

                //:// Failed Course
                //:lTrnscpt.TermRegistration.AttemptedCredits = CreditHours
                SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "AttemptedCredits", CreditHours);
                //:lTrnscpt.TermRegistration.EarnedCredits    = 0
                SetAttributeFromInteger(lTrnscpt, "TermRegistration", "EarnedCredits", 0);
                //:lTrnscpt.TermRegistration.GPA_Points       = 0
                SetAttributeFromInteger(lTrnscpt, "TermRegistration", "GPA_Points", 0);
                //:lTrnscpt.TermRegistration.GPA_Divisor      = CreditHours
                SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "GPA_Divisor", CreditHours);

                //:TermAttemptedCredits = TermAttemptedCredits + CreditHours
                TermAttemptedCredits = TermAttemptedCredits + CreditHours;
                //:TermGPA_Divisor      = TermGPA_Divisor      + CreditHours
                TermGPA_Divisor = TermGPA_Divisor + CreditHours;

                //:IF lTrnscpt.TermRegistration.wRepeatedClass != "V"   // Repeats with "V" don't impact cumulative entries.
                if (CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass", "V") != 0) {
                    //:CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours - lTrnscpt.TermRegistration.wReplacedAttemptedCredits
                    {
                        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                        GetDecimalFromAttribute(md_dTempDecimal_0, lTrnscpt, "TermRegistration",
                                "wReplacedAttemptedCredits");
                        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                    }
                    CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours - dTempDecimal_0;
                    //:CumulativeGPA_Divisor      = CumulativeGPA_Divisor      + CreditHours - lTrnscpt.TermRegistration.wReplacedGPA_DivisorCredits
                    {
                        MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                        GetDecimalFromAttribute(md_dTempDecimal_1, lTrnscpt, "TermRegistration",
                                "wReplacedGPA_DivisorCredits");
                        dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                    }
                    CumulativeGPA_Divisor = CumulativeGPA_Divisor + CreditHours - dTempDecimal_1;
                }

                //:END

                //:ELSE
            } else {

                //:IF szFinalGrade = "U"
                if (ZeidonStringCompare(szFinalGrade, 1, 0, "U", 1, 0, 21) == 0) {

                    //:// Unsatisfactory for Course
                    //:lTrnscpt.TermRegistration.AttemptedCredits = CreditHours
                    SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "AttemptedCredits", CreditHours);
                    //:lTrnscpt.TermRegistration.EarnedCredits    = 0
                    SetAttributeFromInteger(lTrnscpt, "TermRegistration", "EarnedCredits", 0);
                    //:lTrnscpt.TermRegistration.GPA_Points       = 0
                    SetAttributeFromInteger(lTrnscpt, "TermRegistration", "GPA_Points", 0);
                    //:lTrnscpt.TermRegistration.GPA_Divisor      = 0
                    SetAttributeFromInteger(lTrnscpt, "TermRegistration", "GPA_Divisor", 0);

                    //:TermAttemptedCredits = TermAttemptedCredits + CreditHours
                    TermAttemptedCredits = TermAttemptedCredits + CreditHours;

                    //:IF lTrnscpt.TermRegistration.wRepeatedClass != "V"   // Repeats with "V" don't impact cumulative entries.
                    if (CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass", "V") != 0) {
                        //:CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours - lTrnscpt.TermRegistration.wReplacedAttemptedCredits
                        {
                            MutableDouble md_dTempDecimal_2 = new MutableDouble(dTempDecimal_2);
                            GetDecimalFromAttribute(md_dTempDecimal_2, lTrnscpt, "TermRegistration",
                                    "wReplacedAttemptedCredits");
                            dTempDecimal_2 = md_dTempDecimal_2.doubleValue();
                        }
                        CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours - dTempDecimal_2;
                    }

                    //:END

                    //:ELSE
                } else {

                    //:IF szFinalGrade = "IP" OR
                    //:szFinalGrade = "I" OR
                    //:szFinalGrade = "NC" OR
                    //:szFinalGrade = "NG" OR
                    //:szFinalGrade = "W" OR
                    //:szFinalGrade = "X" OR
                    //:szFinalGrade = "AI"
                    if (ZeidonStringCompare(szFinalGrade, 1, 0, "IP", 1, 0, 21) == 0
                            || ZeidonStringCompare(szFinalGrade, 1, 0, "I", 1, 0, 21) == 0
                            || ZeidonStringCompare(szFinalGrade, 1, 0, "NC", 1, 0, 21) == 0
                            || ZeidonStringCompare(szFinalGrade, 1, 0, "NG", 1, 0, 21) == 0
                            || ZeidonStringCompare(szFinalGrade, 1, 0, "W", 1, 0, 21) == 0
                            || ZeidonStringCompare(szFinalGrade, 1, 0, "X", 1, 0, 21) == 0
                            || ZeidonStringCompare(szFinalGrade, 1, 0, "AI", 1, 0, 21) == 0) {

                        //:// Only Attempted Credits are considered for these Grade values.
                        //:lTrnscpt.TermRegistration.AttemptedCredits = CreditHours
                        SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "AttemptedCredits", CreditHours);
                        //:IF lTrnscpt.TermRegistration.wRepeatedClass != "V"   // Repeats with "V" don't impact cumulative entries.
                        if (CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass",
                                "V") != 0) {
                            //:TermAttemptedCredits = TermAttemptedCredits + CreditHours
                            TermAttemptedCredits = TermAttemptedCredits + CreditHours;
                            //:CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours - lTrnscpt.TermRegistration.wReplacedAttemptedCredits
                            {
                                MutableDouble md_dTempDecimal_3 = new MutableDouble(dTempDecimal_3);
                                GetDecimalFromAttribute(md_dTempDecimal_3, lTrnscpt, "TermRegistration",
                                        "wReplacedAttemptedCredits");
                                dTempDecimal_3 = md_dTempDecimal_3.doubleValue();
                            }
                            CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours
                                    - dTempDecimal_3;
                        }

                        //:END
                        //:/*IF szFinalGrade = "W"
                        //:// For Withdrawn, Attempted are also 0.
                        //:lTrnscpt.TermRegistration.AttemptedCredits = 0
                        //:ELSE
                        //:lTrnscpt.TermRegistration.AttemptedCredits = CreditHours
                        //:IF lTrnscpt.TermRegistration.wRepeatedClass != "V"   // Repeats with "V" don't impact cumulative entries.
                        //:TermAttemptedCredits = TermAttemptedCredits + CreditHours
                        //:CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours - lTrnscpt.TermRegistration.wReplacedAttemptedCredits
                        //:END
                        //:END*/
                        //:lTrnscpt.TermRegistration.EarnedCredits    = 0
                        SetAttributeFromInteger(lTrnscpt, "TermRegistration", "EarnedCredits", 0);
                        //:lTrnscpt.TermRegistration.GPA_Points       = 0
                        SetAttributeFromInteger(lTrnscpt, "TermRegistration", "GPA_Points", 0);
                        //:lTrnscpt.TermRegistration.GPA_Divisor      = 0
                        SetAttributeFromInteger(lTrnscpt, "TermRegistration", "GPA_Divisor", 0);

                        //:ELSE
                    } else {

                        //:IF szFinalGrade = "S" OR szFinalGrade = ""
                        if (ZeidonStringCompare(szFinalGrade, 1, 0, "S", 1, 0, 21) == 0
                                || ZeidonStringCompare(szFinalGrade, 1, 0, "", 1, 0, 21) == 0) {

                            //:// Passed or transferred Course WITHOUT Grade
                            //:GetStringFromAttributeByContext( szFinalGrade,
                            //:                        lTrnscpt, "TermRegistration", "FinalGrade", "DegreeTrackGradePointValue", 20 )
                            {
                                StringBuilder sb_szFinalGrade;
                                if (szFinalGrade == null)
                                    sb_szFinalGrade = new StringBuilder(32);
                                else
                                    sb_szFinalGrade = new StringBuilder(szFinalGrade);
                                GetStringFromAttributeByContext(sb_szFinalGrade, lTrnscpt, "TermRegistration",
                                        "FinalGrade", "DegreeTrackGradePointValue", 20);
                                szFinalGrade = sb_szFinalGrade.toString();
                            }
                            //:FinalGrade = StrToDecimal( szFinalGrade )
                            {
                                ZGLOBAL1_Operation m_ZGLOBAL1_Operation = new ZGLOBAL1_Operation(lTrnscpt);
                                FinalGrade = m_ZGLOBAL1_Operation.StrToDecimal(szFinalGrade);
                                // m_ZGLOBAL1_Operation = null;  // permit gc  (unnecessary)
                            }

                            //:lTrnscpt.TermRegistration.AttemptedCredits = CreditHours
                            SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "AttemptedCredits",
                                    CreditHours);
                            //:lTrnscpt.TermRegistration.EarnedCredits    = CreditHours
                            SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "EarnedCredits", CreditHours);

                            //:TermAttemptedCredits = TermAttemptedCredits + CreditHours
                            TermAttemptedCredits = TermAttemptedCredits + CreditHours;
                            //:TermEarnedCredits    = TermEarnedCredits    + CreditHours
                            TermEarnedCredits = TermEarnedCredits + CreditHours;

                            //:IF lTrnscpt.TermRegistration.wRepeatedClass != "V"   // Repeats with "V" don't impact cumulative entries.
                            if (CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass",
                                    "V") != 0) {
                                //:CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours - lTrnscpt.TermRegistration.wReplacedAttemptedCredits
                                {
                                    MutableDouble md_dTempDecimal_4 = new MutableDouble(dTempDecimal_4);
                                    GetDecimalFromAttribute(md_dTempDecimal_4, lTrnscpt, "TermRegistration",
                                            "wReplacedAttemptedCredits");
                                    dTempDecimal_4 = md_dTempDecimal_4.doubleValue();
                                }
                                CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours
                                        - dTempDecimal_4;
                                //:CumulativeEarnedCredits    = CumulativeEarnedCredits    + CreditHours - lTrnscpt.TermRegistration.wReplacedEarnedCredits
                                {
                                    MutableDouble md_dTempDecimal_5 = new MutableDouble(dTempDecimal_5);
                                    GetDecimalFromAttribute(md_dTempDecimal_5, lTrnscpt, "TermRegistration",
                                            "wReplacedEarnedCredits");
                                    dTempDecimal_5 = md_dTempDecimal_5.doubleValue();
                                }
                                CumulativeEarnedCredits = CumulativeEarnedCredits + CreditHours
                                        - dTempDecimal_5;
                                //:CumulativeGPA_Points       = CumulativeGPA_Points       - lTrnscpt.TermRegistration.wReplacedGPA_Points 
                                {
                                    MutableDouble md_dTempDecimal_6 = new MutableDouble(dTempDecimal_6);
                                    GetDecimalFromAttribute(md_dTempDecimal_6, lTrnscpt, "TermRegistration",
                                            "wReplacedGPA_Points");
                                    dTempDecimal_6 = md_dTempDecimal_6.doubleValue();
                                }
                                CumulativeGPA_Points = CumulativeGPA_Points - dTempDecimal_6;
                                //:CumulativeGPA_Divisor      = CumulativeGPA_Divisor      - lTrnscpt.TermRegistration.wReplacedGPA_DivisorCredits
                                {
                                    MutableDouble md_dTempDecimal_7 = new MutableDouble(dTempDecimal_7);
                                    GetDecimalFromAttribute(md_dTempDecimal_7, lTrnscpt, "TermRegistration",
                                            "wReplacedGPA_DivisorCredits");
                                    dTempDecimal_7 = md_dTempDecimal_7.doubleValue();
                                }
                                CumulativeGPA_Divisor = CumulativeGPA_Divisor - dTempDecimal_7;
                            }

                            //:END

                            //:ELSE
                        } else {

                            //:// Passed Course WITH Grade
                            //:GetStringFromAttributeByContext( szFinalGrade,
                            //:                        lTrnscpt, "TermRegistration", "FinalGrade", "DegreeTrackGradePointValue", 20 )
                            {
                                StringBuilder sb_szFinalGrade;
                                if (szFinalGrade == null)
                                    sb_szFinalGrade = new StringBuilder(32);
                                else
                                    sb_szFinalGrade = new StringBuilder(szFinalGrade);
                                GetStringFromAttributeByContext(sb_szFinalGrade, lTrnscpt, "TermRegistration",
                                        "FinalGrade", "DegreeTrackGradePointValue", 20);
                                szFinalGrade = sb_szFinalGrade.toString();
                            }
                            //:IF lTrnscpt.TermRegistration.OverridingGradePointValue = ""
                            if (CompareAttributeToString(lTrnscpt, "TermRegistration",
                                    "OverridingGradePointValue", "") == 0) {
                                //:FinalGrade = StrToDecimal( szFinalGrade )
                                {
                                    ZGLOBAL1_Operation m_ZGLOBAL1_Operation = new ZGLOBAL1_Operation(lTrnscpt);
                                    FinalGrade = m_ZGLOBAL1_Operation.StrToDecimal(szFinalGrade);
                                    // m_ZGLOBAL1_Operation = null;  // permit gc  (unnecessary)
                                }
                                //:ELSE
                            } else {
                                //:FinalGrade = lTrnscpt.TermRegistration.OverridingGradePointValue 
                                {
                                    MutableDouble md_FinalGrade = new MutableDouble(FinalGrade);
                                    GetDecimalFromAttribute(md_FinalGrade, lTrnscpt, "TermRegistration",
                                            "OverridingGradePointValue");
                                    FinalGrade = md_FinalGrade.doubleValue();
                                }
                            }

                            //:END

                            //:IF szGPA_PointsTwoDecimalDigitsFlag = "Y"
                            if (ZeidonStringCompare(szGPA_PointsTwoDecimalDigitsFlag, 1, 0, "Y", 1, 0,
                                    2) == 0) {
                                //:// If two-decimal-digit GPA_Points is requested, make sure we round to two-decimal digits.
                                //:GPA_Points = FinalGrade * CreditHours
                                GPA_Points = FinalGrade * CreditHours;

                                //:ELSE
                            } else {
                                //:GPA_Points = FinalGrade * CreditHours
                                GPA_Points = FinalGrade * CreditHours;
                            }

                            //:END

                            //:lTrnscpt.TermRegistration.AttemptedCredits = CreditHours
                            SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "AttemptedCredits",
                                    CreditHours);
                            //:lTrnscpt.TermRegistration.EarnedCredits    = CreditHours
                            SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "EarnedCredits", CreditHours);
                            //:lTrnscpt.TermRegistration.GPA_Points       = GPA_Points
                            SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "GPA_Points", GPA_Points);
                            //:lTrnscpt.TermRegistration.GPA_Divisor      = CreditHours
                            SetAttributeFromDecimal(lTrnscpt, "TermRegistration", "GPA_Divisor", CreditHours);

                            //:TermAttemptedCredits = TermAttemptedCredits + CreditHours
                            TermAttemptedCredits = TermAttemptedCredits + CreditHours;
                            //:TermEarnedCredits    = TermEarnedCredits    + CreditHours
                            TermEarnedCredits = TermEarnedCredits + CreditHours;
                            //:TermGPA_Points       = TermGPA_Points       + lTrnscpt.TermRegistration.GPA_Points
                            {
                                MutableDouble md_dTempDecimal_8 = new MutableDouble(dTempDecimal_8);
                                GetDecimalFromAttribute(md_dTempDecimal_8, lTrnscpt, "TermRegistration",
                                        "GPA_Points");
                                dTempDecimal_8 = md_dTempDecimal_8.doubleValue();
                            }
                            TermGPA_Points = TermGPA_Points + dTempDecimal_8;
                            //:TermGPA_Divisor      = TermGPA_Divisor      + CreditHours
                            TermGPA_Divisor = TermGPA_Divisor + CreditHours;

                            //:IF lTrnscpt.TermRegistration.wRepeatedClass != "V"   // Repeats with "V" don't impact cumulative entries.
                            if (CompareAttributeToString(lTrnscpt, "TermRegistration", "wRepeatedClass",
                                    "V") != 0) {
                                //:CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours - lTrnscpt.TermRegistration.wReplacedAttemptedCredits
                                {
                                    MutableDouble md_dTempDecimal_9 = new MutableDouble(dTempDecimal_9);
                                    GetDecimalFromAttribute(md_dTempDecimal_9, lTrnscpt, "TermRegistration",
                                            "wReplacedAttemptedCredits");
                                    dTempDecimal_9 = md_dTempDecimal_9.doubleValue();
                                }
                                CumulativeAttemptedCredits = CumulativeAttemptedCredits + CreditHours
                                        - dTempDecimal_9;
                                //:CumulativeEarnedCredits    = CumulativeEarnedCredits    + CreditHours - lTrnscpt.TermRegistration.wReplacedEarnedCredits
                                {
                                    MutableDouble md_dTempDecimal_10 = new MutableDouble(dTempDecimal_10);
                                    GetDecimalFromAttribute(md_dTempDecimal_10, lTrnscpt, "TermRegistration",
                                            "wReplacedEarnedCredits");
                                    dTempDecimal_10 = md_dTempDecimal_10.doubleValue();
                                }
                                CumulativeEarnedCredits = CumulativeEarnedCredits + CreditHours
                                        - dTempDecimal_10;
                                //:CumulativeGPA_Points       = CumulativeGPA_Points       + lTrnscpt.TermRegistration.GPA_Points - lTrnscpt.TermRegistration.wReplacedGPA_Points 
                                {
                                    MutableDouble md_dTempDecimal_11 = new MutableDouble(dTempDecimal_11);
                                    GetDecimalFromAttribute(md_dTempDecimal_11, lTrnscpt, "TermRegistration",
                                            "GPA_Points");
                                    dTempDecimal_11 = md_dTempDecimal_11.doubleValue();
                                }
                                {
                                    MutableDouble md_dTempDecimal_12 = new MutableDouble(dTempDecimal_12);
                                    GetDecimalFromAttribute(md_dTempDecimal_12, lTrnscpt, "TermRegistration",
                                            "wReplacedGPA_Points");
                                    dTempDecimal_12 = md_dTempDecimal_12.doubleValue();
                                }
                                CumulativeGPA_Points = CumulativeGPA_Points + dTempDecimal_11 - dTempDecimal_12;
                                //:CumulativeGPA_Divisor      = CumulativeGPA_Divisor      + CreditHours - lTrnscpt.TermRegistration.wReplacedGPA_DivisorCredits
                                {
                                    MutableDouble md_dTempDecimal_13 = new MutableDouble(dTempDecimal_13);
                                    GetDecimalFromAttribute(md_dTempDecimal_13, lTrnscpt, "TermRegistration",
                                            "wReplacedGPA_DivisorCredits");
                                    dTempDecimal_13 = md_dTempDecimal_13.doubleValue();
                                }
                                CumulativeGPA_Divisor = CumulativeGPA_Divisor + CreditHours - dTempDecimal_13;
                            }

                            //:END
                        }

                        //:END
                    }

                    //:END
                }

                //:END
            }

            RESULT = lTrnscpt.cursor("TermRegistration").setNextContinue().toInt();
            ;
            //:END
        }

        //:   
        //:END
        //:   
        //:IF TermGPA_Divisor = 0
        if (TermGPA_Divisor == 0) {
            //:TermGPA = 0
            TermGPA = 0;
            //:ELSE
        } else {
            //:TermGPA = TermGPA_Points / TermGPA_Divisor
            TermGPA = TermGPA_Points / TermGPA_Divisor;
        }

        //:END
        //:IF CumulativeGPA_Divisor = 0
        if (CumulativeGPA_Divisor == 0) {
            //:CumulativeGPA = 0
            CumulativeGPA = 0;
            //:ELSE
        } else {
            //:CumulativeGPA = CumulativeGPA_Points / CumulativeGPA_Divisor
            CumulativeGPA = CumulativeGPA_Points / CumulativeGPA_Divisor;
        }

        //:END

        //:lTrnscpt.TranscriptGroup.SumAttemptedCredits = TermAttemptedCredits
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "SumAttemptedCredits", TermAttemptedCredits);
        //:lTrnscpt.TranscriptGroup.SumEarnedCredits    = TermEarnedCredits
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "SumEarnedCredits", TermEarnedCredits);
        //:lTrnscpt.TranscriptGroup.SumGradePoints      = TermGPA_Points
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "SumGradePoints", TermGPA_Points);
        //:lTrnscpt.TranscriptGroup.SumGPA_Divisor      = TermGPA_Divisor
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "SumGPA_Divisor", TermGPA_Divisor);
        //:lTrnscpt.TranscriptGroup.SumGPA              = TermGPA
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "SumGPA", TermGPA);

        //:lTrnscpt.TranscriptGroup.CumulativeAttemptedCredits = CumulativeAttemptedCredits
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "CumulativeAttemptedCredits",
                CumulativeAttemptedCredits);
        //:lTrnscpt.TranscriptGroup.CumulativeEarnedCredits    = CumulativeEarnedCredits
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "CumulativeEarnedCredits",
                CumulativeEarnedCredits);
        //:lTrnscpt.TranscriptGroup.CumulativeGPA_Points       = CumulativeGPA_Points
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "CumulativeGPA_Points", CumulativeGPA_Points);
        //:lTrnscpt.TranscriptGroup.CumulativeGPA_Divisor      = CumulativeGPA_Divisor
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "CumulativeGPA_Divisor", CumulativeGPA_Divisor);
        //:lTrnscpt.TranscriptGroup.CumulativeGPA              = CumulativeGPA
        SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "CumulativeGPA", CumulativeGPA);

        //:IF lTrnscpt.TranscriptGroup.CumulativeGPA_Divisor != 0
        if (CompareAttributeToInteger(lTrnscpt, "TranscriptGroup", "CumulativeGPA_Divisor", 0) != 0) {
            //:lTrnscpt.TranscriptGroup.SumGPA = lTrnscpt.TranscriptGroup.SumGradePoints / lTrnscpt.TranscriptGroup.SumGPA_Divisor 
            {
                MutableDouble md_dTempDecimal_14 = new MutableDouble(dTempDecimal_14);
                GetDecimalFromAttribute(md_dTempDecimal_14, lTrnscpt, "TranscriptGroup", "SumGradePoints");
                dTempDecimal_14 = md_dTempDecimal_14.doubleValue();
            }
            {
                MutableDouble md_dTempDecimal_15 = new MutableDouble(dTempDecimal_15);
                GetDecimalFromAttribute(md_dTempDecimal_15, lTrnscpt, "TranscriptGroup", "SumGPA_Divisor");
                dTempDecimal_15 = md_dTempDecimal_15.doubleValue();
            }
            dTempDecimal_16 = dTempDecimal_14 / dTempDecimal_15;
            SetAttributeFromDecimal(lTrnscpt, "TranscriptGroup", "SumGPA", dTempDecimal_16);
        }

        RESULT = lTrnscpt.cursor("TranscriptGroup").setNextContinue().toInt();
        ;
        //:END
    }

    //:   
    //:END

    //:// Build the Print Group
    //:FOR EACH lTrnscpt.TranscriptGroup
    RESULT = lTrnscpt.cursor("TranscriptGroup").setFirst().toInt();
    while (RESULT > zCURSOR_UNCHANGED) {
        //:CREATE ENTITY lTrnscpt.PrintGroup
        RESULT = CreateEntity(lTrnscpt, "PrintGroup", zPOS_AFTER);
        //:SetMatchingAttributesByName( lTrnscpt, "PrintGroup", lTrnscpt, "TranscriptGroup", zSET_ALL ) 
        SetMatchingAttributesByName(lTrnscpt, "PrintGroup", lTrnscpt, "TranscriptGroup", zSET_ALL);
        //:IF lTrnscpt.TermRegistration EXISTS
        lTempInteger_1 = CheckExistenceOfEntity(lTrnscpt, "TermRegistration");
        if (lTempInteger_1 == 0) {
            //:IF lTrnscpt.TranscriptGroup.wRecordType = "T"
            if (CompareAttributeToString(lTrnscpt, "TranscriptGroup", "wRecordType", "T") == 0) {
                //:CREATE ENTITY lTrnscpt.PrintHeaderLine 
                RESULT = CreateEntity(lTrnscpt, "PrintHeaderLine", zPOS_AFTER);
                //:lTrnscpt.PrintHeaderLine.TextValue = "Transferred from " + lTrnscpt.TranscriptGroup.wForeignCollegeName 
                {
                    MutableInt mi_lTempInteger_2 = new MutableInt(lTempInteger_2);
                    StringBuilder sb_szTempString_1;
                    if (szTempString_1 == null)
                        sb_szTempString_1 = new StringBuilder(32);
                    else
                        sb_szTempString_1 = new StringBuilder(szTempString_1);
                    GetVariableFromAttribute(sb_szTempString_1, mi_lTempInteger_2, 'S', 255, lTrnscpt,
                            "TranscriptGroup", "wForeignCollegeName", "", 0);
                    lTempInteger_2 = mi_lTempInteger_2.intValue();
                    szTempString_1 = sb_szTempString_1.toString();
                }
                {
                    StringBuilder sb_szTempString_0;
                    if (szTempString_0 == null)
                        sb_szTempString_0 = new StringBuilder(32);
                    else
                        sb_szTempString_0 = new StringBuilder(szTempString_0);
                    ZeidonStringCopy(sb_szTempString_0, 1, 0, "Transferred from ", 1, 0, 255);
                    szTempString_0 = sb_szTempString_0.toString();
                }
                {
                    StringBuilder sb_szTempString_0;
                    if (szTempString_0 == null)
                        sb_szTempString_0 = new StringBuilder(32);
                    else
                        sb_szTempString_0 = new StringBuilder(szTempString_0);
                    ZeidonStringConcat(sb_szTempString_0, 1, 0, szTempString_1, 1, 0, 255);
                    szTempString_0 = sb_szTempString_0.toString();
                }
                SetAttributeFromString(lTrnscpt, "PrintHeaderLine", "TextValue", szTempString_0);
                //:CREATE ENTITY lTrnscpt.PrintHeaderLine 
                RESULT = CreateEntity(lTrnscpt, "PrintHeaderLine", zPOS_AFTER);
                //:lTrnscpt.PrintHeaderLine.TextValue = lTrnscpt.TranscriptGroup.YearSemester 
                SetAttributeFromAttribute(lTrnscpt, "PrintHeaderLine", "TextValue", lTrnscpt, "TranscriptGroup",
                        "YearSemester");
                //:ELSE
            } else {
                //:CREATE ENTITY lTrnscpt.PrintHeaderLine 
                RESULT = CreateEntity(lTrnscpt, "PrintHeaderLine", zPOS_AFTER);
                //:lTrnscpt.PrintHeaderLine.TextValue = lTrnscpt.TranscriptGroup.YearSemester
                SetAttributeFromAttribute(lTrnscpt, "PrintHeaderLine", "TextValue", lTrnscpt, "TranscriptGroup",
                        "YearSemester");
            }

            //:END
        }

        //:END
        //:FOR EACH lTrnscpt.TTG_HeaderLine 
        RESULT = lTrnscpt.cursor("TTG_HeaderLine").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:CREATE ENTITY lTrnscpt.PrintHeaderLine 
            RESULT = CreateEntity(lTrnscpt, "PrintHeaderLine", zPOS_AFTER);
            //:lTrnscpt.PrintHeaderLine.TextValue = lTrnscpt.TTG_HeaderLine.LineText 
            SetAttributeFromAttribute(lTrnscpt, "PrintHeaderLine", "TextValue", lTrnscpt, "TTG_HeaderLine",
                    "LineText");
            RESULT = lTrnscpt.cursor("TTG_HeaderLine").setNextContinue().toInt();
            ;
        }

        //:END
        //:IF lTrnscpt.TranscriptGroup.wGPA_PointsTwoDecimalDigitsFlag = "Y"
        if (CompareAttributeToString(lTrnscpt, "TranscriptGroup", "wGPA_PointsTwoDecimalDigitsFlag",
                "Y") == 0) {
            //:FOR EACH lTrnscpt.TermRegistration 
            RESULT = lTrnscpt.cursor("TermRegistration").setFirst().toInt();
            while (RESULT > zCURSOR_UNCHANGED) {
                //:IF lTrnscpt.TermRegistration.Status = "V" OR lTrnscpt.TermRegistration.Status = "Y"  // Waived or L. Waived
                if (CompareAttributeToString(lTrnscpt, "TermRegistration", "Status", "V") == 0
                        || CompareAttributeToString(lTrnscpt, "TermRegistration", "Status", "Y") == 0) {
                    //:CREATE ENTITY lTrnscpt.PrintWaivedEntry 
                    RESULT = CreateEntity(lTrnscpt, "PrintWaivedEntry", zPOS_AFTER);
                    //:lTrnscpt.PrintWaivedEntry.wCourseNumber = lTrnscpt.TermRegistration.wCourseNumber 
                    SetAttributeFromAttribute(lTrnscpt, "PrintWaivedEntry", "wCourseNumber", lTrnscpt,
                            "TermRegistration", "wCourseNumber");
                    //:lTrnscpt.PrintWaivedEntry.wCourseTitle  = lTrnscpt.TermRegistration.wCourseTitle 
                    SetAttributeFromAttribute(lTrnscpt, "PrintWaivedEntry", "wCourseTitle", lTrnscpt,
                            "TermRegistration", "wCourseTitle");
                    //:IF lTrnscpt.TermRegistration.CreditHours > 0
                    if (CompareAttributeToInteger(lTrnscpt, "TermRegistration", "CreditHours", 0) > 0) {
                        //:lTrnscpt.PrintWaivedEntry.wCreditHours = lTrnscpt.TermRegistration.CreditHours 
                        SetAttributeFromAttribute(lTrnscpt, "PrintWaivedEntry", "wCreditHours", lTrnscpt,
                                "TermRegistration", "CreditHours");
                    }

                    //:END
                    //:ELSE
                } else {
                    //:INCLUDE lTrnscpt.PrintRegistration2 FROM lTrnscpt.TermRegistration 
                    RESULT = IncludeSubobjectFromSubobject(lTrnscpt, "PrintRegistration2", lTrnscpt,
                            "TermRegistration", zPOS_AFTER);
                    //:SetMatchingAttributesByName( lTrnscpt, "PrintRegistration2", lTrnscpt, "TermRegistration", zSET_NULL )
                    SetMatchingAttributesByName(lTrnscpt, "PrintRegistration2", lTrnscpt, "TermRegistration",
                            zSET_NULL);
                    //:IF lTrnscpt.PrintRegistration2.wDisplayAsterisk = ""
                    if (CompareAttributeToString(lTrnscpt, "PrintRegistration2", "wDisplayAsterisk", "") == 0) {
                        //:lTrnscpt.PrintRegistration2.wDisplayGrade = lTrnscpt.PrintRegistration2.FinalGrade
                        SetAttributeFromAttribute(lTrnscpt, "PrintRegistration2", "wDisplayGrade", lTrnscpt,
                                "PrintRegistration2", "FinalGrade");
                        //:ELSE
                    } else {
                        //:lTrnscpt.PrintRegistration2.wDisplayGrade = lTrnscpt.PrintRegistration2.FinalGrade + " *"                                        
                        {
                            StringBuilder sb_szTempString_2;
                            if (szTempString_2 == null)
                                sb_szTempString_2 = new StringBuilder(32);
                            else
                                sb_szTempString_2 = new StringBuilder(szTempString_2);
                            GetStringFromAttribute(sb_szTempString_2, lTrnscpt, "PrintRegistration2",
                                    "FinalGrade");
                            szTempString_2 = sb_szTempString_2.toString();
                        }
                        {
                            StringBuilder sb_szTempString_2;
                            if (szTempString_2 == null)
                                sb_szTempString_2 = new StringBuilder(32);
                            else
                                sb_szTempString_2 = new StringBuilder(szTempString_2);
                            ZeidonStringConcat(sb_szTempString_2, 1, 0, " *", 1, 0, 255);
                            szTempString_2 = sb_szTempString_2.toString();
                        }
                        SetAttributeFromString(lTrnscpt, "PrintRegistration2", "wDisplayGrade", szTempString_2);
                    }

                    //:END
                    //:IF lTrnscpt.PrintRegistration2.wDisplayRightParen = ""
                    if (CompareAttributeToString(lTrnscpt, "PrintRegistration2", "wDisplayRightParen",
                            "") == 0) {
                        //:GetStringFromAttributeByContext( szAttemptedCredits,
                        //:                                 lTrnscpt, "PrintRegistration2", "AttemptedCredits", "Decimal1", 10 )
                        {
                            StringBuilder sb_szAttemptedCredits;
                            if (szAttemptedCredits == null)
                                sb_szAttemptedCredits = new StringBuilder(32);
                            else
                                sb_szAttemptedCredits = new StringBuilder(szAttemptedCredits);
                            GetStringFromAttributeByContext(sb_szAttemptedCredits, lTrnscpt,
                                    "PrintRegistration2", "AttemptedCredits", "Decimal1", 10);
                            szAttemptedCredits = sb_szAttemptedCredits.toString();
                        }
                        //:szAttemptedCredits = szAttemptedCredits + " "
                        {
                            StringBuilder sb_szAttemptedCredits;
                            if (szAttemptedCredits == null)
                                sb_szAttemptedCredits = new StringBuilder(32);
                            else
                                sb_szAttemptedCredits = new StringBuilder(szAttemptedCredits);
                            ZeidonStringConcat(sb_szAttemptedCredits, 1, 0, " ", 1, 0, 11);
                            szAttemptedCredits = sb_szAttemptedCredits.toString();
                        }
                        //:ELSE
                    } else {
                        //:GetStringFromAttributeByContext( szAttemptedCredits,
                        //:                                 lTrnscpt, "PrintRegistration2", "AttemptedCredits", "Decimal1", 10 )
                        {
                            StringBuilder sb_szAttemptedCredits;
                            if (szAttemptedCredits == null)
                                sb_szAttemptedCredits = new StringBuilder(32);
                            else
                                sb_szAttemptedCredits = new StringBuilder(szAttemptedCredits);
                            GetStringFromAttributeByContext(sb_szAttemptedCredits, lTrnscpt,
                                    "PrintRegistration2", "AttemptedCredits", "Decimal1", 10);
                            szAttemptedCredits = sb_szAttemptedCredits.toString();
                        }
                        //:szAttemptedCreditsOrig = "(" + szAttemptedCredits + ")"
                        {
                            StringBuilder sb_szAttemptedCreditsOrig;
                            if (szAttemptedCreditsOrig == null)
                                sb_szAttemptedCreditsOrig = new StringBuilder(32);
                            else
                                sb_szAttemptedCreditsOrig = new StringBuilder(szAttemptedCreditsOrig);
                            ZeidonStringCopy(sb_szAttemptedCreditsOrig, 1, 0, "(", 1, 0, 11);
                            szAttemptedCreditsOrig = sb_szAttemptedCreditsOrig.toString();
                        }
                        {
                            StringBuilder sb_szAttemptedCreditsOrig;
                            if (szAttemptedCreditsOrig == null)
                                sb_szAttemptedCreditsOrig = new StringBuilder(32);
                            else
                                sb_szAttemptedCreditsOrig = new StringBuilder(szAttemptedCreditsOrig);
                            ZeidonStringConcat(sb_szAttemptedCreditsOrig, 1, 0, szAttemptedCredits, 1, 0, 11);
                            szAttemptedCreditsOrig = sb_szAttemptedCreditsOrig.toString();
                        }
                        {
                            StringBuilder sb_szAttemptedCreditsOrig;
                            if (szAttemptedCreditsOrig == null)
                                sb_szAttemptedCreditsOrig = new StringBuilder(32);
                            else
                                sb_szAttemptedCreditsOrig = new StringBuilder(szAttemptedCreditsOrig);
                            ZeidonStringConcat(sb_szAttemptedCreditsOrig, 1, 0, ")", 1, 0, 11);
                            szAttemptedCreditsOrig = sb_szAttemptedCreditsOrig.toString();
                        }
                        //:szAttemptedCredits = szAttemptedCreditsOrig
                        {
                            StringBuilder sb_szAttemptedCredits;
                            if (szAttemptedCredits == null)
                                sb_szAttemptedCredits = new StringBuilder(32);
                            else
                                sb_szAttemptedCredits = new StringBuilder(szAttemptedCredits);
                            ZeidonStringCopy(sb_szAttemptedCredits, 1, 0, szAttemptedCreditsOrig, 1, 0, 11);
                            szAttemptedCredits = sb_szAttemptedCredits.toString();
                        }
                    }

                    //:END
                    //:lTrnscpt.PrintRegistration2.wDisplayAttemptedCredits = szAttemptedCredits
                    SetAttributeFromString(lTrnscpt, "PrintRegistration2", "wDisplayAttemptedCredits",
                            szAttemptedCredits);
                }

                RESULT = lTrnscpt.cursor("TermRegistration").setNextContinue().toInt();
                ;
                //:END
            }

            //:END
            //:ELSE
        } else {
            //:FOR EACH lTrnscpt.TermRegistration 
            RESULT = lTrnscpt.cursor("TermRegistration").setFirst().toInt();
            while (RESULT > zCURSOR_UNCHANGED) {
                //:IF lTrnscpt.TermRegistration.Status = "V" OR lTrnscpt.TermRegistration.Status = "Y"  // Waived or L. Waived
                if (CompareAttributeToString(lTrnscpt, "TermRegistration", "Status", "V") == 0
                        || CompareAttributeToString(lTrnscpt, "TermRegistration", "Status", "Y") == 0) {
                    //:CREATE ENTITY lTrnscpt.PrintWaivedEntry 
                    RESULT = CreateEntity(lTrnscpt, "PrintWaivedEntry", zPOS_AFTER);
                    //:lTrnscpt.PrintWaivedEntry.wCourseNumber = lTrnscpt.TermRegistration.wCourseNumber 
                    SetAttributeFromAttribute(lTrnscpt, "PrintWaivedEntry", "wCourseNumber", lTrnscpt,
                            "TermRegistration", "wCourseNumber");
                    //:lTrnscpt.PrintWaivedEntry.wCourseTitle  = lTrnscpt.TermRegistration.wCourseTitle 
                    SetAttributeFromAttribute(lTrnscpt, "PrintWaivedEntry", "wCourseTitle", lTrnscpt,
                            "TermRegistration", "wCourseTitle");
                    //:IF lTrnscpt.TermRegistration.CreditHours > 0
                    if (CompareAttributeToInteger(lTrnscpt, "TermRegistration", "CreditHours", 0) > 0) {
                        //:lTrnscpt.PrintWaivedEntry.wCreditHours = lTrnscpt.TermRegistration.CreditHours 
                        SetAttributeFromAttribute(lTrnscpt, "PrintWaivedEntry", "wCreditHours", lTrnscpt,
                                "TermRegistration", "CreditHours");
                    }

                    //:END
                    //:ELSE
                } else {
                    //:INCLUDE lTrnscpt.PrintRegistration FROM lTrnscpt.TermRegistration 
                    RESULT = IncludeSubobjectFromSubobject(lTrnscpt, "PrintRegistration", lTrnscpt,
                            "TermRegistration", zPOS_AFTER);
                    //:SetMatchingAttributesByName( lTrnscpt, "PrintRegistration", lTrnscpt, "TermRegistration", zSET_NULL )
                    SetMatchingAttributesByName(lTrnscpt, "PrintRegistration", lTrnscpt, "TermRegistration",
                            zSET_NULL);
                    //:IF lTrnscpt.PrintRegistration.wDisplayAsterisk = ""
                    if (CompareAttributeToString(lTrnscpt, "PrintRegistration", "wDisplayAsterisk", "") == 0) {
                        //:lTrnscpt.PrintRegistration.wDisplayGrade = lTrnscpt.PrintRegistration.FinalGrade
                        SetAttributeFromAttribute(lTrnscpt, "PrintRegistration", "wDisplayGrade", lTrnscpt,
                                "PrintRegistration", "FinalGrade");
                        //:ELSE
                    } else {
                        //:lTrnscpt.PrintRegistration.wDisplayGrade = lTrnscpt.PrintRegistration.FinalGrade + " *"                                        
                        {
                            StringBuilder sb_szTempString_3;
                            if (szTempString_3 == null)
                                sb_szTempString_3 = new StringBuilder(32);
                            else
                                sb_szTempString_3 = new StringBuilder(szTempString_3);
                            GetStringFromAttribute(sb_szTempString_3, lTrnscpt, "PrintRegistration",
                                    "FinalGrade");
                            szTempString_3 = sb_szTempString_3.toString();
                        }
                        {
                            StringBuilder sb_szTempString_3;
                            if (szTempString_3 == null)
                                sb_szTempString_3 = new StringBuilder(32);
                            else
                                sb_szTempString_3 = new StringBuilder(szTempString_3);
                            ZeidonStringConcat(sb_szTempString_3, 1, 0, " *", 1, 0, 255);
                            szTempString_3 = sb_szTempString_3.toString();
                        }
                        SetAttributeFromString(lTrnscpt, "PrintRegistration", "wDisplayGrade", szTempString_3);
                    }

                    //:END
                    //:IF lTrnscpt.PrintRegistration.wDisplayRightParen = ""
                    if (CompareAttributeToString(lTrnscpt, "PrintRegistration", "wDisplayRightParen",
                            "") == 0) {
                        //:GetStringFromAttributeByContext( szAttemptedCredits,
                        //:                                 lTrnscpt, "PrintRegistration", "AttemptedCredits", "Decimal1", 10 )
                        {
                            StringBuilder sb_szAttemptedCredits;
                            if (szAttemptedCredits == null)
                                sb_szAttemptedCredits = new StringBuilder(32);
                            else
                                sb_szAttemptedCredits = new StringBuilder(szAttemptedCredits);
                            GetStringFromAttributeByContext(sb_szAttemptedCredits, lTrnscpt,
                                    "PrintRegistration", "AttemptedCredits", "Decimal1", 10);
                            szAttemptedCredits = sb_szAttemptedCredits.toString();
                        }
                        //:szAttemptedCredits = szAttemptedCredits + " "
                        {
                            StringBuilder sb_szAttemptedCredits;
                            if (szAttemptedCredits == null)
                                sb_szAttemptedCredits = new StringBuilder(32);
                            else
                                sb_szAttemptedCredits = new StringBuilder(szAttemptedCredits);
                            ZeidonStringConcat(sb_szAttemptedCredits, 1, 0, " ", 1, 0, 11);
                            szAttemptedCredits = sb_szAttemptedCredits.toString();
                        }
                        //:ELSE
                    } else {
                        //:GetStringFromAttributeByContext( szAttemptedCredits,
                        //:                                 lTrnscpt, "PrintRegistration", "AttemptedCredits", "Decimal1", 10 )
                        {
                            StringBuilder sb_szAttemptedCredits;
                            if (szAttemptedCredits == null)
                                sb_szAttemptedCredits = new StringBuilder(32);
                            else
                                sb_szAttemptedCredits = new StringBuilder(szAttemptedCredits);
                            GetStringFromAttributeByContext(sb_szAttemptedCredits, lTrnscpt,
                                    "PrintRegistration", "AttemptedCredits", "Decimal1", 10);
                            szAttemptedCredits = sb_szAttemptedCredits.toString();
                        }
                        //:szAttemptedCreditsOrig = "(" + szAttemptedCredits + ")"
                        {
                            StringBuilder sb_szAttemptedCreditsOrig;
                            if (szAttemptedCreditsOrig == null)
                                sb_szAttemptedCreditsOrig = new StringBuilder(32);
                            else
                                sb_szAttemptedCreditsOrig = new StringBuilder(szAttemptedCreditsOrig);
                            ZeidonStringCopy(sb_szAttemptedCreditsOrig, 1, 0, "(", 1, 0, 11);
                            szAttemptedCreditsOrig = sb_szAttemptedCreditsOrig.toString();
                        }
                        {
                            StringBuilder sb_szAttemptedCreditsOrig;
                            if (szAttemptedCreditsOrig == null)
                                sb_szAttemptedCreditsOrig = new StringBuilder(32);
                            else
                                sb_szAttemptedCreditsOrig = new StringBuilder(szAttemptedCreditsOrig);
                            ZeidonStringConcat(sb_szAttemptedCreditsOrig, 1, 0, szAttemptedCredits, 1, 0, 11);
                            szAttemptedCreditsOrig = sb_szAttemptedCreditsOrig.toString();
                        }
                        {
                            StringBuilder sb_szAttemptedCreditsOrig;
                            if (szAttemptedCreditsOrig == null)
                                sb_szAttemptedCreditsOrig = new StringBuilder(32);
                            else
                                sb_szAttemptedCreditsOrig = new StringBuilder(szAttemptedCreditsOrig);
                            ZeidonStringConcat(sb_szAttemptedCreditsOrig, 1, 0, ")", 1, 0, 11);
                            szAttemptedCreditsOrig = sb_szAttemptedCreditsOrig.toString();
                        }
                        //:szAttemptedCredits = szAttemptedCreditsOrig
                        {
                            StringBuilder sb_szAttemptedCredits;
                            if (szAttemptedCredits == null)
                                sb_szAttemptedCredits = new StringBuilder(32);
                            else
                                sb_szAttemptedCredits = new StringBuilder(szAttemptedCredits);
                            ZeidonStringCopy(sb_szAttemptedCredits, 1, 0, szAttemptedCreditsOrig, 1, 0, 11);
                            szAttemptedCredits = sb_szAttemptedCredits.toString();
                        }
                    }

                    //:END
                    //:lTrnscpt.PrintRegistration.wDisplayAttemptedCredits = szAttemptedCredits
                    SetAttributeFromString(lTrnscpt, "PrintRegistration", "wDisplayAttemptedCredits",
                            szAttemptedCredits);
                }

                RESULT = lTrnscpt.cursor("TermRegistration").setNextContinue().toInt();
                ;
                //:END
            }

            //:END
        }

        RESULT = lTrnscpt.cursor("TranscriptGroup").setNextContinue().toInt();
        ;
        //:END
    }

    //:END
    return (0);
    // END
}

From source file:com.quinsoft.swauopencuas.mSAChrgT_Object.java

private int omSAChrgT_Rule_SummerTuition(View mSAChrgT, View mSAProf, String szRefundFlag) {
    zVIEW mSAProf2 = new zVIEW();
    //:VIEW mCollegeLST BASED ON LOD mCollege
    zVIEW mCollegeLST = new zVIEW();
    //:STRING ( 300 ) szMsg
    String szMsg = null;/*from   w  ww.j a v  a 2s  .c  o m*/
    //:STRING ( 300 ) szDesc
    String szDesc = null;
    //:STRING ( 4 )   szCourseNumber4
    String szCourseNumber4 = null;
    //:STRING ( 3 )   szSection
    String szSection = null;
    //:STRING ( 1 )   szCERT_flag
    String szCERT_flag = null;
    //:DECIMAL        dChargePerCreditHour
    double dChargePerCreditHour = 0.0;
    //:DECIMAL        dCredits
    double dCredits = 0.0;
    //:DECIMAL        dChargePerClass
    double dChargePerClass = 0.0;
    //:DECIMAL        dAmount
    double dAmount = 0.0;
    //:INTEGER        dAmountInteger
    int dAmountInteger = 0;
    //:SHORT          nRC
    int nRC = 0;
    int RESULT = 0;
    int lTempInteger_0 = 0;
    int lTempInteger_1 = 0;
    int lTempInteger_2 = 0;
    String szTempString_0 = null;
    int lTempInteger_3 = 0;
    int lTempInteger_4 = 0;
    String szTempString_1 = null;
    int lTempInteger_5 = 0;
    String szTempString_2 = null;
    int lTempInteger_6 = 0;
    String szTempString_3 = null;
    int lTempInteger_7 = 0;
    String szTempString_4 = null;
    int lTempInteger_8 = 0;
    String szTempString_5 = null;
    int lTempInteger_9 = 0;

    //:// Process Summer Tuition Charges Per Class.
    //:// Charges are generated here for all Classes that are NOT charged to DL Tuition, which is:
    //:// 1. The Student DOES NOT HAVE the AdultStudiesFlag set.AND
    //:// 2, The Class IS NOT Section 50.

    //:// There are five different ways that charges can be computed for Summer Tuition, but it is always per Class.
    //:// 1. If there is a tuition override value specified for the Class, we use that value.
    //:// 2. We use the "S1-19 Chg/CR" amount per credit when the Class Section is 01 through 19.
    //:// 3. We use the "S20 Chg/CR" amount per credit when the Class Section is 20
    //:// 4. We use the "Grad Chg/CR" amount per credit if the Class is a graduate Class. (This is determined by
    //://    the Course being tied to the College, "Graduate Studies".
    //:// 5. We use the "Field Chg/CR" amount per credit when the Course Number is one of the field courses defined in the rule.

    //:// In addition, there can be a PBS Discount applied to a Class. 
    //:// The rules identifying Student and Class eligibility for a PBS Discount are defined separately and those rules 
    //:// apply for all tuition and college terms. However, the amount of the discount is specified per Transaction Item / Term
    //:// using the value, "PBS Discount". 

    //:CreateViewFromView( mSAProf2, mSAProf )
    CreateViewFromView(mSAProf2, mSAProf);
    //:NAME VIEW mSAProf2 "mSAProf2"
    SetNameForView(mSAProf2, "mSAProf2", null, zLEVEL_TASK);
    //:   
    //:// Loop through each Class and generate charge and option discount transactions based on Section, credits and
    //:// other Student/Class information. 
    //:// The charge per credit or per Class is defined in SAInternalRuleVariable.
    //:FOR EACH mSAProf2.TermEnrolled WHERE mSAProf2.TermEnrolled.Status != "D"
    RESULT = SetCursorFirstEntity(mSAProf2, "TermEnrolled", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        if (CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "D") != 0) {

            //:// The Class the Student is taking is a graduate class (The Course is tied to a Graduate College), so  don't process.
            //:GET VIEW mCollegeLST NAMED "mCollegeLST"
            RESULT = GetViewByName(mCollegeLST, "mCollegeLST", mSAChrgT, zLEVEL_TASK);
            //:IF RESULT < 0
            if (RESULT < 0) {
                //:ACTIVATE mCollegeLST Multiple
                RESULT = ActivateObjectInstance(mCollegeLST, "mCollege", mSAChrgT, 0, zMULTIPLE);
                //:NAME VIEW mCollegeLST "mCollegeLST"
                SetNameForView(mCollegeLST, "mCollegeLST", null, zLEVEL_TASK);
            }

            //:END
            //:SET CURSOR FIRST mCollegeLST.College WHERE mCollegeLST.College.ID = mSAProf2.TermCourseCollege.ID 
            {
                MutableInt mi_lTempInteger_0 = new MutableInt(lTempInteger_0);
                GetIntegerFromAttribute(mi_lTempInteger_0, mSAProf2, "TermCourseCollege", "ID");
                lTempInteger_0 = mi_lTempInteger_0.intValue();
            }
            RESULT = SetCursorFirstEntityByInteger(mCollegeLST, "College", "ID", lTempInteger_0, "");
            //:IF mCollegeLST.College.Type != "G"   
            if (CompareAttributeToString(mCollegeLST, "College", "Type", "G") != 0) {
                //:dCredits  = mSAProf2.TermEnrolled.CreditHours 
                {
                    MutableDouble md_dCredits = new MutableDouble(dCredits);
                    GetDecimalFromAttribute(md_dCredits, mSAProf2, "TermEnrolled", "CreditHours");
                    dCredits = md_dCredits.doubleValue();
                }
                //:szSection = mSAProf2.TermClass.Section 
                {
                    MutableInt mi_lTempInteger_1 = new MutableInt(lTempInteger_1);
                    StringBuilder sb_szSection;
                    if (szSection == null)
                        sb_szSection = new StringBuilder(32);
                    else
                        sb_szSection = new StringBuilder(szSection);
                    GetVariableFromAttribute(sb_szSection, mi_lTempInteger_1, 'S', 4, mSAProf2, "TermClass",
                            "Section", "", 0);
                    lTempInteger_1 = mi_lTempInteger_1.intValue();
                    szSection = sb_szSection.toString();
                }

                //:szSection = mSAProf2.TermClass.Section 
                {
                    MutableInt mi_lTempInteger_2 = new MutableInt(lTempInteger_2);
                    StringBuilder sb_szSection;
                    if (szSection == null)
                        sb_szSection = new StringBuilder(32);
                    else
                        sb_szSection = new StringBuilder(szSection);
                    GetVariableFromAttribute(sb_szSection, mi_lTempInteger_2, 'S', 4, mSAProf2, "TermClass",
                            "Section", "", 0);
                    lTempInteger_2 = mi_lTempInteger_2.intValue();
                    szSection = sb_szSection.toString();
                }
                //://SET CURSOR FIRST mSAProf2.Category WHERE mSAProf2.Category.Name = "Distance Learning"
                //://                                      OR mSAProf2.Category.Name = "ADP Student"
                //://IF RESULT < zCURSOR_SET AND mSAProf2.TermClass.AdultStudiesFlag != "Y" 
                //:IF mSAProf.Student.AdultStudiesFlag != "Y" AND mSAProf2.TermClass.AdultStudiesFlag != "Y" 
                if (CompareAttributeToString(mSAProf, "Student", "AdultStudiesFlag", "Y") != 0
                        && CompareAttributeToString(mSAProf2, "TermClass", "AdultStudiesFlag", "Y") != 0) {

                    //:// Tuition Override on Class
                    //:IF mSAProf2.TermClass.OverrideClassTuition > 0
                    if (CompareAttributeToInteger(mSAProf2, "TermClass", "OverrideClassTuition", 0) > 0) {

                        //:// The Charge is simply the amount specified in Class.
                        //:dAmount = mSAProf2.TermClass.OverrideClassTuition 
                        {
                            MutableDouble md_dAmount = new MutableDouble(dAmount);
                            GetDecimalFromAttribute(md_dAmount, mSAProf2, "TermClass", "OverrideClassTuition");
                            dAmount = md_dAmount.doubleValue();
                        }
                        //:// Process resulting Charge or Refund.
                        //:IF szRefundFlag = ""
                        if (ZeidonStringCompare(szRefundFlag, 1, 0, "", 1, 0, 2) == 0) {
                            //:// Regular Charge, not Refund. Generate entry if there is a positive amount.
                            //:IF dAmount > 0
                            if (dAmount > 0) {
                                //:// Generate the charge if it isn't already there.
                                //:szDesc = mSAChrgT.SATransactionCode.Description + " - " + mSAProf2.TermCourse.Number + "-" + szSection + " Override Charge"
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    GetStringFromAttribute(sb_szDesc, mSAChrgT, "SATransactionCode",
                                            "Description");
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, " - ", 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    MutableInt mi_lTempInteger_3 = new MutableInt(lTempInteger_3);
                                    StringBuilder sb_szTempString_0;
                                    if (szTempString_0 == null)
                                        sb_szTempString_0 = new StringBuilder(32);
                                    else
                                        sb_szTempString_0 = new StringBuilder(szTempString_0);
                                    GetVariableFromAttribute(sb_szTempString_0, mi_lTempInteger_3, 'S', 11,
                                            mSAProf2, "TermCourse", "Number", "", 0);
                                    lTempInteger_3 = mi_lTempInteger_3.intValue();
                                    szTempString_0 = sb_szTempString_0.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, szTempString_0, 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, "-", 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, szSection, 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, " Override Charge", 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dAmount, szDesc )
                                nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dAmount, szDesc);
                                //:IF nRC >= 0
                                if (nRC >= 0) {
                                    //:// Add Course Number and Class Section to description.
                                    //:mSAProf.StudentAccountTransApplied.Description = szDesc
                                    SetAttributeFromString(mSAProf, "StudentAccountTransApplied", "Description",
                                            szDesc);
                                }

                                //:END
                            }

                            //:END
                            //:ELSE
                        } else {
                            //:// Refund.
                            //:// We'll process a Refund if the Amount has changed.
                            //:IF dAmount != mSAProf.PeriodTransApplied.Amount 
                            if (CompareAttributeToDecimal(mSAProf, "PeriodTransApplied", "Amount",
                                    dAmount) != 0) {
                                //:GenerateRefundEntry( mSAChrgT, mSAProf )
                                omSAChrgT_GenerateRefundEntry(mSAChrgT, mSAProf);
                            }

                            //:END
                        }

                        //:END

                        //:ELSE
                    } else {

                        //:// TUITION CHARGE FROM RULE VARIABLE
                        //:// In the following cases, the charge (dAmount) is determined by positioning on the correct Rule Variable.
                        //:// We we first position on the correct Rule Variable, and then create the charge.

                        //:// Graduate Class Charge/Credit
                        //:// The Class the Student is taking is a graduate class (The Course is tied to a Graduate College)
                        //:GET VIEW mCollegeLST NAMED "mCollegeLST"
                        RESULT = GetViewByName(mCollegeLST, "mCollegeLST", mSAChrgT, zLEVEL_TASK);
                        //:IF RESULT < 0
                        if (RESULT < 0) {
                            //:ACTIVATE mCollegeLST Multiple
                            RESULT = ActivateObjectInstance(mCollegeLST, "mCollege", mSAChrgT, 0, zMULTIPLE);
                            //:NAME VIEW mCollegeLST "mCollegeLST"
                            SetNameForView(mCollegeLST, "mCollegeLST", null, zLEVEL_TASK);
                        }

                        //:END
                        //:SET CURSOR FIRST mCollegeLST.College WHERE mCollegeLST.College.ID = mSAProf2.TermCourseCollege.ID 
                        {
                            MutableInt mi_lTempInteger_4 = new MutableInt(lTempInteger_4);
                            GetIntegerFromAttribute(mi_lTempInteger_4, mSAProf2, "TermCourseCollege", "ID");
                            lTempInteger_4 = mi_lTempInteger_4.intValue();
                        }
                        RESULT = SetCursorFirstEntityByInteger(mCollegeLST, "College", "ID", lTempInteger_4,
                                "");
                        //:IF mCollegeLST.College.Type = "G"
                        if (CompareAttributeToString(mCollegeLST, "College", "Type", "G") == 0) {
                            //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "Grad Chg/CR"
                            RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                    "Grad Chg/CR", "");
                            //:IF RESULT < zCURSOR_SET
                            if (RESULT < zCURSOR_SET) {
                                //:szMsg = "No Rule Variable match on Summer Tuition 'Grad Chg/CR'"
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringCopy(sb_szMsg, 1, 0,
                                            "No Rule Variable match on Summer Tuition 'Grad Chg/CR'", 1, 0,
                                            301);
                                    szMsg = sb_szMsg.toString();
                                }
                                //:MessageSend( mSAChrgT, "", "Billing Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                                MessageSend(mSAChrgT, "", "Billing Process Rule", szMsg,
                                        zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                                //:RETURN -1
                                if (8 == 8)
                                    return (-1);
                            }

                            //:END
                            //:dChargePerCreditHour = mSAChrgT.SAInternalRuleVariable.Value
                            {
                                MutableDouble md_dChargePerCreditHour = new MutableDouble(dChargePerCreditHour);
                                GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT,
                                        "SAInternalRuleVariable", "Value");
                                dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                            }
                            //:dAmount = dChargePerCreditHour * dCredits
                            dAmount = dChargePerCreditHour * dCredits;
                            //:szDesc = mSAChrgT.SATransactionCode.Description + " Grad - " + mSAProf2.TermCourse.Number + "-" + szSection
                            {
                                StringBuilder sb_szDesc;
                                if (szDesc == null)
                                    sb_szDesc = new StringBuilder(32);
                                else
                                    sb_szDesc = new StringBuilder(szDesc);
                                GetStringFromAttribute(sb_szDesc, mSAChrgT, "SATransactionCode", "Description");
                                szDesc = sb_szDesc.toString();
                            }
                            {
                                StringBuilder sb_szDesc;
                                if (szDesc == null)
                                    sb_szDesc = new StringBuilder(32);
                                else
                                    sb_szDesc = new StringBuilder(szDesc);
                                ZeidonStringConcat(sb_szDesc, 1, 0, " Grad - ", 1, 0, 301);
                                szDesc = sb_szDesc.toString();
                            }
                            {
                                MutableInt mi_lTempInteger_5 = new MutableInt(lTempInteger_5);
                                StringBuilder sb_szTempString_1;
                                if (szTempString_1 == null)
                                    sb_szTempString_1 = new StringBuilder(32);
                                else
                                    sb_szTempString_1 = new StringBuilder(szTempString_1);
                                GetVariableFromAttribute(sb_szTempString_1, mi_lTempInteger_5, 'S', 11,
                                        mSAProf2, "TermCourse", "Number", "", 0);
                                lTempInteger_5 = mi_lTempInteger_5.intValue();
                                szTempString_1 = sb_szTempString_1.toString();
                            }
                            {
                                StringBuilder sb_szDesc;
                                if (szDesc == null)
                                    sb_szDesc = new StringBuilder(32);
                                else
                                    sb_szDesc = new StringBuilder(szDesc);
                                ZeidonStringConcat(sb_szDesc, 1, 0, szTempString_1, 1, 0, 301);
                                szDesc = sb_szDesc.toString();
                            }
                            {
                                StringBuilder sb_szDesc;
                                if (szDesc == null)
                                    sb_szDesc = new StringBuilder(32);
                                else
                                    sb_szDesc = new StringBuilder(szDesc);
                                ZeidonStringConcat(sb_szDesc, 1, 0, "-", 1, 0, 301);
                                szDesc = sb_szDesc.toString();
                            }
                            {
                                StringBuilder sb_szDesc;
                                if (szDesc == null)
                                    sb_szDesc = new StringBuilder(32);
                                else
                                    sb_szDesc = new StringBuilder(szDesc);
                                ZeidonStringConcat(sb_szDesc, 1, 0, szSection, 1, 0, 301);
                                szDesc = sb_szDesc.toString();
                            }

                            //:ELSE
                        } else {

                            //:// Field Trip Special Tuition
                            //:// Classes HRNS275,  HRNS375, GEOL240 ad GEOL330 use "Field Chg/CR" variable.
                            //:IF mSAProf2.TermCourse.Number = "HNRS275" OR 
                            //:mSAProf2.TermCourse.Number = "HNRS375" OR
                            //:mSAProf2.TermCourse.Number = "GEOL240" OR
                            //:mSAProf2.TermCourse.Number = "GEOL330"
                            if (CompareAttributeToString(mSAProf2, "TermCourse", "Number", "HNRS275") == 0
                                    || CompareAttributeToString(mSAProf2, "TermCourse", "Number",
                                            "HNRS375") == 0
                                    || CompareAttributeToString(mSAProf2, "TermCourse", "Number",
                                            "GEOL240") == 0
                                    || CompareAttributeToString(mSAProf2, "TermCourse", "Number",
                                            "GEOL330") == 0) {

                                //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "Field Chg/CR"
                                RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable",
                                        "Name", "Field Chg/CR", "");
                                //:IF RESULT < zCURSOR_SET
                                if (RESULT < zCURSOR_SET) {
                                    //:szMsg = "No Rule Variable match on Summer Tuition 'Field Chg/CR'"
                                    {
                                        StringBuilder sb_szMsg;
                                        if (szMsg == null)
                                            sb_szMsg = new StringBuilder(32);
                                        else
                                            sb_szMsg = new StringBuilder(szMsg);
                                        ZeidonStringCopy(sb_szMsg, 1, 0,
                                                "No Rule Variable match on Summer Tuition 'Field Chg/CR'", 1, 0,
                                                301);
                                        szMsg = sb_szMsg.toString();
                                    }
                                    //:MessageSend( mSAChrgT, "", "Billing Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                                    MessageSend(mSAChrgT, "", "Billing Process Rule", szMsg,
                                            zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                                    //:RETURN -1
                                    if (8 == 8)
                                        return (-1);
                                }

                                //:END
                                //:dChargePerCreditHour = mSAChrgT.SAInternalRuleVariable.Value
                                {
                                    MutableDouble md_dChargePerCreditHour = new MutableDouble(
                                            dChargePerCreditHour);
                                    GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT,
                                            "SAInternalRuleVariable", "Value");
                                    dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                                }
                                //:dAmount = dChargePerCreditHour * dCredits
                                dAmount = dChargePerCreditHour * dCredits;
                                //:szDesc = mSAChrgT.SATransactionCode.Description + " - " + mSAProf2.TermCourse.Number + "-" + szSection
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    GetStringFromAttribute(sb_szDesc, mSAChrgT, "SATransactionCode",
                                            "Description");
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, " - ", 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    MutableInt mi_lTempInteger_6 = new MutableInt(lTempInteger_6);
                                    StringBuilder sb_szTempString_2;
                                    if (szTempString_2 == null)
                                        sb_szTempString_2 = new StringBuilder(32);
                                    else
                                        sb_szTempString_2 = new StringBuilder(szTempString_2);
                                    GetVariableFromAttribute(sb_szTempString_2, mi_lTempInteger_6, 'S', 11,
                                            mSAProf2, "TermCourse", "Number", "", 0);
                                    lTempInteger_6 = mi_lTempInteger_6.intValue();
                                    szTempString_2 = sb_szTempString_2.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, szTempString_2, 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, "-", 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringConcat(sb_szDesc, 1, 0, szSection, 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }

                                //:ELSE
                            } else {

                                //:// Sections 01-19 Class Charge/Credit
                                //:// Any Class with Section "01" through "19" uses "S1-19 Chg/CR" variable.
                                //:IF szSection >= "01" AND szSection <= "19"
                                if (ZeidonStringCompare(szSection, 1, 0, "01", 1, 0, 4) <= 0
                                        && ZeidonStringCompare(szSection, 1, 0, "19", 1, 0, 4) >= 0) {

                                    //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "S1-19 Chg/CR"
                                    RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable",
                                            "Name", "S1-19 Chg/CR", "");
                                    //:IF RESULT < zCURSOR_SET
                                    if (RESULT < zCURSOR_SET) {
                                        //:szMsg = "No Rule Variable match on Summer Tuition 'S1-19 Chg/CR'"
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringCopy(sb_szMsg, 1, 0,
                                                    "No Rule Variable match on Summer Tuition 'S1-19 Chg/CR'",
                                                    1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        //:MessageSend( mSAChrgT, "", "Billing Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                                        MessageSend(mSAChrgT, "", "Billing Process Rule", szMsg,
                                                zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                                        //:RETURN -1
                                        if (8 == 8)
                                            return (-1);
                                    }

                                    //:END
                                    //:dChargePerCreditHour = mSAChrgT.SAInternalRuleVariable.Value
                                    {
                                        MutableDouble md_dChargePerCreditHour = new MutableDouble(
                                                dChargePerCreditHour);
                                        GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT,
                                                "SAInternalRuleVariable", "Value");
                                        dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                                    }
                                    //:dAmount = dChargePerCreditHour * dCredits
                                    dAmount = dChargePerCreditHour * dCredits;
                                    //:szDesc = mSAChrgT.SATransactionCode.Description + " - " + mSAProf2.TermCourse.Number + "-" + szSection
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        GetStringFromAttribute(sb_szDesc, mSAChrgT, "SATransactionCode",
                                                "Description");
                                        szDesc = sb_szDesc.toString();
                                    }
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        ZeidonStringConcat(sb_szDesc, 1, 0, " - ", 1, 0, 301);
                                        szDesc = sb_szDesc.toString();
                                    }
                                    {
                                        MutableInt mi_lTempInteger_7 = new MutableInt(lTempInteger_7);
                                        StringBuilder sb_szTempString_3;
                                        if (szTempString_3 == null)
                                            sb_szTempString_3 = new StringBuilder(32);
                                        else
                                            sb_szTempString_3 = new StringBuilder(szTempString_3);
                                        GetVariableFromAttribute(sb_szTempString_3, mi_lTempInteger_7, 'S', 11,
                                                mSAProf2, "TermCourse", "Number", "", 0);
                                        lTempInteger_7 = mi_lTempInteger_7.intValue();
                                        szTempString_3 = sb_szTempString_3.toString();
                                    }
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        ZeidonStringConcat(sb_szDesc, 1, 0, szTempString_3, 1, 0, 301);
                                        szDesc = sb_szDesc.toString();
                                    }
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        ZeidonStringConcat(sb_szDesc, 1, 0, "-", 1, 0, 301);
                                        szDesc = sb_szDesc.toString();
                                    }
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        ZeidonStringConcat(sb_szDesc, 1, 0, szSection, 1, 0, 301);
                                        szDesc = sb_szDesc.toString();
                                    }

                                    //:ELSE
                                } else {

                                    //:// Section 20 Class Charge/Credit
                                    //:// Any Class with Section "20" uses "S20 Chg/CR" variable.
                                    //:IF szSection = "20"
                                    if (ZeidonStringCompare(szSection, 1, 0, "20", 1, 0, 4) == 0) {

                                        //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "S20 Chg/CR"
                                        RESULT = SetCursorFirstEntityByString(mSAChrgT,
                                                "SAInternalRuleVariable", "Name", "S20 Chg/CR", "");
                                        //:IF RESULT < zCURSOR_SET
                                        if (RESULT < zCURSOR_SET) {
                                            //:szMsg = "No Rule Variable match on Summer Tuition 'S20 Chg/CR'"
                                            {
                                                StringBuilder sb_szMsg;
                                                if (szMsg == null)
                                                    sb_szMsg = new StringBuilder(32);
                                                else
                                                    sb_szMsg = new StringBuilder(szMsg);
                                                ZeidonStringCopy(sb_szMsg, 1, 0,
                                                        "No Rule Variable match on Summer Tuition 'S20 Chg/CR'",
                                                        1, 0, 301);
                                                szMsg = sb_szMsg.toString();
                                            }
                                            //:MessageSend( mSAChrgT, "", "Billing Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                                            MessageSend(mSAChrgT, "", "Billing Process Rule", szMsg,
                                                    zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                                            //:RETURN -1
                                            if (8 == 8)
                                                return (-1);
                                        }

                                        //:END
                                        //:dChargePerCreditHour = mSAChrgT.SAInternalRuleVariable.Value
                                        {
                                            MutableDouble md_dChargePerCreditHour = new MutableDouble(
                                                    dChargePerCreditHour);
                                            GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT,
                                                    "SAInternalRuleVariable", "Value");
                                            dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                                        }
                                        //:dAmount = dChargePerCreditHour * dCredits
                                        dAmount = dChargePerCreditHour * dCredits;
                                        //:szDesc = mSAChrgT.SATransactionCode.Description + " - " + mSAProf2.TermCourse.Number + "-" + szSection
                                        {
                                            StringBuilder sb_szDesc;
                                            if (szDesc == null)
                                                sb_szDesc = new StringBuilder(32);
                                            else
                                                sb_szDesc = new StringBuilder(szDesc);
                                            GetStringFromAttribute(sb_szDesc, mSAChrgT, "SATransactionCode",
                                                    "Description");
                                            szDesc = sb_szDesc.toString();
                                        }
                                        {
                                            StringBuilder sb_szDesc;
                                            if (szDesc == null)
                                                sb_szDesc = new StringBuilder(32);
                                            else
                                                sb_szDesc = new StringBuilder(szDesc);
                                            ZeidonStringConcat(sb_szDesc, 1, 0, " - ", 1, 0, 301);
                                            szDesc = sb_szDesc.toString();
                                        }
                                        {
                                            MutableInt mi_lTempInteger_8 = new MutableInt(lTempInteger_8);
                                            StringBuilder sb_szTempString_4;
                                            if (szTempString_4 == null)
                                                sb_szTempString_4 = new StringBuilder(32);
                                            else
                                                sb_szTempString_4 = new StringBuilder(szTempString_4);
                                            GetVariableFromAttribute(sb_szTempString_4, mi_lTempInteger_8, 'S',
                                                    11, mSAProf2, "TermCourse", "Number", "", 0);
                                            lTempInteger_8 = mi_lTempInteger_8.intValue();
                                            szTempString_4 = sb_szTempString_4.toString();
                                        }
                                        {
                                            StringBuilder sb_szDesc;
                                            if (szDesc == null)
                                                sb_szDesc = new StringBuilder(32);
                                            else
                                                sb_szDesc = new StringBuilder(szDesc);
                                            ZeidonStringConcat(sb_szDesc, 1, 0, szTempString_4, 1, 0, 301);
                                            szDesc = sb_szDesc.toString();
                                        }
                                        {
                                            StringBuilder sb_szDesc;
                                            if (szDesc == null)
                                                sb_szDesc = new StringBuilder(32);
                                            else
                                                sb_szDesc = new StringBuilder(szDesc);
                                            ZeidonStringConcat(sb_szDesc, 1, 0, "-", 1, 0, 301);
                                            szDesc = sb_szDesc.toString();
                                        }
                                        {
                                            StringBuilder sb_szDesc;
                                            if (szDesc == null)
                                                sb_szDesc = new StringBuilder(32);
                                            else
                                                sb_szDesc = new StringBuilder(szDesc);
                                            ZeidonStringConcat(sb_szDesc, 1, 0, szSection, 1, 0, 301);
                                            szDesc = sb_szDesc.toString();
                                        }

                                        //:ELSE
                                    } else {

                                        //:// Anything else is an error.
                                        //:szMsg = "Unexpected Class Type on Summer Tuition"
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringCopy(sb_szMsg, 1, 0,
                                                    "Unexpected Class Type on Summer Tuition", 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        //:MessageSend( mSAChrgT, "", "Billing Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                                        MessageSend(mSAChrgT, "", "Billing Process Rule", szMsg,
                                                zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                                        //:RETURN -1
                                        if (8 == 8)
                                            return (-1);
                                    }

                                    //:END
                                }

                                //:END
                            }

                            //:END
                        }

                        //:END

                        //:// Process resulting Charge or Refund.
                        //:IF szRefundFlag = ""
                        if (ZeidonStringCompare(szRefundFlag, 1, 0, "", 1, 0, 2) == 0) {
                            //:// Regular Charge, not Refund. Generate entry if there is a positive amount.
                            //:IF dAmount > 0
                            if (dAmount > 0) {
                                //:// Generate the charge if it isn't already there. Add two blanks at end so it sorts before any discount.
                                //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dAmount, szDesc )
                                nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dAmount, szDesc);
                                //:IF nRC >= 0
                                if (nRC >= 0) {
                                    //:// Add Course Number and Class Section to description.
                                    //:mSAProf.StudentAccountTransApplied.Description = szDesc
                                    SetAttributeFromString(mSAProf, "StudentAccountTransApplied", "Description",
                                            szDesc);
                                }

                                //:END

                                //:// PBS Student Discount
                                //:// The rules for a PBS Student are found in the operation, CheckPBS_ForClass, which returns a "1" if the Student
                                //:// and Class are eligible for PBS Discount.
                                //:nRC = CheckPBS_ForClass( mSAChrgT, mSAProf2 )
                                nRC = omSAChrgT_CheckPBS_ForClass(mSAChrgT, mSAProf2);
                                //:IF nRC = 1 
                                if (nRC == 1) {

                                    //:// The PBS Discount is 50% (rounded) of amount generated earlier.
                                    //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PBS Discount"
                                    RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable",
                                            "Name", "PBS Discount", "");
                                    //:IF RESULT < zCURSOR_SET
                                    if (RESULT < zCURSOR_SET) {
                                        //:szMsg = "No Rule Variable match on Summer Tuition 'PBS Discount'"
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringCopy(sb_szMsg, 1, 0,
                                                    "No Rule Variable match on Summer Tuition 'PBS Discount'",
                                                    1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        //:MessageSend( mSAChrgT, "", "Billing Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                                        MessageSend(mSAChrgT, "", "Billing Process Rule", szMsg,
                                                zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                                        //:RETURN -1
                                        if (8 == 8)
                                            return (-1);
                                    }

                                    //:END
                                    //:dAmount = dAmount * .5
                                    dAmount = dAmount * .5;
                                    //:dAmountInteger = dAmount
                                    dAmountInteger = (int) dAmount;
                                    //:dAmount = 0 - dAmountInteger      // Charge is negative of dAmount.
                                    dAmount = 0 - dAmountInteger;
                                    //:szDesc = mSAChrgT.SATransactionCode.Description + " PBS Discount - " + mSAProf2.TermCourse.Number + "-" + szSection
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        GetStringFromAttribute(sb_szDesc, mSAChrgT, "SATransactionCode",
                                                "Description");
                                        szDesc = sb_szDesc.toString();
                                    }
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        ZeidonStringConcat(sb_szDesc, 1, 0, " PBS Discount - ", 1, 0, 301);
                                        szDesc = sb_szDesc.toString();
                                    }
                                    {
                                        MutableInt mi_lTempInteger_9 = new MutableInt(lTempInteger_9);
                                        StringBuilder sb_szTempString_5;
                                        if (szTempString_5 == null)
                                            sb_szTempString_5 = new StringBuilder(32);
                                        else
                                            sb_szTempString_5 = new StringBuilder(szTempString_5);
                                        GetVariableFromAttribute(sb_szTempString_5, mi_lTempInteger_9, 'S', 11,
                                                mSAProf2, "TermCourse", "Number", "", 0);
                                        lTempInteger_9 = mi_lTempInteger_9.intValue();
                                        szTempString_5 = sb_szTempString_5.toString();
                                    }
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        ZeidonStringConcat(sb_szDesc, 1, 0, szTempString_5, 1, 0, 301);
                                        szDesc = sb_szDesc.toString();
                                    }
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        ZeidonStringConcat(sb_szDesc, 1, 0, "-", 1, 0, 301);
                                        szDesc = sb_szDesc.toString();
                                    }
                                    {
                                        StringBuilder sb_szDesc;
                                        if (szDesc == null)
                                            sb_szDesc = new StringBuilder(32);
                                        else
                                            sb_szDesc = new StringBuilder(szDesc);
                                        ZeidonStringConcat(sb_szDesc, 1, 0, szSection, 1, 0, 301);
                                        szDesc = sb_szDesc.toString();
                                    }
                                    //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dAmount, szDesc )
                                    nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dAmount, szDesc);
                                }

                                //:END 
                            }

                            //:END
                            //:ELSE
                        } else {
                            //:// Refund.
                            //:// Note that the ProcessInternalRule operation is called for each existing SA Transaction, meaning it is called
                            //:// for each Class Charge. Since we are in a loop for each Class for the Semester, we only want to handle a Class
                            //:// that is the same as the PeriodTransApplied entry for which we're processing the Refund.
                            //:// Thus, two things have to be true in order to process this Refund.
                            //:// 1. There has to be a match on the transaction description.
                            //:// 2. The Amount must have changed.
                            //:// We'll process a Refund if the Amount has changed.
                            //:IF mSAProf.PeriodTransApplied.Description = szDesc
                            if (CompareAttributeToString(mSAProf, "PeriodTransApplied", "Description",
                                    szDesc) == 0) {
                                //:IF dAmount != mSAProf.PeriodTransApplied.Amount 
                                if (CompareAttributeToDecimal(mSAProf, "PeriodTransApplied", "Amount",
                                        dAmount) != 0) {
                                    //:GenerateRefundEntry( mSAChrgT, mSAProf )
                                    omSAChrgT_GenerateRefundEntry(mSAChrgT, mSAProf);
                                }

                                //:END
                            }

                            //:END
                        }

                        //:END
                    }

                    //:END
                }

                //:END
            }

        }

        RESULT = SetCursorNextEntity(mSAProf2, "TermEnrolled", "");
        //:END
    }

    //:END

    //:DropView( mSAProf2 )
    DropView(mSAProf2);
    return (0);
    // END
}

From source file:com.quinsoft.zencas.mFAProf_Object.java

public int omFAProf_dTotalUnmetNeed(View mFAProf, String InternalEntityStructure,
        String InternalAttribStructure, Integer GetOrSetFlag) {
    double dAmount = 0.0;
    //:DECIMAL dAmountAward 
    double dAmountAward = 0.0;
    //:DECIMAL dAmountOfNeed
    double dAmountOfNeed = 0.0;

    //:CASE GetOrSetFlag
    switch (GetOrSetFlag) {
    //:OF   zDERIVED_GET:
    case zDERIVED_GET:
    //:dAmountOfNeed = mFAProf.FinAidProfile.dTotalNeed
    {/*  www.j ava 2  s . co m*/
        MutableDouble md_dAmountOfNeed = new MutableDouble(dAmountOfNeed);
        GetDecimalFromAttribute(md_dAmountOfNeed, mFAProf, "FinAidProfile", "dTotalNeed");
        dAmountOfNeed = md_dAmountOfNeed.doubleValue();
    }
    //:dAmountAward  = mFAProf.FinAidProfile.dTotalAward 
    {
        MutableDouble md_dAmountAward = new MutableDouble(dAmountAward);
        GetDecimalFromAttribute(md_dAmountAward, mFAProf, "FinAidProfile", "dTotalAward");
        dAmountAward = md_dAmountAward.doubleValue();
    }
        //:dAmount = dAmountOfNeed - dAmountAward
        dAmount = dAmountOfNeed - dAmountAward;
        //:IF  dAmount < 0 
        if (dAmount < 0) {
            //:dAmount = 0 
            dAmount = 0;
        }

        //:END
        //:StoreValueInRecord( mFAProf,InternalEntityStructure,
        //:                    InternalAttribStructure, dAmount, 0 )
        StoreValueInRecord(mFAProf, InternalEntityStructure, InternalAttribStructure, dAmount, 0);
        break;
    //:/* end zDERIVED_GET */
    //:OF   zDERIVED_SET:
    case zDERIVED_SET:
        break;
    }

    //:     /* end zDERIVED_SET */
    //:END  /* case */
    return (0);
    // END
}

From source file:com.quinsoft.zencas.mFAProf_Object.java

public int omFAProf_dTotalUnmetNeedCalc(View mFAProf, String InternalEntityStructure,
        String InternalAttribStructure, Integer GetOrSetFlag) {
    double dAmount = 0.0;
    //:DECIMAL dAmountAward 
    double dAmountAward = 0.0;
    //:DECIMAL dAmountOfNeed
    double dAmountOfNeed = 0.0;

    //:CASE GetOrSetFlag
    switch (GetOrSetFlag) {
    //:OF   zDERIVED_GET:
    case zDERIVED_GET:

    //:// Same as dTotalUnmetNeed, except it doesn't have the check to make negative amounts zero.
    //:dAmountOfNeed = mFAProf.FinAidProfile.dTotalNeed
    {//ww  w .j a v  a2s  . c  o m
        MutableDouble md_dAmountOfNeed = new MutableDouble(dAmountOfNeed);
        GetDecimalFromAttribute(md_dAmountOfNeed, mFAProf, "FinAidProfile", "dTotalNeed");
        dAmountOfNeed = md_dAmountOfNeed.doubleValue();
    }
    //:dAmountAward  = mFAProf.FinAidProfile.dTotalAward 
    {
        MutableDouble md_dAmountAward = new MutableDouble(dAmountAward);
        GetDecimalFromAttribute(md_dAmountAward, mFAProf, "FinAidProfile", "dTotalAward");
        dAmountAward = md_dAmountAward.doubleValue();
    }
        //:dAmount = dAmountOfNeed - dAmountAward
        dAmount = dAmountOfNeed - dAmountAward;
        //:StoreValueInRecord( mFAProf,InternalEntityStructure,
        //:                    InternalAttribStructure, dAmount, 0 )
        StoreValueInRecord(mFAProf, InternalEntityStructure, InternalAttribStructure, dAmount, 0);
        break;
    //:/* end zDERIVED_GET */
    //:OF   zDERIVED_SET:
    case zDERIVED_SET:
        break;
    }

    //:     /* end zDERIVED_SET */
    //:END  /* case */
    return (0);
    // END
}

From source file:com.quinsoft.zencas.mFAProf_Object.java

public int omFAProf_dTotalWorkStudy(View mFAProf, String InternalEntityStructure,
        String InternalAttribStructure, Integer GetOrSetFlag) {
    double dTotal = 0.0;
    int RESULT = 0;
    double dTempDecimal_0 = 0.0;

    //:CASE GetOrSetFlag
    switch (GetOrSetFlag) {
    //:OF   zDERIVED_GET:
    case zDERIVED_GET:
        //:FOR EACH mFAProf.WorkStudyAllocation
        RESULT = mFAProf.cursor("WorkStudyAllocation").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:dTotal = dTotal + mFAProf.WorkStudyAllocation.Amount 
            {/*  w  w w  .  j av  a  2  s  .co  m*/
                MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                GetDecimalFromAttribute(md_dTempDecimal_0, mFAProf, "WorkStudyAllocation", "Amount");
                dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
            }
            dTotal = dTotal + dTempDecimal_0;
            RESULT = mFAProf.cursor("WorkStudyAllocation").setNextContinue().toInt();
            ;
        }

        //:END
        //:StoreValueInRecord( mFAProf,InternalEntityStructure,
        //:                    InternalAttribStructure, dTotal, 0 )
        StoreValueInRecord(mFAProf, InternalEntityStructure, InternalAttribStructure, dTotal, 0);
        break;
    //:/* end zDERIVED_GET */
    //:OF   zDERIVED_SET:
    case zDERIVED_SET:
        break;
    }

    //:     /* end zDERIVED_SET */
    //:END  /* case */
    return (0);
    // END 
}

From source file:com.quinsoft.zencas.mFAProf_Object.java

public int omFAProf_dTGiftNeedBasedAwards(View mFAProf, String InternalEntityStructure,
        String InternalAttribStructure, Integer GetOrSetFlag) {
    zVIEW mFAProf2 = new zVIEW();
    //:DECIMAL dAmount 
    double dAmount = 0.0;
    int RESULT = 0;
    double dTempDecimal_0 = 0.0;

    //:CASE GetOrSetFlag
    switch (GetOrSetFlag) {
    //:OF zDERIVED_GET:
    case zDERIVED_GET:
        //:CreateViewFromView( mFAProf2, mFAProf )
        CreateViewFromView(mFAProf2, mFAProf);
        //:dAmount = 0 
        dAmount = 0;/*from ww  w.java  2  s  .  c om*/
        //:FOR EACH mFAProf2.FinAidAward  
        //:      WHERE mFAProf2.FinAidAward.AwardType != "S" OR mFAProf2.FinAidSource.IsNeedBased = "Y" 
        RESULT = mFAProf2.cursor("FinAidAward").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            if (CompareAttributeToString(mFAProf2, "FinAidAward", "AwardType", "S") != 0
                    || CompareAttributeToString(mFAProf2, "FinAidSource", "IsNeedBased", "Y") == 0) {
                //:IF mFAProf2.FinAidAward.AwardStatus = "A" OR 
                //:mFAProf2.FinAidAward.AwardStatus = "Y" OR 
                //:mFAProf2.FinAidAward.AwardStatus = "P"
                if (CompareAttributeToString(mFAProf2, "FinAidAward", "AwardStatus", "A") == 0
                        || CompareAttributeToString(mFAProf2, "FinAidAward", "AwardStatus", "Y") == 0
                        || CompareAttributeToString(mFAProf2, "FinAidAward", "AwardStatus", "P") == 0) {

                    //:dAmount = dAmount + mFAProf2.FinAidAward.Amount
                    {
                        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                        GetDecimalFromAttribute(md_dTempDecimal_0, mFAProf2, "FinAidAward", "Amount");
                        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                    }
                    dAmount = dAmount + dTempDecimal_0;
                    //:ELSE 
                } else {
                }

            }

            RESULT = mFAProf2.cursor("FinAidAward").setNextContinue().toInt();
            ;
            //:   // dont do anything
            //:END 
        }

        //:   /*IF mFAProf2.FinAidAward.AwardStatus = "A" 
        //:      dAmount = dAmount + mFAProf2.FinAidAward.AmountOffered   
        //:   ELSE 
        //:      IF mFAProf2.FinAidAward.AwardStatus = "Y" 
        //:         dAmount = dAmount + mFAProf2.FinAidAward.Amount
        //:      ELSE 
        //:         // dont do anything
        //:      END 
        //:   END*/
        //:END
        //:DropView( mFAProf2 ) 
        DropView(mFAProf2);
        //:StoreValueInRecord( mFAProf,InternalEntityStructure,
        //:                    InternalAttribStructure, dAmount, 0 )
        StoreValueInRecord(mFAProf, InternalEntityStructure, InternalAttribStructure, dAmount, 0);
        break;
    //:/* end zDERIVED_GET */
    //:OF zDERIVED_SET:
    case zDERIVED_SET:
        break;
    }

    //:     /* end zDERIVED_SET */
    //:END  /* case */
    return (0);
    // END
}

From source file:com.quinsoft.zencas.mFAProf_Object.java

public int omFAProf_dTotalSHAward(View mFAProf, String InternalEntityStructure, String InternalAttribStructure,
        Integer GetOrSetFlag) {/*  w w  w . j av a  2  s.co  m*/
    zVIEW mFAProf2 = new zVIEW();
    //:DECIMAL dAmount 
    double dAmount = 0.0;
    int RESULT = 0;
    double dTempDecimal_0 = 0.0;

    //:CASE GetOrSetFlag
    switch (GetOrSetFlag) {
    //:OF   zDERIVED_GET:
    case zDERIVED_GET:
        //:CreateViewFromView( mFAProf2, mFAProf )
        CreateViewFromView(mFAProf2, mFAProf);
        //:dAmount = 0 
        dAmount = 0;
        //:FOR EACH mFAProf2.FinAidAward 
        //:      WHERE mFAProf2.FinAidAward.AwardType = "S" AND mFAProf2.FinAidSource.IsNeedBased != "Y"
        RESULT = mFAProf2.cursor("FinAidAward").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            if (CompareAttributeToString(mFAProf2, "FinAidAward", "AwardType", "S") == 0
                    && CompareAttributeToString(mFAProf2, "FinAidSource", "IsNeedBased", "Y") != 0) {
                //:IF mFAProf2.FinAidAward.AwardStatus = "A" OR mFAProf2.FinAidAward.AwardStatus = "Y" 
                if (CompareAttributeToString(mFAProf2, "FinAidAward", "AwardStatus", "A") == 0
                        || CompareAttributeToString(mFAProf2, "FinAidAward", "AwardStatus", "Y") == 0) {
                    //:dAmount = dAmount + mFAProf2.FinAidAward.Amount
                    {
                        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                        GetDecimalFromAttribute(md_dTempDecimal_0, mFAProf2, "FinAidAward", "Amount");
                        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                    }
                    dAmount = dAmount + dTempDecimal_0;
                    //:ELSE 
                } else {
                }

            }

            RESULT = mFAProf2.cursor("FinAidAward").setNextContinue().toInt();
            ;
            //:   // dont do anything
            //:END
        }

        //:   /*IF mFAProf2.FinAidAward.AwardStatus = "A" 
        //:      dAmount = dAmount + mFAProf2.FinAidAward.AmountOffered   
        //:   ELSE 
        //:      IF mFAProf2.FinAidAward.AwardStatus = "Y" 
        //:         dAmount = dAmount + mFAProf2.FinAidAward.Amount
        //:      ELSE 
        //:         // dont do anything
        //:      END 
        //:   END*/
        //:END
        //:DropView( mFAProf2 ) 
        DropView(mFAProf2);
        //:StoreValueInRecord( mFAProf,InternalEntityStructure,
        //:                    InternalAttribStructure, dAmount, 0 )
        StoreValueInRecord(mFAProf, InternalEntityStructure, InternalAttribStructure, dAmount, 0);
        break;
    //:/* end zDERIVED_GET */
    //:OF   zDERIVED_SET:
    case zDERIVED_SET:
        break;
    }

    //:     /* end zDERIVED_SET */
    //:END  /* case */
    return (0);
    // END
}