001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.module.purap.document; 017 018 import java.math.BigDecimal; 019 import java.sql.Timestamp; 020 import java.text.MessageFormat; 021 import java.text.ParseException; 022 import java.util.ArrayList; 023 import java.util.Date; 024 import java.util.Iterator; 025 import java.util.List; 026 027 import org.apache.commons.lang.StringUtils; 028 import org.apache.commons.lang.math.NumberUtils; 029 import org.kuali.kfs.module.purap.PurapParameterConstants; 030 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoice; 031 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceContact; 032 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceItem; 033 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceLoadSummary; 034 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceOrder; 035 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoicePostalAddress; 036 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceRejectItem; 037 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceRejectReason; 038 import org.kuali.kfs.module.purap.businessobject.PurchaseOrderView; 039 import org.kuali.kfs.module.purap.document.service.PurchaseOrderService; 040 import org.kuali.kfs.module.purap.service.ElectronicInvoiceMappingService; 041 import org.kuali.kfs.module.purap.util.ElectronicInvoiceUtils; 042 import org.kuali.kfs.module.purap.util.PurApRelatedViews; 043 import org.kuali.kfs.module.purap.util.PurapSearchUtils; 044 import org.kuali.kfs.sys.KFSConstants.AdHocPaymentIndicator; 045 import org.kuali.kfs.sys.ObjectUtil; 046 import org.kuali.kfs.sys.context.SpringContext; 047 import org.kuali.kfs.sys.document.FinancialSystemTransactionalDocumentBase; 048 import org.kuali.kfs.sys.service.impl.KfsParameterConstants; 049 import org.kuali.kfs.vnd.businessobject.CampusParameter; 050 import org.kuali.kfs.vnd.businessobject.VendorDetail; 051 import org.kuali.kfs.vnd.document.service.VendorService; 052 import org.kuali.rice.kew.dto.DocumentRouteStatusChangeDTO; 053 import org.kuali.rice.kns.bo.Note; 054 import org.kuali.rice.kns.document.SessionDocument; 055 import org.kuali.rice.kns.service.DateTimeService; 056 import org.kuali.rice.kns.service.ParameterService; 057 import org.kuali.rice.kns.util.KualiDecimal; 058 import org.kuali.rice.kns.util.ObjectUtils; 059 060 public class ElectronicInvoiceRejectDocument extends FinancialSystemTransactionalDocumentBase implements SessionDocument 061 { 062 protected static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ElectronicInvoiceRejectDocument.class); 063 protected static BigDecimal zero = new BigDecimal(0); 064 065 // NOT NULL FIELDS 066 protected Integer purapDocumentIdentifier; 067 protected Integer accountsPayablePurchasingDocumentLinkIdentifier; 068 protected Integer invoiceLoadSummaryIdentifier; 069 protected Timestamp invoiceProcessTimestamp; 070 protected Boolean invoiceFileHeaderTypeIndicator = Boolean.FALSE; 071 protected Boolean invoiceFileInformationOnlyIndicator = Boolean.FALSE; 072 protected Boolean invoiceFileTaxInLineIndicator = Boolean.FALSE; 073 protected Boolean invoiceFileSpecialHandlingInLineIndicator = Boolean.FALSE; 074 protected Boolean invoiceFileShippingInLineIndicator = Boolean.FALSE; 075 protected Boolean invoiceFileDiscountInLineIndicator = Boolean.FALSE; 076 077 protected String invoiceFileName; 078 protected String vendorDunsNumber; 079 protected Integer vendorHeaderGeneratedIdentifier; 080 protected Integer vendorDetailAssignedIdentifier; 081 protected String invoiceFileDate; 082 protected String invoiceFileNumber; 083 protected String invoiceFilePurposeIdentifier; 084 protected String invoiceFileOperationIdentifier; 085 protected String invoiceFileDeploymentModeValue; 086 protected String invoiceOrderReferenceOrderIdentifier; 087 protected String invoiceOrderReferenceDocumentReferencePayloadIdentifier; 088 protected String invoiceOrderReferenceDocumentReferenceText; 089 protected String invoiceOrderMasterAgreementReferenceIdentifier; 090 protected String invoiceOrderMasterAgreementReferenceDate; 091 protected String invoiceOrderMasterAgreementInformationIdentifier; 092 protected String invoiceOrderMasterAgreementInformationDate; 093 protected String invoiceOrderPurchaseOrderIdentifier; 094 protected String invoiceOrderPurchaseOrderDate; 095 protected String invoiceOrderSupplierOrderInformationIdentifier; 096 protected String invoiceShipDate; 097 protected String invoiceShipToAddressName; 098 protected String invoiceShipToAddressType; 099 protected String invoiceShipToAddressLine1; 100 protected String invoiceShipToAddressLine2; 101 protected String invoiceShipToAddressLine3; 102 protected String invoiceShipToAddressCityName; 103 protected String invoiceShipToAddressStateCode; 104 protected String invoiceShipToAddressPostalCode; 105 protected String invoiceShipToAddressCountryCode; 106 protected String invoiceShipToAddressCountryName; 107 protected String invoiceBillToAddressName; 108 protected String invoiceBillToAddressType; 109 protected String invoiceBillToAddressLine1; 110 protected String invoiceBillToAddressLine2; 111 protected String invoiceBillToAddressLine3; 112 protected String invoiceBillToAddressCityName; 113 protected String invoiceBillToAddressStateCode; 114 protected String invoiceBillToAddressPostalCode; 115 protected String invoiceBillToAddressCountryCode; 116 protected String invoiceBillToAddressCountryName; 117 protected String invoiceRemitToAddressName; 118 protected String invoiceRemitToAddressType; 119 protected String invoiceRemitToAddressLine1; 120 protected String invoiceRemitToAddressLine2; 121 protected String invoiceRemitToAddressLine3; 122 protected String invoiceRemitToAddressCityName; 123 protected String invoiceRemitToAddressStateCode; 124 protected String invoiceRemitToAddressPostalCode; 125 protected String invoiceRemitToAddressCountryCode; 126 protected String invoiceRemitToAddressCountryName; 127 128 protected Integer paymentRequestIdentifier; 129 130 protected String invoiceCustomerNumber; 131 protected String invoicePurchaseOrderNumber; 132 protected Integer purchaseOrderIdentifier; 133 protected String purchaseOrderDeliveryCampusCode; 134 135 protected String invoiceItemSubTotalCurrencyCode; 136 protected String invoiceItemSpecialHandlingCurrencyCode; 137 protected String invoiceItemSpecialHandlingDescription; 138 protected String invoiceItemShippingCurrencyCode; 139 protected String invoiceItemShippingDescription; 140 protected String invoiceItemTaxCurrencyCode; 141 protected String invoiceItemTaxDescription; 142 protected String invoiceItemGrossCurrencyCode; 143 protected String invoiceItemDiscountCurrencyCode; 144 protected String invoiceItemNetCurrencyCode; 145 146 protected BigDecimal invoiceItemSubTotalAmount; 147 protected BigDecimal invoiceItemSpecialHandlingAmount; 148 protected BigDecimal invoiceItemShippingAmount; 149 protected BigDecimal invoiceItemTaxAmount; 150 protected BigDecimal invoiceItemGrossAmount; 151 protected BigDecimal invoiceItemDiscountAmount; 152 protected BigDecimal invoiceItemNetAmount; 153 154 protected boolean invoiceNumberAcceptIndicator = false; 155 protected boolean invoiceResearchIndicator = false; 156 protected Timestamp invoiceFileTimeStampForSearch; 157 158 protected Timestamp accountsPayableApprovalTimestamp; 159 160 protected transient PurApRelatedViews relatedViews; 161 protected PurchaseOrderDocument currentPurchaseOrderDocument; 162 163 protected VendorDetail vendorDetail; 164 protected ElectronicInvoiceLoadSummary invoiceLoadSummary; 165 protected List<ElectronicInvoiceRejectItem> invoiceRejectItems = new ArrayList<ElectronicInvoiceRejectItem>(); 166 protected List<ElectronicInvoiceRejectReason> invoiceRejectReasons = new ArrayList<ElectronicInvoiceRejectReason>(); 167 168 protected boolean isDocumentCreationInProgress = false; 169 170 protected String vendorNumber; 171 172 protected CampusParameter purchaseOrderDeliveryCampus; 173 174 /** 175 * 176 */ 177 public ElectronicInvoiceRejectDocument() { 178 super(); 179 } 180 181 public void setFileLevelData(ElectronicInvoice ei) { 182 DateTimeService dateTimeService = SpringContext.getBean(DateTimeService.class); 183 this.invoiceProcessTimestamp = dateTimeService.getCurrentTimestamp(); 184 this.invoiceFileHeaderTypeIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isHeaderInvoiceIndicator()); 185 this.invoiceFileInformationOnlyIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isInformationOnly()); 186 this.invoiceFileTaxInLineIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isTaxInLine()); 187 this.invoiceFileSpecialHandlingInLineIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isSpecialHandlingInLine()); 188 this.invoiceFileShippingInLineIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isShippingInLine()); 189 this.invoiceFileDiscountInLineIndicator = new Boolean(ei.getInvoiceDetailRequestHeader().isDiscountInLine()); 190 191 this.invoiceFileName = ei.getFileName(); 192 this.vendorDunsNumber = ei.getDunsNumber(); 193 this.vendorHeaderGeneratedIdentifier = ei.getVendorHeaderID(); 194 this.vendorDetailAssignedIdentifier = ei.getVendorDetailID(); 195 this.invoiceFileDate = ei.getInvoiceDateDisplayText(); 196 this.invoiceFileNumber = ei.getInvoiceDetailRequestHeader().getInvoiceId(); 197 this.invoiceFilePurposeIdentifier = ei.getInvoiceDetailRequestHeader().getPurpose(); 198 this.invoiceFileOperationIdentifier = ei.getInvoiceDetailRequestHeader().getOperation(); 199 this.invoiceFileDeploymentModeValue = ei.getDeploymentMode(); 200 this.invoiceCustomerNumber = ei.getCustomerNumber(); 201 202 for (ElectronicInvoiceRejectReason eirr : ei.getFileRejectReasons()) { 203 ElectronicInvoiceRejectReason newReason = new ElectronicInvoiceRejectReason(); 204 ObjectUtil.buildObject(newReason, eirr); 205 this.invoiceRejectReasons.add(newReason); 206 } 207 } 208 209 public void setInvoiceOrderLevelData(ElectronicInvoice ei, ElectronicInvoiceOrder eio) { 210 this.invoiceOrderReferenceOrderIdentifier = eio.getOrderReferenceOrderID(); 211 this.invoiceOrderReferenceDocumentReferencePayloadIdentifier = eio.getOrderReferenceDocumentRefPayloadID(); 212 this.invoiceOrderReferenceDocumentReferenceText = eio.getOrderReferenceDocumentRef(); 213 this.invoiceOrderMasterAgreementReferenceIdentifier = eio.getMasterAgreementReferenceID(); 214 this.invoiceOrderMasterAgreementReferenceDate = ei.getMasterAgreementReferenceDateDisplayText(eio); 215 this.invoiceOrderMasterAgreementInformationIdentifier = eio.getMasterAgreementIDInfoID(); 216 this.invoiceOrderMasterAgreementInformationDate = ei.getMasterAgreementIDInfoDateDisplayText(eio); 217 this.invoiceOrderPurchaseOrderIdentifier = eio.getOrderIDInfoID(); 218 this.invoiceOrderPurchaseOrderDate = ei.getOrderIDInfoDateDisplayText(eio); 219 this.invoiceOrderSupplierOrderInformationIdentifier = eio.getSupplierOrderInfoID(); 220 this.invoiceShipDate = ei.getShippingDateDisplayText(eio); 221 222 ElectronicInvoiceContact shipToContact = ei.getCxmlContact(eio, ElectronicInvoiceMappingService.CXML_ADDRESS_SHIP_TO_ROLE_ID); 223 ElectronicInvoicePostalAddress shipToAddress = this.getCxmlPostalAddressByAddressName(shipToContact, ElectronicInvoiceMappingService.CXML_ADDRESS_SHIP_TO_NAME); 224 // ElectronicInvoicePostalAddress shipToAddress = 225 // ei.getCxmlPostalAddress(eio,ElectronicInvoiceMappingService.CXML_ADDRESS_SHIP_TO_ROLE_ID, 226 // ElectronicInvoiceMappingService.CXML_ADDRESS_SHIP_TO_NAME); 227 if (shipToAddress != null) { 228 this.invoiceShipToAddressName = shipToContact.getName(); 229 this.invoiceShipToAddressType = shipToAddress.getType(); 230 this.invoiceShipToAddressLine1 = shipToAddress.getLine1(); 231 this.invoiceShipToAddressLine2 = shipToAddress.getLine2(); 232 this.invoiceShipToAddressLine3 = shipToAddress.getLine3(); 233 this.invoiceShipToAddressCityName = shipToAddress.getCityName(); 234 this.invoiceShipToAddressStateCode = shipToAddress.getStateCode(); 235 this.invoiceShipToAddressPostalCode = shipToAddress.getPostalCode(); 236 this.invoiceShipToAddressCountryCode = shipToAddress.getCountryCode(); 237 this.invoiceShipToAddressCountryName = shipToAddress.getCountryName(); 238 } 239 240 ElectronicInvoiceContact billToContact = ei.getCxmlContact(eio, ElectronicInvoiceMappingService.CXML_ADDRESS_BILL_TO_ROLE_ID); 241 ElectronicInvoicePostalAddress billToAddress = this.getCxmlPostalAddressByAddressName(billToContact, ElectronicInvoiceMappingService.CXML_ADDRESS_BILL_TO_NAME); 242 // ElectronicInvoicePostalAddress billToAddress = 243 // ei.getCxmlPostalAddress(eio,ElectronicInvoiceMappingService.CXML_ADDRESS_BILL_TO_ROLE_ID, 244 // ElectronicInvoiceMappingService.CXML_ADDRESS_BILL_TO_NAME); 245 if (billToAddress != null) { 246 this.invoiceBillToAddressName = billToContact.getName(); 247 this.invoiceBillToAddressType = billToAddress.getType(); 248 this.invoiceBillToAddressLine1 = billToAddress.getLine1(); 249 this.invoiceBillToAddressLine2 = billToAddress.getLine2(); 250 this.invoiceBillToAddressLine3 = billToAddress.getLine3(); 251 this.invoiceBillToAddressCityName = billToAddress.getCityName(); 252 this.invoiceBillToAddressStateCode = billToAddress.getStateCode(); 253 this.invoiceBillToAddressPostalCode = billToAddress.getPostalCode(); 254 this.invoiceBillToAddressCountryCode = billToAddress.getCountryCode(); 255 this.invoiceBillToAddressCountryName = billToAddress.getCountryName(); 256 } 257 258 ElectronicInvoiceContact remitToContact = ei.getCxmlContact(eio, ElectronicInvoiceMappingService.CXML_ADDRESS_REMIT_TO_ROLE_ID); 259 ElectronicInvoicePostalAddress remitToAddress = this.getCxmlPostalAddressByAddressName(remitToContact, ElectronicInvoiceMappingService.CXML_ADDRESS_REMIT_TO_NAME); 260 // ElectronicInvoicePostalAddress remitToAddress = 261 // ei.getCxmlPostalAddress(eio,ElectronicInvoiceMappingService.CXML_ADDRESS_REMIT_TO_ROLE_ID, 262 // ElectronicInvoiceMappingService.CXML_ADDRESS_REMIT_TO_NAME); 263 if (remitToAddress != null) { 264 this.invoiceRemitToAddressName = remitToContact.getName(); 265 this.invoiceRemitToAddressType = remitToAddress.getType(); 266 this.invoiceRemitToAddressLine1 = remitToAddress.getLine1(); 267 this.invoiceRemitToAddressLine2 = remitToAddress.getLine2(); 268 this.invoiceRemitToAddressLine3 = remitToAddress.getLine3(); 269 this.invoiceRemitToAddressCityName = remitToAddress.getCityName(); 270 this.invoiceRemitToAddressStateCode = remitToAddress.getStateCode(); 271 this.invoiceRemitToAddressPostalCode = remitToAddress.getPostalCode(); 272 this.invoiceRemitToAddressCountryCode = remitToAddress.getCountryCode(); 273 this.invoiceRemitToAddressCountryName = remitToAddress.getCountryName(); 274 } 275 this.invoicePurchaseOrderNumber = eio.getInvoicePurchaseOrderID(); 276 this.purchaseOrderIdentifier = eio.getPurchaseOrderID(); 277 this.purchaseOrderDeliveryCampusCode = eio.getPurchaseOrderCampusCode(); 278 279 try { 280 this.invoiceItemSubTotalAmount = ei.getInvoiceSubTotalAmount(eio); 281 this.invoiceItemSubTotalCurrencyCode = ei.getInvoiceSubTotalCurrencyIfNotValid(eio); 282 } 283 catch (Exception e) { 284 this.invoiceItemSubTotalAmount = null; 285 this.invoiceItemSubTotalCurrencyCode = "INVALID Amount"; 286 } 287 try { 288 this.invoiceItemSpecialHandlingAmount = ei.getInvoiceSpecialHandlingAmount(eio); 289 this.invoiceItemSpecialHandlingCurrencyCode = ei.getInvoiceSpecialHandlingCurrencyIfNotValid(eio); 290 } 291 catch (Exception e) { 292 this.invoiceItemSpecialHandlingAmount = null; 293 this.invoiceItemSpecialHandlingCurrencyCode = "INVALID AMOUNT"; 294 } 295 this.invoiceItemSpecialHandlingDescription = ei.getInvoiceSpecialHandlingDescription(eio); 296 try { 297 this.invoiceItemShippingAmount = ei.getInvoiceShippingAmount(eio); 298 this.invoiceItemShippingCurrencyCode = ei.getInvoiceShippingCurrencyIfNotValid(eio); 299 } 300 catch (Exception e) { 301 this.invoiceItemShippingAmount = null; 302 this.invoiceItemShippingCurrencyCode = "INVALID AMOUNT"; 303 } 304 this.invoiceItemShippingDescription = ei.getInvoiceShippingDescription(eio); 305 try { 306 this.invoiceItemTaxAmount = ei.getInvoiceTaxAmount(eio); 307 this.invoiceItemTaxCurrencyCode = ei.getInvoiceTaxCurrencyIfNotValid(eio); 308 } 309 catch (Exception e) { 310 this.invoiceItemTaxAmount = null; 311 this.invoiceItemTaxCurrencyCode = "INVALID AMOUNT"; 312 } 313 this.invoiceItemTaxDescription = ei.getInvoiceTaxDescription(eio); 314 try { 315 this.invoiceItemGrossAmount = ei.getInvoiceGrossAmount(eio); 316 this.invoiceItemGrossCurrencyCode = ei.getInvoiceGrossCurrencyIfNotValid(eio); 317 } 318 catch (Exception e) { 319 this.invoiceItemGrossAmount = null; 320 this.invoiceItemGrossCurrencyCode = "INVALID AMOUNT"; 321 } 322 try { 323 this.invoiceItemDiscountAmount = ei.getInvoiceDiscountAmount(eio); 324 this.invoiceItemDiscountCurrencyCode = ei.getInvoiceDiscountCurrencyIfNotValid(eio); 325 } 326 catch (Exception e) { 327 this.invoiceItemDiscountAmount = null; 328 this.invoiceItemDiscountCurrencyCode = "INVALID AMOUNT"; 329 } 330 try { 331 this.invoiceItemNetAmount = ei.getInvoiceNetAmount(eio); 332 this.invoiceItemNetCurrencyCode = ei.getInvoiceNetCurrencyIfNotValid(eio); 333 } 334 catch (Exception e) { 335 this.invoiceItemNetAmount = null; 336 this.invoiceItemNetCurrencyCode = "INVALID AMOUNT"; 337 } 338 339 for (ElectronicInvoiceItem eii : eio.getInvoiceItems()) { 340 ElectronicInvoiceRejectItem eiri = new ElectronicInvoiceRejectItem(this, eii); 341 this.invoiceRejectItems.add(eiri); 342 } 343 344 for (ElectronicInvoiceRejectReason eirr : eio.getOrderRejectReasons()) { 345 eirr.setElectronicInvoiceRejectDocument(this); 346 this.invoiceRejectReasons.add(eirr); 347 } 348 } 349 350 /** 351 * @see org.kuali.rice.kns.document.DocumentBase#getDocumentTitle() 352 */ 353 @Override 354 public String getDocumentTitle() { 355 if (SpringContext.getBean(ParameterService.class).getIndicatorParameter(ElectronicInvoiceRejectDocument.class, PurapParameterConstants.PURAP_OVERRIDE_EIRT_DOC_TITLE)) { 356 return getCustomDocumentTitle(); 357 } 358 359 return this.buildDocumentTitle(super.getDocumentTitle()); 360 } 361 362 /** 363 * Returns a custom document title based on the properties of current document.. 364 * 365 * @return - Customized document title. 366 */ 367 protected String getCustomDocumentTitle() { 368 String poID = StringUtils.isEmpty(getInvoicePurchaseOrderNumber()) ? "UNKNOWN" : getInvoicePurchaseOrderNumber(); 369 String researchInd = isInvoiceResearchIndicator() ? "Y" : "N"; 370 371 // if this method is called when EIRT doc is just created, vendorDetail is not set yet, need to retrieve from DB 372 VendorDetail vendorDetail = getVendorDetail(); 373 Integer headerId = getVendorHeaderGeneratedIdentifier(); 374 Integer detailId = getVendorDetailAssignedIdentifier(); 375 if (vendorDetail == null && headerId != null && detailId != null) { 376 vendorDetail = SpringContext.getBean(VendorService.class).getVendorDetail(headerId, detailId); 377 } 378 String vendorName = vendorDetail == null || StringUtils.isEmpty(vendorDetail.getVendorName()) ? "UNKNOWN" : vendorDetail.getVendorName(); 379 380 //set title to: Vendor: <Vendor's Name> PO: <PO#> <Research Indicator> 381 String documentTitle = "Vendor: " + vendorName + " PO: " + poID + " " + researchInd; 382 return documentTitle; 383 } 384 385 /** 386 * Builds document title based on the properties of current document. 387 * 388 * @param the default document title 389 * @return the combine information of the given title and additional payment indicators 390 */ 391 protected String buildDocumentTitle(String title) { 392 if(this.getVendorDetail() == null) { 393 return title; 394 } 395 396 Integer vendorHeaderGeneratedIdentifier = this.getVendorDetail().getVendorHeaderGeneratedIdentifier(); 397 VendorService vendorService = SpringContext.getBean(VendorService.class); 398 399 Object[] indicators = new String[2]; 400 401 boolean isEmployeeVendor = vendorService.isVendorInstitutionEmployee(vendorHeaderGeneratedIdentifier); 402 indicators[0] = isEmployeeVendor ? AdHocPaymentIndicator.EMPLOYEE_VENDOR : AdHocPaymentIndicator.OTHER; 403 404 boolean isVendorForeign = vendorService.isVendorForeign(vendorHeaderGeneratedIdentifier); 405 indicators[1] = isVendorForeign ? AdHocPaymentIndicator.ALIEN_VENDOR : AdHocPaymentIndicator.OTHER; 406 407 for(Object indicator : indicators) { 408 if(!AdHocPaymentIndicator.OTHER.equals(indicator)) { 409 String titlePattern = title + " [{0}:{1}]"; 410 return MessageFormat.format(titlePattern, indicators); 411 } 412 } 413 414 return title; 415 } 416 417 protected ElectronicInvoicePostalAddress getCxmlPostalAddressByAddressName(ElectronicInvoiceContact contact, String addressName) { 418 if (contact != null) { 419 for (ElectronicInvoicePostalAddress cpa : contact.getPostalAddresses()) { 420 if (addressName == null) { 421 return cpa; 422 } 423 else { 424 if (addressName.equalsIgnoreCase(cpa.getName())) { 425 return cpa; 426 } 427 } 428 } 429 } 430 return null; 431 } 432 433 public KualiDecimal getTotalAmount() { 434 KualiDecimal returnValue = new KualiDecimal(zero); 435 try { 436 for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) { 437 BigDecimal toAddAmount1 = eiri.getInvoiceItemSubTotalAmount(); 438 KualiDecimal toAddAmount = KualiDecimal.ZERO; 439 if (toAddAmount1 != null) { 440 toAddAmount = new KualiDecimal(toAddAmount1.setScale(KualiDecimal.SCALE, KualiDecimal.ROUND_BEHAVIOR)); 441 } 442 LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'"); 443 returnValue = returnValue.add(toAddAmount); 444 } 445 LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue()); 446 return returnValue; 447 } 448 catch (NumberFormatException n) { 449 // do nothing this is already rejected 450 LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName); 451 return new KualiDecimal(zero); 452 } 453 } 454 455 public void setTotalAmount(KualiDecimal amount) { 456 // ignore this 457 } 458 459 public KualiDecimal getGrandTotalAmount() { 460 KualiDecimal returnValue = new KualiDecimal(zero); 461 try { 462 for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) { 463 KualiDecimal toAddAmount = new KualiDecimal(eiri.getInvoiceItemNetAmount()); 464 LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'"); 465 returnValue = returnValue.add(toAddAmount); 466 } 467 LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue()); 468 469 if (this.getInvoiceItemSpecialHandlingAmount() != null && zero.compareTo(this.getInvoiceItemSpecialHandlingAmount()) != 0) { 470 returnValue = returnValue.add(new KualiDecimal(this.getInvoiceItemSpecialHandlingAmount())); 471 } 472 if (this.getInvoiceItemShippingAmount() != null && zero.compareTo(this.getInvoiceItemShippingAmount()) != 0) { 473 returnValue = returnValue.add(new KualiDecimal(this.getInvoiceItemShippingAmount())); 474 } 475 // if (this.getInvoiceItemTaxAmount() != null && zero.compareTo(this.getInvoiceItemTaxAmount()) != 0) { 476 // returnValue = returnValue.add(new KualiDecimal(this.getInvoiceItemTaxAmount())); 477 // } 478 if (this.getInvoiceItemDiscountAmount() != null && zero.compareTo(this.getInvoiceItemDiscountAmount()) != 0) { 479 returnValue = returnValue.subtract(new KualiDecimal(this.getInvoiceItemDiscountAmount())); 480 } 481 LOG.debug("getGrandTotalAmount() returning amount " + returnValue.doubleValue()); 482 return returnValue; 483 } 484 catch (NumberFormatException n) { 485 // do nothing this is already rejected 486 LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName); 487 return new KualiDecimal(zero); 488 } 489 } 490 491 public void setGrandTotalAmount(KualiDecimal amount) { 492 // ignore this 493 } 494 495 /** 496 * @return Returns the invoiceLoadSummaryIdentifier. 497 */ 498 public Integer getInvoiceLoadSummaryIdentifier() { 499 return invoiceLoadSummaryIdentifier; 500 } 501 502 /** 503 * @param invoiceLoadSummaryIdentifier The invoiceLoadSummaryIdentifier to set. 504 */ 505 public void setInvoiceLoadSummaryIdentifier(Integer loadSummaryId) { 506 this.invoiceLoadSummaryIdentifier = loadSummaryId; 507 } 508 509 public PurchaseOrderDocument getCurrentPurchaseOrderDocument() { 510 511 if (StringUtils.isEmpty(getInvoicePurchaseOrderNumber()) || 512 !NumberUtils.isDigits(getInvoicePurchaseOrderNumber())){ 513 currentPurchaseOrderDocument = null; 514 }else if (currentPurchaseOrderDocument == null) { 515 currentPurchaseOrderDocument = SpringContext.getBean(PurchaseOrderService.class).getCurrentPurchaseOrder(new Integer(getInvoicePurchaseOrderNumber())); 516 }else if (!StringUtils.equals(getInvoicePurchaseOrderNumber(), currentPurchaseOrderDocument.getPurapDocumentIdentifier().toString())){ 517 currentPurchaseOrderDocument = SpringContext.getBean(PurchaseOrderService.class).getCurrentPurchaseOrder(new Integer(getInvoicePurchaseOrderNumber())); 518 } 519 520 return currentPurchaseOrderDocument; 521 } 522 523 public VendorDetail getVendorDetail() { 524 return vendorDetail; 525 } 526 527 public void setVendorDetail(VendorDetail vendorDetail) { 528 this.vendorDetail = vendorDetail; 529 } 530 531 /** 532 * @return Returns the invoiceLoadSummary. 533 */ 534 public ElectronicInvoiceLoadSummary getInvoiceLoadSummary() { 535 return invoiceLoadSummary; 536 } 537 538 /** 539 * @param invoiceLoadSummary The invoiceLoadSummary to set. 540 */ 541 public void setInvoiceLoadSummary(ElectronicInvoiceLoadSummary electronicInvoiceLoadSummary) { 542 this.invoiceLoadSummary = electronicInvoiceLoadSummary; 543 this.invoiceLoadSummaryIdentifier = electronicInvoiceLoadSummary.getInvoiceLoadSummaryIdentifier(); 544 } 545 546 /** 547 * @return Returns the invoiceBillToAddressCityName. 548 */ 549 public String getInvoiceBillToAddressCityName() { 550 return invoiceBillToAddressCityName; 551 } 552 553 /** 554 * @param invoiceBillToAddressCityName The invoiceBillToAddressCityName to set. 555 */ 556 public void setInvoiceBillToAddressCityName(String billToAddressCityName) { 557 this.invoiceBillToAddressCityName = billToAddressCityName; 558 } 559 560 /** 561 * @return Returns the invoiceBillToAddressCountryCode. 562 */ 563 public String getInvoiceBillToAddressCountryCode() { 564 return invoiceBillToAddressCountryCode; 565 } 566 567 /** 568 * @param invoiceBillToAddressCountryCode The invoiceBillToAddressCountryCode to set. 569 */ 570 public void setInvoiceBillToAddressCountryCode(String billToAddressCountryCode) { 571 this.invoiceBillToAddressCountryCode = billToAddressCountryCode; 572 } 573 574 /** 575 * @return Returns the invoiceBillToAddressCountryName. 576 */ 577 public String getInvoiceBillToAddressCountryName() { 578 return invoiceBillToAddressCountryName; 579 } 580 581 /** 582 * @param invoiceBillToAddressCountryName The invoiceBillToAddressCountryName to set. 583 */ 584 public void setInvoiceBillToAddressCountryName(String billToAddressCountryName) { 585 this.invoiceBillToAddressCountryName = billToAddressCountryName; 586 } 587 588 /** 589 * @return Returns the invoiceBillToAddressLine1. 590 */ 591 public String getInvoiceBillToAddressLine1() { 592 return invoiceBillToAddressLine1; 593 } 594 595 /** 596 * @param invoiceBillToAddressLine1 The invoiceBillToAddressLine1 to set. 597 */ 598 public void setInvoiceBillToAddressLine1(String billToAddressLine1) { 599 this.invoiceBillToAddressLine1 = billToAddressLine1; 600 } 601 602 /** 603 * @return Returns the invoiceBillToAddressLine2. 604 */ 605 public String getInvoiceBillToAddressLine2() { 606 return invoiceBillToAddressLine2; 607 } 608 609 /** 610 * @param invoiceBillToAddressLine2 The invoiceBillToAddressLine2 to set. 611 */ 612 public void setInvoiceBillToAddressLine2(String billToAddressLine2) { 613 this.invoiceBillToAddressLine2 = billToAddressLine2; 614 } 615 616 /** 617 * @return Returns the invoiceBillToAddressLine3. 618 */ 619 public String getInvoiceBillToAddressLine3() { 620 return invoiceBillToAddressLine3; 621 } 622 623 /** 624 * @param invoiceBillToAddressLine3 The invoiceBillToAddressLine3 to set. 625 */ 626 public void setInvoiceBillToAddressLine3(String billToAddressLine3) { 627 this.invoiceBillToAddressLine3 = billToAddressLine3; 628 } 629 630 /** 631 * @return Returns the invoiceBillToAddressName. 632 */ 633 public String getInvoiceBillToAddressName() { 634 return invoiceBillToAddressName; 635 } 636 637 /** 638 * @param invoiceBillToAddressName The invoiceBillToAddressName to set. 639 */ 640 public void setInvoiceBillToAddressName(String billToAddressName) { 641 this.invoiceBillToAddressName = billToAddressName; 642 } 643 644 /** 645 * @return Returns the invoiceBillToAddressPostalCode. 646 */ 647 public String getInvoiceBillToAddressPostalCode() { 648 return invoiceBillToAddressPostalCode; 649 } 650 651 /** 652 * @param invoiceBillToAddressPostalCode The invoiceBillToAddressPostalCode to set. 653 */ 654 public void setInvoiceBillToAddressPostalCode(String billToAddressPostalCode) { 655 this.invoiceBillToAddressPostalCode = billToAddressPostalCode; 656 } 657 658 /** 659 * @return Returns the invoiceBillToAddressStateCode. 660 */ 661 public String getInvoiceBillToAddressStateCode() { 662 return invoiceBillToAddressStateCode; 663 } 664 665 /** 666 * @param invoiceBillToAddressStateCode The invoiceBillToAddressStateCode to set. 667 */ 668 public void setInvoiceBillToAddressStateCode(String billToAddressStateCode) { 669 this.invoiceBillToAddressStateCode = billToAddressStateCode; 670 } 671 672 /** 673 * @return Returns the invoiceBillToAddressType. 674 */ 675 public String getInvoiceBillToAddressType() { 676 return invoiceBillToAddressType; 677 } 678 679 /** 680 * @param invoiceBillToAddressType The invoiceBillToAddressType to set. 681 */ 682 public void setInvoiceBillToAddressType(String billToAddressType) { 683 this.invoiceBillToAddressType = billToAddressType; 684 } 685 686 /** 687 * @return Returns the invoiceFileDeploymentModeValue. 688 */ 689 public String getInvoiceFileDeploymentModeValue() { 690 return invoiceFileDeploymentModeValue; 691 } 692 693 /** 694 * @param invoiceFileDeploymentModeValue The invoiceFileDeploymentModeValue to set. 695 */ 696 public void setInvoiceFileDeploymentModeValue(String deploymentMode) { 697 this.invoiceFileDeploymentModeValue = deploymentMode; 698 } 699 700 /** 701 * @return Returns the invoiceRejectItems. 702 */ 703 public List<ElectronicInvoiceRejectItem> getInvoiceRejectItems() { 704 return invoiceRejectItems; 705 } 706 707 /** 708 * @param invoiceRejectItems The invoiceRejectItems to set. 709 */ 710 public void setInvoiceRejectItems(List<ElectronicInvoiceRejectItem> electronicInvoiceRejectItems) { 711 this.invoiceRejectItems = electronicInvoiceRejectItems; 712 } 713 714 public ElectronicInvoiceRejectItem getInvoiceRejectItem(int index) { 715 while (getInvoiceRejectItems().size() <= index) { 716 getInvoiceRejectItems().add(new ElectronicInvoiceRejectItem()); 717 } 718 return (ElectronicInvoiceRejectItem) getInvoiceRejectItems().get(index); 719 } 720 721 /** 722 * @return Returns the invoiceRejectReasons. 723 */ 724 public List<ElectronicInvoiceRejectReason> getInvoiceRejectReasons() { 725 return invoiceRejectReasons; 726 } 727 728 /** 729 * @param invoiceRejectReasons The invoiceRejectReasons to set. 730 */ 731 public void setInvoiceRejectReasons(List<ElectronicInvoiceRejectReason> electronicInvoiceRejectReasons) { 732 this.invoiceRejectReasons = electronicInvoiceRejectReasons; 733 } 734 735 public ElectronicInvoiceRejectReason getInvoiceRejectReason(int index) { 736 while (getInvoiceRejectReasons().size() <= index) { 737 getInvoiceRejectReasons().add(new ElectronicInvoiceRejectReason()); 738 } 739 return (ElectronicInvoiceRejectReason) getInvoiceRejectReasons().get(index); 740 } 741 742 /** 743 * Gets the paymentRequestIdentifier attribute. 744 * @return Returns the paymentRequestIdentifier. 745 */ 746 public Integer getPaymentRequestIdentifier() { 747 return paymentRequestIdentifier; 748 } 749 750 /** 751 * Sets the paymentRequestIdentifier attribute value. 752 * @param paymentRequestIdentifier The paymentRequestIdentifier to set. 753 */ 754 public void setPaymentRequestIdentifier(Integer paymentRequestIdentifier) { 755 this.paymentRequestIdentifier = paymentRequestIdentifier; 756 } 757 758 /** 759 * @return Returns the purchaseOrderDeliveryCampusCode. 760 */ 761 public String getPurchaseOrderDeliveryCampusCode() { 762 return purchaseOrderDeliveryCampusCode; 763 } 764 765 /** 766 * @param purchaseOrderDeliveryCampusCode The purchaseOrderDeliveryCampusCode to set. 767 */ 768 public void setPurchaseOrderDeliveryCampusCode(String poDeliveryCampusCode) { 769 this.purchaseOrderDeliveryCampusCode = poDeliveryCampusCode; 770 } 771 772 /** 773 * @return Returns the purchaseOrderIdentifier. 774 */ 775 public Integer getPurchaseOrderIdentifier() { 776 return purchaseOrderIdentifier; 777 } 778 779 /** 780 * @param purchaseOrderIdentifier The purchaseOrderIdentifier to set. 781 */ 782 public void setPurchaseOrderIdentifier(Integer purchaseOrderId) { 783 this.purchaseOrderIdentifier = purchaseOrderId; 784 } 785 786 /** 787 * @return Returns the invoiceFileDiscountInLineIndicator. 788 */ 789 public Boolean getInvoiceFileDiscountInLineIndicator() { 790 return invoiceFileDiscountInLineIndicator; 791 } 792 793 public Boolean isInvoiceFileDiscountInLineIndicator() { 794 return invoiceFileDiscountInLineIndicator; 795 } 796 797 /** 798 * @param invoiceFileDiscountInLineIndicator The invoiceFileDiscountInLineIndicator to set. 799 */ 800 public void setInvoiceFileDiscountInLineIndicator(Boolean fileDiscountInLineIndicator) { 801 this.invoiceFileDiscountInLineIndicator = fileDiscountInLineIndicator; 802 } 803 804 /** 805 * @return Returns the invoiceFileHeaderTypeIndicator. 806 */ 807 public Boolean getInvoiceFileHeaderTypeIndicator() { 808 return invoiceFileHeaderTypeIndicator; 809 } 810 811 public Boolean isInvoiceFileHeaderTypeIndicator() { 812 return invoiceFileHeaderTypeIndicator; 813 } 814 815 /** 816 * @param invoiceFileHeaderTypeIndicator The invoiceFileHeaderTypeIndicator to set. 817 */ 818 public void setInvoiceFileHeaderTypeIndicator(Boolean fileHeaderTypeIndicator) { 819 this.invoiceFileHeaderTypeIndicator = fileHeaderTypeIndicator; 820 } 821 822 /** 823 * @return Returns the invoiceFileInformationOnlyIndicator. 824 */ 825 public Boolean getInvoiceFileInformationOnlyIndicator() { 826 return invoiceFileInformationOnlyIndicator; 827 } 828 829 public Boolean isInvoiceFileInformationOnlyIndicator() { 830 return invoiceFileInformationOnlyIndicator; 831 } 832 833 /** 834 * @param invoiceFileInformationOnlyIndicator The invoiceFileInformationOnlyIndicator to set. 835 */ 836 public void setInvoiceFileInformationOnlyIndicator(Boolean fileInformationOnlyIndicator) { 837 this.invoiceFileInformationOnlyIndicator = fileInformationOnlyIndicator; 838 } 839 840 /** 841 * @return Returns the invoiceFileOperationIdentifier. 842 */ 843 public String getInvoiceFileOperationIdentifier() { 844 return invoiceFileOperationIdentifier; 845 } 846 847 /** 848 * @param invoiceFileOperationIdentifier The invoiceFileOperationIdentifier to set. 849 */ 850 public void setInvoiceFileOperationIdentifier(String fileOperationId) { 851 this.invoiceFileOperationIdentifier = fileOperationId; 852 } 853 854 /** 855 * @return Returns the invoiceFilePurposeIdentifier. 856 */ 857 public String getInvoiceFilePurposeIdentifier() { 858 return invoiceFilePurposeIdentifier; 859 } 860 861 /** 862 * @param invoiceFilePurposeIdentifier The invoiceFilePurposeIdentifier to set. 863 */ 864 public void setInvoiceFilePurposeIdentifier(String filePurposeId) { 865 this.invoiceFilePurposeIdentifier = filePurposeId; 866 } 867 868 /** 869 * @return Returns the invoiceFileShippingInLineIndicator. 870 */ 871 public Boolean getInvoiceFileShippingInLineIndicator() { 872 return invoiceFileShippingInLineIndicator; 873 } 874 875 public Boolean isInvoiceFileShippingInLineIndicator() { 876 return invoiceFileShippingInLineIndicator; 877 } 878 879 /** 880 * @param invoiceFileShippingInLineIndicator The invoiceFileShippingInLineIndicator to set. 881 */ 882 public void setInvoiceFileShippingInLineIndicator(Boolean fileShippingInLineIndicator) { 883 this.invoiceFileShippingInLineIndicator = fileShippingInLineIndicator; 884 } 885 886 /** 887 * @return Returns the invoiceFileSpecialHandlingInLineIndicator. 888 */ 889 public Boolean getInvoiceFileSpecialHandlingInLineIndicator() { 890 return invoiceFileSpecialHandlingInLineIndicator; 891 } 892 893 public Boolean isInvoiceFileSpecialHandlingInLineIndicator() { 894 return invoiceFileSpecialHandlingInLineIndicator; 895 } 896 897 /** 898 * @param invoiceFileSpecialHandlingInLineIndicator The invoiceFileSpecialHandlingInLineIndicator to set. 899 */ 900 public void setInvoiceFileSpecialHandlingInLineIndicator(Boolean fileSpecHandlingInLineIndicator) { 901 this.invoiceFileSpecialHandlingInLineIndicator = fileSpecHandlingInLineIndicator; 902 } 903 904 /** 905 * @return Returns the invoiceFileTaxInLineIndicator. 906 */ 907 public Boolean getInvoiceFileTaxInLineIndicator() { 908 return invoiceFileTaxInLineIndicator; 909 } 910 911 public Boolean isInvoiceFileTaxInLineIndicator() { 912 return invoiceFileTaxInLineIndicator; 913 } 914 915 /** 916 * @param invoiceFileTaxInLineIndicator The invoiceFileTaxInLineIndicator to set. 917 */ 918 public void setInvoiceFileTaxInLineIndicator(Boolean fileTaxInLineIndicator) { 919 this.invoiceFileTaxInLineIndicator = fileTaxInLineIndicator; 920 } 921 922 /** 923 * @return Returns the purapDocumentIdentifier. 924 */ 925 public Integer getPurapDocumentIdentifier() { 926 return purapDocumentIdentifier; 927 } 928 929 /** 930 * @param purapDocumentIdentifier The purapDocumentIdentifier to set. 931 */ 932 public void setPurapDocumentIdentifier(Integer id) { 933 this.purapDocumentIdentifier = id; 934 } 935 936 public Integer getAccountsPayablePurchasingDocumentLinkIdentifier() { 937 return accountsPayablePurchasingDocumentLinkIdentifier; 938 } 939 940 public void setAccountsPayablePurchasingDocumentLinkIdentifier(Integer accountsPayablePurchasingDocumentLinkIdentifier) { 941 this.accountsPayablePurchasingDocumentLinkIdentifier = accountsPayablePurchasingDocumentLinkIdentifier; 942 } 943 944 /** 945 * @return Returns the invoiceCustomerNumber. 946 */ 947 public String getInvoiceCustomerNumber() { 948 return invoiceCustomerNumber; 949 } 950 951 /** 952 * @param invoiceCustomerNumber The invoiceCustomerNumber to set. 953 */ 954 public void setInvoiceCustomerNumber(String invoiceCustomerNumber) { 955 this.invoiceCustomerNumber = invoiceCustomerNumber; 956 } 957 958 /** 959 * @return Returns the invoiceFileDate. 960 */ 961 public String getInvoiceFileDate() { 962 return invoiceFileDate; 963 } 964 965 /** 966 * @param invoiceFileDate The invoiceFileDate to set. 967 */ 968 public void setInvoiceFileDate(String invoiceDate) { 969 this.invoiceFileDate = invoiceDate; 970 } 971 972 /** 973 * @return Returns the invoiceItemDiscountAmount. 974 */ 975 public BigDecimal getInvoiceItemDiscountAmount() { 976 if (this.isInvoiceFileDiscountInLineIndicator()) { 977 BigDecimal returnValue = zero; 978 try { 979 for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) { 980 BigDecimal toAddAmount = eiri.getInvoiceItemDiscountAmount(); 981 LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'"); 982 returnValue = returnValue.add(toAddAmount); 983 } 984 LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue()); 985 return returnValue; 986 } 987 catch (NumberFormatException n) { 988 // do nothing this is already rejected 989 LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName); 990 return zero; 991 } 992 } 993 else { 994 return invoiceItemDiscountAmount; 995 } 996 } 997 998 /** 999 * @param invoiceItemDiscountAmount The invoiceItemDiscountAmount to set. 1000 */ 1001 public void setInvoiceItemDiscountAmount(BigDecimal invoiceDiscountAmount) { 1002 this.invoiceItemDiscountAmount = invoiceDiscountAmount; 1003 } 1004 1005 /** 1006 * @return Returns the invoiceItemDiscountCurrencyCode. 1007 */ 1008 public String getInvoiceItemDiscountCurrencyCode() { 1009 return invoiceItemDiscountCurrencyCode; 1010 } 1011 1012 /** 1013 * @param invoiceItemDiscountCurrencyCode The invoiceItemDiscountCurrencyCode to set. 1014 */ 1015 public void setInvoiceItemDiscountCurrencyCode(String invoiceDiscountAmountCurrency) { 1016 this.invoiceItemDiscountCurrencyCode = invoiceDiscountAmountCurrency; 1017 } 1018 1019 /** 1020 * @return Returns the invoiceFileName. 1021 */ 1022 public String getInvoiceFileName() { 1023 return invoiceFileName; 1024 } 1025 1026 /** 1027 * @param invoiceFileName The invoiceFileName to set. 1028 */ 1029 public void setInvoiceFileName(String invoiceFileName) { 1030 this.invoiceFileName = invoiceFileName; 1031 } 1032 1033 /** 1034 * @return Returns the invoiceItemGrossAmount. 1035 */ 1036 public BigDecimal getInvoiceItemGrossAmount() { 1037 return invoiceItemGrossAmount; 1038 } 1039 1040 /** 1041 * @param invoiceItemGrossAmount The invoiceItemGrossAmount to set. 1042 */ 1043 public void setInvoiceItemGrossAmount(BigDecimal invoiceGrossAmount) { 1044 this.invoiceItemGrossAmount = invoiceGrossAmount; 1045 } 1046 1047 /** 1048 * @return Returns the invoiceItemGrossCurrencyCode. 1049 */ 1050 public String getInvoiceItemGrossCurrencyCode() { 1051 return invoiceItemGrossCurrencyCode; 1052 } 1053 1054 /** 1055 * @param invoiceItemGrossCurrencyCode The invoiceItemGrossCurrencyCode to set. 1056 */ 1057 public void setInvoiceItemGrossCurrencyCode(String invoiceGrossAmountCurrency) { 1058 this.invoiceItemGrossCurrencyCode = invoiceGrossAmountCurrency; 1059 } 1060 1061 /** 1062 * @return Returns the invoiceItemNetAmount. 1063 */ 1064 public BigDecimal getInvoiceItemNetAmount() { 1065 return invoiceItemNetAmount; 1066 } 1067 1068 /** 1069 * @param invoiceItemNetAmount The invoiceItemNetAmount to set. 1070 */ 1071 public void setInvoiceItemNetAmount(BigDecimal invoiceNetAmount) { 1072 this.invoiceItemNetAmount = invoiceNetAmount; 1073 } 1074 1075 public boolean isInvoiceNumberAcceptIndicator() { 1076 return invoiceNumberAcceptIndicator; 1077 } 1078 1079 public void setInvoiceNumberAcceptIndicator(boolean invoiceNumberAcceptIndicator) { 1080 this.invoiceNumberAcceptIndicator = invoiceNumberAcceptIndicator; 1081 } 1082 1083 public boolean isInvoiceResearchIndicator() { 1084 return invoiceResearchIndicator; 1085 } 1086 1087 public boolean getInvoiceResearchIndicator() { 1088 return invoiceResearchIndicator; 1089 } 1090 1091 public void setInvoiceResearchIndicator(boolean invoiceResearchIndicator) { 1092 this.invoiceResearchIndicator = invoiceResearchIndicator; 1093 } 1094 1095 public Timestamp getAccountsPayableApprovalTimestamp() { 1096 return accountsPayableApprovalTimestamp; 1097 } 1098 1099 public void setAccountsPayableApprovalTimestamp(Timestamp accountsPayableApprovalTimestamp) { 1100 this.accountsPayableApprovalTimestamp = accountsPayableApprovalTimestamp; 1101 } 1102 1103 /** 1104 * @return Returns the invoiceItemNetCurrencyCode. 1105 */ 1106 public String getInvoiceItemNetCurrencyCode() { 1107 return invoiceItemNetCurrencyCode; 1108 } 1109 1110 /** 1111 * @param invoiceItemNetCurrencyCode The invoiceItemNetCurrencyCode to set. 1112 */ 1113 public void setInvoiceItemNetCurrencyCode(String invoiceNetAmountCurrency) { 1114 this.invoiceItemNetCurrencyCode = invoiceNetAmountCurrency; 1115 } 1116 1117 /** 1118 * @return Returns the invoiceFileNumber. 1119 */ 1120 public String getInvoiceFileNumber() { 1121 return invoiceFileNumber; 1122 } 1123 1124 /** 1125 * @param invoiceFileNumber The invoiceFileNumber to set. 1126 */ 1127 public void setInvoiceFileNumber(String invoiceNumber) { 1128 this.invoiceFileNumber = invoiceNumber; 1129 } 1130 1131 /** 1132 * @return Returns the invoiceOrderPurchaseOrderDate. 1133 */ 1134 public String getInvoiceOrderPurchaseOrderDate() { 1135 return invoiceOrderPurchaseOrderDate; 1136 } 1137 1138 /** 1139 * @param invoiceOrderPurchaseOrderDate The invoiceOrderPurchaseOrderDate to set. 1140 */ 1141 public void setInvoiceOrderPurchaseOrderDate(String invoiceOrderDate) { 1142 this.invoiceOrderPurchaseOrderDate = invoiceOrderDate; 1143 } 1144 1145 /** 1146 * @return Returns the invoiceOrderPurchaseOrderIdentifier. 1147 */ 1148 public String getInvoiceOrderPurchaseOrderIdentifier() { 1149 return invoiceOrderPurchaseOrderIdentifier; 1150 } 1151 1152 /** 1153 * @param invoiceOrderPurchaseOrderIdentifier The invoiceOrderPurchaseOrderIdentifier to set. 1154 */ 1155 public void setInvoiceOrderPurchaseOrderIdentifier(String invoiceOrderId) { 1156 this.invoiceOrderPurchaseOrderIdentifier = invoiceOrderId; 1157 } 1158 1159 /** 1160 * @return Returns the invoiceProcessTimestamp. 1161 */ 1162 public Timestamp getInvoiceProcessTimestamp() { 1163 return invoiceProcessTimestamp; 1164 } 1165 1166 /** 1167 * @param invoiceProcessTimestamp The invoiceProcessTimestamp to set. 1168 */ 1169 public void setInvoiceProcessTimestamp(Timestamp invoiceProcessTimestamp) { 1170 this.invoiceProcessTimestamp = invoiceProcessTimestamp; 1171 } 1172 1173 /** 1174 * @return Returns the invoicePurchaseOrderNumber. 1175 */ 1176 public String getInvoicePurchaseOrderNumber() { 1177 return invoicePurchaseOrderNumber; 1178 } 1179 1180 /** 1181 * @param invoicePurchaseOrderNumber The invoicePurchaseOrderNumber to set. 1182 */ 1183 public void setInvoicePurchaseOrderNumber(String invoicePurchaseOrderId) { 1184 this.invoicePurchaseOrderNumber = invoicePurchaseOrderId; 1185 } 1186 1187 /** 1188 * @return Returns the invoiceShipDate. 1189 */ 1190 public String getInvoiceShipDate() { 1191 return invoiceShipDate; 1192 } 1193 1194 /** 1195 * @param invoiceShipDate The invoiceShipDate to set. 1196 */ 1197 public void setInvoiceShipDate(String invoiceShipDate) { 1198 this.invoiceShipDate = invoiceShipDate; 1199 } 1200 1201 /** 1202 * @return Returns the invoiceItemShippingAmount. 1203 */ 1204 public BigDecimal getInvoiceItemShippingAmount() { 1205 if (this.isInvoiceFileShippingInLineIndicator()) { 1206 BigDecimal returnValue = zero; 1207 try { 1208 for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) { 1209 BigDecimal toAddAmount = eiri.getInvoiceItemShippingAmount(); 1210 LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'"); 1211 returnValue = returnValue.add(toAddAmount); 1212 } 1213 LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue()); 1214 return returnValue; 1215 } 1216 catch (NumberFormatException n) { 1217 // do nothing this is already rejected 1218 LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName); 1219 return zero; 1220 } 1221 } 1222 else { 1223 return invoiceItemShippingAmount; 1224 } 1225 } 1226 1227 /** 1228 * @param invoiceItemShippingAmount The invoiceItemShippingAmount to set. 1229 */ 1230 public void setInvoiceItemShippingAmount(BigDecimal invoiceShippingAmount) { 1231 this.invoiceItemShippingAmount = invoiceShippingAmount; 1232 } 1233 1234 /** 1235 * @return Returns the invoiceItemShippingCurrencyCode. 1236 */ 1237 public String getInvoiceItemShippingCurrencyCode() { 1238 return invoiceItemShippingCurrencyCode; 1239 } 1240 1241 /** 1242 * @param invoiceItemShippingCurrencyCode The invoiceItemShippingCurrencyCode to set. 1243 */ 1244 public void setInvoiceItemShippingCurrencyCode(String invoiceShippingAmountCurrency) { 1245 this.invoiceItemShippingCurrencyCode = invoiceShippingAmountCurrency; 1246 } 1247 1248 /** 1249 * @return Returns the invoiceItemShippingDescription. 1250 */ 1251 public String getInvoiceItemShippingDescription() { 1252 return invoiceItemShippingDescription; 1253 } 1254 1255 /** 1256 * @param invoiceItemShippingDescription The invoiceItemShippingDescription to set. 1257 */ 1258 public void setInvoiceItemShippingDescription(String invoiceShippingDescription) { 1259 this.invoiceItemShippingDescription = invoiceShippingDescription; 1260 } 1261 1262 /** 1263 * @return Returns the invoiceItemSpecialHandlingAmount. 1264 */ 1265 public BigDecimal getInvoiceItemSpecialHandlingAmount() { 1266 if (this.isInvoiceFileSpecialHandlingInLineIndicator()) { 1267 BigDecimal returnValue = zero; 1268 try { 1269 for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) { 1270 BigDecimal toAddAmount = eiri.getInvoiceItemSpecialHandlingAmount(); 1271 LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'"); 1272 returnValue = returnValue.add(toAddAmount); 1273 } 1274 LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue()); 1275 return returnValue; 1276 } 1277 catch (NumberFormatException n) { 1278 // do nothing this is already rejected 1279 LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName); 1280 return zero; 1281 } 1282 } 1283 else { 1284 return invoiceItemSpecialHandlingAmount; 1285 } 1286 } 1287 1288 /** 1289 * @param invoiceItemSpecialHandlingAmount The invoiceItemSpecialHandlingAmount to set. 1290 */ 1291 public void setInvoiceItemSpecialHandlingAmount(BigDecimal invoiceSpecialHandlingAmount) { 1292 this.invoiceItemSpecialHandlingAmount = invoiceSpecialHandlingAmount; 1293 } 1294 1295 /** 1296 * @return Returns the invoiceItemSpecialHandlingCurrencyCode. 1297 */ 1298 public String getInvoiceItemSpecialHandlingCurrencyCode() { 1299 return invoiceItemSpecialHandlingCurrencyCode; 1300 } 1301 1302 /** 1303 * @param invoiceItemSpecialHandlingCurrencyCode The invoiceItemSpecialHandlingCurrencyCode to set. 1304 */ 1305 public void setInvoiceItemSpecialHandlingCurrencyCode(String invoiceSpecialHandlingAmountCurrency) { 1306 this.invoiceItemSpecialHandlingCurrencyCode = invoiceSpecialHandlingAmountCurrency; 1307 } 1308 1309 /** 1310 * @return the invoiceItemSpecialHandlingDescription 1311 */ 1312 public String getInvoiceItemSpecialHandlingDescription() { 1313 return invoiceItemSpecialHandlingDescription; 1314 } 1315 1316 /** 1317 * @param invoiceItemSpecialHandlingDescription the invoiceItemSpecialHandlingDescription to set 1318 */ 1319 public void setInvoiceItemSpecialHandlingDescription(String invoiceSpecialHandlingDescription) { 1320 this.invoiceItemSpecialHandlingDescription = invoiceSpecialHandlingDescription; 1321 } 1322 1323 /** 1324 * @return Returns the invoiceItemSubTotalAmount. 1325 */ 1326 public BigDecimal getInvoiceItemSubTotalAmount() { 1327 1328 return invoiceItemSubTotalAmount; 1329 } 1330 1331 /** 1332 * @param invoiceItemSubTotalAmount The invoiceItemSubTotalAmount to set. 1333 */ 1334 public void setInvoiceItemSubTotalAmount(BigDecimal invoiceSubTotalAmount) { 1335 this.invoiceItemSubTotalAmount = invoiceSubTotalAmount; 1336 } 1337 1338 /** 1339 * @return Returns the invoiceItemSubTotalCurrencyCode. 1340 */ 1341 public String getInvoiceItemSubTotalCurrencyCode() { 1342 return invoiceItemSubTotalCurrencyCode; 1343 } 1344 1345 /** 1346 * @param invoiceItemSubTotalCurrencyCode The invoiceItemSubTotalCurrencyCode to set. 1347 */ 1348 public void setInvoiceItemSubTotalCurrencyCode(String invoiceSubTotalAmountCurrency) { 1349 this.invoiceItemSubTotalCurrencyCode = invoiceSubTotalAmountCurrency; 1350 } 1351 1352 /** 1353 * @return Returns the invoiceItemTaxAmount. 1354 */ 1355 public BigDecimal getInvoiceItemTaxAmount() { 1356 BigDecimal returnValue = zero; 1357 boolean enableSalesTaxInd = SpringContext.getBean(ParameterService.class).getIndicatorParameter(KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapParameterConstants.ENABLE_SALES_TAX_IND); 1358 1359 try { 1360 //if sales tax enabled, calculate total by totaling items 1361 if(enableSalesTaxInd){ 1362 for (ElectronicInvoiceRejectItem eiri : this.invoiceRejectItems) { 1363 BigDecimal toAddAmount = eiri.getInvoiceItemTaxAmount(); 1364 LOG.debug("getTotalAmount() setting returnValue with arithmatic => '" + returnValue.doubleValue() + "' + '" + toAddAmount.doubleValue() + "'"); 1365 returnValue = returnValue.add(toAddAmount); 1366 } 1367 }else{ //else take the total, which should be the summary tax total 1368 returnValue = returnValue.add(this.invoiceItemTaxAmount); 1369 } 1370 1371 LOG.debug("getTotalAmount() returning amount " + returnValue.doubleValue()); 1372 return returnValue; 1373 } 1374 catch (NumberFormatException n) { 1375 // do nothing this is already rejected 1376 LOG.error("getTotalAmount() Error attempting to calculate total amount for invoice with filename " + this.invoiceFileName); 1377 return zero; 1378 } 1379 // return invoiceItemTaxAmount; 1380 } 1381 1382 /** 1383 * @param invoiceItemTaxAmount The invoiceItemTaxAmount to set. 1384 */ 1385 public void setInvoiceItemTaxAmount(BigDecimal invoiceTaxAmount) { 1386 this.invoiceItemTaxAmount = invoiceTaxAmount; 1387 } 1388 1389 /** 1390 * @return Returns the invoiceItemTaxCurrencyCode. 1391 */ 1392 public String getInvoiceItemTaxCurrencyCode() { 1393 return invoiceItemTaxCurrencyCode; 1394 } 1395 1396 /** 1397 * @param invoiceItemTaxCurrencyCode The invoiceItemTaxCurrencyCode to set. 1398 */ 1399 public void setInvoiceItemTaxCurrencyCode(String invoiceTaxAmountCurrency) { 1400 this.invoiceItemTaxCurrencyCode = invoiceTaxAmountCurrency; 1401 } 1402 1403 /** 1404 * @return Returns the invoiceItemTaxDescription. 1405 */ 1406 public String getInvoiceItemTaxDescription() { 1407 return invoiceItemTaxDescription; 1408 } 1409 1410 /** 1411 * @param invoiceItemTaxDescription The invoiceItemTaxDescription to set. 1412 */ 1413 public void setInvoiceItemTaxDescription(String invoiceTaxDescription) { 1414 this.invoiceItemTaxDescription = invoiceTaxDescription; 1415 } 1416 1417 /** 1418 * @return Returns the invoiceOrderMasterAgreementInformationDate. 1419 */ 1420 public String getInvoiceOrderMasterAgreementInformationDate() { 1421 return invoiceOrderMasterAgreementInformationDate; 1422 } 1423 1424 /** 1425 * @param invoiceOrderMasterAgreementInformationDate The invoiceOrderMasterAgreementInformationDate to set. 1426 */ 1427 public void setInvoiceOrderMasterAgreementInformationDate(String masterAgreementInfoDate) { 1428 this.invoiceOrderMasterAgreementInformationDate = masterAgreementInfoDate; 1429 } 1430 1431 /** 1432 * @return Returns the invoiceOrderMasterAgreementInformationIdentifier. 1433 */ 1434 public String getInvoiceOrderMasterAgreementInformationIdentifier() { 1435 return invoiceOrderMasterAgreementInformationIdentifier; 1436 } 1437 1438 /** 1439 * @param invoiceOrderMasterAgreementInformationIdentifier The invoiceOrderMasterAgreementInformationIdentifier to set. 1440 */ 1441 public void setInvoiceOrderMasterAgreementInformationIdentifier(String masterAgreementInfoId) { 1442 this.invoiceOrderMasterAgreementInformationIdentifier = masterAgreementInfoId; 1443 } 1444 1445 /** 1446 * @return Returns the invoiceOrderMasterAgreementReferenceDate. 1447 */ 1448 public String getInvoiceOrderMasterAgreementReferenceDate() { 1449 return invoiceOrderMasterAgreementReferenceDate; 1450 } 1451 1452 /** 1453 * @param invoiceOrderMasterAgreementReferenceDate The invoiceOrderMasterAgreementReferenceDate to set. 1454 */ 1455 public void setInvoiceOrderMasterAgreementReferenceDate(String masterAgreementReferenceDate) { 1456 this.invoiceOrderMasterAgreementReferenceDate = masterAgreementReferenceDate; 1457 } 1458 1459 /** 1460 * @return Returns the invoiceOrderMasterAgreementReferenceIdentifier. 1461 */ 1462 public String getInvoiceOrderMasterAgreementReferenceIdentifier() { 1463 return invoiceOrderMasterAgreementReferenceIdentifier; 1464 } 1465 1466 /** 1467 * @param invoiceOrderMasterAgreementReferenceIdentifier The invoiceOrderMasterAgreementReferenceIdentifier to set. 1468 */ 1469 public void setInvoiceOrderMasterAgreementReferenceIdentifier(String masterAgreementReferenceId) { 1470 this.invoiceOrderMasterAgreementReferenceIdentifier = masterAgreementReferenceId; 1471 } 1472 1473 /** 1474 * @return Returns the invoiceOrderReferenceDocumentReferencePayloadIdentifier. 1475 */ 1476 public String getInvoiceOrderReferenceDocumentReferencePayloadIdentifier() { 1477 return invoiceOrderReferenceDocumentReferencePayloadIdentifier; 1478 } 1479 1480 /** 1481 * @param invoiceOrderReferenceDocumentReferencePayloadIdentifier The invoiceOrderReferenceDocumentReferencePayloadIdentifier to 1482 * set. 1483 */ 1484 public void setInvoiceOrderReferenceDocumentReferencePayloadIdentifier(String referenceDocumentRefPayloadId) { 1485 this.invoiceOrderReferenceDocumentReferencePayloadIdentifier = referenceDocumentRefPayloadId; 1486 } 1487 1488 /** 1489 * @return Returns the invoiceOrderReferenceDocumentReferenceText. 1490 */ 1491 public String getInvoiceOrderReferenceDocumentReferenceText() { 1492 return invoiceOrderReferenceDocumentReferenceText; 1493 } 1494 1495 /** 1496 * @param invoiceOrderReferenceDocumentReferenceText The invoiceOrderReferenceDocumentReferenceText to set. 1497 */ 1498 public void setInvoiceOrderReferenceDocumentReferenceText(String referenceDocumentRefText) { 1499 this.invoiceOrderReferenceDocumentReferenceText = referenceDocumentRefText; 1500 } 1501 1502 /** 1503 * @return Returns the invoiceOrderReferenceOrderIdentifier. 1504 */ 1505 public String getInvoiceOrderReferenceOrderIdentifier() { 1506 return invoiceOrderReferenceOrderIdentifier; 1507 } 1508 1509 /** 1510 * @param invoiceOrderReferenceOrderIdentifier The invoiceOrderReferenceOrderIdentifier to set. 1511 */ 1512 public void setInvoiceOrderReferenceOrderIdentifier(String referenceOrderId) { 1513 this.invoiceOrderReferenceOrderIdentifier = referenceOrderId; 1514 } 1515 1516 /** 1517 * @return Returns the invoiceRemitToAddressCityName. 1518 */ 1519 public String getInvoiceRemitToAddressCityName() { 1520 return invoiceRemitToAddressCityName; 1521 } 1522 1523 /** 1524 * @param invoiceRemitToAddressCityName The invoiceRemitToAddressCityName to set. 1525 */ 1526 public void setInvoiceRemitToAddressCityName(String remitToAddressCityName) { 1527 this.invoiceRemitToAddressCityName = remitToAddressCityName; 1528 } 1529 1530 /** 1531 * @return Returns the invoiceRemitToAddressCountryCode. 1532 */ 1533 public String getInvoiceRemitToAddressCountryCode() { 1534 return invoiceRemitToAddressCountryCode; 1535 } 1536 1537 /** 1538 * @param invoiceRemitToAddressCountryCode The invoiceRemitToAddressCountryCode to set. 1539 */ 1540 public void setInvoiceRemitToAddressCountryCode(String remitToAddressCountryCode) { 1541 this.invoiceRemitToAddressCountryCode = remitToAddressCountryCode; 1542 } 1543 1544 /** 1545 * @return Returns the invoiceRemitToAddressCountryName. 1546 */ 1547 public String getInvoiceRemitToAddressCountryName() { 1548 return invoiceRemitToAddressCountryName; 1549 } 1550 1551 /** 1552 * @param invoiceRemitToAddressCountryName The invoiceRemitToAddressCountryName to set. 1553 */ 1554 public void setInvoiceRemitToAddressCountryName(String remitToAddressCountryName) { 1555 this.invoiceRemitToAddressCountryName = remitToAddressCountryName; 1556 } 1557 1558 /** 1559 * @return Returns the invoiceRemitToAddressLine1. 1560 */ 1561 public String getInvoiceRemitToAddressLine1() { 1562 return invoiceRemitToAddressLine1; 1563 } 1564 1565 /** 1566 * @param invoiceRemitToAddressLine1 The invoiceRemitToAddressLine1 to set. 1567 */ 1568 public void setInvoiceRemitToAddressLine1(String remitToAddressLine1) { 1569 this.invoiceRemitToAddressLine1 = remitToAddressLine1; 1570 } 1571 1572 /** 1573 * @return Returns the invoiceRemitToAddressLine2. 1574 */ 1575 public String getInvoiceRemitToAddressLine2() { 1576 return invoiceRemitToAddressLine2; 1577 } 1578 1579 /** 1580 * @param invoiceRemitToAddressLine2 The invoiceRemitToAddressLine2 to set. 1581 */ 1582 public void setInvoiceRemitToAddressLine2(String remitToAddressLine2) { 1583 this.invoiceRemitToAddressLine2 = remitToAddressLine2; 1584 } 1585 1586 /** 1587 * @return Returns the invoiceRemitToAddressLine3. 1588 */ 1589 public String getInvoiceRemitToAddressLine3() { 1590 return invoiceRemitToAddressLine3; 1591 } 1592 1593 /** 1594 * @param invoiceRemitToAddressLine3 The invoiceRemitToAddressLine3 to set. 1595 */ 1596 public void setInvoiceRemitToAddressLine3(String remitToAddressLine3) { 1597 this.invoiceRemitToAddressLine3 = remitToAddressLine3; 1598 } 1599 1600 /** 1601 * @return Returns the invoiceRemitToAddressName. 1602 */ 1603 public String getInvoiceRemitToAddressName() { 1604 return invoiceRemitToAddressName; 1605 } 1606 1607 /** 1608 * @param invoiceRemitToAddressName The invoiceRemitToAddressName to set. 1609 */ 1610 public void setInvoiceRemitToAddressName(String remitToAddressName) { 1611 this.invoiceRemitToAddressName = remitToAddressName; 1612 } 1613 1614 /** 1615 * @return Returns the invoiceRemitToAddressPostalCode. 1616 */ 1617 public String getInvoiceRemitToAddressPostalCode() { 1618 return invoiceRemitToAddressPostalCode; 1619 } 1620 1621 /** 1622 * @param invoiceRemitToAddressPostalCode The invoiceRemitToAddressPostalCode to set. 1623 */ 1624 public void setInvoiceRemitToAddressPostalCode(String remitToAddressPostalCode) { 1625 this.invoiceRemitToAddressPostalCode = remitToAddressPostalCode; 1626 } 1627 1628 /** 1629 * @return Returns the invoiceRemitToAddressStateCode. 1630 */ 1631 public String getInvoiceRemitToAddressStateCode() { 1632 return invoiceRemitToAddressStateCode; 1633 } 1634 1635 /** 1636 * @param invoiceRemitToAddressStateCode The invoiceRemitToAddressStateCode to set. 1637 */ 1638 public void setInvoiceRemitToAddressStateCode(String remitToAddressStateCode) { 1639 this.invoiceRemitToAddressStateCode = remitToAddressStateCode; 1640 } 1641 1642 /** 1643 * @return Returns the invoiceRemitToAddressType. 1644 */ 1645 public String getInvoiceRemitToAddressType() { 1646 return invoiceRemitToAddressType; 1647 } 1648 1649 /** 1650 * @param invoiceRemitToAddressType The invoiceRemitToAddressType to set. 1651 */ 1652 public void setInvoiceRemitToAddressType(String remitToAddressType) { 1653 this.invoiceRemitToAddressType = remitToAddressType; 1654 } 1655 1656 /** 1657 * @return Returns the invoiceShipToAddressCityName. 1658 */ 1659 public String getInvoiceShipToAddressCityName() { 1660 return invoiceShipToAddressCityName; 1661 } 1662 1663 /** 1664 * @param invoiceShipToAddressCityName The invoiceShipToAddressCityName to set. 1665 */ 1666 public void setInvoiceShipToAddressCityName(String shipToAddressCityName) { 1667 this.invoiceShipToAddressCityName = shipToAddressCityName; 1668 } 1669 1670 /** 1671 * @return Returns the invoiceShipToAddressCountryCode. 1672 */ 1673 public String getInvoiceShipToAddressCountryCode() { 1674 return invoiceShipToAddressCountryCode; 1675 } 1676 1677 /** 1678 * @param invoiceShipToAddressCountryCode The invoiceShipToAddressCountryCode to set. 1679 */ 1680 public void setInvoiceShipToAddressCountryCode(String shipToAddressCountryCode) { 1681 this.invoiceShipToAddressCountryCode = shipToAddressCountryCode; 1682 } 1683 1684 /** 1685 * @return Returns the invoiceShipToAddressCountryName. 1686 */ 1687 public String getInvoiceShipToAddressCountryName() { 1688 return invoiceShipToAddressCountryName; 1689 } 1690 1691 /** 1692 * @param invoiceShipToAddressCountryName The invoiceShipToAddressCountryName to set. 1693 */ 1694 public void setInvoiceShipToAddressCountryName(String shipToAddressCountryName) { 1695 this.invoiceShipToAddressCountryName = shipToAddressCountryName; 1696 } 1697 1698 /** 1699 * @return Returns the invoiceShipToAddressLine1. 1700 */ 1701 public String getInvoiceShipToAddressLine1() { 1702 return invoiceShipToAddressLine1; 1703 } 1704 1705 /** 1706 * @param invoiceShipToAddressLine1 The invoiceShipToAddressLine1 to set. 1707 */ 1708 public void setInvoiceShipToAddressLine1(String shipToAddressLine1) { 1709 this.invoiceShipToAddressLine1 = shipToAddressLine1; 1710 } 1711 1712 /** 1713 * @return Returns the invoiceShipToAddressLine2. 1714 */ 1715 public String getInvoiceShipToAddressLine2() { 1716 return invoiceShipToAddressLine2; 1717 } 1718 1719 /** 1720 * @param invoiceShipToAddressLine2 The invoiceShipToAddressLine2 to set. 1721 */ 1722 public void setInvoiceShipToAddressLine2(String shipToAddressLine2) { 1723 this.invoiceShipToAddressLine2 = shipToAddressLine2; 1724 } 1725 1726 /** 1727 * @return Returns the invoiceShipToAddressLine3. 1728 */ 1729 public String getInvoiceShipToAddressLine3() { 1730 return invoiceShipToAddressLine3; 1731 } 1732 1733 /** 1734 * @param invoiceShipToAddressLine3 The invoiceShipToAddressLine3 to set. 1735 */ 1736 public void setInvoiceShipToAddressLine3(String shipToAddressLine3) { 1737 this.invoiceShipToAddressLine3 = shipToAddressLine3; 1738 } 1739 1740 /** 1741 * @return Returns the invoiceShipToAddressName. 1742 */ 1743 public String getInvoiceShipToAddressName() { 1744 return invoiceShipToAddressName; 1745 } 1746 1747 /** 1748 * @param invoiceShipToAddressName The invoiceShipToAddressName to set. 1749 */ 1750 public void setInvoiceShipToAddressName(String shipToAddressName) { 1751 this.invoiceShipToAddressName = shipToAddressName; 1752 } 1753 1754 /** 1755 * @return Returns the invoiceShipToAddressPostalCode. 1756 */ 1757 public String getInvoiceShipToAddressPostalCode() { 1758 return invoiceShipToAddressPostalCode; 1759 } 1760 1761 /** 1762 * @param invoiceShipToAddressPostalCode The invoiceShipToAddressPostalCode to set. 1763 */ 1764 public void setInvoiceShipToAddressPostalCode(String shipToAddressPostalCode) { 1765 this.invoiceShipToAddressPostalCode = shipToAddressPostalCode; 1766 } 1767 1768 /** 1769 * @return Returns the invoiceShipToAddressStateCode. 1770 */ 1771 public String getInvoiceShipToAddressStateCode() { 1772 return invoiceShipToAddressStateCode; 1773 } 1774 1775 /** 1776 * @param invoiceShipToAddressStateCode The invoiceShipToAddressStateCode to set. 1777 */ 1778 public void setInvoiceShipToAddressStateCode(String shipToAddressStateCode) { 1779 this.invoiceShipToAddressStateCode = shipToAddressStateCode; 1780 } 1781 1782 /** 1783 * @return Returns the invoiceShipToAddressType. 1784 */ 1785 public String getInvoiceShipToAddressType() { 1786 return invoiceShipToAddressType; 1787 } 1788 1789 /** 1790 * @param invoiceShipToAddressType The invoiceShipToAddressType to set. 1791 */ 1792 public void setInvoiceShipToAddressType(String shipToAddressType) { 1793 this.invoiceShipToAddressType = shipToAddressType; 1794 } 1795 1796 /** 1797 * @return Returns the invoiceOrderSupplierOrderInformationIdentifier. 1798 */ 1799 public String getInvoiceOrderSupplierOrderInformationIdentifier() { 1800 return invoiceOrderSupplierOrderInformationIdentifier; 1801 } 1802 1803 /** 1804 * @param invoiceOrderSupplierOrderInformationIdentifier The invoiceOrderSupplierOrderInformationIdentifier to set. 1805 */ 1806 public void setInvoiceOrderSupplierOrderInformationIdentifier(String supplierOrderInfoId) { 1807 this.invoiceOrderSupplierOrderInformationIdentifier = supplierOrderInfoId; 1808 } 1809 1810 /** 1811 * @return Returns the vendorDetailAssignedIdentifier. 1812 */ 1813 public Integer getVendorDetailAssignedIdentifier() { 1814 return vendorDetailAssignedIdentifier; 1815 } 1816 1817 /** 1818 * @param vendorDetailAssignedIdentifier The vendorDetailAssignedIdentifier to set. 1819 */ 1820 public void setVendorDetailAssignedIdentifier(Integer vendorDetailID) { 1821 this.vendorDetailAssignedIdentifier = vendorDetailID; 1822 } 1823 1824 /** 1825 * @return Returns the vendorDunsNumber. 1826 */ 1827 public String getVendorDunsNumber() { 1828 return vendorDunsNumber; 1829 } 1830 1831 /** 1832 * @param vendorDunsNumber The vendorDunsNumber to set. 1833 */ 1834 public void setVendorDunsNumber(String vendorDunsNumber) { 1835 this.vendorDunsNumber = vendorDunsNumber; 1836 } 1837 1838 /** 1839 * @return Returns the vendorHeaderGeneratedIdentifier. 1840 */ 1841 public Integer getVendorHeaderGeneratedIdentifier() { 1842 return vendorHeaderGeneratedIdentifier; 1843 } 1844 1845 /** 1846 * @param vendorHeaderGeneratedIdentifier The vendorHeaderGeneratedIdentifier to set. 1847 */ 1848 public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderID) { 1849 this.vendorHeaderGeneratedIdentifier = vendorHeaderID; 1850 } 1851 1852 public void addRejectItem(ElectronicInvoiceRejectItem item) { 1853 // int itemLinePosition = getItemLinePosition(); 1854 // if (ObjectUtils.isNotNull(item.getItemLineNumber()) && (item.getItemLineNumber() > 0) && (item.getItemLineNumber() <= 1855 // itemLinePosition)) { 1856 // itemLinePosition = item.getItemLineNumber().intValue() - 1; 1857 // } 1858 1859 item.setPurapDocumentIdentifier(this.purapDocumentIdentifier); 1860 item.setElectronicInvoiceRejectDocument(this); 1861 1862 invoiceRejectItems.add(item); 1863 // renumberItems(itemLinePosition); 1864 } 1865 1866 public void addRejectReason(ElectronicInvoiceRejectReason reason) { 1867 // int itemLinePosition = getItemLinePosition(); 1868 // if (ObjectUtils.isNotNull(item.getItemLineNumber()) && (item.getItemLineNumber() > 0) && (item.getItemLineNumber() <= 1869 // itemLinePosition)) { 1870 // itemLinePosition = item.getItemLineNumber().intValue() - 1; 1871 // } 1872 1873 reason.setPurapDocumentIdentifier(this.purapDocumentIdentifier); 1874 reason.setElectronicInvoiceRejectDocument(this); 1875 1876 invoiceRejectReasons.add(reason); 1877 // renumberItems(itemLinePosition); 1878 } 1879 1880 public PurApRelatedViews getRelatedViews() { 1881 if (relatedViews == null) { 1882 relatedViews = new PurApRelatedViews(this.documentNumber, this.accountsPayablePurchasingDocumentLinkIdentifier); 1883 } 1884 return relatedViews; 1885 } 1886 1887 public void setRelatedViews(PurApRelatedViews relatedViews) { 1888 this.relatedViews = relatedViews; 1889 } 1890 1891 @Override 1892 public boolean isBoNotesSupport() { 1893 return true; 1894 } 1895 1896 public boolean isDocumentCreationInProgress() { 1897 return isDocumentCreationInProgress; 1898 } 1899 1900 public void setDocumentCreationInProgress(boolean isDocumentCreationInProgress) { 1901 this.isDocumentCreationInProgress = isDocumentCreationInProgress; 1902 } 1903 1904 /** 1905 * Returns the vendor number for this document. 1906 * 1907 * @return the vendor number for this document. 1908 */ 1909 public String getVendorNumber() { 1910 if (StringUtils.isNotEmpty(vendorNumber)) { 1911 return vendorNumber; 1912 } 1913 else if (ObjectUtils.isNotNull(vendorDetail)) { 1914 return vendorDetail.getVendorNumber(); 1915 } else if (getVendorHeaderGeneratedIdentifier() != null && getVendorDetailAssignedIdentifier() != null){ 1916 VendorDetail vendorDetail = new VendorDetail(); 1917 vendorDetail.setVendorHeaderGeneratedIdentifier(getVendorHeaderGeneratedIdentifier()); 1918 vendorDetail.setVendorDetailAssignedIdentifier(getVendorDetailAssignedIdentifier()); 1919 return vendorDetail.getVendorNumber(); 1920 } 1921 else 1922 return ""; 1923 } 1924 1925 public void setVendorNumber(String vendorNumber) { 1926 this.vendorNumber = vendorNumber; 1927 } 1928 1929 /** 1930 * Always returns false. 1931 * This method is needed here because it's called by some tag files shared with PurAp documents. 1932 */ 1933 public boolean getIsATypeOfPurAPRecDoc() { 1934 return false; 1935 } 1936 1937 /** 1938 * Always returns false. 1939 * This method is needed here because it's called by some tag files shared with PurAp documents. 1940 */ 1941 public boolean getIsATypeOfPurDoc() { 1942 return false; 1943 } 1944 1945 /** 1946 * Always returns false. 1947 * This method is needed here because it's called by some tag files shared with PurAp documents. 1948 */ 1949 public boolean getIsATypeOfPODoc() { 1950 return false; 1951 } 1952 1953 /** 1954 * Always returns false. 1955 * This method is needed here because it's called by some tag files shared with PurAp documents. 1956 */ 1957 public boolean getIsPODoc() { 1958 return false; 1959 } 1960 1961 /** 1962 * Always returns false. 1963 * This method is needed here because it's called by some tag files shared with PurAp documents. 1964 */ 1965 public boolean getIsReqsDoc() { 1966 return false; 1967 } 1968 1969 public boolean isInvoiceResearchIndicatorForSearching() { 1970 return invoiceResearchIndicator; 1971 } 1972 1973 public String getInvoiceResearchIndicatorForResult(){ 1974 if (isInvoiceResearchIndicator()){ 1975 return "Yes"; 1976 }else{ 1977 return "No"; 1978 } 1979 } 1980 1981 public String getPurchaseOrderDeliveryCampusCodeForSearch(){ 1982 return getPurchaseOrderDeliveryCampusCode(); 1983 } 1984 1985 public CampusParameter getPurchaseOrderDeliveryCampus() { 1986 return purchaseOrderDeliveryCampus; 1987 } 1988 1989 public Date getAccountsPayableApprovalDateForSearch(){ 1990 if (getAccountsPayableApprovalTimestamp() != null){ 1991 DateTimeService dateTimeService = SpringContext.getBean(DateTimeService.class); 1992 try { 1993 return dateTimeService.convertToSqlDate(getAccountsPayableApprovalTimestamp()); 1994 } 1995 catch (ParseException e) { 1996 throw new RuntimeException("ParseException thrown when trying to convert Timestamp to sqlDate.", e); 1997 } 1998 } 1999 return null; 2000 } 2001 2002 public Timestamp getInvoiceFileTimeStampForSearch() { 2003 Date invoiceDate = ElectronicInvoiceUtils.getDate(getInvoiceFileDate()); 2004 if (invoiceDate != null){ 2005 return new Timestamp(invoiceDate.getTime()); 2006 }else{ 2007 return null; 2008 } 2009 } 2010 2011 public void setInvoiceFileTimeStampForSearch(Timestamp invoiceFileTimeStamp) { 2012 //Not needed 2013 } 2014 2015 public String getWorkflowStatusForResult(){ 2016 return PurapSearchUtils.getWorkFlowStatusString(getDocumentHeader()); 2017 } 2018 2019 /** 2020 * Checks whether the related purchase order views need a warning to be displayed, 2021 * i.e. if at least one of the purchase orders has never been opened. 2022 * @return true if at least one related purchase order needs a warning; false otherwise 2023 */ 2024 public boolean getNeedWarningRelatedPOs() { 2025 List<PurchaseOrderView> poViews = getRelatedViews().getRelatedPurchaseOrderViews(); 2026 for (PurchaseOrderView poView : poViews) { 2027 if (poView.getNeedWarning()) 2028 return true; 2029 } 2030 return false; 2031 } 2032 2033 /** 2034 * @see org.kuali.rice.kns.document.DocumentBase#doRouteStatusChange() 2035 */ 2036 @Override 2037 public void doRouteStatusChange(DocumentRouteStatusChangeDTO statusChangeEvent) { 2038 LOG.debug("doRouteStatusChange() started"); 2039 super.doRouteStatusChange(statusChangeEvent); 2040 if (this.getDocumentHeader().getWorkflowDocument().stateIsApproved()){ 2041 //Set the current date as approval timestamp 2042 this.setAccountsPayableApprovalTimestamp(SpringContext.getBean(DateTimeService.class).getCurrentTimestamp()); 2043 } 2044 2045 } 2046 2047 /** 2048 * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#getBoNotes() 2049 */ 2050 @Override 2051 public List getBoNotes() { 2052 List notes = super.getBoNotes(); 2053 if (!StringUtils.isBlank(this.getObjectId())) { 2054 for (Iterator iterator = notes.iterator(); iterator.hasNext();) { 2055 Note note = (Note) iterator.next(); 2056 if (!StringUtils.isBlank(note.getObjectId())) { 2057 note.refresh(); 2058 } 2059 } 2060 } 2061 2062 return super.getBoNotes(); 2063 } 2064 2065 }