List of usage examples for org.joda.time LocalDate plusMonths
public LocalDate plusMonths(int months)
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; } }