This is an automated email from the ASF dual-hosted git repository.
arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 89a4db47c Reorganizing business events
89a4db47c is described below
commit 89a4db47ccb382756b57a4624c4dc86adefcb74f
Author: Arnold Galovics <[email protected]>
AuthorDate: Mon May 30 11:53:25 2022 +0200
Reorganizing business events
---
.../service/EmailCampaignDomainServiceImpl.java | 28 ++---
.../sms/service/SmsCampaignDomainServiceImpl.java | 50 ++++----
.../service/NotificationDomainServiceImpl.java | 56 +++++----
.../BusinessEventListener.java | 4 +-
.../domain/BusinessEntity.java} | 37 +++---
.../businessevent/domain/BusinessEvent.java | 103 ++++++++++++++++
.../service/BusinessEventNotifierService.java | 15 +--
.../service/BusinessEventNotifierServiceImpl.java | 47 ++++----
...lientWritePlatformServiceJpaRepositoryImpl.java | 14 +--
.../common/BusinessEventNotificationConstants.java | 132 ---------------------
...TypesWritePlatformServiceJpaRepositoryImpl.java | 14 +--
.../domain/LoanAccountDomainServiceJpa.java | 42 +++----
.../service/GuarantorDomainServiceImpl.java | 44 +++----
...ationWritePlatformServiceJpaRepositoryImpl.java | 14 +--
.../service/LoanArrearsAgingServiceImpl.java | 30 ++---
.../LoanWritePlatformServiceJpaRepositoryImpl.java | 104 ++++++++--------
...oductWritePlatformServiceJpaRepositoryImpl.java | 16 ++-
.../domain/SavingsAccountDomainServiceJpa.java | 10 +-
...ocessWritePlatformServiceJpaRepositoryImpl.java | 20 ++--
...countWritePlatformServiceJpaRepositoryImpl.java | 12 +-
...ocessWritePlatformServiceJpaRepositoryImpl.java | 12 +-
...countWritePlatformServiceJpaRepositoryImpl.java | 16 ++-
...oductWritePlatformServiceJpaRepositoryImpl.java | 14 +--
23 files changed, 390 insertions(+), 444 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignDomainServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignDomainServiceImpl.java
index b6a0f2e56..a5be1969f 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignDomainServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignDomainServiceImpl.java
@@ -28,9 +28,10 @@ import javax.annotation.PostConstruct;
import org.apache.fineract.infrastructure.campaigns.email.domain.EmailCampaign;
import
org.apache.fineract.infrastructure.campaigns.email.domain.EmailCampaignRepository;
import
org.apache.fineract.infrastructure.campaigns.sms.constants.SmsCampaignTriggerType;
-import org.apache.fineract.portfolio.common.BusinessEventNotificationConstants;
-import org.apache.fineract.portfolio.common.service.BusinessEventListener;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
+import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
import org.slf4j.Logger;
@@ -56,20 +57,19 @@ public class EmailCampaignDomainServiceImpl implements
EmailCampaignDomainServic
@PostConstruct
public void addListeners() {
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEventNotificationConstants.BusinessEvents.LOAN_APPROVED,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_APPROVED,
new EmailCampaignDomainServiceImpl.SendEmailOnLoanApproved());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEventNotificationConstants.BusinessEvents.LOAN_REJECTED,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_REJECTED,
new EmailCampaignDomainServiceImpl.SendEmailOnLoanRejected());
- this.businessEventNotifierService.addBusinessEventPostListeners(
-
BusinessEventNotificationConstants.BusinessEvents.LOAN_MAKE_REPAYMENT,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_MAKE_REPAYMENT,
new EmailCampaignDomainServiceImpl.SendEmailOnLoanRepayment());
}
private class SendEmailOnLoanRepayment extends EmailBusinessEventAdapter {
@Override
- public void
businessEventWasExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.LOAN_TRANSACTION);
+ public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
+ Object entity =
businessEventEntity.get(BusinessEntity.LOAN_TRANSACTION);
if (entity instanceof LoanTransaction) {
LoanTransaction loanTransaction = (LoanTransaction) entity;
try {
@@ -84,8 +84,8 @@ public class EmailCampaignDomainServiceImpl implements
EmailCampaignDomainServic
private class SendEmailOnLoanRejected extends EmailBusinessEventAdapter {
@Override
- public void
businessEventWasExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.LOAN);
+ public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
+ Object entity = businessEventEntity.get(BusinessEntity.LOAN);
if (entity instanceof Loan) {
Loan loan = (Loan) entity;
try {
@@ -100,8 +100,8 @@ public class EmailCampaignDomainServiceImpl implements
EmailCampaignDomainServic
private class SendEmailOnLoanApproved extends EmailBusinessEventAdapter {
@Override
- public void
businessEventWasExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.LOAN);
+ public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
+ Object entity = businessEventEntity.get(BusinessEntity.LOAN);
if (entity instanceof Loan) {
Loan loan = (Loan) entity;
try {
@@ -138,7 +138,7 @@ public class EmailCampaignDomainServiceImpl implements
EmailCampaignDomainServic
private abstract static class EmailBusinessEventAdapter implements
BusinessEventListener {
@Override
- public void
businessEventToBeExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
+ public void businessEventToBeExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
// Nothing to do
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java
index e7a0b9d99..79ae5a60b 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java
@@ -42,12 +42,11 @@ import
org.apache.fineract.infrastructure.sms.domain.SmsMessageRepository;
import
org.apache.fineract.infrastructure.sms.scheduler.SmsMessageScheduledJobService;
import org.apache.fineract.organisation.office.domain.Office;
import org.apache.fineract.organisation.office.domain.OfficeRepository;
+import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.client.domain.Client;
-import org.apache.fineract.portfolio.common.BusinessEventNotificationConstants;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import org.apache.fineract.portfolio.common.service.BusinessEventListener;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.domain.GroupRepository;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
@@ -94,18 +93,17 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
@PostConstruct
public void addListeners() {
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_APPROVED,
new SendSmsOnLoanApproved());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_REJECTED,
new SendSmsOnLoanRejected());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_MAKE_REPAYMENT,
new SendSmsOnLoanRepayment());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.CLIENTS_ACTIVATE,
new ClientActivatedListener());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.CLIENTS_REJECT,
new ClientRejectedListener());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_ACTIVATE,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_APPROVED,
new SendSmsOnLoanApproved());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_REJECTED,
new SendSmsOnLoanRejected());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_MAKE_REPAYMENT,
new SendSmsOnLoanRepayment());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.CLIENTS_ACTIVATE,
new ClientActivatedListener());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.CLIENTS_REJECT,
new ClientRejectedListener());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_ACTIVATE,
new SavingsAccountActivatedListener());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_REJECT,
- new SavingsAccountRejectedListener());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_DEPOSIT,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_REJECT,
new SavingsAccountRejectedListener());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_DEPOSIT,
new SavingsAccountTransactionListener(true));
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_WITHDRAWAL,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_WITHDRAWAL,
new SavingsAccountTransactionListener(false));
}
@@ -395,8 +393,8 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
private class SendSmsOnLoanApproved extends SmsBusinessEventAdapter {
@Override
- public void
businessEventWasExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.LOAN);
+ public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
+ Object entity = businessEventEntity.get(BusinessEntity.LOAN);
if (entity instanceof Loan) {
Loan loan = (Loan) entity;
notifyAcceptedLoanOwner(loan);
@@ -407,8 +405,8 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
private class SendSmsOnLoanRejected extends SmsBusinessEventAdapter {
@Override
- public void
businessEventWasExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.LOAN);
+ public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
+ Object entity = businessEventEntity.get(BusinessEntity.LOAN);
if (entity instanceof Loan) {
Loan loan = (Loan) entity;
notifyRejectedLoanOwner(loan);
@@ -419,8 +417,8 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
private class SendSmsOnLoanRepayment extends SmsBusinessEventAdapter {
@Override
- public void
businessEventWasExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.LOAN_TRANSACTION);
+ public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
+ Object entity =
businessEventEntity.get(BusinessEntity.LOAN_TRANSACTION);
if (entity instanceof LoanTransaction) {
LoanTransaction loanTransaction = (LoanTransaction) entity;
sendSmsForLoanRepayment(loanTransaction);
@@ -432,7 +430,7 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
@Override
public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.CLIENT);
+ Object entity = businessEventEntity.get(BusinessEntity.CLIENT);
if (entity instanceof Client) {
notifyClientActivated((Client) entity);
}
@@ -443,7 +441,7 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
@Override
public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.CLIENT);
+ Object entity = businessEventEntity.get(BusinessEntity.CLIENT);
if (entity instanceof Client) {
notifyClientRejected((Client) entity);
}
@@ -455,7 +453,7 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
@Override
public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.SAVING);
+ Object entity = businessEventEntity.get(BusinessEntity.SAVING);
if (entity instanceof SavingsAccount) {
notifySavingsAccountActivated((SavingsAccount) entity);
}
@@ -467,7 +465,7 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
@Override
public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.SAVING);
+ Object entity = businessEventEntity.get(BusinessEntity.SAVING);
if (entity instanceof SavingsAccount) {
notifySavingsAccountRejected((SavingsAccount) entity);
}
@@ -484,7 +482,7 @@ public class SmsCampaignDomainServiceImpl implements
SmsCampaignDomainService {
@Override
public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.SAVINGS_TRANSACTION);
+ Object entity =
businessEventEntity.get(BusinessEntity.SAVINGS_TRANSACTION);
if (entity instanceof SavingsAccountTransaction) {
sendSmsForSavingsTransaction((SavingsAccountTransaction)
entity, this.isDeposit);
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/notification/service/NotificationDomainServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/notification/service/NotificationDomainServiceImpl.java
index 1e703bdd7..673916713 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/notification/service/NotificationDomainServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/notification/service/NotificationDomainServiceImpl.java
@@ -31,12 +31,11 @@ import
org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
import
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.notification.data.NotificationData;
import
org.apache.fineract.notification.eventandlistener.NotificationEventPublisher;
+import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.client.domain.Client;
-import org.apache.fineract.portfolio.common.BusinessEventNotificationConstants;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import org.apache.fineract.portfolio.common.service.BusinessEventListener;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
import org.apache.fineract.portfolio.savings.DepositAccountType;
@@ -61,36 +60,35 @@ public class NotificationDomainServiceImpl implements
NotificationDomainService
@PostConstruct
public void addListeners() {
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.CLIENTS_CREATE,
new ClientCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_APPROVE,
new SavingsAccountApprovedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.CENTERS_CREATE,
new CenterCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.GROUPS_CREATE,
new GroupCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_DEPOSIT,
new SavingsAccountDepositListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SHARE_PRODUCT_DIVIDENDS_CREATE,
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.CLIENTS_CREATE,
new ClientCreatedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_APPROVE,
new SavingsAccountApprovedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.CENTERS_CREATE,
new CenterCreatedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.GROUPS_CREATE,
new GroupCreatedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_DEPOSIT,
new SavingsAccountDepositListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SHARE_PRODUCT_DIVIDENDS_CREATE,
new ShareProductDividendCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.FIXED_DEPOSIT_ACCOUNT_CREATE,
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.FIXED_DEPOSIT_ACCOUNT_CREATE,
new FixedDepositAccountCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.RECURRING_DEPOSIT_ACCOUNT_CREATE,
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.RECURRING_DEPOSIT_ACCOUNT_CREATE,
new RecurringDepositAccountCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_POST_INTEREST,
new SavingsPostInterestListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_CREATE,
new LoanCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_APPROVED,
new LoanApprovedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_CLOSE,
new LoanClosedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_CLOSE_AS_RESCHEDULE,
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_POST_INTEREST,
new SavingsPostInterestListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_CREATE,
new LoanCreatedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_APPROVED,
new LoanApprovedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_CLOSE,
new LoanClosedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_CLOSE_AS_RESCHEDULE,
new LoanCloseAsRescheduledListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_MAKE_REPAYMENT,
new LoanMakeRepaymentListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_PRODUCT_CREATE,
new LoanProductCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_CREATE,
new SavingsAccountCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SAVINGS_CLOSE,
new SavingsAccountClosedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SHARE_ACCOUNT_CREATE,
new ShareAccountCreatedListener());
-
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.SHARE_ACCOUNT_APPROVE,
- new ShareAccountApprovedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_MAKE_REPAYMENT,
new LoanMakeRepaymentListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_PRODUCT_CREATE,
new LoanProductCreatedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_CREATE,
new SavingsAccountCreatedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SAVINGS_CLOSE,
new SavingsAccountClosedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SHARE_ACCOUNT_CREATE,
new ShareAccountCreatedListener());
+
businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.SHARE_ACCOUNT_APPROVE,
new ShareAccountApprovedListener());
}
private abstract static class NotificationBusinessEventAdapter implements
BusinessEventListener {
@Override
- public void
businessEventToBeExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {}
+ public void businessEventToBeExecuted(Map<BusinessEntity, Object>
businessEventEntity) {}
}
private class ClientCreatedListener extends
NotificationBusinessEventAdapter {
@@ -98,7 +96,7 @@ public class NotificationDomainServiceImpl implements
NotificationDomainService
@Override
public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
Client client;
- Object entity =
businessEventEntity.get(BusinessEventNotificationConstants.BusinessEntity.CLIENT);
+ Object entity = businessEventEntity.get(BusinessEntity.CLIENT);
if (entity != null) {
client = (Client) entity;
buildNotification("ACTIVATE_CLIENT", "client", client.getId(),
"New client created", "created",
@@ -110,7 +108,7 @@ public class NotificationDomainServiceImpl implements
NotificationDomainService
private class CenterCreatedListener extends
NotificationBusinessEventAdapter {
@Override
- public void
businessEventWasExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
+ public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
CommandProcessingResult commandProcessingResult;
Object entity = businessEventEntity.get(BusinessEntity.GROUP);
if (entity != null) {
@@ -124,7 +122,7 @@ public class NotificationDomainServiceImpl implements
NotificationDomainService
private class GroupCreatedListener extends
NotificationBusinessEventAdapter {
@Override
- public void
businessEventWasExecuted(Map<BusinessEventNotificationConstants.BusinessEntity,
Object> businessEventEntity) {
+ public void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity) {
CommandProcessingResult commandProcessingResult;
Object entity = businessEventEntity.get(BusinessEntity.GROUP);
if (entity != null) {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventListener.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/BusinessEventListener.java
similarity index 90%
copy from
fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventListener.java
copy to
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/BusinessEventListener.java
index 60ccb3bd6..d0f1bd4cb 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventListener.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/BusinessEventListener.java
@@ -16,10 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.fineract.portfolio.common.service;
+package org.apache.fineract.portfolio.businessevent;
import java.util.Map;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
/**
* The interface to be implemented by classes that want to be informed when a
Business Event executes. example: on
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventListener.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEntity.java
similarity index 51%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventListener.java
rename to
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEntity.java
index 60ccb3bd6..d41604afb 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventListener.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEntity.java
@@ -16,26 +16,29 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.fineract.portfolio.common.service;
+package org.apache.fineract.portfolio.businessevent.domain;
-import java.util.Map;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
+public enum BusinessEntity {
-/**
- * The interface to be implemented by classes that want to be informed when a
Business Event executes. example: on
- * completion of loan approval event need to block guarantor funds
- *
- */
-public interface BusinessEventListener {
+ LOAN("loan"), //
+ LOAN_TRANSACTION("loan_transaction"), //
+ LOAN_CHARGE("loan_charge"), //
+ LOAN_ADJUSTED_TRANSACTION("loan_adjusted_transaction"), SAVING("saving"),
//
+ CLIENT("client"), //
+ SAVINGS_TRANSACTION("Savings Transaction"), //
+ GROUP("group"), //
+ SHARE_ACCOUNT("share_account"), //
+ SHARE_PRODUCT("share_product"), //
+ DEPOSIT_ACCOUNT("deposit_account"), //
+ LOAN_PRODUCT("loan_product");
- /**
- * Implement this method for notifications before executing Business Event
- */
- void businessEventToBeExecuted(Map<BusinessEntity, Object>
businessEventEntity);
+ private final String value;
- /**
- * Implement this method for notifications after executing Business Event
- */
- void businessEventWasExecuted(Map<BusinessEntity, Object>
businessEventEntity);
+ BusinessEntity(final String value) {
+ this.value = value;
+ }
+ public String getValue() {
+ return value;
+ }
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEvent.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEvent.java
new file mode 100644
index 000000000..4c08fc66b
--- /dev/null
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEvent.java
@@ -0,0 +1,103 @@
+/**
+ * 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.portfolio.businessevent.domain;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public enum BusinessEvent {
+
+ LOAN_APPROVED("loan_approved"), //
+ LOAN_REJECTED("loan_reject"), //
+ LOAN_UNDO_APPROVAL("loan_undo_approval"), //
+ LOAN_UNDO_DISBURSAL("loan_undo_disbursal"), //
+ LOAN_UNDO_LASTDISBURSAL("loan_undo_lastdisbursal"), //
+ LOAN_UNDO_TRANSACTION("loan_undo_transaction"), //
+ LOAN_ADJUST_TRANSACTION("loan_adjust_transaction"), //
+ LOAN_MAKE_REPAYMENT("loan_repayment_transaction"), //
+ LOAN_MERCHANT_ISSUED_REFUND("loan_merchant_issued_refund"), //
+ LOAN_PAYOUT_REFUND("loan_payout_refund"), //
+ LOAN_GOODWILL_CREDIT("loan_goodwill_credit"), //
+ LOAN_RECOVERY_PAYMENT("loan_recovery_payment"), //
+ LOAN_WRITTEN_OFF("loan_writtenoff"), //
+ LOAN_UNDO_WRITTEN_OFF("loan_undo_writtenoff"), //
+ LOAN_DISBURSAL("loan_disbursal"), //
+ LOAN_WAIVE_INTEREST("loan_waive_interest"), //
+ LOAN_CLOSE("loan_close"), //
+ LOAN_CLOSE_AS_RESCHEDULE("loan_close_as_reschedule"), //
+ LOAN_ADD_CHARGE("loan_add_charge"), //
+ LOAN_UPDATE_CHARGE("loan_update_charge"), //
+ LOAN_WAIVE_CHARGE_UNDO("loan_waive_charge_undo"), //
+ LOAN_WAIVE_CHARGE("loan_waive_charge"), //
+ LOAN_DELETE_CHARGE("loan_delete_charge"), //
+ LOAN_CHARGE_PAYMENT("loan_charge_payment"), //
+ LOAN_INITIATE_TRANSFER("loan_initiate_transfer"), //
+ LOAN_ACCEPT_TRANSFER("loan_accept_transfer"), //
+ LOAN_WITHDRAW_TRANSFER("loan_withdraw_transfer"), //
+ LOAN_REJECT_TRANSFER("loan_reject_transfer"), //
+ LOAN_REASSIGN_OFFICER("loan_reassign_officer"), //
+ LOAN_REMOVE_OFFICER("loan_remove_officer"), //
+ LOAN_APPLY_OVERDUE_CHARGE("loan_apply_overdue_charge"), //
+ LOAN_INTEREST_RECALCULATION("loan_interest_recalculation"), //
+ LOAN_REFUND("loan_refund"), //
+ LOAN_FORECLOSURE("loan_foreclosure"), //
+ LOAN_CREDIT_BALANCE_REFUND("loan_credit_balance_refund"), //
+ LOAN_CREATE("loan_create"), //
+ LOAN_PRODUCT_CREATE("loan_product_create"), //
+ SAVINGS_ACTIVATE("savings_activated"), //
+ SAVINGS_REJECT("savings_reject"), //
+ SAVINGS_POST_INTEREST("savings_post_interest"), //
+ SAVINGS_DEPOSIT("savings_deposit"), //
+ SAVINGS_CLOSE("savings_close"), //
+ SAVINGS_WITHDRAWAL("savings_withdrawal"), //
+ SAVINGS_APPROVE("savings_approve"), //
+ SAVINGS_CREATE("savings_create"), //
+ CLIENTS_ACTIVATE("clients_activate"), //
+ SHARE_ACCOUNT_CREATE("share_account_create"), //
+ CLIENTS_REJECT("clients_reject"), //
+ CLIENTS_CREATE("clients_create"), //
+ CENTERS_CREATE("centers_create"), //
+ GROUPS_CREATE("groups_create"), //
+ SHARE_PRODUCT_DIVIDENDS_CREATE("share_product_dividends_create"), //
+ FIXED_DEPOSIT_ACCOUNT_CREATE("fixed_deposit_account_create"), //
+ SHARE_ACCOUNT_APPROVE("share_account_approve"), //
+ RECURRING_DEPOSIT_ACCOUNT_CREATE("recurring_deposit_account_create");
+
+ private static final Set<String> VALUES = new HashSet<>();
+
+ static {
+ for (final BusinessEvent type : BusinessEvent.values()) {
+ VALUES.add(type.value);
+ }
+ }
+
+ private final String value;
+
+ BusinessEvent(final String value) {
+ this.value = value;
+ }
+
+ public static Set<String> getAllValues() {
+ return VALUES;
+ }
+
+ public String getValue() {
+ return value;
+ }
+}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventNotifierService.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierService.java
similarity index 70%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventNotifierService.java
rename to
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierService.java
index 89b38fb3e..6ee4228b0 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventNotifierService.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierService.java
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.fineract.portfolio.common.service;
+package org.apache.fineract.portfolio.businessevent.service;
import java.util.Map;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
+import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
/**
* Implemented class is responsible for notifying the business event to
registered listeners.
@@ -31,21 +32,21 @@ public interface BusinessEventNotifierService {
/**
* Method should be called to notify listeners before Business event
execution for any pre-processing of event
*/
- void notifyBusinessEventToBeExecuted(BusinessEvents businessEvent,
Map<BusinessEntity, Object> businessEventEntity);
+ void notifyBusinessEventToBeExecuted(BusinessEvent businessEvent,
Map<BusinessEntity, Object> businessEventEntity);
/**
* Method should be called to notify listeners after Business event
execution for any post-processing of event
*/
- void notifyBusinessEventWasExecuted(BusinessEvents businessEvent,
Map<BusinessEntity, Object> businessEventEntity);
+ void notifyBusinessEventWasExecuted(BusinessEvent businessEvent,
Map<BusinessEntity, Object> businessEventEntity);
/**
* Method is to register a class as listener for pre-processing of any
Business event
*/
- void addBusinessEventPreListeners(BusinessEvents businessEvent,
BusinessEventListener businessEventListener);
+ void addBusinessEventPreListeners(BusinessEvent businessEvent,
BusinessEventListener businessEventListener);
/**
* Method is to register a class as listener for post-processing of any
Business event
*/
- void addBusinessEventPostListeners(BusinessEvents businessEvent,
BusinessEventListener businessEventListener);
+ void addBusinessEventPostListeners(BusinessEvent businessEvent,
BusinessEventListener businessEventListener);
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventNotifierServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierServiceImpl.java
similarity index 54%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventNotifierServiceImpl.java
rename to
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierServiceImpl.java
index 6062f0b5c..dc8b539c4 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventNotifierServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierServiceImpl.java
@@ -16,31 +16,32 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.fineract.portfolio.common.service;
+package org.apache.fineract.portfolio.businessevent.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
+import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
import org.springframework.stereotype.Service;
@Service
public class BusinessEventNotifierServiceImpl implements
BusinessEventNotifierService {
- private final Map<BusinessEvents, List<BusinessEventListener>>
preListeners = new HashMap<>(5);
- private final Map<BusinessEvents, List<BusinessEventListener>>
postListeners = new HashMap<>(5);
+ private final Map<BusinessEvent, List<BusinessEventListener>> preListeners
= new HashMap<>(5);
+ private final Map<BusinessEvent, List<BusinessEventListener>>
postListeners = new HashMap<>(5);
/*
* (non-Javadoc)
*
- * @see
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService
#notifyBusinessEventToBeExecuted
- *
(org.apache.fineract.portfolio.common.BusinessEventNotificationConstants
.BusinessEvents,
- * org.springframework.data.jpa.domain.AbstractPersistable)
+ * @see
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService
+ * #notifyBusinessEventToBeExecuted
(org.apache.fineract.portfolio.common.BusinessEventNotificationConstants
+ * .BusinessEvents,
org.springframework.data.jpa.domain.AbstractPersistable)
*/
@Override
- public void notifyBusinessEventToBeExecuted(BusinessEvents businessEvent,
Map<BusinessEntity, Object> businessEventEntity) {
+ public void notifyBusinessEventToBeExecuted(BusinessEvent businessEvent,
Map<BusinessEntity, Object> businessEventEntity) {
List<BusinessEventListener> businessEventListeners =
this.preListeners.get(businessEvent);
if (businessEventListeners != null) {
for (BusinessEventListener eventListener : businessEventListeners)
{
@@ -52,12 +53,12 @@ public class BusinessEventNotifierServiceImpl implements
BusinessEventNotifierSe
/*
* (non-Javadoc)
*
- * @see
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService
#notifyBusinessEventWasExecuted
- *
(org.apache.fineract.portfolio.common.BusinessEventNotificationConstants
.BusinessEvents,
- * org.springframework.data.jpa.domain.AbstractPersistable)
+ * @see
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService
+ * #notifyBusinessEventWasExecuted
(org.apache.fineract.portfolio.common.BusinessEventNotificationConstants
+ * .BusinessEvents,
org.springframework.data.jpa.domain.AbstractPersistable)
*/
@Override
- public void notifyBusinessEventWasExecuted(BusinessEvents businessEvent,
Map<BusinessEntity, Object> businessEventEntity) {
+ public void notifyBusinessEventWasExecuted(BusinessEvent businessEvent,
Map<BusinessEntity, Object> businessEventEntity) {
List<BusinessEventListener> businessEventListeners =
this.postListeners.get(businessEvent);
if (businessEventListeners != null) {
for (BusinessEventListener eventListener : businessEventListeners)
{
@@ -69,29 +70,29 @@ public class BusinessEventNotifierServiceImpl implements
BusinessEventNotifierSe
/*
* (non-Javadoc)
*
- * @see
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService
#addBusinessEventPreListeners
- *
(org.apache.fineract.portfolio.common.BusinessEventNotificationConstants
.BusinessEvents,
- * org.apache.fineract.portfolio.common.service.BusinessEventListener)
+ * @see
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService
+ * #addBusinessEventPreListeners
(org.apache.fineract.portfolio.common.BusinessEventNotificationConstants
+ * .BusinessEvents,
org.apache.fineract.portfolio.businessevent.BusinessEventListener)
*/
@Override
- public void addBusinessEventPreListeners(BusinessEvents businessEvent,
BusinessEventListener businessEventListener) {
+ public void addBusinessEventPreListeners(BusinessEvent businessEvent,
BusinessEventListener businessEventListener) {
addBusinessEventListeners(businessEvent, businessEventListener,
preListeners);
}
/*
* (non-Javadoc)
*
- * @see
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService
#addBusinessEventPostListeners
- *
(org.apache.fineract.portfolio.common.BusinessEventNotificationConstants
.BusinessEvents,
- * org.apache.fineract.portfolio.common.service.BusinessEventListener)
+ * @see
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService
+ * #addBusinessEventPostListeners
(org.apache.fineract.portfolio.common.BusinessEventNotificationConstants
+ * .BusinessEvents,
org.apache.fineract.portfolio.businessevent.BusinessEventListener)
*/
@Override
- public void addBusinessEventPostListeners(BusinessEvents businessEvent,
BusinessEventListener businessEventListener) {
+ public void addBusinessEventPostListeners(BusinessEvent businessEvent,
BusinessEventListener businessEventListener) {
addBusinessEventListeners(businessEvent, businessEventListener,
postListeners);
}
- private void addBusinessEventListeners(BusinessEvents businessEvent,
BusinessEventListener businessEventListener,
- final Map<BusinessEvents, List<BusinessEventListener>>
businessEventListenerMap) {
+ private void addBusinessEventListeners(BusinessEvent businessEvent,
BusinessEventListener businessEventListener,
+ final Map<BusinessEvent, List<BusinessEventListener>>
businessEventListenerMap) {
List<BusinessEventListener> businessEventListeners =
businessEventListenerMap.get(businessEvent);
if (businessEventListeners == null) {
businessEventListeners = new ArrayList<>();
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
index b537c9fdb..ecf80cc57 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
@@ -55,6 +55,9 @@ import
org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper;
import org.apache.fineract.organisation.staff.domain.Staff;
import org.apache.fineract.organisation.staff.domain.StaffRepositoryWrapper;
import
org.apache.fineract.portfolio.address.service.AddressWritePlatformService;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.client.api.ClientApiConstants;
import org.apache.fineract.portfolio.client.data.ClientDataValidator;
import org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
@@ -69,9 +72,6 @@ import
org.apache.fineract.portfolio.client.exception.ClientHasNoStaffException;
import
org.apache.fineract.portfolio.client.exception.ClientMustBePendingToBeDeletedException;
import
org.apache.fineract.portfolio.client.exception.InvalidClientSavingProductException;
import
org.apache.fineract.portfolio.client.exception.InvalidClientStateTransitionException;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.domain.GroupRepository;
import
org.apache.fineract.portfolio.group.exception.GroupMemberCountNotInPermissibleRangeException;
@@ -305,7 +305,7 @@ public class ClientWritePlatformServiceJpaRepositoryImpl
implements ClientWriteP
this.clientRepository.saveAndFlush(newClient);
if (newClient.isActive()) {
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.CLIENTS_ACTIVATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.CLIENTS_ACTIVATE,
constructEntityMap(BusinessEntity.CLIENT, newClient));
}
if (newClient.isAccountNumberRequiresAutoGeneration()) {
@@ -340,7 +340,7 @@ public class ClientWritePlatformServiceJpaRepositoryImpl
implements ClientWriteP
command.arrayOfParameterNamed(ClientApiConstants.datatables));
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.CLIENTS_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.CLIENTS_CREATE,
constructEntityMap(BusinessEntity.CLIENT, newClient));
this.entityDatatableChecksWritePlatformService.runTheCheck(newClient.getId(),
EntityTables.CLIENT.getName(),
@@ -595,7 +595,7 @@ public class ClientWritePlatformServiceJpaRepositoryImpl
implements ClientWriteP
client.activate(currentUser, fmt, activationDate);
CommandProcessingResult result = openSavingsAccount(client, fmt);
this.clientRepository.saveAndFlush(client);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.CLIENTS_ACTIVATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.CLIENTS_ACTIVATE,
constructEntityMap(BusinessEntity.CLIENT, client));
return new CommandProcessingResultBuilder() //
.withCommandId(command.commandId()) //
@@ -850,7 +850,7 @@ public class ClientWritePlatformServiceJpaRepositoryImpl
implements ClientWriteP
}
client.reject(currentUser, rejectionReason,
Date.from(rejectionDate.atStartOfDay(ZoneId.systemDefault()).toInstant()));
this.clientRepository.saveAndFlush(client);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.CLIENTS_REJECT,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.CLIENTS_REJECT,
constructEntityMap(BusinessEntity.CLIENT, client));
return new CommandProcessingResultBuilder() //
.withCommandId(command.commandId()) //
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/BusinessEventNotificationConstants.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/BusinessEventNotificationConstants.java
deleted file mode 100644
index e7799abbd..000000000
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/BusinessEventNotificationConstants.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * 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.portfolio.common;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class BusinessEventNotificationConstants {
-
- public enum BusinessEvents {
-
- LOAN_APPROVED("loan_approved"), //
- LOAN_REJECTED("loan_reject"), //
- LOAN_UNDO_APPROVAL("loan_undo_approval"), //
- LOAN_UNDO_DISBURSAL("loan_undo_disbursal"), //
- LOAN_UNDO_LASTDISBURSAL("loan_undo_lastdisbursal"), //
- LOAN_UNDO_TRANSACTION("loan_undo_transaction"), //
- LOAN_ADJUST_TRANSACTION("loan_adjust_transaction"), //
- LOAN_MAKE_REPAYMENT("loan_repayment_transaction"), //
- LOAN_MERCHANT_ISSUED_REFUND("loan_merchant_issued_refund"), //
- LOAN_PAYOUT_REFUND("loan_payout_refund"), //
- LOAN_GOODWILL_CREDIT("loan_goodwill_credit"), //
- LOAN_RECOVERY_PAYMENT("loan_recovery_payment"), //
- LOAN_WRITTEN_OFF("loan_writtenoff"), //
- LOAN_UNDO_WRITTEN_OFF("loan_undo_writtenoff"), //
- LOAN_DISBURSAL("loan_disbursal"), //
- LOAN_WAIVE_INTEREST("loan_waive_interest"), //
- LOAN_CLOSE("loan_close"), //
- LOAN_CLOSE_AS_RESCHEDULE("loan_close_as_reschedule"), //
- LOAN_ADD_CHARGE("loan_add_charge"), //
- LOAN_UPDATE_CHARGE("loan_update_charge"), //
- LOAN_WAIVE_CHARGE_UNDO("loan_waive_charge_undo"), //
- LOAN_WAIVE_CHARGE("loan_waive_charge"), //
- LOAN_DELETE_CHARGE("loan_delete_charge"), //
- LOAN_CHARGE_PAYMENT("loan_charge_payment"), //
- LOAN_INITIATE_TRANSFER("loan_initiate_transfer"), //
- LOAN_ACCEPT_TRANSFER("loan_accept_transfer"), //
- LOAN_WITHDRAW_TRANSFER("loan_withdraw_transfer"), //
- LOAN_REJECT_TRANSFER("loan_reject_transfer"), //
- LOAN_REASSIGN_OFFICER("loan_reassign_officer"), //
- LOAN_REMOVE_OFFICER("loan_remove_officer"), //
- LOAN_APPLY_OVERDUE_CHARGE("loan_apply_overdue_charge"), //
- LOAN_INTEREST_RECALCULATION("loan_interest_recalculation"), //
- LOAN_REFUND("loan_refund"), //
- LOAN_FORECLOSURE("loan_foreclosure"), //
- LOAN_CREDIT_BALANCE_REFUND("loan_credit_balance_refund"), //
- LOAN_CREATE("loan_create"), //
- LOAN_PRODUCT_CREATE("loan_product_create"), //
- SAVINGS_ACTIVATE("savings_activated"), //
- SAVINGS_REJECT("savings_reject"), //
- SAVINGS_POST_INTEREST("savings_post_interest"), //
- SAVINGS_DEPOSIT("savings_deposit"), //
- SAVINGS_CLOSE("savings_close"), //
- SAVINGS_WITHDRAWAL("savings_withdrawal"), //
- SAVINGS_APPROVE("savings_approve"), //
- SAVINGS_CREATE("savings_create"), //
- CLIENTS_ACTIVATE("clients_activate"), //
- SHARE_ACCOUNT_CREATE("share_account_create"), //
- CLIENTS_REJECT("clients_reject"), //
- CLIENTS_CREATE("clients_create"), //
- CENTERS_CREATE("centers_create"), //
- GROUPS_CREATE("groups_create"), //
- SHARE_PRODUCT_DIVIDENDS_CREATE("share_product_dividends_create"), //
- FIXED_DEPOSIT_ACCOUNT_CREATE("fixed_deposit_account_create"), //
- SHARE_ACCOUNT_APPROVE("share_account_approve"), //
- RECURRING_DEPOSIT_ACCOUNT_CREATE("recurring_deposit_account_create");
-
- private final String value;
-
- BusinessEvents(final String value) {
- this.value = value;
- }
-
- private static final Set<String> values = new HashSet<>();
-
- static {
- for (final BusinessEvents type : BusinessEvents.values()) {
- values.add(type.value);
- }
- }
-
- public static Set<String> getAllValues() {
- return values;
- }
-
- public String getValue() {
- return this.value;
- }
- }
-
- public enum BusinessEntity {
-
- LOAN("loan"), //
- LOAN_TRANSACTION("loan_transaction"), //
- LOAN_CHARGE("loan_charge"), //
- LOAN_ADJUSTED_TRANSACTION("loan_adjusted_transaction"),
SAVING("saving"), //
- CLIENT("client"), //
- SAVINGS_TRANSACTION("Savings Transaction"), //
- GROUP("group"), //
- SHARE_ACCOUNT("share_account"), //
- SHARE_PRODUCT("share_product"), //
- DEPOSIT_ACCOUNT("deposit_account"), //
- LOAN_PRODUCT("loan_product");
-
- private final String value;
-
- BusinessEntity(final String value) {
- this.value = value;
- }
-
- public String getValue() {
- return this.value;
- }
- }
-
-}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java
index 6f9cbc854..188ef9766 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java
@@ -54,6 +54,9 @@ import
org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper;
import
org.apache.fineract.organisation.office.exception.InvalidOfficeException;
import org.apache.fineract.organisation.staff.domain.Staff;
import org.apache.fineract.organisation.staff.domain.StaffRepositoryWrapper;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.calendar.domain.Calendar;
import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
import org.apache.fineract.portfolio.calendar.domain.CalendarInstance;
@@ -63,10 +66,6 @@ import
org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
import org.apache.fineract.portfolio.client.domain.Client;
import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
import org.apache.fineract.portfolio.client.service.LoanStatusMapper;
-import org.apache.fineract.portfolio.common.BusinessEventNotificationConstants;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.group.api.GroupingTypesApiConstants;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.domain.GroupLevel;
@@ -291,7 +290,7 @@ public class
GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
CommandProcessingResult commandProcessingResult =
createGroupingType(command, GroupTypes.CENTER, centerId);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.CENTERS_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.CENTERS_CREATE,
constructEntityMap(BusinessEntity.GROUP,
commandProcessingResult));
return commandProcessingResult;
@@ -309,7 +308,7 @@ public class
GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
CommandProcessingResult commandProcessingResult =
createGroupingType(command, GroupTypes.GROUP, centerId);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEventNotificationConstants.BusinessEvents.GROUPS_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.GROUPS_CREATE,
constructEntityMap(BusinessEntity.GROUP,
commandProcessingResult));
return commandProcessingResult;
@@ -999,8 +998,7 @@ public class
GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group
}
}
- private Map<BusinessEventNotificationConstants.BusinessEntity, Object>
constructEntityMap(final BusinessEntity entityEvent,
- Object entity) {
+ private Map<BusinessEntity, Object> constructEntityMap(final
BusinessEntity entityEvent, Object entity) {
Map<BusinessEntity, Object> map = new HashMap<>(1);
map.put(entityEvent, entity);
return map;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java
index 285b6f8d8..e12c60d35 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java
@@ -58,12 +58,12 @@ import
org.apache.fineract.portfolio.account.domain.AccountTransferTransaction;
import
org.apache.fineract.portfolio.account.domain.StandingInstructionRepository;
import org.apache.fineract.portfolio.account.domain.StandingInstructionStatus;
import org.apache.fineract.portfolio.accountdetails.domain.AccountType;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.client.domain.Client;
import org.apache.fineract.portfolio.client.exception.ClientNotActiveException;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.exception.GroupNotActiveException;
import org.apache.fineract.portfolio.loanaccount.data.HolidayDetailDTO;
@@ -179,7 +179,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
AppUser currentUser = getAppUserIfPresent();
checkClientOrGroupActive(loan);
- BusinessEvents repaymentTypeEvent =
getRepaymentTypeBusinessEvent(repaymentTransactionType, isRecoveryRepayment);
+ BusinessEvent repaymentTypeEvent =
getRepaymentTypeBusinessEvent(repaymentTransactionType, isRecoveryRepayment);
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(repaymentTypeEvent,
constructEntityMap(BusinessEntity.LOAN, loan));
@@ -287,18 +287,18 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
return newRepaymentTransaction;
}
- private BusinessEvents getRepaymentTypeBusinessEvent(LoanTransactionType
repaymentTransactionType, boolean isRecoveryRepayment) {
- BusinessEvents repaymentTypeEvent = null;
+ private BusinessEvent getRepaymentTypeBusinessEvent(LoanTransactionType
repaymentTransactionType, boolean isRecoveryRepayment) {
+ BusinessEvent repaymentTypeEvent = null;
if (repaymentTransactionType.isRepayment()) {
- repaymentTypeEvent = BusinessEvents.LOAN_MAKE_REPAYMENT;
+ repaymentTypeEvent = BusinessEvent.LOAN_MAKE_REPAYMENT;
} else if (repaymentTransactionType.isMerchantIssuedRefund()) {
- repaymentTypeEvent = BusinessEvents.LOAN_MERCHANT_ISSUED_REFUND;
+ repaymentTypeEvent = BusinessEvent.LOAN_MERCHANT_ISSUED_REFUND;
} else if (repaymentTransactionType.isPayoutRefund()) {
- repaymentTypeEvent = BusinessEvents.LOAN_PAYOUT_REFUND;
+ repaymentTypeEvent = BusinessEvent.LOAN_PAYOUT_REFUND;
} else if (repaymentTransactionType.isGoodwillCredit()) {
- repaymentTypeEvent = BusinessEvents.LOAN_GOODWILL_CREDIT;
+ repaymentTypeEvent = BusinessEvent.LOAN_GOODWILL_CREDIT;
} else if (isRecoveryRepayment) {
- repaymentTypeEvent = BusinessEvents.LOAN_RECOVERY_PAYMENT;
+ repaymentTypeEvent = BusinessEvent.LOAN_RECOVERY_PAYMENT;
}
return repaymentTypeEvent;
}
@@ -364,7 +364,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
AppUser currentUser = getAppUserIfPresent();
boolean isAccountTransfer = true;
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_CHARGE_PAYMENT,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_CHARGE_PAYMENT,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new ArrayList<>();
final List<Long> existingReversedTransactionIds = new ArrayList<>();
@@ -400,7 +400,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds, isAccountTransfer);
recalculateAccruals(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_CHARGE_PAYMENT,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_CHARGE_PAYMENT,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION,
newPaymentTransaction));
return newPaymentTransaction;
}
@@ -450,7 +450,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
boolean isAccountTransfer = true;
final Loan loan = this.loanAccountAssembler.assembleFrom(accountId);
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_REFUND,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_REFUND,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new ArrayList<>();
final List<Long> existingReversedTransactionIds = new ArrayList<>();
@@ -476,7 +476,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
}
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds, isAccountTransfer);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_REFUND,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_REFUND,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION,
newRefundTransaction));
builderResult.withEntityId(newRefundTransaction.getId()).withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId())
.withGroupId(loan.getGroupId());
@@ -646,7 +646,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
public CommandProcessingResultBuilder creditBalanceRefund(Long loanId,
LocalDate transactionDate, BigDecimal transactionAmount,
String noteText, String externalId) {
final Loan loan = this.loanAccountAssembler.assembleFrom(loanId);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_CREDIT_BALANCE_REFUND,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_CREDIT_BALANCE_REFUND,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new ArrayList<>();
final List<Long> existingReversedTransactionIds = new ArrayList<>();
@@ -668,7 +668,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds, false);
recalculateAccruals(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_CREDIT_BALANCE_REFUND,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_CREDIT_BALANCE_REFUND,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION,
newCreditBalanceRefundTransaction));
return new
CommandProcessingResultBuilder().withEntityId(newCreditBalanceRefundTransaction.getId())
//
@@ -682,7 +682,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
BigDecimal transactionAmount, PaymentDetail paymentDetail, String
noteText, String txnExternalId) {
final Loan loan = this.loanAccountAssembler.assembleFrom(accountId);
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_REFUND,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_REFUND,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new ArrayList<>();
final List<Long> existingReversedTransactionIds = new ArrayList<>();
@@ -709,7 +709,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds, false);
recalculateAccruals(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_REFUND,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_REFUND,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION,
newRefundTransaction));
builderResult.withEntityId(newRefundTransaction.getId()).withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId())
@@ -720,7 +720,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
@Override
public Map<String, Object> foreCloseLoan(final Loan loan, final LocalDate
foreClosureDate, final String noteText) {
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_FORECLOSURE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_FORECLOSURE,
constructEntityMap(BusinessEntity.LOAN, loan));
MonetaryCurrency currency = loan.getCurrency();
LocalDateTime createdDate = DateUtils.getLocalDateTimeOfTenant();
@@ -820,7 +820,7 @@ public class LoanAccountDomainServiceJpa implements
LoanAccountDomainService {
}
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds, false);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_FORECLOSURE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_FORECLOSURE,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION, payment));
return changes;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorDomainServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorDomainServiceImpl.java
index 95e49dae1..98b9ced8d 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorDomainServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorDomainServiceImpl.java
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.PostConstruct;
+import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
import
org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
@@ -38,10 +39,10 @@ import
org.apache.fineract.portfolio.account.data.AccountTransferDTO;
import org.apache.fineract.portfolio.account.domain.AccountTransferDetails;
import org.apache.fineract.portfolio.account.domain.AccountTransferType;
import
org.apache.fineract.portfolio.account.service.AccountTransfersWritePlatformService;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import org.apache.fineract.portfolio.common.service.BusinessEventListener;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
+import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
import org.apache.fineract.portfolio.loanaccount.guarantor.GuarantorConstants;
@@ -60,10 +61,10 @@ import
org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountAssembler;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
import
org.apache.fineract.portfolio.savings.exception.InsufficientAccountBalanceException;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
+@RequiredArgsConstructor
public class GuarantorDomainServiceImpl implements GuarantorDomainService {
private final GuarantorRepository guarantorRepository;
@@ -75,36 +76,19 @@ public class GuarantorDomainServiceImpl implements
GuarantorDomainService {
private final Map<Long, Long> releaseLoanIds = new HashMap<>(2);
private final SavingsAccountAssembler savingsAccountAssembler;
- @Autowired
- public GuarantorDomainServiceImpl(final GuarantorRepository
guarantorRepository,
- final GuarantorFundingRepository guarantorFundingRepository,
- final GuarantorFundingTransactionRepository
guarantorFundingTransactionRepository,
- final AccountTransfersWritePlatformService
accountTransfersWritePlatformService,
- final BusinessEventNotifierService businessEventNotifierService,
- final DepositAccountOnHoldTransactionRepository
depositAccountOnHoldTransactionRepository,
- final SavingsAccountAssembler savingsAccountAssembler) {
- this.guarantorRepository = guarantorRepository;
- this.guarantorFundingRepository = guarantorFundingRepository;
- this.guarantorFundingTransactionRepository =
guarantorFundingTransactionRepository;
- this.accountTransfersWritePlatformService =
accountTransfersWritePlatformService;
- this.businessEventNotifierService = businessEventNotifierService;
- this.depositAccountOnHoldTransactionRepository =
depositAccountOnHoldTransactionRepository;
- this.savingsAccountAssembler = savingsAccountAssembler;
- }
-
@PostConstruct
public void addListeners() {
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_APPROVED,
new ValidateOnBusinessEvent());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_APPROVED,
new HoldFundsOnBusinessEvent());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_UNDO_APPROVAL,
new UndoAllFundTransactions());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_UNDO_DISBURSAL,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_APPROVED,
new ValidateOnBusinessEvent());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_APPROVED,
new HoldFundsOnBusinessEvent());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_UNDO_APPROVAL,
new UndoAllFundTransactions());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_UNDO_DISBURSAL,
new ReverseAllFundsOnBusinessEvent());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_ADJUST_TRANSACTION,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_ADJUST_TRANSACTION,
new AdjustFundsOnBusinessEvent());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_MAKE_REPAYMENT,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_MAKE_REPAYMENT,
new ReleaseFundsOnBusinessEvent());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_WRITTEN_OFF,
new ReleaseAllFunds());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_UNDO_WRITTEN_OFF,
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_WRITTEN_OFF,
new ReleaseAllFunds());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_UNDO_WRITTEN_OFF,
new ReverseFundsOnBusinessEvent());
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
index 45abfa493..cf0fcbefd 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
@@ -67,6 +67,9 @@ import
org.apache.fineract.portfolio.account.domain.AccountAssociationType;
import org.apache.fineract.portfolio.account.domain.AccountAssociations;
import
org.apache.fineract.portfolio.account.domain.AccountAssociationsRepository;
import org.apache.fineract.portfolio.accountdetails.domain.AccountType;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.calendar.domain.Calendar;
import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
import org.apache.fineract.portfolio.calendar.domain.CalendarFrequencyType;
@@ -84,10 +87,7 @@ import
org.apache.fineract.portfolio.client.exception.ClientNotActiveException;
import
org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement;
import
org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagementRepository;
import
org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralAssembler;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.fund.domain.Fund;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.domain.GroupRepositoryWrapper;
@@ -588,7 +588,7 @@ public class
LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
StatusEnum.CREATE.getCode().longValue(),
EntityTables.LOAN.getForeignKeyColumnNameOnDatatable(),
newLoanApplication.productId());
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_CREATE,
constructEntityMap(BusinessEntity.LOAN,
newLoanApplication));
return new CommandProcessingResultBuilder() //
@@ -1476,7 +1476,7 @@ public class
LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
this.noteRepository.save(note);
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_APPROVED,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_APPROVED,
constructEntityMap(BusinessEntity.LOAN, loan));
}
@@ -1555,7 +1555,7 @@ public class
LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
final Note note = Note.loanNote(loan, noteText);
this.noteRepository.save(note);
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_UNDO_APPROVAL,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_UNDO_APPROVAL,
constructEntityMap(BusinessEntity.LOAN, loan));
}
@@ -1626,7 +1626,7 @@ public class
LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
this.noteRepository.save(note);
}
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_REJECTED,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_REJECTED,
constructEntityMap(BusinessEntity.LOAN, loan));
return new CommandProcessingResultBuilder() //
.withCommandId(command.commandId()) //
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
index e5067146d..560fa32bb 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
@@ -34,10 +34,10 @@ import
org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
import
org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
import org.apache.fineract.infrastructure.jobs.annotation.CronTarget;
import org.apache.fineract.infrastructure.jobs.service.JobName;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import org.apache.fineract.portfolio.common.service.BusinessEventListener;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
+import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
import
org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
@@ -72,17 +72,17 @@ public class LoanArrearsAgingServiceImpl implements
LoanArrearsAgingService, Bus
@PostConstruct
public void registerForNotification() {
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_REFUND,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_ADJUST_TRANSACTION,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_MAKE_REPAYMENT,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_UNDO_WRITTEN_OFF,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_WAIVE_INTEREST,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_ADD_CHARGE,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_WAIVE_CHARGE,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_CHARGE_PAYMENT,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_APPLY_OVERDUE_CHARGE,
this);
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_DISBURSAL,
new DisbursementEventListener());
-
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvents.LOAN_FORECLOSURE,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_REFUND,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_ADJUST_TRANSACTION,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_MAKE_REPAYMENT,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_UNDO_WRITTEN_OFF,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_WAIVE_INTEREST,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_ADD_CHARGE,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_WAIVE_CHARGE,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_CHARGE_PAYMENT,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_APPLY_OVERDUE_CHARGE,
this);
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_DISBURSAL,
new DisbursementEventListener());
+
this.businessEventNotifierService.addBusinessEventPostListeners(BusinessEvent.LOAN_FORECLOSURE,
this);
}
@Transactional
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
index 8e0dd45cf..07b74c054 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
@@ -90,6 +90,9 @@ import
org.apache.fineract.portfolio.account.service.AccountAssociationsReadPlat
import
org.apache.fineract.portfolio.account.service.AccountTransfersReadPlatformService;
import
org.apache.fineract.portfolio.account.service.AccountTransfersWritePlatformService;
import org.apache.fineract.portfolio.accountdetails.domain.AccountType;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.calendar.domain.Calendar;
import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
import org.apache.fineract.portfolio.calendar.domain.CalendarInstance;
@@ -121,10 +124,7 @@ import
org.apache.fineract.portfolio.collectionsheet.command.CollectionSheetBulk
import
org.apache.fineract.portfolio.collectionsheet.command.CollectionSheetBulkRepaymentCommand;
import
org.apache.fineract.portfolio.collectionsheet.command.SingleDisbursalCommand;
import
org.apache.fineract.portfolio.collectionsheet.command.SingleRepaymentCommand;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.exception.GroupNotActiveException;
import org.apache.fineract.portfolio.loanaccount.api.LoanApiConstants;
@@ -437,7 +437,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
scheduleGeneratorDTO.isSkipRepaymentOnFirstDayofMonth(),
scheduleGeneratorDTO.getNumberOfdays());
}
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_DISBURSAL,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_DISBURSAL,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new ArrayList<>();
@@ -588,7 +588,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
updatePostDatedChecks(postDatedChecks);
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_DISBURSAL,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_DISBURSAL,
constructEntityMap(BusinessEntity.LOAN, loan));
Long entityId = loan.getId();
@@ -743,7 +743,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
syncExpectedDateWithActualDisbursementDate(loan,
actualDisbursementDate);
}
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_DISBURSAL,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_DISBURSAL,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new ArrayList<>();
@@ -835,7 +835,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
}
updateRecurringCalendarDatesForInterestRecalculation(loan);
this.loanAccountDomainService.recalculateAccruals(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_DISBURSAL,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_DISBURSAL,
constructEntityMap(BusinessEntity.LOAN, loan));
}
@@ -874,7 +874,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final AppUser currentUser = getAppUserIfPresent();
final Loan loan = this.loanAssembler.assembleFrom(loanId);
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_UNDO_DISBURSAL,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_UNDO_DISBURSAL,
constructEntityMap(BusinessEntity.LOAN, loan));
removeLoanCycle(loan);
final List<Long> existingTransactionIds = new ArrayList<>();
@@ -917,7 +917,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final Map<String, Object> accountingBridgeData =
loan.deriveAccountingBridgeData(applicationCurrency.toData(),
existingTransactionIds, existingReversedTransactionIds,
isAccountTransfer);
this.journalEntryWritePlatformService.createJournalEntriesForLoan(accountingBridgeData);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_UNDO_DISBURSAL,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_UNDO_DISBURSAL,
constructEntityMap(BusinessEntity.LOAN, loan));
}
@@ -1087,7 +1087,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
checkClientOrGroupActive(loan);
final LoanTransaction transactionToAdjust =
this.loanTransactionRepository.findById(transactionId)
.orElseThrow(() -> new
LoanTransactionNotFoundException(transactionId));
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_ADJUST_TRANSACTION,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_ADJUST_TRANSACTION,
constructEntityMap(BusinessEntity.LOAN_ADJUSTED_TRANSACTION,
transactionToAdjust));
if
(this.accountTransfersReadPlatformService.isAccountTransfer(transactionId,
PortfolioAccountType.LOAN)) {
throw new
PlatformServiceUnavailableException("error.msg.loan.transfer.transaction.update.not.allowed",
@@ -1201,7 +1201,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
if (newTransactionDetail.isRepaymentType() &&
newTransactionDetail.isGreaterThanZero(loan.getPrincpal().getCurrency())) {
entityMap.put(BusinessEntity.LOAN_TRANSACTION,
newTransactionDetail);
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_ADJUST_TRANSACTION,
entityMap);
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_ADJUST_TRANSACTION,
entityMap);
return new
CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(transactionId)
.withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId()).withGroupId(loan.getGroupId()).withLoanId(loanId)
@@ -1242,7 +1242,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
}
final LoanTransaction waiveInterestTransaction =
LoanTransaction.waiver(loan.getOffice(), loan, transactionAmountAsMoney,
transactionDate, interestComponent, unrecognizedIncome,
DateUtils.getLocalDateTimeOfTenant(), currentUser);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_WAIVE_INTEREST,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_WAIVE_INTEREST,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION,
waiveInterestTransaction));
LocalDate recalculateFrom = null;
if (loan.repaymentScheduleDetail().isInterestRecalculationEnabled()) {
@@ -1280,7 +1280,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds);
this.loanAccountDomainService.recalculateAccruals(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_WAIVE_INTEREST,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_WAIVE_INTEREST,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION,
waiveInterestTransaction));
return new
CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(waiveInterestTransaction.getId())
.withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId()).withGroupId(loan.getGroupId()).withLoanId(loanId)
@@ -1308,7 +1308,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
}
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_WRITTEN_OFF,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_WRITTEN_OFF,
constructEntityMap(BusinessEntity.LOAN, loan));
entityDatatableChecksWritePlatformService.runTheCheckForProduct(loanId,
EntityTables.LOAN.getName(),
StatusEnum.WRITE_OFF.getCode().longValue(),
EntityTables.LOAN.getForeignKeyColumnNameOnDatatable(), loan.productId());
@@ -1345,7 +1345,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds);
this.loanAccountDomainService.recalculateAccruals(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_WRITTEN_OFF,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_WRITTEN_OFF,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION, writeoff));
return new
CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(writeoff.getId())
.withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId()).withGroupId(loan.getGroupId()).withLoanId(loanId)
@@ -1362,7 +1362,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final Loan loan = this.loanAssembler.assembleFrom(loanId);
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_CLOSE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_CLOSE,
constructEntityMap(BusinessEntity.LOAN, loan));
final Map<String, Object> changes = new LinkedHashMap<>();
@@ -1405,7 +1405,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
}
this.loanAccountDomainService.recalculateAccruals(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_CLOSE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_CLOSE,
constructEntityMap(BusinessEntity.LOAN, loan));
// Update loan transaction on repayment.
@@ -1451,7 +1451,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final Loan loan = this.loanAssembler.assembleFrom(loanId);
checkClientOrGroupActive(loan);
removeLoanCycle(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_CLOSE_AS_RESCHEDULE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_CLOSE_AS_RESCHEDULE,
constructEntityMap(BusinessEntity.LOAN, loan));
final Map<String, Object> changes = new LinkedHashMap<>();
@@ -1469,7 +1469,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final Note note = Note.loanNote(loan, noteText);
this.noteRepository.save(note);
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_CLOSE_AS_RESCHEDULE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_CLOSE_AS_RESCHEDULE,
constructEntityMap(BusinessEntity.LOAN, loan));
// disable all active standing instructions linked to the loan
@@ -1548,7 +1548,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
disbursementDetail.expectedDisbursementDateAsLocalDate(), null, null);
loanTrancheDisbursementCharge = new
LoanTrancheDisbursementCharge(loanCharge, disbursementDetail);
loanCharge.updateLoanTrancheDisbursementCharge(loanTrancheDisbursementCharge);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_ADD_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_ADD_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE,
loanCharge));
validateAddLoanCharge(loan, chargeDefinition, loanCharge);
addCharge(loan, chargeDefinition, loanCharge);
@@ -1561,7 +1561,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
loan.addTrancheLoanCharge(chargeDefinition);
} else {
loanCharge = LoanCharge.createNewFromJson(loan, chargeDefinition,
command);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_ADD_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_ADD_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE,
loanCharge));
validateAddLoanCharge(loan, chargeDefinition, loanCharge);
@@ -1601,7 +1601,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
&& loan.isFeeCompoundingEnabledForInterestRecalculation()) {
this.loanAccountDomainService.recalculateAccruals(loan);
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_ADD_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_ADD_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
return new
CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(loanCharge.getId())
.withOfficeId(loan.getOfficeId()).withClientId(loan.getClientId()).withGroupId(loan.getGroupId()).withLoanId(loanId)
@@ -1718,13 +1718,13 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
loanCharge.getId());
}
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_UPDATE_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_UPDATE_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
final Map<String, Object> changes = loan.updateLoanCharge(loanCharge,
command);
saveLoanWithDataIntegrityViolationChecks(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_UPDATE_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_UPDATE_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
return new CommandProcessingResultBuilder() //
.withCommandId(command.commandId()) //
@@ -1778,7 +1778,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final Map<String, Object> changes = new LinkedHashMap<>(3);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_WAIVE_CHARGE_UNDO,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_WAIVE_CHARGE_UNDO,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
if (loanCharge.isInstalmentFee()) {
@@ -1867,7 +1867,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
saveLoanWithDataIntegrityViolationChecks(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_WAIVE_CHARGE_UNDO,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_WAIVE_CHARGE_UNDO,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
LoanTransaction loanTransactionData =
this.loanTransactionRepository.getById(command.entityId());
@@ -1909,7 +1909,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
} else if (loanCharge.isPaid()) {
throw new
LoanChargeCannotBeWaivedException(LoanChargeCannotBeWaivedReason.ALREADY_PAID,
loanCharge.getId());
}
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_WAIVE_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_WAIVE_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
Integer loanInstallmentNumber = null;
if (loanCharge.isInstalmentFee()) {
@@ -1959,7 +1959,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_WAIVE_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_WAIVE_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
return new CommandProcessingResultBuilder() //
@@ -1987,12 +1987,12 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
throw new
LoanChargeCannotBeDeletedException(LoanChargeCannotBeDeletedReason.LOAN_NOT_IN_SUBMITTED_AND_PENDING_APPROVAL_STAGE,
loanCharge.getId());
}
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_DELETE_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_DELETE_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
loan.removeLoanCharge(loanCharge);
saveLoanWithDataIntegrityViolationChecks(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_DELETE_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_DELETE_CHARGE,
constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge));
return new CommandProcessingResultBuilder() //
.withCommandId(command.commandId()) //
@@ -2205,7 +2205,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
checkClientOrGroupActive(loan);
validateTransactionsForTransfer(loan, transferDate);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_INITIATE_TRANSFER,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_INITIATE_TRANSFER,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new
ArrayList<>(loan.findExistingTransactionIds());
@@ -2220,7 +2220,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
saveLoanWithDataIntegrityViolationChecks(loan);
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_INITIATE_TRANSFER,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_INITIATE_TRANSFER,
constructEntityMap(BusinessEntity.LOAN, loan));
return newTransferTransaction;
}
@@ -2231,7 +2231,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final Staff loanOfficer) {
AppUser currentUser = getAppUserIfPresent();
this.loanAssembler.setHelpers(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_ACCEPT_TRANSFER,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_ACCEPT_TRANSFER,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new
ArrayList<>(loan.findExistingTransactionIds());
final List<Long> existingReversedTransactionIds = new
ArrayList<>(loan.findExistingReversedTransactionIds());
@@ -2252,7 +2252,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
saveLoanWithDataIntegrityViolationChecks(loan);
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_ACCEPT_TRANSFER,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_ACCEPT_TRANSFER,
constructEntityMap(BusinessEntity.LOAN, loan));
return newTransferAcceptanceTransaction;
@@ -2263,7 +2263,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
public LoanTransaction withdrawLoanTransfer(final Loan loan, final
LocalDate transferDate) {
AppUser currentUser = getAppUserIfPresent();
this.loanAssembler.setHelpers(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_WITHDRAW_TRANSFER,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_WITHDRAW_TRANSFER,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new
ArrayList<>(loan.findExistingTransactionIds());
@@ -2278,7 +2278,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
saveLoanWithDataIntegrityViolationChecks(loan);
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_WITHDRAW_TRANSFER,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_WITHDRAW_TRANSFER,
constructEntityMap(BusinessEntity.LOAN, loan));
return newTransferAcceptanceTransaction;
@@ -2288,11 +2288,11 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
@Override
public void rejectLoanTransfer(final Loan loan) {
this.loanAssembler.setHelpers(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_REJECT_TRANSFER,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_REJECT_TRANSFER,
constructEntityMap(BusinessEntity.LOAN, loan));
loan.setLoanStatus(LoanStatus.TRANSFER_ON_HOLD.getValue());
saveLoanWithDataIntegrityViolationChecks(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_REJECT_TRANSFER,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_REJECT_TRANSFER,
constructEntityMap(BusinessEntity.LOAN, loan));
}
@@ -2311,7 +2311,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final Loan loan = this.loanAssembler.assembleFrom(loanId);
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_REASSIGN_OFFICER,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_REASSIGN_OFFICER,
constructEntityMap(BusinessEntity.LOAN, loan));
if (!loan.hasLoanOfficer(fromLoanOfficer)) {
throw new LoanOfficerAssignmentException(loanId,
fromLoanOfficerId);
@@ -2320,7 +2320,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
loan.reassignLoanOfficer(toLoanOfficer, dateOfLoanOfficerAssignment);
saveLoanWithDataIntegrityViolationChecks(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_REASSIGN_OFFICER,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_REASSIGN_OFFICER,
constructEntityMap(BusinessEntity.LOAN, loan));
return new CommandProcessingResultBuilder() //
@@ -2351,7 +2351,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
for (final String loanIdString : loanIds) {
final Long loanId = Long.valueOf(loanIdString);
final Loan loan = this.loanAssembler.assembleFrom(loanId);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_REASSIGN_OFFICER,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_REASSIGN_OFFICER,
constructEntityMap(BusinessEntity.LOAN, loan));
checkClientOrGroupActive(loan);
@@ -2361,7 +2361,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
loan.reassignLoanOfficer(toLoanOfficer,
dateOfLoanOfficerAssignment);
saveLoanWithDataIntegrityViolationChecks(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_REASSIGN_OFFICER,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_REASSIGN_OFFICER,
constructEntityMap(BusinessEntity.LOAN, loan));
}
this.loanRepositoryWrapper.flush();
@@ -2387,13 +2387,13 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
if (loan.getLoanOfficer() == null) {
throw new LoanOfficerUnassignmentException(loanId);
}
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_REMOVE_OFFICER,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_REMOVE_OFFICER,
constructEntityMap(BusinessEntity.LOAN, loan));
loan.removeLoanOfficer(dateOfLoanOfficerunAssigned);
saveLoanWithDataIntegrityViolationChecks(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_REMOVE_OFFICER,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_REMOVE_OFFICER,
constructEntityMap(BusinessEntity.LOAN, loan));
return new CommandProcessingResultBuilder() //
@@ -2762,7 +2762,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
&& loan.isFeeCompoundingEnabledForInterestRecalculation())
{
this.loanAccountDomainService.recalculateAccruals(loan);
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_APPLY_OVERDUE_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_APPLY_OVERDUE_CHARGE,
constructEntityMap(BusinessEntity.LOAN, loan));
}
@@ -2843,7 +2843,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
LocalDate recalculateFrom = DateUtils.getLocalDateOfTenant();
if (loan != null) {
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_APPLY_OVERDUE_CHARGE,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_APPLY_OVERDUE_CHARGE,
constructEntityMap(BusinessEntity.LOAN, loan));
for (Map.Entry<Integer, LocalDate> entry :
scheduleDates.entrySet()) {
@@ -2884,7 +2884,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
}
LocalDate recalculateFrom = null;
LoanTransaction writeOffTransaction = loan.findWriteOffTransaction();
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_UNDO_WRITTEN_OFF,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_UNDO_WRITTEN_OFF,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION,
writeOffTransaction));
ScheduleGeneratorDTO scheduleGeneratorDTO =
this.loanUtilService.buildScheduleGeneratorDTO(loan, recalculateFrom);
@@ -2902,7 +2902,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds);
this.loanAccountDomainService.recalculateAccruals(loan);
if (writeOffTransaction != null) {
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_UNDO_WRITTEN_OFF,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_UNDO_WRITTEN_OFF,
constructEntityMap(BusinessEntity.LOAN_TRANSACTION,
writeOffTransaction));
}
return new CommandProcessingResultBuilder() //
@@ -3155,7 +3155,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
Loan loan = this.loanAssembler.assembleFrom(loanId);
LocalDate recalculateFrom = loan.fetchInterestRecalculateFromDate();
AppUser currentUser = getAppUserIfPresent();
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_INTEREST_RECALCULATION,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_INTEREST_RECALCULATION,
constructEntityMap(BusinessEntity.LOAN, loan));
final List<Long> existingTransactionIds = new ArrayList<>();
final List<Long> existingReversedTransactionIds = new ArrayList<>();
@@ -3178,7 +3178,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
}
postJournalEntries(loan, existingTransactionIds,
existingReversedTransactionIds);
this.loanAccountDomainService.recalculateAccruals(loan);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_INTEREST_RECALCULATION,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_INTEREST_RECALCULATION,
constructEntityMap(BusinessEntity.LOAN, loan));
}
@@ -3332,7 +3332,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final LocalDate recalculateFromDate = loan.getLastRepaymentDate();
validateIsMultiDisbursalLoanAndDisbursedMoreThanOneTranche(loan);
checkClientOrGroupActive(loan);
-
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvents.LOAN_UNDO_LASTDISBURSAL,
+
this.businessEventNotifierService.notifyBusinessEventToBeExecuted(BusinessEvent.LOAN_UNDO_LASTDISBURSAL,
constructEntityMap(BusinessEntity.LOAN, loan));
final MonetaryCurrency currency = loan.getCurrency();
@@ -3358,7 +3358,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
final Map<String, Object> accountingBridgeData =
loan.deriveAccountingBridgeData(applicationCurrency.toData(),
existingTransactionIds, existingReversedTransactionIds,
isAccountTransfer);
this.journalEntryWritePlatformService.createJournalEntriesForLoan(accountingBridgeData);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_UNDO_LASTDISBURSAL,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_UNDO_LASTDISBURSAL,
constructEntityMap(BusinessEntity.LOAN, loan));
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
index 9b0108b91..60f50d942 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
@@ -35,12 +35,11 @@ import
org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityEx
import
org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityAccessType;
import
org.apache.fineract.infrastructure.entityaccess.service.FineractEntityAccessUtil;
import
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.charge.domain.Charge;
import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
-import org.apache.fineract.portfolio.common.BusinessEventNotificationConstants;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.floatingrates.domain.FloatingRate;
import
org.apache.fineract.portfolio.floatingrates.domain.FloatingRateRepositoryWrapper;
import org.apache.fineract.portfolio.fund.domain.Fund;
@@ -151,10 +150,10 @@ public class
LoanProductWritePlatformServiceJpaRepositoryImpl implements LoanPro
fineractEntityAccessUtil.checkConfigurationAndAddProductResrictionsForUserOffice(
FineractEntityAccessType.OFFICE_ACCESS_TO_LOAN_PRODUCTS,
loanproduct.getId());
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_PRODUCT_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_PRODUCT_CREATE,
constructEntityMap(BusinessEntity.LOAN_PRODUCT,
loanproduct));
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_PRODUCT_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.LOAN_PRODUCT_CREATE,
constructEntityMap(BusinessEntity.LOAN_PRODUCT,
loanproduct));
return new CommandProcessingResultBuilder() //
@@ -383,9 +382,8 @@ public class
LoanProductWritePlatformServiceJpaRepositoryImpl implements LoanPro
LOG.error("Error occured.", dve);
}
- private Map<BusinessEventNotificationConstants.BusinessEntity, Object>
constructEntityMap(
- final BusinessEventNotificationConstants.BusinessEntity
entityEvent, Object entity) {
- Map<BusinessEventNotificationConstants.BusinessEntity, Object> map =
new HashMap<>(1);
+ private Map<BusinessEntity, Object> constructEntityMap(final
BusinessEntity entityEvent, Object entity) {
+ Map<BusinessEntity, Object> map = new HashMap<>(1);
map.put(entityEvent, entity);
return map;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java
index 7e575e4db..4c4af0091 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java
@@ -38,9 +38,9 @@ import
org.apache.fineract.organisation.monetary.domain.ApplicationCurrencyRepos
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money;
import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
import org.apache.fineract.portfolio.savings.SavingsTransactionBooleanValues;
@@ -139,7 +139,7 @@ public class SavingsAccountDomainServiceJpa implements
SavingsAccountDomainServi
postJournalEntries(account, existingTransactionIds,
existingReversedTransactionIds, transactionBooleanValues.isAccountTransfer(),
backdatedTxnsAllowedTill);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SAVINGS_WITHDRAWAL,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SAVINGS_WITHDRAWAL,
constructEntityMap(BusinessEntity.SAVINGS_TRANSACTION,
withdrawal));
return withdrawal;
}
@@ -215,7 +215,7 @@ public class SavingsAccountDomainServiceJpa implements
SavingsAccountDomainServi
this.savingsAccountRepository.saveAndFlush(account);
postJournalEntries(account, existingTransactionIds,
existingReversedTransactionIds, isAccountTransfer, backdatedTxnsAllowedTill);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SAVINGS_DEPOSIT,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SAVINGS_DEPOSIT,
constructEntityMap(BusinessEntity.SAVINGS_TRANSACTION,
deposit));
return deposit;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
index dd3459f76..cac1ca356 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
@@ -55,6 +55,9 @@ import
org.apache.fineract.organisation.staff.domain.StaffRepositoryWrapper;
import org.apache.fineract.portfolio.account.domain.AccountAssociationType;
import org.apache.fineract.portfolio.account.domain.AccountAssociations;
import
org.apache.fineract.portfolio.account.domain.AccountAssociationsRepository;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.calendar.domain.Calendar;
import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
import org.apache.fineract.portfolio.calendar.domain.CalendarFrequencyType;
@@ -66,11 +69,7 @@ import
org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
import org.apache.fineract.portfolio.client.domain.Client;
import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
import org.apache.fineract.portfolio.client.exception.ClientNotActiveException;
-import org.apache.fineract.portfolio.common.BusinessEventNotificationConstants;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.domain.GroupRepository;
import org.apache.fineract.portfolio.group.exception.CenterNotActiveException;
@@ -232,10 +231,10 @@ public class
DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl impl
}
final Long savingsId = account.getId();
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.FIXED_DEPOSIT_ACCOUNT_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.FIXED_DEPOSIT_ACCOUNT_CREATE,
constructEntityMap(BusinessEntity.DEPOSIT_ACCOUNT,
account));
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.FIXED_DEPOSIT_ACCOUNT_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.FIXED_DEPOSIT_ACCOUNT_CREATE,
constructEntityMap(BusinessEntity.DEPOSIT_ACCOUNT,
account));
return new CommandProcessingResultBuilder() //
@@ -295,10 +294,10 @@ public class
DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl impl
financialYearBeginningMonth);
account.validateApplicableInterestRate();
this.savingAccountRepository.save(account);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.RECURRING_DEPOSIT_ACCOUNT_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.RECURRING_DEPOSIT_ACCOUNT_CREATE,
constructEntityMap(BusinessEntity.DEPOSIT_ACCOUNT,
account));
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.RECURRING_DEPOSIT_ACCOUNT_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.RECURRING_DEPOSIT_ACCOUNT_CREATE,
constructEntityMap(BusinessEntity.DEPOSIT_ACCOUNT,
account));
return new CommandProcessingResultBuilder() //
@@ -794,9 +793,8 @@ public class
DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl impl
}
}
- private Map<BusinessEventNotificationConstants.BusinessEntity, Object>
constructEntityMap(final BusinessEntity entityEvent,
- Object entity) {
- Map<BusinessEventNotificationConstants.BusinessEntity, Object> map =
new HashMap<>(1);
+ private Map<BusinessEntity, Object> constructEntityMap(final
BusinessEntity entityEvent, Object entity) {
+ Map<BusinessEntity, Object> map = new HashMap<>(1);
map.put(entityEvent, entity);
return map;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
index beb806d96..e90e0cb1a 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
@@ -79,14 +79,14 @@ import
org.apache.fineract.portfolio.account.domain.StandingInstructionRepositor
import org.apache.fineract.portfolio.account.domain.StandingInstructionStatus;
import
org.apache.fineract.portfolio.account.service.AccountAssociationsReadPlatformService;
import
org.apache.fineract.portfolio.account.service.AccountTransfersReadPlatformService;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.charge.domain.Charge;
import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
import org.apache.fineract.portfolio.charge.domain.ChargeTimeType;
import org.apache.fineract.portfolio.client.domain.Client;
import org.apache.fineract.portfolio.client.exception.ClientNotActiveException;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.exception.GroupNotActiveException;
import org.apache.fineract.portfolio.note.domain.Note;
@@ -272,7 +272,7 @@ public class
SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi
}
postJournalEntries(account, existingTransactionIds,
existingReversedTransactionIds, false);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SAVINGS_ACTIVATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SAVINGS_ACTIVATE,
constructEntityMap(BusinessEntity.SAVING, account));
return new CommandProcessingResultBuilder() //
@@ -576,7 +576,7 @@ public class
SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi
}
postInterest(account, postInterestAs, transactionDate,
backdatedTxnsAllowedTill);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SAVINGS_POST_INTEREST,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SAVINGS_POST_INTEREST,
constructEntityMap(BusinessEntity.SAVING, account));
return new CommandProcessingResultBuilder() //
.withEntityId(savingsId) //
@@ -1031,7 +1031,7 @@ public class
SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SAVINGS_CLOSE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SAVINGS_CLOSE,
constructEntityMap(BusinessEntity.SAVING, account));
// disable all standing orders linked to the savings account
this.disableStandingInstructionsLinkedToClosedSavings(account);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
index 36824d885..a0a022ebd 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
@@ -56,13 +56,13 @@ import
org.apache.fineract.infrastructure.security.service.PlatformSecurityConte
import org.apache.fineract.organisation.monetary.domain.Money;
import org.apache.fineract.organisation.staff.domain.Staff;
import org.apache.fineract.organisation.staff.domain.StaffRepositoryWrapper;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
import org.apache.fineract.portfolio.client.domain.Client;
import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
import org.apache.fineract.portfolio.client.exception.ClientNotActiveException;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.group.domain.Group;
import org.apache.fineract.portfolio.group.domain.GroupRepository;
import org.apache.fineract.portfolio.group.domain.GroupRepositoryWrapper;
@@ -305,7 +305,7 @@ public class
SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl impl
this.entityDatatableChecksWritePlatformService.runTheCheckForProduct(savingsId,
EntityTables.SAVING.getName(),
StatusEnum.CREATE.getCode().longValue(),
EntityTables.SAVING.getForeignKeyColumnNameOnDatatable(), account.productId());
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SAVINGS_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SAVINGS_CREATE,
constructEntityMap(BusinessEntity.SAVING, account));
return new CommandProcessingResultBuilder() //
@@ -534,7 +534,7 @@ public class
SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl impl
}
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SAVINGS_APPROVE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SAVINGS_APPROVE,
constructEntityMap(BusinessEntity.SAVING, savingsAccount));
return new CommandProcessingResultBuilder() //
@@ -657,7 +657,7 @@ public class
SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl impl
this.noteRepository.save(note);
}
}
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SAVINGS_REJECT,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SAVINGS_REJECT,
constructEntityMap(BusinessEntity.SAVING, savingsAccount));
return new CommandProcessingResultBuilder() //
.withCommandId(command.commandId()) //
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
index 8211791e2..4826b4327 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
@@ -42,11 +42,10 @@ import
org.apache.fineract.infrastructure.core.service.DateUtils;
import org.apache.fineract.organisation.monetary.data.CurrencyData;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import
org.apache.fineract.portfolio.accounts.constants.ShareAccountApiConstants;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
-import org.apache.fineract.portfolio.common.BusinessEventNotificationConstants;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
import org.apache.fineract.portfolio.note.domain.Note;
import org.apache.fineract.portfolio.note.domain.NoteRepository;
import
org.apache.fineract.portfolio.shareaccounts.data.ShareAccountTransactionEnumData;
@@ -106,7 +105,7 @@ public class
ShareAccountWritePlatformServiceJpaRepositoryImpl implements ShareA
journalEntryWritePlatformService.createJournalEntriesForShares(
populateJournalEntries(account,
account.getPendingForApprovalSharePurchaseTransactions()));
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SHARE_ACCOUNT_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SHARE_ACCOUNT_CREATE,
constructEntityMap(BusinessEntity.SHARE_ACCOUNT, account));
return new CommandProcessingResultBuilder() //
@@ -283,7 +282,7 @@ public class
ShareAccountWritePlatformServiceJpaRepositoryImpl implements ShareA
this.journalEntryWritePlatformService.createJournalEntriesForShares(populateJournalEntries(account,
journalTransactions));
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SHARE_ACCOUNT_APPROVE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SHARE_ACCOUNT_APPROVE,
constructEntityMap(BusinessEntity.SHARE_ACCOUNT, account));
return new CommandProcessingResultBuilder() //
@@ -531,9 +530,8 @@ public class
ShareAccountWritePlatformServiceJpaRepositoryImpl implements ShareA
"Unknown data integrity issue with resource.");
}
- private Map<BusinessEventNotificationConstants.BusinessEntity, Object>
constructEntityMap(
- final BusinessEventNotificationConstants.BusinessEntity
entityEvent, Object entity) {
- Map<BusinessEventNotificationConstants.BusinessEntity, Object> map =
new HashMap<>(1);
+ private Map<BusinessEntity, Object> constructEntityMap(final
BusinessEntity entityEvent, Object entity) {
+ Map<BusinessEntity, Object> map = new HashMap<>(1);
map.put(entityEvent, entity);
return map;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductWritePlatformServiceJpaRepositoryImpl.java
index d6d3511e9..df35435a3 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductWritePlatformServiceJpaRepositoryImpl.java
@@ -31,10 +31,9 @@ import
org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import
org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
import
org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
-import org.apache.fineract.portfolio.common.BusinessEventNotificationConstants;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEntity;
-import
org.apache.fineract.portfolio.common.BusinessEventNotificationConstants.BusinessEvents;
-import
org.apache.fineract.portfolio.common.service.BusinessEventNotifierService;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEntity;
+import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import
org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
import
org.apache.fineract.portfolio.shareproducts.constants.ShareProductApiConstants;
import org.apache.fineract.portfolio.shareproducts.domain.ShareProduct;
import
org.apache.fineract.portfolio.shareproducts.domain.ShareProductDividendPayOutDetails;
@@ -151,7 +150,7 @@ public class
ShareProductWritePlatformServiceJpaRepositoryImpl implements ShareP
}
this.shareProductDividentPayOutDetailsRepository.save(dividendPayOutDetails);
-
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.SHARE_PRODUCT_DIVIDENDS_CREATE,
+
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvent.SHARE_PRODUCT_DIVIDENDS_CREATE,
constructEntityMap(BusinessEntity.SHARE_PRODUCT,
productId));
return new CommandProcessingResultBuilder() //
@@ -221,9 +220,8 @@ public class
ShareProductWritePlatformServiceJpaRepositoryImpl implements ShareP
"Unknown data integrity issue with resource.");
}
- private Map<BusinessEventNotificationConstants.BusinessEntity, Object>
constructEntityMap(
- final BusinessEventNotificationConstants.BusinessEntity
entityEvent, Object entity) {
- Map<BusinessEventNotificationConstants.BusinessEntity, Object> map =
new HashMap<>(1);
+ private Map<BusinessEntity, Object> constructEntityMap(final
BusinessEntity entityEvent, Object entity) {
+ Map<BusinessEntity, Object> map = new HashMap<>(1);
map.put(entityEvent, entity);
return map;
}