001: /*
002: * Copyright 2005-2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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/ecl1.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.module.gl.bo;
017:
018: import java.util.Date;
019: import java.util.LinkedHashMap;
020:
021: import org.kuali.core.bo.DocumentType;
022: import org.kuali.core.bo.PersistableBusinessObjectBase;
023: import org.kuali.core.util.KualiDecimal;
024: import org.kuali.kfs.KFSPropertyConstants;
025: import org.kuali.kfs.bo.Options;
026: import org.kuali.kfs.bo.OriginationCode;
027: import org.kuali.module.chart.bo.Account;
028: import org.kuali.module.chart.bo.Chart;
029: import org.kuali.module.chart.bo.ObjectCode;
030: import org.kuali.module.chart.bo.SubAccount;
031: import org.kuali.module.chart.bo.SubObjCd;
032: import org.kuali.module.chart.bo.codes.BalanceTyp;
033:
034: /**
035: * Represents the encumbrance amount for a specific university fiscal year,
036: * chart of accounts code, account number, sub account number, object code,
037: * sub object code, balance type code, document type code, origin code, and document number.
038: * This encumbrance object contains amounts for actual enumbrance amount, closed amount,
039: * outstanding amount
040: *
041: */
042: public class Encumbrance extends PersistableBusinessObjectBase {
043: static final long serialVersionUID = -7494473472438516396L;
044:
045: private Integer universityFiscalYear;
046: private String chartOfAccountsCode;
047: private String accountNumber;
048: private String subAccountNumber;
049: private String objectCode;
050: private String subObjectCode;
051: private String balanceTypeCode;
052: private String documentTypeCode;
053: private String originCode;
054: private String documentNumber;
055: private String transactionEncumbranceDescription;
056: private Date transactionEncumbranceDate;
057: private KualiDecimal accountLineEncumbranceAmount;
058: private KualiDecimal accountLineEncumbranceClosedAmount;
059: private KualiDecimal accountLineEncumbranceOutstandingAmount;
060: private String accountLineEncumbrancePurgeCode;
061: private Date timestamp;
062:
063: private SubAccount subAccount;
064: private Chart chart;
065: private Account account;
066: private SubObjCd financialSubObject;
067: private DocumentType documentType;
068:
069: private ObjectCode financialObject;
070: private BalanceTyp balanceType;
071: private OriginationCode originationCode;
072: private Options option;
073:
074: private TransientBalanceInquiryAttributes dummyBusinessObject;
075:
076: public Encumbrance() {
077: }
078:
079: public Encumbrance(Transaction t) {
080: universityFiscalYear = t.getUniversityFiscalYear();
081: chartOfAccountsCode = t.getChartOfAccountsCode();
082: accountNumber = t.getAccountNumber();
083: subAccountNumber = t.getSubAccountNumber();
084: objectCode = t.getFinancialObjectCode();
085: subObjectCode = t.getFinancialSubObjectCode();
086: balanceTypeCode = t.getFinancialBalanceTypeCode();
087: documentTypeCode = t.getFinancialDocumentTypeCode();
088: originCode = t.getFinancialSystemOriginationCode();
089: documentNumber = t.getDocumentNumber();
090: transactionEncumbranceDescription = t
091: .getTransactionLedgerEntryDescription();
092: transactionEncumbranceDate = t.getTransactionDate();
093: accountLineEncumbranceAmount = new KualiDecimal("0");
094: accountLineEncumbranceClosedAmount = new KualiDecimal("0");
095: accountLineEncumbrancePurgeCode = " ";
096: this .dummyBusinessObject = new TransientBalanceInquiryAttributes();
097: }
098:
099: protected LinkedHashMap toStringMapper() {
100: LinkedHashMap map = new LinkedHashMap();
101: map.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR,
102: getUniversityFiscalYear());
103: map.put(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE,
104: getChartOfAccountsCode());
105: map
106: .put(KFSPropertyConstants.ACCOUNT_NUMBER,
107: getAccountNumber());
108: map.put(KFSPropertyConstants.SUB_ACCOUNT_NUMBER,
109: getSubAccountNumber());
110: map.put(KFSPropertyConstants.OBJECT_CODE, getObjectCode());
111: map.put(KFSPropertyConstants.SUB_OBJECT_CODE,
112: getSubObjectCode());
113: map.put(KFSPropertyConstants.BALANCE_TYPE_CODE,
114: getBalanceTypeCode());
115: map.put(KFSPropertyConstants.DOCUMENT_TYPE_CODE,
116: getDocumentTypeCode());
117: map.put(KFSPropertyConstants.ORIGIN_CODE, getOriginCode());
118: map.put(KFSPropertyConstants.DOCUMENT_NUMBER,
119: getDocumentNumber());
120: map.put(KFSPropertyConstants.ACCOUNT_LINE_ENCUMBRANCE_AMOUNT,
121: getAccountLineEncumbranceAmount());
122: map
123: .put(
124: KFSPropertyConstants.ACCOUNT_LINE_ENCUMBRANCE_CLOSED_AMOUNT,
125: getAccountLineEncumbranceClosedAmount());
126: return map;
127: }
128:
129: public OriginationCode getOriginationCode() {
130: return originationCode;
131: }
132:
133: public void setOriginationCode(OriginationCode originationCode) {
134: this .originationCode = originationCode;
135: }
136:
137: /**
138: * @return Returns the accountLineEncumbranceAmount.
139: */
140: public KualiDecimal getAccountLineEncumbranceAmount() {
141: return accountLineEncumbranceAmount;
142: }
143:
144: /**
145: * @param accountLineEncumbranceAmount The accountLineEncumbranceAmount to set.
146: */
147: public void setAccountLineEncumbranceAmount(
148: KualiDecimal accountLineEncumbranceAmount) {
149: this .accountLineEncumbranceAmount = accountLineEncumbranceAmount;
150: }
151:
152: /**
153: * @return Returns the accountLineEncumbranceClearedAmount.
154: */
155: public KualiDecimal getAccountLineEncumbranceClosedAmount() {
156: return accountLineEncumbranceClosedAmount;
157: }
158:
159: public void setAccountLineEncumbranceOutstandingAmount() {
160: }
161:
162: public KualiDecimal getAccountLineEncumbranceOutstandingAmount() {
163: return accountLineEncumbranceAmount
164: .subtract(accountLineEncumbranceClosedAmount);
165: }
166:
167: /**
168: * @param accountLineEncumbranceClearedAmount The accountLineEncumbranceClearedAmount to set.
169: */
170: public void setAccountLineEncumbranceClosedAmount(
171: KualiDecimal accountLineEncumbranceClosedAmount) {
172: this .accountLineEncumbranceClosedAmount = accountLineEncumbranceClosedAmount;
173: }
174:
175: /**
176: * @return Returns the accountLineEncumbrancePrg.
177: */
178: public String getAccountLineEncumbrancePurgeCode() {
179: return accountLineEncumbrancePurgeCode;
180: }
181:
182: /**
183: * @param accountLineEncumbrancePrg The accountLineEncumbrancePrg to set.
184: */
185: public void setAccountLineEncumbrancePurgeCode(
186: String accountLineEncumbrancePurgeCode) {
187: this .accountLineEncumbrancePurgeCode = accountLineEncumbrancePurgeCode;
188: }
189:
190: /**
191: * @return Returns the accountNumber.
192: */
193: public String getAccountNumber() {
194: return accountNumber;
195: }
196:
197: /**
198: * @param accountNumber The accountNumber to set.
199: */
200: public void setAccountNumber(String accountNumber) {
201: this .accountNumber = accountNumber;
202: }
203:
204: /**
205: * @return Returns the balanceTypeCode.
206: */
207: public String getBalanceTypeCode() {
208: return balanceTypeCode;
209: }
210:
211: /**
212: * @param balanceTypeCode The balanceTypeCode to set.
213: */
214: public void setBalanceTypeCode(String balanceTypeCode) {
215: this .balanceTypeCode = balanceTypeCode;
216: }
217:
218: /**
219: * @return Returns the chartOfAccountsCode.
220: */
221: public String getChartOfAccountsCode() {
222: return chartOfAccountsCode;
223: }
224:
225: /**
226: * @param chartOfAccountsCode The chartOfAccountsCode to set.
227: */
228: public void setChartOfAccountsCode(String chartOfAccountsCode) {
229: this .chartOfAccountsCode = chartOfAccountsCode;
230: }
231:
232: /**
233: * @return Returns the documentNumber.
234: */
235: public String getDocumentNumber() {
236: return documentNumber;
237: }
238:
239: /**
240: * @param documentNumber The documentNumber to set.
241: */
242: public void setDocumentNumber(String documentNumber) {
243: this .documentNumber = documentNumber;
244: }
245:
246: /**
247: * @return Returns the documentTypeCode.
248: */
249: public String getDocumentTypeCode() {
250: return documentTypeCode;
251: }
252:
253: /**
254: * @param documentTypeCode The documentTypeCode to set.
255: */
256: public void setDocumentTypeCode(String documentTypeCode) {
257: this .documentTypeCode = documentTypeCode;
258: }
259:
260: /**
261: * @return Returns the objectCode.
262: */
263: public String getObjectCode() {
264: return objectCode;
265: }
266:
267: /**
268: * @param objectCode The objectCode to set.
269: */
270: public void setObjectCode(String objectCode) {
271: this .objectCode = objectCode;
272: }
273:
274: /**
275: * @return Returns the originCode.
276: */
277: public String getOriginCode() {
278: return originCode;
279: }
280:
281: /**
282: * @param originCode The originCode to set.
283: */
284: public void setOriginCode(String originCode) {
285: this .originCode = originCode;
286: }
287:
288: /**
289: * @return Returns the subAccountNumber.
290: */
291: public String getSubAccountNumber() {
292: return subAccountNumber;
293: }
294:
295: /**
296: * @param subAccountNumber The subAccountNumber to set.
297: */
298: public void setSubAccountNumber(String subAccountNumber) {
299: this .subAccountNumber = subAccountNumber;
300: }
301:
302: /**
303: * @return Returns the subObjectCode.
304: */
305: public String getSubObjectCode() {
306: return subObjectCode;
307: }
308:
309: /**
310: * @param subObjectCode The subObjectCode to set.
311: */
312: public void setSubObjectCode(String subObjectCode) {
313: this .subObjectCode = subObjectCode;
314: }
315:
316: /**
317: * @return Returns the timestamp.
318: */
319: public Date getTimestamp() {
320: return timestamp;
321: }
322:
323: /**
324: * @param timestamp The timestamp to set.
325: */
326: public void setTimestamp(Date timestamp) {
327: this .timestamp = timestamp;
328: }
329:
330: /**
331: * @return Returns the transactionEncumbranceDate.
332: */
333: public Date getTransactionEncumbranceDate() {
334: return transactionEncumbranceDate;
335: }
336:
337: /**
338: * @param transactionEncumbranceDate The transactionEncumbranceDate to set.
339: */
340: public void setTransactionEncumbranceDate(
341: Date transactionEncumbranceDate) {
342: this .transactionEncumbranceDate = transactionEncumbranceDate;
343: }
344:
345: /**
346: * @return Returns the transactionEncumbranceDescription.
347: */
348: public String getTransactionEncumbranceDescription() {
349: return transactionEncumbranceDescription;
350: }
351:
352: /**
353: * @param transactionEncumbranceDescription The transactionEncumbranceDescription to set.
354: */
355: public void setTransactionEncumbranceDescription(
356: String transactionEncumbranceDescription) {
357: this .transactionEncumbranceDescription = transactionEncumbranceDescription;
358: }
359:
360: /**
361: * @return Returns the universityFiscalYear.
362: */
363: public Integer getUniversityFiscalYear() {
364: return universityFiscalYear;
365: }
366:
367: /**
368: * @param universityFiscalYear The universityFiscalYear to set.
369: */
370: public void setUniversityFiscalYear(Integer universityFiscalYear) {
371: this .universityFiscalYear = universityFiscalYear;
372: }
373:
374: /**
375: * Gets the account attribute.
376: *
377: * @return Returns the account.
378: */
379: public Account getAccount() {
380: return account;
381: }
382:
383: /**
384: * Sets the account attribute value.
385: *
386: * @param account The account to set.
387: */
388: public void setAccount(Account account) {
389: this .account = account;
390: }
391:
392: /**
393: * Gets the chart attribute.
394: *
395: * @return Returns the chart.
396: */
397: public Chart getChart() {
398: return chart;
399: }
400:
401: /**
402: * Sets the chart attribute value.
403: *
404: * @param chart The chart to set.
405: */
406: public void setChart(Chart chart) {
407: this .chart = chart;
408: }
409:
410: /**
411: * Gets the financialObject attribute.
412: *
413: * @return Returns the financialObject.
414: */
415: public ObjectCode getFinancialObject() {
416: return financialObject;
417: }
418:
419: /**
420: * Sets the financialObject attribute value.
421: *
422: * @param financialObject The financialObject to set.
423: */
424: public void setFinancialObject(ObjectCode financialObject) {
425: this .financialObject = financialObject;
426: }
427:
428: /**
429: * Gets the balanceType attribute.
430: *
431: * @return Returns the balanceType.
432: */
433: public BalanceTyp getBalanceType() {
434: return balanceType;
435: }
436:
437: /**
438: * Sets the balanceType attribute value.
439: *
440: * @param balanceType The balanceType to set.
441: */
442: public void setBalanceType(BalanceTyp balanceType) {
443: this .balanceType = balanceType;
444: }
445:
446: /**
447: * Gets the dummyBusinessObject attribute.
448: *
449: * @return Returns the dummyBusinessObject.
450: */
451: public TransientBalanceInquiryAttributes getDummyBusinessObject() {
452: return dummyBusinessObject;
453: }
454:
455: /**
456: * Sets the dummyBusinessObject attribute value.
457: *
458: * @param dummyBusinessObject The dummyBusinessObject to set.
459: */
460: public void setDummyBusinessObject(
461: TransientBalanceInquiryAttributes dummyBusinessObject) {
462: this .dummyBusinessObject = dummyBusinessObject;
463: }
464:
465: /**
466: * Gets the option attribute.
467: *
468: * @return Returns the option.
469: */
470: public Options getOption() {
471: return option;
472: }
473:
474: /**
475: * Sets the option attribute value.
476: *
477: * @param option The option to set.
478: */
479: public void setOption(Options option) {
480: this .option = option;
481: }
482:
483: /**
484: * Gets the subAccount attribute.
485: *
486: * @return Returns the subAccount.
487: */
488: public SubAccount getSubAccount() {
489: return subAccount;
490: }
491:
492: /**
493: * Sets the subAccount attribute value.
494: *
495: * @param subAccount The subAccount to set.
496: */
497: public void setSubAccount(SubAccount subAccount) {
498: this .subAccount = subAccount;
499: }
500:
501: /**
502: * Gets the documentType attribute.
503: *
504: * @return Returns the documentType.
505: */
506: public DocumentType getDocumentType() {
507: return documentType;
508: }
509:
510: /**
511: * Sets the documentType attribute value.
512: *
513: * @param documentType The documentType to set.
514: */
515: public void setDocumentType(DocumentType documentType) {
516: this .documentType = documentType;
517: }
518:
519: /**
520: * Gets the financialSubObject attribute.
521: *
522: * @return Returns the financialSubObject.
523: */
524: public SubObjCd getFinancialSubObject() {
525: return financialSubObject;
526: }
527:
528: /**
529: * Sets the financialSubObject attribute value.
530: *
531: * @param financialSubObject The financialSubObject to set.
532: */
533: public void setFinancialSubObject(SubObjCd financialSubObject) {
534: this.financialSubObject = financialSubObject;
535: }
536: }
|