View Javadoc
1   /*
2    * The Kuali Financial System, a comprehensive financial management system for higher education.
3    * 
4    * Copyright 2005-2014 The Kuali Foundation
5    * 
6    * This program is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Affero General Public License as
8    * published by the Free Software Foundation, either version 3 of the
9    * License, or (at your option) any later version.
10   * 
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU Affero General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Affero General Public License
17   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.kuali.kfs.fp.businessobject;
20  
21  import java.util.Map;
22  
23  import org.kuali.kfs.sys.businessobject.AccountingLine;
24  import org.kuali.rice.core.api.util.type.KualiDecimal;
25  import org.kuali.rice.core.api.util.type.KualiInteger;
26  
27  
28  /**
29   * This class is a utility class to consolidate budget adjustment accounting line code
30   */
31  public class BudgetAdjustmentAccountingLineUtil {
32      /**
33       * Initialize attributes
34       * 
35       * @param accountingLine
36       */
37      public static void init(BudgetAdjustmentAccountingLine accountingLine) {
38          accountingLine.setCurrentBudgetAdjustmentAmount(KualiDecimal.ZERO);
39          accountingLine.setBaseBudgetAdjustmentAmount(KualiInteger.ZERO);
40          accountingLine.setFinancialDocumentMonth1LineAmount(KualiDecimal.ZERO);
41          accountingLine.setFinancialDocumentMonth2LineAmount(KualiDecimal.ZERO);
42          accountingLine.setFinancialDocumentMonth3LineAmount(KualiDecimal.ZERO);
43          accountingLine.setFinancialDocumentMonth4LineAmount(KualiDecimal.ZERO);
44          accountingLine.setFinancialDocumentMonth5LineAmount(KualiDecimal.ZERO);
45          accountingLine.setFinancialDocumentMonth6LineAmount(KualiDecimal.ZERO);
46          accountingLine.setFinancialDocumentMonth7LineAmount(KualiDecimal.ZERO);
47          accountingLine.setFinancialDocumentMonth8LineAmount(KualiDecimal.ZERO);
48          accountingLine.setFinancialDocumentMonth9LineAmount(KualiDecimal.ZERO);
49          accountingLine.setFinancialDocumentMonth10LineAmount(KualiDecimal.ZERO);
50          accountingLine.setFinancialDocumentMonth11LineAmount(KualiDecimal.ZERO);
51          accountingLine.setFinancialDocumentMonth12LineAmount(KualiDecimal.ZERO);
52          accountingLine.setFringeBenefitIndicator(false);
53      }
54  
55      /**
56       * Adds {@link BudgetAdjustmentAccountingLine} attributes to map
57       * 
58       * @param simpleValues map used to add values to
59       * @param accountingLine accounting line that provides attributes to add to map
60       * @return
61       */
62      public static Map appendToValuesMap(Map simpleValues, BudgetAdjustmentAccountingLine accountingLine) {
63          simpleValues.put("currentBudgetAdjustmentAmount", accountingLine.getCurrentBudgetAdjustmentAmount());
64          simpleValues.put("baseBudgetAdjustmentAmount", accountingLine.getBaseBudgetAdjustmentAmount());
65          simpleValues.put("financialDocumentMonth1LineAmount", accountingLine.getFinancialDocumentMonth1LineAmount());
66          simpleValues.put("financialDocumentMonth2LineAmount", accountingLine.getFinancialDocumentMonth2LineAmount());
67          simpleValues.put("financialDocumentMonth3LineAmount", accountingLine.getFinancialDocumentMonth3LineAmount());
68          simpleValues.put("financialDocumentMonth4LineAmount", accountingLine.getFinancialDocumentMonth4LineAmount());
69          simpleValues.put("financialDocumentMonth5LineAmount", accountingLine.getFinancialDocumentMonth5LineAmount());
70          simpleValues.put("financialDocumentMonth6LineAmount", accountingLine.getFinancialDocumentMonth6LineAmount());
71          simpleValues.put("financialDocumentMonth7LineAmount", accountingLine.getFinancialDocumentMonth7LineAmount());
72          simpleValues.put("financialDocumentMonth8LineAmount", accountingLine.getFinancialDocumentMonth8LineAmount());
73          simpleValues.put("financialDocumentMonth9LineAmount", accountingLine.getFinancialDocumentMonth9LineAmount());
74          simpleValues.put("financialDocumentMonth10LineAmount", accountingLine.getFinancialDocumentMonth10LineAmount());
75          simpleValues.put("financialDocumentMonth11LineAmount", accountingLine.getFinancialDocumentMonth11LineAmount());
76          simpleValues.put("financialDocumentMonth12LineAmount", accountingLine.getFinancialDocumentMonth12LineAmount());
77  
78          return simpleValues;
79      }
80  
81      /**
82       * Copies {@link BudgetAdjustmentAccountingLine} values
83       * 
84       * @param toLine the line to copy values to
85       * @param fromLine the line to take the values to use in writing to the toLine
86       */
87      public static void copyFrom(BudgetAdjustmentAccountingLine toLine, AccountingLine other) {
88          if (BudgetAdjustmentAccountingLine.class.isAssignableFrom(other.getClass())) {
89              BudgetAdjustmentAccountingLine fromLine = (BudgetAdjustmentAccountingLine) other;
90              if (toLine != fromLine) {
91                  toLine.setCurrentBudgetAdjustmentAmount(fromLine.getCurrentBudgetAdjustmentAmount());
92                  toLine.setBaseBudgetAdjustmentAmount(fromLine.getBaseBudgetAdjustmentAmount());
93                  toLine.setFinancialDocumentMonth1LineAmount(fromLine.getFinancialDocumentMonth1LineAmount());
94                  toLine.setFinancialDocumentMonth2LineAmount(fromLine.getFinancialDocumentMonth2LineAmount());
95                  toLine.setFinancialDocumentMonth3LineAmount(fromLine.getFinancialDocumentMonth3LineAmount());
96                  toLine.setFinancialDocumentMonth4LineAmount(fromLine.getFinancialDocumentMonth4LineAmount());
97                  toLine.setFinancialDocumentMonth5LineAmount(fromLine.getFinancialDocumentMonth5LineAmount());
98                  toLine.setFinancialDocumentMonth6LineAmount(fromLine.getFinancialDocumentMonth6LineAmount());
99                  toLine.setFinancialDocumentMonth7LineAmount(fromLine.getFinancialDocumentMonth7LineAmount());
100                 toLine.setFinancialDocumentMonth8LineAmount(fromLine.getFinancialDocumentMonth8LineAmount());
101                 toLine.setFinancialDocumentMonth9LineAmount(fromLine.getFinancialDocumentMonth9LineAmount());
102                 toLine.setFinancialDocumentMonth10LineAmount(fromLine.getFinancialDocumentMonth10LineAmount());
103                 toLine.setFinancialDocumentMonth11LineAmount(fromLine.getFinancialDocumentMonth11LineAmount());
104                 toLine.setFinancialDocumentMonth12LineAmount(fromLine.getFinancialDocumentMonth12LineAmount());
105                 toLine.setFringeBenefitIndicator(fromLine.isFringeBenefitIndicator());
106             }
107         }
108     }
109 
110     /**
111      * Calculates monthlyLines total amount@param accountingLine
112      * 
113      * @return KualiDecimal sum of all monthly line amounts
114      */
115     public static KualiDecimal getMonthlyLinesTotal(BudgetAdjustmentAccountingLine accountingLine) {
116         KualiDecimal total = KualiDecimal.ZERO;
117         if (accountingLine.getFinancialDocumentMonth1LineAmount() != null) {
118             total = total.add(accountingLine.getFinancialDocumentMonth1LineAmount());
119         }
120         if (accountingLine.getFinancialDocumentMonth2LineAmount() != null) {
121             total = total.add(accountingLine.getFinancialDocumentMonth2LineAmount());
122         }
123         if (accountingLine.getFinancialDocumentMonth3LineAmount() != null) {
124             total = total.add(accountingLine.getFinancialDocumentMonth3LineAmount());
125         }
126         if (accountingLine.getFinancialDocumentMonth4LineAmount() != null) {
127             total = total.add(accountingLine.getFinancialDocumentMonth4LineAmount());
128         }
129         if (accountingLine.getFinancialDocumentMonth5LineAmount() != null) {
130             total = total.add(accountingLine.getFinancialDocumentMonth5LineAmount());
131         }
132         if (accountingLine.getFinancialDocumentMonth6LineAmount() != null) {
133             total = total.add(accountingLine.getFinancialDocumentMonth6LineAmount());
134         }
135         if (accountingLine.getFinancialDocumentMonth7LineAmount() != null) {
136             total = total.add(accountingLine.getFinancialDocumentMonth7LineAmount());
137         }
138         if (accountingLine.getFinancialDocumentMonth8LineAmount() != null) {
139             total = total.add(accountingLine.getFinancialDocumentMonth8LineAmount());
140         }
141         if (accountingLine.getFinancialDocumentMonth9LineAmount() != null) {
142             total = total.add(accountingLine.getFinancialDocumentMonth9LineAmount());
143         }
144         if (accountingLine.getFinancialDocumentMonth10LineAmount() != null) {
145             total = total.add(accountingLine.getFinancialDocumentMonth10LineAmount());
146         }
147         if (accountingLine.getFinancialDocumentMonth11LineAmount() != null) {
148             total = total.add(accountingLine.getFinancialDocumentMonth11LineAmount());
149         }
150         if (accountingLine.getFinancialDocumentMonth12LineAmount() != null) {
151             total = total.add(accountingLine.getFinancialDocumentMonth12LineAmount());
152         }
153         return total;
154     }
155 
156 }