/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.fp.businessobject;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import org.apache.struts.upload.FormFile;
import org.kuali.kfs.sys.KFSPropertyConstants;
import org.kuali.kfs.sys.businessobject.AccountingLineBase;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
/**
* This class is used to represent a procurement card transaction detail business object.
*/
public class ProcurementCardTransactionDetail extends PersistableBusinessObjectBase {
private String documentNumber;
private Integer financialDocumentTransactionLineNumber;
private Date transactionDate;
private String transactionReferenceNumber;
private Date transactionPostingDate;
private String transactionOriginalCurrencyCode;
private String transactionBillingCurrencyCode;
private KualiDecimal transactionOriginalCurrencyAmount;
private BigDecimal transactionCurrencyExchangeRate;
private KualiDecimal transactionSettlementAmount;
private KualiDecimal transactionSalesTaxAmount;
private boolean transactionTaxExemptIndicator;
private boolean transactionPurchaseIdentifierIndicator;
private String transactionPurchaseIdentifierDescription;
private String transactionUnitContactName;
private String transactionTravelAuthorizationCode;
private String transactionPointOfSaleCode;
private Date transactionCycleStartDate;
private Date transactionCycleEndDate;
private KualiDecimal transactionTotalAmount;
private ProcurementCardVendor procurementCardVendor;
private List sourceAccountingLines;
private List targetAccountingLines;
protected FormFile targetFile;
/**
* Default constructor.
*/
public ProcurementCardTransactionDetail() {
sourceAccountingLines = new ArrayList<ProcurementCardSourceAccountingLine>();
targetAccountingLines = new ArrayList<ProcurementCardTargetAccountingLine>();
}
/**
* @see org.kuali.rice.krad.document.TransactionalDocument#getTargetTotal()
*/
public KualiDecimal getTargetTotal() {
KualiDecimal total = KualiDecimal.ZERO;
AccountingLineBase al = null;
Iterator iter = getTargetAccountingLines().iterator();
while (iter.hasNext()) {
al = (AccountingLineBase) iter.next();
KualiDecimal amount = al.getAmount();
if (amount != null) {
total = total.add(amount);
}
}
return total;
}
/**
* Gets the documentNumber attribute.
*
* @return Returns the documentNumber
*/
public String getDocumentNumber() {
return documentNumber;
}
/**
* Sets the documentNumber attribute.
*
* @param documentNumber The documentNumber to set.
*/
public void setDocumentNumber(String documentNumber) {
this.documentNumber = documentNumber;
}
/**
* Gets the financialDocumentTransactionLineNumber attribute.
*
* @return Returns the financialDocumentTransactionLineNumber
*/
public Integer getFinancialDocumentTransactionLineNumber() {
return financialDocumentTransactionLineNumber;
}
/**
* Sets the financialDocumentTransactionLineNumber attribute.
*
* @param financialDocumentTransactionLineNumber The financialDocumentTransactionLineNumber to set.
*/
public void setFinancialDocumentTransactionLineNumber(Integer financialDocumentTransactionLineNumber) {
this.financialDocumentTransactionLineNumber = financialDocumentTransactionLineNumber;
}
/**
* Gets the transactionDate attribute.
*
* @return Returns the transactionDate
*/
public Date getTransactionDate() {
return transactionDate;
}
/**
* Sets the transactionDate attribute.
*
* @param transactionDate The transactionDate to set.
*/
public void setTransactionDate(Date transactionDate) {
this.transactionDate = transactionDate;
}
/**
* Gets the transactionReferenceNumber attribute.
*
* @return Returns the transactionReferenceNumber
*/
public String getTransactionReferenceNumber() {
return transactionReferenceNumber;
}
/**
* Sets the transactionReferenceNumber attribute.
*
* @param transactionReferenceNumber The transactionReferenceNumber to set.
*/
public void setTransactionReferenceNumber(String transactionReferenceNumber) {
this.transactionReferenceNumber = transactionReferenceNumber;
}
/**
* Gets the transactionPostingDate attribute.
*
* @return Returns the transactionPostingDate
*/
public Date getTransactionPostingDate() {
return transactionPostingDate;
}
/**
* Sets the transactionPostingDate attribute.
*
* @param transactionPostingDate The transactionPostingDate to set.
*/
public void setTransactionPostingDate(Date transactionPostingDate) {
this.transactionPostingDate = transactionPostingDate;
}
/**
* Gets the transactionOriginalCurrencyCode attribute.
*
* @return Returns the transactionOriginalCurrencyCode
*/
public String getTransactionOriginalCurrencyCode() {
return transactionOriginalCurrencyCode;
}
/**
* Sets the transactionOriginalCurrencyCode attribute.
*
* @param transactionOriginalCurrencyCode The transactionOriginalCurrencyCode to set.
*/
public void setTransactionOriginalCurrencyCode(String transactionOriginalCurrencyCode) {
this.transactionOriginalCurrencyCode = transactionOriginalCurrencyCode;
}
/**
* Gets the transactionBillingCurrencyCode attribute.
*
* @return Returns the transactionBillingCurrencyCode
*/
public String getTransactionBillingCurrencyCode() {
return transactionBillingCurrencyCode;
}
/**
* Sets the transactionBillingCurrencyCode attribute.
*
* @param transactionBillingCurrencyCode The transactionBillingCurrencyCode to set.
*/
public void setTransactionBillingCurrencyCode(String transactionBillingCurrencyCode) {
this.transactionBillingCurrencyCode = transactionBillingCurrencyCode;
}
/**
* Gets the transactionOriginalCurrencyAmount attribute.
*
* @return Returns the transactionOriginalCurrencyAmount
*/
public KualiDecimal getTransactionOriginalCurrencyAmount() {
return transactionOriginalCurrencyAmount;
}
/**
* Sets the transactionOriginalCurrencyAmount attribute.
*
* @param transactionOriginalCurrencyAmount The transactionOriginalCurrencyAmount to set.
*/
public void setTransactionOriginalCurrencyAmount(KualiDecimal transactionOriginalCurrencyAmount) {
this.transactionOriginalCurrencyAmount = transactionOriginalCurrencyAmount;
}
/**
* Gets the transactionCurrencyExchangeRate attribute.
*
* @return Returns the transactionCurrencyExchangeRate
*/
public BigDecimal getTransactionCurrencyExchangeRate() {
return transactionCurrencyExchangeRate;
}
/**
* Sets the transactionCurrencyExchangeRate attribute.
*
* @param transactionCurrencyExchangeRate The transactionCurrencyExchangeRate to set.
*/
public void setTransactionCurrencyExchangeRate(BigDecimal transactionCurrencyExchangeRate) {
this.transactionCurrencyExchangeRate = transactionCurrencyExchangeRate;
}
/**
* Gets the transactionSettlementAmount attribute.
*
* @return Returns the transactionSettlementAmount
*/
public KualiDecimal getTransactionSettlementAmount() {
return transactionSettlementAmount;
}
/**
* Sets the transactionSettlementAmount attribute.
*
* @param transactionSettlementAmount The transactionSettlementAmount to set.
*/
public void setTransactionSettlementAmount(KualiDecimal transactionSettlementAmount) {
this.transactionSettlementAmount = transactionSettlementAmount;
}
/**
* Gets the transactionSalesTaxAmount attribute.
*
* @return Returns the transactionSalesTaxAmount
*/
public KualiDecimal getTransactionSalesTaxAmount() {
return transactionSalesTaxAmount;
}
/**
* Sets the transactionSalesTaxAmount attribute.
*
* @param transactionSalesTaxAmount The transactionSalesTaxAmount to set.
*/
public void setTransactionSalesTaxAmount(KualiDecimal transactionSalesTaxAmount) {
this.transactionSalesTaxAmount = transactionSalesTaxAmount;
}
/**
* Gets the transactionTaxExemptIndicator attribute.
*
* @return Returns the transactionTaxExemptIndicator
*/
public boolean getTransactionTaxExemptIndicator() {
return transactionTaxExemptIndicator;
}
/**
* Sets the transactionTaxExemptIndicator attribute.
*
* @param transactionTaxExemptIndicator The transactionTaxExemptIndicator to set.
*/
public void setTransactionTaxExemptIndicator(boolean transactionTaxExemptIndicator) {
this.transactionTaxExemptIndicator = transactionTaxExemptIndicator;
}
/**
* Gets the transactionPurchaseIdentifierIndicator attribute.
*
* @return Returns the transactionPurchaseIdentifierIndicator
*/
public boolean getTransactionPurchaseIdentifierIndicator() {
return transactionPurchaseIdentifierIndicator;
}
/**
* Sets the transactionPurchaseIdentifierIndicator attribute.
*
* @param transactionPurchaseIdentifierIndicator The transactionPurchaseIdentifierIndicator to set.
*/
public void setTransactionPurchaseIdentifierIndicator(boolean transactionPurchaseIdentifierIndicator) {
this.transactionPurchaseIdentifierIndicator = transactionPurchaseIdentifierIndicator;
}
/**
* Gets the transactionPurchaseIdentifierDescription attribute.
*
* @return Returns the transactionPurchaseIdentifierDescription
*/
public String getTransactionPurchaseIdentifierDescription() {
return transactionPurchaseIdentifierDescription;
}
/**
* Sets the transactionPurchaseIdentifierDescription attribute.
*
* @param transactionPurchaseIdentifierDescription The transactionPurchaseIdentifierDescription to set.
*/
public void setTransactionPurchaseIdentifierDescription(String transactionPurchaseIdentifierDescription) {
this.transactionPurchaseIdentifierDescription = transactionPurchaseIdentifierDescription;
}
/**
* Gets the transactionUnitContactName attribute.
*
* @return Returns the transactionUnitContactName
*/
public String getTransactionUnitContactName() {
return transactionUnitContactName;
}
/**
* Sets the transactionUnitContactName attribute.
*
* @param transactionUnitContactName The transactionUnitContactName to set.
*/
public void setTransactionUnitContactName(String transactionUnitContactName) {
this.transactionUnitContactName = transactionUnitContactName;
}
/**
* Gets the transactionTravelAuthorizationCode attribute.
*
* @return Returns the transactionTravelAuthorizationCode
*/
public String getTransactionTravelAuthorizationCode() {
return transactionTravelAuthorizationCode;
}
/**
* Sets the transactionTravelAuthorizationCode attribute.
*
* @param transactionTravelAuthorizationCode The transactionTravelAuthorizationCode to set.
*/
public void setTransactionTravelAuthorizationCode(String transactionTravelAuthorizationCode) {
this.transactionTravelAuthorizationCode = transactionTravelAuthorizationCode;
}
/**
* Gets the transactionPointOfSaleCode attribute.
*
* @return Returns the transactionPointOfSaleCode
*/
public String getTransactionPointOfSaleCode() {
return transactionPointOfSaleCode;
}
/**
* Sets the transactionPointOfSaleCode attribute.
*
* @param transactionPointOfSaleCode The transactionPointOfSaleCode to set.
*/
public void setTransactionPointOfSaleCode(String transactionPointOfSaleCode) {
this.transactionPointOfSaleCode = transactionPointOfSaleCode;
}
/**
* Gets the sourceAccountingLines attribute.
*
* @return Returns the sourceAccountingLines.
*/
public List getSourceAccountingLines() {
return sourceAccountingLines;
}
/**
* Sets the sourceAccountingLines attribute value.
*
* @param sourceAccountingLines The sourceAccountingLines to set.
*/
public void setSourceAccountingLines(List sourceAccountingLines) {
this.sourceAccountingLines = sourceAccountingLines;
}
/**
* Gets the targetAccountingLines attribute.
*
* @return Returns the targetAccountingLines.
*/
public List getTargetAccountingLines() {
return targetAccountingLines;
}
/**
* Sets the targetAccountingLines attribute value.
*
* @param targetAccountingLines The targetAccountingLines to set.
*/
public void setTargetAccountingLines(List targetAccountingLines) {
this.targetAccountingLines = targetAccountingLines;
}
/**
* Gets the transactionCycleEndDate attribute.
*
* @return Returns the transactionCycleEndDate.
*/
public Date getTransactionCycleEndDate() {
return transactionCycleEndDate;
}
/**
* Sets the transactionCycleEndDate attribute value.
*
* @param transactionCycleEndDate The transactionCycleEndDate to set.
*/
public void setTransactionCycleEndDate(Date transactionCycleEndDate) {
this.transactionCycleEndDate = transactionCycleEndDate;
}
/**
* Gets the transactionCycleStartDate attribute.
*
* @return Returns the transactionCycleStartDate.
*/
public Date getTransactionCycleStartDate() {
return transactionCycleStartDate;
}
/**
* Sets the transactionCycleStartDate attribute value.
*
* @param transactionCycleStartDate The transactionCycleStartDate to set.
*/
public void setTransactionCycleStartDate(Date transactionCycleStartDate) {
this.transactionCycleStartDate = transactionCycleStartDate;
}
/**
* Gets the procurementCardVendor attribute.
*
* @return Returns the procurementCardVendor.
*/
public ProcurementCardVendor getProcurementCardVendor() {
return procurementCardVendor;
}
/**
* Sets the procurementCardVendor attribute value.
*
* @param procurementCardVendor The procurementCardVendor to set.
*/
public void setProcurementCardVendor(ProcurementCardVendor procurementCardVendor) {
this.procurementCardVendor = procurementCardVendor;
}
/**
* Gets the transactionTotalAmount attribute.
*
* @return Returns the transactionTotalAmount.
*/
public KualiDecimal getTransactionTotalAmount() {
return transactionTotalAmount;
}
/**
* Sets the transactionTotalAmount attribute value.
*
* @param transactionTotalAmount The transactionTotalAmount to set.
*/
public void setTransactionTotalAmount(KualiDecimal transactionTotalAmount) {
this.transactionTotalAmount = transactionTotalAmount;
}
/**
* @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
*/
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
LinkedHashMap m = new LinkedHashMap();
m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.documentNumber);
if (this.financialDocumentTransactionLineNumber != null) {
m.put("financialDocumentTransactionLineNumber", this.financialDocumentTransactionLineNumber.toString());
}
return m;
}
/**
*
* @return
*/
public FormFile getTargetFile() {
return targetFile;
}
/**
*
* @param targetFile
*/
public void setTargetFile(FormFile targetFile) {
this.targetFile = targetFile;
}
}