public String deactivateProductDefinition()

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