001/*
002 * Copyright 2006 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
017package org.kuali.ole.module.purap.businessobject;
018
019import org.apache.commons.lang.StringUtils;
020import org.kuali.ole.module.purap.document.PurchaseOrderDocument;
021import org.kuali.ole.sys.context.SpringContext;
022import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
023import org.kuali.rice.krad.service.KualiModuleService;
024import org.kuali.rice.krad.service.ModuleService;
025import org.kuali.rice.krad.util.ObjectUtils;
026import org.kuali.rice.location.api.LocationConstants;
027import org.kuali.rice.location.framework.country.CountryEbo;
028
029import java.sql.Date;
030import java.sql.Timestamp;
031import java.util.HashMap;
032import java.util.LinkedHashMap;
033import java.util.Map;
034
035/**
036 * Purchase Order Vendor Quote Business Object.
037 */
038public class PurchaseOrderVendorQuote extends PersistableBusinessObjectBase {
039
040    private String documentNumber;
041    private Integer purchaseOrderVendorQuoteIdentifier;
042    private Integer vendorHeaderGeneratedIdentifier;
043    private Integer vendorDetailAssignedIdentifier;
044    private String vendorName;
045    private String vendorLine1Address;
046    private String vendorLine2Address;
047    private String vendorCityName;
048    private String vendorStateCode;
049    private String vendorPostalCode;
050    private String vendorPhoneNumber;
051    private String vendorFaxNumber;
052    private String vendorEmailAddress;
053    private String vendorAttentionName;
054    private String purchaseOrderQuoteTransmitTypeCode;
055    private Timestamp purchaseOrderQuoteTransmitTimestamp;
056    private Date purchaseOrderQuotePriceExpirationDate;
057    private String purchaseOrderQuoteStatusCode;
058    private Timestamp purchaseOrderQuoteAwardTimestamp;
059    private String purchaseOrderQuoteRankNumber;
060    private String vendorCountryCode;
061    private String vendorAddressInternationalProvinceName;
062    private boolean isTransmitPrintDisplayed = false;
063
064    private PurchaseOrderDocument purchaseOrder;
065    private PurchaseOrderQuoteStatus purchaseOrderQuoteStatus;
066    private CountryEbo vendorCountry;
067
068    //non-persisted variables
069    protected boolean isPdfDisplayedToUserOnce;
070
071    /**
072     * Default constructor.
073     */
074    public PurchaseOrderVendorQuote() {
075
076    }
077
078    public String getDocumentNumber() {
079        return documentNumber;
080    }
081
082    public void setDocumentNumber(String documentNumber) {
083        this.documentNumber = documentNumber;
084    }
085
086    public Integer getPurchaseOrderVendorQuoteIdentifier() {
087        return purchaseOrderVendorQuoteIdentifier;
088    }
089
090    /**
091     * Gets the vendorCountryCode attribute.
092     *
093     * @return Returns the vendorCountryCode.
094     */
095    public CountryEbo getVendorCountry() {
096        if (StringUtils.isBlank(vendorCountryCode)) {
097            vendorCountry = null;
098        } else {
099            if (vendorCountry == null || !StringUtils.equals(vendorCountry.getCode(), vendorCountryCode)) {
100                ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CountryEbo.class);
101                if (moduleService != null) {
102                    Map<String, Object> keys = new HashMap<String, Object>(1);
103                    keys.put(LocationConstants.PrimaryKeyConstants.CODE, vendorCountryCode);
104                    vendorCountry = moduleService.getExternalizableBusinessObject(CountryEbo.class, keys);
105                } else {
106                    throw new RuntimeException("CONFIGURATION ERROR: No responsible module found for EBO class.  Unable to proceed.");
107                }
108            }
109        }
110
111        return vendorCountry;
112    }
113
114    public void setVendorCountry(CountryEbo vendorCountry) {
115        this.vendorCountry = vendorCountry;
116    }
117
118    public void setPurchaseOrderVendorQuoteIdentifier(Integer purchaseOrderVendorQuoteIdentifier) {
119        this.purchaseOrderVendorQuoteIdentifier = purchaseOrderVendorQuoteIdentifier;
120    }
121
122    public Integer getVendorHeaderGeneratedIdentifier() {
123        return vendorHeaderGeneratedIdentifier;
124    }
125
126    public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) {
127        this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
128    }
129
130    public Integer getVendorDetailAssignedIdentifier() {
131        return vendorDetailAssignedIdentifier;
132    }
133
134    public void setVendorDetailAssignedIdentifier(Integer vendorDetailAssignedIdentifier) {
135        this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier;
136    }
137
138    public String getVendorAddressInternationalProvinceName() {
139        return vendorAddressInternationalProvinceName;
140    }
141
142    public void setVendorAddressInternationalProvinceName(String vendorAddressInternationalProvinceName) {
143        this.vendorAddressInternationalProvinceName = vendorAddressInternationalProvinceName;
144    }
145
146    public String getVendorNumber() {
147        String vendorNumber = "";
148        if (ObjectUtils.isNotNull(this.vendorHeaderGeneratedIdentifier)) {
149            vendorNumber = this.vendorHeaderGeneratedIdentifier.toString();
150        }
151        if (ObjectUtils.isNotNull(this.vendorDetailAssignedIdentifier)) {
152            vendorNumber += "-" + this.vendorDetailAssignedIdentifier.toString();
153        }
154        return vendorNumber;
155    }
156
157    public void setVendorNumber(String vendorNumber) {
158        // do nothing
159    }
160
161    public String getVendorName() {
162        return vendorName;
163    }
164
165    public void setVendorName(String vendorName) {
166        this.vendorName = vendorName;
167    }
168
169    public String getVendorLine1Address() {
170        return vendorLine1Address;
171    }
172
173    public void setVendorLine1Address(String vendorLine1Address) {
174        this.vendorLine1Address = vendorLine1Address;
175    }
176
177    public String getVendorLine2Address() {
178        return vendorLine2Address;
179    }
180
181    public void setVendorLine2Address(String vendorLine2Address) {
182        this.vendorLine2Address = vendorLine2Address;
183    }
184
185    public String getVendorCityName() {
186        return vendorCityName;
187    }
188
189    public void setVendorCityName(String vendorCityName) {
190        this.vendorCityName = vendorCityName;
191    }
192
193    public String getVendorStateCode() {
194        return vendorStateCode;
195    }
196
197    public void setVendorStateCode(String vendorStateCode) {
198        this.vendorStateCode = vendorStateCode;
199    }
200
201    public String getVendorPostalCode() {
202        return vendorPostalCode;
203    }
204
205    public void setVendorPostalCode(String vendorPostalCode) {
206        this.vendorPostalCode = vendorPostalCode;
207    }
208
209    public String getVendorPhoneNumber() {
210        return vendorPhoneNumber;
211    }
212
213    public void setVendorPhoneNumber(String vendorPhoneNumber) {
214        this.vendorPhoneNumber = vendorPhoneNumber;
215    }
216
217    public String getVendorFaxNumber() {
218        return vendorFaxNumber;
219    }
220
221    public void setVendorFaxNumber(String vendorFaxNumber) {
222        this.vendorFaxNumber = vendorFaxNumber;
223    }
224
225    public String getVendorEmailAddress() {
226        return vendorEmailAddress;
227    }
228
229    public void setVendorEmailAddress(String vendorEmailAddress) {
230        this.vendorEmailAddress = vendorEmailAddress;
231    }
232
233    public String getVendorAttentionName() {
234        return vendorAttentionName;
235    }
236
237    public void setVendorAttentionName(String vendorAttentionName) {
238        this.vendorAttentionName = vendorAttentionName;
239    }
240
241    public String getPurchaseOrderQuoteTransmitTypeCode() {
242        return purchaseOrderQuoteTransmitTypeCode;
243    }
244
245    public void setPurchaseOrderQuoteTransmitTypeCode(String purchaseOrderQuoteTransmitTypeCode) {
246        this.purchaseOrderQuoteTransmitTypeCode = purchaseOrderQuoteTransmitTypeCode;
247    }
248
249    public Timestamp getPurchaseOrderQuoteTransmitTimestamp() {
250        return purchaseOrderQuoteTransmitTimestamp;
251    }
252
253    public void setPurchaseOrderQuoteTransmitTimestamp(Timestamp purchaseOrderQuoteTransmitTimestamp) {
254        this.purchaseOrderQuoteTransmitTimestamp = purchaseOrderQuoteTransmitTimestamp;
255    }
256
257    public Date getPurchaseOrderQuotePriceExpirationDate() {
258        return purchaseOrderQuotePriceExpirationDate;
259    }
260
261    public void setPurchaseOrderQuotePriceExpirationDate(Date purchaseOrderQuotePriceExpirationDate) {
262        this.purchaseOrderQuotePriceExpirationDate = purchaseOrderQuotePriceExpirationDate;
263    }
264
265    public String getPurchaseOrderQuoteStatusCode() {
266        return purchaseOrderQuoteStatusCode;
267    }
268
269    public void setPurchaseOrderQuoteStatusCode(String purchaseOrderQuoteStatusCode) {
270        this.purchaseOrderQuoteStatusCode = purchaseOrderQuoteStatusCode;
271    }
272
273    public Timestamp getPurchaseOrderQuoteAwardTimestamp() {
274        return purchaseOrderQuoteAwardTimestamp;
275    }
276
277    public void setPurchaseOrderQuoteAwardTimestamp(Timestamp purchaseOrderQuoteAwardTimestamp) {
278        this.purchaseOrderQuoteAwardTimestamp = purchaseOrderQuoteAwardTimestamp;
279    }
280
281    public String getPurchaseOrderQuoteRankNumber() {
282        return purchaseOrderQuoteRankNumber;
283    }
284
285    public void setPurchaseOrderQuoteRankNumber(String purchaseOrderQuoteRankNumber) {
286        this.purchaseOrderQuoteRankNumber = purchaseOrderQuoteRankNumber;
287    }
288
289    public PurchaseOrderDocument getPurchaseOrder() {
290        return purchaseOrder;
291    }
292
293    /**
294     * Sets the purchaseOrder attribute.
295     *
296     * @param purchaseOrder The purchaseOrder to set.
297     * @deprecated
298     */
299    public void setPurchaseOrder(PurchaseOrderDocument purchaseOrder) {
300        this.purchaseOrder = purchaseOrder;
301    }
302
303    public PurchaseOrderQuoteStatus getPurchaseOrderQuoteStatus() {
304        return purchaseOrderQuoteStatus;
305    }
306
307    /**
308     * Sets the purchaseOrderQuoteStatus attribute.
309     *
310     * @param purchaseOrderQuoteStatus The purchaseOrderQuoteStatus to set.
311     * @deprecated
312     */
313    public void setPurchaseOrderQuoteStatus(PurchaseOrderQuoteStatus purchaseOrderQuoteStatus) {
314        this.purchaseOrderQuoteStatus = purchaseOrderQuoteStatus;
315    }
316
317    public String getVendorCountryCode() {
318        return vendorCountryCode;
319    }
320
321    public void setVendorCountryCode(String vendorCountryCode) {
322        this.vendorCountryCode = vendorCountryCode;
323    }
324
325    public boolean isTransmitPrintDisplayed() {
326        return isTransmitPrintDisplayed;
327    }
328
329    public void setTransmitPrintDisplayed(boolean isTransmitPrintDisplayed) {
330        this.isTransmitPrintDisplayed = isTransmitPrintDisplayed;
331    }
332
333    /**
334     * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
335     */
336    protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
337        LinkedHashMap m = new LinkedHashMap();
338        m.put("documentNumber", this.documentNumber);
339        if (this.purchaseOrderVendorQuoteIdentifier != null) {
340            m.put("purchaseOrderVendorQuoteIdentifier", this.purchaseOrderVendorQuoteIdentifier.toString());
341        }
342        return m;
343    }
344
345    /**
346     * Method to determine if the the pdf has already been displayed to the user
347     * one time. If false, its set to true and locks this out.
348     *
349     * @return
350     */
351    public boolean isPdfDisplayedToUserOnce() {
352        boolean valueToReturn = isPdfDisplayedToUserOnce;
353
354        //if not displayed, we will return false, but subsequent calls will return true.
355        if (valueToReturn == false) {
356            isPdfDisplayedToUserOnce = true;
357        }
358
359        return valueToReturn;
360    }
361
362    public void setPdfDisplayedToUserOnce(boolean isPdfDisplayedToUserOnce) {
363        this.isPdfDisplayedToUserOnce = isPdfDisplayedToUserOnce;
364    }
365
366}