use of com.autentia.tnt.businessobject.ProjectRole in project TNTConcept by autentia.
the class BillManagerTest method createRolesForContext.
private Set<ProjectRole> createRolesForContext(Project project, Date date) {
final Set<ProjectRole> projectRoleSet = new HashSet<ProjectRole>();
final ProjectRole projectRole = new ProjectRole();
projectRole.setName("Senior");
projectRole.setCostPerHour(new BigDecimal("100"));
projectRole.setExpectedHours(50);
projectRole.setProject(project);
projectRole.setActivities(createActivitiesForContext(projectRole, date));
projectRoleSet.add(projectRole);
return projectRoleSet;
}
use of com.autentia.tnt.businessobject.ProjectRole in project TNTConcept by autentia.
the class ActivityBean method getRolesBySelectedProject.
public List<SelectItem> getRolesBySelectedProject() {
ArrayList<SelectItem> ret = new ArrayList<SelectItem>();
ProjectRoleSearch prjRolSearch = new ProjectRoleSearch();
prjRolSearch.setProject(getSelectedProject());
List<ProjectRole> refs = ProjectRoleManager.getDefault().getAllEntities(prjRolSearch, new SortCriteria("name", false));
if (refs != null) {
for (ProjectRole ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
// proyecto, por que sino borrariamos y creariamos una situaciĆ³n inconsistente
if (this.getRole() != null && this.getRole().getProject() != null && !this.getRole().getProject().equals(this.getSelectedProject())) {
HtmlSelectOneRadio optRole = (HtmlSelectOneRadio) FacesUtils.getComponent("activity").findComponent("tabActivity").findComponent("role");
this.setRole(refs.get(0));
optRole.setValue(this.getRole());
}
}
return ret;
}
use of com.autentia.tnt.businessobject.ProjectRole in project TNTConcept by autentia.
the class ActivityEvidenceNotificationBean method checkActivitiesWithNoEvidence.
public void checkActivitiesWithNoEvidence() throws MessagingException {
log.info("Checking for users with no activity evidence images attached for the past 7 days");
authenticateAs(ConfigurationUtil.getDefault().getAdminUser());
Date oneWeekAgo = Date.from(LocalDate.now().plusDays(-7).atStartOfDay(ZoneId.systemDefault()).toInstant());
UserSearch userSearch = new UserSearch();
userSearch.setActive(true);
List<User> users = UserManager.getDefault().getAllEntities(userSearch, null).stream().filter(user -> user.getEmail() != null).collect(Collectors.toList());
for (User user : users) {
ActivitySearch search = new ActivitySearch();
search.setStartStartDate(oneWeekAgo);
search.setUser(user);
List<Activity> activities = ActivityManager.getDefault().getAllEntities(search, null);
activities = activities.stream().filter(activity -> doesProjectContainRoleWithRequiredEvidence(activity.getRole().getProject())).collect(Collectors.toList());
if (activities.isEmpty()) {
continue;
}
HashMap<Project, List<Activity>> groupedActivities = groupedActivitiesByProject(activities);
for (Project project : groupedActivities.keySet()) {
List<Activity> prjActivities = groupedActivities.get(project);
if (prjActivities.stream().anyMatch(activity -> activity.getRole().getRequireEvidence()) && prjActivities.stream().noneMatch(this::doesActivitityHasEvidence)) {
List<ProjectRole> roles = prjActivities.stream().map(Activity::getRole).filter(ProjectRole::getRequireEvidence).collect(Collectors.toList());
prjActivities.stream().findFirst().ifPresent(activity -> {
try {
sendEmail(project, roles, user.getEmail());
} catch (Exception e) {
e.printStackTrace();
}
});
}
}
}
}
Aggregations