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

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

Introduction

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

Prototype

@Override
public double doubleValue() 

Source Link

Document

Returns the value of this MutableDouble as a double.

Usage

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

public void SetSA_ProfileBalance(View AnyView, int SAProfileID) {
    zVIEW mSAProfB = new zVIEW();
    //:DECIMAL dAmount
    double dAmount = 0.0;
    zVIEW vTempViewVar_0 = new zVIEW();
    int RESULT = 0;
    double dTempDecimal_0 = 0.0;

    //:// Set Profile Balance for the SAProfile ID passed.

    //:ACTIVATE mSAProfB WHERE mSAProfB.StudentAccountProfile.ID = SAProfileID
    o_fnLocalBuildQual_15(AnyView, vTempViewVar_0, SAProfileID);
    RESULT = ActivateObjectInstance(mSAProfB, "mSAProfB", AnyView, vTempViewVar_0, zSINGLE);
    DropView(vTempViewVar_0);/*from   ww w .  jav a 2  s .co  m*/
    //:NAME VIEW mSAProfB "mSAProfB" 
    SetNameForView(mSAProfB, "mSAProfB", null, zLEVEL_TASK);
    //:dAmount = mSAProfB.StudentAccountProfile.BalanceForward 
    {
        MutableDouble md_dAmount = new MutableDouble(dAmount);
        GetDecimalFromAttribute(md_dAmount, mSAProfB, "StudentAccountProfile", "BalanceForward");
        dAmount = md_dAmount.doubleValue();
    }
    //:FOR EACH mSAProfB.StudentAccountTransApplied  
    RESULT = SetCursorFirstEntity(mSAProfB, "StudentAccountTransApplied", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:dAmount = dAmount + mSAProfB.StudentAccountTransApplied.Amount 
        {
            MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
            GetDecimalFromAttribute(md_dTempDecimal_0, mSAProfB, "StudentAccountTransApplied", "Amount");
            dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
        }
        dAmount = dAmount + dTempDecimal_0;
        RESULT = SetCursorNextEntity(mSAProfB, "StudentAccountTransApplied", "");
    }

    //:END 
    //:mSAProfB.StudentAccountProfile.AccountBalance = dAmount
    SetAttributeFromDecimal(mSAProfB, "StudentAccountProfile", "AccountBalance", dAmount);
    //:COMMIT mSAProfB
    RESULT = CommitObjectInstance(mSAProfB);
    //:DropObjectInstance( mSAProfB )
    DropObjectInstance(mSAProfB);
    return;
    // END
}

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

public int SetAddressLongitudeLatitude(View OI_View, String AddressEntityName, String ZipCode) {
    String ShortZipCode = null;//w  w w. j  a va 2  s .  com
    //:DECIMAL      Latitude
    double Latitude = 0.0;
    //:DECIMAL      Longitude
    double Longitude = 0.0;

    //:ShortZipCode = ZipCode
    {
        StringBuilder sb_ShortZipCode;
        if (ShortZipCode == null)
            sb_ShortZipCode = new StringBuilder(32);
        else
            sb_ShortZipCode = new StringBuilder(ShortZipCode);
        ZeidonStringCopy(sb_ShortZipCode, 1, 0, ZipCode, 1, 0, 6);
        ShortZipCode = sb_ShortZipCode.toString();
    }
    //:GetZipLatLong( ShortZipCode, OI_View, Latitude, Longitude )
    {
        MutableDouble md_Longitude = new MutableDouble(Longitude);
        MutableDouble md_Latitude = new MutableDouble(Latitude);
        GetZipLatLong(ShortZipCode, OI_View, md_Latitude, md_Longitude);
        Longitude = md_Longitude.doubleValue();
        Latitude = md_Latitude.doubleValue();
    }
    //:SetAttributeFromDecimal( OI_View, AddressEntityName, "Latitude", Latitude )
    SetAttributeFromDecimal(OI_View, AddressEntityName, "Latitude", Latitude);
    //:SetAttributeFromDecimal( OI_View, AddressEntityName, "Longitude", Longitude )
    SetAttributeFromDecimal(OI_View, AddressEntityName, "Longitude", Longitude);
    return (0);
    // END
}

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

public int ComputeHighExamScoreSAT(MutableDouble ReturnedScore, View mProspct) {
    zVIEW mProspct2 = new zVIEW();
    //:DECIMAL dHighMath
    double dHighMath = 0.0;
    //:DECIMAL dHighVerbal 
    double dHighVerbal = 0.0;
    //:DECIMAL dTotal 
    double dTotal = 0.0;
    int RESULT = 0;

    //:// Compute the highest total score for SAT exams for any object that has the ExamHistory subobject.
    //:CreateViewFromView( mProspct2, mProspct )
    CreateViewFromView(mProspct2, mProspct);
    //:dHighMath = 0
    dHighMath = 0;/* ww  w  .  j a v a  2s.  c  o m*/
    //:dHighVerbal = 0
    dHighVerbal = 0;
    //:FOR EACH  mProspct2.ExamHistory 
    RESULT = SetCursorFirstEntity(mProspct2, "ExamHistory", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF mProspct2.ExamHistory.ExamType = "SAT" AND mProspct2.ExamHistory.Writing = ""
        if (CompareAttributeToString(mProspct2, "ExamHistory", "ExamType", "SAT") == 0
                && CompareAttributeToString(mProspct2, "ExamHistory", "Writing", "") == 0) {
            //:IF  mProspct2.ExamHistory.MathQuantitative > dHighMath  
            if (CompareAttributeToDecimal(mProspct2, "ExamHistory", "MathQuantitative", dHighMath) > 0) {
                //:dHighMath = mProspct2.ExamHistory.MathQuantitative 
                {
                    MutableDouble md_dHighMath = new MutableDouble(dHighMath);
                    GetDecimalFromAttribute(md_dHighMath, mProspct2, "ExamHistory", "MathQuantitative");
                    dHighMath = md_dHighMath.doubleValue();
                }
            }

            //:END 
            //:IF mProspct2.ExamHistory.Verbal > dHighVerbal  
            if (CompareAttributeToDecimal(mProspct2, "ExamHistory", "Verbal", dHighVerbal) > 0) {
                //:dHighVerbal = mProspct2.ExamHistory.Verbal 
                {
                    MutableDouble md_dHighVerbal = new MutableDouble(dHighVerbal);
                    GetDecimalFromAttribute(md_dHighVerbal, mProspct2, "ExamHistory", "Verbal");
                    dHighVerbal = md_dHighVerbal.doubleValue();
                }
            }

            //:END 
        }

        RESULT = SetCursorNextEntity(mProspct2, "ExamHistory", "");
        //:END
    }

    //:END
    //:dTotal = dHighMath + dHighVerbal 
    dTotal = dHighMath + dHighVerbal;
    //:ReturnedScore = dTotal
    ReturnedScore.setValue(dTotal);
    //:DropView( mProspct2 )
    DropView(mProspct2);
    return (0);
    // END
}

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

public int ComputeHighExamScoreACT(MutableDouble ReturnedScore, View mProspct) {
    zVIEW mProspct2 = new zVIEW();
    //:DECIMAL dTotalComposite
    double dTotalComposite = 0.0;
    int RESULT = 0;

    //:// Compute the highest total score for SAT exams for any object that has the ExamHistory subobject.
    //:CreateViewFromView( mProspct2, mProspct )
    CreateViewFromView(mProspct2, mProspct);
    //:dTotalComposite = 0
    dTotalComposite = 0;// w  ww . ja va  2s .  c om
    //:FOR EACH  mProspct2.ExamHistory 
    RESULT = SetCursorFirstEntity(mProspct2, "ExamHistory", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF  mProspct2.ExamHistory.ExamType = "ACT" 
        if (CompareAttributeToString(mProspct2, "ExamHistory", "ExamType", "ACT") == 0) {
            //:IF mProspct2.ExamHistory.TotalComposite  > dTotalComposite
            if (CompareAttributeToDecimal(mProspct2, "ExamHistory", "TotalComposite", dTotalComposite) > 0) {
                //:dTotalComposite = mProspct2.ExamHistory.TotalComposite 
                {
                    MutableDouble md_dTotalComposite = new MutableDouble(dTotalComposite);
                    GetDecimalFromAttribute(md_dTotalComposite, mProspct2, "ExamHistory", "TotalComposite");
                    dTotalComposite = md_dTotalComposite.doubleValue();
                }
            }

            //:END 
        }

        RESULT = SetCursorNextEntity(mProspct2, "ExamHistory", "");
        //:END
    }

    //:END
    //:ReturnedScore = dTotalComposite
    ReturnedScore.setValue(dTotalComposite);
    //:DropView( mProspct2 )
    DropView(mProspct2);
    return (0);
    // END
}

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

public void ComputeNewHighExamScoreSAT(MutableDouble ReturnedScore, View mProspct) {
    zVIEW mProspct2 = new zVIEW();
    //:DECIMAL dHighMath
    double dHighMath = 0.0;
    //:DECIMAL dHighVerbal 
    double dHighVerbal = 0.0;
    //:DECIMAL dHighWriting
    double dHighWriting = 0.0;
    //:DECIMAL dTotal 
    double dTotal = 0.0;
    int RESULT = 0;

    //:// Compute the highest total score for SAT exams for any object that has the ExamHistory subobject.
    //:CreateViewFromView( mProspct2, mProspct )
    CreateViewFromView(mProspct2, mProspct);
    //:dHighMath    = 0
    dHighMath = 0;//from  w w w . j  ava  2  s .  c  o m
    //:dHighVerbal  = 0
    dHighVerbal = 0;
    //:dHighWriting = 0
    dHighWriting = 0;
    //:FOR EACH  mProspct2.ExamHistory 
    RESULT = SetCursorFirstEntity(mProspct2, "ExamHistory", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF  mProspct2.ExamHistory.ExamType = "SAT" AND mProspct2.ExamHistory.Writing != ""
        if (CompareAttributeToString(mProspct2, "ExamHistory", "ExamType", "SAT") == 0
                && CompareAttributeToString(mProspct2, "ExamHistory", "Writing", "") != 0) {
            //:IF  mProspct2.ExamHistory.MathQuantitative > dHighMath  
            if (CompareAttributeToDecimal(mProspct2, "ExamHistory", "MathQuantitative", dHighMath) > 0) {
                //:dHighMath = mProspct2.ExamHistory.MathQuantitative 
                {
                    MutableDouble md_dHighMath = new MutableDouble(dHighMath);
                    GetDecimalFromAttribute(md_dHighMath, mProspct2, "ExamHistory", "MathQuantitative");
                    dHighMath = md_dHighMath.doubleValue();
                }
            }

            //:END 
            //:IF mProspct2.ExamHistory.Verbal > dHighVerbal  
            if (CompareAttributeToDecimal(mProspct2, "ExamHistory", "Verbal", dHighVerbal) > 0) {
                //:dHighVerbal = mProspct2.ExamHistory.Verbal 
                {
                    MutableDouble md_dHighVerbal = new MutableDouble(dHighVerbal);
                    GetDecimalFromAttribute(md_dHighVerbal, mProspct2, "ExamHistory", "Verbal");
                    dHighVerbal = md_dHighVerbal.doubleValue();
                }
            }

            //:END 
            //:IF mProspct2.ExamHistory.Writing > dHighWriting  
            if (CompareAttributeToDecimal(mProspct2, "ExamHistory", "Writing", dHighWriting) > 0) {
                //:dHighWriting = mProspct2.ExamHistory.Writing 
                {
                    MutableDouble md_dHighWriting = new MutableDouble(dHighWriting);
                    GetDecimalFromAttribute(md_dHighWriting, mProspct2, "ExamHistory", "Writing");
                    dHighWriting = md_dHighWriting.doubleValue();
                }
            }

            //:END 
        }

        RESULT = SetCursorNextEntity(mProspct2, "ExamHistory", "");
        //:END
    }

    //:END
    //:dTotal = dHighMath + dHighVerbal + dHighWriting
    dTotal = dHighMath + dHighVerbal + dHighWriting;
    //:ReturnedScore = dTotal
    ReturnedScore.setValue(dTotal);
    //:DropView( mProspct2 )
    DropView(mProspct2);
    return;
    // END
}

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

