Search in sources :

Example 6 with ActivitySearch

use of com.autentia.tnt.dao.search.ActivitySearch in project TNTConcept by autentia.

the class GlobalHoursReportBean method getTotalHours.

public float getTotalHours() {
    ActivitySearch search = new ActivitySearch();
    Calendar init = Calendar.getInstance();
    init.setTime(startDate);
    Calendar last = Calendar.getInstance();
    last.setTime(endDate);
    init.set(Calendar.HOUR_OF_DAY, init.getMinimum(Calendar.HOUR_OF_DAY));
    init.set(Calendar.MINUTE, init.getMinimum(Calendar.MINUTE));
    init.set(Calendar.SECOND, init.getMinimum(Calendar.SECOND));
    init.set(Calendar.MILLISECOND, init.getMinimum(Calendar.MILLISECOND));
    last.set(Calendar.HOUR_OF_DAY, last.getMaximum(Calendar.HOUR_OF_DAY));
    last.set(Calendar.MINUTE, last.getMaximum(Calendar.MINUTE));
    last.set(Calendar.SECOND, last.getMaximum(Calendar.SECOND));
    last.set(Calendar.MILLISECOND, last.getMaximum(Calendar.MILLISECOND));
    search.setStartStartDate(init.getTime());
    search.setEndStartDate(last.getTime());
    if (billable)
        search.setBillable(true);
    // Search activities during indicated dates
    List<Activity> activities = manager.getAllEntities(search, new SortCriteria("role.project.client.name"));
    // Search for projects in activities and create the global list.
    float totalHours = 0.0f;
    for (Activity act : activities) {
        float horas = act.getDuration() / 60.0f;
        totalHours = totalHours + horas;
    }
    return totalHours;
}
Also used : SortCriteria(com.autentia.tnt.dao.SortCriteria) Calendar(java.util.Calendar) Activity(com.autentia.tnt.businessobject.Activity) ActivitySearch(com.autentia.tnt.dao.search.ActivitySearch)

Example 7 with ActivitySearch

use of com.autentia.tnt.dao.search.ActivitySearch in project TNTConcept by autentia.

the class GlobalHoursReportBean method getNextUserTotal.

public float getNextUserTotal() {
    ActivitySearch search = new ActivitySearch();
    Calendar init = Calendar.getInstance();
    init.setTime(startDate);
    Calendar last = Calendar.getInstance();
    last.setTime(endDate);
    init.set(Calendar.HOUR_OF_DAY, init.getMinimum(Calendar.HOUR_OF_DAY));
    init.set(Calendar.MINUTE, init.getMinimum(Calendar.MINUTE));
    init.set(Calendar.SECOND, init.getMinimum(Calendar.SECOND));
    init.set(Calendar.MILLISECOND, init.getMinimum(Calendar.MILLISECOND));
    last.set(Calendar.HOUR_OF_DAY, last.getMaximum(Calendar.HOUR_OF_DAY));
    last.set(Calendar.MINUTE, last.getMaximum(Calendar.MINUTE));
    last.set(Calendar.SECOND, last.getMaximum(Calendar.SECOND));
    last.set(Calendar.MILLISECOND, last.getMaximum(Calendar.MILLISECOND));
    search.setStartStartDate(init.getTime());
    search.setEndStartDate(last.getTime());
    if (billable)
        search.setBillable(true);
    if (iterator == null)
        iterator = getUsers().iterator();
    User user = null;
    try {
        user = iterator.next();
    } catch (NoSuchElementException e) {
        iterator = getUsers().iterator();
        user = iterator.next();
    }
    search.setUser(user);
    // Search activities during indicated dates
    List<Activity> activities = manager.getAllEntities(search, new SortCriteria("role.project.client.name"));
    // Search for projects in activities and create the global list.
    float totalHours = 0.0f;
    for (Activity act : activities) {
        float horas = act.getDuration() / 60.0f;
        totalHours = totalHours + horas;
    }
    return totalHours;
}
Also used : SortCriteria(com.autentia.tnt.dao.SortCriteria) User(com.autentia.tnt.businessobject.User) Calendar(java.util.Calendar) Activity(com.autentia.tnt.businessobject.Activity) ActivitySearch(com.autentia.tnt.dao.search.ActivitySearch) NoSuchElementException(java.util.NoSuchElementException)

Example 8 with ActivitySearch

use of com.autentia.tnt.dao.search.ActivitySearch 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)

Aggregations

Activity (com.autentia.tnt.businessobject.Activity)8 ActivitySearch (com.autentia.tnt.dao.search.ActivitySearch)8 SortCriteria (com.autentia.tnt.dao.SortCriteria)6 Calendar (java.util.Calendar)5 ExternalActivity (com.autentia.tnt.businessobject.ExternalActivity)3 Project (com.autentia.tnt.businessobject.Project)3 ProjectRole (com.autentia.tnt.businessobject.ProjectRole)3 User (com.autentia.tnt.businessobject.User)3 ExternalActivitySearch (com.autentia.tnt.dao.search.ExternalActivitySearch)3 LocalDate (java.time.LocalDate)3 ArrayList (java.util.ArrayList)3 GregorianCalendar (java.util.GregorianCalendar)3 Date (java.util.Date)2 SettingBean (com.autentia.tnt.bean.admin.SettingBean)1 BillBreakDown (com.autentia.tnt.businessobject.BillBreakDown)1 DocumentCategory (com.autentia.tnt.businessobject.DocumentCategory)1 GlobalHourReport (com.autentia.tnt.businessobject.GlobalHourReport)1 ProjectCost (com.autentia.tnt.businessobject.ProjectCost)1 Setting (com.autentia.tnt.businessobject.Setting)1 ActivityDAO (com.autentia.tnt.dao.hibernate.ActivityDAO)1