Search in sources :

Example 21 with Project

use of com.autentia.tnt.businessobject.Project 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();
                    }
                });
            }
        }
    }
}
Also used : MailService(com.autentia.tnt.mail.MailService) Authentication(org.acegisecurity.Authentication) java.util(java.util) AuthenticationManager(com.autentia.tnt.manager.security.AuthenticationManager) Principal(com.autentia.tnt.manager.security.Principal) ActivitySearch(com.autentia.tnt.dao.search.ActivitySearch) MessagingException(javax.mail.MessagingException) Project(com.autentia.tnt.businessobject.Project) Collectors(java.util.stream.Collectors) ZoneId(java.time.ZoneId) User(com.autentia.tnt.businessobject.User) UsernamePasswordAuthenticationToken(org.acegisecurity.providers.UsernamePasswordAuthenticationToken) ConfigurationUtil(com.autentia.tnt.util.ConfigurationUtil) LocalDate(java.time.LocalDate) ProjectRole(com.autentia.tnt.businessobject.ProjectRole) SecurityContextHolder(org.acegisecurity.context.SecurityContextHolder) Log(org.apache.commons.logging.Log) Activity(com.autentia.tnt.businessobject.Activity) LogFactory(org.apache.commons.logging.LogFactory) UserManager(com.autentia.tnt.manager.admin.UserManager) UserSearch(com.autentia.tnt.dao.search.UserSearch) ActivityManager(com.autentia.tnt.manager.activity.ActivityManager) User(com.autentia.tnt.businessobject.User) Activity(com.autentia.tnt.businessobject.Activity) ProjectRole(com.autentia.tnt.businessobject.ProjectRole) LocalDate(java.time.LocalDate) MessagingException(javax.mail.MessagingException) UserSearch(com.autentia.tnt.dao.search.UserSearch) Project(com.autentia.tnt.businessobject.Project) ActivitySearch(com.autentia.tnt.dao.search.ActivitySearch)

Example 22 with Project

use of com.autentia.tnt.businessobject.Project in project TNTConcept by autentia.

the class ReportBean method getProjects.

public ArrayList<SelectItem> getProjects() {
    ArrayList<SelectItem> ret = new ArrayList<SelectItem>();
    ProjectSearch projectCriteria = new ProjectSearch();
    projectCriteria.setClient(getSelectedOrganization());
    List<Project> projects = projectDAO.getDefault().searchByOrganization(new SortCriteria("name"), getSelectedOrganization());
    if (!projects.isEmpty()) {
        setSelectedProject(projects.get(0));
    }
    for (Project project : projects) {
        ret.add(new SelectItem(project.getId().toString(), project.getName()));
    }
    return ret;
}
Also used : SortCriteria(com.autentia.tnt.dao.SortCriteria) Project(com.autentia.tnt.businessobject.Project) SelectItem(javax.faces.model.SelectItem) ProjectSearch(com.autentia.tnt.dao.search.ProjectSearch) ArrayList(java.util.ArrayList)

Aggregations

Project (com.autentia.tnt.businessobject.Project)22 ArrayList (java.util.ArrayList)12 SelectItem (javax.faces.model.SelectItem)10 SortCriteria (com.autentia.tnt.dao.SortCriteria)9 GregorianCalendar (java.util.GregorianCalendar)5 Activity (com.autentia.tnt.businessobject.Activity)4 BillBreakDown (com.autentia.tnt.businessobject.BillBreakDown)4 ProjectCost (com.autentia.tnt.businessobject.ProjectCost)4 Test (org.junit.Test)4 ProjectRole (com.autentia.tnt.businessobject.ProjectRole)3 ActivitySearch (com.autentia.tnt.dao.search.ActivitySearch)3 Organization (com.autentia.tnt.businessobject.Organization)2 LocalDate (java.time.LocalDate)2 Calendar (java.util.Calendar)2 Date (java.util.Date)2 SettingBean (com.autentia.tnt.bean.admin.SettingBean)1 Bill (com.autentia.tnt.businessobject.Bill)1 DocumentCategory (com.autentia.tnt.businessobject.DocumentCategory)1 ExternalActivity (com.autentia.tnt.businessobject.ExternalActivity)1 GlobalHourReport (com.autentia.tnt.businessobject.GlobalHourReport)1