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
017 package org.kuali.kfs.fp.businessobject;
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.kfs.sys.KFSPropertyConstants;
026 import org.kuali.kfs.sys.businessobject.AccountingLineBase;
027 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
028 import org.kuali.rice.kns.util.KualiDecimal;
029 import org.kuali.rice.kns.util.TypedArrayList;
030
031 /**
032 * This class is used to represent a procurement card transaction detail business object.
033 */
034 public class ProcurementCardTransactionDetail extends PersistableBusinessObjectBase {
035
036 private String documentNumber;
037 private Integer financialDocumentTransactionLineNumber;
038 private Date transactionDate;
039 private String transactionReferenceNumber;
040 private Date transactionPostingDate;
041 private String transactionOriginalCurrencyCode;
042 private String transactionBillingCurrencyCode;
043 private KualiDecimal transactionOriginalCurrencyAmount;
044 private BigDecimal transactionCurrencyExchangeRate;
045 private KualiDecimal transactionSettlementAmount;
046 private KualiDecimal transactionSalesTaxAmount;
047 private boolean transactionTaxExemptIndicator;
048 private boolean transactionPurchaseIdentifierIndicator;
049 private String transactionPurchaseIdentifierDescription;
050 private String transactionUnitContactName;
051 private String transactionTravelAuthorizationCode;
052 private String transactionPointOfSaleCode;
053 private Date transactionCycleStartDate;
054 private Date transactionCycleEndDate;
055 private KualiDecimal transactionTotalAmount;
056
057 private ProcurementCardVendor procurementCardVendor;
058
059 private List sourceAccountingLines;
060 private List targetAccountingLines;
061
062 /**
063 * Default constructor.
064 */
065 public ProcurementCardTransactionDetail() {
066 sourceAccountingLines = new TypedArrayList(ProcurementCardSourceAccountingLine.class);
067 targetAccountingLines = new TypedArrayList(ProcurementCardTargetAccountingLine.class);
068 }
069
070 /**
071 * @see org.kuali.rice.kns.document.TransactionalDocument#getTargetTotal()
072 */
073 public KualiDecimal getTargetTotal() {
074 KualiDecimal total = KualiDecimal.ZERO;
075 AccountingLineBase al = null;
076 Iterator iter = getTargetAccountingLines().iterator();
077 while (iter.hasNext()) {
078 al = (AccountingLineBase) iter.next();
079
080 KualiDecimal amount = al.getAmount();
081 if (amount != null) {
082 total = total.add(amount);
083 }
084 }
085 return total;
086 }
087
088 /**
089 * Gets the documentNumber attribute.
090 *
091 * @return Returns the documentNumber
092 */
093 public String getDocumentNumber() {
094 return documentNumber;
095 }
096
097 /**
098 * Sets the documentNumber attribute.
099 *
100 * @param documentNumber The documentNumber to set.
101 */
102 public void setDocumentNumber(String documentNumber) {
103 this.documentNumber = documentNumber;
104 }
105
106
107 /**
108 * Gets the financialDocumentTransactionLineNumber attribute.
109 *
110 * @return Returns the financialDocumentTransactionLineNumber
111 */
112 public Integer getFinancialDocumentTransactionLineNumber() {
113 return financialDocumentTransactionLineNumber;
114 }
115
116 /**
117 * Sets the financialDocumentTransactionLineNumber attribute.
118 *
119 * @param financialDocumentTransactionLineNumber The financialDocumentTransactionLineNumber to set.
120 */
121 public void setFinancialDocumentTransactionLineNumber(Integer financialDocumentTransactionLineNumber) {
122 this.financialDocumentTransactionLineNumber = financialDocumentTransactionLineNumber;
123 }
124
125
126 /**
127 * Gets the transactionDate attribute.
128 *
129 * @return Returns the transactionDate
130 */
131 public Date getTransactionDate() {
132 return transactionDate;
133 }
134
135 /**
136 * Sets the transactionDate attribute.
137 *
138 * @param transactionDate The transactionDate to set.
139 */
140 public void setTransactionDate(Date transactionDate) {
141 this.transactionDate = transactionDate;
142 }
143
144
145 /**
146 * Gets the transactionReferenceNumber attribute.
147 *
148 * @return Returns the transactionReferenceNumber
149 */
150 public String getTransactionReferenceNumber() {
151 return transactionReferenceNumber;
152 }
153
154 /**
155 * Sets the transactionReferenceNumber attribute.
156 *
157 * @param transactionReferenceNumber The transactionReferenceNumber to set.
158 */
159 public void setTransactionReferenceNumber(String transactionReferenceNumber) {
160 this.transactionReferenceNumber = transactionReferenceNumber;
161 }
162
163
164 /**
165 * Gets the transactionPostingDate attribute.
166 *
167 * @return Returns the transactionPostingDate
168 */
169 public Date getTransactionPostingDate() {
170 return transactionPostingDate;
171 }
172
173 /**
174 * Sets the transactionPostingDate attribute.
175 *
176 * @param transactionPostingDate The transactionPostingDate to set.
177 */
178 public void setTransactionPostingDate(Date transactionPostingDate) {
179 this.transactionPostingDate = transactionPostingDate;
180 }
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(String transactionOriginalCurrencyCode) {
198 this.transactionOriginalCurrencyCode = transactionOriginalCurrencyCode;
199 }
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(String transactionBillingCurrencyCode) {
217 this.transactionBillingCurrencyCode = transactionBillingCurrencyCode;
218 }
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(KualiDecimal transactionOriginalCurrencyAmount) {
236 this.transactionOriginalCurrencyAmount = transactionOriginalCurrencyAmount;
237 }
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(BigDecimal transactionCurrencyExchangeRate) {
255 this.transactionCurrencyExchangeRate = transactionCurrencyExchangeRate;
256 }
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(KualiDecimal transactionSettlementAmount) {
274 this.transactionSettlementAmount = transactionSettlementAmount;
275 }
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(KualiDecimal transactionSalesTaxAmount) {
293 this.transactionSalesTaxAmount = transactionSalesTaxAmount;
294 }
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(boolean transactionTaxExemptIndicator) {
312 this.transactionTaxExemptIndicator = transactionTaxExemptIndicator;
313 }
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(boolean transactionPurchaseIdentifierIndicator) {
331 this.transactionPurchaseIdentifierIndicator = transactionPurchaseIdentifierIndicator;
332 }
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(String transactionPurchaseIdentifierDescription) {
350 this.transactionPurchaseIdentifierDescription = transactionPurchaseIdentifierDescription;
351 }
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(String transactionUnitContactName) {
369 this.transactionUnitContactName = transactionUnitContactName;
370 }
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(String transactionTravelAuthorizationCode) {
388 this.transactionTravelAuthorizationCode = transactionTravelAuthorizationCode;
389 }
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(String transactionPointOfSaleCode) {
407 this.transactionPointOfSaleCode = transactionPointOfSaleCode;
408 }
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 /**
422 * Sets the sourceAccountingLines attribute value.
423 *
424 * @param sourceAccountingLines The sourceAccountingLines to set.
425 */
426 public void setSourceAccountingLines(List sourceAccountingLines) {
427 this.sourceAccountingLines = sourceAccountingLines;
428 }
429
430
431 /**
432 * Gets the targetAccountingLines attribute.
433 *
434 * @return Returns the targetAccountingLines.
435 */
436 public List getTargetAccountingLines() {
437 return targetAccountingLines;
438 }
439
440
441 /**
442 * Sets the targetAccountingLines attribute value.
443 *
444 * @param targetAccountingLines The targetAccountingLines to set.
445 */
446 public void setTargetAccountingLines(List targetAccountingLines) {
447 this.targetAccountingLines = targetAccountingLines;
448 }
449
450
451 /**
452 * Gets the transactionCycleEndDate attribute.
453 *
454 * @return Returns the transactionCycleEndDate.
455 */
456 public Date getTransactionCycleEndDate() {
457 return transactionCycleEndDate;
458 }
459
460 /**
461 * Sets the transactionCycleEndDate attribute value.
462 *
463 * @param transactionCycleEndDate The transactionCycleEndDate to set.
464 */
465 public void setTransactionCycleEndDate(Date transactionCycleEndDate) {
466 this.transactionCycleEndDate = transactionCycleEndDate;
467 }
468
469 /**
470 * Gets the transactionCycleStartDate attribute.
471 *
472 * @return Returns the transactionCycleStartDate.
473 */
474 public Date getTransactionCycleStartDate() {
475 return transactionCycleStartDate;
476 }
477
478 /**
479 * Sets the transactionCycleStartDate attribute value.
480 *
481 * @param transactionCycleStartDate The transactionCycleStartDate to set.
482 */
483 public void setTransactionCycleStartDate(Date transactionCycleStartDate) {
484 this.transactionCycleStartDate = transactionCycleStartDate;
485 }
486
487 /**
488 * Gets the procurementCardVendor attribute.
489 *
490 * @return Returns the procurementCardVendor.
491 */
492 public ProcurementCardVendor getProcurementCardVendor() {
493 return procurementCardVendor;
494 }
495
496 /**
497 * Sets the procurementCardVendor attribute value.
498 *
499 * @param procurementCardVendor The procurementCardVendor to set.
500 */
501 public void setProcurementCardVendor(ProcurementCardVendor procurementCardVendor) {
502 this.procurementCardVendor = procurementCardVendor;
503 }
504
505 /**
506 * Gets the transactionTotalAmount attribute.
507 *
508 * @return Returns the transactionTotalAmount.
509 */
510 public KualiDecimal getTransactionTotalAmount() {
511 return transactionTotalAmount;
512 }
513
514 /**
515 * Sets the transactionTotalAmount attribute value.
516 *
517 * @param transactionTotalAmount The transactionTotalAmount to set.
518 */
519 public void setTransactionTotalAmount(KualiDecimal transactionTotalAmount) {
520 this.transactionTotalAmount = transactionTotalAmount;
521 }
522
523 /**
524 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
525 */
526 protected LinkedHashMap toStringMapper() {
527 LinkedHashMap m = new LinkedHashMap();
528 m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.documentNumber);
529 if (this.financialDocumentTransactionLineNumber != null) {
530 m.put("financialDocumentTransactionLineNumber", this.financialDocumentTransactionLineNumber.toString());
531 }
532 return m;
533 }
534
535 }