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

UpdateTeamMateChanges (#123)

parent 8257ab73
......@@ -296,9 +296,15 @@ public class ProjectServiceImpl implements ProjectService {
billings.setBillableStatus(pT.getBillableStatus());
billings.setAccount(pT.getAccount());
billings.setActive(true);
billings.setBillingStartDate(pT.getStartDate() == null
// checking
/*billings.setBillingStartDate(pT.getStartDate() == null
? DateUtils.truncate(new Date(), Calendar.DATE)
: DateUtils.truncate(pT.getStartDate(), Calendar.DATE));
: DateUtils.truncate(pT.getStartDate(), Calendar.DATE));*/
billings.setBillingStartDate(pT.getNewBillingStartDate() == null
? DateUtils.truncate(new Date(), Calendar.DATE)
: DateUtils.truncate(pT.getNewBillingStartDate(), Calendar.DATE));
if (pT.getEndDate() != null) {
billings.setBillingEndDate(
DateUtils.truncate(pT.getEndDate(), Calendar.DATE));
......@@ -342,18 +348,19 @@ public class ProjectServiceImpl implements ProjectService {
@Override
public ProjectTeamMate updateTeammate(ProjectTeamMate projectTeamMate) {
ProjectTeamMate existingTeammate1 = projectTeamMatesRepo.findById(projectTeamMate.getId());
//ProjectTeamMate existingTeammate1 = projectTeamMatesRepo.findById(projectTeamMate.getId());
ProjectTeamMate existingTeammate = projectTeamMatesRepo
.findByEmployeeIdAndProjectId(projectTeamMate.getEmployeeId(),
projectTeamMate.getProjectId());
List<BillingDetails> listBD = getEmployeeActiveBillingDetails(projectTeamMate.getEmployeeId(),
projectTeamMate.getProjectId());
// past or present endDate (Inactive the Resource)
if (projectTeamMate.getEndDate().compareTo(new Date()) <= 0 &&projectTeamMate.getEndDate().compareTo(existingTeammate1.getEndDate())!=0) {
if (projectTeamMate.getEndDate().compareTo(new Date()) <= 0 &&projectTeamMate.getEndDate().compareTo(existingTeammate.getEndDate())!=0) {
existingTeammate1.setActive(false);
//existingTeammate1.setEndDate(new Date());
existingTeammate1.setEndDate(projectTeamMate.getEndDate());
existingTeammate.setActive(false);
existingTeammate.setEndDate(projectTeamMate.getEndDate());
BillingDetails billingDetails = new BillingDetails();
billingDetails.setBillableStatus("Non-Billable");
List<BillingDetails> listBD = getEmployeeActiveBillingDetails(projectTeamMate.getEmployeeId(),
projectTeamMate.getProjectId());
billingDetails.setBillableStatus(MyTimeUtils.BENCH_BILLABILITY_STATUS);
if (listBD != null && !listBD.isEmpty()) {
BillingDetails billingDetailsExisting = listBD.get(0);
/*Date d = new Date();
......@@ -368,43 +375,43 @@ public class ProjectServiceImpl implements ProjectService {
//billingDetails.setBillingStartDate(new Date());
Date sd=projectTeamMate.getEndDate();
sd.setDate(sd.getDate()+1);
//sd.setDate(sd.getDate()+1);
billingDetails.setBillingStartDate(sd);
billingDetails.setAccount("Nisum India");
billingDetails.setAccount(MyTimeUtils.BENCH_ACCOUNT);
billingDetails.setActive(true);
billingDetails.setEmployeeId(existingTeammate1.getEmployeeId());
billingDetails.setEmployeeName(existingTeammate1.getEmployeeName());
billingDetails.setEmployeeId(existingTeammate.getEmployeeId());
billingDetails.setEmployeeName(existingTeammate.getEmployeeName());
billingDetails.setCreateDate(new Date());
billingDetails.setProjectId("Nisum0000");
billingDetails.setProjectId(MyTimeUtils.BENCH_PROJECT_ID);
billingDetails.setProjectName(MyTimeUtils.FREE_POLL);
addEmployeeBillingDetails(billingDetails);
projectTeamMatesRepo.save(existingTeammate1);
projectTeamMatesRepo.save(existingTeammate);
ProjectTeamMate newBenchAllocation = new ProjectTeamMate();
newBenchAllocation.setAccount("Nisum India");
newBenchAllocation.setBillableStatus("Non-Billable");
newBenchAllocation.setDesignation(existingTeammate1.getDesignation());
newBenchAllocation.setEmailId(existingTeammate1.getEmailId());
newBenchAllocation.setEmployeeId(existingTeammate1.getEmployeeId());
newBenchAllocation.setAccountId(projectTeamMate.getAccountId());
newBenchAllocation.setBillableStatus(MyTimeUtils.BENCH_BILLABILITY_STATUS);
newBenchAllocation.setDesignation(existingTeammate.getDesignation());
newBenchAllocation.setEmailId(existingTeammate.getEmailId());
newBenchAllocation.setEmployeeId(existingTeammate.getEmployeeId());
newBenchAllocation.setActive(true);
newBenchAllocation.setEmployeeName(existingTeammate1.getEmployeeName());
newBenchAllocation.setProjectId("Nisum0000");
newBenchAllocation.setEmployeeName(existingTeammate.getEmployeeName());
newBenchAllocation.setProjectId(MyTimeUtils.BENCH_PROJECT_ID);
//newBenchAllocation.setStartDate(new Date());
newBenchAllocation.setStartDate(sd);
Project p = projectRepo.findByProjectId("Nisum0000");
Project p = projectRepo.findByProjectId(MyTimeUtils.BENCH_PROJECT_ID);
newBenchAllocation.setProjectName(p.getProjectName());
// newBenchAllocation.setManagerId(p.getManagerId());
// newBenchAllocation.setManagerName(p.getManagerName());
projectTeamMatesRepo.save(newBenchAllocation);
updateShiftDetails(existingTeammate1);
return existingTeammate1;
updateShiftDetails(existingTeammate);
return existingTeammate;
}else
{
ProjectTeamMate existingTeammate = projectTeamMatesRepo
/*ProjectTeamMate existingTeammate = projectTeamMatesRepo
.findByEmployeeIdAndProjectId(projectTeamMate.getEmployeeId(),
projectTeamMate.getProjectId());
projectTeamMate.getProjectId());*/
existingTeammate.setProjectId(projectTeamMate.getProjectId());
existingTeammate.setProjectName(projectTeamMate.getProjectName());
existingTeammate.setRole(projectTeamMate.getRole());
......@@ -415,23 +422,26 @@ public class ProjectServiceImpl implements ProjectService {
&& !existingTeammate.getBillableStatus()
.equalsIgnoreCase(
projectTeamMate.getBillableStatus())) {
List<BillingDetails> listBD = getEmployeeActiveBillingDetails(
projectTeamMate.getEmployeeId(),
projectTeamMate.getProjectId());
if (listBD != null && !listBD.isEmpty()) {
BillingDetails billingDetails = listBD.get(0);
/*
* Date d = new Date(); d.setDate(d.getDate() - 1);
*/
Date d = projectTeamMate.getNewBillingStartDate();
d.setDate(d.getDate() - 1);
if(existingTeammate.getNewBillingStartDate().compareTo(projectTeamMate.getNewBillingStartDate())<=0)
//d.setDate(d.getDate() - 1);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.add(Calendar.DAY_OF_MONTH, -1);
Date onedayless = cal.getTime();
if(existingTeammate.getNewBillingStartDate().getDate()==projectTeamMate.getNewBillingStartDate().getDate())
billingDetails.setBillingEndDate(
DateUtils.truncate(projectTeamMate.getNewBillingStartDate(), Calendar.DATE));
else
billingDetails.setBillingEndDate(
DateUtils.truncate(d, Calendar.DATE));
DateUtils.truncate(onedayless, Calendar.DATE));
billingDetails.setActive(false);
updateEmployeeBilling(billingDetails);
}
......@@ -445,9 +455,10 @@ public class ProjectServiceImpl implements ProjectService {
billings.setActive(true);
// TODO
Date d = projectTeamMate.getNewBillingStartDate();
d.setDate(d.getDate() + 1);
// d.setDate(d.getDate() + 1);
//billings.setBillingStartDate(DateUtils.truncate(d, Calendar.DATE));
billings.setBillingStartDate(DateUtils.truncate(projectTeamMate.getStartDate(), Calendar.DATE));
//billings.setBillingStartDate(DateUtils.truncate(projectTeamMate.getStartDate(), Calendar.DATE)); // checking
billings.setBillingStartDate(DateUtils.truncate(d, Calendar.DATE));
existingTeammate.setNewBillingStartDate(
DateUtils.truncate(d, Calendar.DATE));
billings.setBillingEndDate(DateUtils
......@@ -457,11 +468,8 @@ public class ProjectServiceImpl implements ProjectService {
// TODO
}else //without changing the Billability status
{
List<BillingDetails> listBD1 = getEmployeeActiveBillingDetails(
projectTeamMate.getEmployeeId(),
projectTeamMate.getProjectId());
if (listBD1 != null && !listBD1.isEmpty()) {
BillingDetails billingDetails = listBD1.get(0);
if (listBD != null && !listBD.isEmpty()) {
BillingDetails billingDetails = listBD.get(0);
billingDetails.setBillingEndDate(projectTeamMate.getEndDate());
billingDetails.setBillingStartDate(projectTeamMate.getStartDate());
addEmployeeBillingDetails(billingDetails);
......@@ -651,16 +659,31 @@ public class ProjectServiceImpl implements ProjectService {
public List<ProjectTeamMate> getProjectDetails(String projectId,String statusFlag) {
List<ProjectTeamMate> teamMatesList = new ArrayList<>();
List<ProjectTeamMate> teamMates = projectTeamMatesRepo.findByProjectId(projectId);
for (ProjectTeamMate projectTeamMate : teamMates) {
if (projectTeamMate.getEndDate() != null) {
// Active
if (statusFlag.equals(MyTimeUtils.ACTIVE) && projectTeamMate.getEndDate().compareTo(new Date()) >= 0)
if(projectId.equals(MyTimeUtils.BENCH_PROJECT_ID))
{
for (ProjectTeamMate projectTeamMate : teamMates) {
if(statusFlag.equals(MyTimeUtils.ACTIVE) && projectTeamMate.getEndDate()==null)
teamMatesList.add(projectTeamMate);
else if (statusFlag.equals(MyTimeUtils.IN_ACTIVE)
&& projectTeamMate.getEndDate().compareTo(new Date()) < 0)
else if(statusFlag.equals(MyTimeUtils.IN_ACTIVE) &&projectTeamMate.getEndDate()!=null)
teamMatesList.add(projectTeamMate);
else if (statusFlag.equals(MyTimeUtils.BOTH))
else if(statusFlag.equals(MyTimeUtils.BOTH))
teamMatesList.add(projectTeamMate);
}
}
else
{
for (ProjectTeamMate projectTeamMate : teamMates) {
if (projectTeamMate.getEndDate() != null) {
// Active
if (statusFlag.equals(MyTimeUtils.ACTIVE) && projectTeamMate.getEndDate().compareTo(new Date()) >= 0)
teamMatesList.add(projectTeamMate);
else if (statusFlag.equals(MyTimeUtils.IN_ACTIVE)
&& projectTeamMate.getEndDate().compareTo(new Date()) < 0)
teamMatesList.add(projectTeamMate);
else if (statusFlag.equals(MyTimeUtils.BOTH))
teamMatesList.add(projectTeamMate);
}
}
}
return teamMatesList;
......@@ -978,7 +1001,7 @@ public class ProjectServiceImpl implements ProjectService {
String toDate = null;
List<ProjectTeamMate> teamMateList = projectTeamMatesRepo.findAll();
for (ProjectTeamMate projectMate : teamMateList) {
if (projectTeamMate.getEmployeeId().equals(projectMate.getEmployeeId()) && (projectMate.getEndDate().compareTo(new Date())>0)
if (projectTeamMate.getEmployeeId().equals(projectMate.getEmployeeId()) && projectMate.getEndDate()!=null && (projectMate.getEndDate().compareTo(new Date())>0)
&& !projectMate.getProjectId().equals("Nisum0000")) {
if (++count == 1)
{
......
......@@ -104,5 +104,8 @@ public class MyTimeUtils {
public static final String IS_ACTIVE = "isActive";
public final static String BOTH="Both";
public final static String BENCH_ACCOUNT="Nisum India";
public final static String BENCH_PROJECT_ID="Nisum0000";
public final static String BENCH_BILLABILITY_STATUS="Non-Billable";
}
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