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  
20  package org.kuali.kfs.module.purap.businessobject;
21  
22  import java.sql.Date;
23  import java.sql.Timestamp;
24  import java.util.HashMap;
25  import java.util.LinkedHashMap;
26  import java.util.Map;
27  
28  import org.apache.commons.lang.StringUtils;
29  import org.kuali.kfs.module.purap.document.PurchaseOrderDocument;
30  import org.kuali.kfs.sys.context.SpringContext;
31  import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
32  import org.kuali.rice.krad.service.KualiModuleService;
33  import org.kuali.rice.krad.service.ModuleService;
34  import org.kuali.rice.krad.util.ObjectUtils;
35  import org.kuali.rice.location.api.LocationConstants;
36  import org.kuali.rice.location.framework.country.CountryEbo;
37  
38  /**
39   * Purchase Order Vendor Quote Business Object.
40   */
41  public class PurchaseOrderVendorQuote extends PersistableBusinessObjectBase {
42  
43      private String documentNumber;
44      private Integer purchaseOrderVendorQuoteIdentifier;
45      private Integer vendorHeaderGeneratedIdentifier;
46      private Integer vendorDetailAssignedIdentifier;
47      private String vendorName;
48      private String vendorLine1Address;
49      private String vendorLine2Address;
50      private String vendorCityName;
51      private String vendorStateCode;
52      private String vendorPostalCode;
53      private String vendorPhoneNumber;
54      private String vendorFaxNumber;
55      private String vendorEmailAddress;
56      private String vendorAttentionName;
57      private String purchaseOrderQuoteTransmitTypeCode;
58      private Timestamp purchaseOrderQuoteTransmitTimestamp;
59      private Date purchaseOrderQuotePriceExpirationDate;
60      private String purchaseOrderQuoteStatusCode;
61      private Timestamp purchaseOrderQuoteAwardTimestamp;
62      private String purchaseOrderQuoteRankNumber;
63      private String vendorCountryCode;
64      private String vendorAddressInternationalProvinceName;
65      private boolean isTransmitPrintDisplayed = false;
66  
67      private PurchaseOrderDocument purchaseOrder;
68      private PurchaseOrderQuoteStatus purchaseOrderQuoteStatus;
69      private CountryEbo vendorCountry;
70  
71      //non-persisted variables
72      protected boolean isPdfDisplayedToUserOnce;
73      
74      /**
75       * Default constructor.
76       */
77      public PurchaseOrderVendorQuote() {
78          
79      }
80  
81      public String getDocumentNumber() {
82          return documentNumber;
83      }
84  
85      public void setDocumentNumber(String documentNumber) {
86          this.documentNumber = documentNumber;
87      }
88  
89      public Integer getPurchaseOrderVendorQuoteIdentifier() {
90          return purchaseOrderVendorQuoteIdentifier;
91      }
92  
93      /**
94       * Gets the vendorCountryCode attribute.
95       *
96       * @return Returns the vendorCountryCode.
97       */
98      public CountryEbo getVendorCountry() {
99          if ( StringUtils.isBlank(vendorCountryCode) ) {
100             vendorCountry = null;
101         } else {
102             if ( vendorCountry == null || !StringUtils.equals( vendorCountry.getCode(), vendorCountryCode) ) {
103                 ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CountryEbo.class);
104                 if ( moduleService != null ) {
105                     Map<String,Object> keys = new HashMap<String, Object>(1);
106                     keys.put(LocationConstants.PrimaryKeyConstants.CODE, vendorCountryCode);
107                     vendorCountry = moduleService.getExternalizableBusinessObject(CountryEbo.class, keys);
108                 } else {
109                     throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class.  Unable to proceed." );
110                 }
111             }
112         }
113         
114         return vendorCountry;
115     }
116     
117     public void setVendorCountry(CountryEbo vendorCountry) {
118         this.vendorCountry = vendorCountry;
119     }
120 
121     public void setPurchaseOrderVendorQuoteIdentifier(Integer purchaseOrderVendorQuoteIdentifier) {
122         this.purchaseOrderVendorQuoteIdentifier = purchaseOrderVendorQuoteIdentifier;
123     }
124 
125     public Integer getVendorHeaderGeneratedIdentifier() {
126         return vendorHeaderGeneratedIdentifier;
127     }
128 
129     public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) {
130         this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
131     }
132 
133     public Integer getVendorDetailAssignedIdentifier() {
134         return vendorDetailAssignedIdentifier;
135     }
136 
137     public void setVendorDetailAssignedIdentifier(Integer vendorDetailAssignedIdentifier) {
138         this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier;
139     }
140     
141     public String getVendorAddressInternationalProvinceName() {
142         return vendorAddressInternationalProvinceName;
143     }
144 
145     public void setVendorAddressInternationalProvinceName(String vendorAddressInternationalProvinceName) {
146         this.vendorAddressInternationalProvinceName = vendorAddressInternationalProvinceName;
147     }
148 
149     public String getVendorNumber() {
150         String vendorNumber = "";
151         if (ObjectUtils.isNotNull(this.vendorHeaderGeneratedIdentifier)) {
152             vendorNumber = this.vendorHeaderGeneratedIdentifier.toString();
153         }
154         if (ObjectUtils.isNotNull(this.vendorDetailAssignedIdentifier)) {
155             vendorNumber += "-" + this.vendorDetailAssignedIdentifier.toString();
156         }
157         return vendorNumber;
158     }
159 
160     public void setVendorNumber(String vendorNumber) {
161         // do nothing
162     }
163 
164     public String getVendorName() {
165         return vendorName;
166     }
167 
168     public void setVendorName(String vendorName) {
169         this.vendorName = vendorName;
170     }
171 
172     public String getVendorLine1Address() {
173         return vendorLine1Address;
174     }
175 
176     public void setVendorLine1Address(String vendorLine1Address) {
177         this.vendorLine1Address = vendorLine1Address;
178     }
179 
180     public String getVendorLine2Address() {
181         return vendorLine2Address;
182     }
183 
184     public void setVendorLine2Address(String vendorLine2Address) {
185         this.vendorLine2Address = vendorLine2Address;
186     }
187 
188     public String getVendorCityName() {
189         return vendorCityName;
190     }
191 
192     public void setVendorCityName(String vendorCityName) {
193         this.vendorCityName = vendorCityName;
194     }
195 
196     public String getVendorStateCode() {
197         return vendorStateCode;
198     }
199 
200     public void setVendorStateCode(String vendorStateCode) {
201         this.vendorStateCode = vendorStateCode;
202     }
203 
204     public String getVendorPostalCode() {
205         return vendorPostalCode;
206     }
207 
208     public void setVendorPostalCode(String vendorPostalCode) {
209         this.vendorPostalCode = vendorPostalCode;
210     }
211 
212     public String getVendorPhoneNumber() {
213         return vendorPhoneNumber;
214     }
215 
216     public void setVendorPhoneNumber(String vendorPhoneNumber) {
217         this.vendorPhoneNumber = vendorPhoneNumber;
218     }
219 
220     public String getVendorFaxNumber() {
221         return vendorFaxNumber;
222     }
223 
224     public void setVendorFaxNumber(String vendorFaxNumber) {
225         this.vendorFaxNumber = vendorFaxNumber;
226     }
227 
228     public String getVendorEmailAddress() {
229         return vendorEmailAddress;
230     }
231 
232     public void setVendorEmailAddress(String vendorEmailAddress) {
233         this.vendorEmailAddress = vendorEmailAddress;
234     }
235 
236     public String getVendorAttentionName() {
237         return vendorAttentionName;
238     }
239 
240     public void setVendorAttentionName(String vendorAttentionName) {
241         this.vendorAttentionName = vendorAttentionName;
242     }
243 
244     public String getPurchaseOrderQuoteTransmitTypeCode() {
245         return purchaseOrderQuoteTransmitTypeCode;
246     }
247 
248     public void setPurchaseOrderQuoteTransmitTypeCode(String purchaseOrderQuoteTransmitTypeCode) {
249         this.purchaseOrderQuoteTransmitTypeCode = purchaseOrderQuoteTransmitTypeCode;
250     }
251 
252     public Timestamp getPurchaseOrderQuoteTransmitTimestamp() {
253         return purchaseOrderQuoteTransmitTimestamp;
254     }
255 
256     public void setPurchaseOrderQuoteTransmitTimestamp(Timestamp purchaseOrderQuoteTransmitTimestamp) {
257         this.purchaseOrderQuoteTransmitTimestamp = purchaseOrderQuoteTransmitTimestamp;
258     }
259 
260     public Date getPurchaseOrderQuotePriceExpirationDate() {
261         return purchaseOrderQuotePriceExpirationDate;
262     }
263 
264     public void setPurchaseOrderQuotePriceExpirationDate(Date purchaseOrderQuotePriceExpirationDate) {
265         this.purchaseOrderQuotePriceExpirationDate = purchaseOrderQuotePriceExpirationDate;
266     }
267 
268     public String getPurchaseOrderQuoteStatusCode() {
269         return purchaseOrderQuoteStatusCode;
270     }
271 
272     public void setPurchaseOrderQuoteStatusCode(String purchaseOrderQuoteStatusCode) {
273         this.purchaseOrderQuoteStatusCode = purchaseOrderQuoteStatusCode;
274     }
275 
276     public Timestamp getPurchaseOrderQuoteAwardTimestamp() {
277         return purchaseOrderQuoteAwardTimestamp;
278     }
279 
280     public void setPurchaseOrderQuoteAwardTimestamp(Timestamp purchaseOrderQuoteAwardTimestamp) {
281         this.purchaseOrderQuoteAwardTimestamp = purchaseOrderQuoteAwardTimestamp;
282     }
283 
284     public String getPurchaseOrderQuoteRankNumber() {
285         return purchaseOrderQuoteRankNumber;
286     }
287 
288     public void setPurchaseOrderQuoteRankNumber(String purchaseOrderQuoteRankNumber) {
289         this.purchaseOrderQuoteRankNumber = purchaseOrderQuoteRankNumber;
290     }
291 
292     public PurchaseOrderDocument getPurchaseOrder() {
293         return purchaseOrder;
294     }
295 
296     /**
297      * Sets the purchaseOrder attribute.
298      * 
299      * @param purchaseOrder The purchaseOrder to set.
300      * @deprecated
301      */
302     public void setPurchaseOrder(PurchaseOrderDocument purchaseOrder) {
303         this.purchaseOrder = purchaseOrder;
304     }
305 
306     public PurchaseOrderQuoteStatus getPurchaseOrderQuoteStatus() {
307         return purchaseOrderQuoteStatus;
308     }
309 
310     /**
311      * Sets the purchaseOrderQuoteStatus attribute.
312      * 
313      * @param purchaseOrderQuoteStatus The purchaseOrderQuoteStatus to set.
314      * @deprecated
315      */
316     public void setPurchaseOrderQuoteStatus(PurchaseOrderQuoteStatus purchaseOrderQuoteStatus) {
317         this.purchaseOrderQuoteStatus = purchaseOrderQuoteStatus;
318     }
319 
320     public String getVendorCountryCode() {
321         return vendorCountryCode;
322     }
323 
324     public void setVendorCountryCode(String vendorCountryCode) {
325         this.vendorCountryCode = vendorCountryCode;
326     }
327 
328     public boolean isTransmitPrintDisplayed() {
329         return isTransmitPrintDisplayed;
330     }
331 
332     public void setTransmitPrintDisplayed(boolean isTransmitPrintDisplayed) {
333         this.isTransmitPrintDisplayed = isTransmitPrintDisplayed;
334     }
335 
336     /**
337      * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
338      */
339     protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
340         LinkedHashMap m = new LinkedHashMap();
341         m.put("documentNumber", this.documentNumber);
342         if (this.purchaseOrderVendorQuoteIdentifier != null) {
343             m.put("purchaseOrderVendorQuoteIdentifier", this.purchaseOrderVendorQuoteIdentifier.toString());
344         }
345         return m;
346     }
347 
348     /**
349      * Method to determine if the the pdf has already been displayed to the user
350      * one time. If false, its set to true and locks this out.
351      * 
352      * @return
353      */
354     public boolean isPdfDisplayedToUserOnce() {
355         boolean valueToReturn = isPdfDisplayedToUserOnce;
356         
357         //if not displayed, we will return false, but subsequent calls will return true.
358         if (valueToReturn == false){
359             isPdfDisplayedToUserOnce = true;
360         }
361         
362         return valueToReturn;
363     }
364 
365     public void setPdfDisplayedToUserOnce(boolean isPdfDisplayedToUserOnce) {
366         this.isPdfDisplayedToUserOnce = isPdfDisplayedToUserOnce;
367     }
368 
369 }