Skip to content

Commit

Permalink
updated timetrack to include more department in leave management model.
Browse files Browse the repository at this point in the history
Updated struts to the latest
  • Loading branch information
sibow committed Dec 13, 2024
1 parent f62a94e commit b973df1
Show file tree
Hide file tree
Showing 11 changed files with 88 additions and 10 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>6.4.0</version>
<version>6.7.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ public List<GroupManager> getManagers(){
getPay_period_id();
gml.setPay_period_id(pay_period_id);
gml.setApproversOnly();
// gml.setLeaveReviewOnly();
String back = gml.find();
if(back.isEmpty()){
List<GroupManager> ones = gml.getManagers();
Expand Down
26 changes: 25 additions & 1 deletion src/main/java/in/bloomington/timer/bean/Employee.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public class Employee implements Serializable, Comparable<Employee>{
List<GroupManager> processors = null;
List<GroupManager> reviewers = null;
List<GroupManager> enterors = null;
List<GroupManager> leaveReviewers = null;
List<DepartmentEmployee> departmentEmployees = null;
// List<GroupEmployee> groupEmployees = null;
// List<GroupEmployee> allGroupEmployees = null; // include expired ones too
Expand Down Expand Up @@ -692,7 +693,10 @@ public List<GroupManager> getReviewers(){
}
public List<GroupManager> getEnterors(){
return enterors;
}
}
public List<GroupManager> getLeaveReviewers(){
return leaveReviewers;
}
public boolean canPayrollProcess(){
if(processors == null){
GroupManagerList gml = new GroupManagerList(id);
Expand Down Expand Up @@ -753,6 +757,26 @@ public boolean canMaintain(){
}
return enterors != null && enterors.size() > 0;
}

public boolean canLeaveReview(){
if(leaveReviewers == null){
GroupManagerList gml = new GroupManagerList(id);
gml.setActiveOnly();
gml.setLeaveReviewOnly();
if(pay_period_id.isEmpty()){
findPayPeriod();
}
gml.setPay_period_id(pay_period_id);
String back = gml.find();
if(back.isEmpty()){
List<GroupManager> ones = gml.getManagers();
if(ones != null){
leaveReviewers = ones;
}
}
}
return leaveReviewers != null && leaveReviewers.size() > 0;
}
public boolean isGroupManager(){
if(groupManagers == null){
GroupManagerList gml = new GroupManagerList(id);
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/in/bloomington/timer/bean/Group.java
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,10 @@ public String doDelete(){
//
check groups for clock_time_required flag for parks groups
//
//
*/


Expand Down
6 changes: 6 additions & 0 deletions src/main/java/in/bloomington/timer/bean/GroupManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -533,3 +533,9 @@ public String doDelete(){
}

}
/**
insert into workflow_nodes values(7,'Leave Review','Review Leave Request','y','Leave Reviewed',null);
insert into group_managers select 0,m.group_id,m.employee_id,7,m.start_date,null,m.primary_flag,null from group_managers m,groups g where m.expire_date is null and m.group_id=g.id and m.wf_node_id=3 and m.primary_flag is not null and g.department_id not in (8,16,30,36);
*/
21 changes: 16 additions & 5 deletions src/main/java/in/bloomington/timer/bean/JobTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,25 @@ public class JobTask implements Serializable{
static final long serialVersionUID = 2400L;
static Set<String> deptSet = new HashSet<>();
static {
deptSet.add("1");
deptSet.add("4");
deptSet.add("6"); // clerk
deptSet.add("20"); // Police
deptSet.add("23"); // Utilities
deptSet.add("36"); // council
/**
deptSet.add("1"); // ITS
deptSet.add("3");
deptSet.add("4"); // HAND
deptSet.add("5"); // Park
deptSet.add("7"); // planning
deptSet.add("8");
deptSet.add("9");
deptSet.add("10");
deptSet.add("11");
deptSet.add("14");
deptSet.add("15");
deptSet.add("45");
deptSet.add("16"); // fire
deptSet.add("45");
*/
}
private String id="",
employee_id="", group_id="",
Expand Down Expand Up @@ -424,10 +435,10 @@ public boolean isPunchClockOnly(){
}
public boolean isLeaveEligible(){
getSalaryGroup();
// for ITS, HR, CONTROLLER, ESD, CFRD
getGroup();
if(group != null){
if(deptSet.contains(group.getDepartment_id())){
// if not one of excluded
if(!deptSet.contains(group.getDepartment_id())){
return salaryGroup != null && salaryGroup.isLeaveEligible();
}
}
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/in/bloomington/timer/bean/LeaveLog.java
Original file line number Diff line number Diff line change
Expand Up @@ -475,4 +475,9 @@ primary key(id),
foreign key(reviewed_by) references employees(id)
)engine=InnoDB;
insert into leave_logs select 0,id,job_id,start_date,end_date,hour_code_ids,total_hours,request_details,initiated_by,request_date,null,null,null,null,null from leave_requests where request_date < '2024-12-11';
insert into leave_logs select 0,l.id,l.job_id,l.start_date,l.end_date,l.hour_code_ids,l.total_hours,l.request_details,l.initiated_by,l.request_date,r.id,r.review_date,r.review_status,r.review_notes,r.reviewed_by from leave_requests l, leave_reviews r where r.leave_id= l.id and l.request_date < '2024-12-11';
*/
8 changes: 8 additions & 0 deletions src/main/java/in/bloomington/timer/list/EmployeeList.java
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,14 @@ else if(!pay_period_id.isEmpty() &&
select distinct e.id,e.username,e.first_name,e.last_name,e.id_code,e.employee_number,e.ad_sid,e.email,e.roles,date_format(e.added_date,'%m/%d/%Y'),e.inactive from employees e join department_employees de on de.employee_id=e.id left join jobs j on j.employee_id=e.id left join `groups` g on g.id=j.group_id, pay_periods pd where pd.id=631 and (de.department_id = 3 or de.department2_id=3 or g.department_id=3) and ((de.effective_date <= pd.start_date and de.expire_date is null or de.expire_date >= pd.end_date ) or (j.effective_date <= pd.start_date and j.expire_date is null or j.expire_date >= pd.end_date)) and e.employee_number is not null order by e.last_name,e.first_name
select distinct concat_ws(' ',e.first_name,e.last_name),e.email
from employees e
join jobs j on j.employee_id=e.id join `groups` g on g.id=j.group_id
where j.expire_date is null and g.department_id=16
and j.salary_group_id in (1,2,5,11);
*/


Expand Down
8 changes: 8 additions & 0 deletions src/main/java/in/bloomington/timer/list/GroupManagerList.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public class GroupManagerList{
processorsOnly=false, exclude_reviewers = false,
reviewersOnly=false, timeMaintainOnly = false,
approversAndProcessorsOnly = false,
leaveReviewOnly = false,
notExpired = false;

List<GroupManager> managers = null;
Expand Down Expand Up @@ -71,6 +72,9 @@ public void setReviewersOnly(){
public void setProcessorsOnly(){
processorsOnly = true;
}
public void setLeaveReviewOnly(){
leaveReviewOnly = true;
}
public void setApproversAndProcessorsOnly(){
approversAndProcessorsOnly = true;
}
Expand Down Expand Up @@ -135,6 +139,10 @@ else if(!group_ids.isEmpty()){
if(!qw.isEmpty()) qw += " and ";
qw += " wn.name like 'Approve'";
}
else if(leaveReviewOnly){
if(!qw.isEmpty()) qw += " and ";
qw += " wn.name like 'Leave%'";
}
else if(processorsOnly){
if(!qw.isEmpty()) qw += " and ";
qw += " wn.name like 'Payroll%'";
Expand Down
10 changes: 8 additions & 2 deletions src/main/webapp/WEB-INF/jsp/employee.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -155,14 +155,15 @@
</s:if>
<s:if test="emp.canPayrollProcess()">
<s:set var="groupManagers" value="%{emp.processors}" />
<s:set var="groupManagersTitle" value="'Payroll Approver of Groups '" />
<s:set var="groupManagersTitle" value="'Payroll Approver of Groups'" />
<%@ include file="groupManagers.jsp" %>
</s:if>
<s:if test="emp.canApprove()">
<s:set var="groupManagers" value="%{emp.approvers}" />
<s:set var="groupManagersTitle" value="'Approver of Groups '" />
<%@ include file="groupManagers.jsp" %>
</s:if>

<s:if test="emp.canReview()">
<s:set var="groupManagers" value="%{emp.reviewers}" />
<s:set var="groupManagersTitle" value="'Review of Groups'" />
Expand All @@ -172,7 +173,12 @@
<s:set var="groupManagers" value="%{emp.enterors}" />
<s:set var="groupManagersTitle" value="'Maintain of Groups'" />
<%@ include file="groupManagers.jsp" %>
</s:if>
</s:if>
<s:if test="emp.canLeaveReview()">
<s:set var="groupManagers" value="%{emp.leaveReviewers}" />
<s:set var="groupManagersTitle" value="'Leave Reviewer of Groups'"/>
<%@ include file="groupManagers.jsp" %>
</s:if>
</s:if>
</div>
<%@ include file="footer.jsp" %>
7 changes: 6 additions & 1 deletion src/main/webapp/WEB-INF/jsp/employeeView.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,12 @@
<s:set var="groupManagers" value="%{emp.enterors}" />
<s:set var="groupManagersTitle" value="'Maintainers of Groups'" />
<%@ include file="groupManagers.jsp" %>
</s:if>
</s:if>
<s:if test="emp.canLeaveReview()">
<s:set var="groupManagers" value="%{emp.leaveReviewers}" />
<s:set var="groupManagersTitle" value="'Leave Reviewer of Groups'"/>
<%@ include file="groupManagers.jsp" %>
</s:if>
</s:if>

</div>
Expand Down

0 comments on commit b973df1

Please sign in to comment.