public String process()

in service/src/main/java/org/apache/fineract/cn/deposit/service/internal/command/handler/ProductDefinitionAggregate.java [170:196]


  public String process(final UpdateProductDefinitionCommand updateProductDefinitionCommand) {
    final ProductDefinition productDefinition = updateProductDefinitionCommand.productDefinition();

    final Optional<ProductDefinitionEntity> optionalProductDefinition =
        this.productDefinitionRepository.findByIdentifier(productDefinition.getIdentifier());

    if (optionalProductDefinition.isPresent()) {
      final ProductDefinitionEntity productDefinitionEntity = optionalProductDefinition.get();

      this.deleteDependingEntities(productDefinitionEntity);

      productDefinitionEntity.setName(productDefinition.getName());
      productDefinitionEntity.setDescription(productDefinition.getDescription());
      productDefinitionEntity.setInterest(productDefinition.getInterest());
      productDefinitionEntity.setMinimumBalance(productDefinition.getMinimumBalance());
      productDefinitionEntity.setFlexible(productDefinition.getFlexible());
      productDefinitionEntity.setEquityLedgerIdentifier(productDefinition.getEquityLedgerIdentifier());
      productDefinitionEntity.setExpenseAccountIdentifier(productDefinition.getExpenseAccountIdentifier());
      final ProductDefinitionEntity savedProductDefinition = this.productDefinitionRepository.save(productDefinitionEntity);

      this.saveDependingEntities(productDefinition, savedProductDefinition);

      return productDefinitionEntity.getIdentifier();
    } else {
      throw ServiceException.notFound("Product definition {0} not found.", productDefinition.getIdentifier());
    }
  }