/*
* 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/>.
*/
/*
* Created on Feb 28, 2006
*
*/
package org.kuali.kfs.module.purap.businessobject;
import java.sql.Timestamp;
import java.util.LinkedHashMap;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.core.api.datetime.DateTimeService;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
public class ElectronicInvoiceLoadSummary extends PersistableBusinessObjectBase {
private Integer invoiceLoadSummaryIdentifier;
private String vendorDunsNumber; // this is string constant if DUNS not found
private Integer vendorHeaderGeneratedIdentifier;
private Integer vendorDetailAssignedIdentifier;
private String vendorName;
private Integer invoiceLoadSuccessCount = new Integer(0);
private KualiDecimal invoiceLoadSuccessAmount = new KualiDecimal(0.00);
private Integer invoiceLoadFailCount = new Integer(0);
private KualiDecimal invoiceLoadFailAmount = new KualiDecimal(0.00);
private Boolean isEmpty = Boolean.TRUE;
private Timestamp fileProcessTimestamp;
public ElectronicInvoiceLoadSummary() {
super();
}
public ElectronicInvoiceLoadSummary(String vendorDunsNumber) {
super();
this.vendorDunsNumber = vendorDunsNumber;
}
public void addSuccessfulInvoiceOrder(KualiDecimal amount,
ElectronicInvoice eInvoice) {
isEmpty = Boolean.FALSE;
invoiceLoadSuccessCount = new Integer(invoiceLoadSuccessCount.intValue() + 1);
fileProcessTimestamp = SpringContext.getBean(DateTimeService.class).getCurrentTimestamp();
if (amount != null) {
invoiceLoadSuccessAmount = invoiceLoadSuccessAmount.add(amount);
}
setupVendorInformation(eInvoice);
}
public void addFailedInvoiceOrder(KualiDecimal amount,
ElectronicInvoice eInvoice) {
isEmpty = Boolean.FALSE;
invoiceLoadFailCount = new Integer(invoiceLoadFailCount.intValue() + 1);
fileProcessTimestamp = SpringContext.getBean(DateTimeService.class).getCurrentTimestamp();
if (amount != null) {
invoiceLoadFailAmount = invoiceLoadFailAmount.add(amount);
}
setupVendorInformation(eInvoice);
}
public void addFailedInvoiceOrder(ElectronicInvoice ei) {
this.addFailedInvoiceOrder(new KualiDecimal(0),ei);
}
public void addFailedInvoiceOrder() {
this.addFailedInvoiceOrder(new KualiDecimal(0),null);
}
private void setupVendorInformation(ElectronicInvoice eInvoice) {
if (eInvoice != null &&
getVendorHeaderGeneratedIdentifier() == null &&
getVendorDetailAssignedIdentifier() == null) {
setVendorHeaderGeneratedIdentifier(eInvoice.getVendorHeaderID());
setVendorDetailAssignedIdentifier(eInvoice.getVendorDetailID());
setVendorName(eInvoice.getVendorName());
}
}
public String getVendorDescriptor() {
String kualiDescriptor = null;
if ( (this.vendorName != null) && (this.vendorHeaderGeneratedIdentifier != null) && (this.vendorDetailAssignedIdentifier != null) ) {
kualiDescriptor = " (Kuali Match: " + this.vendorName + " ~ " + vendorHeaderGeneratedIdentifier + "-" + vendorDetailAssignedIdentifier + ")";
} else if ( (this.vendorHeaderGeneratedIdentifier != null) && (this.vendorDetailAssignedIdentifier != null) ) {
kualiDescriptor = " (Kuali Match: " + vendorHeaderGeneratedIdentifier + "-" + vendorDetailAssignedIdentifier + ")";
} else if (this.vendorName != null) {
kualiDescriptor = " (Kuali Match: " + this.vendorName + ")";
}
return this.getVendorDunsNumber() + ((kualiDescriptor != null) ? kualiDescriptor : "");
}
/**
* @return the vendorDetailAssignedIdentifier
*/
public Integer getVendorDetailAssignedIdentifier() {
return vendorDetailAssignedIdentifier;
}
/**
* @param vendorDetailAssignedIdentifier the vendorDetailAssignedIdentifier to set
*/
public void setVendorDetailAssignedIdentifier(Integer kualiVendorDetailId) {
this.vendorDetailAssignedIdentifier = kualiVendorDetailId;
}
/**
* @return the vendorHeaderGeneratedIdentifier
*/
public Integer getVendorHeaderGeneratedIdentifier() {
return vendorHeaderGeneratedIdentifier;
}
/**
* @param vendorHeaderGeneratedIdentifier the vendorHeaderGeneratedIdentifier to set
*/
public void setVendorHeaderGeneratedIdentifier(Integer kualiVendorHeaderId) {
this.vendorHeaderGeneratedIdentifier = kualiVendorHeaderId;
}
/**
* @return the vendorName
*/
public String getVendorName() {
return vendorName;
}
/**
* @param vendorName the vendorName to set
*/
public void setVendorName(String kualiVendorName) {
this.vendorName = kualiVendorName;
}
/**
* @return the invoiceLoadFailAmount
*/
public KualiDecimal getInvoiceLoadFailAmount() {
return invoiceLoadFailAmount;
}
/**
* @param invoiceLoadFailAmount the invoiceLoadFailAmount to set
*/
public void setInvoiceLoadFailAmount(KualiDecimal failAmount) {
this.invoiceLoadFailAmount = failAmount;
}
/**
* @return the invoiceLoadFailCount
*/
public Integer getInvoiceLoadFailCount() {
return invoiceLoadFailCount;
}
/**
* @param invoiceLoadFailCount the invoiceLoadFailCount to set
*/
public void setInvoiceLoadFailCount(Integer failCount) {
this.invoiceLoadFailCount = failCount;
}
/**
* @return the invoiceLoadSummaryIdentifier
*/
public Integer getInvoiceLoadSummaryIdentifier() {
return invoiceLoadSummaryIdentifier;
}
/**
* @param invoiceLoadSummaryIdentifier the invoiceLoadSummaryIdentifier to set
*/
public void setInvoiceLoadSummaryIdentifier(Integer id) {
this.invoiceLoadSummaryIdentifier = id;
}
/**
* @return the isEmpty
*/
public Boolean isEmpty() {
return isEmpty;
}
/**
* @param isEmpty the isEmpty to set
*/
public void setIsEmpty(Boolean isEmpty) {
this.isEmpty = isEmpty;
}
/**
* @return the invoiceLoadSuccessAmount
*/
public KualiDecimal getInvoiceLoadSuccessAmount() {
return invoiceLoadSuccessAmount;
}
/**
* @param invoiceLoadSuccessAmount the invoiceLoadSuccessAmount to set
*/
public void setInvoiceLoadSuccessAmount(KualiDecimal successAmount) {
this.invoiceLoadSuccessAmount = successAmount;
}
/**
* @return the invoiceLoadSuccessCount
*/
public Integer getInvoiceLoadSuccessCount() {
return invoiceLoadSuccessCount;
}
/**
* @param invoiceLoadSuccessCount the invoiceLoadSuccessCount to set
*/
public void setInvoiceLoadSuccessCount(Integer successCount) {
this.invoiceLoadSuccessCount = successCount;
}
/**
* @return the vendorDunsNumber
*/
public String getVendorDunsNumber() {
return vendorDunsNumber;
}
/**
* @param vendorDunsNumber the vendorDunsNumber to set
*/
public void setVendorDunsNumber(String vendorDunsNumber) {
this.vendorDunsNumber = vendorDunsNumber;
}
public Timestamp getFileProcessTimestamp() {
return fileProcessTimestamp;
}
public void setFileProcessTimestamp(Timestamp fileProcessTimestamp) {
this.fileProcessTimestamp = fileProcessTimestamp;
}
/**
* @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
*/
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
LinkedHashMap m = new LinkedHashMap();
m.put("invoiceLoadSummaryIdentifier", this.invoiceLoadSummaryIdentifier);
return m;
}
}