FINERACT-1734: Added a separate Loan business event for every monetary activity
This commit is contained in:
committed by
Arnold Gálovics
parent
a313bced0a
commit
6bd21e71be
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "LoanTransactionWithLoanV1",
|
|
||||||
"namespace": "org.apache.fineract.avro.loan.v1",
|
|
||||||
"type": "record",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"default": null,
|
|
||||||
"name": "loan",
|
|
||||||
"type": [
|
|
||||||
"null",
|
|
||||||
"org.apache.fineract.avro.loan.v1.LoanAccountDataV1"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"default": null,
|
|
||||||
"name": "loanTransaction",
|
|
||||||
"type": [
|
|
||||||
"null",
|
|
||||||
"org.apache.fineract.avro.loan.v1.LoanTransactionDataV1"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
package org.apache.fineract.infrastructure.event.business.domain.loan;
|
||||||
|
|
||||||
|
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
||||||
|
|
||||||
|
public class LoanBalanceChangedBusinessEvent extends LoanBusinessEvent {
|
||||||
|
|
||||||
|
public LoanBalanceChangedBusinessEvent(Loan value) {
|
||||||
|
super(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType() {
|
||||||
|
return "LoanBalanceChangedBusinessEvent";
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-9
@@ -22,16 +22,12 @@ import java.io.IOException;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.avro.generic.GenericContainer;
|
import org.apache.avro.generic.GenericContainer;
|
||||||
import org.apache.fineract.avro.loan.v1.LoanAccountDataV1;
|
|
||||||
import org.apache.fineract.avro.loan.v1.LoanTransactionDataV1;
|
import org.apache.fineract.avro.loan.v1.LoanTransactionDataV1;
|
||||||
import org.apache.fineract.avro.loan.v1.LoanTransactionWithLoanV1;
|
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanAccountDataMapper;
|
|
||||||
import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanTransactionDataMapper;
|
import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanTransactionDataMapper;
|
||||||
import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
|
import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
|
||||||
import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
|
import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
|
||||||
import org.apache.fineract.portfolio.loanaccount.data.LoanAccountData;
|
|
||||||
import org.apache.fineract.portfolio.loanaccount.data.LoanTransactionData;
|
import org.apache.fineract.portfolio.loanaccount.data.LoanTransactionData;
|
||||||
import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
|
import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -41,7 +37,6 @@ import org.springframework.stereotype.Component;
|
|||||||
public class LoanTransactionBusinessEventSerializer implements BusinessEventSerializer {
|
public class LoanTransactionBusinessEventSerializer implements BusinessEventSerializer {
|
||||||
|
|
||||||
private final LoanReadPlatformService service;
|
private final LoanReadPlatformService service;
|
||||||
private final LoanAccountDataMapper loanMapper;
|
|
||||||
private final LoanTransactionDataMapper loanTransactionMapper;
|
private final LoanTransactionDataMapper loanTransactionMapper;
|
||||||
private final ByteBufferConverter byteBufferConverter;
|
private final ByteBufferConverter byteBufferConverter;
|
||||||
|
|
||||||
@@ -54,12 +49,9 @@ public class LoanTransactionBusinessEventSerializer implements BusinessEventSeri
|
|||||||
public <T> byte[] serialize(BusinessEvent<T> rawEvent) throws IOException {
|
public <T> byte[] serialize(BusinessEvent<T> rawEvent) throws IOException {
|
||||||
LoanTransactionBusinessEvent event = (LoanTransactionBusinessEvent) rawEvent;
|
LoanTransactionBusinessEvent event = (LoanTransactionBusinessEvent) rawEvent;
|
||||||
Long loanId = event.get().getLoan().getId();
|
Long loanId = event.get().getLoan().getId();
|
||||||
LoanAccountData loanData = service.retrieveOne(loanId);
|
|
||||||
LoanAccountDataV1 loanAvroDto = loanMapper.map(loanData);
|
|
||||||
Long loanTransactionId = event.get().getId();
|
Long loanTransactionId = event.get().getId();
|
||||||
LoanTransactionData transactionData = service.retrieveLoanTransaction(loanId, loanTransactionId);
|
LoanTransactionData transactionData = service.retrieveLoanTransaction(loanId, loanTransactionId);
|
||||||
LoanTransactionDataV1 loanTransactionAvroDto = loanTransactionMapper.map(transactionData);
|
LoanTransactionDataV1 avroDto = loanTransactionMapper.map(transactionData);
|
||||||
LoanTransactionWithLoanV1 avroDto = new LoanTransactionWithLoanV1(loanAvroDto, loanTransactionAvroDto);
|
|
||||||
ByteBuffer buffer = avroDto.toByteBuffer();
|
ByteBuffer buffer = avroDto.toByteBuffer();
|
||||||
return byteBufferConverter.convert(buffer);
|
return byteBufferConverter.convert(buffer);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-7
@@ -223,7 +223,6 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP
|
|||||||
public CommandProcessingResult createClient(final JsonCommand command) {
|
public CommandProcessingResult createClient(final JsonCommand command) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
businessEventNotifierService.startExternalEventRecording();
|
|
||||||
final AppUser currentUser = this.context.authenticatedUser();
|
final AppUser currentUser = this.context.authenticatedUser();
|
||||||
|
|
||||||
this.fromApiJsonDeserializer.validateForCreate(command.json());
|
this.fromApiJsonDeserializer.validateForCreate(command.json());
|
||||||
@@ -301,9 +300,6 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.clientRepository.saveAndFlush(newClient);
|
this.clientRepository.saveAndFlush(newClient);
|
||||||
if (newClient.isActive()) {
|
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new ClientActivateBusinessEvent(newClient));
|
|
||||||
}
|
|
||||||
if (newClient.isAccountNumberRequiresAutoGeneration()) {
|
if (newClient.isAccountNumberRequiresAutoGeneration()) {
|
||||||
AccountNumberFormat accountNumberFormat = this.accountNumberFormatRepository.findByAccountType(EntityAccountType.CLIENT);
|
AccountNumberFormat accountNumberFormat = this.accountNumberFormatRepository.findByAccountType(EntityAccountType.CLIENT);
|
||||||
newClient.updateAccountNo(accountNumberGenerator.generate(newClient, accountNumberFormat));
|
newClient.updateAccountNo(accountNumberGenerator.generate(newClient, accountNumberFormat));
|
||||||
@@ -336,11 +332,12 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP
|
|||||||
command.arrayOfParameterNamed(ClientApiConstants.datatables));
|
command.arrayOfParameterNamed(ClientApiConstants.datatables));
|
||||||
}
|
}
|
||||||
|
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new ClientCreateBusinessEvent(newClient));
|
|
||||||
|
|
||||||
entityDatatableChecksWritePlatformService.runTheCheck(newClient.getId(), EntityTables.CLIENT.getName(),
|
entityDatatableChecksWritePlatformService.runTheCheck(newClient.getId(), EntityTables.CLIENT.getName(),
|
||||||
StatusEnum.CREATE.getCode().longValue(), EntityTables.CLIENT.getForeignKeyColumnNameOnDatatable());
|
StatusEnum.CREATE.getCode().longValue(), EntityTables.CLIENT.getForeignKeyColumnNameOnDatatable());
|
||||||
businessEventNotifierService.stopExternalEventRecording();
|
businessEventNotifierService.notifyPostBusinessEvent(new ClientCreateBusinessEvent(newClient));
|
||||||
|
if (newClient.isActive()) {
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new ClientActivateBusinessEvent(newClient));
|
||||||
|
}
|
||||||
return new CommandProcessingResultBuilder() //
|
return new CommandProcessingResultBuilder() //
|
||||||
.withCommandId(command.commandId()) //
|
.withCommandId(command.commandId()) //
|
||||||
.withOfficeId(clientOffice.getId()) //
|
.withOfficeId(clientOffice.getId()) //
|
||||||
|
|||||||
+7
@@ -38,6 +38,7 @@ import org.apache.fineract.infrastructure.core.exception.GeneralPlatformDomainRu
|
|||||||
import org.apache.fineract.infrastructure.core.exception.MultiException;
|
import org.apache.fineract.infrastructure.core.exception.MultiException;
|
||||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||||
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
||||||
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBalanceChangedBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanChargePaymentPostBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanChargePaymentPostBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanChargePaymentPreBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanChargePaymentPreBusinessEvent;
|
||||||
@@ -227,6 +228,7 @@ public class LoanAccountDomainServiceJpa implements LoanAccountDomainService {
|
|||||||
if (!repaymentTransactionType.isChargeRefund()) {
|
if (!repaymentTransactionType.isChargeRefund()) {
|
||||||
LoanTransactionBusinessEvent transactionRepaymentEvent = getTransactionRepaymentTypeBusinessEvent(repaymentTransactionType,
|
LoanTransactionBusinessEvent transactionRepaymentEvent = getTransactionRepaymentTypeBusinessEvent(repaymentTransactionType,
|
||||||
isRecoveryRepayment, newRepaymentTransaction);
|
isRecoveryRepayment, newRepaymentTransaction);
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(transactionRepaymentEvent);
|
businessEventNotifierService.notifyPostBusinessEvent(transactionRepaymentEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -403,6 +405,7 @@ public class LoanAccountDomainServiceJpa implements LoanAccountDomainService {
|
|||||||
|
|
||||||
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
||||||
recalculateAccruals(loan);
|
recalculateAccruals(loan);
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanChargePaymentPostBusinessEvent(newPaymentTransaction));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanChargePaymentPostBusinessEvent(newPaymentTransaction));
|
||||||
return newPaymentTransaction;
|
return newPaymentTransaction;
|
||||||
}
|
}
|
||||||
@@ -474,6 +477,7 @@ public class LoanAccountDomainServiceJpa implements LoanAccountDomainService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanRefundPostBusinessEvent(newRefundTransaction));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanRefundPostBusinessEvent(newRefundTransaction));
|
||||||
builderResult.withEntityId(newRefundTransaction.getId()).withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId())
|
builderResult.withEntityId(newRefundTransaction.getId()).withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId())
|
||||||
.withGroupId(loan.getGroupId());
|
.withGroupId(loan.getGroupId());
|
||||||
@@ -664,6 +668,7 @@ public class LoanAccountDomainServiceJpa implements LoanAccountDomainService {
|
|||||||
|
|
||||||
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, false);
|
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, false);
|
||||||
recalculateAccruals(loan);
|
recalculateAccruals(loan);
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService
|
businessEventNotifierService
|
||||||
.notifyPostBusinessEvent(new LoanCreditBalanceRefundPostBusinessEvent(newCreditBalanceRefundTransaction));
|
.notifyPostBusinessEvent(new LoanCreditBalanceRefundPostBusinessEvent(newCreditBalanceRefundTransaction));
|
||||||
|
|
||||||
@@ -703,6 +708,7 @@ public class LoanAccountDomainServiceJpa implements LoanAccountDomainService {
|
|||||||
|
|
||||||
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, false);
|
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, false);
|
||||||
recalculateAccruals(loan);
|
recalculateAccruals(loan);
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanRefundPostBusinessEvent(newRefundTransaction));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanRefundPostBusinessEvent(newRefundTransaction));
|
||||||
|
|
||||||
builderResult.withEntityId(newRefundTransaction.getId()).withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId())
|
builderResult.withEntityId(newRefundTransaction.getId()).withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId())
|
||||||
@@ -806,6 +812,7 @@ public class LoanAccountDomainServiceJpa implements LoanAccountDomainService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, false);
|
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds, false);
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanForeClosurePostBusinessEvent(payment));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanForeClosurePostBusinessEvent(payment));
|
||||||
return changes;
|
return changes;
|
||||||
|
|
||||||
|
|||||||
+6
@@ -58,6 +58,7 @@ import org.apache.fineract.infrastructure.dataqueries.service.EntityDatatableChe
|
|||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAcceptTransferBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAcceptTransferBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAdjustTransactionBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAdjustTransactionBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApplyOverdueChargeBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApplyOverdueChargeBusinessEvent;
|
||||||
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBalanceChangedBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCloseAsRescheduleBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCloseAsRescheduleBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCloseBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCloseBusinessEvent;
|
||||||
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanDisbursalBusinessEvent;
|
import org.apache.fineract.infrastructure.event.business.domain.loan.LoanDisbursalBusinessEvent;
|
||||||
@@ -1156,6 +1157,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
|||||||
if (newTransactionDetail.isRepaymentType() && newTransactionDetail.isGreaterThanZero(loan.getPrincipal().getCurrency())) {
|
if (newTransactionDetail.isRepaymentType() && newTransactionDetail.isGreaterThanZero(loan.getPrincipal().getCurrency())) {
|
||||||
eventData.setNewTransactionDetail(newTransactionDetail);
|
eventData.setNewTransactionDetail(newTransactionDetail);
|
||||||
}
|
}
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanAdjustTransactionBusinessEvent(eventData));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanAdjustTransactionBusinessEvent(eventData));
|
||||||
|
|
||||||
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(transactionId)
|
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(transactionId)
|
||||||
@@ -1233,6 +1235,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
|||||||
loanAccountDomainService.recalculateAccruals(loan);
|
loanAccountDomainService.recalculateAccruals(loan);
|
||||||
loanAccountDomainService.setLoanDelinquencyTag(loan, DateUtils.getBusinessLocalDate());
|
loanAccountDomainService.setLoanDelinquencyTag(loan, DateUtils.getBusinessLocalDate());
|
||||||
|
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanWaiveInterestBusinessEvent(waiveInterestTransaction));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanWaiveInterestBusinessEvent(waiveInterestTransaction));
|
||||||
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(waiveInterestTransaction.getId())
|
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(waiveInterestTransaction.getId())
|
||||||
.withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId()).withGroupId(loan.getGroupId()).withLoanId(loanId)
|
.withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId()).withGroupId(loan.getGroupId()).withLoanId(loanId)
|
||||||
@@ -1298,6 +1301,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
|||||||
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds);
|
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds);
|
||||||
loanAccountDomainService.recalculateAccruals(loan);
|
loanAccountDomainService.recalculateAccruals(loan);
|
||||||
loanAccountDomainService.setLoanDelinquencyTag(loan, DateUtils.getBusinessLocalDate());
|
loanAccountDomainService.setLoanDelinquencyTag(loan, DateUtils.getBusinessLocalDate());
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanWrittenOffPostBusinessEvent(writeOff));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanWrittenOffPostBusinessEvent(writeOff));
|
||||||
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(writeOff.getId())
|
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(writeOff.getId())
|
||||||
.withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId()).withGroupId(loan.getGroupId()).withLoanId(loanId)
|
.withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId()).withGroupId(loan.getGroupId()).withLoanId(loanId)
|
||||||
@@ -1726,6 +1730,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(newChargeRefundTxn.getLoan()));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanChargeRefundBusinessEvent(newChargeRefundTxn));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanChargeRefundBusinessEvent(newChargeRefundTxn));
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
@@ -2874,6 +2879,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
|||||||
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds);
|
postJournalEntries(loan, existingTransactionIds, existingReversedTransactionIds);
|
||||||
this.loanAccountDomainService.recalculateAccruals(loan);
|
this.loanAccountDomainService.recalculateAccruals(loan);
|
||||||
if (writeOffTransaction != null) {
|
if (writeOffTransaction != null) {
|
||||||
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(loan));
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanUndoWrittenOffBusinessEvent(writeOffTransaction));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanUndoWrittenOffBusinessEvent(writeOffTransaction));
|
||||||
}
|
}
|
||||||
this.loanAccountDomainService.setLoanDelinquencyTag(loan, DateUtils.getBusinessLocalDate());
|
this.loanAccountDomainService.setLoanDelinquencyTag(loan, DateUtils.getBusinessLocalDate());
|
||||||
|
|||||||
Reference in New Issue
Block a user