FINERACT-2152: Interest pause during one period and between two periods

This commit is contained in:
Oleksii Novikov
2025-01-24 09:58:02 +01:00
committed by Adam Saghy
parent a9d76ef3dd
commit af37e07f31
18 changed files with 414 additions and 79 deletions
@@ -139,15 +139,36 @@ public class LoanAssemblerImpl implements LoanAssembler {
@Override
public Loan assembleFrom(final Long accountId) {
final Loan loanAccount = this.loanRepository.findOneWithNotFoundDetection(accountId, true);
loanAccount.setHelpers(defaultLoanLifecycleStateMachine, this.loanRepaymentScheduleTransactionProcessorFactory);
return assembleFrom(accountId, true);
}
@Override
public Loan assembleFrom(final Long accountId, final boolean loadLazyCollections) {
final Loan loanAccount = loanRepository.findOneWithNotFoundDetection(accountId, loadLazyCollections);
setHelpers(loanAccount);
return loanAccount;
}
@Override
public Loan assembleFrom(final ExternalId externalId) {
final Loan loanAccount = loanRepository.findOneWithNotFoundDetection(externalId, true);
setHelpers(loanAccount);
return loanAccount;
}
@Override
public Loan assembleFrom(final ExternalId externalId, final boolean loadLazyCollections) {
final Loan loanAccount = loanRepository.findOneWithNotFoundDetection(externalId, loadLazyCollections);
setHelpers(loanAccount);
return loanAccount;
}
@Override
public void setHelpers(final Loan loanAccount) {
loanAccount.setHelpers(defaultLoanLifecycleStateMachine, this.loanRepaymentScheduleTransactionProcessorFactory);
loanAccount.setHelpers(defaultLoanLifecycleStateMachine, loanRepaymentScheduleTransactionProcessorFactory);
}
@Override
@@ -471,7 +471,7 @@ public class LoanAccountConfiguration {
@Bean
@ConditionalOnMissingBean(InterestPauseWritePlatformService.class)
public InterestPauseWritePlatformService interestPauseWritePlatformService(LoanTermVariationsRepository loanTermVariationsRepository,
LoanRepositoryWrapper loanRepositoryWrapper) {
return new InterestPauseWritePlatformServiceImpl(loanTermVariationsRepository, loanRepositoryWrapper);
LoanRepositoryWrapper loanRepositoryWrapper, LoanAssembler loanAssembler) {
return new InterestPauseWritePlatformServiceImpl(loanTermVariationsRepository, loanRepositoryWrapper, loanAssembler);
}
}