001/**
002 * Copyright 2005-2014 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 */
016package edu.sampleu.travel.dataobject;
017
018import org.apache.commons.lang.StringUtils;
019import org.kuali.rice.core.api.mo.common.active.MutableInactivatable;
020import org.kuali.rice.kim.api.identity.Person;
021import org.kuali.rice.krad.bo.DataObjectBase;
022import org.kuali.rice.krad.data.provider.annotation.InheritProperties;
023import org.kuali.rice.krad.data.provider.annotation.InheritProperty;
024import org.kuali.rice.krad.data.provider.annotation.Label;
025import org.kuali.rice.krad.data.provider.annotation.Relationship;
026import org.kuali.rice.krad.data.provider.annotation.UifAutoCreateViewType;
027import org.kuali.rice.krad.data.provider.annotation.UifAutoCreateViews;
028
029import javax.persistence.Column;
030import javax.persistence.Entity;
031import javax.persistence.GeneratedValue;
032import javax.persistence.Id;
033import javax.persistence.SequenceGenerator;
034import javax.persistence.Table;
035import javax.persistence.Temporal;
036import javax.persistence.TemporalType;
037import javax.persistence.Transient;
038import java.util.Date;
039
040
041@Entity
042@Table(name="TRVL_TRAVELER_DTL_T")
043@UifAutoCreateViews({UifAutoCreateViewType.INQUIRY, UifAutoCreateViewType.LOOKUP})
044public class TravelerDetail extends DataObjectBase implements MutableInactivatable {
045        private static final long serialVersionUID = -7169083136626617130L;
046
047    @Id
048    @GeneratedValue(generator = "TRVL_TRAVELER_DTL_ID_S")
049    @SequenceGenerator(name = "TRVL_TRAVELER_DTL_ID_S", sequenceName = "TRVL_TRAVELER_DTL_ID_S", allocationSize = 5)
050    @Column(name = "id", length = 40, nullable = false)
051        protected String id;
052    @Column(name = "doc_nbr", length=14)
053    protected String documentNumber;
054    @Column(name = "EMP_PRINCIPAL_ID")
055    protected String principalId;
056    @Relationship(foreignKeyFields="principalId")
057    @Transient
058    @InheritProperties({
059                @InheritProperty(name="principalName",label=@Label("Traveler User ID")),
060                @InheritProperty(name="name",label=@Label("Traveler Name"))
061    })
062        private Person person;
063    @Column(name = "first_nm", length = 40, nullable = false)
064    protected String firstName;
065    @Column(length = 40, nullable = true)
066    protected String middleName;
067    @Column(name = "last_nm", length = 40, nullable = false)
068    protected String lastName;
069    @Column(name = "addr_line_1", length = 50, nullable = false)
070    protected String streetAddressLine1;
071    @Column(name = "addr_line_2", length = 50, nullable = true)
072    protected String streetAddressLine2;
073    @Column(name = "city_nm", length = 50, nullable = true)
074    protected String cityName;
075    @Column(name = "postal_state_cd", length = 2, nullable = false)
076    protected String stateCode;
077    @Column(name = "postal_cd", length = 11, nullable = false)
078    protected String zipCode;
079    @Column(name = "country_cd", length = 2, nullable = true)
080    protected String countryCode;
081    @Column(name = "citizenship", length = 40, nullable = true)
082    protected String citizenship;
083    @Column(name = "email_addr", length = 50, nullable = true)
084    protected String emailAddress;
085    @Transient
086    protected Date dateOfBirth;
087    @Column(name = "gender", length = 1, nullable = false)
088    protected String gender;
089    @Column(name = "phone_nbr", length = 20, nullable = true)
090    protected String phoneNumber;
091    @Column(name = "traveler_typ_cd", length = 3, nullable = false)
092    protected String travelerTypeCode;
093//    @ManyToOne
094//    @JoinColumn(name = "traveler_typ_cd", insertable=false, updatable=false)
095
096    @Relationship(foreignKeyFields="travelerTypeCode")
097    @Transient
098    protected TravelerType travelerType;
099    @Column(name = "customer_num", length = 40, nullable = true)
100    protected String customerNumber;
101    //protected AccountsReceivableCustomer customer;
102    @Transient
103    protected boolean liabilityInsurance;
104
105    @Column(name = "drive_lic_num", length = 20, nullable = true)
106    protected String driversLicenseNumber;
107    @Transient
108    protected String driversLicenseState;
109    @Column(name = "drive_lic_exp_dt")
110    @Temporal(TemporalType.DATE)
111    protected Date driversLicenseExpDate;
112
113    // Notification
114    @Transient
115    protected Boolean notifyTAFinal = Boolean.FALSE;
116    @Transient
117    protected Boolean notifyTAStatusChange = Boolean.FALSE;
118    @Transient
119    protected Boolean notifyTERFinal = Boolean.FALSE;
120    @Transient
121    protected Boolean notifyTERStatusChange = Boolean.FALSE;
122
123    @Column(name = "ACTV_IND", nullable = false, length = 1)
124    protected Boolean active = Boolean.TRUE;
125    @Column(name = "non_res_alien", length = 1, nullable = true)
126    protected Boolean nonResidentAlien = Boolean.FALSE;
127    @Transient
128    protected Boolean motorVehicleRecordCheck = Boolean.FALSE;
129
130    /**
131     * This method returns the document number this TravelerDetail object is associated with
132     *
133     * @return document number
134     */
135    public String getDocumentNumber() {
136        return documentNumber;
137    }
138
139    /**
140     * This method sets the document number this TravelerDetail object will be associated with
141     *
142     * @param documentNumber
143     */
144    public void setDocumentNumber(String documentNumber) {
145        this.documentNumber = documentNumber;
146    }
147
148    public String getId() {
149        return id;
150    }
151
152
153    public void setId(String id) {
154        this.id = id;
155    }
156
157    public String getFirstName() {
158        return firstName;
159    }
160
161
162    public void setFirstName(String firstName) {
163        this.firstName = firstName;
164    }
165
166    public String getLastName() {
167        return lastName;
168    }
169
170
171    public void setLastName(String lastName) {
172        this.lastName = lastName;
173    }
174
175    public String getMiddleName() {
176        return middleName;
177    }
178
179    public void setMiddleName(String middleName) {
180        this.middleName = middleName;
181    }
182
183    public String getName() {
184        String name = "";
185        if(StringUtils.isNotBlank(getFirstName()))
186            name += getFirstName();
187        if(StringUtils.isNotBlank(getMiddleName()))
188            name += " " + getMiddleName();
189        if(StringUtils.isNotBlank(getLastName()))
190            name += " " + getLastName();
191        return name;
192    }
193
194    public String getStreetAddressLine1() {
195        return streetAddressLine1;
196    }
197
198
199    public void setStreetAddressLine1(String streetAddressLine1) {
200        this.streetAddressLine1 = streetAddressLine1;
201    }
202
203    public String getStreetAddressLine2() {
204        return streetAddressLine2;
205    }
206
207
208    public void setStreetAddressLine2(String streetAddressLine2) {
209        this.streetAddressLine2 = streetAddressLine2;
210    }
211
212    public String getCityName() {
213        return cityName;
214    }
215
216
217    public void setCityName(String cityName) {
218        this.cityName = cityName;
219    }
220
221    public String getStateCode() {
222        return stateCode;
223    }
224
225
226    public void setStateCode(String stateCode) {
227        this.stateCode = stateCode;
228    }
229
230    public String getZipCode() {
231        return zipCode;
232    }
233
234
235    public void setZipCode(String zipCode) {
236        this.zipCode = zipCode;
237    }
238
239    public String getCountryCode() {
240        return countryCode;
241    }
242
243
244    public void setCountryCode(String countryCode) {
245        this.countryCode = countryCode;
246    }
247
248    public String getEmailAddress() {
249        return emailAddress;
250    }
251
252
253    public void setEmailAddress(String emailAddress) {
254        this.emailAddress = emailAddress;
255    }
256
257    public String getPhoneNumber() {
258        return phoneNumber;
259    }
260
261
262    public void setPhoneNumber(String phoneNumber) {
263        this.phoneNumber = phoneNumber;
264    }
265
266    public String getTravelerTypeCode() {
267        return travelerTypeCode;
268    }
269
270
271    public void setTravelerTypeCode(String travelerTypeCode) {
272        this.travelerTypeCode = travelerTypeCode;
273    }
274
275    public TravelerType getTravelerType() {
276        return travelerType;
277    }
278
279    public void setTravelerType(TravelerType travelerType) {
280        this.travelerType = travelerType;
281    }
282
283    public String getPrincipalId() {
284        return principalId;
285    }
286
287    public void setPrincipalId(String principalId) {
288        this.principalId = principalId;
289    }
290
291    public String getCustomerNumber() {
292        return customerNumber;
293    }
294
295    public void setCustomerNumber(String customerNumber) {
296        this.customerNumber = customerNumber;
297    }
298
299    public boolean isLiabilityInsurance() {
300        return liabilityInsurance;
301    }
302
303    public void setLiabilityInsurance(boolean liabilityInsurance) {
304        this.liabilityInsurance = liabilityInsurance;
305    }
306
307    public String getDriversLicenseNumber() {
308        return driversLicenseNumber;
309    }
310
311    public void setDriversLicenseNumber(String driversLicenseNumber) {
312        this.driversLicenseNumber = driversLicenseNumber;
313    }
314
315    public String getDriversLicenseState() {
316        return driversLicenseState;
317    }
318
319    public void setDriversLicenseState(String driversLicenseState) {
320        this.driversLicenseState = driversLicenseState;
321    }
322
323    public Date getDriversLicenseExpDate() {
324        return driversLicenseExpDate;
325    }
326
327    public void setDriversLicenseExpDate(Date driversLicenseExpDate) {
328        this.driversLicenseExpDate = driversLicenseExpDate;
329    }
330
331    public boolean getNotifyTAFinal() {
332        return notifyTAFinal;
333    }
334
335    public boolean getNotifyTAStatusChange() {
336        return notifyTAStatusChange;
337    }
338
339    public boolean getNotifyTERFinal() {
340        return notifyTERFinal;
341    }
342
343    public boolean getNotifyTERStatusChange() {
344        return notifyTERStatusChange;
345    }
346
347    public String getCitizenship() {
348        return citizenship;
349    }
350
351    public void setCitizenship(String citizenship) {
352        this.citizenship = citizenship;
353    }
354
355    public boolean isActive() {
356        return active;
357    }
358
359    public void setActive(boolean active) {
360        this.active = active;
361    }
362
363    public boolean isNotifyTAFinal() {
364        return notifyTAFinal;
365    }
366
367    public void setNotifyTAFinal(boolean notifyTAFinal) {
368        this.notifyTAFinal = notifyTAFinal;
369    }
370
371    public boolean isNotifyTAStatusChange() {
372        return notifyTAStatusChange;
373    }
374
375    public void setNotifyTAStatusChange(boolean notifyTAStatusChange) {
376        this.notifyTAStatusChange = notifyTAStatusChange;
377    }
378
379    public boolean isNotifyTERFinal() {
380        return notifyTERFinal;
381    }
382
383    public void setNotifyTERFinal(boolean notifyTERFinal) {
384        this.notifyTERFinal = notifyTERFinal;
385    }
386
387    public boolean isNotifyTERStatusChange() {
388        return notifyTERStatusChange;
389    }
390
391    public void setNotifyTERStatusChange(boolean notifyTERStatusChange) {
392        this.notifyTERStatusChange = notifyTERStatusChange;
393    }
394
395    public boolean isMotorVehicleRecordCheck() {
396        return motorVehicleRecordCheck;
397    }
398
399    public void setMotorVehicleRecordCheck(boolean motorVehicleRecordCheck) {
400        this.motorVehicleRecordCheck = motorVehicleRecordCheck;
401    }
402
403    public boolean isNonResidentAlien() {
404        return nonResidentAlien;
405    }
406
407    public void setNonResidentAlien(boolean nonResidentAlien) {
408        this.nonResidentAlien = nonResidentAlien;
409    }
410
411    public Date getDateOfBirth() {
412        return dateOfBirth;
413    }
414
415    public void setDateOfBirth(Date dateOfBirth) {
416        this.dateOfBirth = dateOfBirth;
417    }
418
419    public String getGender() {
420        return gender;
421    }
422
423    public void setGender(String gender) {
424        this.gender = gender;
425    }
426
427        public Person getPerson() {
428                return person;
429        }
430
431        public void setPerson(Person person) {
432                this.person = person;
433        }
434}