001 /**
002 * Copyright 2005-2012 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 package edu.sampleu.travel.approval.dataobject;
017
018 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
019 import javax.persistence.Entity;
020 import javax.persistence.Table;
021 import javax.persistence.OneToMany;
022 import java.sql.Date;
023 import java.util.ArrayList;
024 import java.util.LinkedHashMap;
025 import java.util.List;
026 import javax.persistence.Column;
027 import javax.persistence.GeneratedValue;
028 import javax.persistence.Id;
029 import javax.persistence.JoinColumn;
030 import javax.persistence.ManyToOne;
031 import javax.persistence.SequenceGenerator;
032 import org.apache.commons.lang.StringUtils;
033 //import org.kuali.kfs.integration.ar.AccountsReceivableCustomer;
034
035
036 @Entity
037 @Table(name="TRVL_TRAVELER_DTL_T")
038 public class TravelerDetail extends PersistableBusinessObjectBase {
039
040 protected Integer id;
041 protected String documentNumber;
042 protected String principalId;
043 protected String principalName;
044 protected String firstName;
045 protected String middleName;
046 protected String lastName;
047 protected String streetAddressLine1;
048 protected String streetAddressLine2;
049 protected String cityName;
050 protected String stateCode;
051 protected String zipCode;
052 protected String countryCode;
053 protected String citizenship;
054 protected String emailAddress;
055 protected Date dateOfBirth;
056 protected String gender;
057 protected String phoneNumber;
058 protected String travelerTypeCode;
059 protected TravelerType travelerType;
060 protected String customerNumber;
061 //protected AccountsReceivableCustomer customer;
062 protected boolean liabilityInsurance;
063
064 protected String driversLicenseNumber;
065 protected String driversLicenseState;
066 protected Date driversLicenseExpDate;
067
068 // Notification
069 protected boolean notifyTAFinal = Boolean.FALSE;
070 protected boolean notifyTAStatusChange = Boolean.FALSE;
071 protected boolean notifyTERFinal = Boolean.FALSE;
072 protected boolean notifyTERStatusChange = Boolean.FALSE;
073
074 protected boolean active = Boolean.TRUE;
075 protected boolean nonResidentAlien = Boolean.FALSE;
076 protected boolean motorVehicleRecordCheck = Boolean.FALSE;
077
078 @OneToMany(mappedBy = "id")
079 private List<TravelerDetailEmergencyContact> emergencyContacts = new ArrayList<TravelerDetailEmergencyContact>();
080
081 /**
082 * Reset emergency contact lists when switching the traveler/tem profile
083 */
084 public void resetEmergencyContacts(){
085 emergencyContacts = new ArrayList<TravelerDetailEmergencyContact>();
086 }
087
088 public List<TravelerDetailEmergencyContact> getEmergencyContacts() {
089 return emergencyContacts;
090 }
091
092 public void setEmergencyContacts(List<TravelerDetailEmergencyContact> emergencyContacts) {
093 this.emergencyContacts = emergencyContacts;
094 }
095
096 /**
097 * This method returns the document number this TravelerDetail object is associated with
098 *
099 * @return document number
100 */
101 @Column(name = "doc_nbr")
102 public String getDocumentNumber() {
103 return documentNumber;
104 }
105
106 /**
107 * This method sets the document number this TravelerDetail object will be associated with
108 *
109 * @param documentNumber
110 */
111 public void setDocumentNumber(String documentNumber) {
112 this.documentNumber = documentNumber;
113 }
114
115 @Id
116 @GeneratedValue(generator = "TEM_TRAVELER_DTL_ID_SEQ")
117 @SequenceGenerator(name = "TEM_TRAVELER_DTL_ID_SEQ", sequenceName = "TEM_TRAVELER_DTL_ID_SEQ", allocationSize = 5)
118 @Column(name = "id", nullable = false)
119 public Integer getId() {
120 return id;
121 }
122
123
124 public void setId(Integer id) {
125 this.id = id;
126 }
127
128 @Column(name = "first_nm", length = 40, nullable = false)
129 public String getFirstName() {
130 return firstName;
131 }
132
133
134 public void setFirstName(String firstName) {
135 this.firstName = firstName;
136 }
137
138 @Column(name = "last_nm", length = 40, nullable = false)
139 public String getLastName() {
140 return lastName;
141 }
142
143
144 public void setLastName(String lastName) {
145 this.lastName = lastName;
146 }
147
148 /**
149 * Gets the middleName attribute.
150 *
151 * @return Returns the middleName.
152 */
153 @Column(length = 40, nullable = true)
154 public String getMiddleName() {
155 return middleName;
156 }
157
158 /**
159 * Sets the middleName attribute value.
160 *
161 * @param middleName The middleName to set.
162 */
163 public void setMiddleName(String middleName) {
164 this.middleName = middleName;
165 }
166
167 public String getName() {
168 String name = "";
169 if(StringUtils.isNotBlank(getFirstName()))
170 name += getFirstName();
171 if(StringUtils.isNotBlank(getMiddleName()))
172 name += " " + getMiddleName();
173 if(StringUtils.isNotBlank(getLastName()))
174 name += " " + getLastName();
175 return name;
176 }
177
178 @Column(name = "addr_line_1", length = 50, nullable = false)
179 public String getStreetAddressLine1() {
180 return streetAddressLine1;
181 }
182
183
184 public void setStreetAddressLine1(String streetAddressLine1) {
185 this.streetAddressLine1 = streetAddressLine1;
186 }
187
188 @Column(name = "addr_line_2", length = 50, nullable = true)
189 public String getStreetAddressLine2() {
190 return streetAddressLine2;
191 }
192
193
194 public void setStreetAddressLine2(String streetAddressLine2) {
195 this.streetAddressLine2 = streetAddressLine2;
196 }
197
198 @Column(name = "city_nm", length = 50, nullable = true)
199 public String getCityName() {
200 return cityName;
201 }
202
203
204 public void setCityName(String cityName) {
205 this.cityName = cityName;
206 }
207
208 @Column(name = "postal_state_cd", length = 50, nullable = false)
209 public String getStateCode() {
210 return stateCode;
211 }
212
213
214 public void setStateCode(String stateCode) {
215 this.stateCode = stateCode;
216 }
217
218 @Column(name = "postal_cd", length = 50, nullable = false)
219 public String getZipCode() {
220 return zipCode;
221 }
222
223
224 public void setZipCode(String zipCode) {
225 this.zipCode = zipCode;
226 }
227
228 @Column(name = "country_cd", length = 50, nullable = true)
229 public String getCountryCode() {
230 return countryCode;
231 }
232
233
234 public void setCountryCode(String countryCode) {
235 this.countryCode = countryCode;
236 }
237
238 @Column(name = "email_addr", length = 50, nullable = true)
239 public String getEmailAddress() {
240 return emailAddress;
241 }
242
243
244 public void setEmailAddress(String emailAddress) {
245 this.emailAddress = emailAddress;
246 }
247
248 @Column(name = "phone_nbr", length = 20, nullable = true)
249 public String getPhoneNumber() {
250 return phoneNumber;
251 }
252
253
254 public void setPhoneNumber(String phoneNumber) {
255 this.phoneNumber = phoneNumber;
256 }
257
258 @Column(name = "traveler_typ_cd", length = 3, nullable = false)
259 public String getTravelerTypeCode() {
260 return travelerTypeCode;
261 }
262
263
264 public void setTravelerTypeCode(String travelerTypeCode) {
265 this.travelerTypeCode = travelerTypeCode;
266 }
267
268 @ManyToOne
269 @JoinColumn(name = "traveler_typ_cd")
270 public TravelerType getTravelerType() {
271 return travelerType;
272 }
273
274 public void setTravelerType(TravelerType travelerType) {
275 this.travelerType = travelerType;
276 }
277
278 /**
279 * Gets the principalId attribute.
280 *
281 * @return Returns the principalId.
282 */
283 @Column(name = "EMP_PRINCIPAL_ID")
284 public String getPrincipalId() {
285 return principalId;
286 }
287
288 /**
289 * Sets the principalId attribute value.
290 *
291 * @param principalId The principalId to set.
292 */
293 public void setPrincipalId(String principalId) {
294 this.principalId = principalId;
295 }
296
297 /**
298 * Gets the principalName attribute.
299 *
300 * @return Returns the principalName.
301 */
302 @Column(name = "EMP_PRINCIPAL_ID")
303 public String getPrincipalName() {
304 return principalName;
305 }
306
307 /**
308 * Sets the principalName attribute value.
309 *
310 * @param principalName The principalName to set.
311 */
312 public void setPrincipalName(String principalName) {
313 this.principalName = principalName;
314 }
315
316 /**
317 * Gets the customerNumber attribute.
318 *
319 * @return Returns the customerNumber.
320 */
321 @Column(name = "customer_num", length = 40, nullable = true)
322 public String getCustomerNumber() {
323 return customerNumber;
324 }
325
326 /**
327 * Sets the customerNumber attribute value.
328 *
329 * @param customerNumber The customerNumber to set.
330 */
331 public void setCustomerNumber(String customerNumber) {
332 this.customerNumber = customerNumber;
333 }
334
335 /*
336 public void setCustomer(final AccountsReceivableCustomer customer) {
337
338 this.customer = customer;
339 }
340
341 public AccountsReceivableCustomer getCustomer() {
342 return this.customer;
343 }
344 */
345
346 protected LinkedHashMap toStringMapper() {
347 LinkedHashMap map = new LinkedHashMap();
348 map.put("id", id);
349 map.put("firstName", firstName);
350 map.put("lastName", lastName);
351 map.put("streetAddressLine1", streetAddressLine1);
352 map.put("cityName", cityName);
353 return map;
354 }
355
356 public boolean isLiabilityInsurance() {
357 return liabilityInsurance;
358 }
359
360 public void setLiabilityInsurance(boolean liabilityInsurance) {
361 this.liabilityInsurance = liabilityInsurance;
362 }
363
364 /**
365 * Gets the driversLicenseNumber attribute.
366 *
367 * @return Returns the driversLicenseNumber.
368 */
369 @Column(name = "drive_lic_num", length = 20, nullable = true)
370 public String getDriversLicenseNumber() {
371 return driversLicenseNumber;
372 }
373
374 /**
375 * Sets the driversLicenseNumber attribute value.
376 *
377 * @param driversLicenseNumber The driversLicenseNumber to set.
378 */
379 public void setDriversLicenseNumber(String driversLicenseNumber) {
380 this.driversLicenseNumber = driversLicenseNumber;
381 }
382
383 /**
384 * Gets the driversLicenseState attribute.
385 *
386 * @return Returns the driversLicenseState.
387 */
388 public String getDriversLicenseState() {
389 return driversLicenseState;
390 }
391
392 /**
393 * Sets the driversLicenseState attribute value.
394 *
395 * @param driversLicenseState The driversLicenseState to set.
396 */
397 public void setDriversLicenseState(String driversLicenseState) {
398 this.driversLicenseState = driversLicenseState;
399 }
400
401 /**
402 * Gets the driversLicenseExpDate attribute.
403 *
404 * @return Returns the driversLicenseExpDate.
405 */
406 @Column(name = "drive_lic_exp_dt", length = 10)
407 public Date getDriversLicenseExpDate() {
408 return driversLicenseExpDate;
409 }
410
411
412 /**
413 * Sets the driversLicenseExpDate attribute value.
414 *
415 * @param driversLicenseExpDate The driversLicenseExpDate to set.
416 */
417 public void setDriversLicenseExpDate(Date driversLicenseExpDate) {
418 this.driversLicenseExpDate = driversLicenseExpDate;
419 }
420
421 public boolean getNotifyTAFinal() {
422 return notifyTAFinal;
423 }
424
425 public boolean getNotifyTAStatusChange() {
426 return notifyTAStatusChange;
427 }
428
429 public boolean getNotifyTERFinal() {
430 return notifyTERFinal;
431 }
432
433 public boolean getNotifyTERStatusChange() {
434 return notifyTERStatusChange;
435 }
436
437 /**
438 * Gets the citizenship attribute.
439 *
440 * @return Returns the citizenship.
441 */
442 @Column(name = "citizenship", length = 40, nullable = true)
443 public String getCitizenship() {
444 return citizenship;
445 }
446
447 /**
448 * Sets the citizenship attribute value.
449 *
450 * @param citizenship The citizenship to set.
451 */
452 public void setCitizenship(String citizenship) {
453 this.citizenship = citizenship;
454 }
455
456 /**
457 * Gets the active attribute.
458 *
459 * @return Returns the active.
460 */
461 @Column(name = "ACTV_IND", nullable = false, length = 1)
462 public boolean isActive() {
463 return active;
464 }
465
466 /**
467 * Sets the active attribute value.
468 *
469 * @param active The active to set.
470 */
471 public void setActive(boolean active) {
472 this.active = active;
473 }
474
475 /**
476 * Gets the notifyTAFinal attribute.
477 *
478 * @return Returns the notifyTAFinal.
479 */
480 public boolean isNotifyTAFinal() {
481 return notifyTAFinal;
482 }
483
484 /**
485 * Sets the notifyTAFinal attribute value.
486 *
487 * @param notifyTAFinal The notifyTAFinal to set.
488 */
489 public void setNotifyTAFinal(boolean notifyTAFinal) {
490 this.notifyTAFinal = notifyTAFinal;
491 }
492
493 /**
494 * Gets the notifyTAStatusChange attribute.
495 *
496 * @return Returns the notifyTAStatusChange.
497 */
498 public boolean isNotifyTAStatusChange() {
499 return notifyTAStatusChange;
500 }
501
502 /**
503 * Sets the notifyTAStatusChange attribute value.
504 *
505 * @param notifyTAStatusChange The notifyTAStatusChange to set.
506 */
507 public void setNotifyTAStatusChange(boolean notifyTAStatusChange) {
508 this.notifyTAStatusChange = notifyTAStatusChange;
509 }
510
511 /**
512 * Gets the notifyTERFinal attribute.
513 *
514 * @return Returns the notifyTERFinal.
515 */
516 public boolean isNotifyTERFinal() {
517 return notifyTERFinal;
518 }
519
520 /**
521 * Sets the notifyTERFinal attribute value.
522 *
523 * @param notifyTERFinal The notifyTERFinal to set.
524 */
525 public void setNotifyTERFinal(boolean notifyTERFinal) {
526 this.notifyTERFinal = notifyTERFinal;
527 }
528
529 /**
530 * Gets the notifyTERStatusChange attribute.
531 *
532 * @return Returns the notifyTERStatusChange.
533 */
534 public boolean isNotifyTERStatusChange() {
535 return notifyTERStatusChange;
536 }
537
538 /**
539 * Sets the notifyTERStatusChange attribute value.
540 *
541 * @param notifyTERStatusChange The notifyTERStatusChange to set.
542 */
543 public void setNotifyTERStatusChange(boolean notifyTERStatusChange) {
544 this.notifyTERStatusChange = notifyTERStatusChange;
545 }
546
547 public boolean isMotorVehicleRecordCheck() {
548 return motorVehicleRecordCheck;
549 }
550
551 public void setMotorVehicleRecordCheck(boolean motorVehicleRecordCheck) {
552 this.motorVehicleRecordCheck = motorVehicleRecordCheck;
553 }
554
555 /**
556 * Gets the nonResIdentAlien attribute.
557 *
558 * @return Returns the nonResIdentAlien.
559 */
560 @Column(name = "non_res_alien", length = 1, nullable = true)
561 public boolean isNonResidentAlien() {
562 return nonResidentAlien;
563 }
564
565 /**
566 * Sets the nonResIdentAlien attribute value.
567 *
568 * @param nonResIdentAlien The nonResIdentAlien to set.
569 */
570 public void setNonResidentAlien(boolean nonResidentAlien) {
571 this.nonResidentAlien = nonResidentAlien;
572 }
573
574 /**
575 * Gets the dateOfBirth attribute.
576 *
577 * @return Returns the dateOfBirth.
578 */
579 @Column(name = "date_of_birth", length = 10, nullable = false)
580 public Date getDateOfBirth() {
581 return dateOfBirth;
582 }
583
584 /**
585 * Sets the dateOfBirth attribute value.
586 *
587 * @param dateOfBirth The dateOfBirth to set.
588 */
589 public void setDateOfBirth(Date dateOfBirth) {
590 this.dateOfBirth = dateOfBirth;
591 }
592
593 /**
594 * Gets the gender attribute.
595 *
596 * @return Returns the gender.
597 */
598 @Column(name = "gender", length = 1, nullable = false)
599 public String getGender() {
600 return gender;
601 }
602
603 /**
604 * Sets the gender attribute value.
605 *
606 * @param gender The gender to set.
607 */
608 public void setGender(String gender) {
609 this.gender = gender;
610 }
611 }