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 }