001: /*
002: * Copyright 2006-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:
017: package org.kuali.module.financial.bo;
018:
019: import java.math.BigDecimal;
020: import java.sql.Date;
021: import java.util.Iterator;
022: import java.util.LinkedHashMap;
023: import java.util.List;
024:
025: import org.kuali.core.bo.PersistableBusinessObjectBase;
026: import org.kuali.core.util.KualiDecimal;
027: import org.kuali.core.util.TypedArrayList;
028: import org.kuali.kfs.KFSPropertyConstants;
029: import org.kuali.kfs.bo.AccountingLineBase;
030:
031: /**
032: * This class is used to represent a procurement card transaction detail business object.
033: */
034: public class ProcurementCardTransactionDetail extends
035: PersistableBusinessObjectBase {
036:
037: private String documentNumber;
038: private Integer financialDocumentTransactionLineNumber;
039: private Date transactionDate;
040: private String transactionReferenceNumber;
041: private Date transactionPostingDate;
042: private String transactionOriginalCurrencyCode;
043: private String transactionBillingCurrencyCode;
044: private KualiDecimal transactionOriginalCurrencyAmount;
045: private BigDecimal transactionCurrencyExchangeRate;
046: private KualiDecimal transactionSettlementAmount;
047: private KualiDecimal transactionSalesTaxAmount;
048: private boolean transactionTaxExemptIndicator;
049: private boolean transactionPurchaseIdentifierIndicator;
050: private String transactionPurchaseIdentifierDescription;
051: private String transactionUnitContactName;
052: private String transactionTravelAuthorizationCode;
053: private String transactionPointOfSaleCode;
054: private Date transactionCycleStartDate;
055: private Date transactionCycleEndDate;
056: private KualiDecimal transactionTotalAmount;
057:
058: private ProcurementCardVendor procurementCardVendor;
059:
060: private List sourceAccountingLines;
061: private List targetAccountingLines;
062:
063: /**
064: * Default constructor.
065: */
066: public ProcurementCardTransactionDetail() {
067: sourceAccountingLines = new TypedArrayList(
068: ProcurementCardSourceAccountingLine.class);
069: targetAccountingLines = new TypedArrayList(
070: ProcurementCardTargetAccountingLine.class);
071: }
072:
073: /**
074: * @see org.kuali.core.document.TransactionalDocument#getTargetTotal()
075: */
076: public KualiDecimal getTargetTotal() {
077: KualiDecimal total = new KualiDecimal(0);
078: AccountingLineBase al = null;
079: Iterator iter = getTargetAccountingLines().iterator();
080: while (iter.hasNext()) {
081: al = (AccountingLineBase) iter.next();
082:
083: KualiDecimal amount = al.getAmount();
084: if (amount != null) {
085: total = total.add(amount);
086: }
087: }
088: return total;
089: }
090:
091: /**
092: * Gets the documentNumber attribute.
093: *
094: * @return Returns the documentNumber
095: */
096: public String getDocumentNumber() {
097: return documentNumber;
098: }
099:
100: /**
101: * Sets the documentNumber attribute.
102: *
103: * @param documentNumber The documentNumber to set.
104: */
105: public void setDocumentNumber(String documentNumber) {
106: this .documentNumber = documentNumber;
107: }
108:
109: /**
110: * Gets the financialDocumentTransactionLineNumber attribute.
111: *
112: * @return Returns the financialDocumentTransactionLineNumber
113: */
114: public Integer getFinancialDocumentTransactionLineNumber() {
115: return financialDocumentTransactionLineNumber;
116: }
117:
118: /**
119: * Sets the financialDocumentTransactionLineNumber attribute.
120: *
121: * @param financialDocumentTransactionLineNumber The financialDocumentTransactionLineNumber to set.
122: */
123: public void setFinancialDocumentTransactionLineNumber(
124: Integer financialDocumentTransactionLineNumber) {
125: this .financialDocumentTransactionLineNumber = financialDocumentTransactionLineNumber;
126: }
127:
128: /**
129: * Gets the transactionDate attribute.
130: *
131: * @return Returns the transactionDate
132: */
133: public Date getTransactionDate() {
134: return transactionDate;
135: }
136:
137: /**
138: * Sets the transactionDate attribute.
139: *
140: * @param transactionDate The transactionDate to set.
141: */
142: public void setTransactionDate(Date transactionDate) {
143: this .transactionDate = transactionDate;
144: }
145:
146: /**
147: * Gets the transactionReferenceNumber attribute.
148: *
149: * @return Returns the transactionReferenceNumber
150: */
151: public String getTransactionReferenceNumber() {
152: return transactionReferenceNumber;
153: }
154:
155: /**
156: * Sets the transactionReferenceNumber attribute.
157: *
158: * @param transactionReferenceNumber The transactionReferenceNumber to set.
159: */
160: public void setTransactionReferenceNumber(
161: String transactionReferenceNumber) {
162: this .transactionReferenceNumber = transactionReferenceNumber;
163: }
164:
165: /**
166: * Gets the transactionPostingDate attribute.
167: *
168: * @return Returns the transactionPostingDate
169: */
170: public Date getTransactionPostingDate() {
171: return transactionPostingDate;
172: }
173:
174: /**
175: * Sets the transactionPostingDate attribute.
176: *
177: * @param transactionPostingDate The transactionPostingDate to set.
178: */
179: public void setTransactionPostingDate(Date transactionPostingDate) {
180: this .transactionPostingDate = transactionPostingDate;
181: }
182:
183: /**
184: * Gets the transactionOriginalCurrencyCode attribute.
185: *
186: * @return Returns the transactionOriginalCurrencyCode
187: */
188: public String getTransactionOriginalCurrencyCode() {
189: return transactionOriginalCurrencyCode;
190: }
191:
192: /**
193: * Sets the transactionOriginalCurrencyCode attribute.
194: *
195: * @param transactionOriginalCurrencyCode The transactionOriginalCurrencyCode to set.
196: */
197: public void setTransactionOriginalCurrencyCode(
198: String transactionOriginalCurrencyCode) {
199: this .transactionOriginalCurrencyCode = transactionOriginalCurrencyCode;
200: }
201:
202: /**
203: * Gets the transactionBillingCurrencyCode attribute.
204: *
205: * @return Returns the transactionBillingCurrencyCode
206: */
207: public String getTransactionBillingCurrencyCode() {
208: return transactionBillingCurrencyCode;
209: }
210:
211: /**
212: * Sets the transactionBillingCurrencyCode attribute.
213: *
214: * @param transactionBillingCurrencyCode The transactionBillingCurrencyCode to set.
215: */
216: public void setTransactionBillingCurrencyCode(
217: String transactionBillingCurrencyCode) {
218: this .transactionBillingCurrencyCode = transactionBillingCurrencyCode;
219: }
220:
221: /**
222: * Gets the transactionOriginalCurrencyAmount attribute.
223: *
224: * @return Returns the transactionOriginalCurrencyAmount
225: */
226: public KualiDecimal getTransactionOriginalCurrencyAmount() {
227: return transactionOriginalCurrencyAmount;
228: }
229:
230: /**
231: * Sets the transactionOriginalCurrencyAmount attribute.
232: *
233: * @param transactionOriginalCurrencyAmount The transactionOriginalCurrencyAmount to set.
234: */
235: public void setTransactionOriginalCurrencyAmount(
236: KualiDecimal transactionOriginalCurrencyAmount) {
237: this .transactionOriginalCurrencyAmount = transactionOriginalCurrencyAmount;
238: }
239:
240: /**
241: * Gets the transactionCurrencyExchangeRate attribute.
242: *
243: * @return Returns the transactionCurrencyExchangeRate
244: */
245: public BigDecimal getTransactionCurrencyExchangeRate() {
246: return transactionCurrencyExchangeRate;
247: }
248:
249: /**
250: * Sets the transactionCurrencyExchangeRate attribute.
251: *
252: * @param transactionCurrencyExchangeRate The transactionCurrencyExchangeRate to set.
253: */
254: public void setTransactionCurrencyExchangeRate(
255: BigDecimal transactionCurrencyExchangeRate) {
256: this .transactionCurrencyExchangeRate = transactionCurrencyExchangeRate;
257: }
258:
259: /**
260: * Gets the transactionSettlementAmount attribute.
261: *
262: * @return Returns the transactionSettlementAmount
263: */
264: public KualiDecimal getTransactionSettlementAmount() {
265: return transactionSettlementAmount;
266: }
267:
268: /**
269: * Sets the transactionSettlementAmount attribute.
270: *
271: * @param transactionSettlementAmount The transactionSettlementAmount to set.
272: */
273: public void setTransactionSettlementAmount(
274: KualiDecimal transactionSettlementAmount) {
275: this .transactionSettlementAmount = transactionSettlementAmount;
276: }
277:
278: /**
279: * Gets the transactionSalesTaxAmount attribute.
280: *
281: * @return Returns the transactionSalesTaxAmount
282: */
283: public KualiDecimal getTransactionSalesTaxAmount() {
284: return transactionSalesTaxAmount;
285: }
286:
287: /**
288: * Sets the transactionSalesTaxAmount attribute.
289: *
290: * @param transactionSalesTaxAmount The transactionSalesTaxAmount to set.
291: */
292: public void setTransactionSalesTaxAmount(
293: KualiDecimal transactionSalesTaxAmount) {
294: this .transactionSalesTaxAmount = transactionSalesTaxAmount;
295: }
296:
297: /**
298: * Gets the transactionTaxExemptIndicator attribute.
299: *
300: * @return Returns the transactionTaxExemptIndicator
301: */
302: public boolean getTransactionTaxExemptIndicator() {
303: return transactionTaxExemptIndicator;
304: }
305:
306: /**
307: * Sets the transactionTaxExemptIndicator attribute.
308: *
309: * @param transactionTaxExemptIndicator The transactionTaxExemptIndicator to set.
310: */
311: public void setTransactionTaxExemptIndicator(
312: boolean transactionTaxExemptIndicator) {
313: this .transactionTaxExemptIndicator = transactionTaxExemptIndicator;
314: }
315:
316: /**
317: * Gets the transactionPurchaseIdentifierIndicator attribute.
318: *
319: * @return Returns the transactionPurchaseIdentifierIndicator
320: */
321: public boolean getTransactionPurchaseIdentifierIndicator() {
322: return transactionPurchaseIdentifierIndicator;
323: }
324:
325: /**
326: * Sets the transactionPurchaseIdentifierIndicator attribute.
327: *
328: * @param transactionPurchaseIdentifierIndicator The transactionPurchaseIdentifierIndicator to set.
329: */
330: public void setTransactionPurchaseIdentifierIndicator(
331: boolean transactionPurchaseIdentifierIndicator) {
332: this .transactionPurchaseIdentifierIndicator = transactionPurchaseIdentifierIndicator;
333: }
334:
335: /**
336: * Gets the transactionPurchaseIdentifierDescription attribute.
337: *
338: * @return Returns the transactionPurchaseIdentifierDescription
339: */
340: public String getTransactionPurchaseIdentifierDescription() {
341: return transactionPurchaseIdentifierDescription;
342: }
343:
344: /**
345: * Sets the transactionPurchaseIdentifierDescription attribute.
346: *
347: * @param transactionPurchaseIdentifierDescription The transactionPurchaseIdentifierDescription to set.
348: */
349: public void setTransactionPurchaseIdentifierDescription(
350: String transactionPurchaseIdentifierDescription) {
351: this .transactionPurchaseIdentifierDescription = transactionPurchaseIdentifierDescription;
352: }
353:
354: /**
355: * Gets the transactionUnitContactName attribute.
356: *
357: * @return Returns the transactionUnitContactName
358: */
359: public String getTransactionUnitContactName() {
360: return transactionUnitContactName;
361: }
362:
363: /**
364: * Sets the transactionUnitContactName attribute.
365: *
366: * @param transactionUnitContactName The transactionUnitContactName to set.
367: */
368: public void setTransactionUnitContactName(
369: String transactionUnitContactName) {
370: this .transactionUnitContactName = transactionUnitContactName;
371: }
372:
373: /**
374: * Gets the transactionTravelAuthorizationCode attribute.
375: *
376: * @return Returns the transactionTravelAuthorizationCode
377: */
378: public String getTransactionTravelAuthorizationCode() {
379: return transactionTravelAuthorizationCode;
380: }
381:
382: /**
383: * Sets the transactionTravelAuthorizationCode attribute.
384: *
385: * @param transactionTravelAuthorizationCode The transactionTravelAuthorizationCode to set.
386: */
387: public void setTransactionTravelAuthorizationCode(
388: String transactionTravelAuthorizationCode) {
389: this .transactionTravelAuthorizationCode = transactionTravelAuthorizationCode;
390: }
391:
392: /**
393: * Gets the transactionPointOfSaleCode attribute.
394: *
395: * @return Returns the transactionPointOfSaleCode
396: */
397: public String getTransactionPointOfSaleCode() {
398: return transactionPointOfSaleCode;
399: }
400:
401: /**
402: * Sets the transactionPointOfSaleCode attribute.
403: *
404: * @param transactionPointOfSaleCode The transactionPointOfSaleCode to set.
405: */
406: public void setTransactionPointOfSaleCode(
407: String transactionPointOfSaleCode) {
408: this .transactionPointOfSaleCode = transactionPointOfSaleCode;
409: }
410:
411: /**
412: * Gets the sourceAccountingLines attribute.
413: *
414: * @return Returns the sourceAccountingLines.
415: */
416: public List getSourceAccountingLines() {
417: return sourceAccountingLines;
418: }
419:
420: /**
421: * Sets the sourceAccountingLines attribute value.
422: *
423: * @param sourceAccountingLines The sourceAccountingLines to set.
424: */
425: public void setSourceAccountingLines(List sourceAccountingLines) {
426: this .sourceAccountingLines = sourceAccountingLines;
427: }
428:
429: /**
430: * Gets the targetAccountingLines attribute.
431: *
432: * @return Returns the targetAccountingLines.
433: */
434: public List getTargetAccountingLines() {
435: return targetAccountingLines;
436: }
437:
438: /**
439: * Sets the targetAccountingLines attribute value.
440: *
441: * @param targetAccountingLines The targetAccountingLines to set.
442: */
443: public void setTargetAccountingLines(List targetAccountingLines) {
444: this .targetAccountingLines = targetAccountingLines;
445: }
446:
447: /**
448: * Gets the transactionCycleEndDate attribute.
449: *
450: * @return Returns the transactionCycleEndDate.
451: */
452: public Date getTransactionCycleEndDate() {
453: return transactionCycleEndDate;
454: }
455:
456: /**
457: * Sets the transactionCycleEndDate attribute value.
458: *
459: * @param transactionCycleEndDate The transactionCycleEndDate to set.
460: */
461: public void setTransactionCycleEndDate(Date transactionCycleEndDate) {
462: this .transactionCycleEndDate = transactionCycleEndDate;
463: }
464:
465: /**
466: * Gets the transactionCycleStartDate attribute.
467: *
468: * @return Returns the transactionCycleStartDate.
469: */
470: public Date getTransactionCycleStartDate() {
471: return transactionCycleStartDate;
472: }
473:
474: /**
475: * Sets the transactionCycleStartDate attribute value.
476: *
477: * @param transactionCycleStartDate The transactionCycleStartDate to set.
478: */
479: public void setTransactionCycleStartDate(
480: Date transactionCycleStartDate) {
481: this .transactionCycleStartDate = transactionCycleStartDate;
482: }
483:
484: /**
485: * Gets the procurementCardVendor attribute.
486: *
487: * @return Returns the procurementCardVendor.
488: */
489: public ProcurementCardVendor getProcurementCardVendor() {
490: return procurementCardVendor;
491: }
492:
493: /**
494: * Sets the procurementCardVendor attribute value.
495: *
496: * @param procurementCardVendor The procurementCardVendor to set.
497: */
498: public void setProcurementCardVendor(
499: ProcurementCardVendor procurementCardVendor) {
500: this .procurementCardVendor = procurementCardVendor;
501: }
502:
503: /**
504: * Gets the transactionTotalAmount attribute.
505: *
506: * @return Returns the transactionTotalAmount.
507: */
508: public KualiDecimal getTransactionTotalAmount() {
509: return transactionTotalAmount;
510: }
511:
512: /**
513: * Sets the transactionTotalAmount attribute value.
514: *
515: * @param transactionTotalAmount The transactionTotalAmount to set.
516: */
517: public void setTransactionTotalAmount(
518: KualiDecimal transactionTotalAmount) {
519: this .transactionTotalAmount = transactionTotalAmount;
520: }
521:
522: /**
523: * @see org.kuali.core.bo.BusinessObjectBase#toStringMapper()
524: */
525: protected LinkedHashMap toStringMapper() {
526: LinkedHashMap m = new LinkedHashMap();
527: m
528: .put(KFSPropertyConstants.DOCUMENT_NUMBER,
529: this .documentNumber);
530: if (this .financialDocumentTransactionLineNumber != null) {
531: m.put("financialDocumentTransactionLineNumber",
532: this.financialDocumentTransactionLineNumber
533: .toString());
534: }
535: return m;
536: }
537:
538: }
|