Package org.libreplan.business.calendars.entities

Examples of org.libreplan.business.calendars.entities.ResourceCalendar


    }

    private List<GapOnQueue> calculateGaps() {
        List<Gap> result = new ArrayList<Gap>();
        DateAndHour previousEnd = null;
        ResourceCalendar calendar = resource.getCalendar();
        List<CalendarAvailability> activationPeriods = calendar.getCalendarAvailabilities();

        for (LimitingResourceQueueElement each : limitingResourceQueueElements) {
            DateAndHour startTime = each.getStartTime();
            if (previousEnd == null || startTime.isAfter(previousEnd)) {
                List<GapInterval> gapIntervals = GapInterval.
View Full Code Here


    private AvailabilityCalculator() {
    }

    public static AvailabilityTimeLine getCalendarAvailabilityFor(
            Resource resource) {
        ResourceCalendar resourceCalendar = resource.getCalendar();
        return resourceCalendar != null ? resourceCalendar.getAvailability()
                : AvailabilityTimeLine.allValid();
    }
View Full Code Here

    private void givenResourceCalendarAlwaysReturning(final int hours) {
        this.calendar = createResourceCalendarAlwaysReturning(hours);
    }

    public static ResourceCalendar createResourceCalendarAlwaysReturning(final int hours) {
        ResourceCalendar workerCalendar;
        workerCalendar = createNiceMock(ResourceCalendar.class);
        expect(workerCalendar.getCapacityOn(isA(PartialDay.class)))
        .andReturn(EffortDuration.hours(hours)).anyTimes();
        IAnswer<? extends EffortDuration> asDurationAnswer = asDurationOnAnswer(hours(hours));
        expect(
                workerCalendar.asDurationOn(isA(PartialDay.class),
                        isA(ResourcesPerDay.class)))
                        .andAnswer(asDurationAnswer).anyTimes();
        expect(workerCalendar.getCapacityWithOvertime(isA(LocalDate.class)))
        .andReturn(
                Capacity.create(hours(hours))
                .overAssignableWithoutLimit()).anyTimes();
        expect(workerCalendar.getAvailability()).andReturn(
                AvailabilityTimeLine.allValid()).anyTimes();
        replay(workerCalendar);
        return workerCalendar;
    }
View Full Code Here

    private static class OnlyCanWork implements IResourceSelector {

        @Override
        public boolean isSelectable(Resource resource, LocalDate day) {
            ResourceCalendar resourceCalendar = resource.getCalendar();
            return resourceCalendar == null || resourceCalendar.canWorkOn(day);
        }
View Full Code Here

            LocalDate date, String exceptionName, EffortDuration effortDuration) {
        CalendarExceptionType calendarExceptionType = getCalendarExceptionType(exceptionName);
        if (calendarExceptionType == null) {
            return;
        }
        ResourceCalendar resourceCalendar = (ResourceCalendar) worker
                .getCalendarOrDefault();
        CalendarException calendarExceptionDay = resourceCalendar
                .getExceptionDay(date);
        Capacity capacity = Capacity.create(effortDuration);
        if (calendarExceptionDay != null) {
            resourceCalendar.removeExceptionDay(calendarExceptionDay.getDate());
        }
        baseCalendarModel.initEdit(resourceCalendar);
        baseCalendarModel.updateException(calendarExceptionType, date, date,
                capacity);
        baseCalendarModel.confirmSave();
View Full Code Here

    @Transactional
    public void testAddResourceWithSpecificCalendar() {

        /* Create a resource calendar DTO. */
        BaseCalendar baseCalendar = createBaseCalendar();
        ResourceCalendar resourceCalendar = baseCalendar
                .newDerivedResourceCalendar();
        ResourceCalendarDTO resourceCalendarDTO = ResourceConverter
                .toDTO(resourceCalendar);

        /* Create a machine DTO. */
 
View Full Code Here

        return calculateHoursInGap(resource, intraStart, intraEnd);
    }

    private Integer calculateHoursInGap(Resource resource, IntraDayDate start,
            IntraDayDate end) {
        final ResourceCalendar calendar = resource.getCalendar();
        Iterable<PartialDay> days = start.daysUntil(end);
        EffortDuration result = zero();
        for (PartialDay each : days) {
            result = result.plus(calendar.getCapacityOn(each));
        }
        return result.roundToHours();
    }
View Full Code Here

            }

            @Override
            public void save() {
                validateCalendarExceptionCodes();
                ResourceCalendar calendar = (ResourceCalendar) resourceCalendarModel
                        .getBaseCalendar();
                if (calendar != null) {
                    resourceCalendarModel.generateCalendarCodes();
                    machineModel.setCalendarOfMachine(calendar);
                }
View Full Code Here

            ResourceAllocation<?> resourceAllocation,
            Resource resource,
            DateAndHour startTime, DateAndHour endsAfter) {

        List<DayAssignment> assignments = new LinkedList<DayAssignment>();
        ResourceCalendar calendar = resource.getCalendar();
        final EffortDuration totalEffort = hours(resourceAllocation
                .getIntendedTotalHours());
        EffortDuration effortAssigned = zero();
        UntilEndAndEffort condition = new UntilEndAndEffort(
                endsAfter.toIntraDayDate(), totalEffort);
        for (PartialDay each : startTime.toIntraDayDate().daysUntil(condition)) {
            EffortDuration effortForDay = EffortDuration.min(
                    calendar.asDurationOn(each,
                    ONE_RESOURCE_PER_DAY), totalEffort);
            DayAssignment dayAssignment = createDayAssignment(
                    resourceAllocation, resource, each.getDate(), effortForDay);
            effortAssigned = effortAssigned.plus(addDayAssignment(assignments,
                    dayAssignment));
View Full Code Here

    }

    private static List<DayAssignment> generateDayAssignmentsStartingFromEnd(ResourceAllocation<?> resourceAllocation,
            Resource resource,
            DateAndHour endTime) {
        ResourceCalendar calendar = resource.getCalendar();
        List<DayAssignment> result = new ArrayList<DayAssignment>();

        LocalDate date = endTime.getDate();
        EffortDuration totalIntended = hours(resourceAllocation
                .getIntendedTotalHours());

        // Generate last day assignment
        PartialDay firstDay = new PartialDay(IntraDayDate.startOfDay(date),
                IntraDayDate.create(date, hours(endTime.getHour())));
        EffortDuration effortCanAllocate = min(totalIntended,
                calendar.asDurationOn(firstDay, ONE_RESOURCE_PER_DAY));
        if (effortCanAllocate.compareTo(zero()) > 0) {
            DayAssignment dayAssignment = createDayAssignment(
                    resourceAllocation, resource, date, effortCanAllocate);
            totalIntended = totalIntended.minus(addDayAssignment(result,
                    dayAssignment));
        }

        // Generate rest of day assignments
        for (date = date.minusDays(1); totalIntended.compareTo(zero()) > 0; date = date
                .minusDays(1)) {
            EffortDuration duration = min(totalIntended, calendar.asDurationOn(
                    PartialDay.wholeDay(date), ONE_RESOURCE_PER_DAY));
            DayAssignment dayAssigment = createDayAssignment(
                    resourceAllocation, resource, date, duration);
            totalIntended = totalIntended.minus(addDayAssignment(result,
                    dayAssigment));
View Full Code Here

TOP

Related Classes of org.libreplan.business.calendars.entities.ResourceCalendar

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.