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.fp.businessobject;
017
018 import java.util.Map;
019
020 import org.kuali.kfs.sys.businessobject.AccountingLine;
021 import org.kuali.rice.kns.util.KualiDecimal;
022 import org.kuali.rice.kns.util.KualiInteger;
023
024
025 /**
026 * This class is a utility class to consolidate budget adjustment accounting line code
027 */
028 public class BudgetAdjustmentAccountingLineUtil {
029 /**
030 * Initialize attributes
031 *
032 * @param accountingLine
033 */
034 public static void init(BudgetAdjustmentAccountingLine accountingLine) {
035 accountingLine.setCurrentBudgetAdjustmentAmount(KualiDecimal.ZERO);
036 accountingLine.setBaseBudgetAdjustmentAmount(KualiInteger.ZERO);
037 accountingLine.setFinancialDocumentMonth1LineAmount(KualiDecimal.ZERO);
038 accountingLine.setFinancialDocumentMonth2LineAmount(KualiDecimal.ZERO);
039 accountingLine.setFinancialDocumentMonth3LineAmount(KualiDecimal.ZERO);
040 accountingLine.setFinancialDocumentMonth4LineAmount(KualiDecimal.ZERO);
041 accountingLine.setFinancialDocumentMonth5LineAmount(KualiDecimal.ZERO);
042 accountingLine.setFinancialDocumentMonth6LineAmount(KualiDecimal.ZERO);
043 accountingLine.setFinancialDocumentMonth7LineAmount(KualiDecimal.ZERO);
044 accountingLine.setFinancialDocumentMonth8LineAmount(KualiDecimal.ZERO);
045 accountingLine.setFinancialDocumentMonth9LineAmount(KualiDecimal.ZERO);
046 accountingLine.setFinancialDocumentMonth10LineAmount(KualiDecimal.ZERO);
047 accountingLine.setFinancialDocumentMonth11LineAmount(KualiDecimal.ZERO);
048 accountingLine.setFinancialDocumentMonth12LineAmount(KualiDecimal.ZERO);
049 accountingLine.setFringeBenefitIndicator(false);
050 }
051
052 /**
053 * Adds {@link BudgetAdjustmentAccountingLine} attributes to map
054 *
055 * @param simpleValues map used to add values to
056 * @param accountingLine accounting line that provides attributes to add to map
057 * @return
058 */
059 public static Map appendToValuesMap(Map simpleValues, BudgetAdjustmentAccountingLine accountingLine) {
060 simpleValues.put("currentBudgetAdjustmentAmount", accountingLine.getCurrentBudgetAdjustmentAmount());
061 simpleValues.put("baseBudgetAdjustmentAmount", accountingLine.getBaseBudgetAdjustmentAmount());
062 simpleValues.put("financialDocumentMonth1LineAmount", accountingLine.getFinancialDocumentMonth1LineAmount());
063 simpleValues.put("financialDocumentMonth2LineAmount", accountingLine.getFinancialDocumentMonth2LineAmount());
064 simpleValues.put("financialDocumentMonth3LineAmount", accountingLine.getFinancialDocumentMonth3LineAmount());
065 simpleValues.put("financialDocumentMonth4LineAmount", accountingLine.getFinancialDocumentMonth4LineAmount());
066 simpleValues.put("financialDocumentMonth5LineAmount", accountingLine.getFinancialDocumentMonth5LineAmount());
067 simpleValues.put("financialDocumentMonth6LineAmount", accountingLine.getFinancialDocumentMonth6LineAmount());
068 simpleValues.put("financialDocumentMonth7LineAmount", accountingLine.getFinancialDocumentMonth7LineAmount());
069 simpleValues.put("financialDocumentMonth8LineAmount", accountingLine.getFinancialDocumentMonth8LineAmount());
070 simpleValues.put("financialDocumentMonth9LineAmount", accountingLine.getFinancialDocumentMonth9LineAmount());
071 simpleValues.put("financialDocumentMonth10LineAmount", accountingLine.getFinancialDocumentMonth10LineAmount());
072 simpleValues.put("financialDocumentMonth11LineAmount", accountingLine.getFinancialDocumentMonth11LineAmount());
073 simpleValues.put("financialDocumentMonth12LineAmount", accountingLine.getFinancialDocumentMonth12LineAmount());
074
075 return simpleValues;
076 }
077
078 /**
079 * Copies {@link BudgetAdjustmentAccountingLine} values
080 *
081 * @param toLine the line to copy values to
082 * @param fromLine the line to take the values to use in writing to the toLine
083 */
084 public static void copyFrom(BudgetAdjustmentAccountingLine toLine, AccountingLine other) {
085 if (BudgetAdjustmentAccountingLine.class.isAssignableFrom(other.getClass())) {
086 BudgetAdjustmentAccountingLine fromLine = (BudgetAdjustmentAccountingLine) other;
087 if (toLine != fromLine) {
088 toLine.setCurrentBudgetAdjustmentAmount(fromLine.getCurrentBudgetAdjustmentAmount());
089 toLine.setBaseBudgetAdjustmentAmount(fromLine.getBaseBudgetAdjustmentAmount());
090 toLine.setFinancialDocumentMonth1LineAmount(fromLine.getFinancialDocumentMonth1LineAmount());
091 toLine.setFinancialDocumentMonth2LineAmount(fromLine.getFinancialDocumentMonth2LineAmount());
092 toLine.setFinancialDocumentMonth3LineAmount(fromLine.getFinancialDocumentMonth3LineAmount());
093 toLine.setFinancialDocumentMonth4LineAmount(fromLine.getFinancialDocumentMonth4LineAmount());
094 toLine.setFinancialDocumentMonth5LineAmount(fromLine.getFinancialDocumentMonth5LineAmount());
095 toLine.setFinancialDocumentMonth6LineAmount(fromLine.getFinancialDocumentMonth6LineAmount());
096 toLine.setFinancialDocumentMonth7LineAmount(fromLine.getFinancialDocumentMonth7LineAmount());
097 toLine.setFinancialDocumentMonth8LineAmount(fromLine.getFinancialDocumentMonth8LineAmount());
098 toLine.setFinancialDocumentMonth9LineAmount(fromLine.getFinancialDocumentMonth9LineAmount());
099 toLine.setFinancialDocumentMonth10LineAmount(fromLine.getFinancialDocumentMonth10LineAmount());
100 toLine.setFinancialDocumentMonth11LineAmount(fromLine.getFinancialDocumentMonth11LineAmount());
101 toLine.setFinancialDocumentMonth12LineAmount(fromLine.getFinancialDocumentMonth12LineAmount());
102 toLine.setFringeBenefitIndicator(fromLine.isFringeBenefitIndicator());
103 }
104 }
105 }
106
107 /**
108 * Calculates monthlyLines total amount@param accountingLine
109 *
110 * @return KualiDecimal sum of all monthly line amounts
111 */
112 public static KualiDecimal getMonthlyLinesTotal(BudgetAdjustmentAccountingLine accountingLine) {
113 KualiDecimal total = KualiDecimal.ZERO;
114 if (accountingLine.getFinancialDocumentMonth1LineAmount() != null) {
115 total = total.add(accountingLine.getFinancialDocumentMonth1LineAmount());
116 }
117 if (accountingLine.getFinancialDocumentMonth2LineAmount() != null) {
118 total = total.add(accountingLine.getFinancialDocumentMonth2LineAmount());
119 }
120 if (accountingLine.getFinancialDocumentMonth3LineAmount() != null) {
121 total = total.add(accountingLine.getFinancialDocumentMonth3LineAmount());
122 }
123 if (accountingLine.getFinancialDocumentMonth4LineAmount() != null) {
124 total = total.add(accountingLine.getFinancialDocumentMonth4LineAmount());
125 }
126 if (accountingLine.getFinancialDocumentMonth5LineAmount() != null) {
127 total = total.add(accountingLine.getFinancialDocumentMonth5LineAmount());
128 }
129 if (accountingLine.getFinancialDocumentMonth6LineAmount() != null) {
130 total = total.add(accountingLine.getFinancialDocumentMonth6LineAmount());
131 }
132 if (accountingLine.getFinancialDocumentMonth7LineAmount() != null) {
133 total = total.add(accountingLine.getFinancialDocumentMonth7LineAmount());
134 }
135 if (accountingLine.getFinancialDocumentMonth8LineAmount() != null) {
136 total = total.add(accountingLine.getFinancialDocumentMonth8LineAmount());
137 }
138 if (accountingLine.getFinancialDocumentMonth9LineAmount() != null) {
139 total = total.add(accountingLine.getFinancialDocumentMonth9LineAmount());
140 }
141 if (accountingLine.getFinancialDocumentMonth10LineAmount() != null) {
142 total = total.add(accountingLine.getFinancialDocumentMonth10LineAmount());
143 }
144 if (accountingLine.getFinancialDocumentMonth11LineAmount() != null) {
145 total = total.add(accountingLine.getFinancialDocumentMonth11LineAmount());
146 }
147 if (accountingLine.getFinancialDocumentMonth12LineAmount() != null) {
148 total = total.add(accountingLine.getFinancialDocumentMonth12LineAmount());
149 }
150 return total;
151 }
152
153 }