public String process()

in service/src/main/java/org/apache/fineract/cn/deposit/service/internal/command/handler/InterestBearingBalanceCalculator.java [53:75]


    public String process(final CalculateIBBCommand calculateIBBCommand) {
        final LocalDate dueDate = calculateIBBCommand.dueDate();
        //calculate and store ibb for the date-1day
        final List<ProductDefinitionEntity> productDefinitions = this.productDefinitionRepository.findAll();

        productDefinitions.forEach(productDefinitionEntity -> {
            if (this.canFindIBBForProduct(productDefinitionEntity)) {
                final List<ProductInstanceEntity> productInstances =
                        this.productInstanceRepository.findByProductDefinition(productDefinitionEntity);

                productInstances.forEach(productInstanceEntity -> {
                    if (productInstanceEntity.getState().equals(ACTIVE)) {
                        //get transactions
                        List<TransactionEntity> transactions =  transactionRepository.findByAccountId(productInstanceEntity.getAccountIdentifier());
                        if(!transactions.isEmpty())
                            calculateAndSaveIBB(productInstanceEntity, transactions, dueDate);
                    }
                });
            }
        });

        return DateConverter.toIsoString(dueDate);
    }