Commit 133ef00c authored by ssathu-nisum-com's avatar ssathu-nisum-com Committed by rbonthala-nisum-com

InactivateTheEmployeeFromProjectIfHeInactiveInManageEmployee (#131)

parent 2f529133
...@@ -296,14 +296,18 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -296,14 +296,18 @@ public class ProjectServiceImpl implements ProjectService {
billings.setBillableStatus(pT.getBillableStatus()); billings.setBillableStatus(pT.getBillableStatus());
billings.setAccount(pT.getAccount()); billings.setAccount(pT.getAccount());
billings.setActive(true); billings.setActive(true);
// checking if(pT.getProjectId().equals(MyTimeUtils.BENCH_PROJECT_ID))
/*billings.setBillingStartDate(pT.getStartDate() == null {
billings.setBillingStartDate(pT.getStartDate() == null
? DateUtils.truncate(new Date(), Calendar.DATE) ? DateUtils.truncate(new Date(), Calendar.DATE)
: DateUtils.truncate(pT.getStartDate(), Calendar.DATE));*/ : DateUtils.truncate(pT.getStartDate(), Calendar.DATE));
}else
{
billings.setBillingStartDate(pT.getNewBillingStartDate() == null billings.setBillingStartDate(pT.getNewBillingStartDate() == null
? DateUtils.truncate(new Date(), Calendar.DATE) ? DateUtils.truncate(new Date(), Calendar.DATE)
: DateUtils.truncate(pT.getNewBillingStartDate(), Calendar.DATE)); : DateUtils.truncate(pT.getNewBillingStartDate(), Calendar.DATE));
}
if (pT.getEndDate() != null) { if (pT.getEndDate() != null) {
billings.setBillingEndDate( billings.setBillingEndDate(
......
...@@ -2,6 +2,7 @@ package com.nisum.mytime.service; ...@@ -2,6 +2,7 @@ package com.nisum.mytime.service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -19,9 +20,11 @@ import org.springframework.stereotype.Service; ...@@ -19,9 +20,11 @@ import org.springframework.stereotype.Service;
import com.nisum.mytime.exception.handler.MyTimeException; import com.nisum.mytime.exception.handler.MyTimeException;
import com.nisum.mytime.model.Account; import com.nisum.mytime.model.Account;
import com.nisum.mytime.model.AccountInfo; import com.nisum.mytime.model.AccountInfo;
import com.nisum.mytime.model.BillingDetails;
import com.nisum.mytime.model.Designation; import com.nisum.mytime.model.Designation;
import com.nisum.mytime.model.Domains; import com.nisum.mytime.model.Domains;
import com.nisum.mytime.model.EmpLoginData; import com.nisum.mytime.model.EmpLoginData;
import com.nisum.mytime.model.EmpShiftDetails;
import com.nisum.mytime.model.EmployeeLocationDetails; import com.nisum.mytime.model.EmployeeLocationDetails;
import com.nisum.mytime.model.EmployeeRoles; import com.nisum.mytime.model.EmployeeRoles;
import com.nisum.mytime.model.Location; import com.nisum.mytime.model.Location;
...@@ -41,6 +44,7 @@ import com.nisum.mytime.repository.MasterDataRepo; ...@@ -41,6 +44,7 @@ import com.nisum.mytime.repository.MasterDataRepo;
import com.nisum.mytime.repository.ProjectRepo; import com.nisum.mytime.repository.ProjectRepo;
import com.nisum.mytime.repository.ProjectTeamMatesRepo; import com.nisum.mytime.repository.ProjectTeamMatesRepo;
import com.nisum.mytime.repository.ShiftRepo; import com.nisum.mytime.repository.ShiftRepo;
import com.nisum.mytime.repository.TeamMatesBillingRepo;
import com.nisum.mytime.repository.TechnologyRepo; import com.nisum.mytime.repository.TechnologyRepo;
import com.nisum.mytime.utils.MyTimeUtils; import com.nisum.mytime.utils.MyTimeUtils;
import com.nisum.mytime.utils.PdfReportGenerator; import com.nisum.mytime.utils.PdfReportGenerator;
...@@ -93,6 +97,9 @@ public class UserServiceImpl implements UserService { ...@@ -93,6 +97,9 @@ public class UserServiceImpl implements UserService {
@Autowired @Autowired
private AccountInfoRepo accountInfoRepo; private AccountInfoRepo accountInfoRepo;
@Autowired
private TeamMatesBillingRepo teamMatesBillingRepo;
@Override @Override
public Boolean fetchEmployeesData(String perticularDate, public Boolean fetchEmployeesData(String perticularDate,
boolean resynchFlag) throws MyTimeException { boolean resynchFlag) throws MyTimeException {
...@@ -260,6 +267,28 @@ public class UserServiceImpl implements UserService { ...@@ -260,6 +267,28 @@ public class UserServiceImpl implements UserService {
projectTeamMatesRepo.save(profile); projectTeamMatesRepo.save(profile);
} }
} }
// inactive the employee from the assigned project
if (employeeRoles.getEmpStatus().equals(MyTimeUtils.IN_ACTIVE_SPACE) && employeeRoles.getEndDate() != null
&& employeeRoles.getEndDate().compareTo(new Date()) <= 0) {
List<ProjectTeamMate> projectTeamMate = projectTeamMatesRepo
.findByEmployeeIdAndActive(employeeRoles.getEmployeeId(), true);
if (projectTeamMate.size()==1) {
ProjectTeamMate teamMate = projectTeamMate.get(0);
teamMate.setActive(false);
teamMate.setEndDate(employeeRoles.getEndDate());
List<BillingDetails> listBD = getEmployeeActiveBillingDetails(teamMate.getEmployeeId(),
teamMate.getProjectId());
if (listBD != null && !listBD.isEmpty()) {
BillingDetails billingDetailsExisting = listBD.get(0);
billingDetailsExisting.setBillingEndDate(employeeRoles.getEndDate());
billingDetailsExisting.setActive(false);
teamMatesBillingRepo.save(billingDetailsExisting);
}
projectTeamMatesRepo.save(teamMate);
updateShiftDetails(teamMate);
}
}
} catch (Exception e) { } catch (Exception e) {
} }
return emp; return emp;
...@@ -495,4 +524,35 @@ public class UserServiceImpl implements UserService { ...@@ -495,4 +524,35 @@ public class UserServiceImpl implements UserService {
return domains; return domains;
} }
public List<BillingDetails> getEmployeeActiveBillingDetails(String empId, String projectId) {
Query query4 = new Query();
query4.addCriteria(Criteria.where("active").is(new Boolean(true)));
query4.addCriteria(Criteria.where("employeeId").is(empId));
query4.addCriteria(Criteria.where("projectId").is(projectId));
List<BillingDetails> billings = mongoTemplate.find(query4, BillingDetails.class);
List<BillingDetails> billingsSorted = billings;
try {
billingsSorted = (billings == null || billings.size() == 0) ? billings
: billings.stream().sorted(Comparator.comparing(BillingDetails::getBillingStartDate).reversed())
.collect(Collectors.toList());
} catch (Exception e) {
// TODO: handle exception
}
return billingsSorted;
}
public void updateShiftDetails(ProjectTeamMate existingTeammate) {
Query getQuery = new Query();
getQuery.addCriteria(new Criteria().andOperator(Criteria.where("active").is(true),
Criteria.where("employeeId").is(existingTeammate.getEmployeeId())));
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
EmpShiftDetails existingShift = mongoTemplate.findOne(getQuery, EmpShiftDetails.class);
if (existingShift != null) {
existingShift.setActive(false);
existingShift.setUpdatedDate(new Date());
mongoTemplate.save(existingShift);
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment