Example usage for org.joda.time LocalDate plusMonths

List of usage examples for org.joda.time LocalDate plusMonths

Introduction

In this page you can find the example usage for org.joda.time LocalDate plusMonths.

Prototype

public LocalDate plusMonths(int months) 

Source Link

Document

Returns a copy of this date plus the specified number of months.

Usage

From source file:cherry.chart.app.LineChartBatch.java

License:Apache License

private CategoryDataset createDataset() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    LocalDate now = LocalDate.now();
    for (int i = 0; i <= 12; i++) {
        String date = now.plusMonths(i).toString();
        for (String s : series) {
            dataset.addValue(random.nextInt(100), s, date);
        }/*from   w w w  .j  ava  2 s .  c o  m*/
    }
    return dataset;
}

From source file:com.axelor.apps.account.service.BudgetService.java

License:Open Source License

public List<BudgetLine> generatePeriods(Budget budget) {

    if (budget.getBudgetLineList() != null && !budget.getBudgetLineList().isEmpty()) {
        List<BudgetLine> budgetLineList = budget.getBudgetLineList();
        budgetLineList.clear();//from   ww w.  j a  va 2s . c om
    }

    List<BudgetLine> budgetLineList = new ArrayList<BudgetLine>();
    Integer duration = budget.getPeriodDurationSelect();
    LocalDate fromDate = budget.getFromDate();
    LocalDate toDate = budget.getToDate();
    LocalDate budgetLineToDate = fromDate;
    Integer budgetLineNumber = 1;

    while (budgetLineToDate.isBefore(toDate)) {
        if (budgetLineNumber != 1)
            fromDate = fromDate.plusMonths(duration);
        budgetLineToDate = fromDate.plusMonths(duration).minusDays(1);
        if (budgetLineToDate.isAfter(toDate))
            budgetLineToDate = toDate;
        if (fromDate.isAfter(toDate))
            continue;
        BudgetLine budgetLine = new BudgetLine();
        budgetLine.setFromDate(fromDate);
        budgetLine.setToDate(budgetLineToDate);
        budgetLine.setBudget(budget);
        budgetLine.setAmountExpected(budget.getAmountForGeneration());
        budgetLineList.add(budgetLine);
        budgetLineNumber++;
    }
    return budgetLineList;
}

From source file:com.axelor.apps.account.service.PaymentScheduleService.java

License:Open Source License

/**
 * Cration d'un chancier avec ces lignes.
 *
 * @param company//from  www .  j  a  v  a 2  s  .  c o  m
 *          La socit.
 * @param date
 *          Date de cration.
 * @param firstTermDate
 *          Date de premire chance.
 * @param initialInTaxAmount
 *          Montant d'une chance.
 * @param nbrTerm
 *          Nombre d'chances.
 * @param bankDetails
 *          RIB.
 * @param paymentMode
 *          Mode de paiement.
 * @param payerPartner
 *          Tiers payeur.
 *
 * @return
 *          L'chancier cr.
 * @throws AxelorException
 */
public PaymentSchedule createPaymentSchedule(Partner partner, Company company, LocalDate date,
        LocalDate firstTermDate, BigDecimal initialInTaxAmount, int nbrTerm, BankDetails bankDetails,
        PaymentMode paymentMode) throws AxelorException {

    Invoice invoice = null;
    PaymentSchedule paymentSchedule = this.createPaymentSchedule(partner, invoice, company, date, firstTermDate,
            nbrTerm, bankDetails, paymentMode);

    paymentSchedule.setPaymentScheduleLineList(new ArrayList<PaymentScheduleLine>());

    for (int term = 1; term < nbrTerm + 1; term++) {
        paymentSchedule.getPaymentScheduleLineList().add(paymentScheduleLineService.createPaymentScheduleLine(
                paymentSchedule, initialInTaxAmount, term, firstTermDate.plusMonths(term - 1)));
    }

    return paymentSchedule;
}

From source file:com.axelor.apps.account.service.YearService.java

License:Open Source License

public List<Period> generatePeriods(Year year) {

    List<Period> periods = new ArrayList<Period>();
    Integer duration = year.getPeriodDurationSelect();
    LocalDate fromDate = year.getFromDate();
    LocalDate toDate = year.getToDate();
    LocalDate periodToDate = fromDate;
    Integer periodNumber = 1;/*from  w  ww  .ja  v a 2 s  . com*/

    while (periodToDate.isBefore(toDate)) {
        if (periodNumber != 1)
            fromDate = fromDate.plusMonths(duration);
        periodToDate = fromDate.plusMonths(duration).minusDays(1);
        if (periodToDate.isAfter(toDate))
            periodToDate = toDate;
        if (fromDate.isAfter(toDate))
            continue;
        Period period = new Period();
        period.setFromDate(fromDate);
        period.setToDate(periodToDate);
        period.setYear(year);
        period.setName(String.format("%02d", periodNumber) + "/" + year.getCode());
        period.setCode(
                String.format("%02d", periodNumber) + "/" + year.getCode() + "_" + year.getCompany().getCode());
        period.setCompany(year.getCompany());
        period.setStatusSelect(year.getStatusSelect());
        periods.add(period);
        periodNumber++;
    }
    return periods;
}

From source file:com.axelor.apps.base.service.DurationServiceImpl.java

License:Open Source License

public LocalDate computeDuration(Duration duration, LocalDate date) {

    if (duration == null) {
        return date;
    }/*from w  ww. j  av a 2 s  .  c o  m*/

    switch (duration.getTypeSelect()) {

    case DurationRepository.TYPE_MONTH:

        return date.plusMonths(duration.getValue());

    case DurationRepository.TYPE_DAY:

        return date.plusDays(duration.getValue());

    default:

        return date;
    }

}

From source file:com.axelor.apps.base.service.scheduler.SchedulerService.java

License:Open Source License

/**
 * Mthode qui dtermine la prochaine date d'xcution d'un planificateur pour un rythme mensuel
 *
 * @param scheduler// ww w . ja v a 2  s .  co m
 *       Instance de planificateur
 * @param date
 *       Derniere date d'xcution thorique
 *
 * @return LocalDate
 *       Prochaine date d'xcution
 */
private LocalDate getMonthlyComputeDate(Scheduler scheduler, LocalDate date) {

    if (scheduler.getDayMonthly() == 0)
        return date.plusMonths(scheduler.getMonthMonthly()).withDayOfMonth(1);
    else {

        int start = date.plusWeeks(scheduler.getWeekWeekly()).dayOfMonth().getMinimumValue();
        int end = date.plusWeeks(scheduler.getWeekWeekly()).dayOfMonth().getMaximumValue();

        if (start <= scheduler.getDayMonthly() && scheduler.getDayMonthly() <= end)
            return date.plusMonths(scheduler.getMonthMonthly()).withDayOfMonth(scheduler.getDayMonthly());
        else if (scheduler.getDayMonthly() < start)
            return date.plusWeeks(scheduler.getWeekWeekly()).dayOfMonth().withMinimumValue();
        else if (scheduler.getDayMonthly() > end)
            return date.plusWeeks(scheduler.getWeekWeekly()).dayOfMonth().withMaximumValue();

        return null;
    }
}

From source file:com.axelor.apps.base.service.scheduler.SchedulerService.java

License:Open Source License

/**
 * Obtient le prochain jour du mois  partir d'une date
 *
 * @param localDate//  ww w .j  av a2s . c  om
 *       Date de rfrence
 * @param dayMonthly
 *       Jour du mois
 *
 * @return LocalDate
 *       Date correspondant au prochain jour du mois
 */
public LocalDate getNextDayMonth(LocalDate localDate, int dayMonthly) {
    LocalDate date = null;

    int start = localDate.dayOfMonth().getMinimumValue();
    int end = localDate.dayOfMonth().getMaximumValue();

    if (localDate.dayOfMonth().get() <= dayMonthly) {

        if (start <= dayMonthly && dayMonthly <= end)
            date = localDate.withDayOfMonth(dayMonthly);
        else if (dayMonthly < start)
            date = localDate.dayOfMonth().withMinimumValue();
        else if (dayMonthly > end)
            date = localDate.dayOfMonth().withMaximumValue();

    } else {

        int startNext = localDate.plusMonths(1).dayOfMonth().getMinimumValue();
        int endNext = localDate.plusMonths(1).dayOfMonth().getMaximumValue();

        if (startNext <= dayMonthly && dayMonthly <= endNext)
            date = localDate.plusMonths(1).withDayOfMonth(dayMonthly);
        else if (dayMonthly < startNext)
            date = localDate.plusMonths(1).dayOfMonth().withMinimumValue();
        else if (dayMonthly > endNext)
            date = localDate.plusMonths(1).dayOfMonth().withMaximumValue();

    }

    return date;
}

