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 017 /* 018 * Created on Mar 9, 2005 019 * 020 */ 021 package org.kuali.kfs.module.purap.businessobject; 022 023 import java.math.BigDecimal; 024 import java.util.ArrayList; 025 import java.util.Date; 026 import java.util.Iterator; 027 import java.util.List; 028 029 import org.apache.commons.lang.builder.ToStringBuilder; 030 import org.kuali.kfs.module.purap.service.ElectronicInvoiceMappingService; 031 import org.kuali.kfs.module.purap.util.ElectronicInvoiceUtils; 032 import org.kuali.kfs.module.purap.util.cxml.CxmlHeader; 033 034 public class ElectronicInvoice { 035 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ElectronicInvoice.class); 036 037 private static BigDecimal zero = new BigDecimal(0.00); 038 039 public static String INVOICE_AMOUNT_TYPE_CODE_ITEM = "ITEM"; 040 public static String INVOICE_AMOUNT_TYPE_CODE_TAX = "TAX"; 041 public static String INVOICE_AMOUNT_TYPE_CODE_SPECIAL_HANDLING = "SPHD"; 042 public static String INVOICE_AMOUNT_TYPE_CODE_SHIPPING = "SHIP"; 043 public static String INVOICE_AMOUNT_TYPE_CODE_DISCOUNT = "DISC"; 044 public static String INVOICE_AMOUNT_TYPE_CODE_DEPOSIT = "DPST"; 045 public static String INVOICE_AMOUNT_TYPE_CODE_DUE = "DUE"; 046 public static String INVOICE_AMOUNT_TYPE_CODE_EXMT = "EXMT"; 047 048 public static boolean FILE_REJECTED = true; 049 public static boolean FILE_NOT_REJECTED = false; 050 public static boolean FILE_DOES_CONTAIN_REJECTS = true; 051 public static boolean FILE_DOES_NOT_CONTAIN_REJECTS = false; 052 053 private CxmlHeader cxmlHeader; 054 private String customerNumber; 055 056 private String fileName; 057 private String dunsNumber; 058 private Integer vendorHeaderID = null; 059 private Integer vendorDetailID = null; 060 private String vendorName = null; 061 private boolean fileRejected = FILE_NOT_REJECTED; 062 private boolean containsRejects = FILE_DOES_NOT_CONTAIN_REJECTS; 063 private List fileRejectReasons = new ArrayList(); 064 065 private ElectronicInvoiceDetailRequestHeader invoiceDetailRequestHeader; 066 private List invoiceDetailOrders = new ArrayList(); 067 private ElectronicInvoiceDetailRequestSummary invoiceDetailRequestSummary; 068 069 /** 070 * Newly Added 071 */ 072 private String version = "1.2.019"; 073 private String timestamp; 074 private String payloadID; 075 private String locale; 076 private String deploymentMode = "production"; 077 078 /** 079 * 080 */ 081 public ElectronicInvoice() { 082 super(); 083 } 084 085 private boolean containsLineLevelAmounts() { 086 return invoiceDetailRequestHeader.isShippingInLine() || invoiceDetailRequestHeader.isSpecialHandlingInLine() || invoiceDetailRequestHeader.isTaxInLine() || invoiceDetailRequestHeader.isDiscountInLine(); 087 } 088 089 public void addFileRejectReasonToList(ElectronicInvoiceRejectReason reason) { 090 this.fileRejectReasons.add(reason); 091 } 092 093 /* 094 * ADDRESS METHODS 095 */ 096 public ElectronicInvoicePostalAddress getCxmlPostalAddress(ElectronicInvoiceOrder eio, String roleID, String addressName) { 097 if (this.invoiceDetailRequestHeader.isShippingInLine()) { 098 return eio.getCxmlPostalAddressByRoleID(roleID, addressName); 099 } 100 else { 101 return this.invoiceDetailRequestHeader.getCxmlPostalAddressByRoleID(roleID, addressName); 102 } 103 } 104 105 public ElectronicInvoiceContact getCxmlContact(ElectronicInvoiceOrder eio, String roleID) { 106 if (this.invoiceDetailRequestHeader.isShippingInLine()) { 107 return eio.getCxmlContactByRoleID(roleID); 108 } 109 else { 110 return this.invoiceDetailRequestHeader.getCxmlContactByRoleID(roleID); 111 } 112 } 113 114 public String getShippingDateDisplayText(ElectronicInvoiceOrder eio) { 115 Date date = null; 116 String dateString = ""; 117 if (this.invoiceDetailRequestHeader.isShippingInLine()) { 118 date = eio.getInvoiceShippingDate(); 119 dateString = eio.getInvoiceShippingDateString(); 120 } 121 else { 122 date = this.invoiceDetailRequestHeader.getShippingDate(); 123 dateString = this.invoiceDetailRequestHeader.getShippingDateString(); 124 } 125 if (date != null) { 126 return ElectronicInvoiceUtils.getDateDisplayText(date); 127 } 128 else { 129 return dateString; 130 } 131 } 132 133 public String getMasterAgreementIDInfoDateDisplayText(ElectronicInvoiceOrder eio) { 134 Date date = eio.getMasterAgreementIDInfoDate(); 135 if (date != null) { 136 return ElectronicInvoiceUtils.getDateDisplayText(date); 137 } 138 else { 139 return eio.getMasterAgreementIDInfoDateString(); 140 } 141 } 142 143 public String getMasterAgreementReferenceDateDisplayText(ElectronicInvoiceOrder eio) { 144 Date date = eio.getMasterAgreementReferenceDate(); 145 if (date != null) { 146 return ElectronicInvoiceUtils.getDateDisplayText(date); 147 } 148 else { 149 return eio.getMasterAgreementReferenceDateString(); 150 } 151 } 152 153 public String getOrderIDInfoDateDisplayText(ElectronicInvoiceOrder eio) { 154 Date date = eio.getOrderIDInfoDate(); 155 if (date != null) { 156 return ElectronicInvoiceUtils.getDateDisplayText(date); 157 } 158 else { 159 return eio.getOrderIDInfoDateString(); 160 } 161 } 162 163 public String getInvoiceDateDisplayText() { 164 Date date = this.invoiceDetailRequestHeader.getInvoiceDate(); 165 if (date != null) { 166 return ElectronicInvoiceUtils.getDateDisplayText(date); 167 } 168 else { 169 return this.invoiceDetailRequestHeader.getInvoiceDateString(); 170 } 171 } 172 173 /* 174 * DESCRIPTION METHODS 175 */ 176 public String getInvoiceShippingDescription(ElectronicInvoiceOrder eio) { 177 if (this.invoiceDetailRequestHeader.isShippingInLine()) { 178 return eio.getInvoiceShippingDescription(); 179 } 180 else { 181 return invoiceDetailRequestSummary.getShippingDescription(); 182 } 183 } 184 185 public String getInvoiceTaxDescription(ElectronicInvoiceOrder eio) { 186 if (this.invoiceDetailRequestHeader.isTaxInLine()) { 187 return eio.getInvoiceTaxDescription(); 188 } 189 else { 190 return invoiceDetailRequestSummary.getTaxDescription(); 191 } 192 } 193 194 public String getInvoiceSpecialHandlingDescription(ElectronicInvoiceOrder eio) { 195 196 if (this.invoiceDetailRequestHeader.isSpecialHandlingInLine()) { 197 return eio.getInvoiceSpecialHandlingDescription(); 198 199 }else{ 200 return invoiceDetailRequestSummary.getSpecialHandlingAmountDescription(); 201 } 202 } 203 204 /* 205 * AMOUNT METHODS 206 */ 207 public BigDecimal getFileTotalAmountForInLineItems(String invoiceLineItemType) { 208 BigDecimal total = zero; 209 for (Iterator orderIter = this.invoiceDetailOrders.iterator(); orderIter.hasNext();) { 210 ElectronicInvoiceOrder eio = (ElectronicInvoiceOrder) orderIter.next(); 211 if (INVOICE_AMOUNT_TYPE_CODE_TAX.equalsIgnoreCase(invoiceLineItemType)) { 212 total = total.add(eio.getInvoiceTaxAmount()); 213 } 214 else if (INVOICE_AMOUNT_TYPE_CODE_SPECIAL_HANDLING.equalsIgnoreCase(invoiceLineItemType)) { 215 total = total.add(eio.getInvoiceSpecialHandlingAmount()); 216 } 217 else if (INVOICE_AMOUNT_TYPE_CODE_SHIPPING.equalsIgnoreCase(invoiceLineItemType)) { 218 total = total.add(eio.getInvoiceShippingAmount()); 219 } 220 else if (INVOICE_AMOUNT_TYPE_CODE_DISCOUNT.equalsIgnoreCase(invoiceLineItemType)) { 221 total = total.add(eio.getInvoiceDiscountAmount()); 222 } 223 } 224 return total; 225 } 226 227 public BigDecimal getInvoiceSubTotalAmount(ElectronicInvoiceOrder eio) { 228 if (this.containsLineLevelAmounts()) { 229 return eio.getInvoiceSubTotalAmount(); 230 } 231 else { 232 return invoiceDetailRequestSummary.getInvoiceSubTotalAmount(); 233 } 234 } 235 236 public BigDecimal getInvoiceTaxAmount(ElectronicInvoiceOrder eio) { 237 if (this.invoiceDetailRequestHeader.isTaxInLine()) { 238 return eio.getInvoiceTaxAmount(); 239 } 240 else { 241 return invoiceDetailRequestSummary.getInvoiceTaxAmount(); 242 } 243 } 244 245 public BigDecimal getInvoiceSpecialHandlingAmount(ElectronicInvoiceOrder eio) { 246 if (this.invoiceDetailRequestHeader.isSpecialHandlingInLine()) { 247 return eio.getInvoiceSpecialHandlingAmount(); 248 } 249 else { 250 return invoiceDetailRequestSummary.getInvoiceSpecialHandlingAmount(); 251 } 252 } 253 254 public BigDecimal getInvoiceShippingAmount(ElectronicInvoiceOrder eio) { 255 if (this.invoiceDetailRequestHeader.isShippingInLine()) { 256 return eio.getInvoiceShippingAmount(); 257 } 258 else { 259 return invoiceDetailRequestSummary.getInvoiceShippingAmount(); 260 } 261 } 262 263 public BigDecimal getInvoiceGrossAmount(ElectronicInvoiceOrder eio) { 264 if (this.containsLineLevelAmounts()) { 265 return eio.getInvoiceGrossAmount(); 266 } 267 else { 268 return invoiceDetailRequestSummary.getInvoiceGrossAmount(); 269 } 270 } 271 272 public BigDecimal getInvoiceDiscountAmount(ElectronicInvoiceOrder eio) { 273 if (this.invoiceDetailRequestHeader.isDiscountInLine()) { 274 return eio.getInvoiceDiscountAmount(); 275 } 276 else { 277 return invoiceDetailRequestSummary.getInvoiceDiscountAmount(); 278 } 279 } 280 281 public BigDecimal getInvoiceNetAmount(ElectronicInvoiceOrder eio) { 282 if (this.containsLineLevelAmounts()) { 283 return eio.getInvoiceNetAmount(); 284 } 285 else { 286 return invoiceDetailRequestSummary.getInvoiceNetAmount(); 287 } 288 } 289 290 public BigDecimal getInvoiceDepositAmount() { 291 return invoiceDetailRequestSummary.getInvoiceDepositAmount(); 292 } 293 294 public BigDecimal getInvoiceDueAmount() { 295 return invoiceDetailRequestSummary.getInvoiceDueAmount(); 296 } 297 298 /* 299 * CURRENCY METHODS 300 */ 301 public String getCodeOfLineItemThatContainsInvalidCurrency(String invoiceLineItemType) { 302 for (Iterator orderIter = this.invoiceDetailOrders.iterator(); orderIter.hasNext();) { 303 ElectronicInvoiceOrder eio = (ElectronicInvoiceOrder) orderIter.next(); 304 for (Iterator itemIter = eio.getInvoiceItems().iterator(); itemIter.hasNext();) { 305 ElectronicInvoiceItem eii = (ElectronicInvoiceItem) itemIter.next(); 306 if (INVOICE_AMOUNT_TYPE_CODE_TAX.equalsIgnoreCase(invoiceLineItemType)) { 307 if (!(this.isCodeValidCurrency(eii.getTaxAmountCurrency()))) { 308 return eii.getTaxAmountCurrency(); 309 } 310 } 311 else if (INVOICE_AMOUNT_TYPE_CODE_SPECIAL_HANDLING.equalsIgnoreCase(invoiceLineItemType)) { 312 if (!(this.isCodeValidCurrency(eii.getInvoiceLineSpecialHandlingAmountCurrency()))) { 313 return eii.getInvoiceLineSpecialHandlingAmountCurrency(); 314 } 315 } 316 else if (INVOICE_AMOUNT_TYPE_CODE_SHIPPING.equalsIgnoreCase(invoiceLineItemType)) { 317 if (!(this.isCodeValidCurrency(eii.getInvoiceLineShippingAmountCurrency()))) { 318 return eii.getInvoiceLineShippingAmountCurrency(); 319 } 320 } 321 else if (INVOICE_AMOUNT_TYPE_CODE_DISCOUNT.equalsIgnoreCase(invoiceLineItemType)) { 322 if (!(this.isCodeValidCurrency(eii.getInvoiceLineDiscountAmountCurrency()))) { 323 return eii.getInvoiceLineDiscountAmountCurrency(); 324 } 325 } 326 } 327 } 328 return null; 329 } 330 331 /** 332 * This method contains the mapping check for valid Currency Code(s) 333 */ 334 public String checkCodeForValidCurrency(String code) { 335 if (!(this.isCodeValidCurrency(code))) { 336 return code; 337 } 338 else { 339 return null; 340 } 341 } 342 343 /** 344 * This method contains the mapping check for valid Currency Code(s) 345 */ 346 public boolean isCodeValidCurrency(String code) { 347 if (code != null) { 348 for (int i = 0; i < ElectronicInvoiceMappingService.CXML_VALID_CURRENCY_CODES.length; i++) { 349 String validCode = ElectronicInvoiceMappingService.CXML_VALID_CURRENCY_CODES[i]; 350 if (code.equalsIgnoreCase(validCode)) { 351 return true; 352 } 353 } 354 } 355 return false; 356 } 357 358 public String getInvoiceSubTotalCurrencyIfNotValid(ElectronicInvoiceOrder eio) { 359 if (this.containsLineLevelAmounts()) { 360 for (Iterator iter = eio.getInvoiceItems().iterator(); iter.hasNext();) { 361 ElectronicInvoiceItem eii = (ElectronicInvoiceItem) iter.next(); 362 String currentCode = this.checkCodeForValidCurrency(eii.getSubTotalAmountCurrency()); 363 if (currentCode != null) { 364 return currentCode; 365 } 366 } 367 return null; 368 } 369 else { 370 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getSubTotalAmountCurrency()); 371 } 372 } 373 374 public String getInvoiceTaxCurrencyIfNotValid(ElectronicInvoiceOrder eio) { 375 if (this.invoiceDetailRequestHeader.isTaxInLine()) { 376 for (Iterator iter = eio.getInvoiceItems().iterator(); iter.hasNext();) { 377 ElectronicInvoiceItem eii = (ElectronicInvoiceItem) iter.next(); 378 String currentCode = this.checkCodeForValidCurrency(eii.getTaxAmountCurrency()); 379 if (currentCode != null) { 380 return currentCode; 381 } 382 } 383 return null; 384 } 385 else { 386 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getTaxAmountCurrency()); 387 } 388 } 389 390 public String getInvoiceSpecialHandlingCurrencyIfNotValid(ElectronicInvoiceOrder eio) { 391 if (this.invoiceDetailRequestHeader.isSpecialHandlingInLine()) { 392 for (Iterator iter = eio.getInvoiceItems().iterator(); iter.hasNext();) { 393 ElectronicInvoiceItem eii = (ElectronicInvoiceItem) iter.next(); 394 String currentCode = this.checkCodeForValidCurrency(eii.getInvoiceLineSpecialHandlingAmountCurrency()); 395 if (currentCode != null) { 396 return currentCode; 397 } 398 } 399 return null; 400 } 401 else { 402 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getSpecialHandlingAmountCurrency()); 403 } 404 } 405 406 public String getInvoiceShippingCurrencyIfNotValid(ElectronicInvoiceOrder eio) { 407 if (this.invoiceDetailRequestHeader.isShippingInLine()) { 408 for (Iterator iter = eio.getInvoiceItems().iterator(); iter.hasNext();) { 409 ElectronicInvoiceItem eii = (ElectronicInvoiceItem) iter.next(); 410 String currentCode = this.checkCodeForValidCurrency(eii.getInvoiceLineShippingAmountCurrency()); 411 if (currentCode != null) { 412 return currentCode; 413 } 414 } 415 return null; 416 } 417 else { 418 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getShippingAmountCurrency()); 419 } 420 } 421 422 public String getInvoiceGrossCurrencyIfNotValid(ElectronicInvoiceOrder eio) { 423 if (this.containsLineLevelAmounts()) { 424 for (Iterator iter = eio.getInvoiceItems().iterator(); iter.hasNext();) { 425 ElectronicInvoiceItem eii = (ElectronicInvoiceItem) iter.next(); 426 String currentCode = this.checkCodeForValidCurrency(eii.getInvoiceLineGrossAmountCurrency()); 427 if (currentCode != null) { 428 return currentCode; 429 } 430 } 431 return null; 432 } 433 else { 434 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getGrossAmountCurrency()); 435 } 436 } 437 438 public String getInvoiceDiscountCurrencyIfNotValid(ElectronicInvoiceOrder eio) { 439 if (this.invoiceDetailRequestHeader.isDiscountInLine()) { 440 for (Iterator iter = eio.getInvoiceItems().iterator(); iter.hasNext();) { 441 ElectronicInvoiceItem eii = (ElectronicInvoiceItem) iter.next(); 442 String currentCode = this.checkCodeForValidCurrency(eii.getInvoiceLineDiscountAmountCurrency()); 443 if (currentCode != null) { 444 return currentCode; 445 } 446 } 447 return null; 448 } 449 else { 450 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getDiscountAmountCurrency()); 451 } 452 } 453 454 public String getInvoiceNetCurrencyIfNotValid(ElectronicInvoiceOrder eio) { 455 if (this.containsLineLevelAmounts()) { 456 for (ElectronicInvoiceItem eii : eio.getInvoiceItems()) { 457 String currentCode = this.checkCodeForValidCurrency(eii.getInvoiceLineNetAmountCurrency()); 458 if (currentCode != null) { 459 return currentCode; 460 } 461 } 462 return null; 463 } 464 else { 465 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getNetAmountCurrency()); 466 } 467 } 468 469 public String getInvoiceDepositCurrencyIfNotValid() { 470 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getDepositAmountCurrency()); 471 } 472 473 public String getInvoiceDueCurrencyIfNotValid() { 474 return this.checkCodeForValidCurrency(invoiceDetailRequestSummary.getDueAmountCurrency()); 475 } 476 477 /* 478 * GETTERS AND SETTERS 479 */ 480 481 /** 482 * @return Returns the containsRejects. 483 */ 484 public boolean isContainsRejects() { 485 return containsRejects; 486 } 487 488 /** 489 * @param containsRejects The containsRejects to set. 490 */ 491 public void setContainsRejects(boolean containsRejects) { 492 this.containsRejects = containsRejects; 493 } 494 495 /** 496 * @return Returns the customerNumber. 497 */ 498 public String getCustomerNumber() { 499 return customerNumber; 500 } 501 502 /** 503 * @param customerNumber The customerNumber to set. 504 */ 505 public void setCustomerNumber(String customerNumber) { 506 this.customerNumber = customerNumber; 507 } 508 509 /** 510 * @return Returns the cxmlHeader. 511 */ 512 public CxmlHeader getCxmlHeader() { 513 return cxmlHeader; 514 } 515 516 /** 517 * @param cxmlHeader The cxmlHeader to set. 518 */ 519 public void setCxmlHeader(CxmlHeader cxmlHeader) { 520 this.cxmlHeader = cxmlHeader; 521 } 522 523 /** 524 * @return Returns the dunsNumber. 525 */ 526 public String getDunsNumber() { 527 return dunsNumber; 528 } 529 530 /** 531 * @param dunsNumber The dunsNumber to set. 532 */ 533 public void setDunsNumber(String dunsNumber) { 534 this.dunsNumber = dunsNumber; 535 } 536 537 /** 538 * @return Returns the fileName. 539 */ 540 public String getFileName() { 541 return fileName; 542 } 543 544 /** 545 * @param fileName The fileName to set. 546 */ 547 public void setFileName(String fileName) { 548 this.fileName = fileName; 549 } 550 551 /** 552 * @return Returns the fileRejected. 553 */ 554 public boolean isFileRejected() { 555 return fileRejected; 556 } 557 558 /** 559 * @param fileRejected The fileRejected to set. 560 */ 561 public void setFileRejected(boolean fileRejected) { 562 this.fileRejected = fileRejected; 563 } 564 565 /** 566 * @return Returns the fileRejectReasons. 567 */ 568 public List<ElectronicInvoiceRejectReason> getFileRejectReasons() { 569 return fileRejectReasons; 570 } 571 572 /** 573 * @param fileRejectReasons The fileRejectReasons to set. 574 */ 575 public void setFileRejectReasons(List<ElectronicInvoiceRejectReason> fileRejectReasons) { 576 this.fileRejectReasons = fileRejectReasons; 577 } 578 579 /** 580 * @return Returns the invoiceDetailOrders. 581 */ 582 public List<ElectronicInvoiceOrder> getInvoiceDetailOrders() { 583 return invoiceDetailOrders; 584 } 585 586 /** 587 * @param invoiceDetailOrders The invoiceDetailOrders to set. 588 */ 589 public void setInvoiceDetailOrders(List<ElectronicInvoiceOrder> invoiceDetailOrders) { 590 this.invoiceDetailOrders = invoiceDetailOrders; 591 } 592 593 /** 594 * @return Returns the invoiceDetailRequestHeader. 595 */ 596 public ElectronicInvoiceDetailRequestHeader getInvoiceDetailRequestHeader() { 597 return invoiceDetailRequestHeader; 598 } 599 600 /** 601 * @param invoiceDetailRequestHeader The invoiceDetailRequestHeader to set. 602 */ 603 public void setInvoiceDetailRequestHeader(ElectronicInvoiceDetailRequestHeader invoiceDetailRequestHeader) { 604 this.invoiceDetailRequestHeader = invoiceDetailRequestHeader; 605 } 606 607 /** 608 * @return Returns the invoiceDetailRequestSummary. 609 */ 610 public ElectronicInvoiceDetailRequestSummary getInvoiceDetailRequestSummary() { 611 return invoiceDetailRequestSummary; 612 } 613 614 /** 615 * @param invoiceDetailRequestSummary The invoiceDetailRequestSummary to set. 616 */ 617 public void setInvoiceDetailRequestSummary(ElectronicInvoiceDetailRequestSummary invoiceDetailRequestSummary) { 618 this.invoiceDetailRequestSummary = invoiceDetailRequestSummary; 619 } 620 621 /** 622 * @return Returns the vendorDetailID. 623 */ 624 public Integer getVendorDetailID() { 625 return vendorDetailID; 626 } 627 628 /** 629 * @param vendorDetailID The vendorDetailID to set. 630 */ 631 public void setVendorDetailID(Integer vendorDetailID) { 632 this.vendorDetailID = vendorDetailID; 633 } 634 635 /** 636 * @return Returns the vendorHeaderID. 637 */ 638 public Integer getVendorHeaderID() { 639 return vendorHeaderID; 640 } 641 642 /** 643 * @param vendorHeaderID The vendorHeaderID to set. 644 */ 645 public void setVendorHeaderID(Integer vendorHeaderID) { 646 this.vendorHeaderID = vendorHeaderID; 647 } 648 649 /** 650 * @return the vendorName 651 */ 652 public String getVendorName() { 653 return vendorName; 654 } 655 656 /** 657 * @param vendorName the vendorName to set 658 */ 659 public void setVendorName(String vendorName) { 660 this.vendorName = vendorName; 661 } 662 663 public String getPayloadID() { 664 return payloadID; 665 } 666 667 public void setPayloadID(String payloadID) { 668 this.payloadID = payloadID; 669 } 670 671 public String getTimestamp() { 672 return timestamp; 673 } 674 675 public void setTimestamp(String timestamp) { 676 this.timestamp = timestamp; 677 } 678 679 public String getVersion() { 680 return version; 681 } 682 683 public void setVersion(String version) { 684 this.version = version; 685 } 686 687 public String getLocale() { 688 return locale; 689 } 690 691 public void setLocale(String locale) { 692 this.locale = locale; 693 } 694 695 public void addInvoiceDetailOrder(ElectronicInvoiceOrder electronicInvoiceOrder) { 696 invoiceDetailOrders.add(electronicInvoiceOrder); 697 } 698 699 public ElectronicInvoiceOrder[] getInvoiceDetailOrdersAsArray() { 700 if (invoiceDetailOrders.size() > 0) { 701 ElectronicInvoiceOrder[] tempOrders = new ElectronicInvoiceOrder[invoiceDetailOrders.size()]; 702 invoiceDetailOrders.toArray(tempOrders); 703 return tempOrders; 704 } 705 return null; 706 } 707 708 public String getDeploymentMode() { 709 return deploymentMode; 710 } 711 712 public void setDeploymentMode(String deploymentMode) { 713 this.deploymentMode = deploymentMode; 714 } 715 716 public String toString() { 717 ToStringBuilder toString = new ToStringBuilder(this); 718 toString.append("version", getVersion()); 719 toString.append("timestamp", getTimestamp()); 720 toString.append("payloadID", getPayloadID()); 721 toString.append("locale", getLocale()); 722 toString.append("customerNumber", getCustomerNumber()); 723 toString.append("fileName", getFileName()); 724 toString.append("deploymentMode", getDeploymentMode()); 725 726 toString.append("dunsNumber", getDunsNumber()); 727 toString.append("vendorHeaderID", getVendorHeaderID()); 728 toString.append("vendorDetailID", getVendorDetailID()); 729 toString.append("vendorName", getVendorName()); 730 toString.append("cxmlHeader", getCxmlHeader()); 731 toString.append("invoiceDetailRequestHeader", getInvoiceDetailRequestHeader()); 732 toString.append("invoiceDetailOrders", getInvoiceDetailOrders()); 733 toString.append("invoiceDetailRequestSummary", getInvoiceDetailRequestSummary()); 734 735 736 return toString.toString(); 737 738 } 739 740 741 }