001/*
002 * The Kuali Financial System, a comprehensive financial management system for higher education.
003 * 
004 * Copyright 2005-2014 The Kuali Foundation
005 * 
006 * This program is free software: you can redistribute it and/or modify
007 * it under the terms of the GNU Affero General Public License as
008 * published by the Free Software Foundation, either version 3 of the
009 * License, or (at your option) any later version.
010 * 
011 * This program is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014 * GNU Affero General Public License for more details.
015 * 
016 * You should have received a copy of the GNU Affero General Public License
017 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
018 */
019package org.kuali.kfs.module.purap.fixture;
020
021import java.math.BigDecimal;
022import java.sql.Timestamp;
023
024import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceLoadSummary;
025import org.kuali.kfs.module.purap.document.ElectronicInvoiceRejectDocument;
026import org.kuali.kfs.sys.DocumentTestUtils;
027import org.kuali.kfs.sys.context.SpringContext;
028import org.kuali.rice.kew.api.exception.WorkflowException;
029import org.kuali.rice.krad.service.DocumentService;
030
031public enum ElectronicInvoiceRejectDocumentFixture {
032
033    EIR_ONLY_REQUIRED_FIELDS(
034            new Timestamp(new java.util.Date().getTime()), // invoiceProcessTimestamp
035            Boolean.FALSE, // fileHeaderTypeIndicator
036            Boolean.FALSE, // fileInformationOnlyIndicator
037            Boolean.FALSE, // fileTaxInLineIndicator
038            Boolean.FALSE, // fileSpecHandlingInLineIndicator
039            Boolean.FALSE, // fileShippingInLineIndicator
040            Boolean.FALSE, // fileDiscountInLineIndicator
041            "nullfile.xml", // invoiceFileName
042            "123456789", // vendorDunsNumber
043            1000, // vendorHeaderID
044            0, // vendorDetailID
045            "2008-07-11", // invoiceFileDate
046            "35106833", // invoiceFileNumber
047            "standard", // filePurposeId
048            "new", // fileOperationId
049            null, // deploymentMode
050            "446665", // referenceOrderId
051            "446665", // referenceDocumentRefPayloadId
052            null, // referenceDocumentRefText
053            null, // masterAgreementReferenceId
054            null, // masterAgreementReferenceDate
055            null, // masterAgreementInfoId
056            null, // masterAgreementInfoDate
057            "446665", // invoiceOrderId
058            "2008-07-11", // invoiceOrderDate
059            "37625311", // supplierOrderInfoId
060            null, // invoiceShipDate
061            "Biology, Lynch Lab, A. Seyfert", // shipToAddressName
062            "BLBI", // shipToAddressType
063            "1001 E 3rd St", // shipToAddressLine1
064            "Room #A108", // shipToAddressLine2
065            null, // shipToAddressLine3
066            "Bloomington", // shipToAddressCityName
067            "IN", // shipToAddressStateCode
068            "47405-7005", // shipToAddressPostalCode
069            "US", // shipToAddressCountryCode
070            null, // shipToAddressCountryName
071            "IN UNIV BLOOMINGTON", // billToAddressName
072            null, // billToAddressType
073            "PO BOX 4095", // billToAddressLine1
074            "FINANCIAL MGMT SERVICES", // billToAddressLine2
075            null, // billToAddressLine3
076            "BLOOMINGTON", // billToAddressCityName
077            "IN", // billToAddressStateCode
078            "47402", // billToAddressPostalCode
079            "US", // billToAddressCountryCode
080            null, // billToAddressCountryName
081            "VWR INTERNATIONAL", // remitToAddressName
082            null, // remitToAddressType
083            "P. O. BOX 640169", // remitToAddressLine1
084            null, // remitToAddressLine2
085            null, // remitToAddressLine3
086            "PITTSBURGH", // remitToAddressCityName
087            "PA", // remitToAddressStateCode
088            "15264-0169", // remitToAddressPostalCode
089            "US", // remitToAddressCountryCode
090            null, // remitToAddressCountryName
091            null, // invoiceCustomerNumber
092            null, // invoicePurchaseOrderId
093            null, // purchaseOrderId
094            null, // purchaseOrderDeliveryCampusCode
095            "USD", // invoiceSubTotalAmountCurrency
096            null, // invoiceSpecialHandlingAmountCurrency
097            null, // invoiceSpecialHandlingDescription
098            null, // invoiceShippingAmountCurrency
099            null, // invoiceShippingDescription
100            "USD", // invoiceTaxAmountCurrency
101            null, // invoiceTaxDescription
102            "USD", // invoiceGrossAmountCurrency
103            "USD", // invoiceDiscountAmountCurrency
104            "USD", // invoiceNetAmountCurrency
105            new BigDecimal("1821.00"), // invoiceSubTotalAmount
106            new BigDecimal("1"), // invoiceSpecialHandlingAmount
107            new BigDecimal("2"), // invoiceShippingAmount
108            new BigDecimal("0"), // invoiceTaxAmount
109            new BigDecimal("1821.00"), // invoiceGrossAmount
110            new BigDecimal("1.00"), // invoiceDiscountAmount
111            new BigDecimal("1821.00"), // invoiceNetAmount
112            new ElectronicInvoiceRejectItemFixture[] {ElectronicInvoiceRejectItemFixture.EIRI_BASIC},
113            new ElectronicInvoiceRejectReasonFixture[] {}            
114    ),
115    EIR_MATCHING(
116            new Timestamp(new java.util.Date().getTime()), // invoiceProcessTimestamp
117            Boolean.FALSE, // fileHeaderTypeIndicator
118            Boolean.FALSE, // fileInformationOnlyIndicator
119            Boolean.FALSE, // fileTaxInLineIndicator
120            Boolean.FALSE, // fileSpecHandlingInLineIndicator
121            Boolean.FALSE, // fileShippingInLineIndicator
122            Boolean.FALSE, // fileDiscountInLineIndicator
123            "nullfile.xml", // invoiceFileName
124            "002254837", // vendorDunsNumber
125            1001, // vendorHeaderID
126            0, // vendorDetailID
127            "2008-07-11", // invoiceFileDate
128            "35106833", // invoiceFileNumber
129            "standard", // filePurposeId
130            "new", // fileOperationId
131            null, // deploymentMode
132            "446665", // referenceOrderId
133            "446665", // referenceDocumentRefPayloadId
134            null, // referenceDocumentRefText
135            null, // masterAgreementReferenceId
136            null, // masterAgreementReferenceDate
137            null, // masterAgreementInfoId
138            null, // masterAgreementInfoDate
139            "446665", // invoiceOrderId
140            "2008-07-11", // invoiceOrderDate
141            "37625311", // supplierOrderInfoId
142            null, // invoiceShipDate
143            "Biology, Lynch Lab, A. Seyfert", // shipToAddressName
144            "BLBI", // shipToAddressType
145            "1001 E 3rd St", // shipToAddressLine1
146            "Room #A108", // shipToAddressLine2
147            null, // shipToAddressLine3
148            "Bloomington", // shipToAddressCityName
149            "IN", // shipToAddressStateCode
150            "47405-7005", // shipToAddressPostalCode
151            "US", // shipToAddressCountryCode
152            null, // shipToAddressCountryName
153            "IN UNIV BLOOMINGTON", // billToAddressName
154            null, // billToAddressType
155            "PO BOX 4095", // billToAddressLine1
156            "FINANCIAL MGMT SERVICES", // billToAddressLine2
157            null, // billToAddressLine3
158            "BLOOMINGTON", // billToAddressCityName
159            "IN", // billToAddressStateCode
160            "47402", // billToAddressPostalCode
161            "US", // billToAddressCountryCode
162            null, // billToAddressCountryName
163            "VWR INTERNATIONAL", // remitToAddressName
164            null, // remitToAddressType
165            "P. O. BOX 640169", // remitToAddressLine1
166            null, // remitToAddressLine2
167            null, // remitToAddressLine3
168            "PITTSBURGH", // remitToAddressCityName
169            "PA", // remitToAddressStateCode
170            "15264-0169", // remitToAddressPostalCode
171            "US", // remitToAddressCountryCode
172            null, // remitToAddressCountryName
173            null, // invoiceCustomerNumber
174            null, // invoicePurchaseOrderId
175            null, // purchaseOrderId
176            null, // purchaseOrderDeliveryCampusCode
177            "USD", // invoiceSubTotalAmountCurrency
178            null, // invoiceSpecialHandlingAmountCurrency
179            null, // invoiceSpecialHandlingDescription
180            null, // invoiceShippingAmountCurrency
181            null, // invoiceShippingDescription
182            "USD", // invoiceTaxAmountCurrency
183            null, // invoiceTaxDescription
184            "USD", // invoiceGrossAmountCurrency
185            "USD", // invoiceDiscountAmountCurrency
186            "USD", // invoiceNetAmountCurrency
187            new BigDecimal("1821.00"), // invoiceSubTotalAmount
188            new BigDecimal("1"), // invoiceSpecialHandlingAmount
189            new BigDecimal("2"), // invoiceShippingAmount
190            new BigDecimal("0"), // invoiceTaxAmount
191            new BigDecimal("1821.00"), // invoiceGrossAmount
192            new BigDecimal("1.00"), // invoiceDiscountAmount
193            new BigDecimal("1821.00"), // invoiceNetAmount
194            new ElectronicInvoiceRejectItemFixture[] {ElectronicInvoiceRejectItemFixture.EIRI_BASIC},
195            new ElectronicInvoiceRejectReasonFixture[] {}            
196    ),
197    ;
198
199    public Integer purapDocumentIdentifier;
200    public Integer accountsPayablePurchasingDocumentLinkIdentifier;
201    public Integer invoiceLoadSummaryIdentifier;
202    public Timestamp invoiceProcessTimestamp;
203    public Boolean invoiceFileHeaderTypeIndicator = Boolean.FALSE;
204    public Boolean invoiceFileInformationOnlyIndicator = Boolean.FALSE;
205    public Boolean invoiceFileTaxInLineIndicator = Boolean.FALSE;
206    public Boolean invoiceFileSpecialHandlingInLineIndicator = Boolean.FALSE;
207    public Boolean invoiceFileShippingInLineIndicator = Boolean.FALSE;
208    public Boolean invoiceFileDiscountInLineIndicator = Boolean.FALSE;
209    
210    public String invoiceFileName;
211    public String vendorDunsNumber;
212    public Integer vendorHeaderGeneratedIdentifier;
213    public Integer vendorDetailAssignedIdentifier;
214    public String invoiceFileDate;
215    public String invoiceFileNumber;
216    public String invoiceFilePurposeIdentifier;
217    public String invoiceFileOperationIdentifier;
218    public String invoiceFileDeploymentModeValue;
219    public String invoiceOrderReferenceOrderIdentifier;
220    public String invoiceOrderReferenceDocumentReferencePayloadIdentifier;
221    public String invoiceOrderReferenceDocumentReferenceText;
222    public String invoiceOrderMasterAgreementReferenceIdentifier;
223    public String invoiceOrderMasterAgreementReferenceDate;
224    public String invoiceOrderMasterAgreementInformationIdentifier;
225    public String invoiceOrderMasterAgreementInformationDate;
226    public String invoiceOrderPurchaseOrderIdentifier;
227    public String invoiceOrderPurchaseOrderDate;
228    public String invoiceOrderSupplierOrderInformationIdentifier;
229    public String invoiceShipDate;
230    public String invoiceShipToAddressName;
231    public String invoiceShipToAddressType;
232    public String invoiceShipToAddressLine1;
233    public String invoiceShipToAddressLine2;
234    public String invoiceShipToAddressLine3;
235    public String invoiceShipToAddressCityName;
236    public String invoiceShipToAddressStateCode;
237    public String invoiceShipToAddressPostalCode;
238    public String invoiceShipToAddressCountryCode;
239    public String invoiceShipToAddressCountryName;
240    public String invoiceBillToAddressName;
241    public String invoiceBillToAddressType;
242    public String invoiceBillToAddressLine1;
243    public String invoiceBillToAddressLine2;
244    public String invoiceBillToAddressLine3;
245    public String invoiceBillToAddressCityName;
246    public String invoiceBillToAddressStateCode;
247    public String invoiceBillToAddressPostalCode;
248    public String invoiceBillToAddressCountryCode;
249    public String invoiceBillToAddressCountryName;
250    public String invoiceRemitToAddressName;
251    public String invoiceRemitToAddressType;
252    public String invoiceRemitToAddressLine1;
253    public String invoiceRemitToAddressLine2;
254    public String invoiceRemitToAddressLine3;
255    public String invoiceRemitToAddressCityName;
256    public String invoiceRemitToAddressStateCode;
257    public String invoiceRemitToAddressPostalCode;
258    public String invoiceRemitToAddressCountryCode;
259    public String invoiceRemitToAddressCountryName;
260    
261    public String invoiceCustomerNumber;
262    public String invoicePurchaseOrderNumber;
263    public Integer purchaseOrderIdentifier;
264    public String purchaseOrderDeliveryCampusCode;
265    
266    public String invoiceItemSubTotalCurrencyCode;
267    public String invoiceItemSpecialHandlingCurrencyCode;
268    public String invoiceItemSpecialHandlingDescription;
269    public String invoiceItemShippingCurrencyCode;
270    public String invoiceItemShippingDescription;
271    public String invoiceItemTaxCurrencyCode;
272    public String invoiceItemTaxDescription;
273    public String invoiceItemGrossCurrencyCode;
274    public String invoiceItemDiscountCurrencyCode;
275    public String invoiceItemNetCurrencyCode;
276    
277    public BigDecimal invoiceItemSubTotalAmount;
278    public BigDecimal invoiceItemSpecialHandlingAmount;
279    public BigDecimal invoiceItemShippingAmount;
280    public BigDecimal invoiceItemTaxAmount;
281    public BigDecimal invoiceItemGrossAmount;
282    public BigDecimal invoiceItemDiscountAmount;
283    public BigDecimal invoiceItemNetAmount;
284    
285    public ElectronicInvoiceRejectItemFixture[] invoiceRejectItemFixtures;
286    public ElectronicInvoiceRejectReasonFixture[] invoiceRejectReasonFixtures;
287
288    private ElectronicInvoiceRejectDocumentFixture(Timestamp invoiceProcessTimestamp, Boolean invoiceFileHeaderTypeIndicator, Boolean invoiceFileInformationOnlyIndicator, Boolean invoiceFileTaxInLineIndicator, Boolean invoiceFileSpecialHandlingInLineIndicator, Boolean invoiceFileShippingInLineIndicator, Boolean invoiceFileDiscountInLineIndicator, String invoiceFileName, String vendorDunsNumber,
289            Integer vendorHeaderGeneratedIdentifier, Integer vendorDetailAssignedIdentifier, String invoiceFileDate, String invoiceFileNumber, String invoiceFilePurposeIdentifier, String invoiceFileOperationIdentifier, String invoiceFileDeploymentModeValue, String invoiceOrderReferenceOrderIdentifier, String invoiceOrderReferenceDocumentReferencePayloadIdentifier, String invoiceOrderReferenceDocumentReferenceText,
290            String invoiceOrderMasterAgreementReferenceIdentifier, String invoiceOrderMasterAgreementReferenceDate, String invoiceOrderMasterAgreementInformationIdentifier, String invoiceOrderMasterAgreementInformationDate, String invoiceOrderPurchaseOrderIdentifier, String invoiceOrderPurchaseOrderDate, String invoiceOrderSupplierOrderInformationIdentifier, String invoiceShipDate,
291            String invoiceShipToAddressName, String invoiceShipToAddressType, String invoiceShipToAddressLine1, String invoiceShipToAddressLine2, String invoiceShipToAddressLine3, String invoiceShipToAddressCityName, String invoiceShipToAddressStateCode, String invoiceShipToAddressPostalCode, String invoiceShipToAddressCountryCode, String invoiceShipToAddressCountryName,
292            String invoiceBillToAddressName, String invoiceBillToAddressType, String invoiceBillToAddressLine1, String invoiceBillToAddressLine2, String invoiceBillToAddressLine3, String invoiceBillToAddressCityName, String invoiceBillToAddressStateCode, String invoiceBillToAddressPostalCode, String invoiceBillToAddressCountryCode, String invoiceBillToAddressCountryName,
293            String invoiceRemitToAddressName, String invoiceRemitToAddressType, String invoiceRemitToAddressLine1, String invoiceRemitToAddressLine2, String invoiceRemitToAddressLine3, String invoiceRemitToAddressCityName, String invoiceRemitToAddressStateCode, String invoiceRemitToAddressPostalCode, String invoiceRemitToAddressCountryCode, String invoiceRemitToAddressCountryName,
294            String invoiceCustomerNumber, String invoicePurchaseOrderNumber, Integer purchaseOrderIdentifier, String purchaseOrderDeliveryCampusCode, String invoiceItemSubTotalCurrencyCode, String invoiceItemSpecialHandlingCurrencyCode,
295            String invoiceItemSpecialHandlingDescription, String invoiceItemShippingCurrencyCode, String invoiceItemShippingDescription, String invoiceItemTaxCurrencyCode, String invoiceItemTaxDescription, String invoiceItemGrossCurrencyCode, String invoiceItemDiscountCurrencyCode, String invoiceItemNetCurrencyCode,
296            BigDecimal invoiceItemSubTotalAmount, BigDecimal invoiceItemSpecialHandlingAmount, BigDecimal invoiceItemShippingAmount, BigDecimal invoiceItemTaxAmount, BigDecimal invoiceItemGrossAmount, BigDecimal invoiceItemDiscountAmount, BigDecimal invoiceItemNetAmount,
297            ElectronicInvoiceRejectItemFixture[] invoiceRejectItemFixtures,
298            ElectronicInvoiceRejectReasonFixture[] invoiceRejectReasonFixtures) {
299
300        this.invoiceProcessTimestamp = invoiceProcessTimestamp;
301        this.invoiceFileHeaderTypeIndicator = invoiceFileHeaderTypeIndicator;
302        this.invoiceFileInformationOnlyIndicator = invoiceFileInformationOnlyIndicator;
303        this.invoiceFileTaxInLineIndicator = invoiceFileTaxInLineIndicator;
304        this.invoiceFileSpecialHandlingInLineIndicator = invoiceFileSpecialHandlingInLineIndicator;
305        this.invoiceFileShippingInLineIndicator = invoiceFileShippingInLineIndicator;
306        this.invoiceFileDiscountInLineIndicator = invoiceFileDiscountInLineIndicator;
307
308        this.invoiceFileName = invoiceFileName;
309        this.vendorDunsNumber = vendorDunsNumber;
310        this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
311        this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier;
312        this.invoiceFileDate= invoiceFileDate;
313        this.invoiceFileNumber = invoiceFileNumber;
314        this.invoiceFilePurposeIdentifier = invoiceFilePurposeIdentifier;
315        this.invoiceFileOperationIdentifier = invoiceFileOperationIdentifier;
316        this.invoiceFileDeploymentModeValue = invoiceFileDeploymentModeValue;
317        this.invoiceOrderReferenceOrderIdentifier = invoiceOrderReferenceOrderIdentifier;
318        this.invoiceOrderReferenceDocumentReferencePayloadIdentifier = invoiceOrderReferenceDocumentReferencePayloadIdentifier;
319        this.invoiceOrderReferenceDocumentReferenceText = invoiceOrderReferenceDocumentReferenceText;
320        this.invoiceOrderMasterAgreementReferenceIdentifier = invoiceOrderMasterAgreementReferenceIdentifier;
321        this.invoiceOrderMasterAgreementReferenceDate = invoiceOrderMasterAgreementReferenceDate;
322        this.invoiceOrderMasterAgreementInformationIdentifier = invoiceOrderMasterAgreementInformationIdentifier;
323        this.invoiceOrderMasterAgreementInformationDate = invoiceOrderMasterAgreementInformationDate;
324        this.invoiceOrderPurchaseOrderIdentifier = invoiceOrderPurchaseOrderIdentifier;
325        this.invoiceOrderPurchaseOrderDate = invoiceOrderPurchaseOrderDate;
326        this.invoiceOrderSupplierOrderInformationIdentifier = invoiceOrderSupplierOrderInformationIdentifier;
327        this.invoiceShipDate = invoiceShipDate;
328        this.invoiceShipToAddressName = invoiceShipToAddressName;
329        this.invoiceShipToAddressType = invoiceShipToAddressType;
330        this.invoiceShipToAddressLine1 = invoiceShipToAddressLine1;
331        this.invoiceShipToAddressLine2 = invoiceShipToAddressLine2;
332        this.invoiceShipToAddressLine3 = invoiceShipToAddressLine3;
333        this.invoiceShipToAddressCityName = invoiceShipToAddressCityName;
334        this.invoiceShipToAddressStateCode = invoiceShipToAddressStateCode;
335        this.invoiceShipToAddressPostalCode = invoiceShipToAddressPostalCode;
336        this.invoiceShipToAddressCountryCode = invoiceShipToAddressCountryCode;
337        this.invoiceShipToAddressCountryName = invoiceShipToAddressCountryName;
338        this.invoiceBillToAddressName = invoiceBillToAddressName;
339        this.invoiceBillToAddressType = invoiceBillToAddressType;
340        this.invoiceBillToAddressLine1 = invoiceBillToAddressLine1;
341        this.invoiceBillToAddressLine2 = invoiceBillToAddressLine2;
342        this.invoiceBillToAddressLine3 = invoiceBillToAddressLine3;
343        this.invoiceBillToAddressCityName = invoiceBillToAddressCityName;
344        this.invoiceBillToAddressStateCode = invoiceBillToAddressStateCode;
345        this.invoiceBillToAddressPostalCode = invoiceBillToAddressPostalCode;
346        this.invoiceBillToAddressCountryCode = invoiceBillToAddressCountryCode;
347        this.invoiceBillToAddressCountryName = invoiceBillToAddressCountryName;
348        this.invoiceRemitToAddressName = invoiceRemitToAddressName;
349        this.invoiceRemitToAddressType = invoiceRemitToAddressType;
350        this.invoiceRemitToAddressLine1 = invoiceRemitToAddressLine1;
351        this.invoiceRemitToAddressLine2 = invoiceRemitToAddressLine2;
352        this.invoiceRemitToAddressLine3 = invoiceRemitToAddressLine3;
353        this.invoiceRemitToAddressCityName = invoiceRemitToAddressCityName;
354        this.invoiceRemitToAddressStateCode = invoiceRemitToAddressStateCode;
355        this.invoiceRemitToAddressPostalCode = invoiceRemitToAddressPostalCode;
356        this.invoiceRemitToAddressCountryCode = invoiceRemitToAddressCountryCode;
357        this.invoiceRemitToAddressCountryName = invoiceRemitToAddressCountryName;
358
359        this.invoiceCustomerNumber = invoiceCustomerNumber;
360        this.invoicePurchaseOrderNumber = invoicePurchaseOrderNumber;
361        this.purchaseOrderIdentifier = purchaseOrderIdentifier;
362        this.purchaseOrderDeliveryCampusCode = purchaseOrderDeliveryCampusCode;
363
364        this.invoiceItemSubTotalCurrencyCode = invoiceItemSubTotalCurrencyCode;
365        this.invoiceItemSpecialHandlingCurrencyCode = invoiceItemSpecialHandlingCurrencyCode;
366        this.invoiceItemSpecialHandlingDescription = invoiceItemSpecialHandlingDescription;
367        this.invoiceItemShippingCurrencyCode = invoiceItemShippingCurrencyCode;
368        this.invoiceItemShippingDescription = invoiceItemShippingDescription;
369        this.invoiceItemTaxCurrencyCode = invoiceItemTaxCurrencyCode;
370        this.invoiceItemTaxDescription = invoiceItemTaxDescription;
371        this.invoiceItemGrossCurrencyCode = invoiceItemGrossCurrencyCode;
372        this.invoiceItemDiscountCurrencyCode = invoiceItemDiscountCurrencyCode;
373        this.invoiceItemNetCurrencyCode = invoiceItemNetCurrencyCode;
374
375        this.invoiceItemSubTotalAmount = invoiceItemSubTotalAmount;
376        this.invoiceItemSpecialHandlingAmount = invoiceItemSpecialHandlingAmount;
377        this.invoiceItemShippingAmount = invoiceItemShippingAmount;
378        this.invoiceItemTaxAmount = invoiceItemTaxAmount;
379        this.invoiceItemGrossAmount = invoiceItemGrossAmount;
380        this.invoiceItemDiscountAmount = invoiceItemDiscountAmount;
381        this.invoiceItemNetAmount = invoiceItemNetAmount;
382        
383        this.invoiceRejectItemFixtures = invoiceRejectItemFixtures;
384        this.invoiceRejectReasonFixtures = invoiceRejectReasonFixtures;
385    }
386
387    public ElectronicInvoiceRejectDocument createElectronicInvoiceRejectDocument(ElectronicInvoiceLoadSummary eils) {
388        ElectronicInvoiceRejectDocument doc = null;
389        try {
390            doc = (ElectronicInvoiceRejectDocument) DocumentTestUtils.createDocument(SpringContext.getBean(DocumentService.class), ElectronicInvoiceRejectDocument.class);
391        }
392        catch (WorkflowException e) {
393            throw new RuntimeException("Document creation failed.");
394        }
395        
396        doc.setInvoiceProcessTimestamp(invoiceProcessTimestamp);
397        doc.setInvoiceFileHeaderTypeIndicator(invoiceFileHeaderTypeIndicator);
398        doc.setInvoiceFileInformationOnlyIndicator(invoiceFileInformationOnlyIndicator);
399        doc.setInvoiceFileTaxInLineIndicator(invoiceFileTaxInLineIndicator);
400        doc.setInvoiceFileSpecialHandlingInLineIndicator(invoiceFileSpecialHandlingInLineIndicator);
401        doc.setInvoiceFileShippingInLineIndicator(invoiceFileShippingInLineIndicator);
402        doc.setInvoiceFileDiscountInLineIndicator(invoiceFileDiscountInLineIndicator);
403        
404        doc.setInvoiceFileName(invoiceFileName);
405        doc.setInvoiceFileNumber(invoiceFileNumber);
406        doc.setVendorDunsNumber(vendorDunsNumber);
407        doc.setVendorHeaderGeneratedIdentifier(vendorHeaderGeneratedIdentifier);
408        doc.setVendorDetailAssignedIdentifier(vendorDetailAssignedIdentifier);
409        doc.setInvoiceFileDate(invoiceFileDate);
410        doc.setInvoiceFilePurposeIdentifier(invoiceFilePurposeIdentifier);
411        doc.setInvoiceFileOperationIdentifier(invoiceFileOperationIdentifier);
412        doc.setInvoiceFileDeploymentModeValue(invoiceFileDeploymentModeValue);
413        doc.setInvoiceOrderReferenceOrderIdentifier(invoiceOrderReferenceOrderIdentifier);
414        doc.setInvoiceOrderReferenceDocumentReferencePayloadIdentifier(invoiceOrderReferenceDocumentReferencePayloadIdentifier);
415        doc.setInvoiceOrderReferenceDocumentReferenceText(invoiceOrderReferenceDocumentReferenceText);
416        doc.setInvoiceOrderMasterAgreementReferenceIdentifier(invoiceOrderMasterAgreementReferenceIdentifier);
417        doc.setInvoiceOrderMasterAgreementReferenceDate(invoiceOrderMasterAgreementReferenceDate);
418        doc.setInvoiceOrderMasterAgreementInformationIdentifier(invoiceOrderMasterAgreementInformationIdentifier);
419        doc.setInvoiceOrderMasterAgreementInformationDate(invoiceOrderMasterAgreementInformationDate);
420        doc.setInvoiceOrderPurchaseOrderIdentifier(invoiceOrderPurchaseOrderIdentifier);
421        doc.setInvoiceOrderPurchaseOrderDate(invoiceOrderPurchaseOrderDate);
422        doc.setInvoiceOrderSupplierOrderInformationIdentifier(invoiceOrderSupplierOrderInformationIdentifier);
423        doc.setInvoiceShipDate(invoiceShipDate);
424        doc.setInvoiceShipToAddressName(invoiceShipToAddressName);
425        doc.setInvoiceShipToAddressType(invoiceShipToAddressType);
426        doc.setInvoiceShipToAddressLine1(invoiceShipToAddressLine1);
427        doc.setInvoiceShipToAddressLine2(invoiceShipToAddressLine2);
428        doc.setInvoiceShipToAddressLine2(invoiceShipToAddressLine3);
429        doc.setInvoiceShipToAddressCityName(invoiceShipToAddressCityName);
430        doc.setInvoiceShipToAddressStateCode(invoiceShipToAddressStateCode);
431        doc.setInvoiceShipToAddressPostalCode(invoiceShipToAddressPostalCode);
432        doc.setInvoiceShipToAddressCountryCode(invoiceShipToAddressCountryCode);
433        doc.setInvoiceShipToAddressCountryName(invoiceShipToAddressCountryName);
434        doc.setInvoiceBillToAddressName(invoiceBillToAddressName);
435        doc.setInvoiceBillToAddressType(invoiceBillToAddressType);
436        doc.setInvoiceBillToAddressLine1(invoiceBillToAddressLine1);
437        doc.setInvoiceBillToAddressLine2(invoiceBillToAddressLine2);
438        doc.setInvoiceBillToAddressLine2(invoiceBillToAddressLine3);
439        doc.setInvoiceBillToAddressCityName(invoiceBillToAddressCityName);
440        doc.setInvoiceBillToAddressStateCode(invoiceBillToAddressStateCode);
441        doc.setInvoiceBillToAddressPostalCode(invoiceBillToAddressPostalCode);
442        doc.setInvoiceBillToAddressCountryCode(invoiceBillToAddressCountryCode);
443        doc.setInvoiceBillToAddressCountryName(invoiceBillToAddressCountryName);
444        doc.setInvoiceRemitToAddressName(invoiceRemitToAddressName);
445        doc.setInvoiceRemitToAddressType(invoiceRemitToAddressType);
446        doc.setInvoiceRemitToAddressLine1(invoiceRemitToAddressLine1);
447        doc.setInvoiceRemitToAddressLine2(invoiceRemitToAddressLine2);
448        doc.setInvoiceRemitToAddressLine2(invoiceRemitToAddressLine3);
449        doc.setInvoiceRemitToAddressCityName(invoiceRemitToAddressCityName);
450        doc.setInvoiceRemitToAddressStateCode(invoiceRemitToAddressStateCode);
451        doc.setInvoiceRemitToAddressPostalCode(invoiceRemitToAddressPostalCode);
452        doc.setInvoiceRemitToAddressCountryCode(invoiceRemitToAddressCountryCode);
453        doc.setInvoiceRemitToAddressCountryName(invoiceRemitToAddressCountryName);
454        
455        doc.setInvoiceCustomerNumber(invoiceCustomerNumber);
456        doc.setInvoicePurchaseOrderNumber(invoicePurchaseOrderNumber);
457        doc.setPurchaseOrderIdentifier(purchaseOrderIdentifier);
458        doc.setPurchaseOrderDeliveryCampusCode(purchaseOrderDeliveryCampusCode);
459        
460        doc.setInvoiceItemSubTotalCurrencyCode(invoiceItemSubTotalCurrencyCode);
461        doc.setInvoiceItemSpecialHandlingCurrencyCode(invoiceItemSpecialHandlingCurrencyCode);
462        doc.setInvoiceItemSpecialHandlingDescription(invoiceItemSpecialHandlingDescription);
463        doc.setInvoiceItemShippingCurrencyCode(invoiceItemShippingCurrencyCode);
464        doc.setInvoiceItemShippingDescription(invoiceItemShippingDescription);
465        doc.setInvoiceItemTaxCurrencyCode(invoiceItemTaxCurrencyCode);
466        doc.setInvoiceItemTaxDescription(invoiceItemTaxDescription);
467        doc.setInvoiceItemGrossCurrencyCode(invoiceItemGrossCurrencyCode);
468        doc.setInvoiceItemDiscountCurrencyCode(invoiceItemDiscountCurrencyCode);
469        doc.setInvoiceItemNetCurrencyCode(invoiceItemNetCurrencyCode);
470
471        doc.setInvoiceItemSubTotalAmount(invoiceItemSubTotalAmount);
472        doc.setInvoiceItemSpecialHandlingAmount(invoiceItemSpecialHandlingAmount);
473        doc.setInvoiceItemShippingAmount(invoiceItemShippingAmount);
474        doc.setInvoiceItemTaxAmount(invoiceItemTaxAmount);
475        doc.setInvoiceItemGrossAmount(invoiceItemGrossAmount);
476        doc.setInvoiceItemDiscountAmount(invoiceItemDiscountAmount);
477        doc.setInvoiceItemNetAmount(invoiceItemNetAmount);
478
479        doc.setInvoiceLoadSummary(eils);
480        for (ElectronicInvoiceRejectItemFixture invoiceRejectItemFixture : invoiceRejectItemFixtures) {
481            invoiceRejectItemFixture.addTo(doc);
482        }
483        for (ElectronicInvoiceRejectReasonFixture invoiceRejectReasonFixture : invoiceRejectReasonFixtures) {
484            invoiceRejectReasonFixture.addTo(doc);
485        }
486        
487        return doc;
488    }
489
490}