001    /*
002     * Copyright 2011 The Kuali Foundation.
003     * 
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     * http://www.opensource.org/licenses/ecl2.php
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.kfs.gl.businessobject;
017    
018    import java.util.LinkedHashMap;
019    
020    import org.kuali.kfs.sys.KFSKeyConstants;
021    import org.kuali.kfs.sys.context.SpringContext;
022    import org.kuali.rice.kns.bo.TransientBusinessObjectBase;
023    import org.kuali.rice.kns.service.KualiConfigurationService;
024    import org.kuali.rice.kns.util.KualiDecimal;
025    
026    /**
027     * Summarizes Pending Entry data for the GLPE pending entry report.
028     */
029    public class LedgerSummaryTotalLine extends TransientBusinessObjectBase {
030        private KualiDecimal debitAmount = KualiDecimal.ZERO;
031        private int debitCount = 0;
032        private KualiDecimal creditAmount = KualiDecimal.ZERO;
033        private int creditCount = 0;
034        private KualiDecimal budgetAmount = KualiDecimal.ZERO;
035        private int budgetCount = 0;
036        /**
037         * Gets the recordCount attribute. 
038         * @return Returns the recordCount.
039         */
040        public int getRecordCount() {
041            return debitCount + creditCount + budgetCount;
042        }
043        /**
044         * Gets the debitAmount attribute. 
045         * @return Returns the debitAmount.
046         */
047        public KualiDecimal getDebitAmount() {
048            return debitAmount;
049        }
050        /**
051         * Gets the debitCount attribute. 
052         * @return Returns the debitCount.
053         */
054        public int getDebitCount() {
055            return debitCount;
056        }
057        /**
058         * Gets the creditAmount attribute. 
059         * @return Returns the creditAmount.
060         */
061        public KualiDecimal getCreditAmount() {
062            return creditAmount;
063        }
064        /**
065         * Gets the creditCount attribute. 
066         * @return Returns the creditCount.
067         */
068        public int getCreditCount() {
069            return creditCount;
070        }
071        /**
072         * Gets the budgetAmount attribute. 
073         * @return Returns the budgetAmount.
074         */
075        public KualiDecimal getBudgetAmount() {
076            return budgetAmount;
077        }
078        /**
079         * Gets the budgetCount attribute. 
080         * @return Returns the budgetCount.
081         */
082        public int getBudgetCount() {
083            return budgetCount;
084        }
085        
086        /**
087         * Adds a debit amount to the current debit total
088         * @param debitAmount the debit amount to add to the debit total
089         */
090        public void addDebitAmount(KualiDecimal debitAmount) {
091            this.debitAmount = this.debitAmount.add(debitAmount);
092            this.debitCount += 1;
093        }
094        
095        /**
096         * Adds a credit amount to current credit total  
097         * @param creditAmount the amount to add to the credit total
098         */
099        public void addCreditAmount(KualiDecimal creditAmount) {
100            this.creditAmount = this.creditAmount.add(creditAmount);
101            this.creditCount += 1;
102        }
103        
104        /**
105         * Adds a budget amount to current budget total  
106         * @param budgetAmount the amount to add to the budget total
107         */
108        public void addBudgetAmount(KualiDecimal budgetAmount) {
109            this.budgetAmount = this.budgetAmount.add(budgetAmount);
110            this.budgetCount += 1;
111        }
112        
113        /**
114         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
115         */
116        @Override
117        protected LinkedHashMap toStringMapper() {
118            return new LinkedHashMap();
119        }
120        
121        /**
122         * @return the summary for this summary total line
123         */
124        public String getSummary() {
125            return SpringContext.getBean(KualiConfigurationService.class).getPropertyString(KFSKeyConstants.MESSAGE_REPORT_NIGHTLY_OUT_LEDGER_TOTAL);
126        }
127    }