Search in sources :

Example 1 with InvoiceSummaryForInvoiceRun

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";
}
Also used : Lease(org.estatio.module.lease.dom.Lease) InvoiceSummaryForInvoiceRun(org.estatio.module.lease.dom.invoicing.summary.InvoiceSummaryForInvoiceRun) InvoiceCalculationParameters(org.estatio.module.lease.dom.invoicing.InvoiceCalculationParameters) LocalDate(org.joda.time.LocalDate)

Aggregations

Lease (org.estatio.module.lease.dom.Lease)1 InvoiceCalculationParameters (org.estatio.module.lease.dom.invoicing.InvoiceCalculationParameters)1 InvoiceSummaryForInvoiceRun (org.estatio.module.lease.dom.invoicing.summary.InvoiceSummaryForInvoiceRun)1 LocalDate (org.joda.time.LocalDate)1