/*
* 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.module.tem.businessobject;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.LinkedHashMap;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.module.tem.TemConstants.ExpenseImport;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.core.api.util.type.KualiInteger;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
@Entity
@Table(name = "TEM_CREDIT_CARD_STAGING_T")
public class CreditCardStagingData extends PersistableBusinessObjectBase {
private Integer id;
private String creditCardKey;
private Integer travelerId;
private String airNumber;
private Date billingCycleDate;
private String creditCardOrAgencyCode;
private Date creationDate;
private Timestamp creationTimestamp;
private Date departureDate;
private String identifier;
private Date reconciliationDate;
private String referenceNumber;
private String sequenceNumber;
private String ticketNumber;
private KualiDecimal transactionAmount;
private String transactionCode;
private Date transactionDate;
private String travelerName;
private String typeCode;
private String expenseTypeCode;
private KualiInteger paymentGroupId;
private String merchantName;
private Date bankPostDate;
private String creditCardNumber;
private Timestamp processingTimestamp; // this is the import date
private boolean moveToHistoryIndicator;
private String location;
private String errorCode;
private String serviceFeeNumber;
private String itineraryNumber;
private String importBy;
private Integer temProfileId;
private String stagingFileName;
private TemProfile profile;
private CreditCardAgency creditCardAgency;
/**
* Gets the id attribute.
*
* @return Returns the id.
*/
@Id
@GeneratedValue(generator = "TEM_CREDIT_CARD_STAGING_ID_SEQ")
@SequenceGenerator(name = "TEM_CREDIT_CARD_STAGING_ID_SEQ", sequenceName = "TEM_CREDIT_CARD_STAGING_ID_SEQ", allocationSize = 5)
@Column(name = "ID", nullable = false)
public Integer getId() {
return id;
}
/**
* Sets the id attribute value.
*
* @param id The id to set.
*/
public void setId(Integer id) {
this.id = id;
}
@Column(name = "AIR_NUMBER", length = 3, nullable = true)
public String getAirNumber() {
return airNumber;
}
public void setAirNumber(String airNumber) {
this.airNumber = airNumber;
}
@Column(name = "BILLING_CYCLE_DT", nullable = true)
public Date getBillingCycleDate() {
return billingCycleDate;
}
public void setBillingCycleDate(Date billingCycleDate) {
this.billingCycleDate = billingCycleDate;
}
@Column(name = "CREDIT_AGENCY_CD", length = 4, nullable = true)
public String getCreditCardOrAgencyCode() {
return creditCardOrAgencyCode;
}
public void setCreditCardOrAgencyCode(String creditCardOrAgencyCode) {
this.creditCardOrAgencyCode = creditCardOrAgencyCode;
}
@Column(name = "CREATION_DT", nullable = true)
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
@Column(name = "CREATION_TIMESTAMP", nullable = true)
public Timestamp getCreationTimestamp() {
return creationTimestamp;
}
public void setCreationTimestamp(String creationTimestamp) {
if(creationTimestamp!=null) {
creationTimestamp=creationTimestamp.replace('T', ' ');
}
this.creationTimestamp =java.sql.Timestamp.valueOf(creationTimestamp);
}
/**
* Gets the processingTimestamp attribute.
* @return Returns the processingTimestamp.
*/
@Column(name = "PROCESSING_TS", nullable = true)
public Timestamp getProcessingTimestamp() {
return processingTimestamp;
}
/**
* Sets the processingTimestamp attribute value.
* @param processingTimestamp The processingTimestamp to set.
*/
public void setProcessingTimestamp(Timestamp processingTimestamp) {
this.processingTimestamp = processingTimestamp;
}
@Column(name = "DEPARTURE_DT", nullable = true)
public Date getDepartureDate() {
return departureDate;
}
public void setDepartureDate(Date departureDate) {
this.departureDate = departureDate;
}
@Column(name = "CREDIT_CARD_KEY", length = 22, nullable = false)
public String getCreditCardKey() {
return creditCardKey;
}
public void setCreditCardKey(String creditCardKey) {
this.creditCardKey = creditCardKey;
}
@Column(name = "TRAVELER_ID", length = 16, nullable = false)
public Integer getTravelerId() {
return travelerId;
}
public void setTravelerId(Integer travelerId) {
this.travelerId = travelerId;
}
@Column(name = "IDENTIFIER", length = 1, nullable = true)
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
@Column(name = "RECONCILIATION_DT", nullable = true)
public Date getReconciliationDate() {
return reconciliationDate;
}
public void setReconciliationDate(Date reconciliationDate) {
this.reconciliationDate = reconciliationDate;
}
@Column(name = "REFERENCE_NBR", length = 23, nullable = true)
public String getReferenceNumber() {
return referenceNumber;
}
public void setReferenceNumber(String referenceNumber) {
this.referenceNumber = referenceNumber;
}
@Column(name = "SEQUENCE_NBR", length = 3, nullable = true)
public String getSequenceNumber() {
return sequenceNumber;
}
public void setSequenceNumber(String sequenceNumber) {
this.sequenceNumber = sequenceNumber;
}
@Column(name = "TICKET_NBR", length = 16, nullable = true)
public String getTicketNumber() {
return ticketNumber;
}
public void setTicketNumber(String ticketNumber) {
this.ticketNumber = ticketNumber;
}
@Column(name = "TRANSACTION_AMOUNT", precision = 15, scale = 4, nullable = true)
public KualiDecimal getTransactionAmount() {
return transactionAmount;
}
public void setTransactionAmount(KualiDecimal transactionAmount) {
this.transactionAmount = transactionAmount;
}
/**
* Sets the setTransactionAmount attribute.
*
* @param setTransactionAmount The setTransactionAmount to set.
*/
public void setTransactionAmount(String transactionAmount) {
if (StringUtils.isNotBlank(transactionAmount)) {
this.transactionAmount = new KualiDecimal(transactionAmount);
}
else {
this.transactionAmount = KualiDecimal.ZERO;
}
}
@Column(name = "TRANSACTION_CD", length = 1, nullable = true)
public String getTransactionCode() {
return transactionCode;
}
public void setTransactionCode(String transactionCode) {
this.transactionCode = transactionCode;
}
@Column(name = "TRANSACTION_DT", nullable = true)
public Date getTransactionDate() {
return transactionDate;
}
public void setTransactionDate(Date transactionDate) {
this.transactionDate = transactionDate;
}
@Column(name = "TRAVELER_NM", length = 40, nullable = true)
public String getTravelerName() {
return travelerName;
}
public void setTravelerName(String travelerName) {
this.travelerName = travelerName;
}
@Column(name = "TYPE_CD", length = 1, nullable = true)
public String getTypeCode() {
return typeCode;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
@Column(name = "DV_EXP_CD", length = 2, nullable = true)
public String getExpenseTypeCode() {
return expenseTypeCode;
}
public void setExpenseTypeCode(String expenseTypeCode) {
this.expenseTypeCode = expenseTypeCode;
}
public KualiInteger getPaymentGroupId() {
return paymentGroupId;
}
public void setPaymentGroupId(KualiInteger paymentGroupId) {
this.paymentGroupId = paymentGroupId;
}
@Column(name = "MERCHANT_NM", length = 40, nullable = true)
public String getMerchantName() {
return merchantName;
}
public void setMerchantName(String merchantName) {
this.merchantName = merchantName;
}
@Column(name = "BANK_POST_DT", nullable = true)
public Date getBankPostDate() {
return bankPostDate;
}
public void setBankPostDate(Date bankPostDate) {
this.bankPostDate = bankPostDate;
}
public String getCreditCardNumber() {
return creditCardNumber;
}
public void setCreditCardNumber(String creditCardNumber) {
this.creditCardNumber = creditCardNumber;
}
/**
* Gets the moveToHistoryIndicator attribute.
* @return Returns the moveToHistoryIndicator.
*/
@Column(name = "MV_TO_HISTORY", length = 1, nullable = true)
public boolean getMoveToHistoryIndicator() {
return moveToHistoryIndicator;
}
/**
* Sets the moveToHistoryIndicator attribute value.
* @param moveToHistoryIndicator The moveToHistoryIndicator to set.
*/
public void setMoveToHistoryIndicator(boolean moveToHistoryIndicator) {
this.moveToHistoryIndicator = moveToHistoryIndicator;
}
/**
* Gets the location attribute.
* @return Returns the location.
*/
@Column(name = "LOC", length = 20, nullable = true)
public String getLocation() {
return location;
}
/**
* Sets the location attribute value.
* @param location The location to set.
*/
public void setLocation(String location) {
this.location = location;
}
/**
* Gets the errorCode attribute.
* @return Returns the errorCode.
*/
@Column(name = "ERROR_CD", length = 40, nullable = true)
public String getErrorCode() {
return errorCode;
}
/**
* Sets the errorCode attribute value.
* @param errorCode The errorCode to set.
*/
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
@SuppressWarnings("rawtypes")
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
return null;
}
/**
* Gets the serviceFeeNumber attribute.
* @return Returns the serviceFeeNumber.
*/
@Column(name = "SRVC_FEE_NBR", length = 20, nullable = true)
public String getServiceFeeNumber() {
return serviceFeeNumber;
}
/**
* Sets the serviceFeeNumber attribute value.
* @param serviceFeeNumber The serviceFeeNumber to set.
*/
public void setServiceFeeNumber(String serviceFeeNumber) {
this.serviceFeeNumber = serviceFeeNumber;
}
/**
* Gets the itineraryNumber attribute.
* @return Returns the itineraryNumber.
*/
@Column(name = "ITN_NBR", length = 20, nullable = true)
public String getItineraryNumber() {
return itineraryNumber;
}
/**
* Sets the itineraryNumber attribute value.
* @param itineraryNumber The itineraryNumber to set.
*/
public void setItineraryNumber(String itineraryNumber) {
this.itineraryNumber = itineraryNumber;
}
/**
* Gets the importBy attribute.
* @return Returns the importBy.
*/
@Column(name = "IMPORT_BY", length = 3, nullable = true)
public String getImportBy() {
return importBy;
}
public ExpenseImport getExpenseImport() {
return ExpenseImport.getExpenseImportByCode(importBy);
}
/**
* Sets the importBy attribute value.
* @param importBy The importBy to set.
*/
public void setImportBy(String importBy) {
this.importBy = importBy;
}
/**
* Gets the temProfileId attribute.
* @return Returns the temProfileId.
*/
public Integer getTemProfileId() {
return temProfileId;
}
/**
* Sets the temProfileId attribute value.
* @param temProfileId The temProfileId to set.
*/
public void setTemProfileId(Integer temProfileId) {
this.temProfileId = temProfileId;
}
public TemProfile getProfile() {
return profile;
}
public void setProfile(TemProfile profile) {
this.profile = profile;
}
public CreditCardAgency getCreditCardAgency() {
return creditCardAgency;
}
public void setCreditCardAgency(CreditCardAgency creditCardAgency) {
this.creditCardAgency = creditCardAgency;
}
public String getStagingFileName() {
return stagingFileName;
}
public void setStagingFileName(String stagingFileName) {
this.stagingFileName = stagingFileName;
}
}