in service/src/main/java/org/apache/fineract/cn/deposit/service/internal/command/handler/ProductDefinitionAggregate.java [142:165]
public String deactivateProductDefinition(final DeactivateProductDefinitionCommand activateProductDefinitionCommand) {
final Optional<ProductDefinitionEntity> optionalProductDefinition = productDefinitionRepository.findByIdentifier(activateProductDefinitionCommand.identifier());
if (optionalProductDefinition.isPresent()) {
final ProductDefinitionCommand command = activateProductDefinitionCommand.command();
command.setCreatedBy(UserContextHolder.checkedGetUser());
command.setCreatedOn(DateConverter.toIsoString(LocalDateTime.now(Clock.systemUTC())));
final ProductDefinitionEntity productDefinitionEntity = optionalProductDefinition.get();
productDefinitionEntity.setActive(Boolean.FALSE);
productDefinitionEntity.setLastModifiedBy(command.getCreatedBy());
productDefinitionEntity.setLastModifiedOn(DateConverter.fromIsoString(command.getCreatedOn()));
final ProductDefinitionEntity savedProductDefinitionEntity = this.productDefinitionRepository.save(productDefinitionEntity);
final ProductDefinitionCommandEntity productDefinitionCommandEntity = ProductDefinitionCommandMapper.map(command);
productDefinitionCommandEntity.setProductDefinition(savedProductDefinitionEntity);
this.productDefinitionCommandRepository.save(productDefinitionCommandEntity);
return activateProductDefinitionCommand.identifier();
} else {
this.logger.warn("Could not activate production definition {}, not found.", activateProductDefinitionCommand.identifier());
return null;
}
}