public int CalculatePellCOA(View mFAProf, MutableDouble ReturnedTotal) {
    zVIEW mFAProf2 = new zVIEW();
    //:DECIMAL dAmount 
    double dAmount = 0.0;
    //:STRING ( 20 ) szDecimal
    String szDecimal = null;/*from ww w  .  java2s .c  om*/
    int RESULT = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;
    double dTempDecimal_2 = 0.0;

    //:// PELL COA is always all Whole Year costs.
    //:CreateViewFromView( mFAProf2, mFAProf )
    CreateViewFromView(mFAProf2, mFAProf);
    //:dAmount = 0 
    dAmount = 0;
    //:FOR EACH mFAProf2.FinAidCOAItemAssigned 
    RESULT = SetCursorFirstEntity(mFAProf2, "FinAidCOAItemAssigned", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF mFAProf2.FinAidCOAItemAssigned.RevenueAmount != ""
        if (CompareAttributeToString(mFAProf2, "FinAidCOAItemAssigned", "RevenueAmount", "") != 0) {
            //:dAmount = dAmount + mFAProf2.FinAidCOAItemAssigned.RevenueAmount 
            {
                MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                GetDecimalFromAttribute(md_dTempDecimal_0, mFAProf2, "FinAidCOAItemAssigned", "RevenueAmount");
                dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
            }
            dAmount = dAmount + dTempDecimal_0;
            //:ELSE
        } else {
            //:dAmount = dAmount + mFAProf2.FinAidCOAItemAssigned.FirstTermRevenueAmount +
            //:                    mFAProf2.FinAidCOAItemAssigned.SecondTermRevenueAmount
            {
                MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                GetDecimalFromAttribute(md_dTempDecimal_1, mFAProf2, "FinAidCOAItemAssigned",
                        "FirstTermRevenueAmount");
                dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
            }
            {
                MutableDouble md_dTempDecimal_2 = new MutableDouble(dTempDecimal_2);
                GetDecimalFromAttribute(md_dTempDecimal_2, mFAProf2, "FinAidCOAItemAssigned",
                        "SecondTermRevenueAmount");
                dTempDecimal_2 = md_dTempDecimal_2.doubleValue();
            }
            dAmount = dAmount + dTempDecimal_1 + dTempDecimal_2;
        }

        RESULT = SetCursorNextEntity(mFAProf2, "FinAidCOAItemAssigned", "");
        //:END
    }

    //:END
    //:ReturnedTotal = dAmount
    ReturnedTotal.setValue(dAmount);

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

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

public int omSAProf_CheckExistingCharges(View mSAProf) {
    zVIEW mSAProf2 = new zVIEW();
    //:VIEW mSAProfRev   BASED ON LOD mSAProf
    zVIEW mSAProfRev = new zVIEW();
    //:VIEW mPerson      REGISTERED AS mPerson
    zVIEW mPerson = new zVIEW();
    int RESULT = 0;
    //:VIEW mSAChrgIT    REGISTERED AS mSAChrgIT
    zVIEW mSAChrgIT = new zVIEW();
    //:VIEW mSAChrgITA   REGISTERED AS mSAChrgITA
    zVIEW mSAChrgITA = new zVIEW();
    //:VIEW mSAChrgITC   REGISTERED AS mSAChrgITC
    zVIEW mSAChrgITC = new zVIEW();
    //:VIEW mSAChrgITF   REGISTERED AS mSAChrgITF
    zVIEW mSAChrgITF = new zVIEW();
    //:VIEW wXferO       REGISTERED AS wXferO
    zVIEW wXferO = new zVIEW();
    //:VIEW mSAChrgMP    BASED ON LOD  mSAChrgI
    zVIEW mSAChrgMP = new zVIEW();
    //:VIEW mSARuleS     BASED ON LOD  mSARuleS
    zVIEW mSARuleS = new zVIEW();
    //:INTEGER nTransCodeID 
    int nTransCodeID = 0;
    //:INTEGER nDone
    int nDone = 0;
    //:INTEGER nRC
    int nRC = 0;/*  w w  w  . j  av  a  2 s.co  m*/
    //:DECIMAL dTotalCharged
    double dTotalCharged = 0.0;
    //:DECIMAL dTotalPos
    double dTotalPos = 0.0;
    //:DECIMAL dAmount
    double dAmount = 0.0;
    //:STRING ( 32 ) szRuleName
    String szRuleName = null;
    //:STRING ( 32 ) szSrcName
    String szSrcName = null;
    //:STRING ( 32 ) szNumber
    String szNumber = null;
    //:STRING ( 1 )  szMealPlanFlag
    String szMealPlanFlag = null;
    //:STRING ( 1 )  szResidencyFlag
    String szResidencyFlag = null;
    //:STRING ( 1 )  szLabFeeRefund
    String szLabFeeRefund = null;
    //:STRING ( 8 )  szLatestDroppedDate
    String szLatestDroppedDate = null;
    //:STRING ( 8 )  szDroppedClassStartDate
    String szDroppedClassStartDate = null;
    //:STRING ( 8 )  szCurrentDate
    String szCurrentDate = null;
    //:STRING ( 300 ) szMsg
    String szMsg = null;
    int lTempInteger_0 = 0;
    int lTempInteger_1 = 0;
    int lTempInteger_2 = 0;
    int lTempInteger_3 = 0;
    int lTempInteger_4 = 0;
    zVIEW vTempViewVar_0 = new zVIEW();
    int lTempInteger_5 = 0;
    int lTempInteger_6 = 0;
    int lTempInteger_7 = 0;
    int lTempInteger_8 = 0;
    String szTempString_0 = null;
    String szTempString_1 = null;
    int lTempInteger_9 = 0;
    int lTempInteger_10 = 0;
    int lTempInteger_11 = 0;
    int lTempInteger_12 = 0;
    zVIEW vTempViewVar_1 = new zVIEW();
    int lTempInteger_13 = 0;
    int lTempInteger_14 = 0;
    int lTempInteger_15 = 0;
    int lTempInteger_16 = 0;
    String szTempString_2 = null;
    String szTempString_3 = null;
    int lTempInteger_17 = 0;
    int lTempInteger_18 = 0;
    int lTempInteger_19 = 0;
    int lTempInteger_20 = 0;
    zVIEW vTempViewVar_2 = new zVIEW();
    int lTempInteger_21 = 0;
    int lTempInteger_22 = 0;
    String szTempString_4 = null;
    String szTempString_5 = null;
    int lTempInteger_23 = 0;
    String szTempString_6 = null;
    int lTempInteger_24 = 0;
    int lTempInteger_25 = 0;
    int lTempInteger_26 = 0;
    int lTempInteger_27 = 0;
    String szTempString_7 = null;
    int lTempInteger_28 = 0;
    int lTempInteger_29 = 0;
    int lTempInteger_30 = 0;
    int lTempInteger_31 = 0;
    String szTempString_8 = null;
    String szTempString_9 = null;
    int lTempInteger_32 = 0;
    String szTempString_10 = null;
    int lTempInteger_33 = 0;
    int lTempInteger_34 = 0;
    int lTempInteger_35 = 0;
    int lTempInteger_36 = 0;
    int lTempInteger_37 = 0;
    String szTempString_11 = null;
    String szTempString_12 = null;
    int lTempInteger_38 = 0;
    String szTempString_13 = null;
    int lTempInteger_39 = 0;
    int lTempInteger_40 = 0;
    int lTempInteger_41 = 0;
    int lTempInteger_42 = 0;
    String szTempString_14 = null;

    RESULT = GetViewByName(mPerson, "mPerson", mSAProf, zLEVEL_TASK);
    RESULT = GetViewByName(mSAChrgIT, "mSAChrgIT", mSAProf, zLEVEL_TASK);
    RESULT = GetViewByName(mSAChrgITA, "mSAChrgITA", mSAProf, zLEVEL_TASK);
    RESULT = GetViewByName(mSAChrgITC, "mSAChrgITC", mSAProf, zLEVEL_TASK);
    RESULT = GetViewByName(mSAChrgITF, "mSAChrgITF", mSAProf, zLEVEL_TASK);
    RESULT = GetViewByName(wXferO, "wXferO", mSAProf, zLEVEL_TASK);

    //:// This routine generates Refunds and Adjustments.
    //:// It loops through each current SA Transaction and evaluates it to see if it is still applicable.
    //:// If not, it generates a full refund or a partial refund (adjustment) depending on refund rules.

    //:CreateViewFromView( mSAProf2, mSAProf ) 
    CreateViewFromView(mSAProf2, mSAProf);
    //:NAME VIEW mSAProf2 "mSAProf2"
    SetNameForView(mSAProf2, "mSAProf2", null, zLEVEL_TASK);
    //:/// loop through each transaction for the currently positioned billing period
    //:FOR EACH mSAProf2.PeriodTransApplied
    RESULT = SetCursorFirstEntity(mSAProf2, "PeriodTransApplied", "");
    while (RESULT > zCURSOR_UNCHANGED) {

        //:// We will not process adjusting transactions or transactions that have been adjusted.
        //:IF mSAProf2.PeriodAdjustedSATransApplied DOES NOT EXIST AND
        lTempInteger_0 = CheckExistenceOfEntity(mSAProf2, "PeriodAdjustedSATransApplied");
        //:   mSAProf2.PeriodAdjustingSATransApplied DOES NOT EXIST
        lTempInteger_1 = CheckExistenceOfEntity(mSAProf2, "PeriodAdjustingSATransApplied");
        if (lTempInteger_0 != 0 && lTempInteger_1 != 0) {

            //:IF mSAProf2.PeriodTransApplied.ID != "" // not a new one just added
            if (CompareAttributeToString(mSAProf2, "PeriodTransApplied", "ID", "") != 0) {
                //:nDone = 0 
                nDone = 0;
                //:// get the transaction code 
                //:nTransCodeID = mSAProf2.PeriodSATransactionCode.ID 
                {
                    MutableInt mi_nTransCodeID = new MutableInt(nTransCodeID);
                    GetIntegerFromAttribute(mi_nTransCodeID, mSAProf2, "PeriodSATransactionCode", "ID");
                    nTransCodeID = mi_nTransCodeID.intValue();
                }

                //://
                //:// TUITION Charges
                //://
                //:SET CURSOR FIRST mSAChrgIT.SATransactionCode WHERE mSAChrgIT.SATransactionCode.ID = nTransCodeID 
                RESULT = SetCursorFirstEntityByInteger(mSAChrgIT, "SATransactionCode", "ID", nTransCodeID, "");
                //:IF RESULT >= zCURSOR_SET 
                if (RESULT >= zCURSOR_SET) {

                    //:// If TransactionCode is handled by an internal function, go to process it.
                    //:IF mSAChrgIT.SATransactionCode.InternalRuleName != ""
                    if (CompareAttributeToString(mSAChrgIT, "SATransactionCode", "InternalRuleName", "") != 0) {

                        //:// Internal Rule Refund
                        //:ProcessInternalRule( mSAChrgIT, mSAProf2, "Y" )  // Check rule and create transaction as necessary.
                        {
                            mSAChrgT_Object m_mSAChrgT_Object = new mSAChrgT_Object(mSAChrgIT);
                            m_mSAChrgT_Object.omSAChrgT_ProcessInternalRule(mSAChrgIT, mSAProf2, "Y");
                            // m_mSAChrgT_Object = null;  // permit gc  (unnecessary)
                        }

                        //:ELSE
                    } else {
                        //:// If there is an external rule, see if it still applies
                        //:IF mSAChrgIT.StudentAccountRuleSet EXISTS 
                        lTempInteger_2 = CheckExistenceOfEntity(mSAChrgIT, "StudentAccountRuleSet");
                        if (lTempInteger_2 == 0) {
                            //:szNumber = mSAChrgIT.StudentAccountRuleSet.ID 
                            {
                                MutableInt mi_lTempInteger_3 = new MutableInt(lTempInteger_3);
                                StringBuilder sb_szNumber;
                                if (szNumber == null)
                                    sb_szNumber = new StringBuilder(32);
                                else
                                    sb_szNumber = new StringBuilder(szNumber);
                                GetVariableFromAttribute(sb_szNumber, mi_lTempInteger_3, 'S', 33, mSAChrgIT,
                                        "StudentAccountRuleSet", "ID", "", 0);
                                lTempInteger_3 = mi_lTempInteger_3.intValue();
                                szNumber = sb_szNumber.toString();
                            }
                            //:szRuleName = "SA_RULE" + szNumber
                            {
                                StringBuilder sb_szRuleName;
                                if (szRuleName == null)
                                    sb_szRuleName = new StringBuilder(32);
                                else
                                    sb_szRuleName = new StringBuilder(szRuleName);
                                ZeidonStringCopy(sb_szRuleName, 1, 0, "SA_RULE", 1, 0, 33);
                                szRuleName = sb_szRuleName.toString();
                            }
                            {
                                StringBuilder sb_szRuleName;
                                if (szRuleName == null)
                                    sb_szRuleName = new StringBuilder(32);
                                else
                                    sb_szRuleName = new StringBuilder(szRuleName);
                                ZeidonStringConcat(sb_szRuleName, 1, 0, szNumber, 1, 0, 33);
                                szRuleName = sb_szRuleName.toString();
                            }
                            //:GET VIEW mSARuleS NAMED szRuleName
                            RESULT = GetViewByName(mSARuleS, szRuleName, mSAProf, zLEVEL_TASK);
                            //:IF RESULT <= 0
                            if (RESULT <= 0) {
                                //:ACTIVATE mSARuleS WHERE mSARuleS.StudentAccountRuleSet.ID = mSAChrgIT.StudentAccountRuleSet.ID 
                                {
                                    MutableInt mi_lTempInteger_4 = new MutableInt(lTempInteger_4);
                                    GetIntegerFromAttribute(mi_lTempInteger_4, mSAChrgIT,
                                            "StudentAccountRuleSet", "ID");
                                    lTempInteger_4 = mi_lTempInteger_4.intValue();
                                }
                                omSAProf_fnLocalBuildQual_11(mSAProf, vTempViewVar_0, lTempInteger_4);
                                RESULT = ActivateObjectInstance(mSARuleS, "mSARuleS", mSAProf, vTempViewVar_0,
                                        zSINGLE);
                                DropView(vTempViewVar_0);
                                //:NAME VIEW mSARuleS szRuleName
                                SetNameForView(mSARuleS, szRuleName, null, zLEVEL_TASK);
                            }

                            //:END 
                            //:nRC = QualifyRuleSet( mSARuleS, mSAProf2, mPerson )
                            {
                                mSARuleS_Object m_mSARuleS_Object = new mSARuleS_Object(mSARuleS);
                                nRC = m_mSARuleS_Object.omSARuleS_QualifyRuleSet(mSARuleS, mSAProf2, mPerson);
                                // m_mSARuleS_Object = null;  // permit gc  (unnecessary)
                            }
                            //:IF nRC > 0  
                            if (nRC > 0) {
                                //:// Found it and rule still applies so jump out
                                //:nDone = 1
                                nDone = 1;
                                //:ELSE 
                            } else {
                                //:// If we haven't passed the add/drop deadline date or start of class date, process full refund.
                                //:// The date we will use to determine this is the latest DroppedDate for an enrollment entry.
                                //:// Note for an external rule, we will only process a full refund. A partial refund requires using an
                                //:// Internal Rule, which is specified on the Transaction Code and checked above.
                                //:szLatestDroppedDate = ""
                                {
                                    StringBuilder sb_szLatestDroppedDate;
                                    if (szLatestDroppedDate == null)
                                        sb_szLatestDroppedDate = new StringBuilder(32);
                                    else
                                        sb_szLatestDroppedDate = new StringBuilder(szLatestDroppedDate);
                                    ZeidonStringCopy(sb_szLatestDroppedDate, 1, 0, "", 1, 0, 9);
                                    szLatestDroppedDate = sb_szLatestDroppedDate.toString();
                                }
                                //:FOR EACH mSAProf2.CurrentCollegeTerm WITHIN mSAProf2.Student WHERE
                                //:         mSAProf2.CurrentCollegeTerm.ID = mSAProf2.PeriodCollegeTerm.ID 
                                {
                                    MutableInt mi_lTempInteger_5 = new MutableInt(lTempInteger_5);
                                    GetIntegerFromAttribute(mi_lTempInteger_5, mSAProf2, "PeriodCollegeTerm",
                                            "ID");
                                    lTempInteger_5 = mi_lTempInteger_5.intValue();
                                }
                                RESULT = SetCursorFirstEntityByInteger(mSAProf2, "CurrentCollegeTerm", "ID",
                                        lTempInteger_5, "Student");
                                while (RESULT > zCURSOR_UNCHANGED) {
                                    //:      
                                    //:IF mSAProf2.Enrolled.DroppedDate > szLatestDroppedDate
                                    if (CompareAttributeToString(mSAProf2, "Enrolled", "DroppedDate",
                                            szLatestDroppedDate) > 0) {
                                        //:szLatestDroppedDate     = mSAProf2.Enrolled.DroppedDate 
                                        {
                                            MutableInt mi_lTempInteger_6 = new MutableInt(lTempInteger_6);
                                            StringBuilder sb_szLatestDroppedDate;
                                            if (szLatestDroppedDate == null)
                                                sb_szLatestDroppedDate = new StringBuilder(32);
                                            else
                                                sb_szLatestDroppedDate = new StringBuilder(szLatestDroppedDate);
                                            GetVariableFromAttribute(sb_szLatestDroppedDate, mi_lTempInteger_6,
                                                    'S', 9, mSAProf2, "Enrolled", "DroppedDate", "", 0);
                                            lTempInteger_6 = mi_lTempInteger_6.intValue();
                                            szLatestDroppedDate = sb_szLatestDroppedDate.toString();
                                        }
                                        //:szDroppedClassStartDate = mSAProf2.Class.ClassStartDate
                                        {
                                            MutableInt mi_lTempInteger_7 = new MutableInt(lTempInteger_7);
                                            StringBuilder sb_szDroppedClassStartDate;
                                            if (szDroppedClassStartDate == null)
                                                sb_szDroppedClassStartDate = new StringBuilder(32);
                                            else
                                                sb_szDroppedClassStartDate = new StringBuilder(
                                                        szDroppedClassStartDate);
                                            GetVariableFromAttribute(sb_szDroppedClassStartDate,
                                                    mi_lTempInteger_7, 'S', 9, mSAProf2, "Class",
                                                    "ClassStartDate", "", 0);
                                            lTempInteger_7 = mi_lTempInteger_7.intValue();
                                            szDroppedClassStartDate = sb_szDroppedClassStartDate.toString();
                                        }
                                    }

                                    RESULT = SetCursorNextEntityByInteger(mSAProf2, "CurrentCollegeTerm", "ID",
                                            lTempInteger_5, "Student");
                                    //:END
                                }

                                //:END
                                //:// If we haven't dropped a Class after the deadline or start of class, reverse it.
                                //:IF szLatestDroppedDate <= mSAProf2.PeriodCollegeTerm.AddDropDeadlineDate OR 
                                //:   szLatestDroppedDate <= szDroppedClassStartDate
                                if (CompareAttributeToString(mSAProf2, "PeriodCollegeTerm",
                                        "AddDropDeadlineDate", szLatestDroppedDate) >= 0
                                        || ZeidonStringCompare(szLatestDroppedDate, 1, 0,
                                                szDroppedClassStartDate, 1, 0, 9) >= 0) {

                                    //:dAmount = mSAProf2.PeriodTransApplied.Amount
                                    {
                                        MutableDouble md_dAmount = new MutableDouble(dAmount);
                                        GetDecimalFromAttribute(md_dAmount, mSAProf2, "PeriodTransApplied",
                                                "Amount");
                                        dAmount = md_dAmount.doubleValue();
                                    }
                                    //:dAmount = dAmount * -1
                                    dAmount = dAmount * -1;
                                    //:GenerateCharge( mSAProf, mSAProf.PeriodCollegeTerm.ID, 
                                    //:                nTransCodeID, 
                                    //:                dAmount, "N", "" )
                                    {
                                        MutableInt mi_lTempInteger_8 = new MutableInt(lTempInteger_8);
                                        GetIntegerFromAttribute(mi_lTempInteger_8, mSAProf, "PeriodCollegeTerm",
                                                "ID");
                                        lTempInteger_8 = mi_lTempInteger_8.intValue();
                                    }
                                    omSAProf_GenerateCharge(mSAProf, lTempInteger_8, nTransCodeID, dAmount, "N",
                                            "");
                                    //:// Override Description generated in GenerateCharge to use original description plus the word, "(Refund)"
                                    //:mSAProf.StudentAccountTransApplied.Description = mSAProf2.PeriodTransApplied.Description + " (Refund)"
                                    {
                                        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, mSAProf2,
                                                "PeriodTransApplied", "Description");
                                        szTempString_0 = sb_szTempString_0.toString();
                                    }
                                    {
                                        StringBuilder sb_szTempString_0;
                                        if (szTempString_0 == null)
                                            sb_szTempString_0 = new StringBuilder(32);
                                        else
                                            sb_szTempString_0 = new StringBuilder(szTempString_0);
                                        ZeidonStringConcat(sb_szTempString_0, 1, 0, " (Refund)", 1, 0, 255);
                                        szTempString_0 = sb_szTempString_0.toString();
                                    }
                                    SetAttributeFromString(mSAProf, "StudentAccountTransApplied", "Description",
                                            szTempString_0);
                                    //:AcceptSubobject( mSAProf, "StudentAccountTransApplied" )
                                    AcceptSubobject(mSAProf, "StudentAccountTransApplied");
                                    //:INCLUDE mSAProf.AdjustedSATransApplied FROM mSAProf2.PeriodTransApplied
                                    RESULT = IncludeSubobjectFromSubobject(mSAProf, "AdjustedSATransApplied",
                                            mSAProf2, "PeriodTransApplied", zPOS_AFTER);
                                    //:ELSE
                                } else {
                                    //:// We will give the User a message indicating classes dropped after deadline or start of class.
                                    //:szMsg = "Potential Refund Error for " + mSAProf.Person.dFullNameLFM + ":" + NEW_LINE +
                                    //:        "A class has been dropped after the Term Drop Date Deadline or Class Start Date. " +
                                    //:        "Refund rules are not processed automatically in this case, so charges may need to be evaluated manually."
                                    {
                                        MutableInt mi_lTempInteger_9 = new MutableInt(lTempInteger_9);
                                        StringBuilder sb_szTempString_1;
                                        if (szTempString_1 == null)
                                            sb_szTempString_1 = new StringBuilder(32);
                                        else
                                            sb_szTempString_1 = new StringBuilder(szTempString_1);
                                        GetVariableFromAttribute(sb_szTempString_1, mi_lTempInteger_9, 'S', 255,
                                                mSAProf, "Person", "dFullNameLFM", "", 0);
                                        lTempInteger_9 = mi_lTempInteger_9.intValue();
                                        szTempString_1 = sb_szTempString_1.toString();
                                    }
                                    {
                                        StringBuilder sb_szMsg;
                                        if (szMsg == null)
                                            sb_szMsg = new StringBuilder(32);
                                        else
                                            sb_szMsg = new StringBuilder(szMsg);
                                        ZeidonStringCopy(sb_szMsg, 1, 0, "Potential Refund Error for ", 1, 0,
                                                301);
                                        szMsg = sb_szMsg.toString();
                                    }
                                    {
                                        StringBuilder sb_szMsg;
                                        if (szMsg == null)
                                            sb_szMsg = new StringBuilder(32);
                                        else
                                            sb_szMsg = new StringBuilder(szMsg);
                                        ZeidonStringConcat(sb_szMsg, 1, 0, szTempString_1, 1, 0, 301);
                                        szMsg = sb_szMsg.toString();
                                    }
                                    {
                                        StringBuilder sb_szMsg;
                                        if (szMsg == null)
                                            sb_szMsg = new StringBuilder(32);
                                        else
                                            sb_szMsg = new StringBuilder(szMsg);
                                        ZeidonStringConcat(sb_szMsg, 1, 0, ":", 1, 0, 301);
                                        szMsg = sb_szMsg.toString();
                                    }
                                    {
                                        StringBuilder sb_szMsg;
                                        if (szMsg == null)
                                            sb_szMsg = new StringBuilder(32);
                                        else
                                            sb_szMsg = new StringBuilder(szMsg);
                                        ZeidonStringConcat(sb_szMsg, 1, 0, NEW_LINE, 1, 0, 301);
                                        szMsg = sb_szMsg.toString();
                                    }
                                    {
                                        StringBuilder sb_szMsg;
                                        if (szMsg == null)
                                            sb_szMsg = new StringBuilder(32);
                                        else
                                            sb_szMsg = new StringBuilder(szMsg);
                                        ZeidonStringConcat(sb_szMsg, 1, 0,
                                                "A class has been dropped after the Term Drop Date Deadline or Class Start Date. ",
                                                1, 0, 301);
                                        szMsg = sb_szMsg.toString();
                                    }
                                    {
                                        StringBuilder sb_szMsg;
                                        if (szMsg == null)
                                            sb_szMsg = new StringBuilder(32);
                                        else
                                            sb_szMsg = new StringBuilder(szMsg);
                                        ZeidonStringConcat(sb_szMsg, 1, 0,
                                                "Refund rules are not processed automatically in this case, so charges may need to be evaluated manually.",
                                                1, 0, 301);
                                        szMsg = sb_szMsg.toString();
                                    }
                                    //:MessageSend( mSAProf, "", "Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_WARNING, 0 )
                                    MessageSend(mSAProf, "", "Process Rule", szMsg,
                                            zMSGQ_OBJECT_CONSTRAINT_WARNING, 0);
                                }

                                //:END
                            }

                            //:END 
                        }

                        //:END 
                    }

                    //:END

                    //:nDone = 1   // Since this was a Tuition Tran Code, jump out.
                    nDone = 1;
                }

                //:END

                //:// 
                //:// TUITION Adjustments
                //:// 
                //:IF nDone = 0 
                if (nDone == 0) {
                    //:SET CURSOR FIRST mSAChrgITA.SATransactionCode WHERE mSAChrgITA.SATransactionCode.ID = nTransCodeID 
                    RESULT = SetCursorFirstEntityByInteger(mSAChrgITA, "SATransactionCode", "ID", nTransCodeID,
                            "");
                    //:IF RESULT >= zCURSOR_SET 
                    if (RESULT >= zCURSOR_SET) {

                        //:// If TransactionCode is handled by an internal function, go to process it.
                        //:IF mSAChrgITA.SATransactionCode.InternalRuleName != ""
                        if (CompareAttributeToString(mSAChrgITA, "SATransactionCode", "InternalRuleName",
                                "") != 0) {

                            //:// Internal Rule Refund
                            //:ProcessInternalRule( mSAChrgITA, mSAProf2, "Y" )  // Check rule and create transaction as necessary.
                            {
                                mSAChrgT_Object m_mSAChrgT_Object = new mSAChrgT_Object(mSAChrgITA);
                                m_mSAChrgT_Object.omSAChrgT_ProcessInternalRule(mSAChrgITA, mSAProf2, "Y");
                                // m_mSAChrgT_Object = null;  // permit gc  (unnecessary)
                            }

                            //:ELSE
                        } else {

                            //:// If there is an external rule, see if it still applies
                            //:IF mSAChrgITA.StudentAccountRuleSet EXISTS 
                            lTempInteger_10 = CheckExistenceOfEntity(mSAChrgITA, "StudentAccountRuleSet");
                            if (lTempInteger_10 == 0) {
                                //:szNumber = mSAChrgITA.StudentAccountRuleSet.ID 
                                {
                                    MutableInt mi_lTempInteger_11 = new MutableInt(lTempInteger_11);
                                    StringBuilder sb_szNumber;
                                    if (szNumber == null)
                                        sb_szNumber = new StringBuilder(32);
                                    else
                                        sb_szNumber = new StringBuilder(szNumber);
                                    GetVariableFromAttribute(sb_szNumber, mi_lTempInteger_11, 'S', 33,
                                            mSAChrgITA, "StudentAccountRuleSet", "ID", "", 0);
                                    lTempInteger_11 = mi_lTempInteger_11.intValue();
                                    szNumber = sb_szNumber.toString();
                                }
                                //:szRuleName = "SA_RULE" + szNumber
                                {
                                    StringBuilder sb_szRuleName;
                                    if (szRuleName == null)
                                        sb_szRuleName = new StringBuilder(32);
                                    else
                                        sb_szRuleName = new StringBuilder(szRuleName);
                                    ZeidonStringCopy(sb_szRuleName, 1, 0, "SA_RULE", 1, 0, 33);
                                    szRuleName = sb_szRuleName.toString();
                                }
                                {
                                    StringBuilder sb_szRuleName;
                                    if (szRuleName == null)
                                        sb_szRuleName = new StringBuilder(32);
                                    else
                                        sb_szRuleName = new StringBuilder(szRuleName);
                                    ZeidonStringConcat(sb_szRuleName, 1, 0, szNumber, 1, 0, 33);
                                    szRuleName = sb_szRuleName.toString();
                                }
                                //:GET VIEW mSARuleS NAMED szRuleName
                                RESULT = GetViewByName(mSARuleS, szRuleName, mSAProf, zLEVEL_TASK);
                                //:IF RESULT <= 0
                                if (RESULT <= 0) {
                                    //:ACTIVATE mSARuleS WHERE mSARuleS.StudentAccountRuleSet.ID = mSAChrgITA.StudentAccountRuleSet.ID 
                                    {
                                        MutableInt mi_lTempInteger_12 = new MutableInt(lTempInteger_12);
                                        GetIntegerFromAttribute(mi_lTempInteger_12, mSAChrgITA,
                                                "StudentAccountRuleSet", "ID");
                                        lTempInteger_12 = mi_lTempInteger_12.intValue();
                                    }
                                    omSAProf_fnLocalBuildQual_12(mSAProf, vTempViewVar_1, lTempInteger_12);
                                    RESULT = ActivateObjectInstance(mSARuleS, "mSARuleS", mSAProf,
                                            vTempViewVar_1, zSINGLE);
                                    DropView(vTempViewVar_1);
                                    //:NAME VIEW mSARuleS szRuleName
                                    SetNameForView(mSARuleS, szRuleName, null, zLEVEL_TASK);
                                }

                                //:END 
                                //:nRC = QualifyRuleSet( mSARuleS, mSAProf2, mPerson )
                                {
                                    mSARuleS_Object m_mSARuleS_Object = new mSARuleS_Object(mSARuleS);
                                    nRC = m_mSARuleS_Object.omSARuleS_QualifyRuleSet(mSARuleS, mSAProf2,
                                            mPerson);
                                    // m_mSARuleS_Object = null;  // permit gc  (unnecessary)
                                }
                                //:IF nRC > 0 
                                if (nRC > 0) {
                                    //:// Found it and rule still applies so jump out.
                                    //:// Note that this code doesn't check the situation where the Amount has changed.
                                    //:nDone = 1
                                    nDone = 1;
                                    //:ELSE 
                                } else {
                                    //:// If we haven't passed the add/drop deadline date or start of class date, process full refund.
                                    //:// The date we will use to determine this is the latest DroppedDate for an enrollment entry.
                                    //:// Note for an external rule, we will only process a full refund. A partial refund requires using an
                                    //:// Internal Rule, which is specified on the Transaction Code and checked above.
                                    //:szLatestDroppedDate = ""
                                    {
                                        StringBuilder sb_szLatestDroppedDate;
                                        if (szLatestDroppedDate == null)
                                            sb_szLatestDroppedDate = new StringBuilder(32);
                                        else
                                            sb_szLatestDroppedDate = new StringBuilder(szLatestDroppedDate);
                                        ZeidonStringCopy(sb_szLatestDroppedDate, 1, 0, "", 1, 0, 9);
                                        szLatestDroppedDate = sb_szLatestDroppedDate.toString();
                                    }
                                    //:FOR EACH mSAProf2.CurrentCollegeTerm WITHIN mSAProf2.Student WHERE
                                    //:         mSAProf2.CurrentCollegeTerm.ID = mSAProf2.PeriodCollegeTerm.ID 
                                    {
                                        MutableInt mi_lTempInteger_13 = new MutableInt(lTempInteger_13);
                                        GetIntegerFromAttribute(mi_lTempInteger_13, mSAProf2,
                                                "PeriodCollegeTerm", "ID");
                                        lTempInteger_13 = mi_lTempInteger_13.intValue();
                                    }
                                    RESULT = SetCursorFirstEntityByInteger(mSAProf2, "CurrentCollegeTerm", "ID",
                                            lTempInteger_13, "Student");
                                    while (RESULT > zCURSOR_UNCHANGED) {
                                        //:      
                                        //:IF mSAProf2.Enrolled.DroppedDate > szLatestDroppedDate
                                        if (CompareAttributeToString(mSAProf2, "Enrolled", "DroppedDate",
                                                szLatestDroppedDate) > 0) {
                                            //:szLatestDroppedDate     = mSAProf2.Enrolled.DroppedDate 
                                            {
                                                MutableInt mi_lTempInteger_14 = new MutableInt(lTempInteger_14);
                                                StringBuilder sb_szLatestDroppedDate;
                                                if (szLatestDroppedDate == null)
                                                    sb_szLatestDroppedDate = new StringBuilder(32);
                                                else
                                                    sb_szLatestDroppedDate = new StringBuilder(
                                                            szLatestDroppedDate);
                                                GetVariableFromAttribute(sb_szLatestDroppedDate,
                                                        mi_lTempInteger_14, 'S', 9, mSAProf2, "Enrolled",
                                                        "DroppedDate", "", 0);
                                                lTempInteger_14 = mi_lTempInteger_14.intValue();
                                                szLatestDroppedDate = sb_szLatestDroppedDate.toString();
                                            }
                                            //:szDroppedClassStartDate = mSAProf2.Class.ClassStartDate
                                            {
                                                MutableInt mi_lTempInteger_15 = new MutableInt(lTempInteger_15);
                                                StringBuilder sb_szDroppedClassStartDate;
                                                if (szDroppedClassStartDate == null)
                                                    sb_szDroppedClassStartDate = new StringBuilder(32);
                                                else
                                                    sb_szDroppedClassStartDate = new StringBuilder(
                                                            szDroppedClassStartDate);
                                                GetVariableFromAttribute(sb_szDroppedClassStartDate,
                                                        mi_lTempInteger_15, 'S', 9, mSAProf2, "Class",
                                                        "ClassStartDate", "", 0);
                                                lTempInteger_15 = mi_lTempInteger_15.intValue();
                                                szDroppedClassStartDate = sb_szDroppedClassStartDate.toString();
                                            }
                                        }

                                        RESULT = SetCursorNextEntityByInteger(mSAProf2, "CurrentCollegeTerm",
                                                "ID", lTempInteger_13, "Student");
                                        //:END
                                    }

                                    //:END
                                    //:// If we haven't dropped a Class after the deadline or start of class, reverse it.
                                    //:IF szLatestDroppedDate <= mSAProf2.PeriodCollegeTerm.AddDropDeadlineDate OR 
                                    //:   szLatestDroppedDate <= szDroppedClassStartDate
                                    if (CompareAttributeToString(mSAProf2, "PeriodCollegeTerm",
                                            "AddDropDeadlineDate", szLatestDroppedDate) >= 0
                                            || ZeidonStringCompare(szLatestDroppedDate, 1, 0,
                                                    szDroppedClassStartDate, 1, 0, 9) >= 0) {

                                        //:dAmount = mSAProf2.PeriodTransApplied.Amount
                                        {
                                            MutableDouble md_dAmount = new MutableDouble(dAmount);
                                            GetDecimalFromAttribute(md_dAmount, mSAProf2, "PeriodTransApplied",
                                                    "Amount");
                                            dAmount = md_dAmount.doubleValue();
                                        }
                                        //:dAmount = dAmount * -1
                                        dAmount = dAmount * -1;
                                        //:GenerateCharge( mSAProf, mSAProf.PeriodCollegeTerm.ID, 
                                        //:                nTransCodeID, 
                                        //:                dAmount, "N", "" )
                                        {
                                            MutableInt mi_lTempInteger_16 = new MutableInt(lTempInteger_16);
                                            GetIntegerFromAttribute(mi_lTempInteger_16, mSAProf,
                                                    "PeriodCollegeTerm", "ID");
                                            lTempInteger_16 = mi_lTempInteger_16.intValue();
                                        }
                                        omSAProf_GenerateCharge(mSAProf, lTempInteger_16, nTransCodeID, dAmount,
                                                "N", "");
                                        //:// Override Description generated in GenerateCharge to use original description plus the word, "(Refund)"
                                        //:mSAProf.StudentAccountTransApplied.Description = mSAProf2.PeriodTransApplied.Description + " (Refund)"
                                        {
                                            StringBuilder sb_szTempString_2;
                                            if (szTempString_2 == null)
                                                sb_szTempString_2 = new StringBuilder(32);
                                            else
                                                sb_szTempString_2 = new StringBuilder(szTempString_2);
                                            GetStringFromAttribute(sb_szTempString_2, mSAProf2,
                                                    "PeriodTransApplied", "Description");
                                            szTempString_2 = sb_szTempString_2.toString();
                                        }
                                        {
                                            StringBuilder sb_szTempString_2;
                                            if (szTempString_2 == null)
                                                sb_szTempString_2 = new StringBuilder(32);
                                            else
                                                sb_szTempString_2 = new StringBuilder(szTempString_2);
                                            ZeidonStringConcat(sb_szTempString_2, 1, 0, " (Refund)", 1, 0, 255);
                                            szTempString_2 = sb_szTempString_2.toString();
                                        }
                                        SetAttributeFromString(mSAProf, "StudentAccountTransApplied",
                                                "Description", szTempString_2);
                                        //:AcceptSubobject( mSAProf, "StudentAccountTransApplied" )
                                        AcceptSubobject(mSAProf, "StudentAccountTransApplied");
                                        //:INCLUDE mSAProf.AdjustedSATransApplied FROM mSAProf2.PeriodTransApplied
                                        RESULT = IncludeSubobjectFromSubobject(mSAProf,
                                                "AdjustedSATransApplied", mSAProf2, "PeriodTransApplied",
                                                zPOS_AFTER);
                                        //:ELSE
                                    } else {
                                        //:// We will give the User a message indicating classes dropped after deadline or start of class.
                                        //:szMsg = "Potential Refund Error for " + mSAProf.Person.dFullNameLFM + ":" + NEW_LINE +
                                        //:        "A class has been dropped after the Term Drop Date Deadline or Class Start Date. " +
                                        //:        "Refund rules are not processed automatically in this case, so charges may need to be evaluated manually."
                                        {
                                            MutableInt mi_lTempInteger_17 = new MutableInt(lTempInteger_17);
                                            StringBuilder sb_szTempString_3;
                                            if (szTempString_3 == null)
                                                sb_szTempString_3 = new StringBuilder(32);
                                            else
                                                sb_szTempString_3 = new StringBuilder(szTempString_3);
                                            GetVariableFromAttribute(sb_szTempString_3, mi_lTempInteger_17, 'S',
                                                    255, mSAProf, "Person", "dFullNameLFM", "", 0);
                                            lTempInteger_17 = mi_lTempInteger_17.intValue();
                                            szTempString_3 = sb_szTempString_3.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringCopy(sb_szMsg, 1, 0, "Potential Refund Error for ", 1,
                                                    0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0, szTempString_3, 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0, ":", 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0, NEW_LINE, 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0,
                                                    "A class has been dropped after the Term Drop Date Deadline or Class Start Date. ",
                                                    1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0,
                                                    "Refund rules are not processed automatically in this case, so charges may need to be evaluated manually.",
                                                    1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        //:MessageSend( mSAProf, "", "Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_WARNING, 0 )
                                        MessageSend(mSAProf, "", "Process Rule", szMsg,
                                                zMSGQ_OBJECT_CONSTRAINT_WARNING, 0);
                                    }

                                    //:END
                                }

                                //:END 
                            }

                            //:END
                        }

                        //:END 

                        //:nDone = 1   // Since this was a Tuition Adjustment Tran Code, jump out.
                        nDone = 1;
                    }

                    //:END
                }

                //:END
                //://
                //:// MISC Fees
                //://
                //:IF nDone = 0 
                if (nDone == 0) {
                    //:SET CURSOR FIRST mSAChrgITF.SATransactionCode WHERE mSAChrgITF.SATransactionCode.ID = nTransCodeID 
                    RESULT = SetCursorFirstEntityByInteger(mSAChrgITF, "SATransactionCode", "ID", nTransCodeID,
                            "");
                    //:IF RESULT >= zCURSOR_SET 
                    if (RESULT >= zCURSOR_SET) {

                        //:// If TransactionCode is handled by an internal function, go to process it.
                        //:IF mSAChrgITF.SATransactionCode.InternalRuleName != ""
                        if (CompareAttributeToString(mSAChrgITF, "SATransactionCode", "InternalRuleName",
                                "") != 0) {

                            //:// Internal Rule Refund
                            //:ProcessInternalRule( mSAChrgITF, mSAProf2, "Y" )  // Check rule and create transaction as necessary.
                            {
                                mSAChrgT_Object m_mSAChrgT_Object = new mSAChrgT_Object(mSAChrgITF);
                                m_mSAChrgT_Object.omSAChrgT_ProcessInternalRule(mSAChrgITF, mSAProf2, "Y");
                                // m_mSAChrgT_Object = null;  // permit gc  (unnecessary)
                            }

                            //:ELSE
                        } else {

                            //:IF mSAChrgITF.StudentAccountRuleSet EXISTS 
                            lTempInteger_18 = CheckExistenceOfEntity(mSAChrgITF, "StudentAccountRuleSet");
                            if (lTempInteger_18 == 0) {
                                //:szNumber = mSAChrgITF.StudentAccountRuleSet.ID 
                                {
                                    MutableInt mi_lTempInteger_19 = new MutableInt(lTempInteger_19);
                                    StringBuilder sb_szNumber;
                                    if (szNumber == null)
                                        sb_szNumber = new StringBuilder(32);
                                    else
                                        sb_szNumber = new StringBuilder(szNumber);
                                    GetVariableFromAttribute(sb_szNumber, mi_lTempInteger_19, 'S', 33,
                                            mSAChrgITF, "StudentAccountRuleSet", "ID", "", 0);
                                    lTempInteger_19 = mi_lTempInteger_19.intValue();
                                    szNumber = sb_szNumber.toString();
                                }
                                //:szRuleName = "SA_RULE" + szNumber
                                {
                                    StringBuilder sb_szRuleName;
                                    if (szRuleName == null)
                                        sb_szRuleName = new StringBuilder(32);
                                    else
                                        sb_szRuleName = new StringBuilder(szRuleName);
                                    ZeidonStringCopy(sb_szRuleName, 1, 0, "SA_RULE", 1, 0, 33);
                                    szRuleName = sb_szRuleName.toString();
                                }
                                {
                                    StringBuilder sb_szRuleName;
                                    if (szRuleName == null)
                                        sb_szRuleName = new StringBuilder(32);
                                    else
                                        sb_szRuleName = new StringBuilder(szRuleName);
                                    ZeidonStringConcat(sb_szRuleName, 1, 0, szNumber, 1, 0, 33);
                                    szRuleName = sb_szRuleName.toString();
                                }
                                //:GET VIEW mSARuleS NAMED szRuleName
                                RESULT = GetViewByName(mSARuleS, szRuleName, mSAProf, zLEVEL_TASK);
                                //:IF RESULT <= 0
                                if (RESULT <= 0) {
                                    //:ACTIVATE mSARuleS WHERE mSARuleS.StudentAccountRuleSet.ID = mSAChrgITF.StudentAccountRuleSet.ID 
                                    {
                                        MutableInt mi_lTempInteger_20 = new MutableInt(lTempInteger_20);
                                        GetIntegerFromAttribute(mi_lTempInteger_20, mSAChrgITF,
                                                "StudentAccountRuleSet", "ID");
                                        lTempInteger_20 = mi_lTempInteger_20.intValue();
                                    }
                                    omSAProf_fnLocalBuildQual_13(mSAProf, vTempViewVar_2, lTempInteger_20);
                                    RESULT = ActivateObjectInstance(mSARuleS, "mSARuleS", mSAProf,
                                            vTempViewVar_2, zSINGLE);
                                    DropView(vTempViewVar_2);
                                    //:NAME VIEW mSARuleS szRuleName
                                    SetNameForView(mSARuleS, szRuleName, null, zLEVEL_TASK);
                                }

                                //:END 

                                //:nRC = QualifyRuleSet( mSARuleS, mSAProf2, mPerson )
                                {
                                    mSARuleS_Object m_mSARuleS_Object = new mSARuleS_Object(mSARuleS);
                                    nRC = m_mSARuleS_Object.omSARuleS_QualifyRuleSet(mSARuleS, mSAProf2,
                                            mPerson);
                                    // m_mSARuleS_Object = null;  // permit gc  (unnecessary)
                                }
                                //:IF nRC <= 0  
                                if (nRC <= 0) {
                                    //:// Rule doesn't apply, so process Refund.
                                    //:// If today's date is before the Add/Drop Date Deadline, we'll process the refund.
                                    //:// Otherwise, we'll give the operator a message.
                                    //:szCurrentDate = wXferO.Root.dCurrentDate 
                                    {
                                        MutableInt mi_lTempInteger_21 = new MutableInt(lTempInteger_21);
                                        StringBuilder sb_szCurrentDate;
                                        if (szCurrentDate == null)
                                            sb_szCurrentDate = new StringBuilder(32);
                                        else
                                            sb_szCurrentDate = new StringBuilder(szCurrentDate);
                                        GetVariableFromAttribute(sb_szCurrentDate, mi_lTempInteger_21, 'S', 9,
                                                wXferO, "Root", "dCurrentDate", "", 0);
                                        lTempInteger_21 = mi_lTempInteger_21.intValue();
                                        szCurrentDate = sb_szCurrentDate.toString();
                                    }
                                    //:IF szCurrentDate <= mSAProf.PeriodCollegeTerm.AddDropDeadlineDate
                                    if (CompareAttributeToString(mSAProf, "PeriodCollegeTerm",
                                            "AddDropDeadlineDate", szCurrentDate) >= 0) {
                                        //:dAmount = mSAProf2.PeriodTransApplied.Amount 
                                        {
                                            MutableDouble md_dAmount = new MutableDouble(dAmount);
                                            GetDecimalFromAttribute(md_dAmount, mSAProf2, "PeriodTransApplied",
                                                    "Amount");
                                            dAmount = md_dAmount.doubleValue();
                                        }
                                        //:dAmount = dAmount * -1
                                        dAmount = dAmount * -1;
                                        //:GenerateCharge( mSAProf, mSAProf2.PeriodCollegeTerm.ID, nTransCodeID, dAmount, "N", "" )
                                        {
                                            MutableInt mi_lTempInteger_22 = new MutableInt(lTempInteger_22);
                                            GetIntegerFromAttribute(mi_lTempInteger_22, mSAProf2,
                                                    "PeriodCollegeTerm", "ID");
                                            lTempInteger_22 = mi_lTempInteger_22.intValue();
                                        }
                                        omSAProf_GenerateCharge(mSAProf, lTempInteger_22, nTransCodeID, dAmount,
                                                "N", "");
                                        //:// Override Description generated in GenerateCharge to use original description plus the word, "(Refund)"
                                        //:mSAProf.StudentAccountTransApplied.Description = mSAProf2.PeriodTransApplied.Description + " (Refund)"
                                        {
                                            StringBuilder sb_szTempString_4;
                                            if (szTempString_4 == null)
                                                sb_szTempString_4 = new StringBuilder(32);
                                            else
                                                sb_szTempString_4 = new StringBuilder(szTempString_4);
                                            GetStringFromAttribute(sb_szTempString_4, mSAProf2,
                                                    "PeriodTransApplied", "Description");
                                            szTempString_4 = sb_szTempString_4.toString();
                                        }
                                        {
                                            StringBuilder sb_szTempString_4;
                                            if (szTempString_4 == null)
                                                sb_szTempString_4 = new StringBuilder(32);
                                            else
                                                sb_szTempString_4 = new StringBuilder(szTempString_4);
                                            ZeidonStringConcat(sb_szTempString_4, 1, 0, " (Refund)", 1, 0, 255);
                                            szTempString_4 = sb_szTempString_4.toString();
                                        }
                                        SetAttributeFromString(mSAProf, "StudentAccountTransApplied",
                                                "Description", szTempString_4);
                                        //:AcceptSubobject( mSAProf, "StudentAccountTransApplied" )
                                        AcceptSubobject(mSAProf, "StudentAccountTransApplied");
                                        //:INCLUDE mSAProf.AdjustedSATransApplied FROM mSAProf2.PeriodTransApplied
                                        RESULT = IncludeSubobjectFromSubobject(mSAProf,
                                                "AdjustedSATransApplied", mSAProf2, "PeriodTransApplied",
                                                zPOS_AFTER);
                                        //:ELSE
                                    } else {
                                        //:// We will give the User a message indicating a potential refund.
                                        //:szMsg = "Potential Refund Error for " + mSAProf.Person.dFullNameLFM + ":" + NEW_LINE +
                                        //:        "Misc. charge, '" + mSAChrgITF.SATransactionCode.Description + "', is no longer valid, but we have passed " +
                                        //:        "the deadline for an automatic refund to be generated, so charges may need to be evaluated manually."
                                        {
                                            MutableInt mi_lTempInteger_23 = new MutableInt(lTempInteger_23);
                                            StringBuilder sb_szTempString_5;
                                            if (szTempString_5 == null)
                                                sb_szTempString_5 = new StringBuilder(32);
                                            else
                                                sb_szTempString_5 = new StringBuilder(szTempString_5);
                                            GetVariableFromAttribute(sb_szTempString_5, mi_lTempInteger_23, 'S',
                                                    255, mSAProf, "Person", "dFullNameLFM", "", 0);
                                            lTempInteger_23 = mi_lTempInteger_23.intValue();
                                            szTempString_5 = sb_szTempString_5.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringCopy(sb_szMsg, 1, 0, "Potential Refund Error for ", 1,
                                                    0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0, szTempString_5, 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0, ":", 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0, NEW_LINE, 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0, "Misc. charge, '", 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            MutableInt mi_lTempInteger_24 = new MutableInt(lTempInteger_24);
                                            StringBuilder sb_szTempString_6;
                                            if (szTempString_6 == null)
                                                sb_szTempString_6 = new StringBuilder(32);
                                            else
                                                sb_szTempString_6 = new StringBuilder(szTempString_6);
                                            GetVariableFromAttribute(sb_szTempString_6, mi_lTempInteger_24, 'S',
                                                    255, mSAChrgITF, "SATransactionCode", "Description", "", 0);
                                            lTempInteger_24 = mi_lTempInteger_24.intValue();
                                            szTempString_6 = sb_szTempString_6.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0, szTempString_6, 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0,
                                                    "', is no longer valid, but we have passed ", 1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        {
                                            StringBuilder sb_szMsg;
                                            if (szMsg == null)
                                                sb_szMsg = new StringBuilder(32);
                                            else
                                                sb_szMsg = new StringBuilder(szMsg);
                                            ZeidonStringConcat(sb_szMsg, 1, 0,
                                                    "the deadline for an automatic refund to be generated, so charges may need to be evaluated manually.",
                                                    1, 0, 301);
                                            szMsg = sb_szMsg.toString();
                                        }
                                        //:MessageSend( mSAProf, "", "Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_WARNING, 0 )
                                        MessageSend(mSAProf, "", "Process Rule", szMsg,
                                                zMSGQ_OBJECT_CONSTRAINT_WARNING, 0);
                                    }

                                    //:END
                                }

                                //:END 
                            }

                            //:END 
                        }

                        //:END

                        //:nDone = 1
                        nDone = 1;
                    }

                    //:END 
                }

                //:END
                //:// 
                //:// MEAL Plan
                //:// 
                //:IF nDone = 0 
                if (nDone == 0) {
                    //:IF mSAProf2.PeriodSourceTermOfMealPlan EXISTS
                    lTempInteger_25 = CheckExistenceOfEntity(mSAProf2, "PeriodSourceTermOfMealPlan");
                    if (lTempInteger_25 == 0) {
                        //:// The Transaction is for a Meal Plan.
                        //:// We will do a full reversal of the entry if the Meal Plan entry no longer exists or if it has been terminated before
                        //:// the Add/DropDead date.
                        //:szMealPlanFlag = ""
                        {
                            StringBuilder sb_szMealPlanFlag;
                            if (szMealPlanFlag == null)
                                sb_szMealPlanFlag = new StringBuilder(32);
                            else
                                sb_szMealPlanFlag = new StringBuilder(szMealPlanFlag);
                            ZeidonStringCopy(sb_szMealPlanFlag, 1, 0, "", 1, 0, 2);
                            szMealPlanFlag = sb_szMealPlanFlag.toString();
                        }
                        //:SET CURSOR FIRST mSAProf.TermOfMealPlan WHERE mSAProf.TermOfMealPlan.ID = mSAProf2.PeriodSourceTermOfMealPlan.ID
                        {
                            MutableInt mi_lTempInteger_26 = new MutableInt(lTempInteger_26);
                            GetIntegerFromAttribute(mi_lTempInteger_26, mSAProf2, "PeriodSourceTermOfMealPlan",
                                    "ID");
                            lTempInteger_26 = mi_lTempInteger_26.intValue();
                        }
                        RESULT = SetCursorFirstEntityByInteger(mSAProf, "TermOfMealPlan", "ID", lTempInteger_26,
                                "");
                        //:IF RESULT >= zCURSOR_SET
                        if (RESULT >= zCURSOR_SET) {
                            //:IF mSAProf.TermOfMealPlan.WithdrawalDate = "" OR 
                            //:   mSAProf.TermOfMealPlan.WithdrawalDate > mSAProf.PeriodCollegeTerm.AddDropDeadlineDate
                            if (CompareAttributeToString(mSAProf, "TermOfMealPlan", "WithdrawalDate", "") == 0
                                    || CompareAttributeToAttribute(mSAProf, "TermOfMealPlan", "WithdrawalDate",
                                            mSAProf, "PeriodCollegeTerm", "AddDropDeadlineDate") > 0) {

                                //:// The Student is either still on the meal plan or has dropped it after the date.
                                //:szMealPlanFlag = "Y"
                                {
                                    StringBuilder sb_szMealPlanFlag;
                                    if (szMealPlanFlag == null)
                                        sb_szMealPlanFlag = new StringBuilder(32);
                                    else
                                        sb_szMealPlanFlag = new StringBuilder(szMealPlanFlag);
                                    ZeidonStringCopy(sb_szMealPlanFlag, 1, 0, "Y", 1, 0, 2);
                                    szMealPlanFlag = sb_szMealPlanFlag.toString();
                                }
                            }

                            //:END
                        }

                        //:END
                        //:IF szMealPlanFlag = ""
                        if (ZeidonStringCompare(szMealPlanFlag, 1, 0, "", 1, 0, 2) == 0) {
                            //:// The Meal Plan no longer exists or has terminated, so reverse it.
                            //:dAmount = mSAProf2.PeriodTransApplied.Amount
                            {
                                MutableDouble md_dAmount = new MutableDouble(dAmount);
                                GetDecimalFromAttribute(md_dAmount, mSAProf2, "PeriodTransApplied", "Amount");
                                dAmount = md_dAmount.doubleValue();
                            }
                            //:dAmount = dAmount * -1
                            dAmount = dAmount * -1;
                            //:GenerateCharge( mSAProf, mSAProf2.PeriodCollegeTerm.ID, nTransCodeID, dAmount, "N", "" )
                            {
                                MutableInt mi_lTempInteger_27 = new MutableInt(lTempInteger_27);
                                GetIntegerFromAttribute(mi_lTempInteger_27, mSAProf2, "PeriodCollegeTerm",
                                        "ID");
                                lTempInteger_27 = mi_lTempInteger_27.intValue();
                            }
                            omSAProf_GenerateCharge(mSAProf, lTempInteger_27, nTransCodeID, dAmount, "N", "");
                            //:mSAProf.StudentAccountTransApplied.Description = mSAProf2.PeriodTransApplied.Description + " (Refund)"
                            {
                                StringBuilder sb_szTempString_7;
                                if (szTempString_7 == null)
                                    sb_szTempString_7 = new StringBuilder(32);
                                else
                                    sb_szTempString_7 = new StringBuilder(szTempString_7);
                                GetStringFromAttribute(sb_szTempString_7, mSAProf2, "PeriodTransApplied",
                                        "Description");
                                szTempString_7 = sb_szTempString_7.toString();
                            }
                            {
                                StringBuilder sb_szTempString_7;
                                if (szTempString_7 == null)
                                    sb_szTempString_7 = new StringBuilder(32);
                                else
                                    sb_szTempString_7 = new StringBuilder(szTempString_7);
                                ZeidonStringConcat(sb_szTempString_7, 1, 0, " (Refund)", 1, 0, 255);
                                szTempString_7 = sb_szTempString_7.toString();
                            }
                            SetAttributeFromString(mSAProf, "StudentAccountTransApplied", "Description",
                                    szTempString_7);
                            //:AcceptSubobject( mSAProf, "StudentAccountTransApplied" )
                            AcceptSubobject(mSAProf, "StudentAccountTransApplied");
                            //:INCLUDE mSAProf.AdjustedSATransApplied FROM mSAProf2.PeriodTransApplied
                            RESULT = IncludeSubobjectFromSubobject(mSAProf, "AdjustedSATransApplied", mSAProf2,
                                    "PeriodTransApplied", zPOS_AFTER);
                        }

                        //:END
                        //:nDone = 1
                        nDone = 1;
                    }

                    //:END
                }

                //:END

                //://
                //:// ROOM AND BOARD
                //://
                //:IF nDone = 0 
                if (nDone == 0) {
                    //:IF mSAProf2.PeriodSourceTermOfResidence EXISTS
                    lTempInteger_28 = CheckExistenceOfEntity(mSAProf2, "PeriodSourceTermOfResidence");
                    if (lTempInteger_28 == 0) {
                        //:// The Transaction is for a Term of Residence.
                        //:// We will do a full reversal of the entry if the Term of Residency entry no longer exists or if it has been terminated before
                        //:// the Add/DropDead date.
                        //:// We will give the User an error message, warning her to process the entry manualy if the entry has been terminated or
                        //:// if the End Date for the Residency Entry is different than the End Date for the Term.
                        //:szResidencyFlag = ""
                        {
                            StringBuilder sb_szResidencyFlag;
                            if (szResidencyFlag == null)
                                sb_szResidencyFlag = new StringBuilder(32);
                            else
                                sb_szResidencyFlag = new StringBuilder(szResidencyFlag);
                            ZeidonStringCopy(sb_szResidencyFlag, 1, 0, "", 1, 0, 2);
                            szResidencyFlag = sb_szResidencyFlag.toString();
                        }
                        //:SET CURSOR FIRST mSAProf2.TermOfResidence WHERE mSAProf2.TermOfResidence.ID = mSAProf2.PeriodSourceTermOfResidence.ID 
                        {
                            MutableInt mi_lTempInteger_29 = new MutableInt(lTempInteger_29);
                            GetIntegerFromAttribute(mi_lTempInteger_29, mSAProf2, "PeriodSourceTermOfResidence",
                                    "ID");
                            lTempInteger_29 = mi_lTempInteger_29.intValue();
                        }
                        RESULT = SetCursorFirstEntityByInteger(mSAProf2, "TermOfResidence", "ID",
                                lTempInteger_29, "");
                        //:IF RESULT >= zCURSOR_SET
                        if (RESULT >= zCURSOR_SET) {
                            //:IF mSAProf2.TermOfResidence.WithdrawalDate = "" OR
                            //:   mSAProf2.TermOfResidence.WithdrawalDate > mSAProf.PeriodCollegeTerm.AddDropDeadlineDate
                            if (CompareAttributeToString(mSAProf2, "TermOfResidence", "WithdrawalDate", "") == 0
                                    || CompareAttributeToAttribute(mSAProf2, "TermOfResidence",
                                            "WithdrawalDate", mSAProf, "PeriodCollegeTerm",
                                            "AddDropDeadlineDate") > 0) {

                                //:szResidencyFlag = "Y"
                                {
                                    StringBuilder sb_szResidencyFlag;
                                    if (szResidencyFlag == null)
                                        sb_szResidencyFlag = new StringBuilder(32);
                                    else
                                        sb_szResidencyFlag = new StringBuilder(szResidencyFlag);
                                    ZeidonStringCopy(sb_szResidencyFlag, 1, 0, "Y", 1, 0, 2);
                                    szResidencyFlag = sb_szResidencyFlag.toString();
                                }
                            }

                            //:END
                        }

                        //:END
                        //:IF szResidencyFlag = ""
                        if (ZeidonStringCompare(szResidencyFlag, 1, 0, "", 1, 0, 2) == 0) {
                            //:   // There is no residency entry for the current Term so reverse the entry.
                            //:   dAmount = mSAProf2.PeriodTransApplied.Amount
                            {
                                MutableDouble md_dAmount = new MutableDouble(dAmount);
                                GetDecimalFromAttribute(md_dAmount, mSAProf2, "PeriodTransApplied", "Amount");
                                dAmount = md_dAmount.doubleValue();
                            }
                            //:   dAmount = dAmount * -1
                            dAmount = dAmount * -1;
                            //:   GenerateCharge( mSAProf, mSAProf.PeriodCollegeTerm.ID, 
                            //:                   mSAProf2.PeriodSATransactionCode.ID, 
                            //:                   dAmount, "N", "" )
                            {
                                MutableInt mi_lTempInteger_30 = new MutableInt(lTempInteger_30);
                                GetIntegerFromAttribute(mi_lTempInteger_30, mSAProf, "PeriodCollegeTerm", "ID");
                                lTempInteger_30 = mi_lTempInteger_30.intValue();
                            }
                            {
                                MutableInt mi_lTempInteger_31 = new MutableInt(lTempInteger_31);
                                GetIntegerFromAttribute(mi_lTempInteger_31, mSAProf2, "PeriodSATransactionCode",
                                        "ID");
                                lTempInteger_31 = mi_lTempInteger_31.intValue();
                            }
                            omSAProf_GenerateCharge(mSAProf, lTempInteger_30, lTempInteger_31, dAmount, "N",
                                    "");
                            //:   mSAProf.StudentAccountTransApplied.Description = mSAProf2.PeriodTransApplied.Description + " (Refund)"
                            {
                                StringBuilder sb_szTempString_8;
                                if (szTempString_8 == null)
                                    sb_szTempString_8 = new StringBuilder(32);
                                else
                                    sb_szTempString_8 = new StringBuilder(szTempString_8);
                                GetStringFromAttribute(sb_szTempString_8, mSAProf2, "PeriodTransApplied",
                                        "Description");
                                szTempString_8 = sb_szTempString_8.toString();
                            }
                            {
                                StringBuilder sb_szTempString_8;
                                if (szTempString_8 == null)
                                    sb_szTempString_8 = new StringBuilder(32);
                                else
                                    sb_szTempString_8 = new StringBuilder(szTempString_8);
                                ZeidonStringConcat(sb_szTempString_8, 1, 0, " (Refund)", 1, 0, 255);
                                szTempString_8 = sb_szTempString_8.toString();
                            }
                            SetAttributeFromString(mSAProf, "StudentAccountTransApplied", "Description",
                                    szTempString_8);
                            //:   AcceptSubobject( mSAProf, "StudentAccountTransApplied" )
                            AcceptSubobject(mSAProf, "StudentAccountTransApplied");
                            //:   INCLUDE mSAProf.AdjustedSATransApplied FROM mSAProf2.PeriodTransApplied
                            RESULT = IncludeSubobjectFromSubobject(mSAProf, "AdjustedSATransApplied", mSAProf2,
                                    "PeriodTransApplied", zPOS_AFTER);
                            //:ELSE
                        } else {
                            //:IF mSAProf2.TermOfResidence.EndDate < mSAProf2.PeriodCollegeTerm.ResidencyEndDate OR 
                            //:   mSAProf2.TermOfResidence.WithdrawalDate != ""
                            if (CompareAttributeToAttribute(mSAProf2, "TermOfResidence", "EndDate", mSAProf2,
                                    "PeriodCollegeTerm", "ResidencyEndDate") < 0
                                    || CompareAttributeToString(mSAProf2, "TermOfResidence", "WithdrawalDate",
                                            "") != 0) {

                                //:// We will give the User a message indicating a potential refund.
                                //:szMsg = "Potential Refund Error for " + mSAProf.Person.dFullNameLFM + ":" + NEW_LINE +
                                //:        "Term of residency charge, '" + mSAChrgITF.SATransactionCode.Description + "', may need to be adjusted manually, " +
                                //:        "as the term of the residency has been modified."
                                {
                                    MutableInt mi_lTempInteger_32 = new MutableInt(lTempInteger_32);
                                    StringBuilder sb_szTempString_9;
                                    if (szTempString_9 == null)
                                        sb_szTempString_9 = new StringBuilder(32);
                                    else
                                        sb_szTempString_9 = new StringBuilder(szTempString_9);
                                    GetVariableFromAttribute(sb_szTempString_9, mi_lTempInteger_32, 'S', 255,
                                            mSAProf, "Person", "dFullNameLFM", "", 0);
                                    lTempInteger_32 = mi_lTempInteger_32.intValue();
                                    szTempString_9 = sb_szTempString_9.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringCopy(sb_szMsg, 1, 0, "Potential Refund Error for ", 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, szTempString_9, 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, ":", 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, NEW_LINE, 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, "Term of residency charge, '", 1, 0,
                                            301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    MutableInt mi_lTempInteger_33 = new MutableInt(lTempInteger_33);
                                    StringBuilder sb_szTempString_10;
                                    if (szTempString_10 == null)
                                        sb_szTempString_10 = new StringBuilder(32);
                                    else
                                        sb_szTempString_10 = new StringBuilder(szTempString_10);
                                    GetVariableFromAttribute(sb_szTempString_10, mi_lTempInteger_33, 'S', 255,
                                            mSAChrgITF, "SATransactionCode", "Description", "", 0);
                                    lTempInteger_33 = mi_lTempInteger_33.intValue();
                                    szTempString_10 = sb_szTempString_10.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, szTempString_10, 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, "', may need to be adjusted manually, ",
                                            1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0,
                                            "as the term of the residency has been modified.", 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                //:MessageSend( mSAProf, "", "Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_WARNING, 0 )
                                MessageSend(mSAProf, "", "Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_WARNING,
                                        0);
                            }

                            //:END
                        }

                        //:END
                    }

                    //:END
                }

                //:END

                //://
                //:// Class Course/Lab Fees
                //://
                //:IF nDone = 0 
                if (nDone == 0) {
                    //:IF mSAProf2.PeriodTransClass EXISTS
                    lTempInteger_34 = CheckExistenceOfEntity(mSAProf2, "PeriodTransClass");
                    if (lTempInteger_34 == 0) {

                        //:// We need to position on Transaction Code for later processing below.
                        //:SET CURSOR FIRST mSAChrgITC.SATransactionCode WHERE mSAChrgITC.SATransactionCode.ID = mSAProf2.PeriodSATransactionCode.ID
                        {
                            MutableInt mi_lTempInteger_35 = new MutableInt(lTempInteger_35);
                            GetIntegerFromAttribute(mi_lTempInteger_35, mSAProf2, "PeriodSATransactionCode",
                                    "ID");
                            lTempInteger_35 = mi_lTempInteger_35.intValue();
                        }
                        RESULT = SetCursorFirstEntityByInteger(mSAChrgITC, "SATransactionCode", "ID",
                                lTempInteger_35, "");

                        //:// See if the SA_Transaction we are on has already been charged. To do this, we look to see if the Class generating 
                        //:// this Transaction exists and has not been dropped.
                        //:szLabFeeRefund = ""
                        {
                            StringBuilder sb_szLabFeeRefund;
                            if (szLabFeeRefund == null)
                                sb_szLabFeeRefund = new StringBuilder(32);
                            else
                                sb_szLabFeeRefund = new StringBuilder(szLabFeeRefund);
                            ZeidonStringCopy(sb_szLabFeeRefund, 1, 0, "", 1, 0, 2);
                            szLabFeeRefund = sb_szLabFeeRefund.toString();
                        }
                        //:SET CURSOR FIRST mSAProf2.TermClass WITHIN mSAProf2.PeriodCollegeTerm 
                        //:           WHERE mSAProf2.TermClass.ID = mSAProf2.PeriodTransClass.ID 
                        {
                            MutableInt mi_lTempInteger_36 = new MutableInt(lTempInteger_36);
                            GetIntegerFromAttribute(mi_lTempInteger_36, mSAProf2, "PeriodTransClass", "ID");
                            lTempInteger_36 = mi_lTempInteger_36.intValue();
                        }
                        RESULT = SetCursorFirstEntityByInteger(mSAProf2, "TermClass", "ID", lTempInteger_36,
                                "PeriodCollegeTerm");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:// Not there, so the Class must have been deleted before the start of the Term, so refund amount.
                            //:szLabFeeRefund = "Y"
                            {
                                StringBuilder sb_szLabFeeRefund;
                                if (szLabFeeRefund == null)
                                    sb_szLabFeeRefund = new StringBuilder(32);
                                else
                                    sb_szLabFeeRefund = new StringBuilder(szLabFeeRefund);
                                ZeidonStringCopy(sb_szLabFeeRefund, 1, 0, "Y", 1, 0, 2);
                                szLabFeeRefund = sb_szLabFeeRefund.toString();
                            }
                            //:ELSE
                        } else {
                            //:IF mSAProf2.TermEnrolled.DroppedDate != ""    // The Class was dropped.
                            if (CompareAttributeToString(mSAProf2, "TermEnrolled", "DroppedDate", "") != 0) {
                                //:// If the DropDate is before the Add/Drop Deadline, give a refund.
                                //:IF mSAProf2.TermEnrolled.DroppedDate <= mSAProf2.PeriodCollegeTerm.AddDropDeadlineDate
                                if (CompareAttributeToAttribute(mSAProf2, "TermEnrolled", "DroppedDate",
                                        mSAProf2, "PeriodCollegeTerm", "AddDropDeadlineDate") <= 0) {
                                    //:szLabFeeRefund = "Y"
                                    {
                                        StringBuilder sb_szLabFeeRefund;
                                        if (szLabFeeRefund == null)
                                            sb_szLabFeeRefund = new StringBuilder(32);
                                        else
                                            sb_szLabFeeRefund = new StringBuilder(szLabFeeRefund);
                                        ZeidonStringCopy(sb_szLabFeeRefund, 1, 0, "Y", 1, 0, 2);
                                        szLabFeeRefund = sb_szLabFeeRefund.toString();
                                    }
                                    //:ELSE
                                } else {
                                    //:// The Class was dropped after the deadline, so give the User an error message.
                                    //:szLabFeeRefund = "E"
                                    {
                                        StringBuilder sb_szLabFeeRefund;
                                        if (szLabFeeRefund == null)
                                            sb_szLabFeeRefund = new StringBuilder(32);
                                        else
                                            sb_szLabFeeRefund = new StringBuilder(szLabFeeRefund);
                                        ZeidonStringCopy(sb_szLabFeeRefund, 1, 0, "E", 1, 0, 2);
                                        szLabFeeRefund = sb_szLabFeeRefund.toString();
                                    }
                                }

                                //:END
                            }

                            //:END
                        }

                        //:END
                        //:IF szLabFeeRefund = "Y" OR szLabFeeRefund = "E"
                        if (ZeidonStringCompare(szLabFeeRefund, 1, 0, "Y", 1, 0, 2) == 0
                                || ZeidonStringCompare(szLabFeeRefund, 1, 0, "E", 1, 0, 2) == 0) {
                            //:// The request is to refund the lab fee. If we haven't passed the  add/drop deadline, we'll create refund entry. Otherwise,
                            //:// we'll give the User a message warning her to process the entry manually.
                            //:IF szLabFeeRefund = "Y"
                            if (ZeidonStringCompare(szLabFeeRefund, 1, 0, "Y", 1, 0, 2) == 0) {
                                //:dAmount = mSAProf2.PeriodTransApplied.Amount 
                                {
                                    MutableDouble md_dAmount = new MutableDouble(dAmount);
                                    GetDecimalFromAttribute(md_dAmount, mSAProf2, "PeriodTransApplied",
                                            "Amount");
                                    dAmount = md_dAmount.doubleValue();
                                }
                                //:dAmount = dAmount * -1
                                dAmount = dAmount * -1;
                                //:GenerateCharge( mSAProf, mSAProf.PeriodCollegeTerm.ID, 
                                //:                nTransCodeID, dAmount, "N", "" )
                                {
                                    MutableInt mi_lTempInteger_37 = new MutableInt(lTempInteger_37);
                                    GetIntegerFromAttribute(mi_lTempInteger_37, mSAProf, "PeriodCollegeTerm",
                                            "ID");
                                    lTempInteger_37 = mi_lTempInteger_37.intValue();
                                }
                                omSAProf_GenerateCharge(mSAProf, lTempInteger_37, nTransCodeID, dAmount, "N",
                                        "");
                                //:// Override Description generated in GenerateCharge to use original description plus the word, "(Refund)"
                                //:mSAProf.StudentAccountTransApplied.Description = mSAProf2.PeriodTransApplied.Description + " (Refund)"
                                {
                                    StringBuilder sb_szTempString_11;
                                    if (szTempString_11 == null)
                                        sb_szTempString_11 = new StringBuilder(32);
                                    else
                                        sb_szTempString_11 = new StringBuilder(szTempString_11);
                                    GetStringFromAttribute(sb_szTempString_11, mSAProf2, "PeriodTransApplied",
                                            "Description");
                                    szTempString_11 = sb_szTempString_11.toString();
                                }
                                {
                                    StringBuilder sb_szTempString_11;
                                    if (szTempString_11 == null)
                                        sb_szTempString_11 = new StringBuilder(32);
                                    else
                                        sb_szTempString_11 = new StringBuilder(szTempString_11);
                                    ZeidonStringConcat(sb_szTempString_11, 1, 0, " (Refund)", 1, 0, 255);
                                    szTempString_11 = sb_szTempString_11.toString();
                                }
                                SetAttributeFromString(mSAProf, "StudentAccountTransApplied", "Description",
                                        szTempString_11);
                                //:AcceptSubobject( mSAProf, "StudentAccountTransApplied" )
                                AcceptSubobject(mSAProf, "StudentAccountTransApplied");
                                //:INCLUDE mSAProf.AdjustedSATransApplied FROM mSAProf2.PeriodTransApplied
                                RESULT = IncludeSubobjectFromSubobject(mSAProf, "AdjustedSATransApplied",
                                        mSAProf2, "PeriodTransApplied", zPOS_AFTER);
                                //:ELSE
                            } else {
                                //:szMsg = "Potential Refund Error for " + mSAProf.Person.dFullNameLFM + ":" + NEW_LINE +
                                //:        "Course/Lab Fee, '" + mSAChrgITC.SATransactionCode.Description + "', may need to be adjusted manually, " +
                                //:        "as the associated class was dropped after the Add/Drop Deadline Date."
                                {
                                    MutableInt mi_lTempInteger_38 = new MutableInt(lTempInteger_38);
                                    StringBuilder sb_szTempString_12;
                                    if (szTempString_12 == null)
                                        sb_szTempString_12 = new StringBuilder(32);
                                    else
                                        sb_szTempString_12 = new StringBuilder(szTempString_12);
                                    GetVariableFromAttribute(sb_szTempString_12, mi_lTempInteger_38, 'S', 255,
                                            mSAProf, "Person", "dFullNameLFM", "", 0);
                                    lTempInteger_38 = mi_lTempInteger_38.intValue();
                                    szTempString_12 = sb_szTempString_12.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringCopy(sb_szMsg, 1, 0, "Potential Refund Error for ", 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, szTempString_12, 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, ":", 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, NEW_LINE, 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, "Course/Lab Fee, '", 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    MutableInt mi_lTempInteger_39 = new MutableInt(lTempInteger_39);
                                    StringBuilder sb_szTempString_13;
                                    if (szTempString_13 == null)
                                        sb_szTempString_13 = new StringBuilder(32);
                                    else
                                        sb_szTempString_13 = new StringBuilder(szTempString_13);
                                    GetVariableFromAttribute(sb_szTempString_13, mi_lTempInteger_39, 'S', 255,
                                            mSAChrgITC, "SATransactionCode", "Description", "", 0);
                                    lTempInteger_39 = mi_lTempInteger_39.intValue();
                                    szTempString_13 = sb_szTempString_13.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, szTempString_13, 1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0, "', may need to be adjusted manually, ",
                                            1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                {
                                    StringBuilder sb_szMsg;
                                    if (szMsg == null)
                                        sb_szMsg = new StringBuilder(32);
                                    else
                                        sb_szMsg = new StringBuilder(szMsg);
                                    ZeidonStringConcat(sb_szMsg, 1, 0,
                                            "as the associated class was dropped after the Add/Drop Deadline Date.",
                                            1, 0, 301);
                                    szMsg = sb_szMsg.toString();
                                }
                                //:MessageSend( mSAProf, "", "Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_WARNING, 0 )
                                MessageSend(mSAProf, "", "Process Rule", szMsg, zMSGQ_OBJECT_CONSTRAINT_WARNING,
                                        0);
                            }

                            //:END
                        }

                        //:END

                        //:nDone = 1
                        nDone = 1;
                    }

                    //:END
                }

                //:   
                //:END

                //://
                //:// Course Once/Term Charges
                //://
                //:IF nDone = 0 
                if (nDone == 0) {
                    //:IF mSAProf2.PeriodSATransactionCode.FrequencyType = "Term"
                    if (CompareAttributeToString(mSAProf2, "PeriodSATransactionCode", "FrequencyType",
                            "Term") == 0) {
                        //:// We must loop through each TermEnrolled entry to see if a Class exists that triggers this Transaction.
                        //:// We won't bother considering whether they dropped the Class after Add/Drop date in this logic, as it seems like overkill.
                        //:szLabFeeRefund = "Y"   // Initialize the flag as if a refund should be given.
                        {
                            StringBuilder sb_szLabFeeRefund;
                            if (szLabFeeRefund == null)
                                sb_szLabFeeRefund = new StringBuilder(32);
                            else
                                sb_szLabFeeRefund = new StringBuilder(szLabFeeRefund);
                            ZeidonStringCopy(sb_szLabFeeRefund, 1, 0, "Y", 1, 0, 2);
                            szLabFeeRefund = sb_szLabFeeRefund.toString();
                        }
                        //:SET CURSOR FIRST mSAChrgITC.SATransactionCode WHERE mSAChrgITC.SATransactionCode.ID = mSAProf2.PeriodSATransactionCode.ID
                        {
                            MutableInt mi_lTempInteger_40 = new MutableInt(lTempInteger_40);
                            GetIntegerFromAttribute(mi_lTempInteger_40, mSAProf2, "PeriodSATransactionCode",
                                    "ID");
                            lTempInteger_40 = mi_lTempInteger_40.intValue();
                        }
                        RESULT = SetCursorFirstEntityByInteger(mSAChrgITC, "SATransactionCode", "ID",
                                lTempInteger_40, "");
                        //:FOR EACH mSAProf2.TermEnrolled 
                        RESULT = SetCursorFirstEntity(mSAProf2, "TermEnrolled", "");
                        while (RESULT > zCURSOR_UNCHANGED) {
                            //:SET CURSOR FIRST mSAChrgITC.Course WHERE mSAChrgITC.Course.ID = mSAProf2.TermCourse.ID 
                            {
                                MutableInt mi_lTempInteger_41 = new MutableInt(lTempInteger_41);
                                GetIntegerFromAttribute(mi_lTempInteger_41, mSAProf2, "TermCourse", "ID");
                                lTempInteger_41 = mi_lTempInteger_41.intValue();
                            }
                            RESULT = SetCursorFirstEntityByInteger(mSAChrgITC, "Course", "ID", lTempInteger_41,
                                    "");
                            //:IF RESULT >= zCURSOR_SET
                            if (RESULT >= zCURSOR_SET) {
                                //:szLabFeeRefund = "N"   // We found a Course that triggers fee, so indicate no refund.
                                {
                                    StringBuilder sb_szLabFeeRefund;
                                    if (szLabFeeRefund == null)
                                        sb_szLabFeeRefund = new StringBuilder(32);
                                    else
                                        sb_szLabFeeRefund = new StringBuilder(szLabFeeRefund);
                                    ZeidonStringCopy(sb_szLabFeeRefund, 1, 0, "N", 1, 0, 2);
                                    szLabFeeRefund = sb_szLabFeeRefund.toString();
                                }
                            }

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

                        //:END
                        //:IF szLabFeeRefund = "Y"
                        if (ZeidonStringCompare(szLabFeeRefund, 1, 0, "Y", 1, 0, 2) == 0) {
                            //:dAmount = mSAProf2.PeriodTransApplied.Amount 
                            {
                                MutableDouble md_dAmount = new MutableDouble(dAmount);
                                GetDecimalFromAttribute(md_dAmount, mSAProf2, "PeriodTransApplied", "Amount");
                                dAmount = md_dAmount.doubleValue();
                            }
                            //:dAmount = dAmount * -1
                            dAmount = dAmount * -1;
                            //:GenerateCharge( mSAProf, mSAProf.PeriodCollegeTerm.ID, 
                            //:                nTransCodeID, dAmount, "N", "" )
                            {
                                MutableInt mi_lTempInteger_42 = new MutableInt(lTempInteger_42);
                                GetIntegerFromAttribute(mi_lTempInteger_42, mSAProf, "PeriodCollegeTerm", "ID");
                                lTempInteger_42 = mi_lTempInteger_42.intValue();
                            }
                            omSAProf_GenerateCharge(mSAProf, lTempInteger_42, nTransCodeID, dAmount, "N", "");
                            //:// Override Description generated in GenerateCharge to use original description plus the word, "(Refund)"
                            //:mSAProf.StudentAccountTransApplied.Description = mSAProf2.PeriodTransApplied.Description + " (Refund)"
                            {
                                StringBuilder sb_szTempString_14;
                                if (szTempString_14 == null)
                                    sb_szTempString_14 = new StringBuilder(32);
                                else
                                    sb_szTempString_14 = new StringBuilder(szTempString_14);
                                GetStringFromAttribute(sb_szTempString_14, mSAProf2, "PeriodTransApplied",
                                        "Description");
                                szTempString_14 = sb_szTempString_14.toString();
                            }
                            {
                                StringBuilder sb_szTempString_14;
                                if (szTempString_14 == null)
                                    sb_szTempString_14 = new StringBuilder(32);
                                else
                                    sb_szTempString_14 = new StringBuilder(szTempString_14);
                                ZeidonStringConcat(sb_szTempString_14, 1, 0, " (Refund)", 1, 0, 255);
                                szTempString_14 = sb_szTempString_14.toString();
                            }
                            SetAttributeFromString(mSAProf, "StudentAccountTransApplied", "Description",
                                    szTempString_14);
                            //:AcceptSubobject( mSAProf, "StudentAccountTransApplied" )
                            AcceptSubobject(mSAProf, "StudentAccountTransApplied");
                            //:INCLUDE mSAProf.AdjustedSATransApplied FROM mSAProf2.PeriodTransApplied
                            RESULT = IncludeSubobjectFromSubobject(mSAProf, "AdjustedSATransApplied", mSAProf2,
                                    "PeriodTransApplied", zPOS_AFTER);
                        }

                        //:END
                        //:nDone = 1
                        nDone = 1;
                    }

                    //:END
                }

                //:END
            }

            //:END
        }

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

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

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

public int CalculateTotalCOA(View qFAProf, MutableDouble ReturnedTotal) {
    zVIEW qFAProf2 = new zVIEW();
    //:DECIMAL dAmount 
    double dAmount = 0.0;
    //:STRING ( 20 ) szDecimal
    String szDecimal = null;/*from w  w  w. jav a2s . co m*/
    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;
    double dTempDecimal_6 = 0.0;
    double dTempDecimal_7 = 0.0;
    double dTempDecimal_8 = 0.0;

    //:// Compute Total COA for passed in view, which is here name qFAProf, but can be any view with the
    //:// required COA subobject structure.

    //:// Regular COA depends on the COA Option values as follows.
    //:// Whole Year Option: Total is simply total of all Whole Year costs.
    //:// The other values are additive, meaning we simply add the costs for the option as follows:
    //:// 1st Term: If FirstTermRevenueAmount is specified, use it. Otherwise, use 50% of Whole Year costs.
    //:// 2nd Term: If SecondTermRevenueAmount is specified, use it. Otherwise, use 50% of Whole Year costs.
    //:// 3rd Term: Always use ThirdTermRevenueAmount, even if it is 0.
    //:CreateViewFromView( qFAProf2, qFAProf )
    CreateViewFromView(qFAProf2, qFAProf);
    //:dAmount = 0 
    dAmount = 0;

    //:IF qFAProf.FinAidProfile.COA_OptionWholeYearFlag = "Y"
    if (CompareAttributeToString(qFAProf, "FinAidProfile", "COA_OptionWholeYearFlag", "Y") == 0) {
        //:// This is Whole Year only.
        //:FOR EACH qFAProf2.FinAidCOAItemAssigned
        RESULT = SetCursorFirstEntity(qFAProf2, "FinAidCOAItemAssigned", "");
        while (RESULT > zCURSOR_UNCHANGED) {
            //:IF qFAProf2.FinAidCOAItemAssigned.RevenueAmount != ""
            if (CompareAttributeToString(qFAProf2, "FinAidCOAItemAssigned", "RevenueAmount", "") != 0) {
                //:dAmount = dAmount + qFAProf2.FinAidCOAItemAssigned.RevenueAmount  
                {
                    MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                    GetDecimalFromAttribute(md_dTempDecimal_0, qFAProf2, "FinAidCOAItemAssigned",
                            "RevenueAmount");
                    dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                }
                dAmount = dAmount + dTempDecimal_0;
                //:ELSE
            } else {
                //:dAmount = dAmount + qFAProf2.FinAidCOAItemAssigned.FirstTermRevenueAmount +
                //:                    qFAProf2.FinAidCOAItemAssigned.SecondTermRevenueAmount 
                {
                    MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                    GetDecimalFromAttribute(md_dTempDecimal_1, qFAProf2, "FinAidCOAItemAssigned",
                            "FirstTermRevenueAmount");
                    dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                }
                {
                    MutableDouble md_dTempDecimal_2 = new MutableDouble(dTempDecimal_2);
                    GetDecimalFromAttribute(md_dTempDecimal_2, qFAProf2, "FinAidCOAItemAssigned",
                            "SecondTermRevenueAmount");
                    dTempDecimal_2 = md_dTempDecimal_2.doubleValue();
                }
                dAmount = dAmount + dTempDecimal_1 + dTempDecimal_2;
            }

            //:END
            //:IF qFAProf2.FinAidProfile.COA_OptionThirdTermFlag = "Y"
            if (CompareAttributeToString(qFAProf2, "FinAidProfile", "COA_OptionThirdTermFlag", "Y") == 0) {
                //:dAmount = dAmount + qFAProf2.FinAidCOAItemAssigned.ThirdTermRevenueAmount
                {
                    MutableDouble md_dTempDecimal_3 = new MutableDouble(dTempDecimal_3);
                    GetDecimalFromAttribute(md_dTempDecimal_3, qFAProf2, "FinAidCOAItemAssigned",
                            "ThirdTermRevenueAmount");
                    dTempDecimal_3 = md_dTempDecimal_3.doubleValue();
                }
                dAmount = dAmount + dTempDecimal_3;
            }

            RESULT = SetCursorNextEntity(qFAProf2, "FinAidCOAItemAssigned", "");
            //:END
        }

        //:END
        //:ELSE
    } else {
        //:// Add other values together.
        //:FOR EACH qFAProf2.FinAidCOAItemAssigned
        RESULT = SetCursorFirstEntity(qFAProf2, "FinAidCOAItemAssigned", "");
        while (RESULT > zCURSOR_UNCHANGED) {

            //:// 1st Term
            //:IF qFAProf.FinAidProfile.COA_OptionFirstTermFlag = "Y"
            if (CompareAttributeToString(qFAProf, "FinAidProfile", "COA_OptionFirstTermFlag", "Y") == 0) {
                //:IF qFAProf2.FinAidCOAItemAssigned.FirstTermRevenueAmount != ""
                if (CompareAttributeToString(qFAProf2, "FinAidCOAItemAssigned", "FirstTermRevenueAmount",
                        "") != 0) {
                    //:// Add FirstTermRevenueAmount 
                    //:dAmount = dAmount + qFAProf2.FinAidCOAItemAssigned.FirstTermRevenueAmount 
                    {
                        MutableDouble md_dTempDecimal_4 = new MutableDouble(dTempDecimal_4);
                        GetDecimalFromAttribute(md_dTempDecimal_4, qFAProf2, "FinAidCOAItemAssigned",
                                "FirstTermRevenueAmount");
                        dTempDecimal_4 = md_dTempDecimal_4.doubleValue();
                    }
                    dAmount = dAmount + dTempDecimal_4;
                    //:ELSE
                } else {
                    //:// Add 50% of RevenueAmount
                    //:dAmount = dAmount + (qFAProf2.FinAidCOAItemAssigned.RevenueAmount / 2)
                    {
                        MutableDouble md_dTempDecimal_5 = new MutableDouble(dTempDecimal_5);
                        GetDecimalFromAttribute(md_dTempDecimal_5, qFAProf2, "FinAidCOAItemAssigned",
                                "RevenueAmount");
                        dTempDecimal_5 = md_dTempDecimal_5.doubleValue();
                    }
                    dAmount = dAmount + (dTempDecimal_5 / 2);
                }

                //:END
            }

            //:END

            //:// 2nd Term
            //:IF qFAProf.FinAidProfile.COA_OptionSecondTermFlag = "Y"
            if (CompareAttributeToString(qFAProf, "FinAidProfile", "COA_OptionSecondTermFlag", "Y") == 0) {
                //:IF qFAProf2.FinAidCOAItemAssigned.SecondTermRevenueAmount != ""
                if (CompareAttributeToString(qFAProf2, "FinAidCOAItemAssigned", "SecondTermRevenueAmount",
                        "") != 0) {
                    //:// Add SecondTermRevenueAmount 
                    //:dAmount = dAmount + qFAProf2.FinAidCOAItemAssigned.SecondTermRevenueAmount 
                    {
                        MutableDouble md_dTempDecimal_6 = new MutableDouble(dTempDecimal_6);
                        GetDecimalFromAttribute(md_dTempDecimal_6, qFAProf2, "FinAidCOAItemAssigned",
                                "SecondTermRevenueAmount");
                        dTempDecimal_6 = md_dTempDecimal_6.doubleValue();
                    }
                    dAmount = dAmount + dTempDecimal_6;
                    //:ELSE
                } else {
                    //:// Add 50% of RevenueAmount
                    //:dAmount = dAmount + (qFAProf2.FinAidCOAItemAssigned.RevenueAmount / 2)
                    {
                        MutableDouble md_dTempDecimal_7 = new MutableDouble(dTempDecimal_7);
                        GetDecimalFromAttribute(md_dTempDecimal_7, qFAProf2, "FinAidCOAItemAssigned",
                                "RevenueAmount");
                        dTempDecimal_7 = md_dTempDecimal_7.doubleValue();
                    }
                    dAmount = dAmount + (dTempDecimal_7 / 2);
                }

                //:END
            }

            //:END

            //:// 3rd Term
            //:IF qFAProf.FinAidProfile.COA_OptionThirdTermFlag = "Y"
            if (CompareAttributeToString(qFAProf, "FinAidProfile", "COA_OptionThirdTermFlag", "Y") == 0) {
                //:// Always add ThirdTermRevenueAmount 
                //:dAmount = dAmount + qFAProf2.FinAidCOAItemAssigned.ThirdTermRevenueAmount 
                {
                    MutableDouble md_dTempDecimal_8 = new MutableDouble(dTempDecimal_8);
                    GetDecimalFromAttribute(md_dTempDecimal_8, qFAProf2, "FinAidCOAItemAssigned",
                            "ThirdTermRevenueAmount");
                    dTempDecimal_8 = md_dTempDecimal_8.doubleValue();
                }
                dAmount = dAmount + dTempDecimal_8;
            }

            RESULT = SetCursorNextEntity(qFAProf2, "FinAidCOAItemAssigned", "");
            //:END
        }

        //:   
        //:END
    }

    //:END
    //:ReturnedTotal = dAmount
    ReturnedTotal.setValue(dAmount);

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

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

public int GenerateAwardedFederal(View qFinAidA) {
    zVIEW lFAAdmin = new zVIEW();
    //:VIEW wXferO   REGISTERED AS wXferO
    zVIEW wXferO = new zVIEW();
    int RESULT = 0;
    //:STRING ( 30 ) szRevenueWithDollarSign
    String szRevenueWithDollarSign = null;
    //:STRING ( 1 )  szFullYearFlag
    String szFullYearFlag = null;
    //:STRING ( 2 )  szFootnoteNumber
    String szFootnoteNumber = null;
    //:STRING ( 90 ) szAwardDescription
    String szAwardDescription = null;
    //:STRING ( 1 )  szSpringAwardsFlag
    String szSpringAwardsFlag = null;
    //:STRING ( 9 )  szCollegeYear
    String szCollegeYear = null;/*from  www .  j  ava2  s  . com*/
    //:STRING ( 20 ) szPeriodDesignatorFall
    String szPeriodDesignatorFall = null;
    //:STRING ( 20 ) szPeriodDesignatorSpring
    String szPeriodDesignatorSpring = null;
    //:DECIMAL dLoanOptionTotal
    double dLoanOptionTotal = 0.0;
    //:DECIMAL dCostOfAttendanceTotal
    double dCostOfAttendanceTotal = 0.0;
    //:DECIMAL dGrantsScholarshipsTotal
    double dGrantsScholarshipsTotal = 0.0;
    //:DECIMAL dInstGrantsScholarshipsTotal
    double dInstGrantsScholarshipsTotal = 0.0;
    //:DECIMAL dAwardAmount
    double dAwardAmount = 0.0;
    //:DECIMAL dAmount
    double dAmount = 0.0;
    //:DECIMAL dAmountFall
    double dAmountFall = 0.0;
    //:DECIMAL dAmountSpring
    double dAmountSpring = 0.0;
    //:DECIMAL dWorkOptionAmount
    double dWorkOptionAmount = 0.0;
    //:INTEGER nFNNumber
    int nFNNumber = 0;
    int lTempInteger_0 = 0;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;
    double dTempDecimal_2 = 0.0;
    double dTempDecimal_3 = 0.0;
    double dTempDecimal_4 = 0.0;
    double dTempDecimal_5 = 0.0;
    int lTempInteger_1 = 0;
    double dTempDecimal_6 = 0.0;
    double dTempDecimal_7 = 0.0;
    int lTempInteger_2 = 0;
    String szTempString_0 = null;
    String szTempString_1 = null;
    String szTempString_2 = null;
    int lTempInteger_3 = 0;
    int lTempInteger_4 = 0;
    String szTempString_3 = null;
    String szTempString_4 = null;
    String szTempString_5 = null;
    int lTempInteger_5 = 0;
    double dTempDecimal_8 = 0.0;
    double dTempDecimal_9 = 0.0;
    double dTempDecimal_10 = 0.0;
    double dTempDecimal_11 = 0.0;
    double dTempDecimal_12 = 0.0;
    double dTempDecimal_13 = 0.0;
    double dTempDecimal_14 = 0.0;
    double dTempDecimal_15 = 0.0;
    double dTempDecimal_16 = 0.0;
    double dTempDecimal_17 = 0.0;
    double dTempDecimal_18 = 0.0;
    double dTempDecimal_19 = 0.0;
    double dTempDecimal_20 = 0.0;
    double dTempDecimal_21 = 0.0;
    double dTempDecimal_22 = 0.0;
    double dTempDecimal_23 = 0.0;
    double dTempDecimal_24 = 0.0;

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

    //:// Generate a list of Award Items for the new Federal award letter.

    //:CREATE ENTITY qFinAidA.AwardLetterFederal 
    RESULT = CreateEntity(qFinAidA, "AwardLetterFederal", zPOS_AFTER);

    //:// Institutional Cost of Attendance Items
    //:// We also want to determine here is the award letter is being formatted for a full year or only a single term.
    //:// We will determine that by whether or not there are any COA items that have either RevenueAmount or both a
    //:// FirstTerm and SecondTerm RevenueAmount.
    //:szFullYearFlag = ""
    {
        StringBuilder sb_szFullYearFlag;
        if (szFullYearFlag == null)
            sb_szFullYearFlag = new StringBuilder(32);
        else
            sb_szFullYearFlag = new StringBuilder(szFullYearFlag);
        ZeidonStringCopy(sb_szFullYearFlag, 1, 0, "", 1, 0, 2);
        szFullYearFlag = sb_szFullYearFlag.toString();
    }
    //:FOR EACH qFinAidA.FinAidCOAItemAssigned 
    RESULT = SetCursorFirstEntity(qFinAidA, "FinAidCOAItemAssigned", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF qFinAidA.FinAidCOAItem EXISTS
        lTempInteger_0 = CheckExistenceOfEntity(qFinAidA, "FinAidCOAItem");
        if (lTempInteger_0 == 0) {
            //:IF qFinAidA.FinAidCOAItem.InstitutionalCostFlag = "Y"
            if (CompareAttributeToString(qFinAidA, "FinAidCOAItem", "InstitutionalCostFlag", "Y") == 0) {

                //:// Determine Amount
                //:dAmount = 0
                dAmount = 0;
                //:IF qFinAidA.FinAidCOAItemAssigned.RevenueAmount != ""
                if (CompareAttributeToString(qFinAidA, "FinAidCOAItemAssigned", "RevenueAmount", "") != 0) {
                    //:// Amount is from full year.
                    //:szFullYearFlag = "Y"
                    {
                        StringBuilder sb_szFullYearFlag;
                        if (szFullYearFlag == null)
                            sb_szFullYearFlag = new StringBuilder(32);
                        else
                            sb_szFullYearFlag = new StringBuilder(szFullYearFlag);
                        ZeidonStringCopy(sb_szFullYearFlag, 1, 0, "Y", 1, 0, 2);
                        szFullYearFlag = sb_szFullYearFlag.toString();
                    }
                    //:dAmount = qFinAidA.FinAidCOAItemAssigned.RevenueAmount
                    {
                        MutableDouble md_dAmount = new MutableDouble(dAmount);
                        GetDecimalFromAttribute(md_dAmount, qFinAidA, "FinAidCOAItemAssigned", "RevenueAmount");
                        dAmount = md_dAmount.doubleValue();
                    }
                    //:ELSE
                } else {
                    //:// Amount is from First and Second Term.
                    //:IF qFinAidA.FinAidCOAItemAssigned.FirstTermRevenueAmount > 0 AND 
                    //:   qFinAidA.FinAidCOAItemAssigned.SecondTermRevenueAmount > 0
                    if (CompareAttributeToInteger(qFinAidA, "FinAidCOAItemAssigned", "FirstTermRevenueAmount",
                            0) > 0
                            && CompareAttributeToInteger(qFinAidA, "FinAidCOAItemAssigned",
                                    "SecondTermRevenueAmount", 0) > 0) {

                        //:szFullYearFlag = "Y"
                        {
                            StringBuilder sb_szFullYearFlag;
                            if (szFullYearFlag == null)
                                sb_szFullYearFlag = new StringBuilder(32);
                            else
                                sb_szFullYearFlag = new StringBuilder(szFullYearFlag);
                            ZeidonStringCopy(sb_szFullYearFlag, 1, 0, "Y", 1, 0, 2);
                            szFullYearFlag = sb_szFullYearFlag.toString();
                        }
                    }

                    //:END
                    //:dAmount = qFinAidA.FinAidCOAItemAssigned.FirstTermRevenueAmount + qFinAidA.FinAidCOAItemAssigned.SecondTermRevenueAmount 
                    {
                        MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                        GetDecimalFromAttribute(md_dTempDecimal_0, qFinAidA, "FinAidCOAItemAssigned",
                                "FirstTermRevenueAmount");
                        dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                    }
                    {
                        MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                        GetDecimalFromAttribute(md_dTempDecimal_1, qFinAidA, "FinAidCOAItemAssigned",
                                "SecondTermRevenueAmount");
                        dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                    }
                    dAmount = dTempDecimal_0 + dTempDecimal_1;
                }

                //:END
                //:IF dAmount > 0
                if (dAmount > 0) {
                    //:// Only create entry with positive amount.
                    //:CREATE ENTITY qFinAidA.AwardLetterFederalCOAItem 
                    RESULT = CreateEntity(qFinAidA, "AwardLetterFederalCOAItem", zPOS_AFTER);
                    //:qFinAidA.AwardLetterFederalCOAItem.Description = qFinAidA.FinAidCOAItem.Description 
                    SetAttributeFromAttribute(qFinAidA, "AwardLetterFederalCOAItem", "Description", qFinAidA,
                            "FinAidCOAItem", "Description");
                    //:qFinAidA.AwardLetterFederalCOAItem.Amount = dAmount
                    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederalCOAItem", "Amount", dAmount);
                    //:GetStringFromAttributeByContext( szRevenueWithDollarSign, 
                    //:                                 qFinAidA, "AwardLetterFederalCOAItem", "Amount", "RevenueWithDollarSign", 30 )
                    {
                        StringBuilder sb_szRevenueWithDollarSign;
                        if (szRevenueWithDollarSign == null)
                            sb_szRevenueWithDollarSign = new StringBuilder(32);
                        else
                            sb_szRevenueWithDollarSign = new StringBuilder(szRevenueWithDollarSign);
                        GetStringFromAttributeByContext(sb_szRevenueWithDollarSign, qFinAidA,
                                "AwardLetterFederalCOAItem", "Amount", "RevenueWithDollarSign", 30);
                        szRevenueWithDollarSign = sb_szRevenueWithDollarSign.toString();
                    }
                    //:qFinAidA.AwardLetterFederalCOAItem.AmountWSign = szRevenueWithDollarSign
                    SetAttributeFromString(qFinAidA, "AwardLetterFederalCOAItem", "AmountWSign",
                            szRevenueWithDollarSign);

                    //:// Set Fall and Spring Amounts.
                    //:dAmountFall   = 0
                    dAmountFall = 0;
                    //:dAmountSpring = 0
                    dAmountSpring = 0;
                    //:IF qFinAidA.FinAidProfile.COA_OptionWholeYearFlag = "Y"
                    if (CompareAttributeToString(qFinAidA, "FinAidProfile", "COA_OptionWholeYearFlag",
                            "Y") == 0) {
                        //:dAmountFall = dAmount / 2
                        dAmountFall = dAmount / 2;
                        //:dAmountSpring = dAmount - dAmountFall
                        dAmountSpring = dAmount - dAmountFall;
                        //:ELSE
                    } else {
                        //:IF qFinAidA.FinAidProfile.COA_OptionFirstTermFlag = "Y"
                        if (CompareAttributeToString(qFinAidA, "FinAidProfile", "COA_OptionFirstTermFlag",
                                "Y") == 0) {
                            //:dAmountFall = qFinAidA.FinAidCOAItemAssigned.FirstTermRevenueAmount 
                            {
                                MutableDouble md_dAmountFall = new MutableDouble(dAmountFall);
                                GetDecimalFromAttribute(md_dAmountFall, qFinAidA, "FinAidCOAItemAssigned",
                                        "FirstTermRevenueAmount");
                                dAmountFall = md_dAmountFall.doubleValue();
                            }
                        }

                        //:END
                        //:IF qFinAidA.FinAidProfile.COA_OptionSecondTermFlag = "Y"
                        if (CompareAttributeToString(qFinAidA, "FinAidProfile", "COA_OptionSecondTermFlag",
                                "Y") == 0) {
                            //:dAmountSpring = qFinAidA.FinAidCOAItemAssigned.SecondTermRevenueAmount 
                            {
                                MutableDouble md_dAmountSpring = new MutableDouble(dAmountSpring);
                                GetDecimalFromAttribute(md_dAmountSpring, qFinAidA, "FinAidCOAItemAssigned",
                                        "SecondTermRevenueAmount");
                                dAmountSpring = md_dAmountSpring.doubleValue();
                            }
                        }

                        //:END
                    }

                    //:END
                    //:qFinAidA.AwardLetterFederalCOAItem.FallAmount   = dAmountFall
                    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederalCOAItem", "FallAmount", dAmountFall);
                    //:qFinAidA.AwardLetterFederalCOAItem.SpringAmount = dAmountSpring
                    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederalCOAItem", "SpringAmount",
                            dAmountSpring);
                    //:qFinAidA.AwardLetterFederal.CostOfAttendanceFall   = qFinAidA.AwardLetterFederal.CostOfAttendanceFall   + dAmountFall
                    {
                        MutableDouble md_dTempDecimal_2 = new MutableDouble(dTempDecimal_2);
                        GetDecimalFromAttribute(md_dTempDecimal_2, qFinAidA, "AwardLetterFederal",
                                "CostOfAttendanceFall");
                        dTempDecimal_2 = md_dTempDecimal_2.doubleValue();
                    }
                    dTempDecimal_3 = dTempDecimal_2 + dAmountFall;
                    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "CostOfAttendanceFall",
                            dTempDecimal_3);
                    //:qFinAidA.AwardLetterFederal.CostOfAttendanceSpring = qFinAidA.AwardLetterFederal.CostOfAttendanceSpring + dAmountSpring
                    {
                        MutableDouble md_dTempDecimal_4 = new MutableDouble(dTempDecimal_4);
                        GetDecimalFromAttribute(md_dTempDecimal_4, qFinAidA, "AwardLetterFederal",
                                "CostOfAttendanceSpring");
                        dTempDecimal_4 = md_dTempDecimal_4.doubleValue();
                    }
                    dTempDecimal_5 = dTempDecimal_4 + dAmountSpring;
                    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "CostOfAttendanceSpring",
                            dTempDecimal_5);
                }

                //:END
                //:dCostOfAttendanceTotal = dCostOfAttendanceTotal + dAmount
                dCostOfAttendanceTotal = dCostOfAttendanceTotal + dAmount;
            }

            //:END
        }

        RESULT = SetCursorNextEntity(qFinAidA, "FinAidCOAItemAssigned", "");
        //:END
    }

    //:END

    //:// Get Fall and Spring PeriodDesignator values for determining Fall and Spring Disbursements below.
    //:szCollegeYear = qFinAidA.CollegeYear.Year 
    {
        MutableInt mi_lTempInteger_1 = new MutableInt(lTempInteger_1);
        StringBuilder sb_szCollegeYear;
        if (szCollegeYear == null)
            sb_szCollegeYear = new StringBuilder(32);
        else
            sb_szCollegeYear = new StringBuilder(szCollegeYear);
        GetVariableFromAttribute(sb_szCollegeYear, mi_lTempInteger_1, 'S', 10, qFinAidA, "CollegeYear", "Year",
                "", 0);
        lTempInteger_1 = mi_lTempInteger_1.intValue();
        szCollegeYear = sb_szCollegeYear.toString();
    }
    //:szPeriodDesignatorFall   = szCollegeYear + " Fall"
    {
        StringBuilder sb_szPeriodDesignatorFall;
        if (szPeriodDesignatorFall == null)
            sb_szPeriodDesignatorFall = new StringBuilder(32);
        else
            sb_szPeriodDesignatorFall = new StringBuilder(szPeriodDesignatorFall);
        ZeidonStringCopy(sb_szPeriodDesignatorFall, 1, 0, szCollegeYear, 1, 0, 21);
        szPeriodDesignatorFall = sb_szPeriodDesignatorFall.toString();
    }
    {
        StringBuilder sb_szPeriodDesignatorFall;
        if (szPeriodDesignatorFall == null)
            sb_szPeriodDesignatorFall = new StringBuilder(32);
        else
            sb_szPeriodDesignatorFall = new StringBuilder(szPeriodDesignatorFall);
        ZeidonStringConcat(sb_szPeriodDesignatorFall, 1, 0, " Fall", 1, 0, 21);
        szPeriodDesignatorFall = sb_szPeriodDesignatorFall.toString();
    }
    //:szPeriodDesignatorSpring = szCollegeYear + " Spring"
    {
        StringBuilder sb_szPeriodDesignatorSpring;
        if (szPeriodDesignatorSpring == null)
            sb_szPeriodDesignatorSpring = new StringBuilder(32);
        else
            sb_szPeriodDesignatorSpring = new StringBuilder(szPeriodDesignatorSpring);
        ZeidonStringCopy(sb_szPeriodDesignatorSpring, 1, 0, szCollegeYear, 1, 0, 21);
        szPeriodDesignatorSpring = sb_szPeriodDesignatorSpring.toString();
    }
    {
        StringBuilder sb_szPeriodDesignatorSpring;
        if (szPeriodDesignatorSpring == null)
            sb_szPeriodDesignatorSpring = new StringBuilder(32);
        else
            sb_szPeriodDesignatorSpring = new StringBuilder(szPeriodDesignatorSpring);
        ZeidonStringConcat(sb_szPeriodDesignatorSpring, 1, 0, " Spring", 1, 0, 21);
        szPeriodDesignatorSpring = sb_szPeriodDesignatorSpring.toString();
    }

    //:// Grants and Scholarships
    //:nFNNumber = 0
    nFNNumber = 0;
    //:dGrantsScholarshipsTotal = 0
    dGrantsScholarshipsTotal = 0;
    //:FOR EACH qFinAidA.FinAidAwardAssigned 
    RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardAssigned", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF ( qFinAidA.FinAidSource.SourceType = "G" OR qFinAidA.FinAidSource.SourceType = "S" ) AND 
        //:   ( qFinAidA.FinAidAwardAssigned.AwardStatus = "P" OR 
        //:     qFinAidA.FinAidAwardAssigned.AwardStatus = "Y" OR 
        //:     qFinAidA.FinAidAwardAssigned.AwardStatus = "A" )
        if ((CompareAttributeToString(qFinAidA, "FinAidSource", "SourceType", "G") == 0
                || CompareAttributeToString(qFinAidA, "FinAidSource", "SourceType", "S") == 0)
                && (CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "P") == 0
                        || CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "Y") == 0
                        || CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus",
                                "A") == 0)) {

            //:// Make sure Disbursements are ordered so Fall is first.
            //:OrderEntityForView( qFinAidA, "FinAidAwardDisbursement", "DisbursementDate A" )
            OrderEntityForView(qFinAidA, "FinAidAwardDisbursement", "DisbursementDate A");

            //:// Create Grant/Scholarship entry as either Institutional or Other.
            //:IF qFinAidA.FinAidSource.Provider = "I"
            if (CompareAttributeToString(qFinAidA, "FinAidSource", "Provider", "I") == 0) {
                //:// Institutional Aid
                //:CREATE ENTITY qFinAidA.AwardLetterInstGrant  
                RESULT = CreateEntity(qFinAidA, "AwardLetterInstGrant", zPOS_AFTER);
                //:qFinAidA.AwardLetterInstGrant.Description = qFinAidA.FinAidSource.Name
                SetAttributeFromAttribute(qFinAidA, "AwardLetterInstGrant", "Description", qFinAidA,
                        "FinAidSource", "Name");
                //:qFinAidA.AwardLetterInstGrant.Amount = qFinAidA.FinAidAwardAssigned.Amount  
                SetAttributeFromAttribute(qFinAidA, "AwardLetterInstGrant", "Amount", qFinAidA,
                        "FinAidAwardAssigned", "Amount");
                //:GetStringFromAttributeByContext( szRevenueWithDollarSign, 
                //:                                 qFinAidA, "AwardLetterInstGrant", "Amount", "RevenueWithDollarSign", 30 )
                {
                    StringBuilder sb_szRevenueWithDollarSign;
                    if (szRevenueWithDollarSign == null)
                        sb_szRevenueWithDollarSign = new StringBuilder(32);
                    else
                        sb_szRevenueWithDollarSign = new StringBuilder(szRevenueWithDollarSign);
                    GetStringFromAttributeByContext(sb_szRevenueWithDollarSign, qFinAidA,
                            "AwardLetterInstGrant", "Amount", "RevenueWithDollarSign", 30);
                    szRevenueWithDollarSign = sb_szRevenueWithDollarSign.toString();
                }
                //:qFinAidA.AwardLetterInstGrant.AmountWSign = szRevenueWithDollarSign
                SetAttributeFromString(qFinAidA, "AwardLetterInstGrant", "AmountWSign",
                        szRevenueWithDollarSign);

                //:// Also set Fall and Spring Amounts.
                //:FOR EACH qFinAidA.FinAidAwardDisbursement 
                RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardDisbursement", "");
                while (RESULT > zCURSOR_UNCHANGED) {
                    //:IF qFinAidA.FinAidAwardPeriod.PeriodDesignator = szPeriodDesignatorFall
                    if (CompareAttributeToString(qFinAidA, "FinAidAwardPeriod", "PeriodDesignator",
                            szPeriodDesignatorFall) == 0) {
                        //:qFinAidA.AwardLetterInstGrant.FallAmount = qFinAidA.FinAidAwardDisbursement.AmountExpected 
                        SetAttributeFromAttribute(qFinAidA, "AwardLetterInstGrant", "FallAmount", qFinAidA,
                                "FinAidAwardDisbursement", "AmountExpected");
                        //:ELSE
                    } else {
                        //:IF qFinAidA.FinAidAwardPeriod.PeriodDesignator = szPeriodDesignatorSpring
                        if (CompareAttributeToString(qFinAidA, "FinAidAwardPeriod", "PeriodDesignator",
                                szPeriodDesignatorSpring) == 0) {
                            //:qFinAidA.AwardLetterInstGrant.SpringAmount = qFinAidA.FinAidAwardDisbursement.AmountExpected 
                            SetAttributeFromAttribute(qFinAidA, "AwardLetterInstGrant", "SpringAmount",
                                    qFinAidA, "FinAidAwardDisbursement", "AmountExpected");
                            //:szSpringAwardsFlag = "Y"
                            {
                                StringBuilder sb_szSpringAwardsFlag;
                                if (szSpringAwardsFlag == null)
                                    sb_szSpringAwardsFlag = new StringBuilder(32);
                                else
                                    sb_szSpringAwardsFlag = new StringBuilder(szSpringAwardsFlag);
                                ZeidonStringCopy(sb_szSpringAwardsFlag, 1, 0, "Y", 1, 0, 2);
                                szSpringAwardsFlag = sb_szSpringAwardsFlag.toString();
                            }
                        }

                        //:END
                    }

                    RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardDisbursement", "");
                    //:END
                }

                //:END

                //:IF qFinAidA.FinAidSource.SourceFootnote != ""
                if (CompareAttributeToString(qFinAidA, "FinAidSource", "SourceFootnote", "") != 0) {
                    //:qFinAidA.AwardLetterInstGrant.FootNoteText = qFinAidA.FinAidSource.SourceFootnote
                    SetAttributeFromAttribute(qFinAidA, "AwardLetterInstGrant", "FootNoteText", qFinAidA,
                            "FinAidSource", "SourceFootnote");
                }

                //:END
                //:ELSE
            } else {
                //:// Other Aid
                //:CREATE ENTITY qFinAidA.AwardLetterOtherGrant 
                RESULT = CreateEntity(qFinAidA, "AwardLetterOtherGrant", zPOS_AFTER);
                //:qFinAidA.AwardLetterOtherGrant.Description = qFinAidA.FinAidSource.Name
                SetAttributeFromAttribute(qFinAidA, "AwardLetterOtherGrant", "Description", qFinAidA,
                        "FinAidSource", "Name");
                //:qFinAidA.AwardLetterOtherGrant.Amount = qFinAidA.FinAidAwardAssigned.Amount  
                SetAttributeFromAttribute(qFinAidA, "AwardLetterOtherGrant", "Amount", qFinAidA,
                        "FinAidAwardAssigned", "Amount");
                //:GetStringFromAttributeByContext( szRevenueWithDollarSign, 
                //:                                 qFinAidA, "AwardLetterOtherGrant", "Amount", "RevenueWithDollarSign", 30 )
                {
                    StringBuilder sb_szRevenueWithDollarSign;
                    if (szRevenueWithDollarSign == null)
                        sb_szRevenueWithDollarSign = new StringBuilder(32);
                    else
                        sb_szRevenueWithDollarSign = new StringBuilder(szRevenueWithDollarSign);
                    GetStringFromAttributeByContext(sb_szRevenueWithDollarSign, qFinAidA,
                            "AwardLetterOtherGrant", "Amount", "RevenueWithDollarSign", 30);
                    szRevenueWithDollarSign = sb_szRevenueWithDollarSign.toString();
                }
                //:qFinAidA.AwardLetterOtherGrant.AmountWSign = szRevenueWithDollarSign
                SetAttributeFromString(qFinAidA, "AwardLetterOtherGrant", "AmountWSign",
                        szRevenueWithDollarSign);

                //:// Also set Fall and Spring Amounts.
                //:FOR EACH qFinAidA.FinAidAwardDisbursement 
                RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardDisbursement", "");
                while (RESULT > zCURSOR_UNCHANGED) {
                    //:IF qFinAidA.FinAidAwardPeriod.PeriodDesignator = szPeriodDesignatorFall
                    if (CompareAttributeToString(qFinAidA, "FinAidAwardPeriod", "PeriodDesignator",
                            szPeriodDesignatorFall) == 0) {
                        //:qFinAidA.AwardLetterOtherGrant.FallAmount = qFinAidA.FinAidAwardDisbursement.AmountExpected 
                        SetAttributeFromAttribute(qFinAidA, "AwardLetterOtherGrant", "FallAmount", qFinAidA,
                                "FinAidAwardDisbursement", "AmountExpected");
                        //:ELSE
                    } else {
                        //:IF qFinAidA.FinAidAwardPeriod.PeriodDesignator = szPeriodDesignatorSpring
                        if (CompareAttributeToString(qFinAidA, "FinAidAwardPeriod", "PeriodDesignator",
                                szPeriodDesignatorSpring) == 0) {
                            //:qFinAidA.AwardLetterOtherGrant.SpringAmount = qFinAidA.FinAidAwardDisbursement.AmountExpected 
                            SetAttributeFromAttribute(qFinAidA, "AwardLetterOtherGrant", "SpringAmount",
                                    qFinAidA, "FinAidAwardDisbursement", "AmountExpected");
                            //:szSpringAwardsFlag = "Y"
                            {
                                StringBuilder sb_szSpringAwardsFlag;
                                if (szSpringAwardsFlag == null)
                                    sb_szSpringAwardsFlag = new StringBuilder(32);
                                else
                                    sb_szSpringAwardsFlag = new StringBuilder(szSpringAwardsFlag);
                                ZeidonStringCopy(sb_szSpringAwardsFlag, 1, 0, "Y", 1, 0, 2);
                                szSpringAwardsFlag = sb_szSpringAwardsFlag.toString();
                            }
                        }

                        //:END
                    }

                    RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardDisbursement", "");
                    //:END
                }

                //:END

                //:IF qFinAidA.FinAidSource.SourceFootnote != ""
                if (CompareAttributeToString(qFinAidA, "FinAidSource", "SourceFootnote", "") != 0) {
                    //:qFinAidA.AwardLetterOtherGrant.FootNoteText = qFinAidA.FinAidSource.SourceFootnote
                    SetAttributeFromAttribute(qFinAidA, "AwardLetterOtherGrant", "FootNoteText", qFinAidA,
                            "FinAidSource", "SourceFootnote");
                }

                //:END
            }

            //:END

            //:// Total all.
            //:dGrantsScholarshipsTotal = dGrantsScholarshipsTotal + qFinAidA.FinAidAwardAssigned.Amount
            {
                MutableDouble md_dTempDecimal_6 = new MutableDouble(dTempDecimal_6);
                GetDecimalFromAttribute(md_dTempDecimal_6, qFinAidA, "FinAidAwardAssigned", "Amount");
                dTempDecimal_6 = md_dTempDecimal_6.doubleValue();
            }
            dGrantsScholarshipsTotal = dGrantsScholarshipsTotal + dTempDecimal_6;
        }

        RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardAssigned", "");
        //:END 
    }

    //:END

    //:// Total Institutional Aid.
    //:dInstGrantsScholarshipsTotal = 0
    dInstGrantsScholarshipsTotal = 0;
    //:FOR EACH qFinAidA.AwardLetterInstGrant 
    RESULT = SetCursorFirstEntity(qFinAidA, "AwardLetterInstGrant", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:dInstGrantsScholarshipsTotal = dInstGrantsScholarshipsTotal + qFinAidA.AwardLetterInstGrant.Amount 
        {
            MutableDouble md_dTempDecimal_7 = new MutableDouble(dTempDecimal_7);
            GetDecimalFromAttribute(md_dTempDecimal_7, qFinAidA, "AwardLetterInstGrant", "Amount");
            dTempDecimal_7 = md_dTempDecimal_7.doubleValue();
        }
        dInstGrantsScholarshipsTotal = dInstGrantsScholarshipsTotal + dTempDecimal_7;
        RESULT = SetCursorNextEntity(qFinAidA, "AwardLetterInstGrant", "");
    }

    //:END

    //:// Handle Footnotes, where they exist.
    //:nFNNumber = 0
    nFNNumber = 0;
    //:FOR EACH qFinAidA.AwardLetterInstGrant 
    RESULT = SetCursorFirstEntity(qFinAidA, "AwardLetterInstGrant", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF qFinAidA.AwardLetterInstGrant.FootNoteText != ""
        if (CompareAttributeToString(qFinAidA, "AwardLetterInstGrant", "FootNoteText", "") != 0) {
            //:nFNNumber = nFNNumber + 1
            nFNNumber = nFNNumber + 1;
            //:szFootnoteNumber = nFNNumber
            {
                StringBuilder sb_szFootnoteNumber;
                if (szFootnoteNumber == null)
                    sb_szFootnoteNumber = new StringBuilder(32);
                else
                    sb_szFootnoteNumber = new StringBuilder(szFootnoteNumber);
                ZeidonStringConvertFromNumber(sb_szFootnoteNumber, 1, 0, 2, nFNNumber, (double) 0.0, "I");
                szFootnoteNumber = sb_szFootnoteNumber.toString();
            }
            //:szAwardDescription = qFinAidA.AwardLetterInstGrant.Description
            {
                MutableInt mi_lTempInteger_2 = new MutableInt(lTempInteger_2);
                StringBuilder sb_szAwardDescription;
                if (szAwardDescription == null)
                    sb_szAwardDescription = new StringBuilder(32);
                else
                    sb_szAwardDescription = new StringBuilder(szAwardDescription);
                GetVariableFromAttribute(sb_szAwardDescription, mi_lTempInteger_2, 'S', 91, qFinAidA,
                        "AwardLetterInstGrant", "Description", "", 0);
                lTempInteger_2 = mi_lTempInteger_2.intValue();
                szAwardDescription = sb_szAwardDescription.toString();
            }
            //:qFinAidA.AwardLetterInstGrant.Description = szAwardDescription + " (*" + szFootnoteNumber + ")"
            {
                StringBuilder sb_szTempString_0;
                if (szTempString_0 == null)
                    sb_szTempString_0 = new StringBuilder(32);
                else
                    sb_szTempString_0 = new StringBuilder(szTempString_0);
                ZeidonStringCopy(sb_szTempString_0, 1, 0, szAwardDescription, 1, 0, 255);
                szTempString_0 = sb_szTempString_0.toString();
            }
            {
                StringBuilder sb_szTempString_0;
                if (szTempString_0 == null)
                    sb_szTempString_0 = new StringBuilder(32);
                else
                    sb_szTempString_0 = new StringBuilder(szTempString_0);
                ZeidonStringConcat(sb_szTempString_0, 1, 0, " (*", 1, 0, 255);
                szTempString_0 = sb_szTempString_0.toString();
            }
            {
                StringBuilder sb_szTempString_0;
                if (szTempString_0 == null)
                    sb_szTempString_0 = new StringBuilder(32);
                else
                    sb_szTempString_0 = new StringBuilder(szTempString_0);
                ZeidonStringConcat(sb_szTempString_0, 1, 0, szFootnoteNumber, 1, 0, 255);
                szTempString_0 = sb_szTempString_0.toString();
            }
            {
                StringBuilder sb_szTempString_0;
                if (szTempString_0 == null)
                    sb_szTempString_0 = new StringBuilder(32);
                else
                    sb_szTempString_0 = new StringBuilder(szTempString_0);
                ZeidonStringConcat(sb_szTempString_0, 1, 0, ")", 1, 0, 255);
                szTempString_0 = sb_szTempString_0.toString();
            }
            SetAttributeFromString(qFinAidA, "AwardLetterInstGrant", "Description", szTempString_0);
            //:CREATE ENTITY qFinAidA.AwardLetterFederalFootNote 
            RESULT = CreateEntity(qFinAidA, "AwardLetterFederalFootNote", zPOS_AFTER);
            //:qFinAidA.AwardLetterFederalFootNote.Description = szFootnoteNumber + ": " + qFinAidA.AwardLetterInstGrant.FootNoteText 
            {
                StringBuilder sb_szTempString_1;
                if (szTempString_1 == null)
                    sb_szTempString_1 = new StringBuilder(32);
                else
                    sb_szTempString_1 = new StringBuilder(szTempString_1);
                ZeidonStringCopy(sb_szTempString_1, 1, 0, szFootnoteNumber, 1, 0, 255);
                szTempString_1 = sb_szTempString_1.toString();
            }
            {
                StringBuilder sb_szTempString_1;
                if (szTempString_1 == null)
                    sb_szTempString_1 = new StringBuilder(32);
                else
                    sb_szTempString_1 = new StringBuilder(szTempString_1);
                ZeidonStringConcat(sb_szTempString_1, 1, 0, ": ", 1, 0, 255);
                szTempString_1 = sb_szTempString_1.toString();
            }
            {
                MutableInt mi_lTempInteger_3 = new MutableInt(lTempInteger_3);
                StringBuilder sb_szTempString_2;
                if (szTempString_2 == null)
                    sb_szTempString_2 = new StringBuilder(32);
                else
                    sb_szTempString_2 = new StringBuilder(szTempString_2);
                GetVariableFromAttribute(sb_szTempString_2, mi_lTempInteger_3, 'S', 255, qFinAidA,
                        "AwardLetterInstGrant", "FootNoteText", "", 0);
                lTempInteger_3 = mi_lTempInteger_3.intValue();
                szTempString_2 = sb_szTempString_2.toString();
            }
            {
                StringBuilder sb_szTempString_1;
                if (szTempString_1 == null)
                    sb_szTempString_1 = new StringBuilder(32);
                else
                    sb_szTempString_1 = new StringBuilder(szTempString_1);
                ZeidonStringConcat(sb_szTempString_1, 1, 0, szTempString_2, 1, 0, 255);
                szTempString_1 = sb_szTempString_1.toString();
            }
            SetAttributeFromString(qFinAidA, "AwardLetterFederalFootNote", "Description", szTempString_1);
        }

        RESULT = SetCursorNextEntity(qFinAidA, "AwardLetterInstGrant", "");
        //:END
    }

    //:END
    //:FOR EACH qFinAidA.AwardLetterOtherGrant 
    RESULT = SetCursorFirstEntity(qFinAidA, "AwardLetterOtherGrant", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:IF qFinAidA.AwardLetterOtherGrant.FootNoteText != ""
        if (CompareAttributeToString(qFinAidA, "AwardLetterOtherGrant", "FootNoteText", "") != 0) {
            //:nFNNumber = nFNNumber + 1
            nFNNumber = nFNNumber + 1;
            //:szFootnoteNumber = nFNNumber
            {
                StringBuilder sb_szFootnoteNumber;
                if (szFootnoteNumber == null)
                    sb_szFootnoteNumber = new StringBuilder(32);
                else
                    sb_szFootnoteNumber = new StringBuilder(szFootnoteNumber);
                ZeidonStringConvertFromNumber(sb_szFootnoteNumber, 1, 0, 2, nFNNumber, (double) 0.0, "I");
                szFootnoteNumber = sb_szFootnoteNumber.toString();
            }
            //:szAwardDescription = qFinAidA.AwardLetterOtherGrant.Description
            {
                MutableInt mi_lTempInteger_4 = new MutableInt(lTempInteger_4);
                StringBuilder sb_szAwardDescription;
                if (szAwardDescription == null)
                    sb_szAwardDescription = new StringBuilder(32);
                else
                    sb_szAwardDescription = new StringBuilder(szAwardDescription);
                GetVariableFromAttribute(sb_szAwardDescription, mi_lTempInteger_4, 'S', 91, qFinAidA,
                        "AwardLetterOtherGrant", "Description", "", 0);
                lTempInteger_4 = mi_lTempInteger_4.intValue();
                szAwardDescription = sb_szAwardDescription.toString();
            }
            //:qFinAidA.AwardLetterOtherGrant.Description = szAwardDescription + " (*" + szFootnoteNumber + ")"
            {
                StringBuilder sb_szTempString_3;
                if (szTempString_3 == null)
                    sb_szTempString_3 = new StringBuilder(32);
                else
                    sb_szTempString_3 = new StringBuilder(szTempString_3);
                ZeidonStringCopy(sb_szTempString_3, 1, 0, szAwardDescription, 1, 0, 255);
                szTempString_3 = sb_szTempString_3.toString();
            }
            {
                StringBuilder sb_szTempString_3;
                if (szTempString_3 == null)
                    sb_szTempString_3 = new StringBuilder(32);
                else
                    sb_szTempString_3 = new StringBuilder(szTempString_3);
                ZeidonStringConcat(sb_szTempString_3, 1, 0, " (*", 1, 0, 255);
                szTempString_3 = sb_szTempString_3.toString();
            }
            {
                StringBuilder sb_szTempString_3;
                if (szTempString_3 == null)
                    sb_szTempString_3 = new StringBuilder(32);
                else
                    sb_szTempString_3 = new StringBuilder(szTempString_3);
                ZeidonStringConcat(sb_szTempString_3, 1, 0, szFootnoteNumber, 1, 0, 255);
                szTempString_3 = sb_szTempString_3.toString();
            }
            {
                StringBuilder sb_szTempString_3;
                if (szTempString_3 == null)
                    sb_szTempString_3 = new StringBuilder(32);
                else
                    sb_szTempString_3 = new StringBuilder(szTempString_3);
                ZeidonStringConcat(sb_szTempString_3, 1, 0, ")", 1, 0, 255);
                szTempString_3 = sb_szTempString_3.toString();
            }
            SetAttributeFromString(qFinAidA, "AwardLetterOtherGrant", "Description", szTempString_3);
            //:CREATE ENTITY qFinAidA.AwardLetterFederalFootNote 
            RESULT = CreateEntity(qFinAidA, "AwardLetterFederalFootNote", zPOS_AFTER);
            //:qFinAidA.AwardLetterFederalFootNote.Description = szFootnoteNumber + ": " + qFinAidA.AwardLetterOtherGrant.FootNoteText
            {
                StringBuilder sb_szTempString_4;
                if (szTempString_4 == null)
                    sb_szTempString_4 = new StringBuilder(32);
                else
                    sb_szTempString_4 = new StringBuilder(szTempString_4);
                ZeidonStringCopy(sb_szTempString_4, 1, 0, szFootnoteNumber, 1, 0, 255);
                szTempString_4 = sb_szTempString_4.toString();
            }
            {
                StringBuilder sb_szTempString_4;
                if (szTempString_4 == null)
                    sb_szTempString_4 = new StringBuilder(32);
                else
                    sb_szTempString_4 = new StringBuilder(szTempString_4);
                ZeidonStringConcat(sb_szTempString_4, 1, 0, ": ", 1, 0, 255);
                szTempString_4 = sb_szTempString_4.toString();
            }
            {
                MutableInt mi_lTempInteger_5 = new MutableInt(lTempInteger_5);
                StringBuilder sb_szTempString_5;
                if (szTempString_5 == null)
                    sb_szTempString_5 = new StringBuilder(32);
                else
                    sb_szTempString_5 = new StringBuilder(szTempString_5);
                GetVariableFromAttribute(sb_szTempString_5, mi_lTempInteger_5, 'S', 255, qFinAidA,
                        "AwardLetterOtherGrant", "FootNoteText", "", 0);
                lTempInteger_5 = mi_lTempInteger_5.intValue();
                szTempString_5 = sb_szTempString_5.toString();
            }
            {
                StringBuilder sb_szTempString_4;
                if (szTempString_4 == null)
                    sb_szTempString_4 = new StringBuilder(32);
                else
                    sb_szTempString_4 = new StringBuilder(szTempString_4);
                ZeidonStringConcat(sb_szTempString_4, 1, 0, szTempString_5, 1, 0, 255);
                szTempString_4 = sb_szTempString_4.toString();
            }
            SetAttributeFromString(qFinAidA, "AwardLetterFederalFootNote", "Description", szTempString_4);
        }

        RESULT = SetCursorNextEntity(qFinAidA, "AwardLetterOtherGrant", "");
        //:END
    }

    //:END

    //:// Create qFinAidA.AwardLetterFederalGrant entries from AwardLetterInstGrant and AwardLetterOtherGrant entries.
    //:FOR EACH qFinAidA.AwardLetterInstGrant 
    RESULT = SetCursorFirstEntity(qFinAidA, "AwardLetterInstGrant", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:CREATE ENTITY qFinAidA.AwardLetterFederalGrant 
        RESULT = CreateEntity(qFinAidA, "AwardLetterFederalGrant", zPOS_AFTER);
        //:SetMatchingAttributesByName( qFinAidA, "AwardLetterFederalGrant", qFinAidA, "AwardLetterInstGrant", zSET_NULL ) 
        SetMatchingAttributesByName(qFinAidA, "AwardLetterFederalGrant", qFinAidA, "AwardLetterInstGrant",
                zSET_NULL);
        RESULT = SetCursorNextEntity(qFinAidA, "AwardLetterInstGrant", "");
    }

    //:END
    //:FOR EACH qFinAidA.AwardLetterOtherGrant 
    RESULT = SetCursorFirstEntity(qFinAidA, "AwardLetterOtherGrant", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:CREATE ENTITY qFinAidA.AwardLetterFederalGrant 
        RESULT = CreateEntity(qFinAidA, "AwardLetterFederalGrant", zPOS_AFTER);
        //:SetMatchingAttributesByName( qFinAidA, "AwardLetterFederalGrant", qFinAidA, "AwardLetterOtherGrant", zSET_NULL ) 
        SetMatchingAttributesByName(qFinAidA, "AwardLetterFederalGrant", qFinAidA, "AwardLetterOtherGrant",
                zSET_NULL);
        RESULT = SetCursorNextEntity(qFinAidA, "AwardLetterOtherGrant", "");
    }

    //:END

    //:// Work Option
    //:GET VIEW lFAAdmin NAMED "lFAAdmin"
    RESULT = GetViewByName(lFAAdmin, "lFAAdmin", qFinAidA, zLEVEL_TASK);
    //:IF RESULT >= 0 
    if (RESULT >= 0) {
        //:// We want to add the Work Option Amount ONLY if
        //:// 1. The student is NOT Distance Learning.
        //:// 2. The student is Dependent OR the student has a Federal Work Study award.
        //:IF qFinAidA.Student.AdultStudiesFlag != "Y"
        if (CompareAttributeToString(qFinAidA, "Student", "AdultStudiesFlag", "Y") != 0) {
            //:SET CURSOR FIRST qFinAidA.FinAidSource WITHIN qFinAidA.FinAidProfile 
            //:           WHERE qFinAidA.FinAidSource.SourceType = "W"
            RESULT = SetCursorFirstEntityByString(qFinAidA, "FinAidSource", "SourceType", "W", "FinAidProfile");
            //:IF RESULT >= zCURSOR_SET OR qFinAidA.FinAidProfile.DependencyStatus = "D"
            if (RESULT >= zCURSOR_SET
                    || CompareAttributeToString(qFinAidA, "FinAidProfile", "DependencyStatus", "D") == 0) {
                //:dWorkOptionAmount = lFAAdmin.FinAidAdmin.FederalAwardLetterWorkOptionAmt 
                {
                    MutableDouble md_dWorkOptionAmount = new MutableDouble(dWorkOptionAmount);
                    GetDecimalFromAttribute(md_dWorkOptionAmount, lFAAdmin, "FinAidAdmin",
                            "FederalAwardLetterWorkOptionAmt");
                    dWorkOptionAmount = md_dWorkOptionAmount.doubleValue();
                }
            }

            //:END 
        }

        //:END
    }

    //:END

    //:// Loan Options
    //:// Include all government loans.
    //:dLoanOptionTotal = 0
    dLoanOptionTotal = 0;
    //:FOR EACH qFinAidA.FinAidAwardAssigned 
    RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardAssigned", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:// We will skip any Declined entries.
        //:IF qFinAidA.FinAidAwardAssigned.AwardStatus = "P" OR 
        //:   qFinAidA.FinAidAwardAssigned.AwardStatus = "Y" OR 
        //:   qFinAidA.FinAidAwardAssigned.AwardStatus = "A"
        if (CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "P") == 0
                || CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "Y") == 0
                || CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "A") == 0) {

            //:IF qFinAidA.FinAidSource.SourceType = "L" AND qFinAidA.FinAidSource.Provider = "G"
            if (CompareAttributeToString(qFinAidA, "FinAidSource", "SourceType", "L") == 0
                    && CompareAttributeToString(qFinAidA, "FinAidSource", "Provider", "G") == 0) {

                //:// Make sure Disbursements are ordered so Fall is first.
                //:OrderEntityForView( qFinAidA, "FinAidAwardDisbursement", "DisbursementDate A" )
                OrderEntityForView(qFinAidA, "FinAidAwardDisbursement", "DisbursementDate A");
                //:dAwardAmount = qFinAidA.FinAidAwardAssigned.Amount 
                {
                    MutableDouble md_dAwardAmount = new MutableDouble(dAwardAmount);
                    GetDecimalFromAttribute(md_dAwardAmount, qFinAidA, "FinAidAwardAssigned", "Amount");
                    dAwardAmount = md_dAwardAmount.doubleValue();
                }
                //:IF dAwardAmount > 0
                if (dAwardAmount > 0) {
                    //:CREATE ENTITY qFinAidA.AwardLetterFederalLoan 
                    RESULT = CreateEntity(qFinAidA, "AwardLetterFederalLoan", zPOS_AFTER);
                    //:qFinAidA.AwardLetterFederalLoan.Description = qFinAidA.FinAidSource.Name
                    SetAttributeFromAttribute(qFinAidA, "AwardLetterFederalLoan", "Description", qFinAidA,
                            "FinAidSource", "Name");
                    //:qFinAidA.AwardLetterFederalLoan.Amount      = dAwardAmount
                    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederalLoan", "Amount", dAwardAmount);
                    //:GetStringFromAttributeByContext( szRevenueWithDollarSign, 
                    //:                                 qFinAidA, "AwardLetterFederalLoan", "Amount", "RevenueWithDollarSign", 30 )
                    {
                        StringBuilder sb_szRevenueWithDollarSign;
                        if (szRevenueWithDollarSign == null)
                            sb_szRevenueWithDollarSign = new StringBuilder(32);
                        else
                            sb_szRevenueWithDollarSign = new StringBuilder(szRevenueWithDollarSign);
                        GetStringFromAttributeByContext(sb_szRevenueWithDollarSign, qFinAidA,
                                "AwardLetterFederalLoan", "Amount", "RevenueWithDollarSign", 30);
                        szRevenueWithDollarSign = sb_szRevenueWithDollarSign.toString();
                    }
                    //:qFinAidA.AwardLetterFederalLoan.AmountWSign = szRevenueWithDollarSign
                    SetAttributeFromString(qFinAidA, "AwardLetterFederalLoan", "AmountWSign",
                            szRevenueWithDollarSign);

                    //:// Also set Fall and Spring Amounts.
                    //:FOR EACH qFinAidA.FinAidAwardDisbursement 
                    RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardDisbursement", "");
                    while (RESULT > zCURSOR_UNCHANGED) {
                        //:IF qFinAidA.FinAidAwardPeriod.PeriodDesignator = szPeriodDesignatorFall
                        if (CompareAttributeToString(qFinAidA, "FinAidAwardPeriod", "PeriodDesignator",
                                szPeriodDesignatorFall) == 0) {
                            //:qFinAidA.AwardLetterFederalLoan.FallAmount = qFinAidA.FinAidAwardDisbursement.AmountExpected 
                            SetAttributeFromAttribute(qFinAidA, "AwardLetterFederalLoan", "FallAmount",
                                    qFinAidA, "FinAidAwardDisbursement", "AmountExpected");
                            //:ELSE
                        } else {
                            //:IF qFinAidA.FinAidAwardPeriod.PeriodDesignator = szPeriodDesignatorSpring
                            if (CompareAttributeToString(qFinAidA, "FinAidAwardPeriod", "PeriodDesignator",
                                    szPeriodDesignatorSpring) == 0) {
                                //:qFinAidA.AwardLetterFederalLoan.SpringAmount = qFinAidA.FinAidAwardDisbursement.AmountExpected 
                                SetAttributeFromAttribute(qFinAidA, "AwardLetterFederalLoan", "SpringAmount",
                                        qFinAidA, "FinAidAwardDisbursement", "AmountExpected");
                            }

                            //:END
                        }

                        RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardDisbursement", "");
                        //:END
                    }

                    //:END

                    //:dLoanOptionTotal = dLoanOptionTotal + dAwardAmount
                    dLoanOptionTotal = dLoanOptionTotal + dAwardAmount;
                }

                //:END
            }

            //:END
        }

        RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardAssigned", "");
        //:END
    }

    //:END

    //:// Set Total Amounts.
    //:qFinAidA.AwardLetterFederal.CostOfAttendanceTotal           = dCostOfAttendanceTotal
    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "CostOfAttendanceTotal", dCostOfAttendanceTotal);
    //:qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsTotal  = dInstGrantsScholarshipsTotal
    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "InstGrantsAndScholarshipsTotal",
            dInstGrantsScholarshipsTotal);
    //:qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsTotal4 = dInstGrantsScholarshipsTotal * 4
    dTempDecimal_8 = dInstGrantsScholarshipsTotal * 4;
    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "InstGrantsAndScholarshipsTotal4", dTempDecimal_8);
    //:qFinAidA.AwardLetterFederal.GrantsAndScholarshipsTotal      = dGrantsScholarshipsTotal
    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "GrantsAndScholarshipsTotal",
            dGrantsScholarshipsTotal);
    //:qFinAidA.AwardLetterFederal.NetCosts                        = dCostOfAttendanceTotal - dGrantsScholarshipsTotal
    dTempDecimal_9 = dCostOfAttendanceTotal - dGrantsScholarshipsTotal;
    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "NetCosts", dTempDecimal_9);
    //:qFinAidA.AwardLetterFederal.WorkOptionsTotal                = dWorkOptionAmount
    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "WorkOptionsTotal", dWorkOptionAmount);
    //:qFinAidA.AwardLetterFederal.LoanOptionsTotal                = dLoanOptionTotal
    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "LoanOptionsTotal", dLoanOptionTotal);
    //:qFinAidA.AwardLetterFederal.FinalNetCosts                   = dCostOfAttendanceTotal   - 
    //:                                                              dGrantsScholarshipsTotal -
    //:                                                              dWorkOptionAmount        -
    //:                                                              dLoanOptionTotal
    dTempDecimal_10 = dCostOfAttendanceTotal - dGrantsScholarshipsTotal - dWorkOptionAmount - dLoanOptionTotal;
    SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "FinalNetCosts", dTempDecimal_10);

    //:// Set Fall and Spring Total amounts.
    //:IF szSpringAwardsFlag = "Y" OR szFullYearFlag = "Y"
    if (ZeidonStringCompare(szSpringAwardsFlag, 1, 0, "Y", 1, 0, 2) == 0
            || ZeidonStringCompare(szFullYearFlag, 1, 0, "Y", 1, 0, 2) == 0) {
        //:// Both Fall and Spring amounts were specified.
        //:// First set Fall amounts as half of total amounts.
        //:qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsFall  = qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsTotal / 2
        {
            MutableDouble md_dTempDecimal_11 = new MutableDouble(dTempDecimal_11);
            GetDecimalFromAttribute(md_dTempDecimal_11, qFinAidA, "AwardLetterFederal",
                    "InstGrantsAndScholarshipsTotal");
            dTempDecimal_11 = md_dTempDecimal_11.doubleValue();
        }
        dTempDecimal_12 = dTempDecimal_11 / 2;
        SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "InstGrantsAndScholarshipsFall",
                dTempDecimal_12);
        //:qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsFall4 = qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsTotal4 / 2
        {
            MutableDouble md_dTempDecimal_13 = new MutableDouble(dTempDecimal_13);
            GetDecimalFromAttribute(md_dTempDecimal_13, qFinAidA, "AwardLetterFederal",
                    "InstGrantsAndScholarshipsTotal4");
            dTempDecimal_13 = md_dTempDecimal_13.doubleValue();
        }
        dTempDecimal_14 = dTempDecimal_13 / 2;
        SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "InstGrantsAndScholarshipsFall4",
                dTempDecimal_14);
        //:qFinAidA.AwardLetterFederal.GrantsAndScholarshipsFall      = qFinAidA.AwardLetterFederal.GrantsAndScholarshipsTotal / 2
        {
            MutableDouble md_dTempDecimal_15 = new MutableDouble(dTempDecimal_15);
            GetDecimalFromAttribute(md_dTempDecimal_15, qFinAidA, "AwardLetterFederal",
                    "GrantsAndScholarshipsTotal");
            dTempDecimal_15 = md_dTempDecimal_15.doubleValue();
        }
        dTempDecimal_16 = dTempDecimal_15 / 2;
        SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "GrantsAndScholarshipsFall", dTempDecimal_16);
        //:qFinAidA.AwardLetterFederal.NetCostsFall                   = qFinAidA.AwardLetterFederal.NetCosts / 2
        {
            MutableDouble md_dTempDecimal_17 = new MutableDouble(dTempDecimal_17);
            GetDecimalFromAttribute(md_dTempDecimal_17, qFinAidA, "AwardLetterFederal", "NetCosts");
            dTempDecimal_17 = md_dTempDecimal_17.doubleValue();
        }
        dTempDecimal_18 = dTempDecimal_17 / 2;
        SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "NetCostsFall", dTempDecimal_18);
        //:qFinAidA.AwardLetterFederal.WorkOptionsFall                = qFinAidA.AwardLetterFederal.WorkOptionsTotal / 2
        {
            MutableDouble md_dTempDecimal_19 = new MutableDouble(dTempDecimal_19);
            GetDecimalFromAttribute(md_dTempDecimal_19, qFinAidA, "AwardLetterFederal", "WorkOptionsTotal");
            dTempDecimal_19 = md_dTempDecimal_19.doubleValue();
        }
        dTempDecimal_20 = dTempDecimal_19 / 2;
        SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "WorkOptionsFall", dTempDecimal_20);
        //:qFinAidA.AwardLetterFederal.LoanOptionsFall                = qFinAidA.AwardLetterFederal.LoanOptionsTotal / 2
        {
            MutableDouble md_dTempDecimal_21 = new MutableDouble(dTempDecimal_21);
            GetDecimalFromAttribute(md_dTempDecimal_21, qFinAidA, "AwardLetterFederal", "LoanOptionsTotal");
            dTempDecimal_21 = md_dTempDecimal_21.doubleValue();
        }
        dTempDecimal_22 = dTempDecimal_21 / 2;
        SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "LoanOptionsFall", dTempDecimal_22);
        //:qFinAidA.AwardLetterFederal.FinalNetCostsFall              = qFinAidA.AwardLetterFederal.FinalNetCosts / 2
        {
            MutableDouble md_dTempDecimal_23 = new MutableDouble(dTempDecimal_23);
            GetDecimalFromAttribute(md_dTempDecimal_23, qFinAidA, "AwardLetterFederal", "FinalNetCosts");
            dTempDecimal_23 = md_dTempDecimal_23.doubleValue();
        }
        dTempDecimal_24 = dTempDecimal_23 / 2;
        SetAttributeFromDecimal(qFinAidA, "AwardLetterFederal", "FinalNetCostsFall", dTempDecimal_24);

        //:// Then set Spring amounts from Fall amounts.
        //:qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsSpring  = qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsFall 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "InstGrantsAndScholarshipsSpring", qFinAidA,
                "AwardLetterFederal", "InstGrantsAndScholarshipsFall");
        //:qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsSpring4 = qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsFall4 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "InstGrantsAndScholarshipsSpring4", qFinAidA,
                "AwardLetterFederal", "InstGrantsAndScholarshipsFall4");
        //:qFinAidA.AwardLetterFederal.GrantsAndScholarshipsSpring      = qFinAidA.AwardLetterFederal.GrantsAndScholarshipsFall 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "GrantsAndScholarshipsSpring", qFinAidA,
                "AwardLetterFederal", "GrantsAndScholarshipsFall");
        //:qFinAidA.AwardLetterFederal.NetCostsSpring                   = qFinAidA.AwardLetterFederal.NetCostsFall
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "NetCostsSpring", qFinAidA,
                "AwardLetterFederal", "NetCostsFall");
        //:qFinAidA.AwardLetterFederal.WorkOptionsSpring                = qFinAidA.AwardLetterFederal.WorkOptionsFall 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "WorkOptionsSpring", qFinAidA,
                "AwardLetterFederal", "WorkOptionsFall");
        //:qFinAidA.AwardLetterFederal.LoanOptionsSpring                = qFinAidA.AwardLetterFederal.LoanOptionsFall 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "LoanOptionsSpring", qFinAidA,
                "AwardLetterFederal", "LoanOptionsFall");
        //:qFinAidA.AwardLetterFederal.FinalNetCostsSpring              = qFinAidA.AwardLetterFederal.FinalNetCostsFall
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "FinalNetCostsSpring", qFinAidA,
                "AwardLetterFederal", "FinalNetCostsFall");
        //:ELSE
    } else {
        //:// Only Fall amounts were specified.
        //:qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsFall  = qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsTotal 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "InstGrantsAndScholarshipsFall", qFinAidA,
                "AwardLetterFederal", "InstGrantsAndScholarshipsTotal");
        //:qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsFall4 = qFinAidA.AwardLetterFederal.InstGrantsAndScholarshipsTotal4 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "InstGrantsAndScholarshipsFall4", qFinAidA,
                "AwardLetterFederal", "InstGrantsAndScholarshipsTotal4");
        //:qFinAidA.AwardLetterFederal.GrantsAndScholarshipsFall      = qFinAidA.AwardLetterFederal.GrantsAndScholarshipsTotal 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "GrantsAndScholarshipsFall", qFinAidA,
                "AwardLetterFederal", "GrantsAndScholarshipsTotal");
        //:qFinAidA.AwardLetterFederal.NetCostsFall                   = qFinAidA.AwardLetterFederal.NetCosts 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "NetCostsFall", qFinAidA,
                "AwardLetterFederal", "NetCosts");
        //:qFinAidA.AwardLetterFederal.WorkOptionsFall                = qFinAidA.AwardLetterFederal.WorkOptionsTotal 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "WorkOptionsFall", qFinAidA,
                "AwardLetterFederal", "WorkOptionsTotal");
        //:qFinAidA.AwardLetterFederal.LoanOptionsFall                = qFinAidA.AwardLetterFederal.LoanOptionsTotal 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "LoanOptionsFall", qFinAidA,
                "AwardLetterFederal", "LoanOptionsTotal");
        //:qFinAidA.AwardLetterFederal.FinalNetCostsFall              = qFinAidA.AwardLetterFederal.FinalNetCosts 
        SetAttributeFromAttribute(qFinAidA, "AwardLetterFederal", "FinalNetCostsFall", qFinAidA,
                "AwardLetterFederal", "FinalNetCosts");
    }

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

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

