/*
* 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.purap.document;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.MessageFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.kuali.kfs.module.purap.PurapParameterConstants;
import org.kuali.kfs.module.purap.businessobject.ElectronicInvoice;
import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceContact;
import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceItem;
import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceLoadSummary;
import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceOrder;
import org.kuali.kfs.module.purap.businessobject.ElectronicInvoicePostalAddress;
import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceRejectItem;
import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceRejectReason;
import org.kuali.kfs.module.purap.businessobject.PurchaseOrderView;
import org.kuali.kfs.module.purap.document.service.PurchaseOrderService;
import org.kuali.kfs.module.purap.service.ElectronicInvoiceMappingService;
import org.kuali.kfs.module.purap.util.ElectronicInvoiceUtils;
import org.kuali.kfs.module.purap.util.PurApRelatedViews;
import org.kuali.kfs.module.purap.util.PurapSearchUtils;
import org.kuali.kfs.sys.KFSConstants.AdHocPaymentIndicator;
import org.kuali.kfs.sys.ObjectUtil;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.kfs.sys.document.FinancialSystemTransactionalDocumentBase;
import org.kuali.kfs.sys.service.impl.KfsParameterConstants;
import org.kuali.kfs.vnd.businessobject.CampusParameter;
import org.kuali.kfs.vnd.businessobject.VendorDetail;
import org.kuali.kfs.vnd.document.service.VendorService;
import org.kuali.rice.core.api.datetime.DateTimeService;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.coreservice.framework.parameter.ParameterService;
import org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange;
import org.kuali.rice.krad.bo.Note;
import org.kuali.rice.krad.document.SessionDocument;
import org.kuali.rice.krad.util.NoteType;
import org.kuali.rice.krad.util.ObjectUtils;
public class ElectronicInvoiceRejectDocument extends FinancialSystemTransactionalDocumentBase implements SessionDocument
{
protected static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ElectronicInvoiceRejectDocument.class);
protected static BigDecimal zero = new BigDecimal(0);
// NOT NULL FIELDS
protected Integer purapDocumentIdentifier;
protected Integer accountsPayablePurchasingDocumentLinkIdentifier;
protected Integer invoiceLoadSummaryIdentifier;
protected Timestamp invoiceProcessTimestamp;
protected Boolean invoiceFileHeaderTypeIndicator = Boolean.FALSE;
protected Boolean invoiceFileInformationOnlyIndicator = Boolean.FALSE;
protected Boolean invoiceFileTaxInLineIndicator = Boolean.FALSE;
protected Boolean invoiceFileSpecialHandlingInLineIndicator = Boolean.FALSE;
protected Boolean invoiceFileShippingInLineIndicator = Boolean.FALSE;
protected Boolean invoiceFileDiscountInLineIndicator = Boolean.FALSE;
protected String invoiceFileName;
protected String vendorDunsNumber;
protected Integer vendorHeaderGeneratedIdentifier;
protected Integer vendorDetailAssignedIdentifier;
protected String invoiceFileDate;
protected String invoiceFileNumber;
protected String invoiceFilePurposeIdentifier;
protected String invoiceFileOperationIdentifier;
protected String invoiceFileDeploymentModeValue;
protected String invoiceOrderReferenceOrderIdentifier;
protected String invoiceOrderReferenceDocumentReferencePayloadIdentifier;
protected String invoiceOrderReferenceDocumentReferenceText;
protected String invoiceOrderMasterAgreementReferenceIdentifier;
protected String invoiceOrderMasterAgreementReferenceDate;
protected String invoiceOrderMasterAgreementInformationIdentifier;
protected String invoiceOrderMasterAgreementInformationDate;
protected String invoiceOrderPurchaseOrderIdentifier;
protected String invoiceOrderPurchaseOrderDate;
protected String invoiceOrderSupplierOrderInformationIdentifier;
protected String invoiceShipDate;
protected String invoiceShipToAddressName;
protected String invoiceShipToAddressType;
protected String invoiceShipToAddressLine1;
protected String invoiceShipToAddressLine2;
protected String invoiceShipToAddressLine3;
protected String invoiceShipToAddressCityName;
protected String invoiceShipToAddressStateCode;
protected String invoiceShipToAddressPostalCode;
protected String invoiceShipToAddressCountryCode;
protected String invoiceShipToAddressCountryName;
protected String invoiceBillToAddressName;
protected String invoiceBillToAddressType;
protected String invoiceBillToAddressLine1;
protected String invoiceBillToAddressLine2;
protected String invoiceBillToAddressLine3;
protected String invoiceBillToAddressCityName;
protected String invoiceBillToAddressStateCode;
protected String invoiceBillToAddressPostalCode;
protected String invoiceBillToAddressCountryCode;
protected String invoiceBillToAddressCountryName;
protected String invoiceRemitToAddressName;
protected String invoiceRemitToAddressType;
protected String invoiceRemitToAddressLine1;
protected String invoiceRemitToAddressLine2;
protected String invoiceRemitToAddressLine3;
protected String invoiceRemitToAddressCityName;
protected String invoiceRemitToAddressStateCode;
protected String invoiceRemitToAddressPostalCode;
protected String invoiceRemitToAddressCountryCode;
protected String invoiceRemitToAddressCountryName;
protected Integer paymentRequestIdentifier;
protected String invoiceCustomerNumber;
protected String invoicePurchaseOrderNumber;
protected Integer purchaseOrderIdentifier;
protected String purchaseOrderDeliveryCampusCode;
protected String invoiceItemSubTotalCurrencyCode;
protected String invoiceItemSpecialHandlingCurrencyCode;
protected String invoiceItemSpecialHandlingDescription;
protected String invoiceItemShippingCurrencyCode;
protected String invoiceItemShippingDescription;
protected String invoiceItemTaxCurrencyCode;
protected String invoiceItemTaxDescription;
protected String invoiceItemGrossCurrencyCode;
protected String invoiceItemDiscountCurrencyCode;
protected String invoiceItemNetCurrencyCode;
protected BigDecimal invoiceItemSubTotalAmount;
protected BigDecimal invoiceItemSpecialHandlingAmount;
protected BigDecimal invoiceItemShippingAmount;
protected BigDecimal invoiceItemTaxAmount;
protected BigDecimal invoiceItemGrossAmount;
protected BigDecimal invoiceItemDiscountAmount;
protected BigDecimal invoiceItemNetAmount;
protected boolean invoiceNumberAcceptIndicator = false;
protected boolean invoiceResearchIndicator = false;
protected Timestamp invoiceFileTimeStampForSearch;
protected Timestamp accountsPayableApprovalTimestamp;
protected transient PurApRelatedViews relatedViews;
protected PurchaseOrderDocument currentPurchaseOrderDocument;
protected VendorDetail vendorDetail;
protected ElectronicInvoiceLoadSummary invoiceLoadSummary;
protected List<ElectronicInvoiceRejectItem> invoiceRejectItems = new ArrayList<ElectronicInvoiceRejectItem>();
protected List<ElectronicInvoiceRejectReason> invoiceRejectReasons = new ArrayList<ElectronicInvoiceRejectReason>();
protected boolean isDocumentCreationInProgress = false;
protected String vendorNumber;
protected CampusParameter purchaseOrderDeliveryCampus;
/**
*
*/
public ElectronicInvoiceRejectDocument() {
super();
}
public void setFileLevelData(ElectronicInvoice ei) {
DateTimeService dateTimeService = SpringContext.getBean(DateTimeService.class);
this.invoiceProcessTimestamp = dateTimeService.getCurrentTimestamp();
this.invoiceFileHeaderTypeIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isHeaderInvoiceIndicator());
this.invoiceFileInformationOnlyIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isInformationOnly());
this.invoiceFileTaxInLineIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isTaxInLine());
this.invoiceFileSpecialHandlingInLineIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isSpecialHandlingInLine());
this.invoiceFileShippingInLineIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isShippingInLine());
this.invoiceFileDiscountInLineIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isDiscountInLine());
this.invoiceFileName = ei.getFileName();
this.vendorDunsNumber = ei.getDunsNumber();
this.vendorHeaderGeneratedIdentifier = ei.getVendorHeaderID();
this.vendorDetailAssignedIdentifier = ei.getVendorDetailID();
this.invoiceFileDate = ei.getInvoiceDateDisplayText();
this.invoiceFileNumber = ei.getInvoiceDetailRequestHeader().getInvoiceId();
this.invoiceFilePurposeIdentifier = ei.getInvoiceDetailRequestHeader().getPurpose();
this.invoiceFileOperationIdentifier = ei.getInvoiceDetailRequestHeader().getOperation();
this.invoiceFileDeploymentModeValue = ei.getDeploymentMode();
this.invoiceCustomerNumber = ei.getCustomerNumber();
for (ElectronicInvoiceRejectReason eirr : ei.getFileRejectReasons()) {
ElectronicInvoiceRejectReason newReason = new ElectronicInvoiceRejectReason();
ObjectUtil.buildObject(newReason, eirr);
this.invoiceRejectReasons.add(newReason);
}
}
public void setInvoiceOrderLevelData(ElectronicInvoice ei, ElectronicInvoiceOrder eio) {
this.invoiceOrderReferenceOrderIdentifier = eio.getOrderReferenceOrderID();
this.invoiceOrderReferenceDocumentReferencePayloadIdentifier = eio.getOrderReferenceDocumentRefPayloadID();
this.invoiceOrderReferenceDocumentReferenceText = eio.getOrderReferenceDocumentRef();
this.invoiceOrderMasterAgreementReferenceIdentifier = eio.getMasterAgreementReferenceID();
this.invoiceOrderMasterAgreementReferenceDate = ei.getMasterAgreementReferenceDateDisplayText(eio);
this.invoiceOrderMasterAgreementInformationIdentifier = eio.getMasterAgreementIDInfoID();
this.invoiceOrderMasterAgreementInformationDate = ei.getMasterAgreementIDInfoDateDisplayText(eio);
this.invoiceOrderPurchaseOrderIdentifier = eio.getOrderIDInfoID();
this.invoiceOrderPurchaseOrderDate = ei.getOrderIDInfoDateDisplayText(eio);
this.invoiceOrderSupplierOrderInformationIdentifier = eio.getSupplierOrderInfoID();
this.invoiceShipDate = ei.getShippingDateDisplayText(eio);
ElectronicInvoiceContact shipToContact = ei.getCxmlContact(eio, ElectronicInvoiceMappingService.CXML_ADDRESS_SHIP_TO_ROLE_ID);
ElectronicInvoicePostalAddress shipToAddress = this.getCxmlPostalAddressByAddressName(shipToContact, ElectronicInvoiceMappingService.CXML_ADDRESS_SHIP_TO_NAME);
// ElectronicInvoicePostalAddress shipToAddress =
// ei.getCxmlPostalAddress(eio,ElectronicInvoiceMappingService.CXML_ADDRESS_SHIP_TO_ROLE_ID,
// ElectronicInvoiceMappingService.CXML_ADDRESS_SHIP_TO_NAME);
if (shipToAddress != null) {
this.invoiceShipToAddressName = shipToContact.getName();
this.invoiceShipToAddressType = shipToAddress.getType();
this.invoiceShipToAddressLine1 = shipToAddress.getLine1();
this.invoiceShipToAddressLine2 = shipToAddress.getLine2();
this.invoiceShipToAddressLine3 = shipToAddress.getLine3();
this.invoiceShipToAddressCityName = shipToAddress.getCityName();
this.invoiceShipToAddressStateCode = shipToAddress.getStateCode();
this.invoiceShipToAddressPostalCode = shipToAddress.getPostalCode();
this.invoiceShipToAddressCountryCode = shipToAddress.getCountryCode();
this.invoiceShipToAddressCountryName = shipToAddress.getCountryName();
}
ElectronicInvoiceContact billToContact = ei.getCxmlContact(eio, ElectronicInvoiceMappingService.CXML_ADDRESS_BILL_TO_ROLE_ID);
ElectronicInvoicePostalAddress billToAddress = this.getCxmlPostalAddressByAddressName(billToContact, ElectronicInvoiceMappingService.CXML_ADDRESS_BILL_TO_NAME);
// ElectronicInvoicePostalAddress billToAddress =
// ei.getCxmlPostalAddress(eio,ElectronicInvoiceMappingService.CXML_ADDRESS_BILL_TO_ROLE_ID,
// ElectronicInvoiceMappingService.CXML_ADDRESS_BILL_TO_NAME);
if (billToAddress != null) {
this.invoiceBillToAddressName = billToContact.getName();
this.invoiceBillToAddressType = billToAddress.getType();
this.invoiceBillToAddressLine1 = billToAddress.getLine1();
this.invoiceBillToAddressLine2 = billToAddress.getLine2();
this.invoiceBillToAddressLine3 = billToAddress.getLine3();
this.invoiceBillToAddressCityName = billToAddress.getCityName();
this.invoiceBillToAddressStateCode = billToAddress.getStateCode();
this.invoiceBillToAddressPostalCode = billToAddress.getPostalCode();
this.invoiceBillToAddressCountryCode = billToAddress.getCountryCode();
this.invoiceBillToAddressCountryName = billToAddress.getCountryName();
}
ElectronicInvoiceContact remitToContact = ei.getCxmlContact(eio, ElectronicInvoiceMappingService.CXML_ADDRESS_REMIT_TO_ROLE_ID);
ElectronicInvoicePostalAddress remitToAddress = this.getCxmlPostalAddressByAddressName(remitToContact, ElectronicInvoiceMappingService.CXML_ADDRESS_REMIT_TO_NAME);
// ElectronicInvoicePostalAddress remitToAddress =
// ei.getCxmlPostalAddress(eio,ElectronicInvoiceMappingService.CXML_ADDRESS_REMIT_TO_ROLE_ID,
// ElectronicInvoiceMappingService.CXML_ADDRESS_REMIT_TO_NAME);
if (remitToAddress != null) {
this.invoiceRemitToAddressName = remitToContact.getName();
this.invoiceRemitToAddressType = remitToAddress.getType();
this.invoiceRemitToAddressLine1 = remitToAddress.getLine1();
this.invoiceRemitToAddressLine2 = remitToAddress.getLine2();
this.invoiceRemitToAddressLine3 = remitToAddress.getLine3();
this.invoiceRemitToAddressCityName = remitToAddress.getCityName();
this.invoiceRemitToAddressStateCode = remitToAddress.getStateCode();
this.invoiceRemitToAddressPostalCode = remitToAddress.getPostalCode();
this.invoiceRemitToAddressCountryCode = remitToAddress.getCountryCode();
this.invoiceRemitToAddressCountryName = remitToAddress.getCountryName();
}
this.invoicePurchaseOrderNumber = eio.getInvoicePurchaseOrderID();
this.purchaseOrderIdentifier = eio.getPurchaseOrderID();
this.purchaseOrderDeliveryCampusCode = eio.getPurchaseOrderCampusCode();
try {
this.invoiceItemSubTotalAmount = ei.getInvoiceSubTotalAmount(eio);
this.invoiceItemSubTotalCurrencyCode = ei.getInvoiceSubTotalCurrencyIfNotValid(eio);
}
catch (Exception e) {
this.invoiceItemSubTotalAmount = null;
this.invoiceItemSubTotalCurrencyCode = "INVALID Amount";
}
try {
this.invoiceItemSpecialHandlingAmount = ei.getInvoiceSpecialHandlingAmount(eio);
this.invoiceItemSpecialHandlingCurrencyCode = ei.getInvoiceSpecialHandlingCurrencyIfNotValid(eio);
}
catch (Exception e) {
this.invoiceItemSpecialHandlingAmount = null;
this.invoiceItemSpecialHandlingCurrencyCode = "INVALID AMOUNT";
}
this.invoiceItemSpecialHandlingDescription = ei.getInvoiceSpecialHandlingDescription(eio);
try {
this.invoiceItemShippingAmount = ei.getInvoiceShippingAmount(eio);
this.invoiceItemShippingCurrencyCode = ei.getInvoiceShippingCurrencyIfNotValid(eio);
}
catch (Exception e) {
this.invoiceItemShippingAmount = null;
this.invoiceItemShippingCurrencyCode = "INVALID AMOUNT";
}
this.invoiceItemShippingDescription = ei.getInvoiceShippingDescription(eio);
try {
this.invoiceItemTaxAmount = ei.getInvoiceTaxAmount(eio);
this.invoiceItemTaxCurrencyCode = ei.getInvoiceTaxCurrencyIfNotValid(eio);
}
catch (Exception e) {
this.invoiceItemTaxAmount = null;
this.invoiceItemTaxCurrencyCode = "INVALID AMOUNT";
}
this.invoiceItemTaxDescription = ei.getInvoiceTaxDescription(eio);
try {
this.invoiceItemGrossAmount = ei.getInvoiceGrossAmount(eio);
this.invoiceItemGrossCurrencyCode = ei.getInvoiceGrossCurrencyIfNotValid(eio);
}
catch (Exception e) {
this.invoiceItemGrossAmount = null;
this.invoiceItemGrossCurrencyCode = "INVALID AMOUNT";
}
try {
this.invoiceItemDiscountAmount = ei.getInvoiceDiscountAmount(eio);
this.invoiceItemDiscountCurrencyCode = ei.getInvoiceDiscountCurrencyIfNotValid(eio);
}
catch (Exception e) {
this.invoiceItemDiscountAmount = null;
this.invoiceItemDiscountCurrencyCode = "INVALID AMOUNT";
}
try {
this.invoiceItemNetAmount = ei.getInvoiceNetAmount(eio);
this.invoiceItemNetCurrencyCode = ei.getInvoiceNetCurrencyIfNotValid(eio);
}
catch (Exception e) {
this.invoiceItemNetAmount = null;
this.invoiceItemNetCurrencyCode = "INVALID AMOUNT";
}
for (ElectronicInvoiceItem eii : eio.getInvoiceItems()) {
ElectronicInvoiceRejectItem eiri = new ElectronicInvoiceRejectItem(this, eii);
this.invoiceRejectItems.add(eiri);
}
for (ElectronicInvoiceRejectReason eirr : eio.getOrderRejectReasons()) {
eirr.setElectronicInvoiceRejectDocument(this);
this.invoiceRejectReasons.add(eirr);
}
}
/**
* @see org.kuali.rice.krad.document.DocumentBase#getDocumentTitle()
*/
@Override
public String getDocumentTitle() {
if (SpringContext.getBean(ParameterService.class).getParameterValueAsBoolean(ElectronicInvoiceRejectDocument.class, PurapParameterConstants.PURAP_OVERRIDE_EIRT_DOC_TITLE)) {
return getCustomDocumentTitle();
}
return this.buildDocumentTitle(super.getDocumentTitle());
}
/**
* Returns a custom document title based on the properties of current document..
*
* @return - Customized document title.
*/
protected String getCustomDocumentTitle() {
String poID = StringUtils.isEmpty(getInvoicePurchaseOrderNumber()) ? "UNKNOWN" : getInvoicePurchaseOrderNumber();
String researchInd = isInvoiceResearchIndicator() ? "Y" : "N";
// if this method is called when EIRT doc is just created, vendorDetail is not set yet, need to retrieve from DB
VendorDetail vendorDetail = getVendorDetail();
Integer headerId = getVendorHeaderGeneratedIdentifier();
Integer detailId = getVendorDetailAssignedIdentifier();
if (vendorDetail == null && headerId != null && detailId != null) {
vendorDetail = SpringContext.getBean(VendorService.class).getVendorDetail(headerId, detailId);
}
String vendorName = vendorDetail == null || StringUtils.isEmpty(vendorDetail.getVendorName()) ? "UNKNOWN" : vendorDetail.getVendorName();
//set title to: Vendor: <Vendor's Name> PO: <PO#> <Research Indicator>
String documentTitle = "Vendor: " + vendorName + " PO: " + poID + " " + researchInd;
return documentTitle;
}
/**
* Builds document title based on the properties of current document.
*
* @param the default document title
* @return the combine information of the given title and additional payment indicators
*/
protected String buildDocumentTitle(String title) {
if(this.getVendorDetail() == null) {
return title;
}
Integer vendorHeaderGeneratedIdentifier = this.getVendorDetail().getVendorHeaderGeneratedIdentifier();
if (vendorHeaderGeneratedIdentifier != null) {
VendorService vendorService = SpringContext.getBean(VendorService.class);
Object[] indicators = new String[2];
boolean isEmployeeVendor = vendorService.isVendorInstitutionEmployee(vendorHeaderGeneratedIdentifier);
indicators[0] = isEmployeeVendor ? AdHocPaymentIndicator.EMPLOYEE_VENDOR : AdHocPaymentIndicator.OTHER;
boolean isVendorForeign = vendorService.isVendorForeign(vendorHeaderGeneratedIdentifier);
indicators[1] = isVendorForeign ? AdHocPaymentIndicator.ALIEN_VENDOR : AdHocPaymentIndicator.OTHER;
for(Object indicator : indicators) {
if(!AdHocPaymentIndicator.OTHER.equals(indicator)) {
String titlePattern = title + " [{0}:{1}]";
return MessageFormat.format(titlePattern, indicators);
}
}
}
return title;
}
protected ElectronicInvoicePostalAddress getCxmlPostalAddressByAddressName(ElectronicInvoiceContact contact, String addressName) {
if (contact != null) {
for (ElectronicInvoicePostalAddress cpa : contact.getPostalAddresses()) {
if (addressName == null) {
return cpa;
}
else {
if (addressName.equalsIgnoreCase(cpa.getName())) {
return cpa;
}
}
}
}
return null;
}
public KualiDecimal getTotalAmount() {
KualiDecimal returnValue = new KualiDecimal(zero);
try {
for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) {
BigDecimal toAddAmount1 = eiri.getInvoiceItemSubTotalAmount();
KualiDecimal toAddAmount = KualiDecimal.ZERO;
if (toAddAmount1 != null) {
toAddAmount = new KualiDecimal(toAddAmount1.setScale(KualiDecimal.SCALE, KualiDecimal.ROUND_BEHAVIOR));
}
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'");
}
returnValue = returnValue.add(toAddAmount);
}
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue());
}
return returnValue;
}
catch (NumberFormatException n) {
// do nothing this is already rejected
LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName);
return new KualiDecimal(zero);
}
}
public void setTotalAmount(KualiDecimal amount) {
// ignore this
}
public KualiDecimal getGrandTotalAmount() {
KualiDecimal returnValue = new KualiDecimal(zero);
try {
for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) {
KualiDecimal toAddAmount = new KualiDecimal(eiri.getInvoiceItemNetAmount());
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'");
}
returnValue = returnValue.add(toAddAmount);
}
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue());
}
if (this.getInvoiceItemSpecialHandlingAmount() != null && zero.compareTo(this.getInvoiceItemSpecialHandlingAmount()) != 0) {
returnValue = returnValue.add(new KualiDecimal(this.getInvoiceItemSpecialHandlingAmount()));
}
if (this.getInvoiceItemShippingAmount() != null && zero.compareTo(this.getInvoiceItemShippingAmount()) != 0) {
returnValue = returnValue.add(new KualiDecimal(this.getInvoiceItemShippingAmount()));
}
// if (this.getInvoiceItemTaxAmount() != null && zero.compareTo(this.getInvoiceItemTaxAmount()) != 0) {
// returnValue = returnValue.add(new KualiDecimal(this.getInvoiceItemTaxAmount()));
// }
if (this.getInvoiceItemDiscountAmount() != null && zero.compareTo(this.getInvoiceItemDiscountAmount()) != 0) {
returnValue = returnValue.subtract(new KualiDecimal(this.getInvoiceItemDiscountAmount()));
}
if (LOG.isDebugEnabled()) {
LOG.debug("getGrandTotalAmount() returning amount " + returnValue.doubleValue());
}
return returnValue;
}
catch (NumberFormatException n) {
// do nothing this is already rejected
LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName);
return new KualiDecimal(zero);
}
}
public void setGrandTotalAmount(KualiDecimal amount) {
// ignore this
}
/**
* @return Returns the invoiceLoadSummaryIdentifier.
*/
public Integer getInvoiceLoadSummaryIdentifier() {
return invoiceLoadSummaryIdentifier;
}
/**
* @param invoiceLoadSummaryIdentifier The invoiceLoadSummaryIdentifier to set.
*/
public void setInvoiceLoadSummaryIdentifier(Integer loadSummaryId) {
this.invoiceLoadSummaryIdentifier = loadSummaryId;
}
public PurchaseOrderDocument getCurrentPurchaseOrderDocument() {
if (StringUtils.isEmpty(getInvoicePurchaseOrderNumber()) ||
!NumberUtils.isDigits(getInvoicePurchaseOrderNumber())){
currentPurchaseOrderDocument = null;
}else if (currentPurchaseOrderDocument == null) {
currentPurchaseOrderDocument = SpringContext.getBean(PurchaseOrderService.class).getCurrentPurchaseOrder(new Integer(getInvoicePurchaseOrderNumber()));
}else if (!StringUtils.equals(getInvoicePurchaseOrderNumber(), currentPurchaseOrderDocument.getPurapDocumentIdentifier().toString())){
currentPurchaseOrderDocument = SpringContext.getBean(PurchaseOrderService.class).getCurrentPurchaseOrder(new Integer(getInvoicePurchaseOrderNumber()));
}
return currentPurchaseOrderDocument;
}
public VendorDetail getVendorDetail() {
return vendorDetail;
}
public void setVendorDetail(VendorDetail vendorDetail) {
this.vendorDetail = vendorDetail;
}
/**
* @return Returns the invoiceLoadSummary.
*/
public ElectronicInvoiceLoadSummary getInvoiceLoadSummary() {
return invoiceLoadSummary;
}
/**
* @param invoiceLoadSummary The invoiceLoadSummary to set.
*/
public void setInvoiceLoadSummary(ElectronicInvoiceLoadSummary electronicInvoiceLoadSummary) {
this.invoiceLoadSummary = electronicInvoiceLoadSummary;
this.invoiceLoadSummaryIdentifier = electronicInvoiceLoadSummary.getInvoiceLoadSummaryIdentifier();
}
/**
* @return Returns the invoiceBillToAddressCityName.
*/
public String getInvoiceBillToAddressCityName() {
return invoiceBillToAddressCityName;
}
/**
* @param invoiceBillToAddressCityName The invoiceBillToAddressCityName to set.
*/
public void setInvoiceBillToAddressCityName(String billToAddressCityName) {
this.invoiceBillToAddressCityName = billToAddressCityName;
}
/**
* @return Returns the invoiceBillToAddressCountryCode.
*/
public String getInvoiceBillToAddressCountryCode() {
return invoiceBillToAddressCountryCode;
}
/**
* @param invoiceBillToAddressCountryCode The invoiceBillToAddressCountryCode to set.
*/
public void setInvoiceBillToAddressCountryCode(String billToAddressCountryCode) {
this.invoiceBillToAddressCountryCode = billToAddressCountryCode;
}
/**
* @return Returns the invoiceBillToAddressCountryName.
*/
public String getInvoiceBillToAddressCountryName() {
return invoiceBillToAddressCountryName;
}
/**
* @param invoiceBillToAddressCountryName The invoiceBillToAddressCountryName to set.
*/
public void setInvoiceBillToAddressCountryName(String billToAddressCountryName) {
this.invoiceBillToAddressCountryName = billToAddressCountryName;
}
/**
* @return Returns the invoiceBillToAddressLine1.
*/
public String getInvoiceBillToAddressLine1() {
return invoiceBillToAddressLine1;
}
/**
* @param invoiceBillToAddressLine1 The invoiceBillToAddressLine1 to set.
*/
public void setInvoiceBillToAddressLine1(String billToAddressLine1) {
this.invoiceBillToAddressLine1 = billToAddressLine1;
}
/**
* @return Returns the invoiceBillToAddressLine2.
*/
public String getInvoiceBillToAddressLine2() {
return invoiceBillToAddressLine2;
}
/**
* @param invoiceBillToAddressLine2 The invoiceBillToAddressLine2 to set.
*/
public void setInvoiceBillToAddressLine2(String billToAddressLine2) {
this.invoiceBillToAddressLine2 = billToAddressLine2;
}
/**
* @return Returns the invoiceBillToAddressLine3.
*/
public String getInvoiceBillToAddressLine3() {
return invoiceBillToAddressLine3;
}
/**
* @param invoiceBillToAddressLine3 The invoiceBillToAddressLine3 to set.
*/
public void setInvoiceBillToAddressLine3(String billToAddressLine3) {
this.invoiceBillToAddressLine3 = billToAddressLine3;
}
/**
* @return Returns the invoiceBillToAddressName.
*/
public String getInvoiceBillToAddressName() {
return invoiceBillToAddressName;
}
/**
* @param invoiceBillToAddressName The invoiceBillToAddressName to set.
*/
public void setInvoiceBillToAddressName(String billToAddressName) {
this.invoiceBillToAddressName = billToAddressName;
}
/**
* @return Returns the invoiceBillToAddressPostalCode.
*/
public String getInvoiceBillToAddressPostalCode() {
return invoiceBillToAddressPostalCode;
}
/**
* @param invoiceBillToAddressPostalCode The invoiceBillToAddressPostalCode to set.
*/
public void setInvoiceBillToAddressPostalCode(String billToAddressPostalCode) {
this.invoiceBillToAddressPostalCode = billToAddressPostalCode;
}
/**
* @return Returns the invoiceBillToAddressStateCode.
*/
public String getInvoiceBillToAddressStateCode() {
return invoiceBillToAddressStateCode;
}
/**
* @param invoiceBillToAddressStateCode The invoiceBillToAddressStateCode to set.
*/
public void setInvoiceBillToAddressStateCode(String billToAddressStateCode) {
this.invoiceBillToAddressStateCode = billToAddressStateCode;
}
/**
* @return Returns the invoiceBillToAddressType.
*/
public String getInvoiceBillToAddressType() {
return invoiceBillToAddressType;
}
/**
* @param invoiceBillToAddressType The invoiceBillToAddressType to set.
*/
public void setInvoiceBillToAddressType(String billToAddressType) {
this.invoiceBillToAddressType = billToAddressType;
}
/**
* @return Returns the invoiceFileDeploymentModeValue.
*/
public String getInvoiceFileDeploymentModeValue() {
return invoiceFileDeploymentModeValue;
}
/**
* @param invoiceFileDeploymentModeValue The invoiceFileDeploymentModeValue to set.
*/
public void setInvoiceFileDeploymentModeValue(String deploymentMode) {
this.invoiceFileDeploymentModeValue = deploymentMode;
}
/**
* @return Returns the invoiceRejectItems.
*/
public List<ElectronicInvoiceRejectItem> getInvoiceRejectItems() {
return invoiceRejectItems;
}
/**
* @param invoiceRejectItems The invoiceRejectItems to set.
*/
public void setInvoiceRejectItems(List<ElectronicInvoiceRejectItem> electronicInvoiceRejectItems) {
this.invoiceRejectItems = electronicInvoiceRejectItems;
}
public ElectronicInvoiceRejectItem getInvoiceRejectItem(int index) {
while (getInvoiceRejectItems().size() <= index) {
getInvoiceRejectItems().add(new ElectronicInvoiceRejectItem());
}
return getInvoiceRejectItems().get(index);
}
/**
* @return Returns the invoiceRejectReasons.
*/
public List<ElectronicInvoiceRejectReason> getInvoiceRejectReasons() {
return invoiceRejectReasons;
}
/**
* @param invoiceRejectReasons The invoiceRejectReasons to set.
*/
public void setInvoiceRejectReasons(List<ElectronicInvoiceRejectReason> electronicInvoiceRejectReasons) {
this.invoiceRejectReasons = electronicInvoiceRejectReasons;
}
public ElectronicInvoiceRejectReason getInvoiceRejectReason(int index) {
while (getInvoiceRejectReasons().size() <= index) {
getInvoiceRejectReasons().add(new ElectronicInvoiceRejectReason());
}
return getInvoiceRejectReasons().get(index);
}
/**
* Gets the paymentRequestIdentifier attribute.
* @return Returns the paymentRequestIdentifier.
*/
public Integer getPaymentRequestIdentifier() {
return paymentRequestIdentifier;
}
/**
* Sets the paymentRequestIdentifier attribute value.
* @param paymentRequestIdentifier The paymentRequestIdentifier to set.
*/
public void setPaymentRequestIdentifier(Integer paymentRequestIdentifier) {
this.paymentRequestIdentifier = paymentRequestIdentifier;
}
/**
* @return Returns the purchaseOrderDeliveryCampusCode.
*/
public String getPurchaseOrderDeliveryCampusCode() {
return purchaseOrderDeliveryCampusCode;
}
/**
* @param purchaseOrderDeliveryCampusCode The purchaseOrderDeliveryCampusCode to set.
*/
public void setPurchaseOrderDeliveryCampusCode(String poDeliveryCampusCode) {
this.purchaseOrderDeliveryCampusCode = poDeliveryCampusCode;
}
/**
* @return Returns the purchaseOrderIdentifier.
*/
public Integer getPurchaseOrderIdentifier() {
return purchaseOrderIdentifier;
}
/**
* @param purchaseOrderIdentifier The purchaseOrderIdentifier to set.
*/
public void setPurchaseOrderIdentifier(Integer purchaseOrderId) {
this.purchaseOrderIdentifier = purchaseOrderId;
}
/**
* @return Returns the invoiceFileDiscountInLineIndicator.
*/
public Boolean getInvoiceFileDiscountInLineIndicator() {
return invoiceFileDiscountInLineIndicator;
}
public Boolean isInvoiceFileDiscountInLineIndicator() {
return invoiceFileDiscountInLineIndicator;
}
/**
* @param invoiceFileDiscountInLineIndicator The invoiceFileDiscountInLineIndicator to set.
*/
public void setInvoiceFileDiscountInLineIndicator(Boolean fileDiscountInLineIndicator) {
this.invoiceFileDiscountInLineIndicator = fileDiscountInLineIndicator;
}
/**
* @return Returns the invoiceFileHeaderTypeIndicator.
*/
public Boolean getInvoiceFileHeaderTypeIndicator() {
return invoiceFileHeaderTypeIndicator;
}
public Boolean isInvoiceFileHeaderTypeIndicator() {
return invoiceFileHeaderTypeIndicator;
}
/**
* @param invoiceFileHeaderTypeIndicator The invoiceFileHeaderTypeIndicator to set.
*/
public void setInvoiceFileHeaderTypeIndicator(Boolean fileHeaderTypeIndicator) {
this.invoiceFileHeaderTypeIndicator = fileHeaderTypeIndicator;
}
/**
* @return Returns the invoiceFileInformationOnlyIndicator.
*/
public Boolean getInvoiceFileInformationOnlyIndicator() {
return invoiceFileInformationOnlyIndicator;
}
public Boolean isInvoiceFileInformationOnlyIndicator() {
return invoiceFileInformationOnlyIndicator;
}
/**
* @param invoiceFileInformationOnlyIndicator The invoiceFileInformationOnlyIndicator to set.
*/
public void setInvoiceFileInformationOnlyIndicator(Boolean fileInformationOnlyIndicator) {
this.invoiceFileInformationOnlyIndicator = fileInformationOnlyIndicator;
}
/**
* @return Returns the invoiceFileOperationIdentifier.
*/
public String getInvoiceFileOperationIdentifier() {
return invoiceFileOperationIdentifier;
}
/**
* @param invoiceFileOperationIdentifier The invoiceFileOperationIdentifier to set.
*/
public void setInvoiceFileOperationIdentifier(String fileOperationId) {
this.invoiceFileOperationIdentifier = fileOperationId;
}
/**
* @return Returns the invoiceFilePurposeIdentifier.
*/
public String getInvoiceFilePurposeIdentifier() {
return invoiceFilePurposeIdentifier;
}
/**
* @param invoiceFilePurposeIdentifier The invoiceFilePurposeIdentifier to set.
*/
public void setInvoiceFilePurposeIdentifier(String filePurposeId) {
this.invoiceFilePurposeIdentifier = filePurposeId;
}
/**
* @return Returns the invoiceFileShippingInLineIndicator.
*/
public Boolean getInvoiceFileShippingInLineIndicator() {
return invoiceFileShippingInLineIndicator;
}
public Boolean isInvoiceFileShippingInLineIndicator() {
return invoiceFileShippingInLineIndicator;
}
/**
* @param invoiceFileShippingInLineIndicator The invoiceFileShippingInLineIndicator to set.
*/
public void setInvoiceFileShippingInLineIndicator(Boolean fileShippingInLineIndicator) {
this.invoiceFileShippingInLineIndicator = fileShippingInLineIndicator;
}
/**
* @return Returns the invoiceFileSpecialHandlingInLineIndicator.
*/
public Boolean getInvoiceFileSpecialHandlingInLineIndicator() {
return invoiceFileSpecialHandlingInLineIndicator;
}
public Boolean isInvoiceFileSpecialHandlingInLineIndicator() {
return invoiceFileSpecialHandlingInLineIndicator;
}
/**
* @param invoiceFileSpecialHandlingInLineIndicator The invoiceFileSpecialHandlingInLineIndicator to set.
*/
public void setInvoiceFileSpecialHandlingInLineIndicator(Boolean fileSpecHandlingInLineIndicator) {
this.invoiceFileSpecialHandlingInLineIndicator = fileSpecHandlingInLineIndicator;
}
/**
* @return Returns the invoiceFileTaxInLineIndicator.
*/
public Boolean getInvoiceFileTaxInLineIndicator() {
return invoiceFileTaxInLineIndicator;
}
public Boolean isInvoiceFileTaxInLineIndicator() {
return invoiceFileTaxInLineIndicator;
}
/**
* @param invoiceFileTaxInLineIndicator The invoiceFileTaxInLineIndicator to set.
*/
public void setInvoiceFileTaxInLineIndicator(Boolean fileTaxInLineIndicator) {
this.invoiceFileTaxInLineIndicator = fileTaxInLineIndicator;
}
/**
* @return Returns the purapDocumentIdentifier.
*/
public Integer getPurapDocumentIdentifier() {
return purapDocumentIdentifier;
}
/**
* @param purapDocumentIdentifier The purapDocumentIdentifier to set.
*/
public void setPurapDocumentIdentifier(Integer id) {
this.purapDocumentIdentifier = id;
}
public Integer getAccountsPayablePurchasingDocumentLinkIdentifier() {
return accountsPayablePurchasingDocumentLinkIdentifier;
}
public void setAccountsPayablePurchasingDocumentLinkIdentifier(Integer accountsPayablePurchasingDocumentLinkIdentifier) {
this.accountsPayablePurchasingDocumentLinkIdentifier = accountsPayablePurchasingDocumentLinkIdentifier;
}
/**
* @return Returns the invoiceCustomerNumber.
*/
public String getInvoiceCustomerNumber() {
return invoiceCustomerNumber;
}
/**
* @param invoiceCustomerNumber The invoiceCustomerNumber to set.
*/
public void setInvoiceCustomerNumber(String invoiceCustomerNumber) {
this.invoiceCustomerNumber = invoiceCustomerNumber;
}
/**
* @return Returns the invoiceFileDate.
*/
public String getInvoiceFileDate() {
return invoiceFileDate;
}
/**
* @param invoiceFileDate The invoiceFileDate to set.
*/
public void setInvoiceFileDate(String invoiceDate) {
this.invoiceFileDate = invoiceDate;
}
/**
* @return Returns the invoiceItemDiscountAmount.
*/
public BigDecimal getInvoiceItemDiscountAmount() {
if (this.isInvoiceFileDiscountInLineIndicator()) {
BigDecimal returnValue = zero;
try {
for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) {
BigDecimal toAddAmount = eiri.getInvoiceItemDiscountAmount();
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'");
}
returnValue = returnValue.add(toAddAmount);
}
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue());
}
return returnValue;
}
catch (NumberFormatException n) {
// do nothing this is already rejected
LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName);
return zero;
}
}
else {
return invoiceItemDiscountAmount;
}
}
/**
* @param invoiceItemDiscountAmount The invoiceItemDiscountAmount to set.
*/
public void setInvoiceItemDiscountAmount(BigDecimal invoiceDiscountAmount) {
this.invoiceItemDiscountAmount = invoiceDiscountAmount;
}
/**
* @return Returns the invoiceItemDiscountCurrencyCode.
*/
public String getInvoiceItemDiscountCurrencyCode() {
return invoiceItemDiscountCurrencyCode;
}
/**
* @param invoiceItemDiscountCurrencyCode The invoiceItemDiscountCurrencyCode to set.
*/
public void setInvoiceItemDiscountCurrencyCode(String invoiceDiscountAmountCurrency) {
this.invoiceItemDiscountCurrencyCode = invoiceDiscountAmountCurrency;
}
/**
* @return Returns the invoiceFileName.
*/
public String getInvoiceFileName() {
return invoiceFileName;
}
/**
* @param invoiceFileName The invoiceFileName to set.
*/
public void setInvoiceFileName(String invoiceFileName) {
this.invoiceFileName = invoiceFileName;
}
/**
* @return Returns the invoiceItemGrossAmount.
*/
public BigDecimal getInvoiceItemGrossAmount() {
return invoiceItemGrossAmount;
}
/**
* @param invoiceItemGrossAmount The invoiceItemGrossAmount to set.
*/
public void setInvoiceItemGrossAmount(BigDecimal invoiceGrossAmount) {
this.invoiceItemGrossAmount = invoiceGrossAmount;
}
/**
* @return Returns the invoiceItemGrossCurrencyCode.
*/
public String getInvoiceItemGrossCurrencyCode() {
return invoiceItemGrossCurrencyCode;
}
/**
* @param invoiceItemGrossCurrencyCode The invoiceItemGrossCurrencyCode to set.
*/
public void setInvoiceItemGrossCurrencyCode(String invoiceGrossAmountCurrency) {
this.invoiceItemGrossCurrencyCode = invoiceGrossAmountCurrency;
}
/**
* @return Returns the invoiceItemNetAmount.
*/
public BigDecimal getInvoiceItemNetAmount() {
return invoiceItemNetAmount;
}
/**
* @param invoiceItemNetAmount The invoiceItemNetAmount to set.
*/
public void setInvoiceItemNetAmount(BigDecimal invoiceNetAmount) {
this.invoiceItemNetAmount = invoiceNetAmount;
}
public boolean isInvoiceNumberAcceptIndicator() {
return invoiceNumberAcceptIndicator;
}
public void setInvoiceNumberAcceptIndicator(boolean invoiceNumberAcceptIndicator) {
this.invoiceNumberAcceptIndicator = invoiceNumberAcceptIndicator;
}
public boolean isInvoiceResearchIndicator() {
return invoiceResearchIndicator;
}
public boolean getInvoiceResearchIndicator() {
return invoiceResearchIndicator;
}
public void setInvoiceResearchIndicator(boolean invoiceResearchIndicator) {
this.invoiceResearchIndicator = invoiceResearchIndicator;
}
public Timestamp getAccountsPayableApprovalTimestamp() {
return accountsPayableApprovalTimestamp;
}
public void setAccountsPayableApprovalTimestamp(Timestamp accountsPayableApprovalTimestamp) {
this.accountsPayableApprovalTimestamp = accountsPayableApprovalTimestamp;
}
/**
* @return Returns the invoiceItemNetCurrencyCode.
*/
public String getInvoiceItemNetCurrencyCode() {
return invoiceItemNetCurrencyCode;
}
/**
* @param invoiceItemNetCurrencyCode The invoiceItemNetCurrencyCode to set.
*/
public void setInvoiceItemNetCurrencyCode(String invoiceNetAmountCurrency) {
this.invoiceItemNetCurrencyCode = invoiceNetAmountCurrency;
}
/**
* @return Returns the invoiceFileNumber.
*/
public String getInvoiceFileNumber() {
return invoiceFileNumber;
}
/**
* @param invoiceFileNumber The invoiceFileNumber to set.
*/
public void setInvoiceFileNumber(String invoiceNumber) {
this.invoiceFileNumber = invoiceNumber;
}
/**
* @return Returns the invoiceOrderPurchaseOrderDate.
*/
public String getInvoiceOrderPurchaseOrderDate() {
return invoiceOrderPurchaseOrderDate;
}
/**
* @param invoiceOrderPurchaseOrderDate The invoiceOrderPurchaseOrderDate to set.
*/
public void setInvoiceOrderPurchaseOrderDate(String invoiceOrderDate) {
this.invoiceOrderPurchaseOrderDate = invoiceOrderDate;
}
/**
* @return Returns the invoiceOrderPurchaseOrderIdentifier.
*/
public String getInvoiceOrderPurchaseOrderIdentifier() {
return invoiceOrderPurchaseOrderIdentifier;
}
/**
* @param invoiceOrderPurchaseOrderIdentifier The invoiceOrderPurchaseOrderIdentifier to set.
*/
public void setInvoiceOrderPurchaseOrderIdentifier(String invoiceOrderId) {
this.invoiceOrderPurchaseOrderIdentifier = invoiceOrderId;
}
/**
* @return Returns the invoiceProcessTimestamp.
*/
public Timestamp getInvoiceProcessTimestamp() {
return invoiceProcessTimestamp;
}
/**
* @param invoiceProcessTimestamp The invoiceProcessTimestamp to set.
*/
public void setInvoiceProcessTimestamp(Timestamp invoiceProcessTimestamp) {
this.invoiceProcessTimestamp = invoiceProcessTimestamp;
}
/**
* @return Returns the invoicePurchaseOrderNumber.
*/
public String getInvoicePurchaseOrderNumber() {
return invoicePurchaseOrderNumber;
}
/**
* @param invoicePurchaseOrderNumber The invoicePurchaseOrderNumber to set.
*/
public void setInvoicePurchaseOrderNumber(String invoicePurchaseOrderId) {
this.invoicePurchaseOrderNumber = invoicePurchaseOrderId;
}
/**
* @return Returns the invoiceShipDate.
*/
public String getInvoiceShipDate() {
return invoiceShipDate;
}
/**
* @param invoiceShipDate The invoiceShipDate to set.
*/
public void setInvoiceShipDate(String invoiceShipDate) {
this.invoiceShipDate = invoiceShipDate;
}
/**
* @return Returns the invoiceItemShippingAmount.
*/
public BigDecimal getInvoiceItemShippingAmount() {
if (this.isInvoiceFileShippingInLineIndicator()) {
BigDecimal returnValue = zero;
try {
for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) {
BigDecimal toAddAmount = eiri.getInvoiceItemShippingAmount();
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'");
}
returnValue = returnValue.add(toAddAmount);
}
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue());
}
return returnValue;
}
catch (NumberFormatException n) {
// do nothing this is already rejected
LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName);
return zero;
}
}
else {
return invoiceItemShippingAmount;
}
}
/**
* @param invoiceItemShippingAmount The invoiceItemShippingAmount to set.
*/
public void setInvoiceItemShippingAmount(BigDecimal invoiceShippingAmount) {
this.invoiceItemShippingAmount = invoiceShippingAmount;
}
/**
* @return Returns the invoiceItemShippingCurrencyCode.
*/
public String getInvoiceItemShippingCurrencyCode() {
return invoiceItemShippingCurrencyCode;
}
/**
* @param invoiceItemShippingCurrencyCode The invoiceItemShippingCurrencyCode to set.
*/
public void setInvoiceItemShippingCurrencyCode(String invoiceShippingAmountCurrency) {
this.invoiceItemShippingCurrencyCode = invoiceShippingAmountCurrency;
}
/**
* @return Returns the invoiceItemShippingDescription.
*/
public String getInvoiceItemShippingDescription() {
return invoiceItemShippingDescription;
}
/**
* @param invoiceItemShippingDescription The invoiceItemShippingDescription to set.
*/
public void setInvoiceItemShippingDescription(String invoiceShippingDescription) {
this.invoiceItemShippingDescription = invoiceShippingDescription;
}
/**
* @return Returns the invoiceItemSpecialHandlingAmount.
*/
public BigDecimal getInvoiceItemSpecialHandlingAmount() {
if (this.isInvoiceFileSpecialHandlingInLineIndicator()) {
BigDecimal returnValue = zero;
try {
for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) {
BigDecimal toAddAmount = eiri.getInvoiceItemSpecialHandlingAmount();
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'");
}
returnValue = returnValue.add(toAddAmount);
}
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue());
}
return returnValue;
}
catch (NumberFormatException n) {
// do nothing this is already rejected
LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName);
return zero;
}
}
else {
return invoiceItemSpecialHandlingAmount;
}
}
/**
* @param invoiceItemSpecialHandlingAmount The invoiceItemSpecialHandlingAmount to set.
*/
public void setInvoiceItemSpecialHandlingAmount(BigDecimal invoiceSpecialHandlingAmount) {
this.invoiceItemSpecialHandlingAmount = invoiceSpecialHandlingAmount;
}
/**
* @return Returns the invoiceItemSpecialHandlingCurrencyCode.
*/
public String getInvoiceItemSpecialHandlingCurrencyCode() {
return invoiceItemSpecialHandlingCurrencyCode;
}
/**
* @param invoiceItemSpecialHandlingCurrencyCode The invoiceItemSpecialHandlingCurrencyCode to set.
*/
public void setInvoiceItemSpecialHandlingCurrencyCode(String invoiceSpecialHandlingAmountCurrency) {
this.invoiceItemSpecialHandlingCurrencyCode = invoiceSpecialHandlingAmountCurrency;
}
/**
* @return the invoiceItemSpecialHandlingDescription
*/
public String getInvoiceItemSpecialHandlingDescription() {
return invoiceItemSpecialHandlingDescription;
}
/**
* @param invoiceItemSpecialHandlingDescription the invoiceItemSpecialHandlingDescription to set
*/
public void setInvoiceItemSpecialHandlingDescription(String invoiceSpecialHandlingDescription) {
this.invoiceItemSpecialHandlingDescription = invoiceSpecialHandlingDescription;
}
/**
* @return Returns the invoiceItemSubTotalAmount.
*/
public BigDecimal getInvoiceItemSubTotalAmount() {
return invoiceItemSubTotalAmount;
}
/**
* @param invoiceItemSubTotalAmount The invoiceItemSubTotalAmount to set.
*/
public void setInvoiceItemSubTotalAmount(BigDecimal invoiceSubTotalAmount) {
this.invoiceItemSubTotalAmount = invoiceSubTotalAmount;
}
/**
* @return Returns the invoiceItemSubTotalCurrencyCode.
*/
public String getInvoiceItemSubTotalCurrencyCode() {
return invoiceItemSubTotalCurrencyCode;
}
/**
* @param invoiceItemSubTotalCurrencyCode The invoiceItemSubTotalCurrencyCode to set.
*/
public void setInvoiceItemSubTotalCurrencyCode(String invoiceSubTotalAmountCurrency) {
this.invoiceItemSubTotalCurrencyCode = invoiceSubTotalAmountCurrency;
}
/**
* @return Returns the invoiceItemTaxAmount.
*/
public BigDecimal getInvoiceItemTaxAmount() {
BigDecimal returnValue = zero;
boolean enableSalesTaxInd = SpringContext.getBean(ParameterService.class).getParameterValueAsBoolean(KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapParameterConstants.ENABLE_SALES_TAX_IND);
try {
//if sales tax enabled, calculate total by totaling items
if(enableSalesTaxInd){
for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) {
BigDecimal toAddAmount = eiri.getInvoiceItemTaxAmount();
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'");
}
returnValue = returnValue.add(toAddAmount);
}
}else{ //else take the total, which should be the summary tax total
returnValue = returnValue.add(this.invoiceItemTaxAmount);
}
if (LOG.isDebugEnabled()) {
LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue());
}
return returnValue;
}
catch (NumberFormatException n) {
// do nothing this is already rejected
LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName);
return zero;
}
// return invoiceItemTaxAmount;
}
/**
* @param invoiceItemTaxAmount The invoiceItemTaxAmount to set.
*/
public void setInvoiceItemTaxAmount(BigDecimal invoiceTaxAmount) {
this.invoiceItemTaxAmount = invoiceTaxAmount;
}
/**
* @return Returns the invoiceItemTaxCurrencyCode.
*/
public String getInvoiceItemTaxCurrencyCode() {
return invoiceItemTaxCurrencyCode;
}
/**
* @param invoiceItemTaxCurrencyCode The invoiceItemTaxCurrencyCode to set.
*/
public void setInvoiceItemTaxCurrencyCode(String invoiceTaxAmountCurrency) {
this.invoiceItemTaxCurrencyCode = invoiceTaxAmountCurrency;
}
/**
* @return Returns the invoiceItemTaxDescription.
*/
public String getInvoiceItemTaxDescription() {
return invoiceItemTaxDescription;
}
/**
* @param invoiceItemTaxDescription The invoiceItemTaxDescription to set.
*/
public void setInvoiceItemTaxDescription(String invoiceTaxDescription) {
this.invoiceItemTaxDescription = invoiceTaxDescription;
}
/**
* @return Returns the invoiceOrderMasterAgreementInformationDate.
*/
public String getInvoiceOrderMasterAgreementInformationDate() {
return invoiceOrderMasterAgreementInformationDate;
}
/**
* @param invoiceOrderMasterAgreementInformationDate The invoiceOrderMasterAgreementInformationDate to set.
*/
public void setInvoiceOrderMasterAgreementInformationDate(String masterAgreementInfoDate) {
this.invoiceOrderMasterAgreementInformationDate = masterAgreementInfoDate;
}
/**
* @return Returns the invoiceOrderMasterAgreementInformationIdentifier.
*/
public String getInvoiceOrderMasterAgreementInformationIdentifier() {
return invoiceOrderMasterAgreementInformationIdentifier;
}
/**
* @param invoiceOrderMasterAgreementInformationIdentifier The invoiceOrderMasterAgreementInformationIdentifier to set.
*/
public void setInvoiceOrderMasterAgreementInformationIdentifier(String masterAgreementInfoId) {
this.invoiceOrderMasterAgreementInformationIdentifier = masterAgreementInfoId;
}
/**
* @return Returns the invoiceOrderMasterAgreementReferenceDate.
*/
public String getInvoiceOrderMasterAgreementReferenceDate() {
return invoiceOrderMasterAgreementReferenceDate;
}
/**
* @param invoiceOrderMasterAgreementReferenceDate The invoiceOrderMasterAgreementReferenceDate to set.
*/
public void setInvoiceOrderMasterAgreementReferenceDate(String masterAgreementReferenceDate) {
this.invoiceOrderMasterAgreementReferenceDate = masterAgreementReferenceDate;
}
/**
* @return Returns the invoiceOrderMasterAgreementReferenceIdentifier.
*/
public String getInvoiceOrderMasterAgreementReferenceIdentifier() {
return invoiceOrderMasterAgreementReferenceIdentifier;
}
/**
* @param invoiceOrderMasterAgreementReferenceIdentifier The invoiceOrderMasterAgreementReferenceIdentifier to set.
*/
public void setInvoiceOrderMasterAgreementReferenceIdentifier(String masterAgreementReferenceId) {
this.invoiceOrderMasterAgreementReferenceIdentifier = masterAgreementReferenceId;
}
/**
* @return Returns the invoiceOrderReferenceDocumentReferencePayloadIdentifier.
*/
public String getInvoiceOrderReferenceDocumentReferencePayloadIdentifier() {
return invoiceOrderReferenceDocumentReferencePayloadIdentifier;
}
/**
* @param invoiceOrderReferenceDocumentReferencePayloadIdentifier The invoiceOrderReferenceDocumentReferencePayloadIdentifier to
* set.
*/
public void setInvoiceOrderReferenceDocumentReferencePayloadIdentifier(String referenceDocumentRefPayloadId) {
this.invoiceOrderReferenceDocumentReferencePayloadIdentifier = referenceDocumentRefPayloadId;
}
/**
* @return Returns the invoiceOrderReferenceDocumentReferenceText.
*/
public String getInvoiceOrderReferenceDocumentReferenceText() {
return invoiceOrderReferenceDocumentReferenceText;
}
/**
* @param invoiceOrderReferenceDocumentReferenceText The invoiceOrderReferenceDocumentReferenceText to set.
*/
public void setInvoiceOrderReferenceDocumentReferenceText(String referenceDocumentRefText) {
this.invoiceOrderReferenceDocumentReferenceText = referenceDocumentRefText;
}
/**
* @return Returns the invoiceOrderReferenceOrderIdentifier.
*/
public String getInvoiceOrderReferenceOrderIdentifier() {
return invoiceOrderReferenceOrderIdentifier;
}
/**
* @param invoiceOrderReferenceOrderIdentifier The invoiceOrderReferenceOrderIdentifier to set.
*/
public void setInvoiceOrderReferenceOrderIdentifier(String referenceOrderId) {
this.invoiceOrderReferenceOrderIdentifier = referenceOrderId;
}
/**
* @return Returns the invoiceRemitToAddressCityName.
*/
public String getInvoiceRemitToAddressCityName() {
return invoiceRemitToAddressCityName;
}
/**
* @param invoiceRemitToAddressCityName The invoiceRemitToAddressCityName to set.
*/
public void setInvoiceRemitToAddressCityName(String remitToAddressCityName) {
this.invoiceRemitToAddressCityName = remitToAddressCityName;
}
/**
* @return Returns the invoiceRemitToAddressCountryCode.
*/
public String getInvoiceRemitToAddressCountryCode() {
return invoiceRemitToAddressCountryCode;
}
/**
* @param invoiceRemitToAddressCountryCode The invoiceRemitToAddressCountryCode to set.
*/
public void setInvoiceRemitToAddressCountryCode(String remitToAddressCountryCode) {
this.invoiceRemitToAddressCountryCode = remitToAddressCountryCode;
}
/**
* @return Returns the invoiceRemitToAddressCountryName.
*/
public String getInvoiceRemitToAddressCountryName() {
return invoiceRemitToAddressCountryName;
}
/**
* @param invoiceRemitToAddressCountryName The invoiceRemitToAddressCountryName to set.
*/
public void setInvoiceRemitToAddressCountryName(String remitToAddressCountryName) {
this.invoiceRemitToAddressCountryName = remitToAddressCountryName;
}
/**
* @return Returns the invoiceRemitToAddressLine1.
*/
public String getInvoiceRemitToAddressLine1() {
return invoiceRemitToAddressLine1;
}
/**
* @param invoiceRemitToAddressLine1 The invoiceRemitToAddressLine1 to set.
*/
public void setInvoiceRemitToAddressLine1(String remitToAddressLine1) {
this.invoiceRemitToAddressLine1 = remitToAddressLine1;
}
/**
* @return Returns the invoiceRemitToAddressLine2.
*/
public String getInvoiceRemitToAddressLine2() {
return invoiceRemitToAddressLine2;
}
/**
* @param invoiceRemitToAddressLine2 The invoiceRemitToAddressLine2 to set.
*/
public void setInvoiceRemitToAddressLine2(String remitToAddressLine2) {
this.invoiceRemitToAddressLine2 = remitToAddressLine2;
}
/**
* @return Returns the invoiceRemitToAddressLine3.
*/
public String getInvoiceRemitToAddressLine3() {
return invoiceRemitToAddressLine3;
}
/**
* @param invoiceRemitToAddressLine3 The invoiceRemitToAddressLine3 to set.
*/
public void setInvoiceRemitToAddressLine3(String remitToAddressLine3) {
this.invoiceRemitToAddressLine3 = remitToAddressLine3;
}
/**
* @return Returns the invoiceRemitToAddressName.
*/
public String getInvoiceRemitToAddressName() {
return invoiceRemitToAddressName;
}
/**
* @param invoiceRemitToAddressName The invoiceRemitToAddressName to set.
*/
public void setInvoiceRemitToAddressName(String remitToAddressName) {
this.invoiceRemitToAddressName = remitToAddressName;
}
/**
* @return Returns the invoiceRemitToAddressPostalCode.
*/
public String getInvoiceRemitToAddressPostalCode() {
return invoiceRemitToAddressPostalCode;
}
/**
* @param invoiceRemitToAddressPostalCode The invoiceRemitToAddressPostalCode to set.
*/
public void setInvoiceRemitToAddressPostalCode(String remitToAddressPostalCode) {
this.invoiceRemitToAddressPostalCode = remitToAddressPostalCode;
}
/**
* @return Returns the invoiceRemitToAddressStateCode.
*/
public String getInvoiceRemitToAddressStateCode() {
return invoiceRemitToAddressStateCode;
}
/**
* @param invoiceRemitToAddressStateCode The invoiceRemitToAddressStateCode to set.
*/
public void setInvoiceRemitToAddressStateCode(String remitToAddressStateCode) {
this.invoiceRemitToAddressStateCode = remitToAddressStateCode;
}
/**
* @return Returns the invoiceRemitToAddressType.
*/
public String getInvoiceRemitToAddressType() {
return invoiceRemitToAddressType;
}
/**
* @param invoiceRemitToAddressType The invoiceRemitToAddressType to set.
*/
public void setInvoiceRemitToAddressType(String remitToAddressType) {
this.invoiceRemitToAddressType = remitToAddressType;
}
/**
* @return Returns the invoiceShipToAddressCityName.
*/
public String getInvoiceShipToAddressCityName() {
return invoiceShipToAddressCityName;
}
/**
* @param invoiceShipToAddressCityName The invoiceShipToAddressCityName to set.
*/
public void setInvoiceShipToAddressCityName(String shipToAddressCityName) {
this.invoiceShipToAddressCityName = shipToAddressCityName;
}
/**
* @return Returns the invoiceShipToAddressCountryCode.
*/
public String getInvoiceShipToAddressCountryCode() {
return invoiceShipToAddressCountryCode;
}
/**
* @param invoiceShipToAddressCountryCode The invoiceShipToAddressCountryCode to set.
*/
public void setInvoiceShipToAddressCountryCode(String shipToAddressCountryCode) {
this.invoiceShipToAddressCountryCode = shipToAddressCountryCode;
}
/**
* @return Returns the invoiceShipToAddressCountryName.
*/
public String getInvoiceShipToAddressCountryName() {
return invoiceShipToAddressCountryName;
}
/**
* @param invoiceShipToAddressCountryName The invoiceShipToAddressCountryName to set.
*/
public void setInvoiceShipToAddressCountryName(String shipToAddressCountryName) {
this.invoiceShipToAddressCountryName = shipToAddressCountryName;
}
/**
* @return Returns the invoiceShipToAddressLine1.
*/
public String getInvoiceShipToAddressLine1() {
return invoiceShipToAddressLine1;
}
/**
* @param invoiceShipToAddressLine1 The invoiceShipToAddressLine1 to set.
*/
public void setInvoiceShipToAddressLine1(String shipToAddressLine1) {
this.invoiceShipToAddressLine1 = shipToAddressLine1;
}
/**
* @return Returns the invoiceShipToAddressLine2.
*/
public String getInvoiceShipToAddressLine2() {
return invoiceShipToAddressLine2;
}
/**
* @param invoiceShipToAddressLine2 The invoiceShipToAddressLine2 to set.
*/
public void setInvoiceShipToAddressLine2(String shipToAddressLine2) {
this.invoiceShipToAddressLine2 = shipToAddressLine2;
}
/**
* @return Returns the invoiceShipToAddressLine3.
*/
public String getInvoiceShipToAddressLine3() {
return invoiceShipToAddressLine3;
}
/**
* @param invoiceShipToAddressLine3 The invoiceShipToAddressLine3 to set.
*/
public void setInvoiceShipToAddressLine3(String shipToAddressLine3) {
this.invoiceShipToAddressLine3 = shipToAddressLine3;
}
/**
* @return Returns the invoiceShipToAddressName.
*/
public String getInvoiceShipToAddressName() {
return invoiceShipToAddressName;
}
/**
* @param invoiceShipToAddressName The invoiceShipToAddressName to set.
*/
public void setInvoiceShipToAddressName(String shipToAddressName) {
this.invoiceShipToAddressName = shipToAddressName;
}
/**
* @return Returns the invoiceShipToAddressPostalCode.
*/
public String getInvoiceShipToAddressPostalCode() {
return invoiceShipToAddressPostalCode;
}
/**
* @param invoiceShipToAddressPostalCode The invoiceShipToAddressPostalCode to set.
*/
public void setInvoiceShipToAddressPostalCode(String shipToAddressPostalCode) {
this.invoiceShipToAddressPostalCode = shipToAddressPostalCode;
}
/**
* @return Returns the invoiceShipToAddressStateCode.
*/
public String getInvoiceShipToAddressStateCode() {
return invoiceShipToAddressStateCode;
}
/**
* @param invoiceShipToAddressStateCode The invoiceShipToAddressStateCode to set.
*/
public void setInvoiceShipToAddressStateCode(String shipToAddressStateCode) {
this.invoiceShipToAddressStateCode = shipToAddressStateCode;
}
/**
* @return Returns the invoiceShipToAddressType.
*/
public String getInvoiceShipToAddressType() {
return invoiceShipToAddressType;
}
/**
* @param invoiceShipToAddressType The invoiceShipToAddressType to set.
*/
public void setInvoiceShipToAddressType(String shipToAddressType) {
this.invoiceShipToAddressType = shipToAddressType;
}
/**
* @return Returns the invoiceOrderSupplierOrderInformationIdentifier.
*/
public String getInvoiceOrderSupplierOrderInformationIdentifier() {
return invoiceOrderSupplierOrderInformationIdentifier;
}
/**
* @param invoiceOrderSupplierOrderInformationIdentifier The invoiceOrderSupplierOrderInformationIdentifier to set.
*/
public void setInvoiceOrderSupplierOrderInformationIdentifier(String supplierOrderInfoId) {
this.invoiceOrderSupplierOrderInformationIdentifier = supplierOrderInfoId;
}
/**
* @return Returns the vendorDetailAssignedIdentifier.
*/
public Integer getVendorDetailAssignedIdentifier() {
return vendorDetailAssignedIdentifier;
}
/**
* @param vendorDetailAssignedIdentifier The vendorDetailAssignedIdentifier to set.
*/
public void setVendorDetailAssignedIdentifier(Integer vendorDetailID) {
this.vendorDetailAssignedIdentifier = vendorDetailID;
}
/**
* @return Returns the vendorDunsNumber.
*/
public String getVendorDunsNumber() {
return vendorDunsNumber;
}
/**
* @param vendorDunsNumber The vendorDunsNumber to set.
*/
public void setVendorDunsNumber(String vendorDunsNumber) {
this.vendorDunsNumber = vendorDunsNumber;
}
/**
* @return Returns the vendorHeaderGeneratedIdentifier.
*/
public Integer getVendorHeaderGeneratedIdentifier() {
return vendorHeaderGeneratedIdentifier;
}
/**
* @param vendorHeaderGeneratedIdentifier The vendorHeaderGeneratedIdentifier to set.
*/
public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderID) {
this.vendorHeaderGeneratedIdentifier = vendorHeaderID;
}
public void addRejectItem(ElectronicInvoiceRejectItem item) {
// int itemLinePosition = getItemLinePosition();
// if (ObjectUtils.isNotNull(item.getItemLineNumber()) && (item.getItemLineNumber() > 0) && (item.getItemLineNumber() <=
// itemLinePosition)) {
// itemLinePosition = item.getItemLineNumber().intValue() - 1;
// }
item.setPurapDocumentIdentifier(this.purapDocumentIdentifier);
item.setElectronicInvoiceRejectDocument(this);
invoiceRejectItems.add(item);
// renumberItems(itemLinePosition);
}
public void addRejectReason(ElectronicInvoiceRejectReason reason) {
// int itemLinePosition = getItemLinePosition();
// if (ObjectUtils.isNotNull(item.getItemLineNumber()) && (item.getItemLineNumber() > 0) && (item.getItemLineNumber() <=
// itemLinePosition)) {
// itemLinePosition = item.getItemLineNumber().intValue() - 1;
// }
reason.setPurapDocumentIdentifier(this.purapDocumentIdentifier);
reason.setElectronicInvoiceRejectDocument(this);
invoiceRejectReasons.add(reason);
// renumberItems(itemLinePosition);
}
public PurApRelatedViews getRelatedViews() {
if (relatedViews == null) {
relatedViews = new PurApRelatedViews(this.documentNumber, this.accountsPayablePurchasingDocumentLinkIdentifier);
}
return relatedViews;
}
public void setRelatedViews(PurApRelatedViews relatedViews) {
this.relatedViews = relatedViews;
}
public boolean isBoNotesSupport() {
return true;
}
public boolean isDocumentCreationInProgress() {
return isDocumentCreationInProgress;
}
public void setDocumentCreationInProgress(boolean isDocumentCreationInProgress) {
this.isDocumentCreationInProgress = isDocumentCreationInProgress;
}
/**
* Returns the vendor number for this document.
*
* @return the vendor number for this document.
*/
public String getVendorNumber() {
if (StringUtils.isNotEmpty(vendorNumber)) {
return vendorNumber;
}
else if (ObjectUtils.isNotNull(vendorDetail)) {
return vendorDetail.getVendorNumber();
} else if (getVendorHeaderGeneratedIdentifier() != null && getVendorDetailAssignedIdentifier() != null){
VendorDetail vendorDetail = new VendorDetail();
vendorDetail.setVendorHeaderGeneratedIdentifier(getVendorHeaderGeneratedIdentifier());
vendorDetail.setVendorDetailAssignedIdentifier(getVendorDetailAssignedIdentifier());
return vendorDetail.getVendorNumber();
}
else {
return "";
}
}
public void setVendorNumber(String vendorNumber) {
this.vendorNumber = vendorNumber;
}
/**
* Always returns false.
* This method is needed here because it's called by some tag files shared with PurAp documents.
*/
public boolean getIsATypeOfPurAPRecDoc() {
return false;
}
/**
* Always returns false.
* This method is needed here because it's called by some tag files shared with PurAp documents.
*/
public boolean getIsATypeOfPurDoc() {
return false;
}
/**
* Always returns false.
* This method is needed here because it's called by some tag files shared with PurAp documents.
*/
public boolean getIsATypeOfPODoc() {
return false;
}
/**
* Always returns false.
* This method is needed here because it's called by some tag files shared with PurAp documents.
*/
public boolean getIsPODoc() {
return false;
}
/**
* Always returns false.
* This method is needed here because it's called by some tag files shared with PurAp documents.
*/
public boolean getIsReqsDoc() {
return false;
}
public boolean isInvoiceResearchIndicatorForSearching() {
return invoiceResearchIndicator;
}
public String getInvoiceResearchIndicatorForResult(){
if (isInvoiceResearchIndicator()){
return "Yes";
}else{
return "No";
}
}
public String getPurchaseOrderDeliveryCampusCodeForSearch(){
return getPurchaseOrderDeliveryCampusCode();
}
public CampusParameter getPurchaseOrderDeliveryCampus() {
return purchaseOrderDeliveryCampus;
}
public Date getAccountsPayableApprovalDateForSearch(){
if (getAccountsPayableApprovalTimestamp() != null){
DateTimeService dateTimeService = SpringContext.getBean(DateTimeService.class);
try {
return dateTimeService.convertToSqlDate(getAccountsPayableApprovalTimestamp());
}
catch (ParseException e) {
throw new RuntimeException("ParseException thrown when trying to convert Timestamp to sqlDate.", e);
}
}
return null;
}
public Timestamp getInvoiceFileTimeStampForSearch() {
Date invoiceDate = ElectronicInvoiceUtils.getDate(getInvoiceFileDate());
if (invoiceDate != null){
return new Timestamp(invoiceDate.getTime());
}else{
return null;
}
}
public void setInvoiceFileTimeStampForSearch(Timestamp invoiceFileTimeStamp) {
//Not needed
}
public String getWorkflowStatusForResult(){
return PurapSearchUtils.getWorkFlowStatusString(getDocumentHeader());
}
/**
* Checks whether the related purchase order views need a warning to be displayed,
* i.e. if at least one of the purchase orders has never been opened.
* @return true if at least one related purchase order needs a warning; false otherwise
*/
public boolean getNeedWarningRelatedPOs() {
List<PurchaseOrderView> poViews = getRelatedViews().getRelatedPurchaseOrderViews();
for (PurchaseOrderView poView : poViews) {
if (poView.getNeedWarning()) {
return true;
}
}
return false;
}
/**
* @see org.kuali.rice.krad.document.DocumentBase#doRouteStatusChange()
*/
@Override
public void doRouteStatusChange(DocumentRouteStatusChange statusChangeEvent) {
LOG.debug("doRouteStatusChange() started");
super.doRouteStatusChange(statusChangeEvent);
if (this.getFinancialSystemDocumentHeader().getWorkflowDocument().isApproved()){
//Set the current date as approval timestamp
this.setAccountsPayableApprovalTimestamp(SpringContext.getBean(DateTimeService.class).getCurrentTimestamp());
}
}
/**
* @see org.kuali.rice.krad.bo.PersistableBusinessObjectBase#getBoNotes()
*/
@Override
public List getNotes() {
List notes = super.getNotes();
if (!StringUtils.isBlank(this.getObjectId())) {
for (Iterator iterator = notes.iterator(); iterator.hasNext();) {
Note note = (Note) iterator.next();
if (!StringUtils.isBlank(note.getObjectId())) {
note.refresh();
}
}
}
return super.getNotes();
}
@Override
public NoteType getNoteType() {
return NoteType.BUSINESS_OBJECT;
}
}