Search in sources :

Example 1 with RequestHolidayManager

use of com.autentia.tnt.manager.holiday.RequestHolidayManager in project TNTConcept by autentia.

the class ActivityBean_IT method getMonthTotalHours_HolidayRequestWithinMonth.

@Test
public void getMonthTotalHours_HolidayRequestWithinMonth() {
    // create a holiday request within a month
    RequestHolidayManager rhManager = RequestHolidayManager.getDefault();
    RequestHoliday requestWithinMonth = new RequestHoliday();
    requestWithinMonth.setState(HolidayState.ACCEPT);
    LocalDate startRequest = LocalDate.of(2017, 8, 25);
    Date startRequestDate = Date.from(startRequest.atStartOfDay(ZoneId.systemDefault()).toInstant());
    requestWithinMonth.setBeginDate(startRequestDate);
    LocalDate endRequest = LocalDate.of(2017, 8, 31);
    Date endRequestDate = Date.from(endRequest.atStartOfDay(ZoneId.systemDefault()).toInstant());
    requestWithinMonth.setFinalDate(endRequestDate);
    rhManager.insertEntity(requestWithinMonth);
    // verify total hours for the month
    ActivityBeanNoJSF sut = new ActivityBeanNoJSF();
    LocalDate august = LocalDate.of(2017, 8, 1);
    Date augustDate = Date.from(august.atStartOfDay(ZoneId.systemDefault()).toInstant());
    sut.setSelectedDate(augustDate);
    double augustHours = sut.getMonthTotalHours();
    assertThat(augustHours, closeTo(144.0, 0.1));
}
Also used : RequestHoliday(com.autentia.tnt.businessobject.RequestHoliday) RequestHolidayManager(com.autentia.tnt.manager.holiday.RequestHolidayManager) LocalDate(java.time.LocalDate) Date(java.util.Date) LocalDate(java.time.LocalDate) Test(org.junit.Test)

Example 2 with RequestHolidayManager

use of com.autentia.tnt.manager.holiday.RequestHolidayManager in project TNTConcept by autentia.

the class AvailabilityBean method fillModelHolidays.

/**
 * Fill holidays in listOccupations for that user.
 *
 * @param user
 * @param model
 */
private void fillModelHolidays(User user, OcupationModel model) {
    Calendar calendarFirstDayOfMonth = Calendar.getInstance();
    Calendar calendarLastDayOfMonth = Calendar.getInstance();
    Date firstDayOfMonth = DateUtils.getFirstDayOfMonth(selectedDate);
    Date lastDayOfMonth = DateUtils.getLastDayOfMonth(selectedDate);
    calendarFirstDayOfMonth.setTime(firstDayOfMonth);
    calendarLastDayOfMonth.setTime(lastDayOfMonth);
    calendarFirstDayOfMonth.add(Calendar.MONTH, -1);
    calendarLastDayOfMonth.add(Calendar.MONTH, 1);
    RequestHolidayManager rhManager = RequestHolidayManager.getDefault();
    RequestHolidaySearch rhSearch = new RequestHolidaySearch();
    rhSearch.setUserRequest(user);
    rhSearch.setState(HolidayState.ACCEPT);
    rhSearch.setStartBeginDate(calendarFirstDayOfMonth.getTime());
    rhSearch.setEndBeginDate(calendarLastDayOfMonth.getTime());
    rhSearch.setStartFinalDate(calendarFirstDayOfMonth.getTime());
    rhSearch.setEndFinalDate(calendarLastDayOfMonth.getTime());
    List<RequestHoliday> listH = rhManager.getAllEntities(rhSearch, null);
    for (RequestHoliday rH : listH) {
        OcupationEntryImpl oc = new OcupationEntryImpl();
        oc.setStart(DateUtils.minHourInDate(rH.getBeginDate()));
        oc.setEnd(DateUtils.maxHourInDate(rH.getFinalDate()));
        oc.setVacances(true);
        oc.setHoliday(false);
        oc.setDescription(FacesUtils.getMessage("activity.acceptedHolidays"));
        model.addOcupationEntry(oc);
    }
    HolidaySearch monthSearch = new HolidaySearch();
    HolidayManager holidayManager = HolidayManager.getDefault();
    monthSearch.setStartDate(calendarFirstDayOfMonth.getTime());
    monthSearch.setEndDate(calendarLastDayOfMonth.getTime());
    List<Holiday> allHolidays = holidayManager.getAllEntities(monthSearch, null);
    for (Holiday holiday : allHolidays) {
        OcupationEntryImpl oc = new OcupationEntryImpl();
        oc.setStart(DateUtils.minHourInDate(holiday.getDate()));
        oc.setEnd(DateUtils.maxHourInDate(holiday.getDate()));
        oc.setVacances(false);
        oc.setHoliday(true);
        oc.setDescription(holiday.getDescription());
        model.addOcupationEntry(oc);
    }
}
Also used : RequestHoliday(com.autentia.tnt.businessobject.RequestHoliday) Holiday(com.autentia.tnt.businessobject.Holiday) RequestHoliday(com.autentia.tnt.businessobject.RequestHoliday) Calendar(java.util.Calendar) RequestHolidayManager(com.autentia.tnt.manager.holiday.RequestHolidayManager) HolidayManager(com.autentia.tnt.manager.holiday.HolidayManager) RequestHolidayManager(com.autentia.tnt.manager.holiday.RequestHolidayManager) HolidaySearch(com.autentia.tnt.dao.search.HolidaySearch) RequestHolidaySearch(com.autentia.tnt.dao.search.RequestHolidaySearch) RequestHolidaySearch(com.autentia.tnt.dao.search.RequestHolidaySearch) Date(java.util.Date)

