protected BigDecimal calculateNumberOfBillingCycles(final LocalDate startDate, final LocalDate endDate, final LocalDate targetDate, final int billingCycleDay) throws InvalidDateSequenceException { final List<RecurringInvoiceItemData> items = getBillingMode().calculateInvoiceItemData(startDate, endDate, targetDate, billingCycleDay, getBillingPeriod()); BigDecimal numberOfBillingCycles = ZERO; for (final RecurringInvoiceItemData item : items) { numberOfBillingCycles = numberOfBillingCycles.add(item.getNumberOfCycles()); } return numberOfBillingCycles.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD); }
protected BigDecimal calculateNumberOfBillingCycles(final LocalDate startDate, final LocalDate targetDate, final int billingCycleDay) throws InvalidDateSequenceException { final List<RecurringInvoiceItemData> items = getBillingMode().calculateInvoiceItemData(startDate, null, targetDate, billingCycleDay, getBillingPeriod()); BigDecimal numberOfBillingCycles = ZERO; for (final RecurringInvoiceItemData item : items) { numberOfBillingCycles = numberOfBillingCycles.add(item.getNumberOfCycles()); } return numberOfBillingCycles.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD); } }
itemData = billingMode.calculateInvoiceItemData(startDate, endDate, targetDate, billCycleDayLocal, billingPeriod); } catch (InvalidDateSequenceException e) { throw new InvoiceApiException(ErrorCode.INVOICE_INVALID_DATE_SEQUENCE, startDate, endDate, targetDate);