com.axelor.apps.crm.service.EventReminderService.java Source code

Java tutorial

Introduction

Here is the source code for com.axelor.apps.crm.service.EventReminderService.java

Source

/**
 * Axelor Business Solutions
 *
 * Copyright (C) 2015 Axelor (<http://axelor.com>).
 *
 * This program is free software: you can redistribute it and/or  modify
 * it under the terms of the GNU Affero General Public License, version 3,
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.axelor.apps.crm.service;

import org.joda.time.Duration;
import org.joda.time.Interval;
import org.joda.time.LocalDateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class EventReminderService {

    private static final Logger LOG = LoggerFactory.getLogger(EventReminderService.class);

    public Duration computeDuration(LocalDateTime startDateTime, LocalDateTime endDateTime) {

        return new Interval(startDateTime.toDateTime(), endDateTime.toDateTime()).toDuration();

    }

    public int getHoursDuration(Duration duration) {

        return duration.toStandardHours().getHours();

    }

    public int getMinutesDuration(Duration duration) {

        int minutes = duration.toStandardMinutes().getMinutes() % 60;

        LOG.debug("Minutes : {}", minutes);

        if (minutes >= 53 && minutes < 8) {
            return 00;
        } else if (minutes >= 8 && minutes < 23) {
            return 15;
        } else if (minutes >= 23 && minutes < 38) {
            return 30;
        } else if (minutes >= 38 && minutes < 53) {
            return 45;
        }

        return 00;

    }

    public LocalDateTime computeStartDateTime(int durationHours, int durationMinutes, LocalDateTime endDateTime) {

        return endDateTime.minusHours(durationHours).minusMinutes(durationMinutes);

    }

    public LocalDateTime computeEndDateTime(LocalDateTime startDateTime, int durationHours, int durationMinutes) {

        return startDateTime.plusHours(durationHours).plusMinutes(durationMinutes);

    }

}