Example 3 with RequestHolidayManager

use of com.autentia.tnt.manager.holiday.RequestHolidayManager in project TNTConcept by autentia.

the class ActivityBean_IT method getMonthTotalHours_HolidayRequestOverMonths.

@Test
public void getMonthTotalHours_HolidayRequestOverMonths() {
    // create a holiday request over two months
    RequestHolidayManager rhManager = RequestHolidayManager.getDefault();
    RequestHoliday requestOverMonths = new RequestHoliday();
    requestOverMonths.setState(HolidayState.ACCEPT);
    LocalDate startRequest = LocalDate.of(2017, 8, 31);
    Date startRequestDate = Date.from(startRequest.atStartOfDay(ZoneId.systemDefault()).toInstant());
    requestOverMonths.setBeginDate(startRequestDate);
    LocalDate endRequest = LocalDate.of(2017, 9, 1);
    Date endRequestDate = Date.from(endRequest.atStartOfDay(ZoneId.systemDefault()).toInstant());
    requestOverMonths.setFinalDate(endRequestDate);
    rhManager.insertEntity(requestOverMonths);
    // verify total hours for the first month
    ActivityBeanNoJSF sut = new ActivityBeanNoJSF();
    LocalDate august = LocalDate.of(2017, 8, 1);
    Date augustDate = Date.from(august.atStartOfDay(ZoneId.systemDefault()).toInstant());
    sut.setSelectedDate(augustDate);
    double augustHours = sut.getMonthTotalHours();
    assertThat("First Month Hours", augustHours, closeTo(176.0, 0.1));
    // verify total hours for the second month
    LocalDate september = LocalDate.of(2017, 9, 1);
    Date septemberDate = Date.from(september.atStartOfDay(ZoneId.systemDefault()).toInstant());
    sut.setSelectedDate(septemberDate);
    double septHours = sut.getMonthTotalHours();
    assertThat("Second Month Hours", septHours, closeTo(160.0, 0.1));
}
Also used : RequestHoliday(com.autentia.tnt.businessobject.RequestHoliday) RequestHolidayManager(com.autentia.tnt.manager.holiday.RequestHolidayManager) LocalDate(java.time.LocalDate) Date(java.util.Date) LocalDate(java.time.LocalDate) Test(org.junit.Test)

Example 4 with RequestHolidayManager

use of com.autentia.tnt.manager.holiday.RequestHolidayManager in project TNTConcept by autentia.

the class ActivityBean method fillHolidays.

private void fillHolidays(SimpleScheduleModel model) {
    Calendar calMin = Calendar.getInstance();
    Calendar calMax = Calendar.getInstance();
    calMin = getMinimumSearchTime(selectedDate);
    calMax = getMaximumSearchTime(selectedDate);
    RequestHolidayManager rhManager = RequestHolidayManager.getDefault();
    RequestHolidaySearch rhSearch = new RequestHolidaySearch();
    rhSearch.setUserRequest(authManager.getCurrentPrincipal().getUser());
    rhSearch.setState(HolidayState.ACCEPT);
    rhSearch.setStartBeginDate(calMin.getTime());
    rhSearch.setEndBeginDate(calMax.getTime());
    rhSearch.setStartFinalDate(calMin.getTime());
    rhSearch.setEndFinalDate(calMax.getTime());
    List<RequestHoliday> listH = rhManager.getAllEntities(rhSearch, null);
    for (RequestHoliday rH : listH) {
        Calendar cActual = Calendar.getInstance();
        cActual.setTime(rH.getBeginDate());
        while (!cActual.getTime().after(rH.getFinalDate())) {
            if (cActual.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && cActual.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
                model.setHoliday(cActual.getTime(), FacesUtils.getMessage("activity.acceptedHolidays"));
            }
            cActual.add(Calendar.DAY_OF_MONTH, 1);
        }
    }
    HolidaySearch monthSearch = new HolidaySearch();
    monthSearch.setStartDate(calMin.getTime());
    monthSearch.setEndDate(calMax.getTime());
    List<Holiday> allHolidays = holidayManager.getAllEntities(monthSearch, null);
    for (Holiday holiday : allHolidays) {
        model.setHoliday(holiday.getDate(), holiday.getDescription());
    }
}
Also used : RequestHoliday(com.autentia.tnt.businessobject.RequestHoliday) Holiday(com.autentia.tnt.businessobject.Holiday) RequestHoliday(com.autentia.tnt.businessobject.RequestHoliday) GregorianCalendar(java.util.GregorianCalendar) Calendar(java.util.Calendar) RequestHolidayManager(com.autentia.tnt.manager.holiday.RequestHolidayManager) HolidaySearch(com.autentia.tnt.dao.search.HolidaySearch) RequestHolidaySearch(com.autentia.tnt.dao.search.RequestHolidaySearch) RequestHolidaySearch(com.autentia.tnt.dao.search.RequestHolidaySearch)

