public String process()

in service/src/main/java/org/apache/fineract/cn/payroll/service/internal/command/handler/PayrollConfigurationAggregate.java [66:101]


  public String process(final PutPayrollConfigurationCommand putPayrollConfigurationCommand) {
    final String customerIdentifier = putPayrollConfigurationCommand.customerIdentifier();
    final PayrollConfiguration payrollConfiguration = putPayrollConfigurationCommand.payrollConfiguration();

    final PayrollConfigurationEntity payrollConfigurationEntity;

    final Optional<PayrollConfigurationEntity> optionalPayrollConfiguration =
        this.payrollConfigurationRepository.findByCustomerIdentifier(customerIdentifier);
    if (optionalPayrollConfiguration.isPresent()) {
      payrollConfigurationEntity = optionalPayrollConfiguration.get();
      this.payrollAllocationRepository.deleteByPayrollConfiguration(payrollConfigurationEntity);
      this.payrollAllocationRepository.flush();

      payrollConfigurationEntity.setLastModifiedBy(UserContextHolder.checkedGetUser());
      payrollConfigurationEntity.setLastModifiedOn(LocalDateTime.now(Clock.systemUTC()));
    } else {
      payrollConfigurationEntity = new PayrollConfigurationEntity();
      payrollConfigurationEntity.setCustomerIdentifier(customerIdentifier);
      payrollConfigurationEntity.setCreatedBy(UserContextHolder.checkedGetUser());
      payrollConfigurationEntity.setCreatedOn(LocalDateTime.now(Clock.systemUTC()));
    }

    payrollConfigurationEntity.setMainAccountNumber(payrollConfiguration.getMainAccountNumber());
    final PayrollConfigurationEntity savedPayrollConfigurationEntity =
        this.payrollConfigurationRepository.save(payrollConfigurationEntity);

    if (payrollConfiguration.getPayrollAllocations() != null) {
      payrollConfiguration.getPayrollAllocations()
          .forEach(payrollAllocation -> {
            final PayrollAllocationEntity payrollAllocationEntity = PayrollAllocationMapper.map(payrollAllocation);
            payrollAllocationEntity.setPayrollConfiguration(savedPayrollConfigurationEntity);
            this.payrollAllocationRepository.save(payrollAllocationEntity);
          });
    }
    return customerIdentifier;
  }