View Javadoc
1   /*
2    * The Kuali Financial System, a comprehensive financial management system for higher education.
3    * 
4    * Copyright 2005-2014 The Kuali Foundation
5    * 
6    * This program is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Affero General Public License as
8    * published by the Free Software Foundation, either version 3 of the
9    * License, or (at your option) any later version.
10   * 
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU Affero General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Affero General Public License
17   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.kuali.kfs.module.purap.fixture;
20  
21  import java.sql.Date;
22  import java.sql.Timestamp;
23  
24  import org.kuali.kfs.module.purap.PurapConstants;
25  import org.kuali.kfs.module.purap.document.PurchaseOrderDocument;
26  import org.kuali.kfs.module.purap.exception.PurapConfigurationException;
27  import org.kuali.kfs.module.purap.fixture.PurapTestConstants.PO;
28  import org.kuali.kfs.sys.context.SpringContext;
29  import org.kuali.kfs.vnd.businessobject.VendorDetail;
30  import org.kuali.kfs.vnd.document.service.VendorService;
31  import org.kuali.rice.core.api.util.type.KualiDecimal;
32  
33  /**
34   * Fixture class for Purchase Order Document.
35   */
36  public enum PurchaseOrderDocumentFixture {
37  
38      // TODO f2f: fix the REQ id
39      
40      PO_ONLY_REQUIRED_FIELDS(
41              PO.CREATE_DATE, // purchaseOrderCreateDate
42              PO.REQ_ID, // requisitionIdentifier
43              "LPRC", // purchaseOrderVendorChoiceCode
44              null, // recurringPaymentFrequencyCode
45              null, // recurringPaymentAmount
46              null, // recurringPaymentDate
47              null, // initialPaymentAmount
48              null, // initialPaymentDate
49              null, // finalPaymentAmount
50              null, // finalPaymentDate
51              null, // purchaseOrderInitialOpenTimestamp
52              null, // purchaseOrderLastTransmitTimestamp
53              null, // purchaseOrderQuoteDueDate
54              null, // purchaseOrderQuoteTypeCode
55              null, // purchaseOrderQuoteVendorNoteText
56              false, // purchaseOrderConfirmedIndicator
57              null, // purchaseOrderCommodityDescription
58              null, // purchaseOrderPreviousIdentifier
59              null, // alternateVendorHeaderGeneratedIdentifier
60              null, // alternateVendorDetailAssignedIdentifier
61              null, // newQuoteVendorHeaderGeneratedIdentifier
62              null, // newQuoteVendorDetailAssignedIdentifier
63              null, // alternateVendorName
64              true, // purchaseOrderCurrentIndicator
65              false, // pendingActionIndicator
66              null, // purchaseOrderFirstTransmissionTimestamp
67              PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
68              PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purchasingDocumentFixture
69              new PurchaseOrderItemFixture[] { // purchaseOrderItemMultiFixtures
70                      PurchaseOrderItemFixture.PO_QTY_UNRESTRICTED_ITEM_1 }
71      ),             
72      PO_ONLY_REQUIRED_FIELDS_MULTI_ITEMS(
73              PO.CREATE_DATE, // purchaseOrderCreateDate
74              PO.REQ_ID, // requisitionIdentifier
75              "LPRC", // purchaseOrderVendorChoiceCode
76              null, // recurringPaymentFrequencyCode
77              null, // recurringPaymentAmount
78              null, // recurringPaymentDate
79              null, // initialPaymentAmount
80              null, // initialPaymentDate
81              null, // finalPaymentAmount
82              null, // finalPaymentDate
83              null, // purchaseOrderInitialOpenTimestamp
84              null, // purchaseOrderLastTransmitTimestamp
85              null, // purchaseOrderQuoteDueDate
86              null, // purchaseOrderQuoteTypeCode
87              null, // purchaseOrderQuoteVendorNoteText
88              false, // purchaseOrderConfirmedIndicator
89              null, // purchaseOrderCommodityDescription
90              null, // purchaseOrderPreviousIdentifier
91              null, // alternateVendorHeaderGeneratedIdentifier
92              null, // alternateVendorDetailAssignedIdentifier
93              null, // newQuoteVendorHeaderGeneratedIdentifier
94              null, // newQuoteVendorDetailAssignedIdentifier
95              null, // alternateVendorName
96              true, // purchaseOrderCurrentIndicator
97              false, // pendingActionIndicator
98              null, // purchaseOrderFirstTransmissionTimestamp
99              PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
100             PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purchasingDocumentFixture
101             new PurchaseOrderItemFixture[] { // purchaseOrderItemMultiFixtures
102                     PurchaseOrderItemFixture.PO_QTY_UNRESTRICTED_ITEM_1, 
103                     PurchaseOrderItemFixture.PO_QTY_UNRESTRICTED_ITEM_2 }
104     ), 
105     PO_WITH_VENDOR_CONTRACT(
106             PO.CREATE_DATE, // purchaseOrderCreateDate
107             PO.REQ_ID, // requisitionIdentifier
108             "LPRC", // purchaseOrderVendorChoiceCode
109             null, // recurringPaymentFrequencyCode
110             null, // recurringPaymentAmount
111             null, // recurringPaymentDate
112             null, // initialPaymentAmount
113             null, // initialPaymentDate
114             null, // finalPaymentAmount
115             null, // finalPaymentDate
116             null, // purchaseOrderInitialOpenTimestamp
117             null, // purchaseOrderLastTransmitTimestamp
118             null, // purchaseOrderQuoteDueDate
119             null, // purchaseOrderQuoteTypeCode
120             null, // purchaseOrderQuoteVendorNoteText
121             false, // purchaseOrderConfirmedIndicator
122             null, // purchaseOrderCommodityDescription
123             null, // purchaseOrderPreviousIdentifier
124             null, // alternateVendorHeaderGeneratedIdentifier
125             null, // alternateVendorDetailAssignedIdentifier
126             null, // newQuoteVendorHeaderGeneratedIdentifier
127             null, // newQuoteVendorDetailAssignedIdentifier
128             null, // alternateVendorName
129             true, // purchaseOrderCurrentIndicator
130             false, // pendingActionIndicator
131             null, // purchaseOrderFirstTransmissionTimestamp
132             PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
133             PurchasingDocumentFixture.PO_WITH_VENDOR_CONTRACT, // purchasingDocumentFixture
134             new PurchaseOrderItemFixture[] { // purchaseOrderItemMultiFixtures
135                     PurchaseOrderItemFixture.PO_QTY_UNRESTRICTED_ITEM_1}
136     ),       
137     PO_APPROVAL_REQUIRED(PO.CREATE_DATE, // purchaseOrderCreateDate
138             PO.REQ_ID, // requisitionIdentifier
139             "LPRC", // purchaseOrderVendorChoiceCode
140             null, // recurringPaymentFrequencyCode
141             null, // recurringPaymentAmount
142             null, // recurringPaymentDate
143             null, // initialPaymentAmount
144             null, // initialPaymentDate
145             null, // finalPaymentAmount
146             null, // finalPaymentDate
147             null, // purchaseOrderInitialOpenTimestamp
148             null, // purchaseOrderLastTransmitTimestamp
149             null, // purchaseOrderQuoteDueDate
150             null, // purchaseOrderQuoteTypeCode
151             null, // purchaseOrderQuoteVendorNoteText
152             false, // purchaseOrderConfirmedIndicator
153             null, // purchaseOrderCommodityDescription
154             null, // purchaseOrderPreviousIdentifier
155             null, // alternateVendorHeaderGeneratedIdentifier
156             null, // alternateVendorDetailAssignedIdentifier
157             null, // newQuoteVendorHeaderGeneratedIdentifier
158             null, // newQuoteVendorDetailAssignedIdentifier
159             null, // alternateVendorName
160             true, // purchaseOrderCurrentIndicator
161             false, // pendingActionIndicator
162             null, // purchaseOrderFirstTransmissionTimestamp
163             PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
164             PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2, // purchasingDocumentFixture
165             new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 } // purchaseOrderItemMultiFixtures
166     ),
167     CLOSE_PO_WITH_PREQ(PO.CREATE_DATE, // purchaseOrderCreateDate
168             PO.REQ_ID, // requisitionIdentifier
169             "LPRC", // purchaseOrderVendorChoiceCode
170             null, // recurringPaymentFrequencyCode
171             null, // recurringPaymentAmount
172             null, // recurringPaymentDate
173             null, // initialPaymentAmount
174             null, // initialPaymentDate
175             null, // finalPaymentAmount
176             null, // finalPaymentDate
177             null, // purchaseOrderInitialOpenTimestamp
178             null, // purchaseOrderLastTransmitTimestamp
179             null, // purchaseOrderQuoteDueDate
180             null, // purchaseOrderQuoteTypeCode
181             null, // purchaseOrderQuoteVendorNoteText
182             false, // purchaseOrderConfirmedIndicator
183             null, // purchaseOrderCommodityDescription
184             null, // purchaseOrderPreviousIdentifier
185             null, // alternateVendorHeaderGeneratedIdentifier
186             null, // alternateVendorDetailAssignedIdentifier
187             null, // newQuoteVendorHeaderGeneratedIdentifier
188             null, // newQuoteVendorDetailAssignedIdentifier
189             null, // alternateVendorName
190             true, // purchaseOrderCurrentIndicator
191             false, // pendingActionIndicator
192             null, // purchaseOrderFirstTransmissionTimestamp
193             PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
194             PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2, // purchasingDocumentFixture
195             new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 } // purchaseOrderItemMultiFixtures
196     ),
197     REOPEN_PO_WITH_PREQ(PO.CREATE_DATE, // purchaseOrderCreateDate
198             PO.REQ_ID, // requisitionIdentifier
199             "LPRC", // purchaseOrderVendorChoiceCode
200             null, // recurringPaymentFrequencyCode
201             null, // recurringPaymentAmount
202             null, // recurringPaymentDate
203             null, // initialPaymentAmount
204             null, // initialPaymentDate
205             null, // finalPaymentAmount
206             null, // finalPaymentDate
207             null, // purchaseOrderInitialOpenTimestamp
208             null, // purchaseOrderLastTransmitTimestamp
209             null, // purchaseOrderQuoteDueDate
210             null, // purchaseOrderQuoteTypeCode
211             null, // purchaseOrderQuoteVendorNoteText
212             false, // purchaseOrderConfirmedIndicator
213             null, // purchaseOrderCommodityDescription
214             null, // purchaseOrderPreviousIdentifier
215             null, // alternateVendorHeaderGeneratedIdentifier
216             null, // alternateVendorDetailAssignedIdentifier
217             null, // newQuoteVendorHeaderGeneratedIdentifier
218             null, // newQuoteVendorDetailAssignedIdentifier
219             null, // alternateVendorName
220             true, // purchaseOrderCurrentIndicator
221             false, // pendingActionIndicator
222             null, // purchaseOrderFirstTransmissionTimestamp
223             PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
224             PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2, // purchasingDocumentFixture
225             new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 } // purchaseOrderItemMultiFixtures
226     ),
227     REQUEST_CANCEL_PREQ(PO.CREATE_DATE, // purchaseOrderCreateDate
228             PO.REQ_ID, // requisitionIdentifier
229             "LPRC", // purchaseOrderVendorChoiceCode
230             null, // recurringPaymentFrequencyCode
231             null, // recurringPaymentAmount
232             null, // recurringPaymentDate
233             null, // initialPaymentAmount
234             null, // initialPaymentDate
235             null, // finalPaymentAmount
236             null, // finalPaymentDate
237             null, // purchaseOrderInitialOpenTimestamp
238             null, // purchaseOrderLastTransmitTimestamp
239             null, // purchaseOrderQuoteDueDate
240             null, // purchaseOrderQuoteTypeCode
241             null, // purchaseOrderQuoteVendorNoteText
242             false, // purchaseOrderConfirmedIndicator
243             null, // purchaseOrderCommodityDescription
244             null, // purchaseOrderPreviousIdentifier
245             null, // alternateVendorHeaderGeneratedIdentifier
246             null, // alternateVendorDetailAssignedIdentifier
247             null, // newQuoteVendorHeaderGeneratedIdentifier
248             null, // newQuoteVendorDetailAssignedIdentifier
249             null, // alternateVendorName
250             true, // purchaseOrderCurrentIndicator
251             false, // pendingActionIndicator
252             null, // purchaseOrderFirstTransmissionTimestamp
253             PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
254             PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2, // purchasingDocumentFixture
255             new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 } // purchaseOrderItemMultiFixtures
256     ),
257     REQUEST_HOLD_PREQ(PO.CREATE_DATE, // purchaseOrderCreateDate
258             PO.REQ_ID, // requisitionIdentifier
259             "LPRC", // purchaseOrderVendorChoiceCode
260             null, // recurringPaymentFrequencyCode
261             null, // recurringPaymentAmount
262             null, // recurringPaymentDate
263             null, // initialPaymentAmount
264             null, // initialPaymentDate
265             null, // finalPaymentAmount
266             null, // finalPaymentDate
267             null, // purchaseOrderInitialOpenTimestamp
268             null, // purchaseOrderLastTransmitTimestamp
269             null, // purchaseOrderQuoteDueDate
270             null, // purchaseOrderQuoteTypeCode
271             null, // purchaseOrderQuoteVendorNoteText
272             false, // purchaseOrderConfirmedIndicator
273             null, // purchaseOrderCommodityDescription
274             null, // purchaseOrderPreviousIdentifier
275             null, // alternateVendorHeaderGeneratedIdentifier
276             null, // alternateVendorDetailAssignedIdentifier
277             null, // newQuoteVendorHeaderGeneratedIdentifier
278             null, // newQuoteVendorDetailAssignedIdentifier
279             null, // alternateVendorName
280             true, // purchaseOrderCurrentIndicator
281             false, // pendingActionIndicator
282             null, // purchaseOrderFirstTransmissionTimestamp
283             PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
284             PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2, // purchasingDocumentFixture
285             new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 } // purchaseOrderItemMultiFixtures
286     ),
287     PO_FOR_THRESHOLD_CHECK(
288             PO.CREATE_DATE, // purchaseOrderCreateDate
289             PO.REQ_ID, // requisitionIdentifier
290             "LPRC", // purchaseOrderVendorChoiceCode
291             null, // recurringPaymentFrequencyCode
292             null, // recurringPaymentAmount
293             null, // recurringPaymentDate
294             null, // initialPaymentAmount
295             null, // initialPaymentDate
296             null, // finalPaymentAmount
297             null, // finalPaymentDate
298             null, // purchaseOrderInitialOpenTimestamp
299             null, // purchaseOrderLastTransmitTimestamp
300             null, // purchaseOrderQuoteDueDate
301             null, // purchaseOrderQuoteTypeCode
302             null, // purchaseOrderQuoteVendorNoteText
303             false, // purchaseOrderConfirmedIndicator
304             null, // purchaseOrderCommodityDescription
305             null, // purchaseOrderPreviousIdentifier
306             null, // alternateVendorHeaderGeneratedIdentifier
307             null, // alternateVendorDetailAssignedIdentifier
308             null, // newQuoteVendorHeaderGeneratedIdentifier
309             null, // newQuoteVendorDetailAssignedIdentifier
310             null, // alternateVendorName
311             true, // purchaseOrderCurrentIndicator
312             false, // pendingActionIndicator
313             null, // purchaseOrderFirstTransmissionTimestamp
314             PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purapDocumentFixture
315             PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purchasingDocumentFixture
316             new PurchaseOrderItemFixture[] { // purchaseOrderItemMultiFixtures
317                     PurchaseOrderItemFixture.PO_ITEM_THRESHOLD_CHECK }
318     ),
319     EINVOICE_PO(
320             PO.CREATE_DATE, // purchaseOrderCreateDate
321             PO.REQ_ID, // requisitionIdentifier
322             "LPRC", // purchaseOrderVendorChoiceCode
323             null, // recurringPaymentFrequencyCode
324             null, // recurringPaymentAmount
325             null, // recurringPaymentDate
326             null, // initialPaymentAmount
327             null, // initialPaymentDate
328             null, // finalPaymentAmount
329             null, // finalPaymentDate
330             null, // purchaseOrderInitialOpenDate
331             null, // purchaseOrderLastTransmitDate
332             null, // purchaseOrderQuoteDueDate
333             null, // purchaseOrderQuoteTypeCode
334             null, // purchaseOrderQuoteVendorNoteText
335             false, // purchaseOrderConfirmedIndicator
336             null, // purchaseOrderCommodityDescription
337             null, // purchaseOrderPreviousIdentifier
338             null, // alternateVendorHeaderGeneratedIdentifier
339             null, // alternateVendorDetailAssignedIdentifier
340             null, // newQuoteVendorHeaderGeneratedIdentifier
341             null, // newQuoteVendorDetailAssignedIdentifier
342             null, // alternateVendorName
343             true, // purchaseOrderCurrentIndicator
344             false, // pendingActionIndicator
345             null, // purchaseOrderFirstTransmissionDate
346             PurchasingAccountsPayableDocumentFixture.EINVOICE_PO, // purapDocumentFixture
347             PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS, // purchasingDocumentFixture
348             new PurchaseOrderItemFixture[] { // purchaseOrderItemMultiFixtures
349                     PurchaseOrderItemFixture.EINVOICE_PO_ITEM }
350     ),
351     ;
352 
353     public final Timestamp purchaseOrderCreateDate;
354     public final Integer requisitionIdentifier;
355     public final String purchaseOrderVendorChoiceCode;
356     public final String recurringPaymentFrequencyCode;
357     public final KualiDecimal recurringPaymentAmount;
358     public final Date recurringPaymentDate;
359     public final KualiDecimal initialPaymentAmount;
360     public final Date initialPaymentDate;
361     public final KualiDecimal finalPaymentAmount;
362     public final Date finalPaymentDate;
363     public final Timestamp purchaseOrderInitialOpenTimestamp;
364     public final Timestamp purchaseOrderLastTransmitTimestamp;
365     public final Date purchaseOrderQuoteDueDate;
366     public final String purchaseOrderQuoteTypeCode;
367     public final String purchaseOrderQuoteVendorNoteText;
368     public final boolean purchaseOrderConfirmedIndicator;
369     public final String purchaseOrderCommodityDescription;
370     public final Integer purchaseOrderPreviousIdentifier;
371     public final Integer alternateVendorHeaderGeneratedIdentifier;
372     public final Integer alternateVendorDetailAssignedIdentifier;
373     public final Integer newQuoteVendorHeaderGeneratedIdentifier;
374     public final Integer newQuoteVendorDetailAssignedIdentifier;
375     public final String alternateVendorName;
376     public final boolean purchaseOrderCurrentIndicator;
377     public final boolean pendingActionIndicator;
378     public final Timestamp purchaseOrderFirstTransmissionTimestamp;
379     private PurchasingAccountsPayableDocumentFixture purapDocumentFixture;
380     private PurchasingDocumentFixture purchasingDocumentFixture;
381     private PurchaseOrderItemFixture[] purchaseOrderItemFixtures;
382 
383     /**
384      * Private Constructor.
385      */
386     private PurchaseOrderDocumentFixture(Timestamp purchaseOrderCreateDate, Integer requisitionIdentifier, String purchaseOrderVendorChoiceCode, String recurringPaymentFrequencyCode, KualiDecimal recurringPaymentAmount, Date recurringPaymentDate, KualiDecimal initialPaymentAmount, Date initialPaymentDate, KualiDecimal finalPaymentAmount, Date finalPaymentDate, Timestamp purchaseOrderInitialOpenTimestamp, Timestamp purchaseOrderLastTransmitTimestamp, Date purchaseOrderQuoteDueDate, String purchaseOrderQuoteTypeCode, String purchaseOrderQuoteVendorNoteText, boolean purchaseOrderConfirmedIndicator, String purchaseOrderCommodityDescription, Integer purchaseOrderPreviousIdentifier, Integer alternateVendorHeaderGeneratedIdentifier, Integer alternateVendorDetailAssignedIdentifier, Integer newQuoteVendorHeaderGeneratedIdentifier, Integer newQuoteVendorDetailAssignedIdentifier, String alternateVendorName, boolean purchaseOrderCurrentIndicator, boolean pendingActionIndicator, Timestamp purchaseOrderFirstTransmissionTimestamp,
387             PurchasingAccountsPayableDocumentFixture purapDocumentFixture, PurchasingDocumentFixture purchasingDocumentFixture, PurchaseOrderItemFixture[] purchaseOrderItemFixtures) {
388         this.purchaseOrderCreateDate = purchaseOrderCreateDate;
389         this.requisitionIdentifier = requisitionIdentifier;
390         this.purchaseOrderVendorChoiceCode = purchaseOrderVendorChoiceCode;
391         this.recurringPaymentFrequencyCode = recurringPaymentFrequencyCode;
392         this.recurringPaymentAmount = recurringPaymentAmount;
393         this.recurringPaymentDate = recurringPaymentDate;
394         this.initialPaymentAmount = initialPaymentAmount;
395         this.initialPaymentDate = initialPaymentDate;
396         this.finalPaymentAmount = finalPaymentAmount;
397         this.finalPaymentDate = finalPaymentDate;
398         this.purchaseOrderInitialOpenTimestamp = purchaseOrderInitialOpenTimestamp;
399         this.purchaseOrderLastTransmitTimestamp = purchaseOrderLastTransmitTimestamp;
400         this.purchaseOrderQuoteDueDate = purchaseOrderQuoteDueDate;
401         this.purchaseOrderQuoteTypeCode = purchaseOrderQuoteTypeCode;
402         this.purchaseOrderQuoteVendorNoteText = purchaseOrderQuoteVendorNoteText;
403         this.purchaseOrderConfirmedIndicator = purchaseOrderConfirmedIndicator;
404         this.purchaseOrderCommodityDescription = purchaseOrderCommodityDescription;
405         this.purchaseOrderPreviousIdentifier = purchaseOrderPreviousIdentifier;
406         this.alternateVendorHeaderGeneratedIdentifier = alternateVendorHeaderGeneratedIdentifier;
407         this.alternateVendorDetailAssignedIdentifier = alternateVendorDetailAssignedIdentifier;
408         this.newQuoteVendorHeaderGeneratedIdentifier = newQuoteVendorHeaderGeneratedIdentifier;
409         this.newQuoteVendorDetailAssignedIdentifier = newQuoteVendorDetailAssignedIdentifier;
410         this.alternateVendorName = alternateVendorName;
411         this.purchaseOrderCurrentIndicator = purchaseOrderCurrentIndicator;
412         this.pendingActionIndicator = pendingActionIndicator;
413         this.purchaseOrderFirstTransmissionTimestamp = purchaseOrderFirstTransmissionTimestamp;
414         this.purapDocumentFixture = purapDocumentFixture;
415         this.purchasingDocumentFixture = purchasingDocumentFixture;
416         this.purchaseOrderItemFixtures = purchaseOrderItemFixtures;
417     }
418 
419     /**
420      * Creates a Purchase Order Document using this Fixture.
421      * 
422      * @return the created Purchase Order Document.
423      */
424     public PurchaseOrderDocument createPurchaseOrderDocument() {
425         PurchaseOrderDocument doc = purchasingDocumentFixture.createPurchaseOrderDocument(purapDocumentFixture);
426         doc.setAccountDistributionMethod(PurapConstants.AccountDistributionMethodCodes.PROPORTIONAL_CODE); //account distribution method is sequential
427         doc.setPurchaseOrderCreateTimestamp(this.purchaseOrderCreateDate);
428         doc.setRequisitionIdentifier(this.requisitionIdentifier);
429         doc.setPurchaseOrderVendorChoiceCode(this.purchaseOrderVendorChoiceCode);
430         doc.setRecurringPaymentFrequencyCode(this.recurringPaymentFrequencyCode);
431         doc.setRecurringPaymentAmount(this.recurringPaymentAmount);
432         doc.setRecurringPaymentDate(this.recurringPaymentDate);
433         doc.setInitialPaymentAmount(this.initialPaymentAmount);
434         doc.setInitialPaymentDate(this.initialPaymentDate);
435         doc.setFinalPaymentAmount(this.finalPaymentAmount);
436         doc.setFinalPaymentDate(this.finalPaymentDate);
437         doc.setPurchaseOrderInitialOpenTimestamp(this.purchaseOrderInitialOpenTimestamp);
438         doc.setPurchaseOrderLastTransmitTimestamp(this.purchaseOrderLastTransmitTimestamp);
439         doc.setPurchaseOrderQuoteDueDate(this.purchaseOrderQuoteDueDate);
440         doc.setPurchaseOrderQuoteTypeCode(this.purchaseOrderQuoteTypeCode);
441         doc.setPurchaseOrderQuoteVendorNoteText(this.purchaseOrderQuoteVendorNoteText);
442         doc.setPurchaseOrderConfirmedIndicator(this.purchaseOrderConfirmedIndicator);
443         doc.setPurchaseOrderCommodityDescription(this.purchaseOrderCommodityDescription);
444         doc.setPurchaseOrderPreviousIdentifier(this.purchaseOrderPreviousIdentifier);
445         doc.setAlternateVendorHeaderGeneratedIdentifier(this.alternateVendorHeaderGeneratedIdentifier);
446         doc.setAlternateVendorDetailAssignedIdentifier(this.alternateVendorDetailAssignedIdentifier);
447         doc.setNewQuoteVendorHeaderGeneratedIdentifier(this.newQuoteVendorHeaderGeneratedIdentifier);
448         doc.setNewQuoteVendorDetailAssignedIdentifier(this.newQuoteVendorDetailAssignedIdentifier);
449         doc.setAlternateVendorName(this.alternateVendorName);
450         doc.setPurchaseOrderCurrentIndicator(this.purchaseOrderCurrentIndicator);
451         doc.setPendingActionIndicator(this.pendingActionIndicator);
452         doc.setPurchaseOrderFirstTransmissionTimestamp(this.purchaseOrderFirstTransmissionTimestamp);
453 
454         for (PurchaseOrderItemFixture purchaseOrderItemFixture : purchaseOrderItemFixtures) {
455             purchaseOrderItemFixture.addTo(doc);
456         }
457 
458         //If vendor header and vendor detail id are not null, fetch the vendor from
459         //vendor service and set it to this PO.
460         Integer vendorHeaderGeneratedId = doc.getVendorHeaderGeneratedIdentifier();
461         Integer vendorDetailAssignedId = doc.getVendorDetailAssignedIdentifier();
462         
463         if (vendorHeaderGeneratedId != null && vendorDetailAssignedId != null) {
464             VendorDetail vendorDetail = SpringContext.getBean(VendorService.class).getVendorDetail(vendorHeaderGeneratedId, vendorDetailAssignedId);   
465             doc.setVendorDetail(vendorDetail);
466         }
467         
468         return doc;
469     }
470 }