public int GenerateFA_Awarded(View qFinAidA) {
    zVIEW mAdmDiv = new zVIEW();
    //:VIEW wXferO   REGISTERED AS wXferO
    zVIEW wXferO = new zVIEW();
    int RESULT = 0;
    //:VIEW mFAConst BASED ON LOD  mFAConst
    zVIEW mFAConst = new zVIEW();
    //:STRING ( 30 ) szString
    String szString = null;/*from   w w  w . ja v  a2  s.c o m*/
    //:STRING ( 8  ) LatestDate
    String LatestDate = null;
    //:STRING ( 254 ) szAwardValue
    String szAwardValue = null;
    //:STRING ( 254 ) szAwardValue3Term
    String szAwardValue3Term = null;
    //:STRING ( 254 ) szAwardValueTotal
    String szAwardValueTotal = null;
    //:STRING ( 10000 ) szFootnote
    String szFootnote = null;
    //:STRING ( 254 ) szAwardName
    String szAwardName = null;
    //:STRING ( 14 ) szFallAmount
    String szFallAmount = null;
    //:STRING ( 14 ) szSpringAmount
    String szSpringAmount = null;
    //:STRING ( 14 ) szSummerAmount
    String szSummerAmount = null;
    //:STRING ( 14 ) szAmount
    String szAmount = null;
    //:STRING ( 14 ) szFootnoteNumber
    String szFootnoteNumber = null;
    //:STRING ( 14 ) szSomeNumber
    String szSomeNumber = null;
    //:STRING ( 9 )  szCollegeYear
    String szCollegeYear = null;
    //:STRING ( 20 ) szCollegeTerm
    String szCollegeTerm = null;
    //:STRING ( 254 ) szCOAString
    String szCOAString = null;
    //:STRING ( 30 ) szCOAName
    String szCOAName = null;
    //:STRING ( 254 ) szCOANumber
    String szCOANumber = null;
    //:STRING ( 254 ) szMsg
    String szMsg = null;
    //:STRING ( 20 )  szAcceptedDeclinedText
    String szAcceptedDeclinedText = null;
    //:STRING ( 1 )   szClearedFlag
    String szClearedFlag = null;
    //:INTEGER nFNNumber
    int nFNNumber = 0;
    //:INTEGER nLen
    int nLen = 0;
    //:DECIMAL dParentStudentLoan
    double dParentStudentLoan = 0.0;
    //:DECIMAL dParentStudentLoanHalf
    double dParentStudentLoanHalf = 0.0;
    int lTempInteger_0 = 0;
    int lTempInteger_1 = 0;
    String szTempString_0 = null;
    double dTempDecimal_0 = 0.0;
    double dTempDecimal_1 = 0.0;
    double dTempDecimal_2 = 0.0;
    double dTempDecimal_3 = 0.0;
    double dTempDecimal_4 = 0.0;
    double dTempDecimal_5 = 0.0;
    double dTempDecimal_6 = 0.0;
    double dTempDecimal_7 = 0.0;
    double dTempDecimal_8 = 0.0;
    double dTempDecimal_9 = 0.0;
    double dTempDecimal_10 = 0.0;
    double dTempDecimal_11 = 0.0;
    int lTempInteger_2 = 0;
    int lTempInteger_3 = 0;
    int lTempInteger_4 = 0;
    String szTempString_1 = null;
    double dTempDecimal_12 = 0.0;
    double dTempDecimal_13 = 0.0;
    double dTempDecimal_14 = 0.0;
    double dTempDecimal_15 = 0.0;
    double dTempDecimal_16 = 0.0;
    double dTempDecimal_17 = 0.0;
    double dTempDecimal_18 = 0.0;
    double dTempDecimal_19 = 0.0;
    double dTempDecimal_20 = 0.0;
    double dTempDecimal_21 = 0.0;
    double dTempDecimal_22 = 0.0;
    double dTempDecimal_23 = 0.0;
    String szTempString_2 = null;
    double dTempDecimal_24 = 0.0;
    double dTempDecimal_25 = 0.0;
    double dTempDecimal_26 = 0.0;
    double dTempDecimal_27 = 0.0;
    double dTempDecimal_28 = 0.0;
    double dTempDecimal_29 = 0.0;
    double dTempDecimal_30 = 0.0;
    double dTempDecimal_31 = 0.0;
    double dTempDecimal_32 = 0.0;
    double dTempDecimal_33 = 0.0;
    double dTempDecimal_34 = 0.0;
    double dTempDecimal_35 = 0.0;
    String szTempString_3 = null;
    double dTempDecimal_36 = 0.0;
    double dTempDecimal_37 = 0.0;
    double dTempDecimal_38 = 0.0;
    double dTempDecimal_39 = 0.0;
    double dTempDecimal_40 = 0.0;
    double dTempDecimal_41 = 0.0;
    double dTempDecimal_42 = 0.0;
    double dTempDecimal_43 = 0.0;
    double dTempDecimal_44 = 0.0;
    double dTempDecimal_45 = 0.0;
    double dTempDecimal_46 = 0.0;
    double dTempDecimal_47 = 0.0;
    double dTempDecimal_48 = 0.0;
    double dTempDecimal_49 = 0.0;
    double dTempDecimal_50 = 0.0;
    double dTempDecimal_51 = 0.0;
    double dTempDecimal_52 = 0.0;
    double dTempDecimal_53 = 0.0;
    double dTempDecimal_54 = 0.0;
    double dTempDecimal_55 = 0.0;
    double dTempDecimal_56 = 0.0;
    double dTempDecimal_57 = 0.0;
    double dTempDecimal_58 = 0.0;
    double dTempDecimal_59 = 0.0;
    int lTempInteger_5 = 0;
    String szTempString_4 = null;
    String szTempString_5 = null;
    String szTempString_6 = null;
    int lTempInteger_6 = 0;
    int lTempInteger_7 = 0;
    double dTempDecimal_60 = 0.0;
    double dTempDecimal_61 = 0.0;
    double dTempDecimal_62 = 0.0;
    double dTempDecimal_63 = 0.0;
    double dTempDecimal_64 = 0.0;
    double dTempDecimal_65 = 0.0;
    double dTempDecimal_66 = 0.0;
    double dTempDecimal_67 = 0.0;
    double dTempDecimal_68 = 0.0;
    String szTempString_7 = null;
    double dTempDecimal_69 = 0.0;
    double dTempDecimal_70 = 0.0;
    double dTempDecimal_71 = 0.0;
    int lTempInteger_8 = 0;

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

    //:// Generate Fin Aid Awards work attributes for any object with the correct qFinAidA subobject structure
    //:// for formatting FA Requirements.

    //:nFNNumber = 0
    nFNNumber = 0;
    //:szFootnote = ""
    {
        StringBuilder sb_szFootnote;
        if (szFootnote == null)
            sb_szFootnote = new StringBuilder(32);
        else
            sb_szFootnote = new StringBuilder(szFootnote);
        ZeidonStringCopy(sb_szFootnote, 1, 0, "", 1, 0, 10001);
        szFootnote = sb_szFootnote.toString();
    }

    //:CREATE ENTITY qFinAidA.AwardLetters  
    RESULT = CreateEntity(qFinAidA, "AwardLetters", zPOS_AFTER);

    //:// Generate Awards as either awarded or declined.
    //:FOR EACH qFinAidA.FinAidAwardAssigned WHERE qFinAidA.FinAidAwardAssigned.AwardStatus != "I"
    RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardAssigned", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        if (CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "I") != 0) {

            //:// If the award is declined, create a FinAidDeclined entity instead.
            //:IF qFinAidA.FinAidAwardAssigned.AwardStatus = "N"
            if (CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "N") == 0) {

                //:// The Award IS declined.
                //:CREATE ENTITY qFinAidA.FinAidDeclined  
                RESULT = CreateEntity(qFinAidA, "FinAidDeclined", zPOS_AFTER);
                //:qFinAidA.FinAidDeclined.AwardName = qFinAidA.FinAidSource.Name
                SetAttributeFromAttribute(qFinAidA, "FinAidDeclined", "AwardName", qFinAidA, "FinAidSource",
                        "Name");
                //:qFinAidA.FinAidDeclined.Amount    = qFinAidA.FinAidAwardAssigned.Amount 
                SetAttributeFromAttribute(qFinAidA, "FinAidDeclined", "Amount", qFinAidA, "FinAidAwardAssigned",
                        "Amount");

                //:ELSE
            } else {

                //:// The Award is NOT declined.

                //:szAwardValue = ""
                {
                    StringBuilder sb_szAwardValue;
                    if (szAwardValue == null)
                        sb_szAwardValue = new StringBuilder(32);
                    else
                        sb_szAwardValue = new StringBuilder(szAwardValue);
                    ZeidonStringCopy(sb_szAwardValue, 1, 0, "", 1, 0, 255);
                    szAwardValue = sb_szAwardValue.toString();
                }
                //:szFallAmount = ""
                {
                    StringBuilder sb_szFallAmount;
                    if (szFallAmount == null)
                        sb_szFallAmount = new StringBuilder(32);
                    else
                        sb_szFallAmount = new StringBuilder(szFallAmount);
                    ZeidonStringCopy(sb_szFallAmount, 1, 0, "", 1, 0, 15);
                    szFallAmount = sb_szFallAmount.toString();
                }
                //:szSpringAmount = ""
                {
                    StringBuilder sb_szSpringAmount;
                    if (szSpringAmount == null)
                        sb_szSpringAmount = new StringBuilder(32);
                    else
                        sb_szSpringAmount = new StringBuilder(szSpringAmount);
                    ZeidonStringCopy(sb_szSpringAmount, 1, 0, "", 1, 0, 15);
                    szSpringAmount = sb_szSpringAmount.toString();
                }
                //:szSummerAmount = ""
                {
                    StringBuilder sb_szSummerAmount;
                    if (szSummerAmount == null)
                        sb_szSummerAmount = new StringBuilder(32);
                    else
                        sb_szSummerAmount = new StringBuilder(szSummerAmount);
                    ZeidonStringCopy(sb_szSummerAmount, 1, 0, "", 1, 0, 15);
                    szSummerAmount = sb_szSummerAmount.toString();
                }

                //:CREATE ENTITY qFinAidA.FinAidAwarded 
                RESULT = CreateEntity(qFinAidA, "FinAidAwarded", zPOS_AFTER);
                //:szAwardName = qFinAidA.FinAidSource.Name
                {
                    MutableInt mi_lTempInteger_0 = new MutableInt(lTempInteger_0);
                    StringBuilder sb_szAwardName;
                    if (szAwardName == null)
                        sb_szAwardName = new StringBuilder(32);
                    else
                        sb_szAwardName = new StringBuilder(szAwardName);
                    GetVariableFromAttribute(sb_szAwardName, mi_lTempInteger_0, 'S', 255, qFinAidA,
                            "FinAidSource", "Name", "", 0);
                    lTempInteger_0 = mi_lTempInteger_0.intValue();
                    szAwardName = sb_szAwardName.toString();
                }
                //:qFinAidA.FinAidAwarded.AwardName = szAwardName 
                SetAttributeFromString(qFinAidA, "FinAidAwarded", "AwardName", szAwardName);
                //:// We will not get the FinAidAwarded.Amount from the FinAidAwardAssigned.Amount, but instead
                //:// add the Disbursements below. This is because the FinAidAwarded entry could be divided between
                //:// Swapped and Stacked awards.
                //://qFinAidA.FinAidAwarded.Amount = qFinAidA.FinAidAwardAssigned.Amount 

                //:OrderEntityForView( qFinAidA, "PeriodTotals", "PeriodDesignator A" )
                OrderEntityForView(qFinAidA, "PeriodTotals", "PeriodDesignator A");
                //:SET CURSOR FIRST qFinAidA.PeriodTotals
                RESULT = SetCursorFirstEntity(qFinAidA, "PeriodTotals", "");

                //:// Compute totals for each Period and then set Fall and Spring values from those totals.
                //:FOR EACH qFinAidA.FinAidAwardDisbursement
                RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardDisbursement", "");
                while (RESULT > zCURSOR_UNCHANGED) {
                    //:// Don't include entries created by swapping. (SwappedFromDisbursement doesn't exist)
                    //:IF qFinAidA.SwappedFromDisbursement DOES NOT EXIST
                    lTempInteger_1 = CheckExistenceOfEntity(qFinAidA, "SwappedFromDisbursement");
                    if (lTempInteger_1 != 0) {
                        //:SET CURSOR FIRST qFinAidA.PeriodTotals 
                        //:        WHERE qFinAidA.PeriodTotals.PeriodDesignator = qFinAidA.FinAidAwardPeriod.PeriodDesignator  
                        {
                            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, qFinAidA, "FinAidAwardPeriod",
                                    "PeriodDesignator");
                            szTempString_0 = sb_szTempString_0.toString();
                        }
                        RESULT = SetCursorFirstEntityByString(qFinAidA, "PeriodTotals", "PeriodDesignator",
                                szTempString_0, "");
                        //:IF RESULT < zCURSOR_SET
                        if (RESULT < zCURSOR_SET) {
                            //:CREATE ENTITY qFinAidA.PeriodTotals 
                            RESULT = CreateEntity(qFinAidA, "PeriodTotals", zPOS_AFTER);
                            //:qFinAidA.PeriodTotals.PeriodDesignator = qFinAidA.FinAidAwardPeriod.PeriodDesignator   
                            SetAttributeFromAttribute(qFinAidA, "PeriodTotals", "PeriodDesignator", qFinAidA,
                                    "FinAidAwardPeriod", "PeriodDesignator");
                        }

                        //:END
                        //:// The TotalAmount for the Period must consider that parts of the Disbursement could be swapped to another Disbursement.
                        //:// In that case, we must go to that other Disbursement and add that Amount.
                        //:// We'll also total amounts for the Award in the same way.
                        //:qFinAidA.FinAidAwarded.Amount = qFinAidA.FinAidAwarded.Amount + qFinAidA.FinAidAwardDisbursement.AmountExpected
                        {
                            MutableDouble md_dTempDecimal_0 = new MutableDouble(dTempDecimal_0);
                            GetDecimalFromAttribute(md_dTempDecimal_0, qFinAidA, "FinAidAwarded", "Amount");
                            dTempDecimal_0 = md_dTempDecimal_0.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_1 = new MutableDouble(dTempDecimal_1);
                            GetDecimalFromAttribute(md_dTempDecimal_1, qFinAidA, "FinAidAwardDisbursement",
                                    "AmountExpected");
                            dTempDecimal_1 = md_dTempDecimal_1.doubleValue();
                        }
                        dTempDecimal_2 = dTempDecimal_0 + dTempDecimal_1;
                        SetAttributeFromDecimal(qFinAidA, "FinAidAwarded", "Amount", dTempDecimal_2);

                        //:qFinAidA.PeriodTotals.TotalAmount = qFinAidA.PeriodTotals.TotalAmount + 
                        //:                                 qFinAidA.FinAidAwardDisbursement.AmountExpected
                        {
                            MutableDouble md_dTempDecimal_3 = new MutableDouble(dTempDecimal_3);
                            GetDecimalFromAttribute(md_dTempDecimal_3, qFinAidA, "PeriodTotals", "TotalAmount");
                            dTempDecimal_3 = md_dTempDecimal_3.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_4 = new MutableDouble(dTempDecimal_4);
                            GetDecimalFromAttribute(md_dTempDecimal_4, qFinAidA, "FinAidAwardDisbursement",
                                    "AmountExpected");
                            dTempDecimal_4 = md_dTempDecimal_4.doubleValue();
                        }
                        dTempDecimal_5 = dTempDecimal_3 + dTempDecimal_4;
                        SetAttributeFromDecimal(qFinAidA, "PeriodTotals", "TotalAmount", dTempDecimal_5);
                        //:FOR EACH qFinAidA.SwappedToDisbursement 
                        RESULT = SetCursorFirstEntity(qFinAidA, "SwappedToDisbursement", "");
                        while (RESULT > zCURSOR_UNCHANGED) {
                            //:qFinAidA.FinAidAwarded.Amount = qFinAidA.FinAidAwarded.Amount +
                            //:                             qFinAidA.SwappedToDisbursement.AmountExpected
                            {
                                MutableDouble md_dTempDecimal_6 = new MutableDouble(dTempDecimal_6);
                                GetDecimalFromAttribute(md_dTempDecimal_6, qFinAidA, "FinAidAwarded", "Amount");
                                dTempDecimal_6 = md_dTempDecimal_6.doubleValue();
                            }
                            {
                                MutableDouble md_dTempDecimal_7 = new MutableDouble(dTempDecimal_7);
                                GetDecimalFromAttribute(md_dTempDecimal_7, qFinAidA, "SwappedToDisbursement",
                                        "AmountExpected");
                                dTempDecimal_7 = md_dTempDecimal_7.doubleValue();
                            }
                            dTempDecimal_8 = dTempDecimal_6 + dTempDecimal_7;
                            SetAttributeFromDecimal(qFinAidA, "FinAidAwarded", "Amount", dTempDecimal_8);
                            //:qFinAidA.PeriodTotals.TotalAmount = qFinAidA.PeriodTotals.TotalAmount + 
                            //:                                 qFinAidA.SwappedToDisbursement.AmountExpected 
                            {
                                MutableDouble md_dTempDecimal_9 = new MutableDouble(dTempDecimal_9);
                                GetDecimalFromAttribute(md_dTempDecimal_9, qFinAidA, "PeriodTotals",
                                        "TotalAmount");
                                dTempDecimal_9 = md_dTempDecimal_9.doubleValue();
                            }
                            {
                                MutableDouble md_dTempDecimal_10 = new MutableDouble(dTempDecimal_10);
                                GetDecimalFromAttribute(md_dTempDecimal_10, qFinAidA, "SwappedToDisbursement",
                                        "AmountExpected");
                                dTempDecimal_10 = md_dTempDecimal_10.doubleValue();
                            }
                            dTempDecimal_11 = dTempDecimal_9 + dTempDecimal_10;
                            SetAttributeFromDecimal(qFinAidA, "PeriodTotals", "TotalAmount", dTempDecimal_11);
                            RESULT = SetCursorNextEntity(qFinAidA, "SwappedToDisbursement", "");
                        }

                        //:END
                    }

                    RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardDisbursement", "");
                    //:END
                }

                //:END

                //:// Set Fall, Spring and Summer Totals.
                //:szCollegeYear = qFinAidA.CollegeYear.Year 
                {
                    MutableInt mi_lTempInteger_2 = new MutableInt(lTempInteger_2);
                    StringBuilder sb_szCollegeYear;
                    if (szCollegeYear == null)
                        sb_szCollegeYear = new StringBuilder(32);
                    else
                        sb_szCollegeYear = new StringBuilder(szCollegeYear);
                    GetVariableFromAttribute(sb_szCollegeYear, mi_lTempInteger_2, 'S', 10, qFinAidA,
                            "CollegeYear", "Year", "", 0);
                    lTempInteger_2 = mi_lTempInteger_2.intValue();
                    szCollegeYear = sb_szCollegeYear.toString();
                }

                //:// Fall
                //:szCollegeTerm = szCollegeYear + " Fall"
                {
                    StringBuilder sb_szCollegeTerm;
                    if (szCollegeTerm == null)
                        sb_szCollegeTerm = new StringBuilder(32);
                    else
                        sb_szCollegeTerm = new StringBuilder(szCollegeTerm);
                    ZeidonStringCopy(sb_szCollegeTerm, 1, 0, szCollegeYear, 1, 0, 21);
                    szCollegeTerm = sb_szCollegeTerm.toString();
                }
                {
                    StringBuilder sb_szCollegeTerm;
                    if (szCollegeTerm == null)
                        sb_szCollegeTerm = new StringBuilder(32);
                    else
                        sb_szCollegeTerm = new StringBuilder(szCollegeTerm);
                    ZeidonStringConcat(sb_szCollegeTerm, 1, 0, " Fall", 1, 0, 21);
                    szCollegeTerm = sb_szCollegeTerm.toString();
                }
                //:SET CURSOR FIRST qFinAidA.PeriodTotals WHERE qFinAidA.PeriodTotals.PeriodDesignator = szCollegeTerm
                RESULT = SetCursorFirstEntityByString(qFinAidA, "PeriodTotals", "PeriodDesignator",
                        szCollegeTerm, "");
                //:IF RESULT >= zCURSOR_SET
                if (RESULT >= zCURSOR_SET) {
                    //:// First Period is Fall.
                    //:qFinAidA.FinAidAwarded.FallAmount = qFinAidA.PeriodTotals.TotalAmount
                    SetAttributeFromAttribute(qFinAidA, "FinAidAwarded", "FallAmount", qFinAidA, "PeriodTotals",
                            "TotalAmount");
                    //:GetStringFromAttributeByContext( szSomeNumber, qFinAidA, "FinAidAwarded", "FallAmount", "Revenue",10)
                    {
                        StringBuilder sb_szSomeNumber;
                        if (szSomeNumber == null)
                            sb_szSomeNumber = new StringBuilder(32);
                        else
                            sb_szSomeNumber = new StringBuilder(szSomeNumber);
                        GetStringFromAttributeByContext(sb_szSomeNumber, qFinAidA, "FinAidAwarded",
                                "FallAmount", "Revenue", 10);
                        szSomeNumber = sb_szSomeNumber.toString();
                    }
                    //:nLen = zstrlen( szSomeNumber ) //szFallAmount
                    nLen = zstrlen(szSomeNumber);
                    //:ConvertToString10( qFinAidA, szSomeNumber, szFallAmount )
                    {
                        StringBuilder sb_szFallAmount;
                        if (szFallAmount == null)
                            sb_szFallAmount = new StringBuilder(32);
                        else
                            sb_szFallAmount = new StringBuilder(szFallAmount);
                        ConvertToString10(qFinAidA, szSomeNumber, sb_szFallAmount);
                        szFallAmount = sb_szFallAmount.toString();
                    }
                }

                //:END

                //:// Spring
                //:szCollegeTerm = szCollegeYear + " Spring"
                {
                    StringBuilder sb_szCollegeTerm;
                    if (szCollegeTerm == null)
                        sb_szCollegeTerm = new StringBuilder(32);
                    else
                        sb_szCollegeTerm = new StringBuilder(szCollegeTerm);
                    ZeidonStringCopy(sb_szCollegeTerm, 1, 0, szCollegeYear, 1, 0, 21);
                    szCollegeTerm = sb_szCollegeTerm.toString();
                }
                {
                    StringBuilder sb_szCollegeTerm;
                    if (szCollegeTerm == null)
                        sb_szCollegeTerm = new StringBuilder(32);
                    else
                        sb_szCollegeTerm = new StringBuilder(szCollegeTerm);
                    ZeidonStringConcat(sb_szCollegeTerm, 1, 0, " Spring", 1, 0, 21);
                    szCollegeTerm = sb_szCollegeTerm.toString();
                }
                //:SET CURSOR FIRST qFinAidA.PeriodTotals WHERE qFinAidA.PeriodTotals.PeriodDesignator = szCollegeTerm
                RESULT = SetCursorFirstEntityByString(qFinAidA, "PeriodTotals", "PeriodDesignator",
                        szCollegeTerm, "");
                //:IF RESULT >= zCURSOR_SET 
                if (RESULT >= zCURSOR_SET) {
                    //:// Second Period is Spring.
                    //:qFinAidA.FinAidAwarded.SpringAmount = qFinAidA.PeriodTotals.TotalAmount
                    SetAttributeFromAttribute(qFinAidA, "FinAidAwarded", "SpringAmount", qFinAidA,
                            "PeriodTotals", "TotalAmount");
                    //:GetStringFromAttributeByContext( szSomeNumber, qFinAidA, "FinAidAwarded", "SpringAmount", "Revenue",10)
                    {
                        StringBuilder sb_szSomeNumber;
                        if (szSomeNumber == null)
                            sb_szSomeNumber = new StringBuilder(32);
                        else
                            sb_szSomeNumber = new StringBuilder(szSomeNumber);
                        GetStringFromAttributeByContext(sb_szSomeNumber, qFinAidA, "FinAidAwarded",
                                "SpringAmount", "Revenue", 10);
                        szSomeNumber = sb_szSomeNumber.toString();
                    }
                    //:nLen = zstrlen( szSomeNumber ) //szSpringAmount
                    nLen = zstrlen(szSomeNumber);
                    //:ConvertToString10( qFinAidA, szSomeNumber, szSpringAmount )
                    {
                        StringBuilder sb_szSpringAmount;
                        if (szSpringAmount == null)
                            sb_szSpringAmount = new StringBuilder(32);
                        else
                            sb_szSpringAmount = new StringBuilder(szSpringAmount);
                        ConvertToString10(qFinAidA, szSomeNumber, sb_szSpringAmount);
                        szSpringAmount = sb_szSpringAmount.toString();
                    }
                }

                //:END

                //:// Summer
                //:szCollegeTerm = szCollegeYear + " Summer"
                {
                    StringBuilder sb_szCollegeTerm;
                    if (szCollegeTerm == null)
                        sb_szCollegeTerm = new StringBuilder(32);
                    else
                        sb_szCollegeTerm = new StringBuilder(szCollegeTerm);
                    ZeidonStringCopy(sb_szCollegeTerm, 1, 0, szCollegeYear, 1, 0, 21);
                    szCollegeTerm = sb_szCollegeTerm.toString();
                }
                {
                    StringBuilder sb_szCollegeTerm;
                    if (szCollegeTerm == null)
                        sb_szCollegeTerm = new StringBuilder(32);
                    else
                        sb_szCollegeTerm = new StringBuilder(szCollegeTerm);
                    ZeidonStringConcat(sb_szCollegeTerm, 1, 0, " Summer", 1, 0, 21);
                    szCollegeTerm = sb_szCollegeTerm.toString();
                }
                //:SET CURSOR FIRST qFinAidA.PeriodTotals WHERE qFinAidA.PeriodTotals.PeriodDesignator = szCollegeTerm
                RESULT = SetCursorFirstEntityByString(qFinAidA, "PeriodTotals", "PeriodDesignator",
                        szCollegeTerm, "");
                //:IF RESULT >= zCURSOR_SET 
                if (RESULT >= zCURSOR_SET) {
                    //:// Third Period is Summer.
                    //:qFinAidA.FinAidAwarded.SummerAmount = qFinAidA.PeriodTotals.TotalAmount
                    SetAttributeFromAttribute(qFinAidA, "FinAidAwarded", "SummerAmount", qFinAidA,
                            "PeriodTotals", "TotalAmount");
                    //:GetStringFromAttributeByContext( szSomeNumber, qFinAidA, "FinAidAwarded", "SummerAmount", "Revenue",10)
                    {
                        StringBuilder sb_szSomeNumber;
                        if (szSomeNumber == null)
                            sb_szSomeNumber = new StringBuilder(32);
                        else
                            sb_szSomeNumber = new StringBuilder(szSomeNumber);
                        GetStringFromAttributeByContext(sb_szSomeNumber, qFinAidA, "FinAidAwarded",
                                "SummerAmount", "Revenue", 10);
                        szSomeNumber = sb_szSomeNumber.toString();
                    }
                    //:nLen = zstrlen( szSomeNumber ) //szSummerAmount
                    nLen = zstrlen(szSomeNumber);
                    //:ConvertToString10( qFinAidA, szSomeNumber, szSummerAmount )
                    {
                        StringBuilder sb_szSummerAmount;
                        if (szSummerAmount == null)
                            sb_szSummerAmount = new StringBuilder(32);
                        else
                            sb_szSummerAmount = new StringBuilder(szSummerAmount);
                        ConvertToString10(qFinAidA, szSomeNumber, sb_szSummerAmount);
                        szSummerAmount = sb_szSummerAmount.toString();
                    }
                }

                //:END
                //:OrderEntityForView( qFinAidA, "PeriodTotals", "PeriodDesignator A" )
                OrderEntityForView(qFinAidA, "PeriodTotals", "PeriodDesignator A");

                //:// Build Award Groups by Federal Aid, Institutional Aid and Other Aid.
                //:// Don't Add if the entry has been swapped.
                //:IF qFinAidA.SwappedFromDisbursement DOES NOT EXIST
                lTempInteger_3 = CheckExistenceOfEntity(qFinAidA, "SwappedFromDisbursement");
                if (lTempInteger_3 != 0) {

                    //:// Covert Amount to string.
                    //:GetStringFromAttributeByContext( szSomeNumber, qFinAidA, "FinAidAwarded", "Amount", "Revenue",10)
                    {
                        StringBuilder sb_szSomeNumber;
                        if (szSomeNumber == null)
                            sb_szSomeNumber = new StringBuilder(32);
                        else
                            sb_szSomeNumber = new StringBuilder(szSomeNumber);
                        GetStringFromAttributeByContext(sb_szSomeNumber, qFinAidA, "FinAidAwarded", "Amount",
                                "Revenue", 10);
                        szSomeNumber = sb_szSomeNumber.toString();
                    }
                    //:nLen = zstrlen( szSomeNumber ) //szAmount
                    nLen = zstrlen(szSomeNumber);
                    //:ConvertToString10( qFinAidA, szSomeNumber, szAmount )
                    {
                        StringBuilder sb_szAmount;
                        if (szAmount == null)
                            sb_szAmount = new StringBuilder(32);
                        else
                            sb_szAmount = new StringBuilder(szAmount);
                        ConvertToString10(qFinAidA, szSomeNumber, sb_szAmount);
                        szAmount = sb_szAmount.toString();
                    }

                    //:szFootnote = qFinAidA.FinAidSource.SourceFootnote
                    {
                        MutableInt mi_lTempInteger_4 = new MutableInt(lTempInteger_4);
                        StringBuilder sb_szFootnote;
                        if (szFootnote == null)
                            sb_szFootnote = new StringBuilder(32);
                        else
                            sb_szFootnote = new StringBuilder(szFootnote);
                        GetVariableFromAttribute(sb_szFootnote, mi_lTempInteger_4, 'S', 10001, qFinAidA,
                                "FinAidSource", "SourceFootnote", "", 0);
                        lTempInteger_4 = mi_lTempInteger_4.intValue();
                        szFootnote = sb_szFootnote.toString();
                    }
                    //:// The following 3 lines were deleted by DonC on 4/14/2010 because it wasn't clear what they did or how we were positioned on mAdmDiv.
                    //://IF qFinAidA.ReceivedItems EXISTS AND mAdmDiv.FA_FinAidRequirement EXISTS ???
                    //://   qFinAidA.ReceivedItems.Description = mAdmDiv.FA_FinAidRequirement.Name ???
                    //://END
                    //:IF szFootnote != ""
                    if (ZeidonStringCompare(szFootnote, 1, 0, "", 1, 0, 10001) != 0) {
                        //:nFNNumber = nFNNumber + 1
                        nFNNumber = nFNNumber + 1;
                        //:zIntegerToString( szFootnoteNumber, 10, nFNNumber )
                        {
                            StringBuilder sb_szFootnoteNumber;
                            if (szFootnoteNumber == null)
                                sb_szFootnoteNumber = new StringBuilder(32);
                            else
                                sb_szFootnoteNumber = new StringBuilder(szFootnoteNumber);
                            zIntegerToString(sb_szFootnoteNumber, 10, nFNNumber);
                            szFootnoteNumber = sb_szFootnoteNumber.toString();
                        }
                        //:szAwardName = szAwardName + "* " + szFootnoteNumber
                        {
                            StringBuilder sb_szAwardName;
                            if (szAwardName == null)
                                sb_szAwardName = new StringBuilder(32);
                            else
                                sb_szAwardName = new StringBuilder(szAwardName);
                            ZeidonStringConcat(sb_szAwardName, 1, 0, "* ", 1, 0, 255);
                            szAwardName = sb_szAwardName.toString();
                        }
                        {
                            StringBuilder sb_szAwardName;
                            if (szAwardName == null)
                                sb_szAwardName = new StringBuilder(32);
                            else
                                sb_szAwardName = new StringBuilder(szAwardName);
                            ZeidonStringConcat(sb_szAwardName, 1, 0, szFootnoteNumber, 1, 0, 255);
                            szAwardName = sb_szAwardName.toString();
                        }
                        //:qFinAidA.FinAidAwarded.AwardName = szAwardName 
                        SetAttributeFromString(qFinAidA, "FinAidAwarded", "AwardName", szAwardName);
                        //:CREATE ENTITY qFinAidA.Footnote
                        RESULT = CreateEntity(qFinAidA, "Footnote", zPOS_AFTER);
                        //:qFinAidA.Footnote.SourceFootnote = szFootnoteNumber + ": " + szFootnote
                        {
                            StringBuilder sb_szTempString_1;
                            if (szTempString_1 == null)
                                sb_szTempString_1 = new StringBuilder(32);
                            else
                                sb_szTempString_1 = new StringBuilder(szTempString_1);
                            ZeidonStringCopy(sb_szTempString_1, 1, 0, szFootnoteNumber, 1, 0, 10001);
                            szTempString_1 = sb_szTempString_1.toString();
                        }
                        {
                            StringBuilder sb_szTempString_1;
                            if (szTempString_1 == null)
                                sb_szTempString_1 = new StringBuilder(32);
                            else
                                sb_szTempString_1 = new StringBuilder(szTempString_1);
                            ZeidonStringConcat(sb_szTempString_1, 1, 0, ": ", 1, 0, 10001);
                            szTempString_1 = sb_szTempString_1.toString();
                        }
                        {
                            StringBuilder sb_szTempString_1;
                            if (szTempString_1 == null)
                                sb_szTempString_1 = new StringBuilder(32);
                            else
                                sb_szTempString_1 = new StringBuilder(szTempString_1);
                            ZeidonStringConcat(sb_szTempString_1, 1, 0, szFootnote, 1, 0, 10001);
                            szTempString_1 = sb_szTempString_1.toString();
                        }
                        SetAttributeFromString(qFinAidA, "Footnote", "SourceFootnote", szTempString_1);
                        //:qFinAidA.Footnote.AwardName = qFinAidA.FinAidAwarded.AwardName  
                        SetAttributeFromAttribute(qFinAidA, "Footnote", "AwardName", qFinAidA, "FinAidAwarded",
                                "AwardName");
                        //:szFootnote = ""
                        {
                            StringBuilder sb_szFootnote;
                            if (szFootnote == null)
                                sb_szFootnote = new StringBuilder(32);
                            else
                                sb_szFootnote = new StringBuilder(szFootnote);
                            ZeidonStringCopy(sb_szFootnote, 1, 0, "", 1, 0, 10001);
                            szFootnote = sb_szFootnote.toString();
                        }
                    }

                    //:END
                    //:szAwardValue      = qFinAidA.FinAidAwarded.AwardName + zTAB + szFallAmount + zTAB + szSpringAmount + zTAB + szAmount 
                    {
                        StringBuilder sb_szAwardValue;
                        if (szAwardValue == null)
                            sb_szAwardValue = new StringBuilder(32);
                        else
                            sb_szAwardValue = new StringBuilder(szAwardValue);
                        GetStringFromAttribute(sb_szAwardValue, qFinAidA, "FinAidAwarded", "AwardName");
                        szAwardValue = sb_szAwardValue.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue;
                        if (szAwardValue == null)
                            sb_szAwardValue = new StringBuilder(32);
                        else
                            sb_szAwardValue = new StringBuilder(szAwardValue);
                        ZeidonStringConcat(sb_szAwardValue, 1, 0, zTAB, 1, 0, 255);
                        szAwardValue = sb_szAwardValue.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue;
                        if (szAwardValue == null)
                            sb_szAwardValue = new StringBuilder(32);
                        else
                            sb_szAwardValue = new StringBuilder(szAwardValue);
                        ZeidonStringConcat(sb_szAwardValue, 1, 0, szFallAmount, 1, 0, 255);
                        szAwardValue = sb_szAwardValue.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue;
                        if (szAwardValue == null)
                            sb_szAwardValue = new StringBuilder(32);
                        else
                            sb_szAwardValue = new StringBuilder(szAwardValue);
                        ZeidonStringConcat(sb_szAwardValue, 1, 0, zTAB, 1, 0, 255);
                        szAwardValue = sb_szAwardValue.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue;
                        if (szAwardValue == null)
                            sb_szAwardValue = new StringBuilder(32);
                        else
                            sb_szAwardValue = new StringBuilder(szAwardValue);
                        ZeidonStringConcat(sb_szAwardValue, 1, 0, szSpringAmount, 1, 0, 255);
                        szAwardValue = sb_szAwardValue.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue;
                        if (szAwardValue == null)
                            sb_szAwardValue = new StringBuilder(32);
                        else
                            sb_szAwardValue = new StringBuilder(szAwardValue);
                        ZeidonStringConcat(sb_szAwardValue, 1, 0, zTAB, 1, 0, 255);
                        szAwardValue = sb_szAwardValue.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue;
                        if (szAwardValue == null)
                            sb_szAwardValue = new StringBuilder(32);
                        else
                            sb_szAwardValue = new StringBuilder(szAwardValue);
                        ZeidonStringConcat(sb_szAwardValue, 1, 0, szAmount, 1, 0, 255);
                        szAwardValue = sb_szAwardValue.toString();
                    }
                    //:szAwardValue3Term = qFinAidA.FinAidAwarded.AwardName + zTAB + szFallAmount + zTAB + szSpringAmount + zTAB + szSummerAmount + zTAB + szAmount 
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        GetStringFromAttribute(sb_szAwardValue3Term, qFinAidA, "FinAidAwarded", "AwardName");
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        ZeidonStringConcat(sb_szAwardValue3Term, 1, 0, zTAB, 1, 0, 255);
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        ZeidonStringConcat(sb_szAwardValue3Term, 1, 0, szFallAmount, 1, 0, 255);
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        ZeidonStringConcat(sb_szAwardValue3Term, 1, 0, zTAB, 1, 0, 255);
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        ZeidonStringConcat(sb_szAwardValue3Term, 1, 0, szSpringAmount, 1, 0, 255);
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        ZeidonStringConcat(sb_szAwardValue3Term, 1, 0, zTAB, 1, 0, 255);
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        ZeidonStringConcat(sb_szAwardValue3Term, 1, 0, szSummerAmount, 1, 0, 255);
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        ZeidonStringConcat(sb_szAwardValue3Term, 1, 0, zTAB, 1, 0, 255);
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    {
                        StringBuilder sb_szAwardValue3Term;
                        if (szAwardValue3Term == null)
                            sb_szAwardValue3Term = new StringBuilder(32);
                        else
                            sb_szAwardValue3Term = new StringBuilder(szAwardValue3Term);
                        ZeidonStringConcat(sb_szAwardValue3Term, 1, 0, szAmount, 1, 0, 255);
                        szAwardValue3Term = sb_szAwardValue3Term.toString();
                    }
                    //:szAwardValueTotal = qFinAidA.FinAidAwarded.AwardName + zTAB + szAmount 
                    {
                        StringBuilder sb_szAwardValueTotal;
                        if (szAwardValueTotal == null)
                            sb_szAwardValueTotal = new StringBuilder(32);
                        else
                            sb_szAwardValueTotal = new StringBuilder(szAwardValueTotal);
                        GetStringFromAttribute(sb_szAwardValueTotal, qFinAidA, "FinAidAwarded", "AwardName");
                        szAwardValueTotal = sb_szAwardValueTotal.toString();
                    }
                    {
                        StringBuilder sb_szAwardValueTotal;
                        if (szAwardValueTotal == null)
                            sb_szAwardValueTotal = new StringBuilder(32);
                        else
                            sb_szAwardValueTotal = new StringBuilder(szAwardValueTotal);
                        ZeidonStringConcat(sb_szAwardValueTotal, 1, 0, zTAB, 1, 0, 255);
                        szAwardValueTotal = sb_szAwardValueTotal.toString();
                    }
                    {
                        StringBuilder sb_szAwardValueTotal;
                        if (szAwardValueTotal == null)
                            sb_szAwardValueTotal = new StringBuilder(32);
                        else
                            sb_szAwardValueTotal = new StringBuilder(szAwardValueTotal);
                        ZeidonStringConcat(sb_szAwardValueTotal, 1, 0, szAmount, 1, 0, 255);
                        szAwardValueTotal = sb_szAwardValueTotal.toString();
                    }

                    //:/*IF qFinAidA.FinAidAwardAssigned.AwardStatus = "Y"
                    //:szAcceptedDeclinedText = "Accepted"
                    //:ELSE
                    //:IF qFinAidA.FinAidAwardAssigned.AwardStatus = "N" 
                    //:   szAcceptedDeclinedText = "         Declined"
                    //:ELSE
                    //:   szAcceptedDeclinedText = "_______  _______"
                    //:END
                    //:END*/
                    //:IF qFinAidA.FinAidSource.Provider = "G"
                    if (CompareAttributeToString(qFinAidA, "FinAidSource", "Provider", "G") == 0) {
                        //:CREATE ENTITY qFinAidA.FederalAidGroup 
                        RESULT = CreateEntity(qFinAidA, "FederalAidGroup", zPOS_AFTER);
                        //:SetMatchingAttributesByName( qFinAidA, "FederalAidGroup", qFinAidA, "FinAidAwarded", zSET_ALL )
                        SetMatchingAttributesByName(qFinAidA, "FederalAidGroup", qFinAidA, "FinAidAwarded",
                                zSET_ALL);
                        //:qFinAidA.FederalAidGroup.AwardValue = szAwardValue + zTAB + szAcceptedDeclinedText
                        {
                            StringBuilder sb_szTempString_0;
                            if (szTempString_0 == null)
                                sb_szTempString_0 = new StringBuilder(32);
                            else
                                sb_szTempString_0 = new StringBuilder(szTempString_0);
                            ZeidonStringCopy(sb_szTempString_0, 1, 0, szAwardValue, 1, 0, 255);
                            szTempString_0 = sb_szTempString_0.toString();
                        }
                        {
                            StringBuilder sb_szTempString_0;
                            if (szTempString_0 == null)
                                sb_szTempString_0 = new StringBuilder(32);
                            else
                                sb_szTempString_0 = new StringBuilder(szTempString_0);
                            ZeidonStringConcat(sb_szTempString_0, 1, 0, zTAB, 1, 0, 255);
                            szTempString_0 = sb_szTempString_0.toString();
                        }
                        {
                            StringBuilder sb_szTempString_0;
                            if (szTempString_0 == null)
                                sb_szTempString_0 = new StringBuilder(32);
                            else
                                sb_szTempString_0 = new StringBuilder(szTempString_0);
                            ZeidonStringConcat(sb_szTempString_0, 1, 0, szAcceptedDeclinedText, 1, 0, 255);
                            szTempString_0 = sb_szTempString_0.toString();
                        }
                        SetAttributeFromString(qFinAidA, "FederalAidGroup", "AwardValue", szTempString_0);
                        //:qFinAidA.AwardLetters.FederalAidGroupTotal    = qFinAidA.AwardLetters.FederalAidGroupTotal  + qFinAidA.FinAidAwarded.Amount 
                        {
                            MutableDouble md_dTempDecimal_12 = new MutableDouble(dTempDecimal_12);
                            GetDecimalFromAttribute(md_dTempDecimal_12, qFinAidA, "AwardLetters",
                                    "FederalAidGroupTotal");
                            dTempDecimal_12 = md_dTempDecimal_12.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_13 = new MutableDouble(dTempDecimal_13);
                            GetDecimalFromAttribute(md_dTempDecimal_13, qFinAidA, "FinAidAwarded", "Amount");
                            dTempDecimal_13 = md_dTempDecimal_13.doubleValue();
                        }
                        dTempDecimal_14 = dTempDecimal_12 + dTempDecimal_13;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "FederalAidGroupTotal",
                                dTempDecimal_14);
                        //:qFinAidA.AwardLetters.FederalAidSpringTotal   = qFinAidA.AwardLetters.FederalAidSpringTotal + qFinAidA.FederalAidGroup.SpringAmount 
                        {
                            MutableDouble md_dTempDecimal_15 = new MutableDouble(dTempDecimal_15);
                            GetDecimalFromAttribute(md_dTempDecimal_15, qFinAidA, "AwardLetters",
                                    "FederalAidSpringTotal");
                            dTempDecimal_15 = md_dTempDecimal_15.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_16 = new MutableDouble(dTempDecimal_16);
                            GetDecimalFromAttribute(md_dTempDecimal_16, qFinAidA, "FederalAidGroup",
                                    "SpringAmount");
                            dTempDecimal_16 = md_dTempDecimal_16.doubleValue();
                        }
                        dTempDecimal_17 = dTempDecimal_15 + dTempDecimal_16;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "FederalAidSpringTotal",
                                dTempDecimal_17);
                        //:qFinAidA.AwardLetters.FederalAidFallTotal     = qFinAidA.AwardLetters.FederalAidFallTotal   + qFinAidA.FederalAidGroup.FallAmount 
                        {
                            MutableDouble md_dTempDecimal_18 = new MutableDouble(dTempDecimal_18);
                            GetDecimalFromAttribute(md_dTempDecimal_18, qFinAidA, "AwardLetters",
                                    "FederalAidFallTotal");
                            dTempDecimal_18 = md_dTempDecimal_18.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_19 = new MutableDouble(dTempDecimal_19);
                            GetDecimalFromAttribute(md_dTempDecimal_19, qFinAidA, "FederalAidGroup",
                                    "FallAmount");
                            dTempDecimal_19 = md_dTempDecimal_19.doubleValue();
                        }
                        dTempDecimal_20 = dTempDecimal_18 + dTempDecimal_19;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "FederalAidFallTotal",
                                dTempDecimal_20);
                        //:qFinAidA.AwardLetters.FederalAidSummerTotal   = qFinAidA.AwardLetters.FederalAidSummerTotal + qFinAidA.FederalAidGroup.SummerAmount 
                        {
                            MutableDouble md_dTempDecimal_21 = new MutableDouble(dTempDecimal_21);
                            GetDecimalFromAttribute(md_dTempDecimal_21, qFinAidA, "AwardLetters",
                                    "FederalAidSummerTotal");
                            dTempDecimal_21 = md_dTempDecimal_21.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_22 = new MutableDouble(dTempDecimal_22);
                            GetDecimalFromAttribute(md_dTempDecimal_22, qFinAidA, "FederalAidGroup",
                                    "SummerAmount");
                            dTempDecimal_22 = md_dTempDecimal_22.doubleValue();
                        }
                        dTempDecimal_23 = dTempDecimal_21 + dTempDecimal_22;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "FederalAidSummerTotal",
                                dTempDecimal_23);
                        //:qFinAidA.FederalAidGroup.AcceptedDeclinedText = szAcceptedDeclinedText
                        SetAttributeFromString(qFinAidA, "FederalAidGroup", "AcceptedDeclinedText",
                                szAcceptedDeclinedText);
                        //://fnFormatTextTabData( qFinAidA, "FederalAidGroup" )

                        //:// Also create GovernmentAuditAward, if the status is Accepted or Awarded.
                        //:IF qFinAidA.FinAidAwardAssigned.AwardStatus = "A" OR qFinAidA.FinAidAwardAssigned.AwardStatus = "Y"
                        if (CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "A") == 0
                                || CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus",
                                        "Y") == 0) {
                            //:CREATE ENTITY qFinAidA.GovernmentAuditAwarded
                            RESULT = CreateEntity(qFinAidA, "GovernmentAuditAwarded", zPOS_AFTER);
                            //:qFinAidA.GovernmentAuditAwarded.AwardName = qFinAidA.FinAidAwarded.AwardName 
                            SetAttributeFromAttribute(qFinAidA, "GovernmentAuditAwarded", "AwardName", qFinAidA,
                                    "FinAidAwarded", "AwardName");
                            //:qFinAidA.GovernmentAuditAwarded.Amount    = qFinAidA.FinAidAwarded.Amount 
                            SetAttributeFromAttribute(qFinAidA, "GovernmentAuditAwarded", "Amount", qFinAidA,
                                    "FinAidAwarded", "Amount");
                        }

                        //:END
                    }

                    //:END
                    //:IF qFinAidA.FinAidSource.Provider = "I" 
                    if (CompareAttributeToString(qFinAidA, "FinAidSource", "Provider", "I") == 0) {
                        //:CREATE ENTITY qFinAidA.InstitutionalAidGroup 
                        RESULT = CreateEntity(qFinAidA, "InstitutionalAidGroup", zPOS_AFTER);
                        //:SetMatchingAttributesByName( qFinAidA, "InstitutionalAidGroup", qFinAidA, "FinAidAwarded", zSET_ALL ) 
                        SetMatchingAttributesByName(qFinAidA, "InstitutionalAidGroup", qFinAidA,
                                "FinAidAwarded", zSET_ALL);
                        //:qFinAidA.InstitutionalAidGroup.AwardValue = szAwardValue + zTAB + szAcceptedDeclinedText
                        {
                            StringBuilder sb_szTempString_2;
                            if (szTempString_2 == null)
                                sb_szTempString_2 = new StringBuilder(32);
                            else
                                sb_szTempString_2 = new StringBuilder(szTempString_2);
                            ZeidonStringCopy(sb_szTempString_2, 1, 0, szAwardValue, 1, 0, 255);
                            szTempString_2 = sb_szTempString_2.toString();
                        }
                        {
                            StringBuilder sb_szTempString_2;
                            if (szTempString_2 == null)
                                sb_szTempString_2 = new StringBuilder(32);
                            else
                                sb_szTempString_2 = new StringBuilder(szTempString_2);
                            ZeidonStringConcat(sb_szTempString_2, 1, 0, zTAB, 1, 0, 255);
                            szTempString_2 = sb_szTempString_2.toString();
                        }
                        {
                            StringBuilder sb_szTempString_2;
                            if (szTempString_2 == null)
                                sb_szTempString_2 = new StringBuilder(32);
                            else
                                sb_szTempString_2 = new StringBuilder(szTempString_2);
                            ZeidonStringConcat(sb_szTempString_2, 1, 0, szAcceptedDeclinedText, 1, 0, 255);
                            szTempString_2 = sb_szTempString_2.toString();
                        }
                        SetAttributeFromString(qFinAidA, "InstitutionalAidGroup", "AwardValue", szTempString_2);
                        //:qFinAidA.AwardLetters.InstitutionalAidGroupTotal    = qFinAidA.AwardLetters.InstitutionalAidGroupTotal  + qFinAidA.FinAidAwarded.Amount 
                        {
                            MutableDouble md_dTempDecimal_24 = new MutableDouble(dTempDecimal_24);
                            GetDecimalFromAttribute(md_dTempDecimal_24, qFinAidA, "AwardLetters",
                                    "InstitutionalAidGroupTotal");
                            dTempDecimal_24 = md_dTempDecimal_24.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_25 = new MutableDouble(dTempDecimal_25);
                            GetDecimalFromAttribute(md_dTempDecimal_25, qFinAidA, "FinAidAwarded", "Amount");
                            dTempDecimal_25 = md_dTempDecimal_25.doubleValue();
                        }
                        dTempDecimal_26 = dTempDecimal_24 + dTempDecimal_25;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "InstitutionalAidGroupTotal",
                                dTempDecimal_26);
                        //:qFinAidA.AwardLetters.InstitutionalAidSpringTotal   = qFinAidA.AwardLetters.InstitutionalAidSpringTotal + qFinAidA.InstitutionalAidGroup.SpringAmount 
                        {
                            MutableDouble md_dTempDecimal_27 = new MutableDouble(dTempDecimal_27);
                            GetDecimalFromAttribute(md_dTempDecimal_27, qFinAidA, "AwardLetters",
                                    "InstitutionalAidSpringTotal");
                            dTempDecimal_27 = md_dTempDecimal_27.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_28 = new MutableDouble(dTempDecimal_28);
                            GetDecimalFromAttribute(md_dTempDecimal_28, qFinAidA, "InstitutionalAidGroup",
                                    "SpringAmount");
                            dTempDecimal_28 = md_dTempDecimal_28.doubleValue();
                        }
                        dTempDecimal_29 = dTempDecimal_27 + dTempDecimal_28;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "InstitutionalAidSpringTotal",
                                dTempDecimal_29);
                        //:qFinAidA.AwardLetters.InstitutionalAidFallTotal     = qFinAidA.AwardLetters.InstitutionalAidFallTotal   + qFinAidA.InstitutionalAidGroup.FallAmount 
                        {
                            MutableDouble md_dTempDecimal_30 = new MutableDouble(dTempDecimal_30);
                            GetDecimalFromAttribute(md_dTempDecimal_30, qFinAidA, "AwardLetters",
                                    "InstitutionalAidFallTotal");
                            dTempDecimal_30 = md_dTempDecimal_30.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_31 = new MutableDouble(dTempDecimal_31);
                            GetDecimalFromAttribute(md_dTempDecimal_31, qFinAidA, "InstitutionalAidGroup",
                                    "FallAmount");
                            dTempDecimal_31 = md_dTempDecimal_31.doubleValue();
                        }
                        dTempDecimal_32 = dTempDecimal_30 + dTempDecimal_31;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "InstitutionalAidFallTotal",
                                dTempDecimal_32);
                        //:qFinAidA.AwardLetters.InstitutionalAidSummerTotal   = qFinAidA.AwardLetters.InstitutionalAidSummerTotal + qFinAidA.InstitutionalAidGroup.SummerAmount
                        {
                            MutableDouble md_dTempDecimal_33 = new MutableDouble(dTempDecimal_33);
                            GetDecimalFromAttribute(md_dTempDecimal_33, qFinAidA, "AwardLetters",
                                    "InstitutionalAidSummerTotal");
                            dTempDecimal_33 = md_dTempDecimal_33.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_34 = new MutableDouble(dTempDecimal_34);
                            GetDecimalFromAttribute(md_dTempDecimal_34, qFinAidA, "InstitutionalAidGroup",
                                    "SummerAmount");
                            dTempDecimal_34 = md_dTempDecimal_34.doubleValue();
                        }
                        dTempDecimal_35 = dTempDecimal_33 + dTempDecimal_34;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "InstitutionalAidSummerTotal",
                                dTempDecimal_35);
                        //:qFinAidA.InstitutionalAidGroup.AcceptedDeclinedText = szAcceptedDeclinedText
                        SetAttributeFromString(qFinAidA, "InstitutionalAidGroup", "AcceptedDeclinedText",
                                szAcceptedDeclinedText);
                    }

                    //://fnFormatTextTabData( qFinAidA, "InstitutionalAidGroup" )
                    //:END
                    //:IF qFinAidA.FinAidSource.Provider = "O" 
                    if (CompareAttributeToString(qFinAidA, "FinAidSource", "Provider", "O") == 0) {
                        //:CREATE ENTITY qFinAidA.OtherAidGroup 
                        RESULT = CreateEntity(qFinAidA, "OtherAidGroup", zPOS_AFTER);
                        //:SetMatchingAttributesByName( qFinAidA, "OtherAidGroup", qFinAidA, "FinAidAwarded", zSET_ALL ) 
                        SetMatchingAttributesByName(qFinAidA, "OtherAidGroup", qFinAidA, "FinAidAwarded",
                                zSET_ALL);
                        //:qFinAidA.OtherAidGroup.AwardValue           = szAwardValue + zTAB + szAcceptedDeclinedText
                        {
                            StringBuilder sb_szTempString_3;
                            if (szTempString_3 == null)
                                sb_szTempString_3 = new StringBuilder(32);
                            else
                                sb_szTempString_3 = new StringBuilder(szTempString_3);
                            ZeidonStringCopy(sb_szTempString_3, 1, 0, szAwardValue, 1, 0, 255);
                            szTempString_3 = sb_szTempString_3.toString();
                        }
                        {
                            StringBuilder sb_szTempString_3;
                            if (szTempString_3 == null)
                                sb_szTempString_3 = new StringBuilder(32);
                            else
                                sb_szTempString_3 = new StringBuilder(szTempString_3);
                            ZeidonStringConcat(sb_szTempString_3, 1, 0, zTAB, 1, 0, 255);
                            szTempString_3 = sb_szTempString_3.toString();
                        }
                        {
                            StringBuilder sb_szTempString_3;
                            if (szTempString_3 == null)
                                sb_szTempString_3 = new StringBuilder(32);
                            else
                                sb_szTempString_3 = new StringBuilder(szTempString_3);
                            ZeidonStringConcat(sb_szTempString_3, 1, 0, szAcceptedDeclinedText, 1, 0, 255);
                            szTempString_3 = sb_szTempString_3.toString();
                        }
                        SetAttributeFromString(qFinAidA, "OtherAidGroup", "AwardValue", szTempString_3);
                        //:qFinAidA.AwardLetters.OtherAidGroupTotal    = qFinAidA.AwardLetters.OtherAidGroupTotal  + qFinAidA.FinAidAwarded.Amount 
                        {
                            MutableDouble md_dTempDecimal_36 = new MutableDouble(dTempDecimal_36);
                            GetDecimalFromAttribute(md_dTempDecimal_36, qFinAidA, "AwardLetters",
                                    "OtherAidGroupTotal");
                            dTempDecimal_36 = md_dTempDecimal_36.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_37 = new MutableDouble(dTempDecimal_37);
                            GetDecimalFromAttribute(md_dTempDecimal_37, qFinAidA, "FinAidAwarded", "Amount");
                            dTempDecimal_37 = md_dTempDecimal_37.doubleValue();
                        }
                        dTempDecimal_38 = dTempDecimal_36 + dTempDecimal_37;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "OtherAidGroupTotal",
                                dTempDecimal_38);
                        //:qFinAidA.AwardLetters.OtherAidSpringTotal   = qFinAidA.AwardLetters.OtherAidSpringTotal + qFinAidA.OtherAidGroup.SpringAmount 
                        {
                            MutableDouble md_dTempDecimal_39 = new MutableDouble(dTempDecimal_39);
                            GetDecimalFromAttribute(md_dTempDecimal_39, qFinAidA, "AwardLetters",
                                    "OtherAidSpringTotal");
                            dTempDecimal_39 = md_dTempDecimal_39.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_40 = new MutableDouble(dTempDecimal_40);
                            GetDecimalFromAttribute(md_dTempDecimal_40, qFinAidA, "OtherAidGroup",
                                    "SpringAmount");
                            dTempDecimal_40 = md_dTempDecimal_40.doubleValue();
                        }
                        dTempDecimal_41 = dTempDecimal_39 + dTempDecimal_40;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "OtherAidSpringTotal",
                                dTempDecimal_41);
                        //:qFinAidA.AwardLetters.OtherAidFallTotal     = qFinAidA.AwardLetters.OtherAidFallTotal   + qFinAidA.OtherAidGroup.FallAmount 
                        {
                            MutableDouble md_dTempDecimal_42 = new MutableDouble(dTempDecimal_42);
                            GetDecimalFromAttribute(md_dTempDecimal_42, qFinAidA, "AwardLetters",
                                    "OtherAidFallTotal");
                            dTempDecimal_42 = md_dTempDecimal_42.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_43 = new MutableDouble(dTempDecimal_43);
                            GetDecimalFromAttribute(md_dTempDecimal_43, qFinAidA, "OtherAidGroup",
                                    "FallAmount");
                            dTempDecimal_43 = md_dTempDecimal_43.doubleValue();
                        }
                        dTempDecimal_44 = dTempDecimal_42 + dTempDecimal_43;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "OtherAidFallTotal", dTempDecimal_44);
                        //:qFinAidA.AwardLetters.OtherAidSummerTotal   = qFinAidA.AwardLetters.OtherAidSummerTotal + qFinAidA.OtherAidGroup.SummerAmount 
                        {
                            MutableDouble md_dTempDecimal_45 = new MutableDouble(dTempDecimal_45);
                            GetDecimalFromAttribute(md_dTempDecimal_45, qFinAidA, "AwardLetters",
                                    "OtherAidSummerTotal");
                            dTempDecimal_45 = md_dTempDecimal_45.doubleValue();
                        }
                        {
                            MutableDouble md_dTempDecimal_46 = new MutableDouble(dTempDecimal_46);
                            GetDecimalFromAttribute(md_dTempDecimal_46, qFinAidA, "OtherAidGroup",
                                    "SummerAmount");
                            dTempDecimal_46 = md_dTempDecimal_46.doubleValue();
                        }
                        dTempDecimal_47 = dTempDecimal_45 + dTempDecimal_46;
                        SetAttributeFromDecimal(qFinAidA, "AwardLetters", "OtherAidSummerTotal",
                                dTempDecimal_47);
                        //:qFinAidA.OtherAidGroup.AcceptedDeclinedText = szAcceptedDeclinedText
                        SetAttributeFromString(qFinAidA, "OtherAidGroup", "AcceptedDeclinedText",
                                szAcceptedDeclinedText);
                    }

                    //://fnFormatTextTabData( qFinAidA, "OtherAidGroup" )
                    //:END
                    //:qFinAidA.AwardLetters.FinAidFullYearTotal = qFinAidA.AwardLetters.FinAidFullYearTotal + qFinAidA.FinAidAwarded.Amount
                    {
                        MutableDouble md_dTempDecimal_48 = new MutableDouble(dTempDecimal_48);
                        GetDecimalFromAttribute(md_dTempDecimal_48, qFinAidA, "AwardLetters",
                                "FinAidFullYearTotal");
                        dTempDecimal_48 = md_dTempDecimal_48.doubleValue();
                    }
                    {
                        MutableDouble md_dTempDecimal_49 = new MutableDouble(dTempDecimal_49);
                        GetDecimalFromAttribute(md_dTempDecimal_49, qFinAidA, "FinAidAwarded", "Amount");
                        dTempDecimal_49 = md_dTempDecimal_49.doubleValue();
                    }
                    dTempDecimal_50 = dTempDecimal_48 + dTempDecimal_49;
                    SetAttributeFromDecimal(qFinAidA, "AwardLetters", "FinAidFullYearTotal", dTempDecimal_50);
                    //:qFinAidA.AwardLetters.FinAidSpringTotal   = qFinAidA.AwardLetters.FinAidSpringTotal   + qFinAidA.FinAidAwarded.SpringAmount
                    {
                        MutableDouble md_dTempDecimal_51 = new MutableDouble(dTempDecimal_51);
                        GetDecimalFromAttribute(md_dTempDecimal_51, qFinAidA, "AwardLetters",
                                "FinAidSpringTotal");
                        dTempDecimal_51 = md_dTempDecimal_51.doubleValue();
                    }
                    {
                        MutableDouble md_dTempDecimal_52 = new MutableDouble(dTempDecimal_52);
                        GetDecimalFromAttribute(md_dTempDecimal_52, qFinAidA, "FinAidAwarded", "SpringAmount");
                        dTempDecimal_52 = md_dTempDecimal_52.doubleValue();
                    }
                    dTempDecimal_53 = dTempDecimal_51 + dTempDecimal_52;
                    SetAttributeFromDecimal(qFinAidA, "AwardLetters", "FinAidSpringTotal", dTempDecimal_53);
                    //:qFinAidA.AwardLetters.FinAidFallTotal     = qFinAidA.AwardLetters.FinAidFallTotal     + qFinAidA.FinAidAwarded.FallAmount
                    {
                        MutableDouble md_dTempDecimal_54 = new MutableDouble(dTempDecimal_54);
                        GetDecimalFromAttribute(md_dTempDecimal_54, qFinAidA, "AwardLetters",
                                "FinAidFallTotal");
                        dTempDecimal_54 = md_dTempDecimal_54.doubleValue();
                    }
                    {
                        MutableDouble md_dTempDecimal_55 = new MutableDouble(dTempDecimal_55);
                        GetDecimalFromAttribute(md_dTempDecimal_55, qFinAidA, "FinAidAwarded", "FallAmount");
                        dTempDecimal_55 = md_dTempDecimal_55.doubleValue();
                    }
                    dTempDecimal_56 = dTempDecimal_54 + dTempDecimal_55;
                    SetAttributeFromDecimal(qFinAidA, "AwardLetters", "FinAidFallTotal", dTempDecimal_56);
                    //:qFinAidA.AwardLetters.FinAidFallTotal     = qFinAidA.AwardLetters.FinAidSummerTotal   + qFinAidA.FinAidAwarded.SummerAmount
                    {
                        MutableDouble md_dTempDecimal_57 = new MutableDouble(dTempDecimal_57);
                        GetDecimalFromAttribute(md_dTempDecimal_57, qFinAidA, "AwardLetters",
                                "FinAidSummerTotal");
                        dTempDecimal_57 = md_dTempDecimal_57.doubleValue();
                    }
                    {
                        MutableDouble md_dTempDecimal_58 = new MutableDouble(dTempDecimal_58);
                        GetDecimalFromAttribute(md_dTempDecimal_58, qFinAidA, "FinAidAwarded", "SummerAmount");
                        dTempDecimal_58 = md_dTempDecimal_58.doubleValue();
                    }
                    dTempDecimal_59 = dTempDecimal_57 + dTempDecimal_58;
                    SetAttributeFromDecimal(qFinAidA, "AwardLetters", "FinAidFallTotal", dTempDecimal_59);

                    //:qFinAidA.FinAidAwarded.AwardValue      = szAwardValue
                    SetAttributeFromString(qFinAidA, "FinAidAwarded", "AwardValue", szAwardValue);
                    //:qFinAidA.FinAidAwarded.AwardValueTotal = szAwardValueTotal
                    SetAttributeFromString(qFinAidA, "FinAidAwarded", "AwardValueTotal", szAwardValueTotal);
                    //:qFinAidA.FinAidAwarded.AwardValue3Term = szAwardValue3Term
                    SetAttributeFromString(qFinAidA, "FinAidAwarded", "AwardValue3Term", szAwardValue3Term);
                }

                //:END
            }

        }

        RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardAssigned", "");
        //:END
    }

    //:END

    //:// Create Swapped Entries. We do this after the creation of other award entries because we want the footnotes numbers to not be intermixed
    //:// with the footnote numbers of Institutional Aid Group entries.
    //:FOR EACH qFinAidA.FinAidAwardAssigned WHERE qFinAidA.FinAidAwardAssigned.AwardStatus != "I"
    //:                                        AND qFinAidA.FinAidAwardAssigned.AwardStatus != "N"
    RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardAssigned", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        if (CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "I") != 0
                && CompareAttributeToString(qFinAidA, "FinAidAwardAssigned", "AwardStatus", "N") != 0) {

            //:FOR EACH qFinAidA.FinAidAwardDisbursement
            RESULT = SetCursorFirstEntity(qFinAidA, "FinAidAwardDisbursement", "");
            while (RESULT > zCURSOR_UNCHANGED) {
                //:// Don't include entries created by swapping. (SwappedFromDisbursement doesn't exist.)
                //:IF qFinAidA.SwappedFromDisbursement EXISTS
                lTempInteger_5 = CheckExistenceOfEntity(qFinAidA, "SwappedFromDisbursement");
                if (lTempInteger_5 == 0) {
                    //:SET CURSOR FIRST qFinAidA.SwappedAwards WHERE qFinAidA.SwappedAwards.AwardName = qFinAidA.FinAidSource.Name 
                    {
                        StringBuilder sb_szTempString_4;
                        if (szTempString_4 == null)
                            sb_szTempString_4 = new StringBuilder(32);
                        else
                            sb_szTempString_4 = new StringBuilder(szTempString_4);
                        GetStringFromAttribute(sb_szTempString_4, qFinAidA, "FinAidSource", "Name");
                        szTempString_4 = sb_szTempString_4.toString();
                    }
                    RESULT = SetCursorFirstEntityByString(qFinAidA, "SwappedAwards", "AwardName",
                            szTempString_4, "");
                    //:IF RESULT < zCURSOR_SET
                    if (RESULT < zCURSOR_SET) {
                        //:CREATE ENTITY qFinAidA.SwappedAwards 
                        RESULT = CreateEntity(qFinAidA, "SwappedAwards", zPOS_AFTER);
                        //:qFinAidA.SwappedAwards.AwardName      = qFinAidA.FinAidSource.Name
                        SetAttributeFromAttribute(qFinAidA, "SwappedAwards", "AwardName", qFinAidA,
                                "FinAidSource", "Name");
                        //:qFinAidA.SwappedAwards.SourceFootnote = qFinAidA.FinAidSource.SourceFootnote
                        SetAttributeFromAttribute(qFinAidA, "SwappedAwards", "SourceFootnote", qFinAidA,
                                "FinAidSource", "SourceFootnote");

                        //:// Process Footnote pointer and line.
                        //:nFNNumber = nFNNumber + 1
                        nFNNumber = nFNNumber + 1;
                        //:zIntegerToString( szFootnoteNumber, 10, nFNNumber )
                        {
                            StringBuilder sb_szFootnoteNumber;
                            if (szFootnoteNumber == null)
                                sb_szFootnoteNumber = new StringBuilder(32);
                            else
                                sb_szFootnoteNumber = new StringBuilder(szFootnoteNumber);
                            zIntegerToString(sb_szFootnoteNumber, 10, nFNNumber);
                            szFootnoteNumber = sb_szFootnoteNumber.toString();
                        }
                        //:qFinAidA.SwappedAwards.DisplayLine = qFinAidA.FinAidSource.Name + "* " + szFootnoteNumber
                        {
                            StringBuilder sb_szTempString_4;
                            if (szTempString_4 == null)
                                sb_szTempString_4 = new StringBuilder(32);
                            else
                                sb_szTempString_4 = new StringBuilder(szTempString_4);
                            GetStringFromAttribute(sb_szTempString_4, qFinAidA, "FinAidSource", "Name");
                            szTempString_4 = sb_szTempString_4.toString();
                        }
                        {
                            StringBuilder sb_szTempString_4;
                            if (szTempString_4 == null)
                                sb_szTempString_4 = new StringBuilder(32);
                            else
                                sb_szTempString_4 = new StringBuilder(szTempString_4);
                            ZeidonStringConcat(sb_szTempString_4, 1, 0, "* ", 1, 0, 255);
                            szTempString_4 = sb_szTempString_4.toString();
                        }
                        {
                            StringBuilder sb_szTempString_4;
                            if (szTempString_4 == null)
                                sb_szTempString_4 = new StringBuilder(32);
                            else
                                sb_szTempString_4 = new StringBuilder(szTempString_4);
                            ZeidonStringConcat(sb_szTempString_4, 1, 0, szFootnoteNumber, 1, 0, 255);
                            szTempString_4 = sb_szTempString_4.toString();
                        }
                        SetAttributeFromString(qFinAidA, "SwappedAwards", "DisplayLine", szTempString_4);
                        //:CREATE ENTITY qFinAidA.Footnote
                        RESULT = CreateEntity(qFinAidA, "Footnote", zPOS_AFTER);
                        //:qFinAidA.Footnote.SourceFootnote = szFootnoteNumber + ": " + qFinAidA.FinAidSource.SourceFootnote
                        {
                            StringBuilder sb_szTempString_5;
                            if (szTempString_5 == null)
                                sb_szTempString_5 = new StringBuilder(32);
                            else
                                sb_szTempString_5 = new StringBuilder(szTempString_5);
                            ZeidonStringCopy(sb_szTempString_5, 1, 0, szFootnoteNumber, 1, 0, 10001);
                            szTempString_5 = sb_szTempString_5.toString();
                        }
                        {
                            StringBuilder sb_szTempString_5;
                            if (szTempString_5 == null)
                                sb_szTempString_5 = new StringBuilder(32);
                            else
                                sb_szTempString_5 = new StringBuilder(szTempString_5);
                            ZeidonStringConcat(sb_szTempString_5, 1, 0, ": ", 1, 0, 10001);
                            szTempString_5 = sb_szTempString_5.toString();
                        }
                        {
                            MutableInt mi_lTempInteger_6 = new MutableInt(lTempInteger_6);
                            StringBuilder sb_szTempString_6;
                            if (szTempString_6 == null)
                                sb_szTempString_6 = new StringBuilder(32);
                            else
                                sb_szTempString_6 = new StringBuilder(szTempString_6);
                            GetVariableFromAttribute(sb_szTempString_6, mi_lTempInteger_6, 'S', 10001, qFinAidA,
                                    "FinAidSource", "SourceFootnote", "", 0);
                            lTempInteger_6 = mi_lTempInteger_6.intValue();
                            szTempString_6 = sb_szTempString_6.toString();
                        }
                        {
                            StringBuilder sb_szTempString_5;
                            if (szTempString_5 == null)
                                sb_szTempString_5 = new StringBuilder(32);
                            else
                                sb_szTempString_5 = new StringBuilder(szTempString_5);
                            ZeidonStringConcat(sb_szTempString_5, 1, 0, szTempString_6, 1, 0, 10001);
                            szTempString_5 = sb_szTempString_5.toString();
                        }
                        SetAttributeFromString(qFinAidA, "Footnote", "SourceFootnote", szTempString_5);
                        //:qFinAidA.Footnote.AwardName = qFinAidA.FinAidAwarded.AwardName  
                        SetAttributeFromAttribute(qFinAidA, "Footnote", "AwardName", qFinAidA, "FinAidAwarded",
                                "AwardName");
                    }

                    //:END
                }

                RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardDisbursement", "");
                //:END
            }

        }

        RESULT = SetCursorNextEntity(qFinAidA, "FinAidAwardAssigned", "");
        //:END
    }

    //:END

    //:FOR EACH qFinAidA.FinAidCOAItemAssigned 
    RESULT = SetCursorFirstEntity(qFinAidA, "FinAidCOAItemAssigned", "");
    while (RESULT > zCURSOR_UNCHANGED) {
        //:szCOAString = ""
        {
            StringBuilder sb_szCOAString;
            if (szCOAString == null)
                sb_szCOAString = new StringBuilder(32);
            else
                sb_szCOAString = new StringBuilder(szCOAString);
            ZeidonStringCopy(sb_szCOAString, 1, 0, "", 1, 0, 255);
            szCOAString = sb_szCOAString.toString();
        }
        //:szCOAName   = qFinAidA.FinAidCOAItem.Description 
        {
            MutableInt mi_lTempInteger_7 = new MutableInt(lTempInteger_7);
            StringBuilder sb_szCOAName;
            if (szCOAName == null)
                sb_szCOAName = new StringBuilder(32);
            else
                sb_szCOAName = new StringBuilder(szCOAName);
            GetVariableFromAttribute(sb_szCOAName, mi_lTempInteger_7, 'S', 31, qFinAidA, "FinAidCOAItem",
                    "Description", "", 0);
            lTempInteger_7 = mi_lTempInteger_7.intValue();
            szCOAName = sb_szCOAName.toString();
        }
        //:nLen = zstrlen(szCOAName)
        nLen = zstrlen(szCOAName);
        //:IF nLen < 6 
        if (nLen < 6) {
            //:szCOAName = szCOAName + zTAB + zTAB + zTAB + zTAB + zTAB
            {
                StringBuilder sb_szCOAName;
                if (szCOAName == null)
                    sb_szCOAName = new StringBuilder(32);
                else
                    sb_szCOAName = new StringBuilder(szCOAName);
                ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                szCOAName = sb_szCOAName.toString();
            }
            {
                StringBuilder sb_szCOAName;
                if (szCOAName == null)
                    sb_szCOAName = new StringBuilder(32);
                else
                    sb_szCOAName = new StringBuilder(szCOAName);
                ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                szCOAName = sb_szCOAName.toString();
            }
            {
                StringBuilder sb_szCOAName;
                if (szCOAName == null)
                    sb_szCOAName = new StringBuilder(32);
                else
                    sb_szCOAName = new StringBuilder(szCOAName);
                ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                szCOAName = sb_szCOAName.toString();
            }
            {
                StringBuilder sb_szCOAName;
                if (szCOAName == null)
                    sb_szCOAName = new StringBuilder(32);
                else
                    sb_szCOAName = new StringBuilder(szCOAName);
                ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                szCOAName = sb_szCOAName.toString();
            }
            {
                StringBuilder sb_szCOAName;
                if (szCOAName == null)
                    sb_szCOAName = new StringBuilder(32);
                else
                    sb_szCOAName = new StringBuilder(szCOAName);
                ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                szCOAName = sb_szCOAName.toString();
            }
            //:ELSE 
        } else {
            //:IF nLen < 12
            if (nLen < 12) {
                //:szCOAName = szCOAName + zTAB + zTAB + zTAB + zTAB
                {
                    StringBuilder sb_szCOAName;
                    if (szCOAName == null)
                        sb_szCOAName = new StringBuilder(32);
                    else
                        sb_szCOAName = new StringBuilder(szCOAName);
                    ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                    szCOAName = sb_szCOAName.toString();
                }
                {
                    StringBuilder sb_szCOAName;
                    if (szCOAName == null)
                        sb_szCOAName = new StringBuilder(32);
                    else
                        sb_szCOAName = new StringBuilder(szCOAName);
                    ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                    szCOAName = sb_szCOAName.toString();
                }
                {
                    StringBuilder sb_szCOAName;
                    if (szCOAName == null)
                        sb_szCOAName = new StringBuilder(32);
                    else
                        sb_szCOAName = new StringBuilder(szCOAName);
                    ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                    szCOAName = sb_szCOAName.toString();
                }
                {
                    StringBuilder sb_szCOAName;
                    if (szCOAName == null)
                        sb_szCOAName = new StringBuilder(32);
                    else
                        sb_szCOAName = new StringBuilder(szCOAName);
                    ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                    szCOAName = sb_szCOAName.toString();
                }
                //:ELSE 
            } else {
                //:IF nLen < 18 
                if (nLen < 18) {
                    //:szCOAName = szCOAName + zTAB + zTAB + zTAB
                    {
                        StringBuilder sb_szCOAName;
                        if (szCOAName == null)
                            sb_szCOAName = new StringBuilder(32);
                        else
                            sb_szCOAName = new StringBuilder(szCOAName);
                        ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                        szCOAName = sb_szCOAName.toString();
                    }
                    {
                        StringBuilder sb_szCOAName;
                        if (szCOAName == null)
                            sb_szCOAName = new StringBuilder(32);
                        else
                            sb_szCOAName = new StringBuilder(szCOAName);
                        ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                        szCOAName = sb_szCOAName.toString();
                    }
                    {
                        StringBuilder sb_szCOAName;
                        if (szCOAName == null)
                            sb_szCOAName = new StringBuilder(32);
                        else
                            sb_szCOAName = new StringBuilder(szCOAName);
                        ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                        szCOAName = sb_szCOAName.toString();
                    }
                    //:ELSE 
                } else {
                    //:IF nLen < 24
                    if (nLen < 24) {
                        //:szCOAName = szCOAName + zTAB + zTAB
                        {
                            StringBuilder sb_szCOAName;
                            if (szCOAName == null)
                                sb_szCOAName = new StringBuilder(32);
                            else
                                sb_szCOAName = new StringBuilder(szCOAName);
                            ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                            szCOAName = sb_szCOAName.toString();
                        }
                        {
                            StringBuilder sb_szCOAName;
                            if (szCOAName == null)
                                sb_szCOAName = new StringBuilder(32);
                            else
                                sb_szCOAName = new StringBuilder(szCOAName);
                            ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                            szCOAName = sb_szCOAName.toString();
                        }
                        //:ELSE 
                    } else {
                        //:szCOAName = szCOAName + zTAB
                        {
                            StringBuilder sb_szCOAName;
                            if (szCOAName == null)
                                sb_szCOAName = new StringBuilder(32);
                            else
                                sb_szCOAName = new StringBuilder(szCOAName);
                            ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
                            szCOAName = sb_szCOAName.toString();
                        }
                    }

                    //:END 
                }

                //:END 
            }

            //:END 
        }

        //:END

        //:// szCOAName = szCOAName + zTAB
        //:// GetStringFromAttributeByContext( szCOANumber, qFinAidA, "FinAidCOAItemAssigned", "RevenueAmount", "Revenue",20)
        //:GetStringFromAttributeByContext( szSomeNumber, qFinAidA, "FinAidCOAItemAssigned", "RevenueAmount", "Revenue",10)
        {
            StringBuilder sb_szSomeNumber;
            if (szSomeNumber == null)
                sb_szSomeNumber = new StringBuilder(32);
            else
                sb_szSomeNumber = new StringBuilder(szSomeNumber);
            GetStringFromAttributeByContext(sb_szSomeNumber, qFinAidA, "FinAidCOAItemAssigned", "RevenueAmount",
                    "Revenue", 10);
            szSomeNumber = sb_szSomeNumber.toString();
        }
        //:nLen = zstrlen( szSomeNumber ) //szFallAmount
        nLen = zstrlen(szSomeNumber);
        //:ConvertToString10( qFinAidA, szSomeNumber, szCOANumber )
        {
            StringBuilder sb_szCOANumber;
            if (szCOANumber == null)
                sb_szCOANumber = new StringBuilder(32);
            else
                sb_szCOANumber = new StringBuilder(szCOANumber);
            ConvertToString10(qFinAidA, szSomeNumber, sb_szCOANumber);
            szCOANumber = sb_szCOANumber.toString();
        }

        //:szCOAString = szCOAName + szCOANumber
        {
            StringBuilder sb_szCOAString;
            if (szCOAString == null)
                sb_szCOAString = new StringBuilder(32);
            else
                sb_szCOAString = new StringBuilder(szCOAString);
            ZeidonStringCopy(sb_szCOAString, 1, 0, szCOAName, 1, 0, 255);
            szCOAString = sb_szCOAString.toString();
        }
        {
            StringBuilder sb_szCOAString;
            if (szCOAString == null)
                sb_szCOAString = new StringBuilder(32);
            else
                sb_szCOAString = new StringBuilder(szCOAString);
            ZeidonStringConcat(sb_szCOAString, 1, 0, szCOANumber, 1, 0, 255);
            szCOAString = sb_szCOAString.toString();
        }
        //:qFinAidA.FinAidCOAItemAssigned.COAString = szCOAString 
        SetAttributeFromString(qFinAidA, "FinAidCOAItemAssigned", "COAString", szCOAString);

        //:// Add to Totals
        //:IF qFinAidA.FinAidCOAItem.COAItemType = "EDU" OR qFinAidA.FinAidCOAItem.COAItemType = "FEE"
        if (CompareAttributeToString(qFinAidA, "FinAidCOAItem", "COAItemType", "EDU") == 0
                || CompareAttributeToString(qFinAidA, "FinAidCOAItem", "COAItemType", "FEE") == 0) {
            //:qFinAidA.AwardLetters.TuitionAndFeesTotal = qFinAidA.AwardLetters.TuitionAndFeesTotal + qFinAidA.FinAidCOAItemAssigned.RevenueAmount 
            {
                MutableDouble md_dTempDecimal_60 = new MutableDouble(dTempDecimal_60);
                GetDecimalFromAttribute(md_dTempDecimal_60, qFinAidA, "AwardLetters", "TuitionAndFeesTotal");
                dTempDecimal_60 = md_dTempDecimal_60.doubleValue();
            }
            {
                MutableDouble md_dTempDecimal_61 = new MutableDouble(dTempDecimal_61);
                GetDecimalFromAttribute(md_dTempDecimal_61, qFinAidA, "FinAidCOAItemAssigned", "RevenueAmount");
                dTempDecimal_61 = md_dTempDecimal_61.doubleValue();
            }
            dTempDecimal_62 = dTempDecimal_60 + dTempDecimal_61;
            SetAttributeFromDecimal(qFinAidA, "AwardLetters", "TuitionAndFeesTotal", dTempDecimal_62);
        }

        //:END
        //:IF qFinAidA.FinAidCOAItem.COAItemType = "COL"
        if (CompareAttributeToString(qFinAidA, "FinAidCOAItem", "COAItemType", "COL") == 0) {
            //:qFinAidA.AwardLetters.CostOfLivingTotal = qFinAidA.AwardLetters.CostOfLivingTotal + qFinAidA.FinAidCOAItemAssigned.RevenueAmount 
            {
                MutableDouble md_dTempDecimal_63 = new MutableDouble(dTempDecimal_63);
                GetDecimalFromAttribute(md_dTempDecimal_63, qFinAidA, "AwardLetters", "CostOfLivingTotal");
                dTempDecimal_63 = md_dTempDecimal_63.doubleValue();
            }
            {
                MutableDouble md_dTempDecimal_64 = new MutableDouble(dTempDecimal_64);
                GetDecimalFromAttribute(md_dTempDecimal_64, qFinAidA, "FinAidCOAItemAssigned", "RevenueAmount");
                dTempDecimal_64 = md_dTempDecimal_64.doubleValue();
            }
            dTempDecimal_65 = dTempDecimal_63 + dTempDecimal_64;
            SetAttributeFromDecimal(qFinAidA, "AwardLetters", "CostOfLivingTotal", dTempDecimal_65);
        }

        RESULT = SetCursorNextEntity(qFinAidA, "FinAidCOAItemAssigned", "");
        //:END
    }

    //:   
    //:END

    //:qFinAidA.AwardLetters.CostOfAttendanceTotal = qFinAidA.AwardLetters.TuitionAndFeesTotal + qFinAidA.AwardLetters.CostOfLivingTotal  
    {
        MutableDouble md_dTempDecimal_66 = new MutableDouble(dTempDecimal_66);
        GetDecimalFromAttribute(md_dTempDecimal_66, qFinAidA, "AwardLetters", "TuitionAndFeesTotal");
        dTempDecimal_66 = md_dTempDecimal_66.doubleValue();
    }
    {
        MutableDouble md_dTempDecimal_67 = new MutableDouble(dTempDecimal_67);
        GetDecimalFromAttribute(md_dTempDecimal_67, qFinAidA, "AwardLetters", "CostOfLivingTotal");
        dTempDecimal_67 = md_dTempDecimal_67.doubleValue();
    }
    dTempDecimal_68 = dTempDecimal_66 + dTempDecimal_67;
    SetAttributeFromDecimal(qFinAidA, "AwardLetters", "CostOfAttendanceTotal", dTempDecimal_68);
    //:CREATE ENTITY qFinAidA.FinAidCOAItemAssigned  
    RESULT = CreateEntity(qFinAidA, "FinAidCOAItemAssigned", zPOS_AFTER);
    //:qFinAidA.FinAidCOAItemAssigned.COAString = zTAB + zTAB + zTAB + zTAB + zTAB + "____________"
    {
        StringBuilder sb_szTempString_7;
        if (szTempString_7 == null)
            sb_szTempString_7 = new StringBuilder(32);
        else
            sb_szTempString_7 = new StringBuilder(szTempString_7);
        ZeidonStringCopy(sb_szTempString_7, 1, 0, zTAB, 1, 0, 255);
        szTempString_7 = sb_szTempString_7.toString();
    }
    {
        StringBuilder sb_szTempString_7;
        if (szTempString_7 == null)
            sb_szTempString_7 = new StringBuilder(32);
        else
            sb_szTempString_7 = new StringBuilder(szTempString_7);
        ZeidonStringConcat(sb_szTempString_7, 1, 0, zTAB, 1, 0, 255);
        szTempString_7 = sb_szTempString_7.toString();
    }
    {
        StringBuilder sb_szTempString_7;
        if (szTempString_7 == null)
            sb_szTempString_7 = new StringBuilder(32);
        else
            sb_szTempString_7 = new StringBuilder(szTempString_7);
        ZeidonStringConcat(sb_szTempString_7, 1, 0, zTAB, 1, 0, 255);
        szTempString_7 = sb_szTempString_7.toString();
    }
    {
        StringBuilder sb_szTempString_7;
        if (szTempString_7 == null)
            sb_szTempString_7 = new StringBuilder(32);
        else
            sb_szTempString_7 = new StringBuilder(szTempString_7);
        ZeidonStringConcat(sb_szTempString_7, 1, 0, zTAB, 1, 0, 255);
        szTempString_7 = sb_szTempString_7.toString();
    }
    {
        StringBuilder sb_szTempString_7;
        if (szTempString_7 == null)
            sb_szTempString_7 = new StringBuilder(32);
        else
            sb_szTempString_7 = new StringBuilder(szTempString_7);
        ZeidonStringConcat(sb_szTempString_7, 1, 0, zTAB, 1, 0, 255);
        szTempString_7 = sb_szTempString_7.toString();
    }
    {
        StringBuilder sb_szTempString_7;
        if (szTempString_7 == null)
            sb_szTempString_7 = new StringBuilder(32);
        else
            sb_szTempString_7 = new StringBuilder(szTempString_7);
        ZeidonStringConcat(sb_szTempString_7, 1, 0, "____________", 1, 0, 255);
        szTempString_7 = sb_szTempString_7.toString();
    }
    SetAttributeFromString(qFinAidA, "FinAidCOAItemAssigned", "COAString", szTempString_7);

    //:CREATE ENTITY qFinAidA.FinAidCOAItemAssigned  
    RESULT = CreateEntity(qFinAidA, "FinAidCOAItemAssigned", zPOS_AFTER);
    //:szCOAName = "Total Cost of Attendance:" + zTAB
    {
        StringBuilder sb_szCOAName;
        if (szCOAName == null)
            sb_szCOAName = new StringBuilder(32);
        else
            sb_szCOAName = new StringBuilder(szCOAName);
        ZeidonStringCopy(sb_szCOAName, 1, 0, "Total Cost of Attendance:", 1, 0, 31);
        szCOAName = sb_szCOAName.toString();
    }
    {
        StringBuilder sb_szCOAName;
        if (szCOAName == null)
            sb_szCOAName = new StringBuilder(32);
        else
            sb_szCOAName = new StringBuilder(szCOAName);
        ZeidonStringConcat(sb_szCOAName, 1, 0, zTAB, 1, 0, 31);
        szCOAName = sb_szCOAName.toString();
    }
    //://ZeidonStringConvertFromNumber( szSomeNumber, 1, 20, 20, 1, 
    //://                               qFinAidA.FinAidProfile.dTotalCOA, "D")
    //:wXferO.Root.WorkRevenue = qFinAidA.FinAidProfile.dTotalCOA
    SetAttributeFromAttribute(wXferO, "Root", "WorkRevenue", qFinAidA, "FinAidProfile", "dTotalCOA");
    //:GetStringFromAttributeByContext( szSomeNumber, wXferO, "Root", "WorkRevenue", "Revenue",10)
    {
        StringBuilder sb_szSomeNumber;
        if (szSomeNumber == null)
            sb_szSomeNumber = new StringBuilder(32);
        else
            sb_szSomeNumber = new StringBuilder(szSomeNumber);
        GetStringFromAttributeByContext(sb_szSomeNumber, wXferO, "Root", "WorkRevenue", "Revenue", 10);
        szSomeNumber = sb_szSomeNumber.toString();
    }
    //:nLen = zstrlen( szSomeNumber ) //szCOANumber
    nLen = zstrlen(szSomeNumber);
    //:ConvertToString10( qFinAidA, szSomeNumber, szCOANumber )
    {
        StringBuilder sb_szCOANumber;
        if (szCOANumber == null)
            sb_szCOANumber = new StringBuilder(32);
        else
            sb_szCOANumber = new StringBuilder(szCOANumber);
        ConvertToString10(qFinAidA, szSomeNumber, sb_szCOANumber);
        szCOANumber = sb_szCOANumber.toString();
    }

    //:szCOAString = szCOAName + szCOANumber
    {
        StringBuilder sb_szCOAString;
        if (szCOAString == null)
            sb_szCOAString = new StringBuilder(32);
        else
            sb_szCOAString = new StringBuilder(szCOAString);
        ZeidonStringCopy(sb_szCOAString, 1, 0, szCOAName, 1, 0, 255);
        szCOAString = sb_szCOAString.toString();
    }
    {
        StringBuilder sb_szCOAString;
        if (szCOAString == null)
            sb_szCOAString = new StringBuilder(32);
        else
            sb_szCOAString = new StringBuilder(szCOAString);
        ZeidonStringConcat(sb_szCOAString, 1, 0, szCOANumber, 1, 0, 255);
        szCOAString = sb_szCOAString.toString();
    }
    //:qFinAidA.FinAidCOAItemAssigned.COAString = szCOAString
    SetAttributeFromString(qFinAidA, "FinAidCOAItemAssigned", "COAString", szCOAString);

    //:// Compute Student remaining need as COA - Total Fin Aid
    //:qFinAidA.AwardLetters.COA_MinusFinAidTotal = qFinAidA.AwardLetters.CostOfAttendanceTotal - qFinAidA.AwardLetters.FinAidFullYearTotal 
    {
        MutableDouble md_dTempDecimal_69 = new MutableDouble(dTempDecimal_69);
        GetDecimalFromAttribute(md_dTempDecimal_69, qFinAidA, "AwardLetters", "CostOfAttendanceTotal");
        dTempDecimal_69 = md_dTempDecimal_69.doubleValue();
    }
    {
        MutableDouble md_dTempDecimal_70 = new MutableDouble(dTempDecimal_70);
        GetDecimalFromAttribute(md_dTempDecimal_70, qFinAidA, "AwardLetters", "FinAidFullYearTotal");
        dTempDecimal_70 = md_dTempDecimal_70.doubleValue();
    }
    dTempDecimal_71 = dTempDecimal_69 - dTempDecimal_70;
    SetAttributeFromDecimal(qFinAidA, "AwardLetters", "COA_MinusFinAidTotal", dTempDecimal_71);
    //:IF qFinAidA.AwardLetters.COA_MinusFinAidTotal < 0 
    if (CompareAttributeToInteger(qFinAidA, "AwardLetters", "COA_MinusFinAidTotal", 0) < 0) {
        //:qFinAidA.AwardLetters.COA_MinusFinAidTotal = 0    
        SetAttributeFromInteger(qFinAidA, "AwardLetters", "COA_MinusFinAidTotal", 0);
    }

    //:END

    //:// If there is any remaining amount, generate Option Funding entities.
    //:// DonC commented out the code below because he believed it was no longer used.
    //:/*IF qFinAidA.AwardLetters.COA_MinusFinAidTotal > 4000
    //:   dParentStudentLoan = qFinAidA.AwardLetters.COA_MinusFinAidTotal - 4000
    //:   dParentStudentLoanHalf = dParentStudentLoan / 2
    //:   CREATE ENTITY qFinAidA.OptionalFundingGroup 
    //:   qFinAidA.OptionalFundingGroup.AwardName    = "Summer Earnings"
    //:   qFinAidA.OptionalFundingGroup.FallAmount   = 1000
    //:   qFinAidA.OptionalFundingGroup.SpringAmount = 1000
    //:   qFinAidA.OptionalFundingGroup.Amount       = 2000
    //:   szAwardValue = "Summer Earnings" + zTAB + "  1,000.00" + zTAB + "  1,000.00" + zTAB + "  2,000.00"
    //:   qFinAidA.OptionalFundingGroup.AwardValue = szAwardValue
    //:   CREATE ENTITY qFinAidA.OptionalFundingGroup 
    //:   qFinAidA.OptionalFundingGroup.AwardName    = "Student Earnings or Federal Work Study"
    //:   qFinAidA.OptionalFundingGroup.FallAmount   = 1000
    //:   qFinAidA.OptionalFundingGroup.SpringAmount = 1000
    //:   qFinAidA.OptionalFundingGroup.Amount       = 2000
    //:   szAwardValue = "Student Earnings/Federal Work Study" + zTAB + "  1,000.00" + zTAB + "  1,000.00" + zTAB + "  2,000.00"
    //:   qFinAidA.OptionalFundingGroup.AwardValue = szAwardValue
    //:   CREATE ENTITY qFinAidA.OptionalFundingGroup 
    //:   qFinAidA.OptionalFundingGroup.AwardName    = "Parent PLUS Loan / Student Loan"
    //:   qFinAidA.OptionalFundingGroup.FallAmount   = dParentStudentLoanHalf
    //:   qFinAidA.OptionalFundingGroup.SpringAmount = dParentStudentLoanHalf
    //:   qFinAidA.OptionalFundingGroup.Amount       = dParentStudentLoan
    //:   GetStringFromAttributeByContext( szSomeNumber, qFinAidA, "OptionalFundingGroup", "FallAmount", "Revenue",10)
    //:   ConvertToString10( qFinAidA, szSomeNumber, szFallAmount )
    //:   GetStringFromAttributeByContext( szSomeNumber, qFinAidA, "OptionalFundingGroup", "Amount", "Revenue",10)
    //:   ConvertToString10( qFinAidA, szSomeNumber, szAmount )
    //:   szAwardValue = "Parent PLUS Loan/Student Loan" + zTAB + szFallAmount + zTAB + szFallAmount + zTAB + szAmount
    //:   qFinAidA.OptionalFundingGroup.AwardValue = szAwardValue
    //:END*/

    //:// If the Student Payment Contract has not been cleared, set the letter text.
    //:szClearedFlag = "N"
    {
        StringBuilder sb_szClearedFlag;
        if (szClearedFlag == null)
            sb_szClearedFlag = new StringBuilder(32);
        else
            sb_szClearedFlag = new StringBuilder(szClearedFlag);
        ZeidonStringCopy(sb_szClearedFlag, 1, 0, "N", 1, 0, 2);
        szClearedFlag = sb_szClearedFlag.toString();
    }
    //:IF qFinAidA.StudentAccountProfile EXISTS
    lTempInteger_8 = CheckExistenceOfEntity(qFinAidA, "StudentAccountProfile");
    if (lTempInteger_8 == 0) {
        //:IF qFinAidA.StudentAccountProfile.Cleared = "Y"
        if (CompareAttributeToString(qFinAidA, "StudentAccountProfile", "Cleared", "Y") == 0) {
            //:szClearedFlag = "Y"
            {
                StringBuilder sb_szClearedFlag;
                if (szClearedFlag == null)
                    sb_szClearedFlag = new StringBuilder(32);
                else
                    sb_szClearedFlag = new StringBuilder(szClearedFlag);
                ZeidonStringCopy(sb_szClearedFlag, 1, 0, "Y", 1, 0, 2);
                szClearedFlag = sb_szClearedFlag.toString();
            }
        }

        //:END
    }

    //:END
    //:IF szClearedFlag = "N" 
    if (ZeidonStringCompare(szClearedFlag, 1, 0, "N", 1, 0, 2) == 0) {
        //:GET VIEW mFAConst NAMED "mFAConst"
        RESULT = GetViewByName(mFAConst, "mFAConst", qFinAidA, zLEVEL_TASK);
        //:IF RESULT < 0
        if (RESULT < 0) {
            //:ACTIVATE mFAConst
            RESULT = ActivateObjectInstance(mFAConst, "mFAConst", qFinAidA, 0, zSINGLE);
            //:NAME VIEW mFAConst "mFAConst"
            SetNameForView(mFAConst, "mFAConst", null, zLEVEL_TASK);
        }

        //:END
        //:IF mFAConst > 0
        if (mFAConst != null) {
            //:qFinAidA.AwardLetters.StudentAccountNotClearedText = mFAConst.FinancialAidConstants.StudentAccountNotClearedText
            SetAttributeFromAttribute(qFinAidA, "AwardLetters", "StudentAccountNotClearedText", mFAConst,
                    "FinancialAidConstants", "StudentAccountNotClearedText");
        }

        //:END
    }

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