View Javadoc

1   /**
2    * Copyright 2004-2013 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 org.kuali.hr.time.earncode.service;
17  
18  import org.kuali.hr.time.assignment.Assignment;
19  import org.kuali.hr.time.earncode.EarnCode;
20  import org.springframework.cache.annotation.Cacheable;
21  
22  import java.math.BigDecimal;
23  import java.sql.Date;
24  import java.util.List;
25  import java.util.Map;
26  
27  public interface EarnCodeService {
28      /**
29       * Fetch a list of earn codes for Leave usage and Time usage, for a particular assignment as of a particular date
30       * @param a
31       * @param asOfDate
32       * @param isLeavePlanningCalendar
33       * @return
34       */
35      @Cacheable(value=EarnCode.CACHE_NAME, key="'{getEarnCodesForLeaveAndTime}' + 'principalId=' + T(org.kuali.hr.time.util.TKContext).getPrincipalId() + '|' + 'targetId=' + T(org.kuali.hr.time.util.TKContext).getTargetPrincipalId() + '|' + 'a=' + #p0.getTkAssignmentId() + '|' + 'asOfDate=' + #p1 + '|' + 'isLeavePlanningCalendar=' +#p2")
36      public List<EarnCode> getEarnCodesForLeaveAndTime(Assignment a, Date asOfDate, boolean isLeavePlanningCalendar);
37  
38      /**
39       * Fetch a list of earn codes for Time usage, for a particular assignment as of a particular date
40       * @param a
41       * @param asOfDate
42       * @return
43       */
44      @Cacheable(value=EarnCode.CACHE_NAME, key="'{getEarnCodesForTime}' + 'principalId=' + T(org.kuali.hr.time.util.TKContext).getPrincipalId() + '|' + 'targetId=' + T(org.kuali.hr.time.util.TKContext).getTargetPrincipalId() + '|' + 'a=' + #p0.getTkAssignmentId() + '|' + 'asOfDate=' + #p1 + '|' + 'includeRegularEarnCode=' + false")
45      public List<EarnCode> getEarnCodesForTime(Assignment a, Date asOfDate);
46  
47      /**
48       * Fetch a list of earn codes for Time usage, for a particular assignment as of a particular date
49       * @param a
50       * @param asOfDate
51       * @return
52       */
53      @Cacheable(value=EarnCode.CACHE_NAME, key="'{getEarnCodesForTime}' + 'principalId=' + T(org.kuali.hr.time.util.TKContext).getPrincipalId() + '|' + 'targetId=' + T(org.kuali.hr.time.util.TKContext).getTargetPrincipalId() + '|' + 'a=' + #p0.getTkAssignmentId() + '|' + 'asOfDate=' + #p1 + '|' + 'includeRegularEarnCode=' + #p2")
54      public List<EarnCode> getEarnCodesForTime(Assignment a, Date asOfDate, boolean includeRegularEarnCode);
55  
56  	/**
57  	 * Fetch a list of earn codes for Leave usage, for a particular assignment as of a particular date
58       * @param a
59       * @param asOfDate
60       * @param isLeavePlanningCalendar
61  	 * @return
62  	 */
63      @Cacheable(value=EarnCode.CACHE_NAME, key="'{getEarnCodesForLeave}' + 'principalId=' + T(org.kuali.hr.time.util.TKContext).getPrincipalId() + '|' + 'targetId=' + T(org.kuali.hr.time.util.TKContext).getTargetPrincipalId() + '|' + 'a=' + #p0.getTkAssignmentId() + '|' + 'asOfDate=' + #p1 + '|' + 'isLeavePlanningCalendar=' +#p2")
64      public List<EarnCode> getEarnCodesForLeave(Assignment a, Date asOfDate, boolean isLeavePlanningCalendar);
65  
66      /**
67       * Fetch a list of earn codes based on principal ID as of a particular date
68       * @param principalId
69       * @param asOfDate
70       * @param isLeavePlanningCalendar
71       * @return
72       */
73      @Cacheable(value=EarnCode.CACHE_NAME, key="'principalId=' + #p0 + '|' + 'asOfDate=' + #p1 + '|' + 'isLeavePlanningCalendar=' +#p2")
74      public List<EarnCode> getEarnCodesForPrincipal(String principalId, Date asOfDate, boolean isLeavePlanningCalendar);
75  
76      /**
77       * Fetch an EarnCode as of a particular date
78       * @param earnCode
79       * @param asOfDate
80       * @return
81       */
82      @Cacheable(value=EarnCode.CACHE_NAME, key="'earnCode=' + #p0 + '|' + 'asOfDate=' + #p1")
83  	public EarnCode getEarnCode(String earnCode, Date asOfDate);
84  
85      /**
86       * Fetch the earn code type for a particular date
87       * @param earnCode
88       * @param asOfDate
89       * @return
90       */
91      @Cacheable(value=EarnCode.CACHE_NAME, key="'{getEarnCodeType}' + 'earnCode=' + #p0 + '|' + 'asOfDate=' + #p1")
92      String getEarnCodeType(String earnCode, Date asOfDate);
93      
94      /**
95       * Fetch earn code by id
96       * @param earnCodeId
97       * @return
98       */
99      @Cacheable(value=EarnCode.CACHE_NAME, key="'earnCodeId=' + #p0")
100     public EarnCode getEarnCodeById(String earnCodeId);
101     
102     /**
103      * Fetch list of system defined overtime earn codes
104      * @param asOfDate
105      * @return
106      */
107     @Cacheable(value=EarnCode.CACHE_NAME, key="'{getOvertimeEarnCodes}' + 'asOfDate=' + #p0")
108     public List<EarnCode> getOvertimeEarnCodes(Date asOfDate);
109 
110 
111     /**
112      * Fetch list of system defined overtime earn codes as strings
113      * @param asOfDate
114      * @return
115      */
116     @Cacheable(value=EarnCode.CACHE_NAME, key="'{getOvertimeEarnCodesStrs}' + 'asOfDate=' + #p0")
117     public List<String> getOvertimeEarnCodesStrs(Date asOfDate);
118 
119     /**
120 	 * get count of earn code with give earnCode
121 	 * @param earnCode
122 	 * @return int
123 	 */
124     public int getEarnCodeCount(String earnCode);
125 
126     /**
127 	 * get count of newer version of earn code with give earnCode and date
128 	 * @param earnCode
129 	 * @param effdt
130 	 * @return int
131 	 */
132     public int getNewerEarnCodeCount(String earnCode, Date effdt);
133     
134     /**
135      * roundHrsWithLEarnCode
136      * @param hours
137      * @param earnCode
138      * @return
139      */
140     public BigDecimal roundHrsWithEarnCode(BigDecimal hours, EarnCode earnCode);
141 
142     /**
143      * @param principalId
144      * @param isLeavePlanningCalendar
145      * @return
146      */
147     @Cacheable(value= EarnCode.CACHE_NAME, key="'{getEarnCodesForDisplay}' + 'principalId=' + #p0 + '|' + 'isLeavePlanningCalendar=' +#p1")
148     public Map<String, String> getEarnCodesForDisplay(String principalId, boolean isLeavePlanningCalendar);
149 
150     /**
151      * @param principalId
152      * @param asOfDate
153      * @return
154      */
155     @Cacheable(value= EarnCode.CACHE_NAME, key="'{getEarnCodesForDisplayWithEffectiveDate}' + 'principalId=' + #p0 + '|' + 'asOfDate=' + #p1 + '|' + 'isLeavePlanningCalendar=' +#p2")
156     public Map<String, String> getEarnCodesForDisplayWithEffectiveDate(String principalId, Date asOfDate, boolean isLeavePlanningCalendar);
157 
158     List<EarnCode> getEarnCodes(String earnCode, String ovtEarnCode, String leavePlan, String accrualCategory, String descr, Date fromEffdt, Date toEffdt, String active, String showHist);
159 }