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.mSAProf_Object.java

public int omSAProf_dTotalCredits(View mSAProf, String InternalEntityStructure, String InternalAttribStructure,
        Integer GetOrSetFlag) {//from  ww  w  .  j ava2s. c  o m
    zVIEW mSAProf2 = 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 ( mSAProf2, mSAProf )
        CreateViewFromView(mSAProf2, mSAProf);
        //:dAmount = 0
        dAmount = 0;
        //:FOR EACH mSAProf2.TermEnrolled 
        RESULT = mSAProf2.cursor("TermEnrolled").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF mSAProf2.TermEnrolled.Status ="T"
            if (CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "T") == 0) {
                //:dAmount = dAmount + mSAProf2.TermEnrolled.CreditHours 
                {
                    MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                    GetDecimalFromAttribute(md_dTempDecimal_0, mSAProf2, "TermEnrolled", "CreditHours");
                    dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                }
                dAmount = dAmount + dTempDecimal_0;
            }

            RESULT = mSAProf2.cursor("TermEnrolled").setNextContinue().toInt();
            ;
            //:END
        }

        //:END
        //:DropView( mSAProf2 ) 
        DropView(mSAProf2);
        //:StoreValueInRecord( mSAProf, InternalEntityStructure, 
        //:                    InternalAttribStructure, dAmount, 0 )
        StoreValueInRecord(mSAProf, 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_dFullPartTime(View mFAProf, String InternalEntityStructure, String InternalAttribStructure,
        Integer GetOrSetFlag) {/*from   w ww  .  j a  v  a2 s . co  m*/
    zVIEW lFAAdmin = new zVIEW();
    //:VIEW lFAAdminT BASED ON LOD lFAAdmin
    zVIEW lFAAdminT = new zVIEW();
    //:VIEW mFAProf2  BASED ON LOD mFAProf
    zVIEW mFAProf2 = new zVIEW();
    //:DECIMAL dCredits 
    double dCredits = 0.0;
    //:STRING (  1  ) szFP
    String szFP = null;
    int lTempInteger_0 = 0;
    int RESULT = 0;
    String szTempString_0 = null;

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

        //:// If there is no Term (adult studies model), the FullTime/PartTime flag will be null.

        //:IF mFAProf.CollegeTerm EXISTS
        lTempInteger_0 = CheckExistenceOfEntity(mFAProf, "CollegeTerm");
        if (lTempInteger_0 == 0) {
            //:// We're analyzing a Period with a Term (traditional model).
            //:GET VIEW  lFAAdmin  NAMED "lFAAdmin"
            RESULT = GetViewByName(lFAAdmin, "lFAAdmin", mFAProf, zLEVEL_TASK);
            //:IF  RESULT >= 0
            if (RESULT >= 0) {
                //:CreateViewFromView( lFAAdminT, lFAAdmin )
                CreateViewFromView(lFAAdminT, lFAAdmin);
                //:SET CURSOR FIRST lFAAdminT.FinAidAdmin WHERE lFAAdminT.CollegeYear.ID = mFAProf.PerPeriodTermCollegeYear.ID 
                RESULT = lFAAdminT.cursor("FinAidAdmin").setFirst().toInt();
                if (RESULT > zCURSOR_UNCHANGED) {
                    while (RESULT > zCURSOR_UNCHANGED && (CompareAttributeToAttribute(lFAAdminT, "CollegeYear",
                            "ID", mFAProf, "PerPeriodTermCollegeYear", "ID") != 0)) {
                        RESULT = lFAAdminT.cursor("FinAidAdmin").setNextContinue().toInt();
                        ;
                    }

                }

                //:SET CURSOR FIRST lFAAdminT.CollegeTerm WHERE lFAAdminT.CollegeTerm.Semester = mFAProf.CollegeTerm.Semester   
                {
                    StringBuilder sb_szTempString_0;
                    if (szTempString_0 == null)
                        sb_szTempString_0 = new StringBuilder(32);
                    else
                        sb_szTempString_0 = new StringBuilder(szTempString_0);
                    GetStringFromAttribute(sb_szTempString_0, mFAProf, "CollegeTerm", "Semester");
                    szTempString_0 = sb_szTempString_0.toString();
                }
                RESULT = lFAAdminT.cursor("CollegeTerm").setFirst("Semester", szTempString_0).toInt();
                //:dCredits = mFAProf.PerProfileFinAidAwardPeriod.dCreditsPerDisb 
                {
                    MutableDouble md_dCredits = new MutableDouble(dCredits);
                    GetDecimalFromAttribute(md_dCredits, mFAProf, "PerProfileFinAidAwardPeriod",
                            "dCreditsPerDisb");
                    dCredits = md_dCredits.doubleValue();
                }
                //:IF dCredits >= lFAAdminT.CollegeTerm.FullTimeMinCredits
                if (CompareAttributeToDecimal(lFAAdminT, "CollegeTerm", "FullTimeMinCredits", dCredits) <= 0) {
                    //:szFP = "F"
                    {
                        StringBuilder sb_szFP;
                        if (szFP == null)
                            sb_szFP = new StringBuilder(32);
                        else
                            sb_szFP = new StringBuilder(szFP);
                        ZeidonStringCopy(sb_szFP, 1, 0, "F", 1, 0, 2);
                        szFP = sb_szFP.toString();
                    }
                    //:ELSE 
                } else {
                    //:IF dCredits > 0
                    if (dCredits > 0) {
                        //:szFP = "P"
                        {
                            StringBuilder sb_szFP;
                            if (szFP == null)
                                sb_szFP = new StringBuilder(32);
                            else
                                sb_szFP = new StringBuilder(szFP);
                            ZeidonStringCopy(sb_szFP, 1, 0, "P", 1, 0, 2);
                            szFP = sb_szFP.toString();
                        }
                        //:ELSE
                    } else {
                        //:szFP = ""
                        {
                            StringBuilder sb_szFP;
                            if (szFP == null)
                                sb_szFP = new StringBuilder(32);
                            else
                                sb_szFP = new StringBuilder(szFP);
                            ZeidonStringCopy(sb_szFP, 1, 0, "", 1, 0, 2);
                            szFP = sb_szFP.toString();
                        }
                    }

                    //:END
                }

                //:END
                //:DropView( lFAAdminT )
                DropView(lFAAdminT);
                //:ELSE 
            } else {

                //:szFP = ""
                {
                    StringBuilder sb_szFP;
                    if (szFP == null)
                        sb_szFP = new StringBuilder(32);
                    else
                        sb_szFP = new StringBuilder(szFP);
                    ZeidonStringCopy(sb_szFP, 1, 0, "", 1, 0, 2);
                    szFP = sb_szFP.toString();
                }
                //:CreateViewFromView( mFAProf2, mFAProf )
                CreateViewFromView(mFAProf2, mFAProf);
                //:dCredits = 0
                dCredits = 0;
                //:dCredits = mFAProf2.PerProfileFinAidAwardPeriod.dCreditsPerDisb 
                {
                    MutableDouble md_dCredits = new MutableDouble(dCredits);
                    GetDecimalFromAttribute(md_dCredits, mFAProf2, "PerProfileFinAidAwardPeriod",
                            "dCreditsPerDisb");
                    dCredits = md_dCredits.doubleValue();
                }
                //:IF dCredits >=  mFAProf2.FinAidAdmin.dPeriodFullTimeMinCredits 
                //:      OR dCredits = 0 // assume they are not pre ot registered
                if (CompareAttributeToDecimal(mFAProf2, "FinAidAdmin", "dPeriodFullTimeMinCredits",
                        dCredits) <= 0 || dCredits == 0) {
                    //:szFP = "F"
                    {
                        StringBuilder sb_szFP;
                        if (szFP == null)
                            sb_szFP = new StringBuilder(32);
                        else
                            sb_szFP = new StringBuilder(szFP);
                        ZeidonStringCopy(sb_szFP, 1, 0, "F", 1, 0, 2);
                        szFP = sb_szFP.toString();
                    }
                    //:ELSE 
                } else {
                    //:szFP = "P"
                    {
                        StringBuilder sb_szFP;
                        if (szFP == null)
                            sb_szFP = new StringBuilder(32);
                        else
                            sb_szFP = new StringBuilder(szFP);
                        ZeidonStringCopy(sb_szFP, 1, 0, "P", 1, 0, 2);
                        szFP = sb_szFP.toString();
                    }
                }

                //:END
                //:DropView( mFAProf2 )
                DropView(mFAProf2);
                //:StoreStringInRecord( mFAProf,InternalEntityStructure,
                //:                     InternalAttribStructure, szFP )
                StoreStringInRecord(mFAProf, InternalEntityStructure, InternalAttribStructure, szFP);
            }

            //:      
            //:END

            //:ELSE
        } else {
            //:// We're analyzing a Period without a Term (adult studies model)
            //:// Below, we will simply get the min credits from the first Term for the Year.
            //:szFP = ""
            {
                StringBuilder sb_szFP;
                if (szFP == null)
                    sb_szFP = new StringBuilder(32);
                else
                    sb_szFP = new StringBuilder(szFP);
                ZeidonStringCopy(sb_szFP, 1, 0, "", 1, 0, 2);
                szFP = sb_szFP.toString();
            }
        }

        //:END

        //:   

        //:StoreStringInRecord( mFAProf,InternalEntityStructure,
        //:                    InternalAttribStructure, szFP )
        StoreStringInRecord(mFAProf, InternalEntityStructure, InternalAttribStructure, szFP);
        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.mSAProf_Object.java

public int omSAProf_dCreditsEnComp(View mSAProf, String InternalEntityStructure, String InternalAttribStructure,
        Integer GetOrSetFlag) {//  w  w  w  .  j a v  a2  s  .  co  m
    zVIEW mSAProf2 = new zVIEW();
    //:DECIMAL dTotalCredits 
    double dTotalCredits = 0.0;
    int RESULT = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;

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

        //:// Total the credit hours that will be billable. Note that a Class dropped after the
        //:// Dropped Date for the Term will be added here.
        //:CreateViewFromView ( mSAProf2, mSAProf )
        CreateViewFromView(mSAProf2, mSAProf);
        //:NAME VIEW mSAProf2 "mSAProf2"
        SetNameForView(mSAProf2, "mSAProf2", null, zLEVEL_TASK);
        //:dTotalCredits = 0
        dTotalCredits = 0;
        //:FOR EACH mSAProf2.TermEnrolled 
        RESULT = mSAProf2.cursor("TermEnrolled").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF mSAProf2.TermEnrolled.Status ="T"  OR mSAProf2.TermEnrolled.Status ="C" 
            if (CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "T") == 0
                    || CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "C") == 0) {
                //:dTotalCredits = dTotalCredits + mSAProf2.TermEnrolled.CreditHours 
                {
                    MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                    GetDecimalFromAttribute(md_dTempDecimal_0, mSAProf2, "TermEnrolled", "CreditHours");
                    dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                }
                dTotalCredits = dTotalCredits + dTempDecimal_0;
                //:ELSE
            } else {
                //:IF mSAProf2.TermEnrolled.Status ="D" OR mSAProf2.TermEnrolled.Status ="W" 
                if (CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "D") == 0
                        || CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "W") == 0) {
                    //:IF mSAProf2.TermEnrolled.DroppedDate > mSAProf2.PeriodCollegeTerm.AddDropDeadlineDate 
                    if (CompareAttributeToAttribute(mSAProf2, "TermEnrolled", "DroppedDate", mSAProf2,
                            "PeriodCollegeTerm", "AddDropDeadlineDate") > 0) {
                        //:dTotalCredits = dTotalCredits + mSAProf2.TermEnrolled.CreditHours
                        {
                            MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                            GetDecimalFromAttribute(md_dTempDecimal_1, mSAProf2, "TermEnrolled", "CreditHours");
                            dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                        }
                        dTotalCredits = dTotalCredits + dTempDecimal_1;
                    }

                    //:END
                }

                //:END
            }

            RESULT = mSAProf2.cursor("TermEnrolled").setNextContinue().toInt();
            ;
            //:END
        }

        //:END
        //:DropView( mSAProf2 ) 
        DropView(mSAProf2);
        //:StoreValueInRecord( mSAProf, InternalEntityStructure, 
        //:                    InternalAttribStructure, dTotalCredits, 0 )
        StoreValueInRecord(mSAProf, InternalEntityStructure, InternalAttribStructure, dTotalCredits, 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.swauopencuas.mSAProf_Object.java

public int omSAProf_SetupSAProfForYear(View mSAProf, int nCollegeYearID, int nCollegeTermID) {
    zVIEW mUser = new zVIEW();
    //:DECIMAL TotalCredits
    double TotalCredits = 0.0;
    //:INTEGER CurrentTermID
    int CurrentTermID = 0;
    //:INTEGER CollegeTermID
    int CollegeTermID = 0;
    int lTempInteger_0 = 0;
    int RESULT = 0;
    int lTempInteger_1 = 0;
    int lTempInteger_2 = 0;
    double dTempDecimal_0 = 0.0;

    //:IF mSAProf.StudentAccountTransApplied EXISTS 
    lTempInteger_0 = CheckExistenceOfEntity(mSAProf, "StudentAccountTransApplied");
    if (lTempInteger_0 == 0) {
        //:OrderEntityForView( mSAProf, "StudentAccountTransApplied", "TransactionDate D" )
        OrderEntityForView(mSAProf, "StudentAccountTransApplied", "TransactionDate D");
    }/* ww  w .j  a v a  2  s . co m*/

    //:END

    //:SET CURSOR FIRST mSAProf.BillingPeriod 
    //:   WHERE mSAProf.PeriodCollegeTerm.ID = nCollegeTermID  
    RESULT = SetCursorFirstEntity(mSAProf, "BillingPeriod", "");
    if (RESULT > zCURSOR_UNCHANGED) {
        while (RESULT > zCURSOR_UNCHANGED
                && (CompareAttributeToInteger(mSAProf, "PeriodCollegeTerm", "ID", nCollegeTermID) != 0)) {
            RESULT = SetCursorNextEntity(mSAProf, "BillingPeriod", "");
        }

    }

    //:IF RESULT >= zCURSOR_SET  
    if (RESULT >= zCURSOR_SET) {
        //:SET CURSOR FIRST mSAProf.PeriodCollegeTerm  
        //:   WHERE mSAProf.PeriodCollegeTerm.ID = nCollegeTermID  
        RESULT = SetCursorFirstEntityByInteger(mSAProf, "PeriodCollegeTerm", "ID", nCollegeTermID, "");
        //:ELSE 
    } else {
        //:SET CURSOR FIRST mSAProf.BillingPeriod 
        //:   WHERE mSAProf.PeriodCollegeYear.ID = nCollegeYearID  
        RESULT = SetCursorFirstEntity(mSAProf, "BillingPeriod", "");
        if (RESULT > zCURSOR_UNCHANGED) {
            while (RESULT > zCURSOR_UNCHANGED
                    && (CompareAttributeToInteger(mSAProf, "PeriodCollegeYear", "ID", nCollegeYearID) != 0)) {
                RESULT = SetCursorNextEntity(mSAProf, "BillingPeriod", "");
            }

        }

        //:IF RESULT < zCURSOR_SET  
        if (RESULT < zCURSOR_SET) {
            //:SET CURSOR FIRST mSAProf.BillingPeriod // in this case only
            RESULT = SetCursorFirstEntity(mSAProf, "BillingPeriod", "");
        }

        //:END 
        //:SET CURSOR FIRST mSAProf.PeriodCollegeTerm // in this case only
        RESULT = SetCursorFirstEntity(mSAProf, "PeriodCollegeTerm", "");
    }

    //:END

    //:FOR EACH mSAProf.PeriodCollegeTerm
    RESULT = SetCursorFirstEntity(mSAProf, "PeriodCollegeTerm", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:TotalCredits = 0
        TotalCredits = 0;
        //:CollegeTermID = mSAProf.PeriodCollegeTerm.ID
        {
            MutableInt mi_CollegeTermID = new MutableInt(CollegeTermID);
            GetIntegerFromAttribute(mi_CollegeTermID, mSAProf, "PeriodCollegeTerm", "ID");
            CollegeTermID = mi_CollegeTermID.intValue();
        }
        //:FOR EACH mSAProf.Enrolled 
        RESULT = SetCursorFirstEntity(mSAProf, "Enrolled", "");
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF mSAProf.RegisteredCollegeTerm EXISTS
            lTempInteger_1 = CheckExistenceOfEntity(mSAProf, "RegisteredCollegeTerm");
            if (lTempInteger_1 == 0) {
                //:CurrentTermID = mSAProf.RegisteredCollegeTerm.ID
                {
                    MutableInt mi_CurrentTermID = new MutableInt(CurrentTermID);
                    GetIntegerFromAttribute(mi_CurrentTermID, mSAProf, "RegisteredCollegeTerm", "ID");
                    CurrentTermID = mi_CurrentTermID.intValue();
                }
                //:ELSE
            } else {
                //:IF mSAProf.CurrentCollegeTerm EXISTS 
                lTempInteger_2 = CheckExistenceOfEntity(mSAProf, "CurrentCollegeTerm");
                if (lTempInteger_2 == 0) {
                    //:CurrentTermID = mSAProf.CurrentCollegeTerm.ID
                    {
                        MutableInt mi_CurrentTermID = new MutableInt(CurrentTermID);
                        GetIntegerFromAttribute(mi_CurrentTermID, mSAProf, "CurrentCollegeTerm", "ID");
                        CurrentTermID = mi_CurrentTermID.intValue();
                    }
                    //:ELSE 
                } else {
                    //:CurrentTermID = 0
                    CurrentTermID = 0;
                }

                //:END
            }

            //:END
            //://IF CurrentTermID = CollegeTermID OR CurrentTermID = 0
            //:IF CurrentTermID = CollegeTermID     // Modified from above by Don C on 8/16/06
            if (CurrentTermID == CollegeTermID) {
                //:IF mSAProf.Enrolled.Status = "T" OR mSAProf.Enrolled.Status = "C" 
                if (CompareAttributeToString(mSAProf, "Enrolled", "Status", "T") == 0
                        || CompareAttributeToString(mSAProf, "Enrolled", "Status", "C") == 0) {
                    //:TotalCredits = TotalCredits + mSAProf.Enrolled.CreditHours  
                    {
                        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                        GetDecimalFromAttribute(md_dTempDecimal_0, mSAProf, "Enrolled", "CreditHours");
                        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                    }
                    TotalCredits = TotalCredits + dTempDecimal_0;
                    //:INCLUDE mSAProf.TermEnrolled FROM mSAProf.Enrolled
                    RESULT = IncludeSubobjectFromSubobject(mSAProf, "TermEnrolled", mSAProf, "Enrolled",
                            zPOS_AFTER);
                }

                //:END
            }

            RESULT = SetCursorNextEntity(mSAProf, "Enrolled", "");
            //:END
        }

        RESULT = SetCursorNextEntity(mSAProf, "PeriodCollegeTerm", "");
        //:END
    }

    //:END

    //:// if the student's admin div uses cohorts then it is not by year, there is just one SA Profile at all
    //:LocateCurrentRoom( mSAProf )
    omSAProf_LocateCurrentRoom(mSAProf);
    //:LocateMealPlan( mSAProf )
    omSAProf_LocateMealPlan(mSAProf);
    //:RETURN 0
    return (0);
    // END
}

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

