Commit b89c156d authored by Rajeshekar's avatar Rajeshekar

MT-51[Rajeshekar]: Capture the project team mate status with dates

parent 20b455e3
...@@ -68,4 +68,6 @@ public interface ProjectService { ...@@ -68,4 +68,6 @@ public interface ProjectService {
List<BillingDetails> getEmployeeActiveBillingDetails(String empId, List<BillingDetails> getEmployeeActiveBillingDetails(String empId,
String projectId); String projectId);
List<BillingDetails> getEmployeeActiveNisumBench(String empId);
} }
...@@ -136,6 +136,15 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -136,6 +136,15 @@ public class ProjectServiceImpl implements ProjectService {
public ProjectTeamMate addProjectTeamMate(ProjectTeamMate projectTeamMate) public ProjectTeamMate addProjectTeamMate(ProjectTeamMate projectTeamMate)
throws MyTimeException { throws MyTimeException {
ProjectTeamMate pT = projectTeamMatesRepo.save(projectTeamMate); ProjectTeamMate pT = projectTeamMatesRepo.save(projectTeamMate);
List<BillingDetails> listBD = getEmployeeActiveNisumBench(
pT.getEmployeeId());
for (BillingDetails b : listBD) {
Date d = new Date();
d.setDate(d.getDate() - 1);
b.setBillingEndDate(d);
b.setActive(false);
updateEmployeeBilling(b);
}
BillingDetails billings = new BillingDetails(); BillingDetails billings = new BillingDetails();
billings.setEmployeeId(pT.getEmployeeId()); billings.setEmployeeId(pT.getEmployeeId());
billings.setEmployeeName(pT.getEmployeeName()); billings.setEmployeeName(pT.getEmployeeName());
...@@ -146,6 +155,7 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -146,6 +155,7 @@ public class ProjectServiceImpl implements ProjectService {
billings.setBillingStartDate(pT.getStartDate()); billings.setBillingStartDate(pT.getStartDate());
billings.setBillingEndDate(pT.getEndDate()); billings.setBillingEndDate(pT.getEndDate());
billings.setCreateDate(new Date()); billings.setCreateDate(new Date());
addEmployeeBillingDetails(billings); addEmployeeBillingDetails(billings);
return pT; return pT;
} }
...@@ -169,7 +179,9 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -169,7 +179,9 @@ public class ProjectServiceImpl implements ProjectService {
projectTeamMate.getProjectId()); projectTeamMate.getProjectId());
if (listBD != null && !listBD.isEmpty()) { if (listBD != null && !listBD.isEmpty()) {
BillingDetails billingDetails = listBD.get(0); BillingDetails billingDetails = listBD.get(0);
billingDetails.setBillingEndDate(new Date()); Date d = new Date();
d.setDate(d.getDate() - 1);
billingDetails.setBillingEndDate(d);
billingDetails.setActive(false); billingDetails.setActive(false);
updateEmployeeBilling(billingDetails); updateEmployeeBilling(billingDetails);
} }
...@@ -203,6 +215,26 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -203,6 +215,26 @@ public class ProjectServiceImpl implements ProjectService {
ProjectTeamMate existingTeammate = projectTeamMatesRepo.findById(id); ProjectTeamMate existingTeammate = projectTeamMatesRepo.findById(id);
existingTeammate.setActive(false); existingTeammate.setActive(false);
existingTeammate.setEndDate(new Date()); existingTeammate.setEndDate(new Date());
BillingDetails billingDetails = new BillingDetails();
billingDetails.setBillableStatus("Bench");
billingDetails.setBillingStartDate(new Date());
billingDetails.setActive(true);
billingDetails.setEmployeeId(existingTeammate.getEmployeeId());
billingDetails.setEmployeeName(existingTeammate.getEmployeeName());
billingDetails.setCreateDate(new Date());
billingDetails.setProjectId("Nisum0000");
billingDetails.setProjectName("Free Pool");
addEmployeeBillingDetails(billingDetails);
List<BillingDetails> listBD = getEmployeeActiveBillingDetails(empId,
projectId);
if (listBD != null && !listBD.isEmpty()) {
BillingDetails billingDetailsExisting = listBD.get(0);
Date d = new Date();
d.setDate(d.getDate() - 1);
billingDetailsExisting.setBillingEndDate(d);
billingDetailsExisting.setActive(false);
updateEmployeeBilling(billingDetailsExisting);
}
projectTeamMatesRepo.save(existingTeammate); projectTeamMatesRepo.save(existingTeammate);
} }
...@@ -324,6 +356,32 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -324,6 +356,32 @@ public class ProjectServiceImpl implements ProjectService {
String projectId) { String projectId) {
Query query4 = new Query(); Query query4 = new Query();
query4.addCriteria(Criteria.where("active").is(new Boolean(true))); 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;
}
@Override
public List<BillingDetails> getEmployeeActiveNisumBench(String empId) {
Query query4 = new Query();
query4.addCriteria(Criteria.where("active").is(new Boolean(true)));
query4.addCriteria(Criteria.where("projectId").is("Nisum0000"));
query4.addCriteria(Criteria.where("employeeId").is(empId));
List<BillingDetails> billings = mongoTemplate.find(query4, List<BillingDetails> billings = mongoTemplate.find(query4,
BillingDetails.class); BillingDetails.class);
List<BillingDetails> billingsSorted = billings; List<BillingDetails> billingsSorted = billings;
......
...@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; ...@@ -15,6 +15,7 @@ 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.BillingDetails;
import com.nisum.mytime.model.Designation; import com.nisum.mytime.model.Designation;
import com.nisum.mytime.model.EmpLoginData; import com.nisum.mytime.model.EmpLoginData;
import com.nisum.mytime.model.EmployeeRoles; import com.nisum.mytime.model.EmployeeRoles;
...@@ -42,6 +43,8 @@ public class UserServiceImpl implements UserService { ...@@ -42,6 +43,8 @@ public class UserServiceImpl implements UserService {
@Autowired @Autowired
private ProjectTeamMatesRepo projectTeamMatesRepo; private ProjectTeamMatesRepo projectTeamMatesRepo;
@Autowired
private ProjectService projectService;
@Autowired @Autowired
private ShiftRepo shiftRepo; private ShiftRepo shiftRepo;
...@@ -100,6 +103,19 @@ public class UserServiceImpl implements UserService { ...@@ -100,6 +103,19 @@ public class UserServiceImpl implements UserService {
employeeRoles.setCreatedOn(new Date()); employeeRoles.setCreatedOn(new Date());
employeeRoles.setEmpStatus("Active"); employeeRoles.setEmpStatus("Active");
employeeRoles.setEmploymentType("Full Time"); employeeRoles.setEmploymentType("Full Time");
BillingDetails billingDetails = new BillingDetails();
billingDetails.setBillableStatus("Bench");
billingDetails
.setBillingStartDate(employeeRoles.getDateOfJoining() != null
? employeeRoles.getDateOfJoining()
: new Date());
billingDetails.setActive(true);
billingDetails.setEmployeeId(employeeRoles.getEmployeeId());
billingDetails.setEmployeeName(employeeRoles.getEmployeeName());
billingDetails.setCreateDate(new Date());
billingDetails.setProjectId("Nisum0000");
billingDetails.setProjectName("Free Pool");
projectService.addEmployeeBillingDetails(billingDetails);
return employeeRolesRepo.save(employeeRoles); return employeeRolesRepo.save(employeeRoles);
} }
......
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