Example 5 with RequestHolidayManager

use of com.autentia.tnt.manager.holiday.RequestHolidayManager in project TNTConcept by autentia.

the class ActivityBean method calculateRequestedHolidays.

private int calculateRequestedHolidays(List<Integer> nonWorkingDays, Date date, int daysInMonth) {
    LocalDate selectedDay = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).toLocalDate();
    LocalDate firstDaySelectedMonth = selectedDay.withDayOfMonth(1);
    LocalDate lastDaySelectedMonth = selectedDay.with(TemporalAdjusters.lastDayOfMonth());
    Date beginOfMonth = Date.from(firstDaySelectedMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
    Date endOfMonth = Date.from(lastDaySelectedMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
    // holiday request starting in selected month
    int requestedHolidays = 0;
    RequestHolidayManager rhManager = RequestHolidayManager.getDefault();
    RequestHolidaySearch rhSearch = new RequestHolidaySearch();
    rhSearch.setUserRequest(authManager.getCurrentPrincipal().getUser());
    rhSearch.setState(HolidayState.ACCEPT);
    rhSearch.setStartBeginDate(beginOfMonth);
    rhSearch.setEndBeginDate(endOfMonth);
    List<RequestHoliday> requestsInSelectedMonth = rhManager.getAllEntities(rhSearch, null);
    // holiday requests ending in selected month
    rhSearch.reset();
    rhSearch.setUserRequest(authManager.getCurrentPrincipal().getUser());
    rhSearch.setState(HolidayState.ACCEPT);
    rhSearch.setStartFinalDate(beginOfMonth);
    rhSearch.setEndFinalDate(endOfMonth);
    requestsInSelectedMonth.addAll(rhManager.getAllEntities(rhSearch, null));
    for (RequestHoliday request : requestsInSelectedMonth) {
        LocalDate iter = LocalDateTime.ofInstant(request.getBeginDate().toInstant(), ZoneId.systemDefault()).toLocalDate();
        LocalDate endOfRequest = LocalDateTime.ofInstant(request.getFinalDate().toInstant(), ZoneId.systemDefault()).toLocalDate();
        while (iter.compareTo(endOfRequest) < 1) {
            if (iter.getMonthValue() == selectedDay.getMonthValue()) {
                int day = iter.getDayOfMonth();
                if (!nonWorkingDays.contains(day) && day <= daysInMonth) {
                    requestedHolidays++;
                    nonWorkingDays.add(day);
                }
            }
            iter = iter.plusDays(1);
        }
    }
    return requestedHolidays;
}
Also used : RequestHoliday(com.autentia.tnt.businessobject.RequestHoliday) RequestHolidayManager(com.autentia.tnt.manager.holiday.RequestHolidayManager) RequestHolidaySearch(com.autentia.tnt.dao.search.RequestHolidaySearch) LocalDate(java.time.LocalDate) Date(java.util.Date) LocalDate(java.time.LocalDate)

Aggregations

RequestHoliday (com.autentia.tnt.businessobject.RequestHoliday)5 RequestHolidayManager (com.autentia.tnt.manager.holiday.RequestHolidayManager)5 Date (java.util.Date)4 RequestHolidaySearch (com.autentia.tnt.dao.search.RequestHolidaySearch)3 LocalDate (java.time.LocalDate)3 Holiday (com.autentia.tnt.businessobject.Holiday)2 HolidaySearch (com.autentia.tnt.dao.search.HolidaySearch)2 Calendar (java.util.Calendar)2 Test (org.junit.Test)2 HolidayManager (com.autentia.tnt.manager.holiday.HolidayManager)1 GregorianCalendar (java.util.GregorianCalendar)1