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  
23  import org.kuali.kfs.module.purap.document.LineItemReceivingDocument;
24  import org.kuali.kfs.sys.DocumentTestUtils;
25  import org.kuali.kfs.sys.context.SpringContext;
26  import org.kuali.rice.kew.api.exception.WorkflowException;
27  import org.kuali.rice.krad.service.DocumentService;
28  
29  public enum LineItemReceivingDocumentFixture {
30  
31      // Receiving Line FIXTURES
32      EMPTY_LINE_ITEM_RECEIVING(
33              null,//carrierCode
34              "",//shipmentPackingSlipNumber,
35              "",//shipmentReferenceNumber,
36              "",//shipmentBillOfLadingNumber,
37              new Date(108, 7, 11),//shipmentReceivedDate,
38              new Integer(0),//vendorHeaderGeneratedIdentifier,
39              new Integer(0),//vendorDetailAssignedIdentifier,
40              "",//vendorName,
41              "",//vendorLine1Address,
42              "",//vendorLine2Address,
43              "",//vendorCityName,
44              "",//vendorStateCode,
45              "",//vendorPostalCode,
46              "",//vendorCountryCode,
47              "",//deliveryCampusCode,
48              "",//deliveryBuildingCode,
49              "",//deliveryBuildingName,
50              "",//deliveryBuildingRoomNumber,
51              "",//deliveryBuildingLine1Address,
52              "",//deliveryBuildingLine2Address,
53              "",//deliveryCityName,
54              "",//deliveryStateCode,
55              "",//deliveryPostalCode,
56              "",//deliveryCountryCode,
57              "",//deliveryToName,
58              "",//deliveryToEmailAddress,
59              "",//deliveryToPhoneNumber,
60              new Date(108, 7, 11),//deliveryRequiredDate,
61              "",//deliveryInstructionText,
62              null,//deliveryRequiredDateReasonCode,    
63              new Integer(0),//alternateVendorHeaderGeneratedIdentifier,
64              new Integer(0),//alternateVendorDetailAssignedIdentifier,
65              "",//alternateVendorName,        
66              false,//deliveryBuildingOther,
67              null,//vendorNumber,
68              new Integer(0),//vendorAddressGeneratedIdentifier,
69              null,//alternateVendorNumber
70              new Integer(0),//purchaseOrderIdentifier
71              new LineItemReceivingItemFixture[] {} //lineItemReceivingItemFixtures
72          ),    
73      REQUIRED_FIELDS(
74          null,//carrierCode
75          "",//shipmentPackingSlipNumber,
76          "",//shipmentReferenceNumber,
77          "",//shipmentBillOfLadingNumber,
78          new Date(108, 7, 11),//shipmentReceivedDate,
79          new Integer(1000),//vendorHeaderGeneratedIdentifier,
80          new Integer(0),//vendorDetailAssignedIdentifier,
81          "ABC CLEANING SERVICES",//vendorName,
82          "123456 BROAD ST",//vendorLine1Address,
83          "",//vendorLine2Address,
84          "TRUMANSBURG",//vendorCityName,
85          "NY",//vendorStateCode,
86          "14886",//vendorPostalCode,
87          "US",//vendorCountryCode,
88          "BL",//deliveryCampusCode,
89          "",//deliveryBuildingCode,
90          "Law",//deliveryBuildingName,
91          "1324",//deliveryBuildingRoomNumber,
92          "211 S Indiana Ave",//deliveryBuildingLine1Address,
93          "",//deliveryBuildingLine2Address,
94          "Bloomington",//deliveryCityName,
95          "IN",//deliveryStateCode,
96          "47405-7001",//deliveryPostalCode,
97          "",//deliveryCountryCode,
98          "ABEYTA,JULIANNE Z",//deliveryToName,
99          "",//deliveryToEmailAddress,
100         "",//deliveryToPhoneNumber,
101         new Date(108, 7, 11),//deliveryRequiredDate,
102         "",//deliveryInstructionText,
103         "",//deliveryRequiredDateReasonCode,    
104         new Integer(0),//alternateVendorHeaderGeneratedIdentifier,
105         new Integer(0),//alternateVendorDetailAssignedIdentifier,
106         "",//alternateVendorName,        
107         false,//deliveryBuildingOther,
108         "1000-0",//vendorNumber,
109         new Integer(1000),//vendorAddressGeneratedIdentifier,
110         null,//alternateVendorNumber
111         new Integer(0),//purchaseOrderIdentifier
112         new LineItemReceivingItemFixture[] { //lineItemReceivingItemFixtures
113             LineItemReceivingItemFixture.NORMAL_ITEM_1 }
114     );
115                         
116     public String carrierCode;
117     public String shipmentPackingSlipNumber;
118     public String shipmentReferenceNumber;
119     public String shipmentBillOfLadingNumber;
120     public Date shipmentReceivedDate;
121     public Integer vendorHeaderGeneratedIdentifier;
122     public Integer vendorDetailAssignedIdentifier;
123     public String vendorName;
124     public String vendorLine1Address;
125     public String vendorLine2Address;
126     public String vendorCityName;
127     public String vendorStateCode;
128     public String vendorPostalCode;
129     public String vendorCountryCode;
130     public String deliveryCampusCode;
131     public String deliveryBuildingCode;
132     public String deliveryBuildingName;
133     public String deliveryBuildingRoomNumber;
134     public String deliveryBuildingLine1Address;
135     public String deliveryBuildingLine2Address;
136     public String deliveryCityName;
137     public String deliveryStateCode;
138     public String deliveryPostalCode;
139     public String deliveryCountryCode;
140     public String deliveryToName;
141     public String deliveryToEmailAddress;
142     public String deliveryToPhoneNumber;
143     public Date deliveryRequiredDate;
144     public String deliveryInstructionText;
145     public String deliveryRequiredDateReasonCode;
146     private Integer purchaseOrderIdentifier;
147     
148     public Integer alternateVendorHeaderGeneratedIdentifier;
149     public Integer alternateVendorDetailAssignedIdentifier;
150     public String alternateVendorName;
151     
152     //not persisted in db
153     public boolean deliveryBuildingOtherIndicator;
154     public String vendorNumber;
155     public Integer vendorAddressGeneratedIdentifier;
156     public String alternateVendorNumber;
157 
158     private LineItemReceivingItemFixture[] lineItemReceivingItemFixtures;
159 
160     private LineItemReceivingDocumentFixture(    
161             String carrierCode, String shipmentPackingSlipNumber, String shipmentReferenceNumber, String shipmentBillOfLadingNumber, Date shipmentReceivedDate,
162             Integer vendorHeaderGeneratedIdentifier, Integer vendorDetailAssignedIdentifier, String vendorName, String vendorLine1Address,
163             String vendorLine2Address, String vendorCityName, String vendorStateCode, String vendorPostalCode, String vendorCountryCode,
164             String deliveryCampusCode, String deliveryBuildingCode, String deliveryBuildingName, String deliveryBuildingRoomNumber,
165             String deliveryBuildingLine1Address, String deliveryBuildingLine2Address, String deliveryCityName, String deliveryStateCode,
166             String deliveryPostalCode, String deliveryCountryCode, String deliveryToName, String deliveryToEmailAddress, String deliveryToPhoneNumber,
167             Date deliveryRequiredDate, String deliveryInstructionText, String deliveryRequiredDateReasonCode,       
168             Integer alternateVendorHeaderGeneratedIdentifier, Integer alternateVendorDetailAssignedIdentifier,
169             String alternateVendorName, boolean deliveryBuildingOther, String vendorNumber, Integer vendorAddressGeneratedIdentifier, String alternateVendorNumber,
170             Integer purchaseOrderIdentifier, LineItemReceivingItemFixture[] lineItemReceivingItemFixtures) {
171 
172         this.carrierCode = carrierCode;
173         this.shipmentPackingSlipNumber = shipmentPackingSlipNumber;
174         this.shipmentReferenceNumber = shipmentReferenceNumber;
175         this.shipmentBillOfLadingNumber = shipmentBillOfLadingNumber;
176         this.shipmentReceivedDate = shipmentReceivedDate;
177         this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
178         this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier;
179         this.vendorName = vendorName;
180         this.vendorLine1Address = vendorLine1Address;
181         this.vendorLine2Address = vendorLine2Address;
182         this.vendorCityName = vendorCityName;
183         this.vendorStateCode = vendorStateCode;
184         this.vendorPostalCode = vendorPostalCode;
185         this.vendorCountryCode = vendorCountryCode;
186         this.deliveryCampusCode = deliveryCampusCode;
187         this.deliveryBuildingCode = deliveryBuildingCode;
188         this.deliveryBuildingName = deliveryBuildingName;
189         this.deliveryBuildingRoomNumber = deliveryBuildingRoomNumber;
190         this.deliveryBuildingLine1Address = deliveryBuildingLine1Address;
191         this.deliveryBuildingLine2Address = deliveryBuildingLine2Address;
192         this.deliveryCityName = deliveryCityName;
193         this.deliveryStateCode = deliveryStateCode;
194         this.deliveryPostalCode = deliveryPostalCode;
195         this.deliveryCountryCode = deliveryCountryCode;
196         this.deliveryToName = deliveryToName;
197         this.deliveryToEmailAddress = deliveryToEmailAddress;
198         this.deliveryToPhoneNumber = deliveryToPhoneNumber;
199         this.deliveryRequiredDate = deliveryRequiredDate;
200         this.deliveryInstructionText = deliveryInstructionText;
201         this.deliveryRequiredDateReasonCode = deliveryRequiredDateReasonCode;
202         this.alternateVendorHeaderGeneratedIdentifier = alternateVendorHeaderGeneratedIdentifier;
203         this.alternateVendorDetailAssignedIdentifier = alternateVendorDetailAssignedIdentifier;
204         this.alternateVendorName = alternateVendorName;                
205         this.deliveryBuildingOtherIndicator = deliveryBuildingOtherIndicator;
206         this.vendorNumber = vendorNumber;
207         this.vendorAddressGeneratedIdentifier = vendorAddressGeneratedIdentifier;
208         this.alternateVendorNumber = alternateVendorNumber;
209         this.purchaseOrderIdentifier = purchaseOrderIdentifier;
210         
211         this.lineItemReceivingItemFixtures = lineItemReceivingItemFixtures;
212     }
213 
214     public LineItemReceivingDocument createLineItemReceivingDocument() {
215         LineItemReceivingDocument doc = null;
216        
217         try {
218             doc = (LineItemReceivingDocument) DocumentTestUtils.createDocument(SpringContext.getBean(DocumentService.class), LineItemReceivingDocument.class);
219         }
220         catch (WorkflowException e) {
221             throw new RuntimeException("Document creation failed.");
222         }
223 
224         doc.setCarrierCode(this.carrierCode);
225         doc.setShipmentPackingSlipNumber(this.shipmentPackingSlipNumber);
226         doc.setShipmentReferenceNumber(this.shipmentReferenceNumber);
227         doc.setShipmentBillOfLadingNumber(this.shipmentBillOfLadingNumber);
228         doc.setShipmentReceivedDate(this.shipmentReceivedDate);
229         doc.setVendorHeaderGeneratedIdentifier(this.vendorHeaderGeneratedIdentifier);
230         doc.setVendorDetailAssignedIdentifier(this.vendorDetailAssignedIdentifier);
231         doc.setVendorName(this.vendorName);
232         doc.setVendorLine1Address(this.vendorLine1Address);
233         doc.setVendorLine2Address(this.vendorLine2Address);
234         doc.setVendorCityName(this.vendorCityName);
235         doc.setVendorStateCode(this.vendorStateCode);
236         doc.setVendorPostalCode(this.vendorPostalCode);
237         doc.setVendorCountryCode(this.vendorCountryCode);
238         doc.setDeliveryCampusCode(this.deliveryCampusCode);
239         doc.setDeliveryBuildingCode(this.deliveryBuildingCode);
240         doc.setDeliveryBuildingName(this.deliveryBuildingName);
241         doc.setDeliveryBuildingRoomNumber(this.deliveryBuildingRoomNumber);
242         doc.setDeliveryBuildingLine1Address(this.deliveryBuildingLine1Address);
243         doc.setDeliveryBuildingLine2Address(this.deliveryBuildingLine2Address);
244         doc.setDeliveryCityName(this.deliveryCityName);
245         doc.setDeliveryStateCode(this.deliveryStateCode);
246         doc.setDeliveryPostalCode(this.deliveryPostalCode);
247         doc.setDeliveryCountryCode(this.deliveryCountryCode);
248         doc.setDeliveryToName(this.deliveryToName);
249         doc.setDeliveryToEmailAddress(this.deliveryToEmailAddress);
250         doc.setDeliveryToPhoneNumber(this.deliveryToPhoneNumber);
251         doc.setDeliveryRequiredDate(this.deliveryRequiredDate);
252         doc.setDeliveryInstructionText(this.deliveryInstructionText);
253         doc.setDeliveryRequiredDateReasonCode(this.deliveryRequiredDateReasonCode);
254         doc.setAlternateVendorHeaderGeneratedIdentifier(this.alternateVendorHeaderGeneratedIdentifier);
255         doc.setAlternateVendorDetailAssignedIdentifier(this.alternateVendorDetailAssignedIdentifier);
256         doc.setAlternateVendorName(this.alternateVendorName);
257         doc.setDeliveryBuildingOtherIndicator(this.deliveryBuildingOtherIndicator);
258         doc.setVendorNumber(this.vendorNumber);
259         doc.setVendorAddressGeneratedIdentifier(this.vendorAddressGeneratedIdentifier);
260         doc.setAlternateVendorNumber(this.alternateVendorNumber);
261         doc.setPurchaseOrderIdentifier(this.purchaseOrderIdentifier);
262         
263         for (LineItemReceivingItemFixture lineItemReceivingItemFixture : lineItemReceivingItemFixtures) {
264             lineItemReceivingItemFixture.addTo(doc);
265         }
266 
267         return doc;
268     }
269     
270 }