View Javadoc
1   /**
2    * Copyright 2005-2014 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package edu.sampleu.travel.dataobject;
17  
18  import edu.sampleu.travel.options.MileageRateKeyValues;
19  import edu.sampleu.travel.options.TravelDestinationKeyValues;
20  import org.kuali.rice.krad.bo.DataObjectBase;
21  import org.kuali.rice.krad.data.jpa.PortableSequenceGenerator;
22  import org.kuali.rice.krad.data.provider.annotation.Description;
23  import org.kuali.rice.krad.data.provider.annotation.InheritProperties;
24  import org.kuali.rice.krad.data.provider.annotation.InheritProperty;
25  import org.kuali.rice.krad.data.provider.annotation.KeyValuesFinderClass;
26  import org.kuali.rice.krad.data.provider.annotation.Label;
27  import org.kuali.rice.krad.data.provider.annotation.Relationship;
28  import org.kuali.rice.krad.data.provider.annotation.UifAutoCreateViewType;
29  import org.kuali.rice.krad.data.provider.annotation.UifAutoCreateViews;
30  import org.kuali.rice.krad.data.provider.annotation.UifDisplayHint;
31  import org.kuali.rice.krad.data.provider.annotation.UifDisplayHintType;
32  import org.kuali.rice.krad.data.provider.annotation.UifDisplayHints;
33  import org.kuali.rice.krad.data.provider.annotation.UifValidCharactersConstraintBeanName;
34  
35  import javax.persistence.CascadeType;
36  import javax.persistence.Column;
37  import javax.persistence.Entity;
38  import javax.persistence.FetchType;
39  import javax.persistence.GeneratedValue;
40  import javax.persistence.Id;
41  import javax.persistence.JoinColumn;
42  import javax.persistence.ManyToOne;
43  import javax.persistence.Table;
44  import javax.persistence.Temporal;
45  import javax.persistence.TemporalType;
46  import java.io.Serializable;
47  import java.math.BigDecimal;
48  import java.util.Date;
49  
50  /**
51   * This class provides the per diem expenses.
52   *
53   * @author Kuali Rice Team (rice.collab@kuali.org)
54   */
55  @Entity
56  @Table(name = "TRVL_PD_EXP_T")
57  @UifAutoCreateViews({UifAutoCreateViewType.INQUIRY, UifAutoCreateViewType.LOOKUP})
58  public class TravelPerDiemExpense extends DataObjectBase implements Serializable {
59  
60      private static final long serialVersionUID = 6269893036439679855L;
61  
62      @Id
63      @Column(name = "PD_EXP_ID", length = 10)
64      @GeneratedValue(generator = "TRVL_PD_EXP_ID_S")
65      @PortableSequenceGenerator(name = "TRVL_PD_EXP_ID_S")
66      @Label("Id")
67      @Description("Unique identifier for per diem expense item")
68      @UifValidCharactersConstraintBeanName("AlphaNumericPatternConstraint")
69      private String travelPerDiemExpenseId;
70  
71      @Column(name = "TRVL_AUTH_DOC_ID")
72      private String travelAuthorizationDocumentId;
73  
74      @Column(name="TRVL_DEST_ID", length=40)
75      @Label("Primary Destination")
76      @Description("Primary Destination related to per diem expense")
77      @KeyValuesFinderClass(TravelDestinationKeyValues.class)
78      @UifDisplayHints({
79              @UifDisplayHint(UifDisplayHintType.NONE),
80              @UifDisplayHint(UifDisplayHintType.NO_LOOKUP_RESULT),
81              @UifDisplayHint(UifDisplayHintType.NO_INQUIRY)})
82      private String travelDestinationId;
83  
84      @Relationship(foreignKeyFields="travelDestinationId")
85      @ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.REFRESH})
86      @JoinColumn(name="TRVL_DEST_ID", insertable=false, updatable=false)
87      @InheritProperties({
88              @InheritProperty(name="travelDestinationId",
89                      label=@Label("Primary Destination"),
90                      displayHints=@UifDisplayHints(@UifDisplayHint(UifDisplayHintType.NO_LOOKUP_CRITERIA)))})
91      @UifDisplayHint(UifDisplayHintType.NO_LOOKUP_CRITERIA)
92      private TravelDestination travelDestination;
93  
94      @Temporal(TemporalType.TIMESTAMP)
95      @Column(name = "PD_DT")
96      @Label("Date of Use")
97      private Date perDiemDate;
98  
99      @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 }