use of org.estatio.module.lease.dom.invoicing.summary.InvoiceSummaryForInvoiceRun in project estatio by estatio.
the class InvoiceServiceMenu method doCalculateRetroInvoices.
// //////////////////
private Object doCalculateRetroInvoices(final ApplicationTenancy applicationTenancy, final List<LeaseItemType> leaseItemTypes, final LocalDate startDueDate, final LocalDate nextDueDate) {
for (Lease lease : leaseRepository.allLeases()) {
if (lease.getApplicationTenancy().getPath().matches(applicationTenancy.getPath() + ".*")) {
for (LocalDate dueDate : lease.dueDatesInRange(startDueDate, nextDueDate)) {
InvoiceCalculationParameters parameters = InvoiceCalculationParameters.builder().lease(lease).leaseItemTypes(leaseItemTypes).invoiceRunType(InvoiceRunType.NORMAL_RUN).invoiceDueDate(dueDate).startDueDate(startDueDate).nextDueDate(dueDate.plusDays(1)).build();
String runId = invoiceCalculationService.calculateAndInvoice(parameters);
if (runId != null) {
final InvoiceSummaryForInvoiceRun summaryForInvoiceRun = invoiceSummaries.findByRunId(runId);
if (summaryForInvoiceRun != null) {
summaryForInvoiceRun.saveAllAsHistoric();
} else {
getContainer().warnUser(String.format("Run Id [%s] not found", runId));
}
}
}
}
}
return "Done";
}
Aggregations