1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
35
36 public enum PurchaseOrderDocumentFixture {
37
38
39
40 PO_ONLY_REQUIRED_FIELDS(
41 PO.CREATE_DATE,
42 PO.REQ_ID,
43 "LPRC",
44 null,
45 null,
46 null,
47 null,
48 null,
49 null,
50 null,
51 null,
52 null,
53 null,
54 null,
55 null,
56 false,
57 null,
58 null,
59 null,
60 null,
61 null,
62 null,
63 null,
64 true,
65 false,
66 null,
67 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
68 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
69 new PurchaseOrderItemFixture[] {
70 PurchaseOrderItemFixture.PO_QTY_UNRESTRICTED_ITEM_1 }
71 ),
72 PO_ONLY_REQUIRED_FIELDS_MULTI_ITEMS(
73 PO.CREATE_DATE,
74 PO.REQ_ID,
75 "LPRC",
76 null,
77 null,
78 null,
79 null,
80 null,
81 null,
82 null,
83 null,
84 null,
85 null,
86 null,
87 null,
88 false,
89 null,
90 null,
91 null,
92 null,
93 null,
94 null,
95 null,
96 true,
97 false,
98 null,
99 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
100 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
101 new PurchaseOrderItemFixture[] {
102 PurchaseOrderItemFixture.PO_QTY_UNRESTRICTED_ITEM_1,
103 PurchaseOrderItemFixture.PO_QTY_UNRESTRICTED_ITEM_2 }
104 ),
105 PO_WITH_VENDOR_CONTRACT(
106 PO.CREATE_DATE,
107 PO.REQ_ID,
108 "LPRC",
109 null,
110 null,
111 null,
112 null,
113 null,
114 null,
115 null,
116 null,
117 null,
118 null,
119 null,
120 null,
121 false,
122 null,
123 null,
124 null,
125 null,
126 null,
127 null,
128 null,
129 true,
130 false,
131 null,
132 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
133 PurchasingDocumentFixture.PO_WITH_VENDOR_CONTRACT,
134 new PurchaseOrderItemFixture[] {
135 PurchaseOrderItemFixture.PO_QTY_UNRESTRICTED_ITEM_1}
136 ),
137 PO_APPROVAL_REQUIRED(PO.CREATE_DATE,
138 PO.REQ_ID,
139 "LPRC",
140 null,
141 null,
142 null,
143 null,
144 null,
145 null,
146 null,
147 null,
148 null,
149 null,
150 null,
151 null,
152 false,
153 null,
154 null,
155 null,
156 null,
157 null,
158 null,
159 null,
160 true,
161 false,
162 null,
163 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
164 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2,
165 new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 }
166 ),
167 CLOSE_PO_WITH_PREQ(PO.CREATE_DATE,
168 PO.REQ_ID,
169 "LPRC",
170 null,
171 null,
172 null,
173 null,
174 null,
175 null,
176 null,
177 null,
178 null,
179 null,
180 null,
181 null,
182 false,
183 null,
184 null,
185 null,
186 null,
187 null,
188 null,
189 null,
190 true,
191 false,
192 null,
193 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
194 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2,
195 new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 }
196 ),
197 REOPEN_PO_WITH_PREQ(PO.CREATE_DATE,
198 PO.REQ_ID,
199 "LPRC",
200 null,
201 null,
202 null,
203 null,
204 null,
205 null,
206 null,
207 null,
208 null,
209 null,
210 null,
211 null,
212 false,
213 null,
214 null,
215 null,
216 null,
217 null,
218 null,
219 null,
220 true,
221 false,
222 null,
223 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
224 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2,
225 new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 }
226 ),
227 REQUEST_CANCEL_PREQ(PO.CREATE_DATE,
228 PO.REQ_ID,
229 "LPRC",
230 null,
231 null,
232 null,
233 null,
234 null,
235 null,
236 null,
237 null,
238 null,
239 null,
240 null,
241 null,
242 false,
243 null,
244 null,
245 null,
246 null,
247 null,
248 null,
249 null,
250 true,
251 false,
252 null,
253 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
254 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2,
255 new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 }
256 ),
257 REQUEST_HOLD_PREQ(PO.CREATE_DATE,
258 PO.REQ_ID,
259 "LPRC",
260 null,
261 null,
262 null,
263 null,
264 null,
265 null,
266 null,
267 null,
268 null,
269 null,
270 null,
271 null,
272 false,
273 null,
274 null,
275 null,
276 null,
277 null,
278 null,
279 null,
280 true,
281 false,
282 null,
283 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
284 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS_2,
285 new PurchaseOrderItemFixture[] { PurchaseOrderItemFixture.PO_QTY_APO_ITEM_1 }
286 ),
287 PO_FOR_THRESHOLD_CHECK(
288 PO.CREATE_DATE,
289 PO.REQ_ID,
290 "LPRC",
291 null,
292 null,
293 null,
294 null,
295 null,
296 null,
297 null,
298 null,
299 null,
300 null,
301 null,
302 null,
303 false,
304 null,
305 null,
306 null,
307 null,
308 null,
309 null,
310 null,
311 true,
312 false,
313 null,
314 PurchasingAccountsPayableDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
315 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
316 new PurchaseOrderItemFixture[] {
317 PurchaseOrderItemFixture.PO_ITEM_THRESHOLD_CHECK }
318 ),
319 EINVOICE_PO(
320 PO.CREATE_DATE,
321 PO.REQ_ID,
322 "LPRC",
323 null,
324 null,
325 null,
326 null,
327 null,
328 null,
329 null,
330 null,
331 null,
332 null,
333 null,
334 null,
335 false,
336 null,
337 null,
338 null,
339 null,
340 null,
341 null,
342 null,
343 true,
344 false,
345 null,
346 PurchasingAccountsPayableDocumentFixture.EINVOICE_PO,
347 PurchasingDocumentFixture.PO_ONLY_REQUIRED_FIELDS,
348 new PurchaseOrderItemFixture[] {
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
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
421
422
423
424 public PurchaseOrderDocument createPurchaseOrderDocument() {
425 PurchaseOrderDocument doc = purchasingDocumentFixture.createPurchaseOrderDocument(purapDocumentFixture);
426 doc.setAccountDistributionMethod(PurapConstants.AccountDistributionMethodCodes.PROPORTIONAL_CODE);
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
459
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 }