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