001    /*
002     * Copyright 2011 The Kuali Foundation.
003     * 
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     * http://www.opensource.org/licenses/ecl2.php
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    package org.kuali.kfs.module.purap.businessobject;
018    
019    import java.sql.Date;
020    import java.sql.Timestamp;
021    import java.util.LinkedHashMap;
022    
023    import org.kuali.kfs.module.purap.document.PurchaseOrderDocument;
024    import org.kuali.kfs.sys.context.SpringContext;
025    import org.kuali.rice.kns.bo.Country;
026    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
027    import org.kuali.rice.kns.service.CountryService;
028    import org.kuali.rice.kns.util.ObjectUtils;
029    
030    /**
031     * Purchase Order Vendor Quote Business Object.
032     */
033    public class PurchaseOrderVendorQuote extends PersistableBusinessObjectBase {
034    
035        private String documentNumber;
036        private Integer purchaseOrderVendorQuoteIdentifier;
037        private Integer vendorHeaderGeneratedIdentifier;
038        private Integer vendorDetailAssignedIdentifier;
039        private String vendorName;
040        private String vendorLine1Address;
041        private String vendorLine2Address;
042        private String vendorCityName;
043        private String vendorStateCode;
044        private String vendorPostalCode;
045        private String vendorPhoneNumber;
046        private String vendorFaxNumber;
047        private String vendorEmailAddress;
048        private String vendorAttentionName;
049        private String purchaseOrderQuoteTransmitTypeCode;
050        private Timestamp purchaseOrderQuoteTransmitTimestamp;
051        private Date purchaseOrderQuotePriceExpirationDate;
052        private String purchaseOrderQuoteStatusCode;
053        private Timestamp purchaseOrderQuoteAwardTimestamp;
054        private String purchaseOrderQuoteRankNumber;
055        private String vendorCountryCode;
056        private String vendorAddressInternationalProvinceName;
057        private boolean isTransmitPrintDisplayed = false;
058    
059        private PurchaseOrderDocument purchaseOrder;
060        private PurchaseOrderQuoteStatus purchaseOrderQuoteStatus;
061        private Country vendorCountry;
062    
063        //non-persisted variables
064        protected boolean isPdfDisplayedToUserOnce;
065        
066        /**
067         * Default constructor.
068         */
069        public PurchaseOrderVendorQuote() {
070            
071        }
072    
073        public String getDocumentNumber() {
074            return documentNumber;
075        }
076    
077        public void setDocumentNumber(String documentNumber) {
078            this.documentNumber = documentNumber;
079        }
080    
081        public Integer getPurchaseOrderVendorQuoteIdentifier() {
082            return purchaseOrderVendorQuoteIdentifier;
083        }
084    
085        public Country getVendorCountry() {
086            vendorCountry = SpringContext.getBean(CountryService.class).getByPrimaryIdIfNecessary(vendorCountryCode, vendorCountry);
087            return vendorCountry;
088        }
089    
090        public void setVendorCountry(Country vendorCountry) {
091            this.vendorCountry = vendorCountry;
092        }
093    
094        public void setPurchaseOrderVendorQuoteIdentifier(Integer purchaseOrderVendorQuoteIdentifier) {
095            this.purchaseOrderVendorQuoteIdentifier = purchaseOrderVendorQuoteIdentifier;
096        }
097    
098        public Integer getVendorHeaderGeneratedIdentifier() {
099            return vendorHeaderGeneratedIdentifier;
100        }
101    
102        public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) {
103            this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
104        }
105    
106        public Integer getVendorDetailAssignedIdentifier() {
107            return vendorDetailAssignedIdentifier;
108        }
109    
110        public void setVendorDetailAssignedIdentifier(Integer vendorDetailAssignedIdentifier) {
111            this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier;
112        }
113        
114        public String getVendorAddressInternationalProvinceName() {
115            return vendorAddressInternationalProvinceName;
116        }
117    
118        public void setVendorAddressInternationalProvinceName(String vendorAddressInternationalProvinceName) {
119            this.vendorAddressInternationalProvinceName = vendorAddressInternationalProvinceName;
120        }
121    
122        public String getVendorNumber() {
123            String vendorNumber = "";
124            if (ObjectUtils.isNotNull(this.vendorHeaderGeneratedIdentifier)) {
125                vendorNumber = this.vendorHeaderGeneratedIdentifier.toString();
126            }
127            if (ObjectUtils.isNotNull(this.vendorDetailAssignedIdentifier)) {
128                vendorNumber += "-" + this.vendorDetailAssignedIdentifier.toString();
129            }
130            return vendorNumber;
131        }
132    
133        public void setVendorNumber(String vendorNumber) {
134            // do nothing
135        }
136    
137        public String getVendorName() {
138            return vendorName;
139        }
140    
141        public void setVendorName(String vendorName) {
142            this.vendorName = vendorName;
143        }
144    
145        public String getVendorLine1Address() {
146            return vendorLine1Address;
147        }
148    
149        public void setVendorLine1Address(String vendorLine1Address) {
150            this.vendorLine1Address = vendorLine1Address;
151        }
152    
153        public String getVendorLine2Address() {
154            return vendorLine2Address;
155        }
156    
157        public void setVendorLine2Address(String vendorLine2Address) {
158            this.vendorLine2Address = vendorLine2Address;
159        }
160    
161        public String getVendorCityName() {
162            return vendorCityName;
163        }
164    
165        public void setVendorCityName(String vendorCityName) {
166            this.vendorCityName = vendorCityName;
167        }
168    
169        public String getVendorStateCode() {
170            return vendorStateCode;
171        }
172    
173        public void setVendorStateCode(String vendorStateCode) {
174            this.vendorStateCode = vendorStateCode;
175        }
176    
177        public String getVendorPostalCode() {
178            return vendorPostalCode;
179        }
180    
181        public void setVendorPostalCode(String vendorPostalCode) {
182            this.vendorPostalCode = vendorPostalCode;
183        }
184    
185        public String getVendorPhoneNumber() {
186            return vendorPhoneNumber;
187        }
188    
189        public void setVendorPhoneNumber(String vendorPhoneNumber) {
190            this.vendorPhoneNumber = vendorPhoneNumber;
191        }
192    
193        public String getVendorFaxNumber() {
194            return vendorFaxNumber;
195        }
196    
197        public void setVendorFaxNumber(String vendorFaxNumber) {
198            this.vendorFaxNumber = vendorFaxNumber;
199        }
200    
201        public String getVendorEmailAddress() {
202            return vendorEmailAddress;
203        }
204    
205        public void setVendorEmailAddress(String vendorEmailAddress) {
206            this.vendorEmailAddress = vendorEmailAddress;
207        }
208    
209        public String getVendorAttentionName() {
210            return vendorAttentionName;
211        }
212    
213        public void setVendorAttentionName(String vendorAttentionName) {
214            this.vendorAttentionName = vendorAttentionName;
215        }
216    
217        public String getPurchaseOrderQuoteTransmitTypeCode() {
218            return purchaseOrderQuoteTransmitTypeCode;
219        }
220    
221        public void setPurchaseOrderQuoteTransmitTypeCode(String purchaseOrderQuoteTransmitTypeCode) {
222            this.purchaseOrderQuoteTransmitTypeCode = purchaseOrderQuoteTransmitTypeCode;
223        }
224    
225        public Timestamp getPurchaseOrderQuoteTransmitTimestamp() {
226            return purchaseOrderQuoteTransmitTimestamp;
227        }
228    
229        public void setPurchaseOrderQuoteTransmitTimestamp(Timestamp purchaseOrderQuoteTransmitTimestamp) {
230            this.purchaseOrderQuoteTransmitTimestamp = purchaseOrderQuoteTransmitTimestamp;
231        }
232    
233        public Date getPurchaseOrderQuotePriceExpirationDate() {
234            return purchaseOrderQuotePriceExpirationDate;
235        }
236    
237        public void setPurchaseOrderQuotePriceExpirationDate(Date purchaseOrderQuotePriceExpirationDate) {
238            this.purchaseOrderQuotePriceExpirationDate = purchaseOrderQuotePriceExpirationDate;
239        }
240    
241        public String getPurchaseOrderQuoteStatusCode() {
242            return purchaseOrderQuoteStatusCode;
243        }
244    
245        public void setPurchaseOrderQuoteStatusCode(String purchaseOrderQuoteStatusCode) {
246            this.purchaseOrderQuoteStatusCode = purchaseOrderQuoteStatusCode;
247        }
248    
249        public Timestamp getPurchaseOrderQuoteAwardTimestamp() {
250            return purchaseOrderQuoteAwardTimestamp;
251        }
252    
253        public void setPurchaseOrderQuoteAwardTimestamp(Timestamp purchaseOrderQuoteAwardTimestamp) {
254            this.purchaseOrderQuoteAwardTimestamp = purchaseOrderQuoteAwardTimestamp;
255        }
256    
257        public String getPurchaseOrderQuoteRankNumber() {
258            return purchaseOrderQuoteRankNumber;
259        }
260    
261        public void setPurchaseOrderQuoteRankNumber(String purchaseOrderQuoteRankNumber) {
262            this.purchaseOrderQuoteRankNumber = purchaseOrderQuoteRankNumber;
263        }
264    
265        public PurchaseOrderDocument getPurchaseOrder() {
266            return purchaseOrder;
267        }
268    
269        /**
270         * Sets the purchaseOrder attribute.
271         * 
272         * @param purchaseOrder The purchaseOrder to set.
273         * @deprecated
274         */
275        public void setPurchaseOrder(PurchaseOrderDocument purchaseOrder) {
276            this.purchaseOrder = purchaseOrder;
277        }
278    
279        public PurchaseOrderQuoteStatus getPurchaseOrderQuoteStatus() {
280            return purchaseOrderQuoteStatus;
281        }
282    
283        /**
284         * Sets the purchaseOrderQuoteStatus attribute.
285         * 
286         * @param purchaseOrderQuoteStatus The purchaseOrderQuoteStatus to set.
287         * @deprecated
288         */
289        public void setPurchaseOrderQuoteStatus(PurchaseOrderQuoteStatus purchaseOrderQuoteStatus) {
290            this.purchaseOrderQuoteStatus = purchaseOrderQuoteStatus;
291        }
292    
293        public String getVendorCountryCode() {
294            return vendorCountryCode;
295        }
296    
297        public void setVendorCountryCode(String vendorCountryCode) {
298            this.vendorCountryCode = vendorCountryCode;
299        }
300    
301        public boolean isTransmitPrintDisplayed() {
302            return isTransmitPrintDisplayed;
303        }
304    
305        public void setTransmitPrintDisplayed(boolean isTransmitPrintDisplayed) {
306            this.isTransmitPrintDisplayed = isTransmitPrintDisplayed;
307        }
308    
309        /**
310         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
311         */
312        protected LinkedHashMap toStringMapper() {
313            LinkedHashMap m = new LinkedHashMap();
314            m.put("documentNumber", this.documentNumber);
315            if (this.purchaseOrderVendorQuoteIdentifier != null) {
316                m.put("purchaseOrderVendorQuoteIdentifier", this.purchaseOrderVendorQuoteIdentifier.toString());
317            }
318            return m;
319        }
320    
321        /**
322         * Method to determine if the the pdf has already been displayed to the user
323         * one time. If false, its set to true and locks this out.
324         * 
325         * @return
326         */
327        public boolean isPdfDisplayedToUserOnce() {
328            boolean valueToReturn = isPdfDisplayedToUserOnce;
329            
330            //if not displayed, we will return false, but subsequent calls will return true.
331            if (valueToReturn == false){
332                isPdfDisplayedToUserOnce = true;
333            }
334            
335            return valueToReturn;
336        }
337    
338        public void setPdfDisplayedToUserOnce(boolean isPdfDisplayedToUserOnce) {
339            this.isPdfDisplayedToUserOnce = isPdfDisplayedToUserOnce;
340        }
341    
342    }