From source file:com.axelor.apps.cash.management.service.ForecastRecapService.java

License:Open Source License

public void populateWithSalaries(ForecastRecap forecastRecap) {
    List<Employee> employeeList = new ArrayList<Employee>();
    if (forecastRecap.getBankDetails() != null) {
        employeeList = Beans.get(EmployeeRepository.class).all()
                .filter("self.user.activeCompany = ?1 AND self.bankDetails = ?2", forecastRecap.getCompany(),
                        forecastRecap.getBankDetails())
                .fetch();/*from ww  w  . j av  a2s.  co  m*/
    } else {
        employeeList = Beans.get(EmployeeRepository.class).all()
                .filter("self.user.activeCompany = ?1", forecastRecap.getCompany()).fetch();
    }
    LocalDate itDate = new LocalDate(forecastRecap.getFromDate());
    while (!itDate.isAfter(forecastRecap.getToDate())) {
        if (itDate.isEqual(new LocalDate(itDate.getYear(), itDate.getMonthOfYear(),
                itDate.dayOfMonth().getMaximumValue()))) {
            for (Employee employee : employeeList) {
                forecastRecap.setCurrentBalance(forecastRecap.getCurrentBalance().subtract(employee
                        .getHourlyRate().multiply(employee.getWeeklyWorkHours().multiply(new BigDecimal(4)))));
                forecastRecap.addForecastRecapLineListItem(this.createForecastRecapLine(itDate, 2, null,
                        employee.getHourlyRate()
                                .multiply(employee.getWeeklyWorkHours().multiply(new BigDecimal(4))),
                        forecastRecap.getCurrentBalance()));
            }
            itDate = itDate.plusMonths(1);
        } else {
            itDate = new LocalDate(itDate.getYear(), itDate.getMonthOfYear(),
                    itDate.dayOfMonth().getMaximumValue());
        }
    }
}

From source file:com.axelor.apps.cash.management.service.ForecastService.java

License:Open Source License

public void generate(ForecastGenerator forecastGenerator) {
    LocalDate fromDate = forecastGenerator.getFromDate();
    LocalDate toDate = forecastGenerator.getToDate();
    LocalDate itDate = new LocalDate(fromDate);
    LocalDate todayDate = generalService.getTodayDate();

    if (forecastGenerator.getForecastList() != null && !forecastGenerator.getForecastList().isEmpty()) {
        List<Forecast> forecastList = forecastGenerator.getForecastList();
        for (Forecast forecast : forecastList) {
            if (forecast.getRealizedSelect() == ForecastRepository.REALISED_SELECT_NO) {
                forecastList.remove(forecast);
            } else if (forecast.getRealizedSelect() == ForecastRepository.REALISED_SELECT_AUTO
                    && forecast.getEstimatedDate().isAfter(todayDate)) {
                forecastList.remove(forecast);
            }/*from  w  w  w  .ja  v a2  s  .co  m*/
        }
    }

    while (!itDate.isAfter(toDate)) {
        Forecast forecast = this.createForecast(forecastGenerator.getCompany(),
                forecastGenerator.getBankDetails(), forecastGenerator.getTypeSelect(),
                forecastGenerator.getAmount(), itDate, forecastGenerator.getForecastReason(),
                forecastGenerator.getComments(), forecastGenerator.getRealizedSelect());
        forecastGenerator.addForecastListItem(forecast);
        itDate.plusMonths(forecastGenerator.getPeriodicitySelect());
    }
}

From source file:com.axelor.apps.crm.service.TargetService.java

License:Open Source License

public LocalDate getNextDate(int periodTypeSelect, LocalDate date) {

    switch (periodTypeSelect) {
    case ITarget.NONE:
        return date;
    case ITarget.MONTHLY:
        return date.plusMonths(1);
    case ITarget.WEEKLY:
        return date.plusWeeks(1);
    case ITarget.DAILY:
        return date.plusDays(1);

    default://from w w  w.  j  a  v a  2 s.  c  o m
        return date;
    }
}