001 /** 002 * Copyright 2005-2013 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.dataobject; 017 018 import edu.sampleu.travel.options.MileageRateKeyValues; 019 import edu.sampleu.travel.options.TravelDestinationKeyValues; 020 import org.kuali.rice.krad.bo.DataObjectBase; 021 import org.kuali.rice.krad.data.jpa.eclipselink.PortableSequenceGenerator; 022 import org.kuali.rice.krad.data.provider.annotation.Description; 023 import org.kuali.rice.krad.data.provider.annotation.InheritProperties; 024 import org.kuali.rice.krad.data.provider.annotation.InheritProperty; 025 import org.kuali.rice.krad.data.provider.annotation.KeyValuesFinderClass; 026 import org.kuali.rice.krad.data.provider.annotation.Label; 027 import org.kuali.rice.krad.data.provider.annotation.Relationship; 028 import org.kuali.rice.krad.data.provider.annotation.UifAutoCreateViewType; 029 import org.kuali.rice.krad.data.provider.annotation.UifAutoCreateViews; 030 import org.kuali.rice.krad.data.provider.annotation.UifDisplayHint; 031 import org.kuali.rice.krad.data.provider.annotation.UifDisplayHintType; 032 import org.kuali.rice.krad.data.provider.annotation.UifDisplayHints; 033 import org.kuali.rice.krad.data.provider.annotation.UifValidCharactersConstraintBeanName; 034 035 import javax.persistence.CascadeType; 036 import javax.persistence.Column; 037 import javax.persistence.Entity; 038 import javax.persistence.FetchType; 039 import javax.persistence.GeneratedValue; 040 import javax.persistence.Id; 041 import javax.persistence.JoinColumn; 042 import javax.persistence.ManyToOne; 043 import javax.persistence.Table; 044 import javax.persistence.Temporal; 045 import javax.persistence.TemporalType; 046 import java.io.Serializable; 047 import java.math.BigDecimal; 048 import java.util.Date; 049 050 /** 051 * This class provides the per diem expenses. 052 * 053 * @author Kuali Rice Team (rice.collab@kuali.org) 054 */ 055 @Entity 056 @Table(name = "TRVL_PD_EXP_T") 057 @UifAutoCreateViews({UifAutoCreateViewType.INQUIRY, UifAutoCreateViewType.LOOKUP}) 058 public class TravelPerDiemExpense extends DataObjectBase implements Serializable { 059 060 private static final long serialVersionUID = 6269893036439679855L; 061 062 @Id 063 @Column(name = "PD_EXP_ID", length = 10) 064 @GeneratedValue(generator = "TRVL_PD_EXP_ID_S") 065 @PortableSequenceGenerator(name = "TRVL_PD_EXP_ID_S") 066 @Label("Id") 067 @Description("Unique identifier for per diem expense item") 068 @UifValidCharactersConstraintBeanName("AlphaNumericPatternConstraint") 069 private String travelPerDiemExpenseId; 070 071 @Column(name = "TRVL_AUTH_DOC_ID") 072 private String travelAuthorizationDocumentId; 073 074 @Column(name="TRVL_DEST_ID", length=40) 075 @Label("Primary Destination") 076 @Description("Primary Destination related to per diem expense") 077 @KeyValuesFinderClass(TravelDestinationKeyValues.class) 078 @UifDisplayHints({ 079 @UifDisplayHint(UifDisplayHintType.NONE), 080 @UifDisplayHint(UifDisplayHintType.NO_LOOKUP_RESULT), 081 @UifDisplayHint(UifDisplayHintType.NO_INQUIRY)}) 082 private String travelDestinationId; 083 084 @Relationship(foreignKeyFields="travelDestinationId") 085 @ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.REFRESH}) 086 @JoinColumn(name="TRVL_DEST_ID", insertable=false, updatable=false) 087 @InheritProperties({ 088 @InheritProperty(name="travelDestinationId", 089 label=@Label("Primary Destination"), 090 displayHints=@UifDisplayHints(@UifDisplayHint(UifDisplayHintType.NO_LOOKUP_CRITERIA)))}) 091 @UifDisplayHint(UifDisplayHintType.NO_LOOKUP_CRITERIA) 092 private TravelDestination travelDestination; 093 094 @Temporal(TemporalType.TIMESTAMP) 095 @Column(name = "PD_DT") 096 @Label("Date of Use") 097 private Date perDiemDate; 098 099 @Column(name = "BKFST_VAL") 100 @Label("Breakfast Value") 101 private BigDecimal breakfastValue; 102 103 @Column(name = "LNCH_VAL") 104 @Label("Lunch Value") 105 private BigDecimal lunchValue; 106 107 @Column(name = "DNNR_VAL") 108 @Label("Dinner Value") 109 private BigDecimal dinnerValue; 110 111 @Column(name = "INCD_VAL") 112 @Label("Amount estimated for incidentals") 113 private BigDecimal incidentalsValue; 114 115 @Column(name="MLG_RT_ID", length=40) 116 @Label("Mileage Rate") 117 @Description("Mileage Rate Code Used") 118 @KeyValuesFinderClass(MileageRateKeyValues.class) 119 @UifDisplayHints({ 120 @UifDisplayHint(UifDisplayHintType.NONE), 121 @UifDisplayHint(UifDisplayHintType.NO_LOOKUP_RESULT), 122 @UifDisplayHint(UifDisplayHintType.NO_INQUIRY)}) 123 private String mileageRateId; 124 125 @Relationship(foreignKeyFields="mileageRateId") 126 @ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.REFRESH}) 127 @JoinColumn(name="MLG_RT_ID", insertable=false, updatable=false) 128 @InheritProperties({ 129 @InheritProperty(name="mileageRateCd", 130 label=@Label("Mileage rate"), 131 displayHints=@UifDisplayHints(@UifDisplayHint(UifDisplayHintType.NO_LOOKUP_CRITERIA)))}) 132 private TravelMileageRate mileageRate; 133 134 @Column(name = "MLG_EST") 135 @Label("Number of estimated miles") 136 private BigDecimal estimatedMileage; 137 138 public String getTravelPerDiemExpenseId() { 139 return travelPerDiemExpenseId; 140 } 141 142 public void setTravelPerDiemExpenseId(String travelPerDiemExpenseId) { 143 this.travelPerDiemExpenseId = travelPerDiemExpenseId; 144 } 145 146 public String getTravelAuthorizationDocumentId() { 147 return travelAuthorizationDocumentId; 148 } 149 150 public void setTravelAuthorizationDocumentId(String travelAuthorizationDocumentId) { 151 this.travelAuthorizationDocumentId = travelAuthorizationDocumentId; 152 } 153 154 public Date getPerDiemDate() { 155 return perDiemDate; 156 } 157 158 public void setPerDiemDate(Date perDiemDate) { 159 this.perDiemDate = perDiemDate; 160 } 161 162 public BigDecimal getBreakfastValue() { 163 return breakfastValue; 164 } 165 166 public void setBreakfastValue(BigDecimal breakfastValue) { 167 this.breakfastValue = breakfastValue; 168 } 169 170 public BigDecimal getLunchValue() { 171 return lunchValue; 172 } 173 174 public void setLunchValue(BigDecimal lunchValue) { 175 this.lunchValue = lunchValue; 176 } 177 178 public BigDecimal getDinnerValue() { 179 return dinnerValue; 180 } 181 182 public void setDinnerValue(BigDecimal dinnerValue) { 183 this.dinnerValue = dinnerValue; 184 } 185 186 public BigDecimal getIncidentalsValue() { 187 return incidentalsValue; 188 } 189 190 public void setIncidentalsValue(BigDecimal incidentalsValue) { 191 this.incidentalsValue = incidentalsValue; 192 } 193 194 public String getTravelDestinationId() { 195 return travelDestinationId; 196 } 197 198 public void setTravelDestinationId(String travelDestinationId) { 199 this.travelDestinationId = travelDestinationId; 200 } 201 202 public TravelDestination getTravelDestination() { 203 return travelDestination; 204 } 205 206 public void setTravelDestination(TravelDestination travelDestination) { 207 this.travelDestination = travelDestination; 208 } 209 210 public String getMileageRateId() { 211 return mileageRateId; 212 } 213 214 public void setMileageRateId(String mileageRateId) { 215 this.mileageRateId = mileageRateId; 216 } 217 218 public TravelMileageRate getMileageRate() { 219 return mileageRate; 220 } 221 222 public void setMileageRate(TravelMileageRate mileageRate) { 223 this.mileageRate = mileageRate; 224 } 225 226 public BigDecimal getEstimatedMileage() { 227 return estimatedMileage; 228 } 229 230 public void setEstimatedMileage(BigDecimal estimatedMileage) { 231 this.estimatedMileage = estimatedMileage; 232 } 233 }