public int omSAProf_dCreditsDirectedStudy(View mSAProf, String InternalEntityStructure,
        String InternalAttribStructure, Integer GetOrSetFlag) {
    zVIEW mSAProf2 = new zVIEW();
    //:DECIMAL dTotalCredits 
    double dTotalCredits = 0.0;
    int RESULT = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;

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

        //:// Total the Directed Study credit hours that will be billable. Note that a Class dropped after the
        //:// Dropped Date for the Term will be added here.
        //:CreateViewFromView ( mSAProf2, mSAProf )
        CreateViewFromView(mSAProf2, mSAProf);
        //:NAME VIEW mSAProf2 "mSAProf2"
        SetNameForView(mSAProf2, "mSAProf2", null, zLEVEL_TASK);
        //:dTotalCredits = 0
        dTotalCredits = 0;//from  ww w  . j  a va2 s.c o m
        //:FOR EACH mSAProf2.TermEnrolled 
        RESULT = mSAProf2.cursor("TermEnrolled").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF mSAProf2.TermClass.DirectedStudyFlag = "Y"
            if (CompareAttributeToString(mSAProf2, "TermClass", "DirectedStudyFlag", "Y") == 0) {
                //:IF mSAProf2.TermEnrolled.Status ="T"  OR mSAProf2.TermEnrolled.Status ="C" 
                if (CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "T") == 0
                        || CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "C") == 0) {
                    //:dTotalCredits = dTotalCredits + mSAProf2.TermEnrolled.CreditHours 
                    {
                        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                        GetDecimalFromAttribute(md_dTempDecimal_0, mSAProf2, "TermEnrolled", "CreditHours");
                        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                    }
                    dTotalCredits = dTotalCredits + dTempDecimal_0;
                    //:ELSE
                } else {
                    //:IF mSAProf2.TermEnrolled.Status ="D" OR mSAProf2.TermEnrolled.Status ="W" 
                    if (CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "D") == 0
                            || CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "W") == 0) {
                        //:IF mSAProf2.TermEnrolled.DroppedDate > mSAProf2.PeriodCollegeTerm.AddDropDeadlineDate 
                        if (CompareAttributeToAttribute(mSAProf2, "TermEnrolled", "DroppedDate", mSAProf2,
                                "PeriodCollegeTerm", "AddDropDeadlineDate") > 0) {
                            //:dTotalCredits = dTotalCredits + mSAProf2.TermEnrolled.CreditHours
                            {
                                MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                                GetDecimalFromAttribute(md_dTempDecimal_1, mSAProf2, "TermEnrolled",
                                        "CreditHours");
                                dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                            }
                            dTotalCredits = dTotalCredits + dTempDecimal_1;
                        }

                        //:END
                    }

                    //:END
                }

                //:END
            }

            RESULT = mSAProf2.cursor("TermEnrolled").setNextContinue().toInt();
            ;
            //:END
        }

        //:END
        //:DropView( mSAProf2 ) 
        DropView(mSAProf2);
        //:StoreValueInRecord( mSAProf, InternalEntityStructure, 
        //:                    InternalAttribStructure, dTotalCredits, 0 )
        StoreValueInRecord(mSAProf, InternalEntityStructure, InternalAttribStructure, dTotalCredits, 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.swauopencuas.mSAChrgT_Object.java

private int omSAChrgT_Rule_UnderGradTuition(View mSAChrgT, View mSAProf, String szRefundFlag) {
    zVIEW wXferO = new zVIEW();
    int RESULT = 0;
    //:VIEW mCollegeLST BASED ON LOD  mCollege
    zVIEW mCollegeLST = new zVIEW();
    //:VIEW mSAChrgT2   BASED ON LOD  mSAChrgT
    zVIEW mSAChrgT2 = new zVIEW();
    //:STRING ( 1 )   szFoundRuleFlag
    String szFoundRuleFlag = null;
    //:STRING ( 300 ) szMsg
    String szMsg = null;/*w ww  . j a va 2 s .  c  om*/
    //:STRING ( 300 ) szDesc
    String szDesc = null;
    //:STRING ( 20 )  szDisplayCredits
    String szDisplayCredits = null;
    //:STRING ( 50 )  szInternalRuleName
    String szInternalRuleName = null;
    //:STRING ( 50 )  szTransactionCode
    String szTransactionCode = null;
    //:STRING ( 1 )   szDroppedAllClassesFlag
    String szDroppedAllClassesFlag = null;
    //:STRING ( 10 )  szCourseNumber
    String szCourseNumber = null;
    //:STRING ( 4 )   szCourseNumber4
    String szCourseNumber4 = null;
    //:STRING ( 20 )  szDecimal
    String szDecimal = null;
    //:DECIMAL        dChargePerCreditHour
    double dChargePerCreditHour = 0.0;
    //:DECIMAL        dOverloadCredits
    double dOverloadCredits = 0.0;
    //:DECIMAL        dTotalCredits
    double dTotalCredits = 0.0;
    //:DECIMAL        dBlockCharge
    double dBlockCharge = 0.0;
    //:DECIMAL        dTotalESL_Credits
    double dTotalESL_Credits = 0.0;
    //:DECIMAL        dTotalPBS_Credits
    double dTotalPBS_Credits = 0.0;
    //:DECIMAL        dTotalOverloadCredits
    double dTotalOverloadCredits = 0.0;
    //:DECIMAL        dTotalAuditCredits
    double dTotalAuditCredits = 0.0;
    //:DECIMAL        dNetAuditCredits
    double dNetAuditCredits = 0.0;
    //:DECIMAL        dRegularOverloadCredits
    double dRegularOverloadCredits = 0.0;
    //:DECIMAL        dAuditOverloadCredits
    double dAuditOverloadCredits = 0.0;
    //:DECIMAL        dTotalLessAuditCredits
    double dTotalLessAuditCredits = 0.0;
    //:DECIMAL        dTotalCharge
    double dTotalCharge = 0.0;
    //:DECIMAL        dESL_Discount
    double dESL_Discount = 0.0;
    //:DECIMAL        dTotalBlockPBS_Credits
    double dTotalBlockPBS_Credits = 0.0;
    //:DECIMAL        dTotalNonPBS_Credits
    double dTotalNonPBS_Credits = 0.0;
    //:DECIMAL        dTotalOverloadPBS_Credits
    double dTotalOverloadPBS_Credits = 0.0;
    //:INTEGER        lESL_Discount
    int lESL_Discount = 0;
    //:SHORT          nRC
    int nRC = 0;
    int lTempInteger_0 = 0;
    int lTempInteger_1 = 0;
    int lTempInteger_2 = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;
    int lTempInteger_3 = 0;
    double dTempDecimal_2 = 0.0;
    double dTempDecimal_3 = 0.0;
    int lTempInteger_4 = 0;
    double dTempDecimal_4 = 0.0;
    double dTempDecimal_5 = 0.0;
    double dTempDecimal_6 = 0.0;
    String szTempString_0 = null;
    int lTempInteger_5 = 0;

    RESULT = GetViewByName(wXferO, "wXferO", mSAChrgT, zLEVEL_TASK);

    //:// This is only executed for Fall and Spring Terms (not Summer).
    //:IF mSAProf.PeriodCollegeTerm.Semester = "04"
    if (CompareAttributeToString(mSAProf, "PeriodCollegeTerm", "Semester", "04") == 0) {
        //:RETURN 
        if (8 == 8)
            return (0);
    }

    //:END

    //:// Exit if the Student is a Distance Learning student.
    //://SET CURSOR FIRST mSAProf.Category WHERE mSAProf.Category.Name = "Distance Learning"
    //://                                      OR mSAProf.Category.Name = "ADP Student"
    //://IF RESULT >= zCURSOR_SET
    //:IF mSAProf.Student.AdultStudiesFlag = "Y"
    if (CompareAttributeToString(mSAProf, "Student", "AdultStudiesFlag", "Y") == 0) {
        //:RETURN 
        if (8 == 8)
            return (0);
    }

    //:END

    //:// Make sure list of colleges exists for determining grad/undergrad courses.
    //:GET VIEW mCollegeLST NAMED "mCollegeLST"
    RESULT = GetViewByName(mCollegeLST, "mCollegeLST", mSAChrgT, zLEVEL_TASK);
    //:IF RESULT < 0
    if (RESULT < 0) {
        //:ACTIVATE mCollegeLST RootOnlyMultiple
        RESULT = ActivateObjectInstance(mCollegeLST, "mCollege", mSAChrgT, 0, zACTIVATE_ROOTONLY_MULTIPLE);
        //:NAME VIEW mCollegeLST "mCollegeLST"
        SetNameForView(mCollegeLST, "mCollegeLST", null, zLEVEL_TASK);
    }

    //:END

    //:szInternalRuleName = mSAChrgT.SATransactionCode.InternalRuleName
    {
        MutableInt mi_lTempInteger_0 = new MutableInt(lTempInteger_0);
        StringBuilder sb_szInternalRuleName;
        if (szInternalRuleName == null)
            sb_szInternalRuleName = new StringBuilder(32);
        else
            sb_szInternalRuleName = new StringBuilder(szInternalRuleName);
        GetVariableFromAttribute(sb_szInternalRuleName, mi_lTempInteger_0, 'S', 51, mSAChrgT,
                "SATransactionCode", "InternalRuleName", "", 0);
        lTempInteger_0 = mi_lTempInteger_0.intValue();
        szInternalRuleName = sb_szInternalRuleName.toString();
    }
    //:szTransactionCode  = mSAChrgT.SATransactionCode.TransactionCode
    {
        MutableInt mi_lTempInteger_1 = new MutableInt(lTempInteger_1);
        StringBuilder sb_szTransactionCode;
        if (szTransactionCode == null)
            sb_szTransactionCode = new StringBuilder(32);
        else
            sb_szTransactionCode = new StringBuilder(szTransactionCode);
        GetVariableFromAttribute(sb_szTransactionCode, mi_lTempInteger_1, 'S', 51, mSAChrgT,
                "SATransactionCode", "TransactionCode", "", 0);
        lTempInteger_1 = mi_lTempInteger_1.intValue();
        szTransactionCode = sb_szTransactionCode.toString();
    }

    //:// If this is a "Student Missionary/Task Force" student, then they cannot be taking any Classes except
    //:// for Courses UNIV103 and UNIV211. Their charge is a single block charge of 300.
    //:SET CURSOR FIRST mSAProf.Category WHERE mSAProf.Category.Name = "Student Missionary/Task Force"
    RESULT = SetCursorFirstEntityByString(mSAProf, "Category", "Name", "Student Missionary/Task Force", "");
    //:IF RESULT >= zCURSOR_SET
    if (RESULT >= zCURSOR_SET) {

        //:// STUDENT MISSIONARY/TASK FOURCE

        //:// Check if any Class is other than UNIV103 or UNIV211 .
        //:FOR EACH mSAProf.TermEnrolled 
        RESULT = SetCursorFirstEntity(mSAProf, "TermEnrolled", "");
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF mSAProf.TermCourse.Number != "UNIV103" AND 
            //:   mSAProf.TermCourse.Number != "UNIV211" AND 
            //:   mSAProf.TermEnrolled.Status = "T"
            if (CompareAttributeToString(mSAProf, "TermCourse", "Number", "UNIV103") != 0
                    && CompareAttributeToString(mSAProf, "TermCourse", "Number", "UNIV211") != 0
                    && CompareAttributeToString(mSAProf, "TermEnrolled", "Status", "T") == 0) {

                //:szMsg = "A 'Student Missionary/Task Force' student is only allowed to take courses UNIV103 and UNIV211."
                {
                    StringBuilder sb_szMsg;
                    if (szMsg == null)
                        sb_szMsg = new StringBuilder(32);
                    else
                        sb_szMsg = new StringBuilder(szMsg);
                    ZeidonStringCopy(sb_szMsg, 1, 0,
                            "A 'Student Missionary/Task Force' student is only allowed to take courses UNIV103 and UNIV211.",
                            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);
            }

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

        //:END

        //:// Generate Charge
        //:dTotalCharge = 300
        dTotalCharge = 300;
        //:szDesc = "SM/TF Undergrad Tuition"
        {
            StringBuilder sb_szDesc;
            if (szDesc == null)
                sb_szDesc = new StringBuilder(32);
            else
                sb_szDesc = new StringBuilder(szDesc);
            ZeidonStringCopy(sb_szDesc, 1, 0, "SM/TF Undergrad Tuition", 1, 0, 301);
            szDesc = sb_szDesc.toString();
        }
        //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
        nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);

        //:RETURN 
        if (8 == 8)
            return (0);
    }

    //:END

    //:// If this is a Senior Citizen, simply charge the Senior Citizen Per Credit price and return.
    //:SET CURSOR FIRST mSAProf.Category WHERE mSAProf.Category.Name = "Senior Citizen"
    RESULT = SetCursorFirstEntityByString(mSAProf, "Category", "Name", "Senior Citizen", "");
    //:IF RESULT >= zCURSOR_SET
    if (RESULT >= zCURSOR_SET) {

        //:// SENIOR CITIZEN

        //:// Note that we are processing Audit the same as non Audit here.
        //:dTotalCredits = 0
        dTotalCredits = 0;
        //:FOR EACH mSAProf.TermEnrolled
        RESULT = SetCursorFirstEntity(mSAProf, "TermEnrolled", "");
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF mSAProf.TermEnrolled.Status != "D"
            if (CompareAttributeToString(mSAProf, "TermEnrolled", "Status", "D") != 0) {
                //:SET CURSOR FIRST mCollegeLST.College WHERE mCollegeLST.College.ID = mSAProf.TermCourseCollege.ID 
                {
                    MutableInt mi_lTempInteger_2 = new MutableInt(lTempInteger_2);
                    GetIntegerFromAttribute(mi_lTempInteger_2, mSAProf, "TermCourseCollege", "ID");
                    lTempInteger_2 = mi_lTempInteger_2.intValue();
                }
                RESULT = SetCursorFirstEntityByInteger(mCollegeLST, "College", "ID", lTempInteger_2, "");
                //:IF mCollegeLST.College.Type = "U"
                if (CompareAttributeToString(mCollegeLST, "College", "Type", "U") == 0) {
                    //:IF mSAProf.TermEnrolled.TakingClassType = "A"
                    if (CompareAttributeToString(mSAProf, "TermEnrolled", "TakingClassType", "A") == 0) {
                        //:// Auditing course.
                        //:dTotalCredits = dTotalCredits + mSAProf.TermClass.CreditHours 
                        {
                            MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                            GetDecimalFromAttribute(md_dTempDecimal_0, mSAProf, "TermClass", "CreditHours");
                            dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                        }
                        dTotalCredits = dTotalCredits + dTempDecimal_0;
                        //:ELSE
                    } else {
                        //:// Taking course for credit.
                        //:dTotalCredits = dTotalCredits + mSAProf.TermEnrolled.CreditHours
                        {
                            MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                            GetDecimalFromAttribute(md_dTempDecimal_1, mSAProf, "TermEnrolled", "CreditHours");
                            dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                        }
                        dTotalCredits = dTotalCredits + dTempDecimal_1;
                    }

                    //:END
                }

                //:END
            }

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

        //:END

        //:// Student is Senior Citizen, charge per credit hour at 'SrCit Chg/CR' rate.
        //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "SrCit Chg/CR"
        RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name", "SrCit Chg/CR", "");
        //:IF RESULT < zCURSOR_SET
        if (RESULT < zCURSOR_SET) {
            //:szMsg = "No Rule Variable match on Tuition 'SrCit 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 Tuition 'SrCit 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

        //:// Generate Charge
        //:dChargePerCreditHour = mSAChrgT.SAInternalRuleVariable.Value
        {
            MutableDouble md_dChargePerCreditHour = new MutableDouble(dChargePerCreditHour);
            GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT, "SAInternalRuleVariable", "Value");
            dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
        }
        //:dTotalCharge = dTotalCredits * dChargePerCreditHour
        dTotalCharge = dTotalCredits * dChargePerCreditHour;
        //:szDisplayCredits = dTotalCredits
        {
            StringBuilder sb_szDisplayCredits;
            if (szDisplayCredits == null)
                sb_szDisplayCredits = new StringBuilder(32);
            else
                sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
            ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0, dTotalCredits, "D");
            szDisplayCredits = sb_szDisplayCredits.toString();
        }
        //:szDesc = "Sr. Cit. Undergrad Tuition - " + szDisplayCredits  + " CR"
        {
            StringBuilder sb_szDesc;
            if (szDesc == null)
                sb_szDesc = new StringBuilder(32);
            else
                sb_szDesc = new StringBuilder(szDesc);
            ZeidonStringCopy(sb_szDesc, 1, 0, "Sr. Cit. Undergrad Tuition - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
            szDesc = sb_szDesc.toString();
        }
        //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
        nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);

        //:RETURN 
        if (8 == 8)
            return (0);
    }

    //:END

    //:// Compute total Undergrad, PBS Discount and ESL Discount Credits.
    //:dTotalESL_Credits  = 0
    dTotalESL_Credits = 0;
    //:dTotalPBS_Credits  = 0
    dTotalPBS_Credits = 0;
    //:dTotalCredits      = 0
    dTotalCredits = 0;
    //:dTotalAuditCredits = 0
    dTotalAuditCredits = 0;
    //:FOR EACH mSAProf.TermEnrolled WHERE mSAProf.TermEnrolled.Status = "T" OR 
    //:                                    mSAProf.TermEnrolled.Status = "C"
    RESULT = SetCursorFirstEntity(mSAProf, "TermEnrolled", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        if (CompareAttributeToString(mSAProf, "TermEnrolled", "Status", "T") == 0
                || CompareAttributeToString(mSAProf, "TermEnrolled", "Status", "C") == 0) {

            //:// Adult Studies Classes are Distance Learning.
            //:IF mSAProf.TermClass.AdultStudiesFlag != "Y"
            if (CompareAttributeToString(mSAProf, "TermClass", "AdultStudiesFlag", "Y") != 0) {
                //:// ESL Discount Credits.
                //:szCourseNumber = mSAProf.TermCourse.Number 
                {
                    MutableInt mi_lTempInteger_3 = new MutableInt(lTempInteger_3);
                    StringBuilder sb_szCourseNumber;
                    if (szCourseNumber == null)
                        sb_szCourseNumber = new StringBuilder(32);
                    else
                        sb_szCourseNumber = new StringBuilder(szCourseNumber);
                    GetVariableFromAttribute(sb_szCourseNumber, mi_lTempInteger_3, 'S', 11, mSAProf,
                            "TermCourse", "Number", "", 0);
                    lTempInteger_3 = mi_lTempInteger_3.intValue();
                    szCourseNumber = sb_szCourseNumber.toString();
                }
                //:szCourseNumber4 = szCourseNumber
                {
                    StringBuilder sb_szCourseNumber4;
                    if (szCourseNumber4 == null)
                        sb_szCourseNumber4 = new StringBuilder(32);
                    else
                        sb_szCourseNumber4 = new StringBuilder(szCourseNumber4);
                    ZeidonStringCopy(sb_szCourseNumber4, 1, 0, szCourseNumber, 1, 0, 5);
                    szCourseNumber4 = sb_szCourseNumber4.toString();
                }
                //:IF szCourseNumber4 = "ESOL"
                if (ZeidonStringCompare(szCourseNumber4, 1, 0, "ESOL", 1, 0, 5) == 0) {
                    //:dTotalESL_Credits = dTotalESL_Credits + mSAProf.TermEnrolled.CreditHours 
                    {
                        MutableDouble md_dTempDecimal_2 = new MutableDouble(dTempDecimal_2);
                        GetDecimalFromAttribute(md_dTempDecimal_2, mSAProf, "TermEnrolled", "CreditHours");
                        dTempDecimal_2 = md_dTempDecimal_2.doubleValue();
                    }
                    dTotalESL_Credits = dTotalESL_Credits + dTempDecimal_2;
                }

                //:END

                //:// PBS Discount Credits.
                //:// 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, mSAProf )
                nRC = omSAChrgT_CheckPBS_ForClass(mSAChrgT, mSAProf);
                //:IF nRC = 1 
                if (nRC == 1) {
                    //:dTotalPBS_Credits = dTotalPBS_Credits + mSAProf.TermEnrolled.CreditHours 
                    {
                        MutableDouble md_dTempDecimal_3 = new MutableDouble(dTempDecimal_3);
                        GetDecimalFromAttribute(md_dTempDecimal_3, mSAProf, "TermEnrolled", "CreditHours");
                        dTempDecimal_3 = md_dTempDecimal_3.doubleValue();
                    }
                    dTotalPBS_Credits = dTotalPBS_Credits + dTempDecimal_3;
                }

                //:END

                //:// Regular Undergrad Credits.
                //:SET CURSOR FIRST mCollegeLST.College WHERE mCollegeLST.College.ID = mSAProf.TermCourseCollege.ID 
                {
                    MutableInt mi_lTempInteger_4 = new MutableInt(lTempInteger_4);
                    GetIntegerFromAttribute(mi_lTempInteger_4, mSAProf, "TermCourseCollege", "ID");
                    lTempInteger_4 = mi_lTempInteger_4.intValue();
                }
                RESULT = SetCursorFirstEntityByInteger(mCollegeLST, "College", "ID", lTempInteger_4, "");
                //:IF mCollegeLST.College.Type = "U"
                if (CompareAttributeToString(mCollegeLST, "College", "Type", "U") == 0) {
                    //:IF mSAProf.TermEnrolled.TakingClassType = "A"
                    if (CompareAttributeToString(mSAProf, "TermEnrolled", "TakingClassType", "A") == 0) {
                        //:// Audit Class uses Credits from Class entry.
                        //:dTotalCredits = dTotalCredits + mSAProf.TermClass.CreditHours 
                        {
                            MutableDouble md_dTempDecimal_4 = new MutableDouble(dTempDecimal_4);
                            GetDecimalFromAttribute(md_dTempDecimal_4, mSAProf, "TermClass", "CreditHours");
                            dTempDecimal_4 = md_dTempDecimal_4.doubleValue();
                        }
                        dTotalCredits = dTotalCredits + dTempDecimal_4;
                        //:ELSE
                    } else {
                        //:// Regular Class uses Credits from Enrolled entry.
                        //:dTotalCredits = dTotalCredits + mSAProf.TermEnrolled.CreditHours
                        {
                            MutableDouble md_dTempDecimal_5 = new MutableDouble(dTempDecimal_5);
                            GetDecimalFromAttribute(md_dTempDecimal_5, mSAProf, "TermEnrolled", "CreditHours");
                            dTempDecimal_5 = md_dTempDecimal_5.doubleValue();
                        }
                        dTotalCredits = dTotalCredits + dTempDecimal_5;
                    }

                    //:END
                }

                //:END

                //:// Audit Credits.
                //:IF mSAProf.TermEnrolled.TakingClassType = "A" AND 
                //:szCourseNumber4 != "EOSL" AND szCourseNumber4 != "NURS"
                if (CompareAttributeToString(mSAProf, "TermEnrolled", "TakingClassType", "A") == 0
                        && ZeidonStringCompare(szCourseNumber4, 1, 0, "EOSL", 1, 0, 5) != 0
                        && ZeidonStringCompare(szCourseNumber4, 1, 0, "NURS", 1, 0, 5) != 0) {

                    //://dTotalAuditCredits = dTotalAuditCredits + mSAProf.TermEnrolled.CreditHours
                    //:dTotalAuditCredits = dTotalAuditCredits + mSAProf.TermClass.CreditHours 
                    {
                        MutableDouble md_dTempDecimal_6 = new MutableDouble(dTempDecimal_6);
                        GetDecimalFromAttribute(md_dTempDecimal_6, mSAProf, "TermClass", "CreditHours");
                        dTempDecimal_6 = md_dTempDecimal_6.doubleValue();
                    }
                    dTotalAuditCredits = dTotalAuditCredits + dTempDecimal_6;
                }

                //:END
            }

        }

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

    //:   
    //:END

    //:// Compute Overload Credits. Don't include Audit Credits.
    //:dTotalLessAuditCredits = dTotalCredits - dTotalAuditCredits
    dTotalLessAuditCredits = dTotalCredits - dTotalAuditCredits;
    //:IF dTotalLessAuditCredits > 17
    if (dTotalLessAuditCredits > 17) {
        //:dTotalOverloadCredits = dTotalLessAuditCredits - 17
        dTotalOverloadCredits = dTotalLessAuditCredits - 17;

        //:ELSE
    } else {
        //:dTotalOverloadCredits = 0
        dTotalOverloadCredits = 0;
    }

    //:END

    //:// If ESL credits >= 12, student gets ESL Discount of 38% on block price.
    //:IF dTotalESL_Credits >= 12
    if (dTotalESL_Credits >= 12) {

        //:// Process resulting Charge or Refund.
        //:IF szRefundFlag = ""
        if (ZeidonStringCompare(szRefundFlag, 1, 0, "", 1, 0, 2) == 0) {

            //:// Put out regular Block Credit charge line.
            //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "FT Block Chg"
            RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name", "FT Block Chg",
                    "");
            //:IF RESULT < zCURSOR_SET
            if (RESULT < zCURSOR_SET) {
                //:szMsg = "No Rule Variable match on Tuition 'FT Block Chg'"
                {
                    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 Tuition 'FT Block Chg'", 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
            //:dBlockCharge = mSAChrgT.SAInternalRuleVariable.Value
            {
                MutableDouble md_dBlockCharge = new MutableDouble(dBlockCharge);
                GetDecimalFromAttribute(md_dBlockCharge, mSAChrgT, "SAInternalRuleVariable", "Value");
                dBlockCharge = md_dBlockCharge.doubleValue();
            }
            //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dBlockCharge, "Undergrad Block Tuition" )
            nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dBlockCharge, "Undergrad Block Tuition");

            //:// Put out ESL Discount line.
            //:dESL_Discount = dBlockCharge * .38      // Discount is 38%
            dESL_Discount = dBlockCharge * .38;
            //:// Round discount up to whole dollar.
            //:dESL_Discount = dESL_Discount + .5
            dESL_Discount = dESL_Discount + .5;
            //:lESL_Discount = dESL_Discount
            lESL_Discount = (int) dESL_Discount;
            //:dESL_Discount = lESL_Discount
            dESL_Discount = lESL_Discount;
            //:dESL_Discount = 0 - dESL_Discount       // Discount is negative of charge.
            dESL_Discount = 0 - dESL_Discount;

            //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dESL_Discount, "ESL Block Tuition Discount" )
            nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dESL_Discount, "ESL Block Tuition Discount");

            //:ELSE
        } else {
        }

        //:   // Refund.
        //:   // Because of the complexities with the discounts, we will not process refunds automatically at this point.
        //:   
        //:END

        //:ELSE 
    } else {

        //:// Regular UNDERGRAD Charges.

        //:// Process resulting Charge or Refund.
        //:IF szRefundFlag = ""
        if (ZeidonStringCompare(szRefundFlag, 1, 0, "", 1, 0, 2) == 0) {

            //:// Only continue if there are Undergrad Credits.
            //:IF dTotalCredits > 0
            if (dTotalCredits > 0) {

                //:// If the Student is < min full time, they are simply charged an amount per credit hour.
                //:IF dTotalCredits < 12
                if (dTotalCredits < 12) {

                    //:// Student is part time, charge per credit hour.

                    //:// Separate Audited Credits from regular credits since they are charged at different rates.
                    //:dTotalLessAuditCredits = dTotalCredits - dTotalAuditCredits
                    dTotalLessAuditCredits = dTotalCredits - dTotalAuditCredits;

                    //:// Regular Charge
                    //:IF dTotalLessAuditCredits > 0
                    if (dTotalLessAuditCredits > 0) {
                        //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PT Chg/CR"
                        RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                "PT Chg/CR", "");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:szMsg = "No Rule Variable match on Tuition 'PT 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 Tuition 'PT 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

                        //:// Generate Charge
                        //:dChargePerCreditHour = mSAChrgT.SAInternalRuleVariable.Value
                        {
                            MutableDouble md_dChargePerCreditHour = new MutableDouble(dChargePerCreditHour);
                            GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT, "SAInternalRuleVariable",
                                    "Value");
                            dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                        }
                        //:dTotalCharge = dTotalLessAuditCredits * dChargePerCreditHour
                        dTotalCharge = dTotalLessAuditCredits * dChargePerCreditHour;
                        //:szDisplayCredits = dTotalLessAuditCredits
                        {
                            StringBuilder sb_szDisplayCredits;
                            if (szDisplayCredits == null)
                                sb_szDisplayCredits = new StringBuilder(32);
                            else
                                sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                            ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0,
                                    dTotalLessAuditCredits, "D");
                            szDisplayCredits = sb_szDisplayCredits.toString();
                        }
                        //:szDesc = "P/T Undergrad Tuition - " + szDisplayCredits  + " CR"
                        {
                            StringBuilder sb_szDesc;
                            if (szDesc == null)
                                sb_szDesc = new StringBuilder(32);
                            else
                                sb_szDesc = new StringBuilder(szDesc);
                            ZeidonStringCopy(sb_szDesc, 1, 0, "P/T Undergrad Tuition - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                            szDesc = sb_szDesc.toString();
                        }
                        //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
                        nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);

                        //:// PBS Discount by number credits.
                        //:IF dTotalPBS_Credits > 0
                        if (dTotalPBS_Credits > 0) {
                            //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PBS Disc/CR"
                            RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                    "PBS Disc/CR", "");
                            //:IF RESULT < zCURSOR_SET
                            if (RESULT < zCURSOR_SET) {
                                //:szMsg = "No Rule Variable match on Tuition 'PBS Disc/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 Tuition 'PBS Disc/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();
                            }
                            //:dTotalCharge = dTotalPBS_Credits * dChargePerCreditHour
                            dTotalCharge = dTotalPBS_Credits * dChargePerCreditHour;
                            //:dTotalCharge = 0 - dTotalCharge     // Discount is negative of charge.
                            dTotalCharge = 0 - dTotalCharge;
                            //:szDisplayCredits = dTotalPBS_Credits
                            {
                                StringBuilder sb_szDisplayCredits;
                                if (szDisplayCredits == null)
                                    sb_szDisplayCredits = new StringBuilder(32);
                                else
                                    sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                                ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0,
                                        dTotalPBS_Credits, "D");
                                szDisplayCredits = sb_szDisplayCredits.toString();
                            }
                            //:szDesc = "Undergrad Tuition PBS Disc - " + szDisplayCredits  + " CR"
                            {
                                StringBuilder sb_szDesc;
                                if (szDesc == null)
                                    sb_szDesc = new StringBuilder(32);
                                else
                                    sb_szDesc = new StringBuilder(szDesc);
                                ZeidonStringCopy(sb_szDesc, 1, 0, "Undergrad Tuition PBS Disc - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                                szDesc = sb_szDesc.toString();
                            }
                            //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
                            nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);
                        }

                        //:END
                    }

                    //:END

                    //:// Audit Credits
                    //:IF dTotalAuditCredits > 0
                    if (dTotalAuditCredits > 0) {
                        //:// Audit Per Credit Charge, which is 50% of Part Time Charge.
                        //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PT Chg/CR"
                        RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                "PT Chg/CR", "");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:szMsg = "No Rule Variable match on Tuition 'PT 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 Tuition 'PT 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

                        //:// Generate Charge
                        //:// Audit credits use SA Trans TUITAUD
                        //:CreateViewFromView( mSAChrgT2, mSAChrgT )
                        CreateViewFromView(mSAChrgT2, mSAChrgT);
                        //:SET CURSOR FIRST mSAChrgT2.SATransactionCode WHERE mSAChrgT2.SATransactionCode.TransactionCode = "TUITAUD"
                        RESULT = SetCursorFirstEntityByString(mSAChrgT2, "SATransactionCode", "TransactionCode",
                                "TUITAUD", "");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:szMsg = "No SA Transaction for Audit credits."
                            {
                                StringBuilder sb_szMsg;
                                if (szMsg == null)
                                    sb_szMsg = new StringBuilder(32);
                                else
                                    sb_szMsg = new StringBuilder(szMsg);
                                ZeidonStringCopy(sb_szMsg, 1, 0, "No SA Transaction for Audit credits.", 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 = mSAChrgT2.SATransactionTerm.Amount     // Charge is simple value for SA Transaction.
                        {
                            MutableDouble md_dChargePerCreditHour = new MutableDouble(dChargePerCreditHour);
                            GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT2, "SATransactionTerm",
                                    "Amount");
                            dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                        }
                        //:dTotalCharge = dTotalAuditCredits * dChargePerCreditHour
                        dTotalCharge = dTotalAuditCredits * dChargePerCreditHour;
                        //:szDisplayCredits = dTotalAuditCredits
                        {
                            StringBuilder sb_szDisplayCredits;
                            if (szDisplayCredits == null)
                                sb_szDisplayCredits = new StringBuilder(32);
                            else
                                sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                            ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0, dTotalAuditCredits,
                                    "D");
                            szDisplayCredits = sb_szDisplayCredits.toString();
                        }
                        //:szDesc = "Audit Undergrad Tuition - " + szDisplayCredits  + " CR"
                        {
                            StringBuilder sb_szDesc;
                            if (szDesc == null)
                                sb_szDesc = new StringBuilder(32);
                            else
                                sb_szDesc = new StringBuilder(szDesc);
                            ZeidonStringCopy(sb_szDesc, 1, 0, "Audit Undergrad Tuition - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                            szDesc = sb_szDesc.toString();
                        }
                        //:nRC = GenerateChargeEntry( mSAChrgT2, mSAProf, dTotalCharge, szDesc )
                        nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT2, mSAProf, dTotalCharge, szDesc);
                        //:DropView( mSAChrgT2 )
                        DropView(mSAChrgT2);
                    }

                    //:END

                    //:ELSE
                } else {

                    //:// Full-time Charges

                    //:// Check if Audited courses removes Student from block charge.
                    //:dTotalLessAuditCredits = dTotalCredits - dTotalAuditCredits
                    dTotalLessAuditCredits = dTotalCredits - dTotalAuditCredits;
                    //:IF dTotalLessAuditCredits < 12
                    if (dTotalLessAuditCredits < 12) {

                        //:// Student is combination regular and Audit credits, process as two separate charges.

                        //:// Net Audit credits (those that are charged at audit rates) is the difference between regular credits
                        //:// and full time credits.
                        //:dNetAuditCredits = 12 - dTotalLessAuditCredits
                        dNetAuditCredits = 12 - dTotalLessAuditCredits;

                        //:// Regular Part Time Per Credit Charge.
                        //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PT Chg/CR"
                        RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                "PT Chg/CR", "");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:szMsg = "No Rule Variable match on Tuition 'PT 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 Tuition 'PT 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

                        //:// Generate Charge
                        //:dChargePerCreditHour = mSAChrgT.SAInternalRuleVariable.Value
                        {
                            MutableDouble md_dChargePerCreditHour = new MutableDouble(dChargePerCreditHour);
                            GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT, "SAInternalRuleVariable",
                                    "Value");
                            dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                        }
                        //:dTotalCharge = dTotalLessAuditCredits * dChargePerCreditHour
                        dTotalCharge = dTotalLessAuditCredits * dChargePerCreditHour;
                        //:szDisplayCredits = dTotalCredits
                        {
                            StringBuilder sb_szDisplayCredits;
                            if (szDisplayCredits == null)
                                sb_szDisplayCredits = new StringBuilder(32);
                            else
                                sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                            ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0, dTotalCredits, "D");
                            szDisplayCredits = sb_szDisplayCredits.toString();
                        }
                        //:szDesc = "P/T Undergrad Tuition - " + szDisplayCredits  + " CR"
                        {
                            StringBuilder sb_szDesc;
                            if (szDesc == null)
                                sb_szDesc = new StringBuilder(32);
                            else
                                sb_szDesc = new StringBuilder(szDesc);
                            ZeidonStringCopy(sb_szDesc, 1, 0, "P/T Undergrad Tuition - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                            szDesc = sb_szDesc.toString();
                        }
                        //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
                        nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);

                        //:// PBS Discount by number applicable credits.
                        //:IF dTotalPBS_Credits > 0
                        if (dTotalPBS_Credits > 0) {
                            //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PBS Disc/CR"
                            RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                    "PBS Disc/CR", "");
                            //:IF RESULT < zCURSOR_SET
                            if (RESULT < zCURSOR_SET) {
                                //:szMsg = "No Rule Variable match on Tuition 'PBS Disc/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 Tuition 'PBS Disc/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();
                            }
                            //:dTotalCharge = dTotalPBS_Credits * dChargePerCreditHour
                            dTotalCharge = dTotalPBS_Credits * dChargePerCreditHour;
                            //:dTotalCharge = 0 - dTotalCharge        // Discount is negative of charge.
                            dTotalCharge = 0 - dTotalCharge;
                            //:szDisplayCredits = dTotalCredits
                            {
                                StringBuilder sb_szDisplayCredits;
                                if (szDisplayCredits == null)
                                    sb_szDisplayCredits = new StringBuilder(32);
                                else
                                    sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                                ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0, dTotalCredits,
                                        "D");
                                szDisplayCredits = sb_szDisplayCredits.toString();
                            }
                            //:szDesc = "Undergrad Tuition PBS Disc - " + szDisplayCredits  + " CR"
                            {
                                StringBuilder sb_szDesc;
                                if (szDesc == null)
                                    sb_szDesc = new StringBuilder(32);
                                else
                                    sb_szDesc = new StringBuilder(szDesc);
                                ZeidonStringCopy(sb_szDesc, 1, 0, "Undergrad Tuition PBS Disc - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                                szDesc = sb_szDesc.toString();
                            }
                            //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
                            nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);
                        }

                        //:END

                        //:// Audit Per Credit Charge, which is 50% of Part Time Charge.
                        //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PT Chg/CR"
                        RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                "PT Chg/CR", "");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:szMsg = "No Rule Variable match on Tuition 'PT 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 Tuition 'PT 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

                        //:// Generate Charge
                        //:// Audit credits use SA Trans TUITAUD
                        //:CreateViewFromView( mSAChrgT2, mSAChrgT )
                        CreateViewFromView(mSAChrgT2, mSAChrgT);
                        //:SET CURSOR FIRST mSAChrgT2.SATransactionCode WHERE mSAChrgT2.SATransactionCode.TransactionCode = "TUITAUD"
                        RESULT = SetCursorFirstEntityByString(mSAChrgT2, "SATransactionCode", "TransactionCode",
                                "TUITAUD", "");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:szMsg = "No SA Transaction for Audit credits."
                            {
                                StringBuilder sb_szMsg;
                                if (szMsg == null)
                                    sb_szMsg = new StringBuilder(32);
                                else
                                    sb_szMsg = new StringBuilder(szMsg);
                                ZeidonStringCopy(sb_szMsg, 1, 0, "No SA Transaction for Audit credits.", 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    // Charge is still based on regular Tuition Tran Code.
                        {
                            MutableDouble md_dChargePerCreditHour = new MutableDouble(dChargePerCreditHour);
                            GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT, "SAInternalRuleVariable",
                                    "Value");
                            dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                        }
                        //:dTotalCharge = dTotalAuditCredits * dChargePerCreditHour * .5
                        dTotalCharge = dTotalAuditCredits * dChargePerCreditHour * .5;
                        //:szDisplayCredits = dTotalAuditCredits
                        {
                            StringBuilder sb_szDisplayCredits;
                            if (szDisplayCredits == null)
                                sb_szDisplayCredits = new StringBuilder(32);
                            else
                                sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                            ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0, dTotalAuditCredits,
                                    "D");
                            szDisplayCredits = sb_szDisplayCredits.toString();
                        }
                        //:szDesc = "Audit Undergrad Tuition - " + szDisplayCredits  + " CR"
                        {
                            StringBuilder sb_szDesc;
                            if (szDesc == null)
                                sb_szDesc = new StringBuilder(32);
                            else
                                sb_szDesc = new StringBuilder(szDesc);
                            ZeidonStringCopy(sb_szDesc, 1, 0, "Audit Undergrad Tuition - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                            szDesc = sb_szDesc.toString();
                        }
                        //:nRC = GenerateChargeEntry( mSAChrgT2, mSAProf, dTotalCharge, szDesc )
                        nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT2, mSAProf, dTotalCharge, szDesc);
                        //:DropView( mSAChrgT2 )
                        DropView(mSAChrgT2);

                        //:ELSE
                    } else {

                        //:// Student is full time, charge block credit.

                        //:// Since the student is charged the block charge, there is no additional charge for audit credits, so set dTotalAuditCredits to zero.
                        //:dTotalAuditCredits = 0
                        dTotalAuditCredits = 0;

                        //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "FT Block Chg"
                        RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                "FT Block Chg", "");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:szMsg = "No Rule Variable match on Tuition 'FT Block Chg'"
                            {
                                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 Tuition 'FT Block Chg'", 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
                        //:dBlockCharge = mSAChrgT.SAInternalRuleVariable.Value
                        {
                            MutableDouble md_dBlockCharge = new MutableDouble(dBlockCharge);
                            GetDecimalFromAttribute(md_dBlockCharge, mSAChrgT, "SAInternalRuleVariable",
                                    "Value");
                            dBlockCharge = md_dBlockCharge.doubleValue();
                        }
                        //:szDesc = "Undergrad Block Tuition - " + mSAProf.PeriodCollegeTerm.YearSemester
                        {
                            MutableInt mi_lTempInteger_5 = new MutableInt(lTempInteger_5);
                            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_5, 'S', 21, mSAProf,
                                    "PeriodCollegeTerm", "YearSemester", "", 0);
                            lTempInteger_5 = mi_lTempInteger_5.intValue();
                            szTempString_0 = sb_szTempString_0.toString();
                        }
                        {
                            StringBuilder sb_szDesc;
                            if (szDesc == null)
                                sb_szDesc = new StringBuilder(32);
                            else
                                sb_szDesc = new StringBuilder(szDesc);
                            ZeidonStringCopy(sb_szDesc, 1, 0, "Undergrad Block Tuition - ", 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, szTempString_0, 1, 0, 301);
                            szDesc = sb_szDesc.toString();
                        }
                        //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dBlockCharge, szDesc )
                        nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dBlockCharge, szDesc);

                        //:// PBS Discount by number applicable credits.
                        //:// Applicable Block PBS Credits are 12 - dTotalNonPBS_Credits.
                        //:IF dTotalPBS_Credits > 0
                        if (dTotalPBS_Credits > 0) {
                            //:szDisplayCredits = dTotalPBS_Credits
                            {
                                StringBuilder sb_szDisplayCredits;
                                if (szDisplayCredits == null)
                                    sb_szDisplayCredits = new StringBuilder(32);
                                else
                                    sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                                ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0,
                                        dTotalPBS_Credits, "D");
                                szDisplayCredits = sb_szDisplayCredits.toString();
                            }
                            //:TraceLineS( "*** dTotalPBS_Credits: ", szDisplayCredits )
                            TraceLineS("*** dTotalPBS_Credits: ", szDisplayCredits);
                            //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PBS Disc/CR"
                            RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                                    "PBS Disc/CR", "");
                            //:IF RESULT < zCURSOR_SET
                            if (RESULT < zCURSOR_SET) {
                                //:szMsg = "No Rule Variable match on Tuition 'PBS Disc/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 Tuition 'PBS Disc/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();
                            }
                            //:dTotalNonPBS_Credits = dTotalLessAuditCredits - dTotalPBS_Credits
                            dTotalNonPBS_Credits = dTotalLessAuditCredits - dTotalPBS_Credits;
                            //:dTotalBlockPBS_Credits = 12.0 - dTotalNonPBS_Credits
                            dTotalBlockPBS_Credits = 12.0 - dTotalNonPBS_Credits;
                            //:IF dTotalBlockPBS_Credits > 0
                            if (dTotalBlockPBS_Credits > 0) {
                                //:dTotalCharge = dTotalBlockPBS_Credits * dChargePerCreditHour
                                dTotalCharge = dTotalBlockPBS_Credits * dChargePerCreditHour;
                                //:dTotalCharge = 0 - dTotalCharge        // Discount is negative of charge.
                                dTotalCharge = 0 - dTotalCharge;
                                //:szDisplayCredits = dTotalBlockPBS_Credits
                                {
                                    StringBuilder sb_szDisplayCredits;
                                    if (szDisplayCredits == null)
                                        sb_szDisplayCredits = new StringBuilder(32);
                                    else
                                        sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                                    ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0,
                                            dTotalBlockPBS_Credits, "D");
                                    szDisplayCredits = sb_szDisplayCredits.toString();
                                }
                                //:szDesc = "Undergrad Block PBS Disc - " + szDisplayCredits  + " CR"
                                {
                                    StringBuilder sb_szDesc;
                                    if (szDesc == null)
                                        sb_szDesc = new StringBuilder(32);
                                    else
                                        sb_szDesc = new StringBuilder(szDesc);
                                    ZeidonStringCopy(sb_szDesc, 1, 0, "Undergrad Block PBS Disc - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                                    szDesc = sb_szDesc.toString();
                                }
                                //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
                                nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);
                            }

                            //:END
                        }

                        //:END
                    }

                    //:END
                }

                //:   
                //:END
            }

            //:END

            //:IF dTotalOverloadCredits > 0
            if (dTotalOverloadCredits > 0) {

                //:// Overload Credits
                //:// If some of the students credits are Audit, we will consider those courses first for overload and charge
                //:// at the individual Audit price. Any regular credits that still qualify for overload are charged at the 
                //:// "OvLd Chg/CR" price.

                //:// On 8/15/2011, DonC eliminated charging Overload Credits for Audited Credits.

                //:// Determine Regular overload credits.
                //://dRegularOverloadCredits = dTotalOverloadCredits - dTotalAuditCredits
                //://IF dRegularOverloadCredits <= 0
                //://   dAuditOverloadCredits = dTotalOverloadCredits
                //://ELSE
                //://   dAuditOverloadCredits = dTotalOverloadCredits - dRegularOverloadCredits
                //://END
                //:dRegularOverloadCredits = dTotalOverloadCredits
                dRegularOverloadCredits = dTotalOverloadCredits;
                //:dAuditOverloadCredits = 0
                dAuditOverloadCredits = 0;

                //:// Regular Overload Credits
                //:IF dRegularOverloadCredits > 0
                if (dRegularOverloadCredits > 0) {
                    //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "OvLd Chg/CR"
                    RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                            "OvLd Chg/CR", "");
                    //:IF RESULT < zCURSOR_SET
                    if (RESULT < zCURSOR_SET) {
                        //:szMsg = "No Rule Variable match on Tuition 'OvLd 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 Tuition 'OvLd 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

                    //:// Generate Charge
                    //:dChargePerCreditHour = mSAChrgT.SAInternalRuleVariable.Value
                    {
                        MutableDouble md_dChargePerCreditHour = new MutableDouble(dChargePerCreditHour);
                        GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT, "SAInternalRuleVariable",
                                "Value");
                        dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                    }
                    //:dTotalCharge = dRegularOverloadCredits * dChargePerCreditHour
                    dTotalCharge = dRegularOverloadCredits * dChargePerCreditHour;
                    //:szDisplayCredits = dRegularOverloadCredits
                    {
                        StringBuilder sb_szDisplayCredits;
                        if (szDisplayCredits == null)
                            sb_szDisplayCredits = new StringBuilder(32);
                        else
                            sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                        ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0, dRegularOverloadCredits,
                                "D");
                        szDisplayCredits = sb_szDisplayCredits.toString();
                    }
                    //:szDesc = "Undergrad Tuition Overload - " + szDisplayCredits  + " CR"
                    {
                        StringBuilder sb_szDesc;
                        if (szDesc == null)
                            sb_szDesc = new StringBuilder(32);
                        else
                            sb_szDesc = new StringBuilder(szDesc);
                        ZeidonStringCopy(sb_szDesc, 1, 0, "Undergrad Tuition Overload - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                        szDesc = sb_szDesc.toString();
                    }
                    //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
                    nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);
                }

                //:END

                //:// PBS Discount for PBS Overload credits.
                //:// Applicable Credits are dTotalPBS_Credits - 17.
                //:IF dTotalPBS_Credits > 17.0
                if (dTotalPBS_Credits > 17.0) {
                    //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PBS Disc/CR"
                    RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                            "PBS Disc/CR", "");
                    //:IF RESULT < zCURSOR_SET
                    if (RESULT < zCURSOR_SET) {
                        //:szMsg = "No Rule Variable match on Tuition 'PBS Disc/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 Tuition 'PBS Disc/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();
                    }
                    //:dTotalOverloadPBS_Credits = dTotalPBS_Credits - 17.0
                    dTotalOverloadPBS_Credits = dTotalPBS_Credits - 17.0;
                    //:dTotalCharge = dTotalOverloadPBS_Credits * dChargePerCreditHour
                    dTotalCharge = dTotalOverloadPBS_Credits * dChargePerCreditHour;
                    //:dTotalCharge = 0 - dTotalCharge        // Discount is negative of charge.
                    dTotalCharge = 0 - dTotalCharge;
                    //:szDisplayCredits = dTotalOverloadPBS_Credits
                    {
                        StringBuilder sb_szDisplayCredits;
                        if (szDisplayCredits == null)
                            sb_szDisplayCredits = new StringBuilder(32);
                        else
                            sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                        ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0,
                                dTotalOverloadPBS_Credits, "D");
                        szDisplayCredits = sb_szDisplayCredits.toString();
                    }
                    //:szDesc = "Undergrad Overload PBS Disc - " + szDisplayCredits  + " CR"
                    {
                        StringBuilder sb_szDesc;
                        if (szDesc == null)
                            sb_szDesc = new StringBuilder(32);
                        else
                            sb_szDesc = new StringBuilder(szDesc);
                        ZeidonStringCopy(sb_szDesc, 1, 0, "Undergrad Overload PBS Disc - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                        szDesc = sb_szDesc.toString();
                    }
                    //:nRC = GenerateChargeEntry( mSAChrgT, mSAProf, dTotalCharge, szDesc )
                    nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT, mSAProf, dTotalCharge, szDesc);
                }

                //:END

                //:// Audit Overload Credits
                //:// Audit Per Credit Charge is 50% of Part Time Charge.
                //:IF dAuditOverloadCredits > 0
                if (dAuditOverloadCredits > 0) {
                    //:SET CURSOR FIRST mSAChrgT.SAInternalRuleVariable WHERE mSAChrgT.SAInternalRuleVariable.Name = "PT Chg/CR"
                    RESULT = SetCursorFirstEntityByString(mSAChrgT, "SAInternalRuleVariable", "Name",
                            "PT Chg/CR", "");
                    //:IF RESULT < zCURSOR_SET
                    if (RESULT < zCURSOR_SET) {
                        //:szMsg = "No Rule Variable match on Tuition 'PT 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 Tuition 'PT 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

                    //:// Generate Charge
                    //:// Audit credits use SA Trans TUITAUD
                    //:CreateViewFromView( mSAChrgT2, mSAChrgT )
                    CreateViewFromView(mSAChrgT2, mSAChrgT);
                    //:SET CURSOR FIRST mSAChrgT2.SATransactionCode WHERE mSAChrgT2.SATransactionCode.TransactionCode = "TUITAUD"
                    RESULT = SetCursorFirstEntityByString(mSAChrgT2, "SATransactionCode", "TransactionCode",
                            "TUITAUD", "");
                    //:IF RESULT < zCURSOR_SET
                    if (RESULT < zCURSOR_SET) {
                        //:szMsg = "No SA Transaction for Audit credits."
                        {
                            StringBuilder sb_szMsg;
                            if (szMsg == null)
                                sb_szMsg = new StringBuilder(32);
                            else
                                sb_szMsg = new StringBuilder(szMsg);
                            ZeidonStringCopy(sb_szMsg, 1, 0, "No SA Transaction for Audit credits.", 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    // Charge is still based on regular Tuition Tran Code.
                    {
                        MutableDouble md_dChargePerCreditHour = new MutableDouble(dChargePerCreditHour);
                        GetDecimalFromAttribute(md_dChargePerCreditHour, mSAChrgT, "SAInternalRuleVariable",
                                "Value");
                        dChargePerCreditHour = md_dChargePerCreditHour.doubleValue();
                    }
                    //:dTotalCharge = dTotalAuditCredits * dChargePerCreditHour * .5
                    dTotalCharge = dTotalAuditCredits * dChargePerCreditHour * .5;
                    //:szDisplayCredits = dTotalAuditCredits
                    {
                        StringBuilder sb_szDisplayCredits;
                        if (szDisplayCredits == null)
                            sb_szDisplayCredits = new StringBuilder(32);
                        else
                            sb_szDisplayCredits = new StringBuilder(szDisplayCredits);
                        ZeidonStringConvertFromNumber(sb_szDisplayCredits, 1, 0, 20, 0, dTotalAuditCredits,
                                "D");
                        szDisplayCredits = sb_szDisplayCredits.toString();
                    }
                    //:szDesc = "Undergrad Tuition Audit Overload - " + szDisplayCredits  + " CR"
                    {
                        StringBuilder sb_szDesc;
                        if (szDesc == null)
                            sb_szDesc = new StringBuilder(32);
                        else
                            sb_szDesc = new StringBuilder(szDesc);
                        ZeidonStringCopy(sb_szDesc, 1, 0, "Undergrad Tuition Audit Overload - ", 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, szDisplayCredits, 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, " CR", 1, 0, 301);
                        szDesc = sb_szDesc.toString();
                    }
                    //:nRC = GenerateChargeEntry( mSAChrgT2, mSAProf, dTotalCharge, szDesc )
                    nRC = omSAChrgT_GenerateChargeEntry(mSAChrgT2, mSAProf, dTotalCharge, szDesc);
                    //:DropView( mSAChrgT2 )
                    DropView(mSAChrgT2);
                }

                //:END
            }

            //:   
            //:END

            //:ELSE
        } else {
        }

        //:   // Refund.
        //:   // Because of the complexities with the discounts, we will not process refunds automatically at this point.
        //:   
        //:END
    }

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

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

public int omEmploy_ValidateDistribValues(View mEmploy) {
    zVIEW mEmployT = new zVIEW();
    //:SHORT nRC/*from w  ww  .  j  a va2  s .  com*/
    int nRC = 0;
    //:DECIMAL TotalPercent
    double TotalPercent = 0.0;
    //:DECIMAL TotalAmount
    double TotalAmount = 0.0;
    //:STRING ( 100 ) Msg
    String Msg = null;
    int RESULT = 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;

    //:// Validate that the distribution values of each Type add up to 100% when Percents are used and that they
    //:// equal the specified amount in the Contract when Amounts are used.
    //:// Also don't allow a mixture of Percents and Amounts.
    //:// When Amounts are specified, compute the Percents.
    //:// Also, make sure that a General distribution always exists and that Additional Salary and Addition Months
    //:// are specified when the corresponding Amount attributes are not zero.

    //:// General distribution values.
    //:TotalPercent = 0
    TotalPercent = 0;
    //:TotalAmount  = 0
    TotalAmount = 0;
    //:FOR EACH mEmploy.HistDeptContractDistribution WHERE mEmploy.HistDeptContractDistribution.DistributionType = "G"
    RESULT = SetCursorFirstEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "G", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF mEmploy.HistDeptContractDistribution.DistributionAmount = ""
        if (CompareAttributeToString(mEmploy, "HistDeptContractDistribution", "DistributionAmount", "") == 0) {
            //:TotalPercent = TotalPercent + mEmploy.HistDeptContractDistribution.DistributionPercent 
            {
                MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                GetDecimalFromAttribute(md_dTempDecimal_0, mEmploy, "HistDeptContractDistribution",
                        "DistributionPercent");
                dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
            }
            TotalPercent = TotalPercent + dTempDecimal_0;
            //:ELSE
        } else {
            //:TotalAmount = TotalAmount + mEmploy.HistDeptContractDistribution.DistributionAmount 
            {
                MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                GetDecimalFromAttribute(md_dTempDecimal_1, mEmploy, "HistDeptContractDistribution",
                        "DistributionAmount");
                dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
            }
            TotalAmount = TotalAmount + dTempDecimal_1;
        }

        RESULT = SetCursorNextEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "G",
                "");
        //:END
    }

    //:END
    //:IF TotalPercent > 0 AND TotalAmount > 0
    if (TotalPercent > 0 && TotalAmount > 0) {
        //:MessageSend( mEmploy, "", "Validate Distributions", 
        //:             "A mixture of Percents and Amounts exists for General Distribution entries.",
        //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
        MessageSend(mEmploy, "", "Validate Distributions",
                "A mixture of Percents and Amounts exists for General Distribution entries.",
                zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
        //:RETURN -1
        if (8 == 8)
            return (-1);
    }

    //:END
    //:IF TotalAmount > 0
    if (TotalAmount > 0) {
        //:// Distribution is defined in Amounts.
        //:IF TotalAmount != mEmploy.HistoricalContract.AnnualSalaryAmount
        if (CompareAttributeToDecimal(mEmploy, "HistoricalContract", "AnnualSalaryAmount", TotalAmount) != 0) {
            //:MessageSend( mEmploy, "", "Validate Distributions", 
            //:             "General Distribution Amounts do not add up to 'Total Salary Amount'.",
            //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
            MessageSend(mEmploy, "", "Validate Distributions",
                    "General Distribution Amounts do not add up to 'Total Salary Amount'.",
                    zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
            //:RETURN -1
            if (8 == 8)
                return (-1);
        }

        //:END
        //:ELSE
    } else {
        //:// Distribution is defined in Percents.
        //:IF TotalPercent != 0 AND TotalPercent != 100
        if (TotalPercent != 0 && TotalPercent != 100) {
            //:MessageSend( mEmploy, "", "Validate Distributions", 
            //:             "General Distribution Percents do not add up to 100%.",
            //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
            MessageSend(mEmploy, "", "Validate Distributions",
                    "General Distribution Percents do not add up to 100%.", zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
            //:RETURN -1
            if (8 == 8)
                return (-1);
        }

        //:END
    }

    //:END

    //:// Additional Salary distribution values.
    //:TotalPercent = 0
    TotalPercent = 0;
    //:TotalAmount  = 0
    TotalAmount = 0;
    //:FOR EACH mEmploy.HistDeptContractDistribution WHERE mEmploy.HistDeptContractDistribution.DistributionType = "SA"
    RESULT = SetCursorFirstEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "SA",
            "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF mEmploy.HistDeptContractDistribution.DistributionAmount = ""
        if (CompareAttributeToString(mEmploy, "HistDeptContractDistribution", "DistributionAmount", "") == 0) {
            //:TotalPercent = TotalPercent + mEmploy.HistDeptContractDistribution.DistributionPercent 
            {
                MutableDouble md_dTempDecimal_2 = new MutableDouble(dTempDecimal_2);
                GetDecimalFromAttribute(md_dTempDecimal_2, mEmploy, "HistDeptContractDistribution",
                        "DistributionPercent");
                dTempDecimal_2 = md_dTempDecimal_2.doubleValue();
            }
            TotalPercent = TotalPercent + dTempDecimal_2;
            //:ELSE
        } else {
            //:TotalAmount = TotalAmount + mEmploy.HistDeptContractDistribution.DistributionAmount 
            {
                MutableDouble md_dTempDecimal_3 = new MutableDouble(dTempDecimal_3);
                GetDecimalFromAttribute(md_dTempDecimal_3, mEmploy, "HistDeptContractDistribution",
                        "DistributionAmount");
                dTempDecimal_3 = md_dTempDecimal_3.doubleValue();
            }
            TotalAmount = TotalAmount + dTempDecimal_3;
        }

        RESULT = SetCursorNextEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "SA",
                "");
        //:END
    }

    //:END
    //:IF TotalPercent > 0 AND TotalAmount > 0
    if (TotalPercent > 0 && TotalAmount > 0) {
        //:MessageSend( mEmploy, "", "Validate Distributions", 
        //:             "A mixture of Percents and Amounts exists for Additional Salary Distribution entries.",
        //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
        MessageSend(mEmploy, "", "Validate Distributions",
                "A mixture of Percents and Amounts exists for Additional Salary Distribution entries.",
                zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
        //:RETURN -1
        if (8 == 8)
            return (-1);
    }

    //:END
    //:IF TotalAmount > 0
    if (TotalAmount > 0) {
        //:// Distribution is defined in Amounts.
        //:IF TotalAmount != mEmploy.HistoricalContract.AdditionalSalaryAmount
        if (CompareAttributeToDecimal(mEmploy, "HistoricalContract", "AdditionalSalaryAmount",
                TotalAmount) != 0) {
            //:MessageSend( mEmploy, "", "Validate Distributions", 
            //:             "Additional Salary Distribution Amounts do not add up to 'Additional Months Amount'.",
            //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
            MessageSend(mEmploy, "", "Validate Distributions",
                    "Additional Salary Distribution Amounts do not add up to 'Additional Months Amount'.",
                    zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
            //:RETURN -1
            if (8 == 8)
                return (-1);
        }

        //:END
        //:ELSE
    } else {
        //:// Distribution is defined in Percents.
        //:IF TotalPercent != 0 AND TotalPercent != 100
        if (TotalPercent != 0 && TotalPercent != 100) {
            //:MessageSend( mEmploy, "", "Validate Distributions", 
            //:             "Additional Salary Distribution Percents do not add up to 100%.",
            //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
            MessageSend(mEmploy, "", "Validate Distributions",
                    "Additional Salary Distribution Percents do not add up to 100%.",
                    zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
            //:RETURN -1
            if (8 == 8)
                return (-1);
        }

        //:END
    }

    //:END

    //:// Additional Salary Month distribution values.
    //:TotalPercent = 0
    TotalPercent = 0;
    //:TotalAmount  = 0
    TotalAmount = 0;
    //:FOR EACH mEmploy.HistDeptContractDistribution WHERE mEmploy.HistDeptContractDistribution.DistributionType = "SM"
    RESULT = SetCursorFirstEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "SM",
            "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF mEmploy.HistDeptContractDistribution.DistributionAmount = ""
        if (CompareAttributeToString(mEmploy, "HistDeptContractDistribution", "DistributionAmount", "") == 0) {
            //:TotalPercent = TotalPercent + mEmploy.HistDeptContractDistribution.DistributionPercent 
            {
                MutableDouble md_dTempDecimal_4 = new MutableDouble(dTempDecimal_4);
                GetDecimalFromAttribute(md_dTempDecimal_4, mEmploy, "HistDeptContractDistribution",
                        "DistributionPercent");
                dTempDecimal_4 = md_dTempDecimal_4.doubleValue();
            }
            TotalPercent = TotalPercent + dTempDecimal_4;
            //:ELSE
        } else {
            //:TotalAmount = TotalAmount + mEmploy.HistDeptContractDistribution.DistributionAmount 
            {
                MutableDouble md_dTempDecimal_5 = new MutableDouble(dTempDecimal_5);
                GetDecimalFromAttribute(md_dTempDecimal_5, mEmploy, "HistDeptContractDistribution",
                        "DistributionAmount");
                dTempDecimal_5 = md_dTempDecimal_5.doubleValue();
            }
            TotalAmount = TotalAmount + dTempDecimal_5;
        }

        RESULT = SetCursorNextEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "SM",
                "");
        //:END
    }

    //:END
    //:IF TotalPercent > 0 AND TotalAmount > 0
    if (TotalPercent > 0 && TotalAmount > 0) {
        //:MessageSend( mEmploy, "", "Validate Distributions", 
        //:             "A mixture of Percents and Amounts exists for Salary Months Distribution entries.",
        //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
        MessageSend(mEmploy, "", "Validate Distributions",
                "A mixture of Percents and Amounts exists for Salary Months Distribution entries.",
                zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
        //:RETURN -1
        if (8 == 8)
            return (-1);
    }

    //:END
    //:IF TotalAmount > 0
    if (TotalAmount > 0) {
        //:// Distribution is defined in Amounts.
        //:IF TotalAmount != mEmploy.HistoricalContract.dFacultyAddMonthAmount
        if (CompareAttributeToDecimal(mEmploy, "HistoricalContract", "dFacultyAddMonthAmount",
                TotalAmount) != 0) {
            //:MessageSend( mEmploy, "", "Validate Distributions", 
            //:             "Salary Months Distribution Amounts do not add up to 'Additional Months Amount'.",
            //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
            MessageSend(mEmploy, "", "Validate Distributions",
                    "Salary Months Distribution Amounts do not add up to 'Additional Months Amount'.",
                    zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
            //:RETURN -1
            if (8 == 8)
                return (-1);
        }

        //:END
        //:ELSE
    } else {
        //:// Distribution is defined in Percents.
        //:IF TotalPercent != 0 AND TotalPercent != 100
        if (TotalPercent != 0 && TotalPercent != 100) {
            //:MessageSend( mEmploy, "", "Validate Distributions", 
            //:             "Salary Months Distribution Percents do not add up to 100%.",
            //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
            MessageSend(mEmploy, "", "Validate Distributions",
                    "Salary Months Distribution Percents do not add up to 100%.", zMSGQ_OBJECT_CONSTRAINT_ERROR,
                    0);
            //:RETURN -1
            if (8 == 8)
                return (-1);
        }

        //:END
    }

    //:END

    //:// Make sure distribution entries exist as required.
    //:IF mEmploy.HistoricalContract.dTotalSalaryAmount > 0
    if (CompareAttributeToInteger(mEmploy, "HistoricalContract", "dTotalSalaryAmount", 0) > 0) {
        //:SET CURSOR FIRST mEmploy.HistDeptContractDistribution WHERE mEmploy.HistDeptContractDistribution.DistributionType = "G"
        RESULT = SetCursorFirstEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "G",
                "");
        //:IF RESULT < zCURSOR_SET
        if (RESULT < zCURSOR_SET) {
            //:MessageSend( mEmploy, "", "Validate Distributions", 
            //:             "General Distribution Entries are always required but are currently not specified.",
            //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
            MessageSend(mEmploy, "", "Validate Distributions",
                    "General Distribution Entries are always required but are currently not specified.",
                    zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
            //:RETURN -1
            if (8 == 8)
                return (-1);
        }

        //:END
    }

    //:END
    //:IF mEmploy.HistoricalContract.AdditionalSalaryAmount > 0
    if (CompareAttributeToInteger(mEmploy, "HistoricalContract", "AdditionalSalaryAmount", 0) > 0) {
        //:SET CURSOR FIRST mEmploy.HistDeptContractDistribution WHERE mEmploy.HistDeptContractDistribution.DistributionType = "SA"
        RESULT = SetCursorFirstEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "SA",
                "");
        //:IF RESULT < zCURSOR_SET
        if (RESULT < zCURSOR_SET) {
            //:MessageSend( mEmploy, "", "Validate Distributions", 
            //:             "Because an 'Additional Salary' amount is specified, a corresponding 'Salary Distribution' entry must also be specified.",
            //:             zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
            MessageSend(mEmploy, "", "Validate Distributions",
                    "Because an 'Additional Salary' amount is specified, a corresponding 'Salary Distribution' entry must also be specified.",
                    zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
            //:RETURN -1
            if (8 == 8)
                return (-1);
        }

        //:END
    }

    //:END
    //:IF mEmploy.HistoricalContract.FacultyAdditionalMonths > 0
    if (CompareAttributeToInteger(mEmploy, "HistoricalContract", "FacultyAdditionalMonths", 0) > 0) {
        //:SET CURSOR FIRST mEmploy.HistDeptContractDistribution WHERE mEmploy.HistDeptContractDistribution.DistributionType = "SM"
        RESULT = SetCursorFirstEntityByString(mEmploy, "HistDeptContractDistribution", "DistributionType", "SM",
                "");
        //:IF RESULT < zCURSOR_SET
        if (RESULT < zCURSOR_SET) {
            //:IF RESULT < zCURSOR_SET
            if (RESULT < zCURSOR_SET) {
                //:MessageSend( mEmploy, "", "Validate Distributions", 
                //:          "Because an 'Additional Salary Months' value is specified, a corresponding 'Salary Distribution' entry must also be specified.",
                //:          zMSGQ_OBJECT_CONSTRAINT_ERROR, 0 )
                MessageSend(mEmploy, "", "Validate Distributions",
                        "Because an 'Additional Salary Months' value is specified, a corresponding 'Salary Distribution' entry must also be specified.",
                        zMSGQ_OBJECT_CONSTRAINT_ERROR, 0);
                //:RETURN -1
                if (8 == 8)
                    return (-1);
            }

            //:END  
        }

        //:END
    }

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

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

public int omSAProf_dTotalCreditsPerDisb(View mSAProf, String InternalEntityStructure,
        String InternalAttribStructure, Integer GetOrSetFlag) {
    double dAmount = 0.0;

    //:CASE GetOrSetFlag
    switch (GetOrSetFlag) {
    //:OF zDERIVED_GET:
    case zDERIVED_GET:
    //:dAmount = mSAProf.PeriodCollegeTerm.dCreditsEnrolledCompleted 
    {/*from  w ww . jav a2s. c o  m*/
        MutableDouble md_dAmount = new MutableDouble(dAmount);
        GetDecimalFromAttribute(md_dAmount, mSAProf, "PeriodCollegeTerm", "dCreditsEnrolledCompleted");
        dAmount = md_dAmount.doubleValue();
    }
        //:StoreValueInRecord( mSAProf, InternalEntityStructure, 
        //:                    InternalAttribStructure, dAmount, 0 )
        StoreValueInRecord(mSAProf, 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_dPdFullTimeMin(View mFAProf, String InternalEntityStructure, String InternalAttribStructure,
        Integer GetOrSetFlag) {/*from   w  ww.  ja v a  2 s .c  o  m*/
    double dPerPeriod = 0.0;
    //:INTEGER nPeriods
    int nPeriods = 0;
    double dTempDecimal_0 = 0.0;

    //:CASE GetOrSetFlag
    switch (GetOrSetFlag) {
    //:OF   zDERIVED_GET:
    case zDERIVED_GET:
    //:nPeriods = mFAProf.FinAidAdmin.DisbursementPeriodsPerYear
    {
        MutableInt mi_nPeriods = new MutableInt(nPeriods);
        GetIntegerFromAttribute(mi_nPeriods, mFAProf, "FinAidAdmin", "DisbursementPeriodsPerYear");
        nPeriods = mi_nPeriods.intValue();
    }
        //:IF nPeriods = 0
        if (nPeriods == 0) {
            //:nPeriods = 1
            nPeriods = 1;
        }

    //:END
    //:dPerPeriod = mFAProf.FinAidAdmin.FullTimeMinCredits / nPeriods  
    {
        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
        GetDecimalFromAttribute(md_dTempDecimal_0, mFAProf, "FinAidAdmin", "FullTimeMinCredits");
        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
    }
        dPerPeriod = dTempDecimal_0 / nPeriods;

        //:StoreValueInRecord ( mFAProf,
        //:                      InternalEntityStructure, InternalAttribStructure, dPerPeriod, 0 )
        StoreValueInRecord(mFAProf, InternalEntityStructure, InternalAttribStructure, dPerPeriod, 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.mSAProf_Object.java

public int omSAProf_dCreditsInternship(View mSAProf, String InternalEntityStructure,
        String InternalAttribStructure, Integer GetOrSetFlag) {
    zVIEW mSAProf2 = new zVIEW();
    //:DECIMAL dTotalCredits 
    double dTotalCredits = 0.0;
    int RESULT = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;

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

        //:// Total the Internship credit hours that will be billable. Note that a Class dropped after the
        //:// Dropped Date for the Term will be added here.
        //:CreateViewFromView ( mSAProf2, mSAProf )
        CreateViewFromView(mSAProf2, mSAProf);
        //:NAME VIEW mSAProf2 "mSAProf2"
        SetNameForView(mSAProf2, "mSAProf2", null, zLEVEL_TASK);
        //:dTotalCredits = 0
        dTotalCredits = 0;/*w  w  w. ja  v  a  2  s .  c  o m*/
        //:FOR EACH mSAProf2.TermEnrolled 
        RESULT = mSAProf2.cursor("TermEnrolled").setFirst().toInt();
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF mSAProf2.TermCourse.InternshipFlag = "Y"
            if (CompareAttributeToString(mSAProf2, "TermCourse", "InternshipFlag", "Y") == 0) {
                //:IF mSAProf2.TermEnrolled.Status ="T"  OR mSAProf2.TermEnrolled.Status ="C" 
                if (CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "T") == 0
                        || CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "C") == 0) {
                    //:dTotalCredits = dTotalCredits + mSAProf2.TermEnrolled.CreditHours 
                    {
                        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                        GetDecimalFromAttribute(md_dTempDecimal_0, mSAProf2, "TermEnrolled", "CreditHours");
                        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                    }
                    dTotalCredits = dTotalCredits + dTempDecimal_0;
                    //:ELSE
                } else {
                    //:IF mSAProf2.TermEnrolled.Status ="D" OR mSAProf2.TermEnrolled.Status ="W" 
                    if (CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "D") == 0
                            || CompareAttributeToString(mSAProf2, "TermEnrolled", "Status", "W") == 0) {
                        //:IF mSAProf2.TermEnrolled.DroppedDate > mSAProf2.PeriodCollegeTerm.AddDropDeadlineDate 
                        if (CompareAttributeToAttribute(mSAProf2, "TermEnrolled", "DroppedDate", mSAProf2,
                                "PeriodCollegeTerm", "AddDropDeadlineDate") > 0) {
                            //:dTotalCredits = dTotalCredits + mSAProf2.TermEnrolled.CreditHours
                            {
                                MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                                GetDecimalFromAttribute(md_dTempDecimal_1, mSAProf2, "TermEnrolled",
                                        "CreditHours");
                                dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                            }
                            dTotalCredits = dTotalCredits + dTempDecimal_1;
                        }

                        //:END
                    }

                    //:END
                }

                //:END
            }

            RESULT = mSAProf2.cursor("TermEnrolled").setNextContinue().toInt();
            ;
            //:END
        }

        //:END
        //:DropView( mSAProf2 ) 
        DropView(mSAProf2);
        //:StoreValueInRecord( mSAProf, InternalEntityStructure, 
        //:                    InternalAttribStructure, dTotalCredits, 0 )
        StoreValueInRecord(mSAProf, InternalEntityStructure, InternalAttribStructure, dTotalCredits, 0);
        break;
    //:   /* end zDERIVED_GET */
    //:OF zDERIVED_SET:
    case zDERIVED_SET:
        break;
    }

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