Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mytime
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Narendar Vakiti
mytime
Commits
a6af0bdb
Commit
a6af0bdb
authored
Jul 18, 2018
by
sakoju-nisum-com
Committed by
rbonthala-nisum-com
Jul 18, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MT-72: updated the previous project end date while employee allocating to the new project. (#16)
parent
a0fdd508
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
80 additions
and
13 deletions
+80
-13
ProjectServiceImpl.java
...ain/java/com/nisum/mytime/service/ProjectServiceImpl.java
+68
-13
MyTimeUtils.java
src/main/java/com/nisum/mytime/utils/MyTimeUtils.java
+12
-0
No files found.
src/main/java/com/nisum/mytime/service/ProjectServiceImpl.java
View file @
a6af0bdb
...
...
@@ -20,7 +20,10 @@ import org.springframework.data.mongodb.core.query.Criteria;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
com.mongodb.BasicDBObject
;
import
com.mongodb.DBCollection
;
import
com.nisum.mytime.exception.handler.MyTimeException
;
import
com.nisum.mytime.model.BillingDetails
;
import
com.nisum.mytime.model.EmpLoginData
;
...
...
@@ -34,6 +37,7 @@ import com.nisum.mytime.repository.EmployeeRolesRepo;
import
com.nisum.mytime.repository.ProjectRepo
;
import
com.nisum.mytime.repository.ProjectTeamMatesRepo
;
import
com.nisum.mytime.repository.TeamMatesBillingRepo
;
import
com.nisum.mytime.utils.MyTimeUtils
;
import
com.nisum.mytime.utils.PdfReportGenerator
;
@Service
(
"projectService"
)
...
...
@@ -139,20 +143,18 @@ public class ProjectServiceImpl implements ProjectService {
}
//MT-72
@Override
public
List
<
ProjectTeamMate
>
getProjectInfo
(
String
empId
)
{
Query
query
=
new
Query
(
Criteria
.
where
(
"employeeId"
).
is
(
empId
));
query
.
limit
(
1
);
query
.
with
(
new
Sort
(
Sort
.
Direction
.
DESC
,
"startDate"
));
List
<
ProjectTeamMate
>
projectTeamMate
=
mongoTemplate
.
find
(
query
,
ProjectTeamMate
.
class
);
return
projectTeamMate
;
}
// MT-72: fetching the projectteammate details.
@Override
public
List
<
ProjectTeamMate
>
getProjectInfo
(
String
employeeId
)
{
return
mongoTemplate
.
find
(
getQuery
(
employeeId
,
MyTimeUtils
.
START_DATE
),
ProjectTeamMate
.
class
);
}
@Override
public
ProjectTeamMate
addProjectTeamMate
(
ProjectTeamMate
projectTeamMate
)
throws
MyTimeException
{
updateProjectEndDateInProjectTeamMate
(
projectTeamMate
);
ProjectTeamMate
pT
=
projectTeamMatesRepo
.
save
(
projectTeamMate
);
List
<
BillingDetails
>
listBD
=
getEmployeeActiveNisumBench
(
pT
.
getEmployeeId
());
...
...
@@ -178,7 +180,7 @@ public class ProjectServiceImpl implements ProjectService {
DateUtils
.
truncate
(
pT
.
getEndDate
(),
Calendar
.
DATE
));
}
billings
.
setCreateDate
(
new
Date
());
updateProjectEndDateInBillingDetails
(
projectTeamMate
.
getNewBillingStartDate
(),
billings
);
addEmployeeBillingDetails
(
billings
);
addShiftDetails
(
projectTeamMate
);
if
(
projectTeamMate
.
getProjectId
()
!=
null
&&
!
projectTeamMate
...
...
@@ -517,17 +519,70 @@ public class ProjectServiceImpl implements ProjectService {
* for (BillingDetails tB : billingsPast) { tB.setActive(false);
* teamMatesBillingRepo.save(tB); }
*/
teamMate
.
setCreateDate
(
new
Date
());
return
teamMatesBillingRepo
.
save
(
teamMate
);
}
@Override
public
BillingDetails
updateEmployeeBilling
(
BillingDetails
teamMate
)
{
// TODO Auto-generated method stub
return
teamMatesBillingRepo
.
save
(
teamMate
);
}
@Override
// Updating the projectenddate field in ProjectTeamMate .
private
void
updateProjectEndDateInProjectTeamMate
(
ProjectTeamMate
projectTeamMate
)
{
List
<
ProjectTeamMate
>
projectTeamMateList
=
mongoTemplate
.
find
(
getQuery
(
projectTeamMate
.
getEmployeeId
(),
MyTimeUtils
.
ENDDATE_COLUMN
),
ProjectTeamMate
.
class
);
if
(!
CollectionUtils
.
isEmpty
(
projectTeamMateList
))
{
for
(
ProjectTeamMate
teamMate
:
projectTeamMateList
)
{
if
(
teamMate
.
getEndDate
()
!=
null
&&
!
teamMate
.
getProjectName
().
equalsIgnoreCase
(
MyTimeUtils
.
FREE_POLL
))
{
updateProjectEndDate
(
projectTeamMate
.
getNewBillingStartDate
(),
teamMate
.
getEmployeeId
(),
teamMate
.
getProjectName
(),
MyTimeUtils
.
ENDDATE_COLUMN
,
MyTimeUtils
.
TEAMDETAILS_COLLECTION_NAME
);
}
}
}
}
// Updating the billingenddate in BillingDetails .
private
void
updateProjectEndDateInBillingDetails
(
Date
newBillingStartDate
,
BillingDetails
billingDetails
)
{
List
<
BillingDetails
>
billingDetailsList
=
mongoTemplate
.
find
(
getQuery
(
billingDetails
.
getEmployeeId
(),
MyTimeUtils
.
CREATED_DATE_COLUMN
),
BillingDetails
.
class
);
if
(!
CollectionUtils
.
isEmpty
(
billingDetailsList
))
{
for
(
BillingDetails
billing
:
billingDetailsList
)
{
if
(
billing
.
getBillingEndDate
()
!=
null
&&
!
billing
.
getProjectName
().
equalsIgnoreCase
(
MyTimeUtils
.
FREE_POLL
))
{
updateProjectEndDate
(
newBillingStartDate
,
billing
.
getEmployeeId
(),
billing
.
getProjectName
(),
MyTimeUtils
.
BILLING_ENDDATE_COLUMN
,
MyTimeUtils
.
BILLINGDETAILS_COLLECTION_NAME
);
}
}
}
}
// Updating the projectenddate
private
void
updateProjectEndDate
(
Date
newBillingStartDate
,
String
employeeId
,
String
projectName
,
String
dateColumn
,
String
collectionName
)
{
DBCollection
collection
=
mongoTemplate
.
getCollection
(
collectionName
);
BasicDBObject
searchQuery
=
new
BasicDBObject
();
searchQuery
.
append
(
MyTimeUtils
.
EMPLOYEE_ID
,
employeeId
);
searchQuery
.
append
(
MyTimeUtils
.
PROJECT_NAME
,
projectName
);
BasicDBObject
updateQuery
=
new
BasicDBObject
();
updateQuery
.
append
(
MyTimeUtils
.
SET
,
new
BasicDBObject
().
append
(
dateColumn
,
DateUtils
.
addDays
(
newBillingStartDate
,
MyTimeUtils
.
MINUS_ONE
)));
collection
.
update
(
searchQuery
,
updateQuery
);
}
private
Query
getQuery
(
String
employeeId
,
String
dateColumn
)
{
Query
query
=
new
Query
();
query
.
addCriteria
(
Criteria
.
where
(
MyTimeUtils
.
EMPLOYEE_ID
).
is
(
employeeId
));
query
.
limit
(
MyTimeUtils
.
ONE
);
query
.
with
(
new
Sort
(
Sort
.
Direction
.
DESC
,
dateColumn
));
return
query
;
}
@Override
public
void
deleteEmployeeBilling
(
BillingDetails
teamMate
)
{
// TODO Auto-generated method stub
teamMatesBillingRepo
.
delete
(
teamMate
);
...
...
src/main/java/com/nisum/mytime/utils/MyTimeUtils.java
View file @
a6af0bdb
...
...
@@ -37,5 +37,17 @@ public class MyTimeUtils {
public
final
static
String
ABESENT_QUERY1
=
") AND STATUS='Working' AND EMPLOYEECODE NOT LIKE 'del%' "
;
public
final
static
String
ABESENT
=
"Absent"
;
public
final
static
String
EMAIL_ID
=
"emailId"
;
public
final
static
String
TEAMDETAILS_COLLECTION_NAME
=
"TeamDetails"
;
public
final
static
String
BILLINGDETAILS_COLLECTION_NAME
=
"BillingDetails"
;
public
final
static
String
ENDDATE_COLUMN
=
"endDate"
;
public
final
static
String
BILLING_ENDDATE_COLUMN
=
"billingEndDate"
;
public
final
static
String
CREATED_DATE_COLUMN
=
"createDate"
;
public
final
static
String
PROJECT_NAME
=
"projectName"
;
public
final
static
String
SET
=
"$set"
;
public
final
static
int
MINUS_ONE
=
-
1
;
public
final
static
int
ONE
=
1
;
public
final
static
String
FREE_POLL
=
"Free Pool"
;
public
final
static
String
START_DATE
=
"startDate"
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment