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());
}
}