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.kfs.sys.businessobject.SourceAccountingLine;
022    import org.kuali.rice.kns.util.KualiDecimal;
023    import org.kuali.rice.kns.util.KualiInteger;
024    
025    
026    /**
027     * Special case <code>{@link SourceAccountingLine}</code> type for
028     * <code>{@link org.kuali.kfs.fp.document.BudgetAdjustmentDocument}</code>
029     */
030    public class BudgetAdjustmentSourceAccountingLine extends SourceAccountingLine implements BudgetAdjustmentAccountingLine {
031    
032        private String budgetAdjustmentPeriodCode;
033        private KualiDecimal currentBudgetAdjustmentAmount;
034        private KualiInteger baseBudgetAdjustmentAmount;
035        private KualiDecimal financialDocumentMonth1LineAmount;
036        private KualiDecimal financialDocumentMonth2LineAmount;
037        private KualiDecimal financialDocumentMonth3LineAmount;
038        private KualiDecimal financialDocumentMonth4LineAmount;
039        private KualiDecimal financialDocumentMonth5LineAmount;
040        private KualiDecimal financialDocumentMonth6LineAmount;
041        private KualiDecimal financialDocumentMonth7LineAmount;
042        private KualiDecimal financialDocumentMonth8LineAmount;
043        private KualiDecimal financialDocumentMonth9LineAmount;
044        private KualiDecimal financialDocumentMonth10LineAmount;
045        private KualiDecimal financialDocumentMonth11LineAmount;
046        private KualiDecimal financialDocumentMonth12LineAmount;
047        private boolean fringeBenefitIndicator;
048    
049        public BudgetAdjustmentSourceAccountingLine() {
050            super();
051            BudgetAdjustmentAccountingLineUtil.init(this);
052        }
053    
054        /**
055         * @see org.kuali.rice.kns.bo.AccountingLineBase#getValuesMap()
056         */
057        @Override
058        public Map getValuesMap() {
059            Map simpleValues = super.getValuesMap();
060            simpleValues.remove("amount"); // remove the amount key; we'll use base and current instead
061            BudgetAdjustmentAccountingLineUtil.appendToValuesMap(simpleValues, this);
062            return simpleValues;
063        }
064    
065        /**
066         * @see org.kuali.rice.kns.bo.AccountingLineBase#copyFrom(org.kuali.rice.kns.bo.AccountingLine)
067         */
068        @Override
069        public void copyFrom(AccountingLine other) {
070            super.copyFrom(other);
071            BudgetAdjustmentAccountingLineUtil.copyFrom(this, other);
072        }
073    
074        /**
075         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getMonthlyLinesTotal()
076         */
077        public KualiDecimal getMonthlyLinesTotal() {
078            return BudgetAdjustmentAccountingLineUtil.getMonthlyLinesTotal(this);
079        }
080    
081        /**
082         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getBaseBudgetAdjustmentAmount()
083         */
084        public KualiInteger getBaseBudgetAdjustmentAmount() {
085            return baseBudgetAdjustmentAmount;
086        }
087    
088        /**
089         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setBaseBudgetAdjustmentAmount(org.kuali.rice.kns.util.KualiDecimal)
090         */
091        public void setBaseBudgetAdjustmentAmount(KualiInteger baseBudgetAdjustmentAmount) {
092            if (baseBudgetAdjustmentAmount != null) {
093                this.baseBudgetAdjustmentAmount = baseBudgetAdjustmentAmount;
094            }
095        }
096    
097        public void setBaseBudgetAdjustmentAmount(KualiDecimal baseBudgetAdjustmentAmount) {
098            if (baseBudgetAdjustmentAmount != null) {
099                this.baseBudgetAdjustmentAmount = new KualiInteger(baseBudgetAdjustmentAmount.bigDecimalValue());
100            }
101        }
102    
103        /**
104         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getBudgetAdjustmentPeriodCode()
105         */
106        public String getBudgetAdjustmentPeriodCode() {
107            return budgetAdjustmentPeriodCode;
108        }
109    
110        /**
111         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setBudgetAdjustmentPeriodCode(java.lang.String)
112         */
113        public void setBudgetAdjustmentPeriodCode(String budgetAdjustmentPeriodCode) {
114            this.budgetAdjustmentPeriodCode = budgetAdjustmentPeriodCode;
115        }
116    
117        /**
118         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getCurrentBudgetAdjustmentAmount()
119         */
120        public KualiDecimal getCurrentBudgetAdjustmentAmount() {
121            return currentBudgetAdjustmentAmount;
122        }
123    
124        /**
125         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setCurrentBudgetAdjustmentAmount(org.kuali.rice.kns.util.KualiDecimal)
126         */
127        public void setCurrentBudgetAdjustmentAmount(KualiDecimal currentBudgetAdjustmentAmount) {
128            if (currentBudgetAdjustmentAmount != null) {
129                this.currentBudgetAdjustmentAmount = currentBudgetAdjustmentAmount;
130            }
131        }
132    
133        /**
134         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth1LineAmount()
135         */
136        public KualiDecimal getFinancialDocumentMonth1LineAmount() {
137            return financialDocumentMonth1LineAmount;
138        }
139    
140        /**
141         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth1LineAmount(org.kuali.rice.kns.util.KualiDecimal)
142         */
143        public void setFinancialDocumentMonth1LineAmount(KualiDecimal financialDocumentMonth1LineAmount) {
144            if (financialDocumentMonth1LineAmount != null) {
145                this.financialDocumentMonth1LineAmount = financialDocumentMonth1LineAmount;
146            }
147        }
148    
149    
150        /**
151         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth2LineAmount()
152         */
153        public KualiDecimal getFinancialDocumentMonth2LineAmount() {
154            return financialDocumentMonth2LineAmount;
155        }
156    
157        /**
158         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth2LineAmount(org.kuali.rice.kns.util.KualiDecimal)
159         */
160        public void setFinancialDocumentMonth2LineAmount(KualiDecimal financialDocumentMonth2LineAmount) {
161            if (financialDocumentMonth2LineAmount != null) {
162                this.financialDocumentMonth2LineAmount = financialDocumentMonth2LineAmount;
163            }
164        }
165    
166    
167        /**
168         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth3LineAmount()
169         */
170        public KualiDecimal getFinancialDocumentMonth3LineAmount() {
171            return financialDocumentMonth3LineAmount;
172        }
173    
174        /**
175         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth3LineAmount(org.kuali.rice.kns.util.KualiDecimal)
176         */
177        public void setFinancialDocumentMonth3LineAmount(KualiDecimal financialDocumentMonth3LineAmount) {
178            if (financialDocumentMonth3LineAmount != null) {
179                this.financialDocumentMonth3LineAmount = financialDocumentMonth3LineAmount;
180            }
181        }
182    
183    
184        /**
185         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth4LineAmount()
186         */
187        public KualiDecimal getFinancialDocumentMonth4LineAmount() {
188            return financialDocumentMonth4LineAmount;
189        }
190    
191        /**
192         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth4LineAmount(org.kuali.rice.kns.util.KualiDecimal)
193         */
194        public void setFinancialDocumentMonth4LineAmount(KualiDecimal financialDocumentMonth4LineAmount) {
195            if (financialDocumentMonth4LineAmount != null) {
196                this.financialDocumentMonth4LineAmount = financialDocumentMonth4LineAmount;
197            }
198        }
199    
200    
201        /**
202         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth5LineAmount()
203         */
204        public KualiDecimal getFinancialDocumentMonth5LineAmount() {
205            return financialDocumentMonth5LineAmount;
206        }
207    
208        /**
209         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth5LineAmount(org.kuali.rice.kns.util.KualiDecimal)
210         */
211        public void setFinancialDocumentMonth5LineAmount(KualiDecimal financialDocumentMonth5LineAmount) {
212            if (financialDocumentMonth5LineAmount != null) {
213                this.financialDocumentMonth5LineAmount = financialDocumentMonth5LineAmount;
214            }
215        }
216    
217        /**
218         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth6LineAmount()
219         */
220        public KualiDecimal getFinancialDocumentMonth6LineAmount() {
221            return financialDocumentMonth6LineAmount;
222        }
223    
224        /**
225         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth6LineAmount(org.kuali.rice.kns.util.KualiDecimal)
226         */
227        public void setFinancialDocumentMonth6LineAmount(KualiDecimal financialDocumentMonth6LineAmount) {
228            if (financialDocumentMonth6LineAmount != null) {
229                this.financialDocumentMonth6LineAmount = financialDocumentMonth6LineAmount;
230            }
231        }
232    
233        /**
234         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth7LineAmount()
235         */
236        public KualiDecimal getFinancialDocumentMonth7LineAmount() {
237            return financialDocumentMonth7LineAmount;
238        }
239    
240        /**
241         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth7LineAmount(org.kuali.rice.kns.util.KualiDecimal)
242         */
243        public void setFinancialDocumentMonth7LineAmount(KualiDecimal financialDocumentMonth7LineAmount) {
244            if (financialDocumentMonth7LineAmount != null) {
245                this.financialDocumentMonth7LineAmount = financialDocumentMonth7LineAmount;
246            }
247        }
248    
249        /**
250         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth8LineAmount()
251         */
252        public KualiDecimal getFinancialDocumentMonth8LineAmount() {
253            return financialDocumentMonth8LineAmount;
254        }
255    
256        /**
257         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth8LineAmount(org.kuali.rice.kns.util.KualiDecimal)
258         */
259        public void setFinancialDocumentMonth8LineAmount(KualiDecimal financialDocumentMonth8LineAmount) {
260            if (financialDocumentMonth8LineAmount != null) {
261                this.financialDocumentMonth8LineAmount = financialDocumentMonth8LineAmount;
262            }
263        }
264    
265        /**
266         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth9LineAmount()
267         */
268        public KualiDecimal getFinancialDocumentMonth9LineAmount() {
269            return financialDocumentMonth9LineAmount;
270        }
271    
272        /**
273         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth9LineAmount(org.kuali.rice.kns.util.KualiDecimal)
274         */
275        public void setFinancialDocumentMonth9LineAmount(KualiDecimal financialDocumentMonth9LineAmount) {
276            if (financialDocumentMonth9LineAmount != null) {
277                this.financialDocumentMonth9LineAmount = financialDocumentMonth9LineAmount;
278            }
279        }
280    
281        /**
282         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth10LineAmount()
283         */
284        public KualiDecimal getFinancialDocumentMonth10LineAmount() {
285            return financialDocumentMonth10LineAmount;
286        }
287    
288        /**
289         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth10LineAmount(org.kuali.rice.kns.util.KualiDecimal)
290         */
291        public void setFinancialDocumentMonth10LineAmount(KualiDecimal financialDocumentMonth10LineAmount) {
292            if (financialDocumentMonth10LineAmount != null) {
293                this.financialDocumentMonth10LineAmount = financialDocumentMonth10LineAmount;
294            }
295        }
296    
297        /**
298         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth11LineAmount()
299         */
300        public KualiDecimal getFinancialDocumentMonth11LineAmount() {
301            return financialDocumentMonth11LineAmount;
302        }
303    
304        /**
305         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth11LineAmount(org.kuali.rice.kns.util.KualiDecimal)
306         */
307        public void setFinancialDocumentMonth11LineAmount(KualiDecimal financialDocumentMonth11LineAmount) {
308            if (financialDocumentMonth11LineAmount != null) {
309                this.financialDocumentMonth11LineAmount = financialDocumentMonth11LineAmount;
310            }
311        }
312    
313    
314        /**
315         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#getFinancialDocumentMonth12LineAmount()
316         */
317        public KualiDecimal getFinancialDocumentMonth12LineAmount() {
318            return financialDocumentMonth12LineAmount;
319        }
320    
321        /**
322         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#setFinancialDocumentMonth12LineAmount(org.kuali.rice.kns.util.KualiDecimal)
323         */
324        public void setFinancialDocumentMonth12LineAmount(KualiDecimal financialDocumentMonth12LineAmount) {
325            if (financialDocumentMonth12LineAmount != null) {
326                this.financialDocumentMonth12LineAmount = financialDocumentMonth12LineAmount;
327            }
328        }
329    
330        /**
331         * Gets the fringeBenefitIndicator attribute.
332         * 
333         * @return Returns the fringeBenefitIndicator.
334         */
335        public boolean isFringeBenefitIndicator() {
336            return fringeBenefitIndicator;
337        }
338    
339        /**
340         * Sets the fringeBenefitIndicator attribute value.
341         * 
342         * @param fringeBenefitIndicator The fringeBenefitIndicator to set.
343         */
344        public void setFringeBenefitIndicator(boolean fringeBenefitIndicator) {
345            this.fringeBenefitIndicator = fringeBenefitIndicator;
346        }
347    
348        /**
349         * @see org.kuali.kfs.fp.businessobject.BudgetAdjustmentAccountingLine#clearFinancialDocumentMonthLineAmounts()
350         */
351        public void clearFinancialDocumentMonthLineAmounts() {
352            financialDocumentMonth1LineAmount = KualiDecimal.ZERO;
353            financialDocumentMonth2LineAmount = KualiDecimal.ZERO;
354            financialDocumentMonth3LineAmount = KualiDecimal.ZERO;
355            financialDocumentMonth4LineAmount = KualiDecimal.ZERO;
356            financialDocumentMonth5LineAmount = KualiDecimal.ZERO;
357            financialDocumentMonth6LineAmount = KualiDecimal.ZERO;
358            financialDocumentMonth7LineAmount = KualiDecimal.ZERO;
359            financialDocumentMonth8LineAmount = KualiDecimal.ZERO;
360            financialDocumentMonth9LineAmount = KualiDecimal.ZERO;
361            financialDocumentMonth10LineAmount = KualiDecimal.ZERO;
362            financialDocumentMonth11LineAmount = KualiDecimal.ZERO;
363            financialDocumentMonth12LineAmount = KualiDecimal.ZERO;
364        }
365    
366        /**
367         * @see org.kuali.kfs.sys.businessobject.AccountingLineBase#isSourceAccountingLine()
368         */
369        @Override
370        public boolean isSourceAccountingLine() {
371            return true;
372        }
373    
374        /**
375         * @see org.kuali.kfs.sys.businessobject.AccountingLineBase#isTargetAccountingLine()
376         */
377        @Override
378        public boolean isTargetAccountingLine() {
379            return false;
380        }
381        
382        
383    }