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));
}
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);
}
}
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));
}
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());
}
}
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;
}
Aggregations