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 aa12de397 refactor: add lombok to provisioning module
aa12de397 is described below
commit aa12de397dc0100da7e13346e625f7a453e2e644
Author: Hemant Gupta <[email protected]>
AuthorDate: Tue Aug 30 02:52:53 2022 +0530
refactor: add lombok to provisioning module
---
.../data/LoanProductProvisioningEntryData.java | 94 ++++++----------------
.../provisioning/data/ProvisioningEntryData.java | 34 ++------
.../domain/LoanProductProvisioningEntry.java | 52 ++----------
.../provisioning/domain/ProvisioningEntry.java | 29 ++-----
...ProvisioningEntriesReadPlatformServiceImpl.java | 33 +++++---
...triesWritePlatformServiceJpaRepositoryImpl.java | 17 ++--
6 files changed, 77 insertions(+), 182 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/LoanProductProvisioningEntryData.java
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/LoanProductProvisioningEntryData.java
index 89a940438..0e1f6da4e 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/LoanProductProvisioningEntryData.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/LoanProductProvisioningEntryData.java
@@ -19,77 +19,33 @@
package org.apache.fineract.accounting.provisioning.data;
import java.math.BigDecimal;
-import lombok.Getter;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
-@Getter
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
public class LoanProductProvisioningEntryData {
- private final Long historyId;
- private final Long officeId;
- private final String officeName;
- private final String currencyCode;
- private final Long productId;
- private final String productName;
- private final Long categoryId;
- private final String categoryName;
- private final Long overdueInDays;
- private final BigDecimal percentage;
- private final BigDecimal balance;
- private final BigDecimal amountreserved;
- private final Long liablityAccount;
- private final String liabilityAccountCode;
- private final String liabilityAccountName;
- private final Long expenseAccount;
- private final String expenseAccountCode;
- private final String expenseAccountName;
- private final Long criteriaId;
+ private Long historyId;
+ private Long officeId;
+ private String officeName;
+ private String currencyCode;
+ private Long productId;
+ private String productName;
+ private Long categoryId;
+ private String categoryName;
+ private Long overdueInDays;
+ private BigDecimal percentage;
+ private BigDecimal balance;
+ private BigDecimal amountreserved;
+ private Long liablityAccount;
+ private String liabilityAccountCode;
+ private String liabilityAccountName;
+ private Long expenseAccount;
+ private String expenseAccountCode;
+ private String expenseAccountName;
+ private Long criteriaId;
- public LoanProductProvisioningEntryData(final Long historyId, final Long
officeId, final String currencyCode, final Long productId,
- final Long categoryId, final Long overdueInDays, final BigDecimal
percentage, final BigDecimal balance, Long liablityAccount,
- Long expenseAccount, final Long criteriaId) {
- this.historyId = historyId;
- this.officeId = officeId;
- this.currencyCode = currencyCode;
- this.productId = productId;
- this.categoryId = categoryId;
- this.overdueInDays = overdueInDays;
- this.percentage = percentage;
- this.balance = balance;
- this.liablityAccount = liablityAccount;
- this.expenseAccount = expenseAccount;
- this.amountreserved = null;
- this.officeName = null;
- this.productName = null;
- this.categoryName = null;
- this.liabilityAccountCode = null;
- this.liabilityAccountName = null;
- this.expenseAccountCode = null;
- this.expenseAccountName = null;
- this.criteriaId = criteriaId;
- }
-
- public LoanProductProvisioningEntryData(final Long historyId, final Long
officeId, final String officeName, final String currencyCode,
- final Long productId, final String productName, final Long
categoryId, final String categoryName, final Long overdueInDays,
- final BigDecimal amountreserved, Long liablityAccount, String
liabilityAccountglCode, String liabilityAccountName,
- Long expenseAccount, String expenseAccountglCode, String
expenseAccountName, final Long criteriaId) {
- this.historyId = historyId;
- this.officeId = officeId;
- this.currencyCode = currencyCode;
- this.productId = productId;
- this.categoryId = categoryId;
- this.categoryName = categoryName;
- this.overdueInDays = overdueInDays;
- this.percentage = null;
- this.balance = null;
- this.liablityAccount = liablityAccount;
- this.expenseAccount = expenseAccount;
- this.officeName = officeName;
- this.productName = productName;
- this.amountreserved = amountreserved;
- this.liabilityAccountCode = liabilityAccountglCode;
- this.liabilityAccountName = liabilityAccountName;
- this.expenseAccountCode = expenseAccountglCode;
- this.expenseAccountName = expenseAccountName;
- this.criteriaId = criteriaId;
- }
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/ProvisioningEntryData.java
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/ProvisioningEntryData.java
index a07f7fbfd..2d90c8adc 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/ProvisioningEntryData.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/ProvisioningEntryData.java
@@ -21,7 +21,13 @@ package org.apache.fineract.accounting.provisioning.data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Collection;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
@SuppressWarnings("unused")
public class ProvisioningEntryData {
@@ -43,32 +49,4 @@ public class ProvisioningEntryData {
private Collection<LoanProductProvisioningEntryData> provisioningEntries;
- public ProvisioningEntryData(final Long id, final
Collection<LoanProductProvisioningEntryData> provisioningEntries) {
- this.provisioningEntries = provisioningEntries;
- this.id = id;
- }
-
- public ProvisioningEntryData(Long id, Boolean journalEntry, Long
createdById, String createdUser, LocalDate createdDate,
- Long modifiedById, String modifiedUser, BigDecimal
totalReservedAmount) {
- this.id = id;
- this.journalEntry = journalEntry;
- this.createdById = createdById;
- this.createdUser = createdUser;
- this.modifiedById = modifiedById;
- this.modifiedUser = modifiedUser;
- this.createdDate = createdDate;
- this.reservedAmount = totalReservedAmount;
- }
-
- public void setEntries(Collection<LoanProductProvisioningEntryData>
provisioningEntries) {
- this.provisioningEntries = provisioningEntries;
- }
-
- public Long getId() {
- return this.id;
- }
-
- public LocalDate getCreatedDate() {
- return this.createdDate;
- }
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java
index 46c0902db..5b9b1b56c 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java
@@ -25,12 +25,20 @@ import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
import org.apache.fineract.accounting.glaccount.domain.GLAccount;
import
org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
import org.apache.fineract.organisation.office.domain.Office;
import
org.apache.fineract.organisation.provisioning.domain.ProvisioningCategory;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
+@Getter
+@Setter
+@NoArgsConstructor
+@Accessors(chain = true)
@Entity
@Table(name = "m_loanproduct_provisioning_entry")
public class LoanProductProvisioningEntry extends AbstractPersistableCustom {
@@ -71,50 +79,6 @@ public class LoanProductProvisioningEntry extends
AbstractPersistableCustom {
@JoinColumn(name = "expense_account", nullable = false)
private GLAccount expenseAccount;
- protected LoanProductProvisioningEntry() {}
-
- public LoanProductProvisioningEntry(final LoanProduct loanProduct, final
Office office, final String currencyCode,
- final ProvisioningCategory provisioningCategory, final Long
overdueInDays, final BigDecimal reservedAmount,
- final GLAccount liabilityAccount, final GLAccount expenseAccount,
Long criteriaId) {
- this.loanProduct = loanProduct;
- this.office = office;
- this.currencyCode = currencyCode;
- this.provisioningCategory = provisioningCategory;
- this.overdueInDays = overdueInDays;
- this.reservedAmount = reservedAmount;
- this.liabilityAccount = liabilityAccount;
- this.expenseAccount = expenseAccount;
- this.criteriaId = criteriaId;
- }
-
- public void setProvisioningEntry(ProvisioningEntry provisioningEntry) {
- this.entry = provisioningEntry;
- }
-
- public BigDecimal getReservedAmount() {
- return this.reservedAmount;
- }
-
- public void addReservedAmount(BigDecimal value) {
- this.reservedAmount = this.reservedAmount.add(value);
- }
-
- public Office getOffice() {
- return this.office;
- }
-
- public GLAccount getLiabilityAccount() {
- return this.liabilityAccount;
- }
-
- public String getCurrencyCode() {
- return this.currencyCode;
- }
-
- public GLAccount getExpenseAccount() {
- return this.expenseAccount;
- }
-
// TODO Note that this domain class does equals() & hashCode() on getId()
// for @JoinColumn attributes, which not all other classes do...
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntry.java
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntry.java
index 4c8cf0555..db298092c 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntry.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntry.java
@@ -30,9 +30,17 @@ import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
import
org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
import org.apache.fineract.useradministration.domain.AppUser;
+@Getter
+@Setter
+@NoArgsConstructor
+@Accessors(chain = true)
@Entity
@Table(name = "m_provisioning_history")
public class ProvisioningEntry extends AbstractPersistableCustom {
@@ -57,19 +65,6 @@ public class ProvisioningEntry extends
AbstractPersistableCustom {
@Column(name = "lastmodified_date")
private LocalDate lastModifiedDate;
- protected ProvisioningEntry() {
-
- }
-
- public ProvisioningEntry(AppUser createdBy, LocalDate createdDate, AppUser
lastModifiedBy, LocalDate lastModifiedDate,
- Set<LoanProductProvisioningEntry> provisioningEntries) {
- this.provisioningEntries = provisioningEntries;
- this.createdBy = createdBy;
- this.createdDate = createdDate;
- this.lastModifiedBy = lastModifiedBy;
- this.lastModifiedDate = lastModifiedDate;
- }
-
public void
setProvisioningEntries(Collection<LoanProductProvisioningEntry>
provisioningEntries) {
if (this.provisioningEntries == null) {
this.provisioningEntries = new HashSet<>();
@@ -81,12 +76,4 @@ public class ProvisioningEntry extends
AbstractPersistableCustom {
return this.provisioningEntries;
}
- public void setJournalEntryCreated(Boolean bool) {
- this.isJournalEntryCreated = bool;
- }
-
- public LocalDate getCreatedDate() {
- return this.createdDate;
- }
-
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
index 0cb95b182..a0faf234e 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
@@ -95,8 +95,10 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
Long criteriaId = rs.getLong("criteriaid");
Long historyId = null;
- return new LoanProductProvisioningEntryData(historyId, officeId,
currentcyCode, productId, categoryId, overdueDays, percentage,
- outstandingBalance, liabilityAccountCode,
expenseAccountCode, criteriaId);
+ return new
LoanProductProvisioningEntryData().setHistoryId(historyId).setOfficeId(officeId).setCurrencyCode(currentcyCode)
+
.setProductId(productId).setCategoryId(categoryId).setOverdueInDays(overdueDays).setPercentage(percentage)
+
.setBalance(outstandingBalance).setLiablityAccount(liabilityAccountCode).setExpenseAccount(expenseAccountCode)
+ .setCriteriaId(criteriaId);
}
public String schema() {
@@ -131,8 +133,9 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
String modifieUser = rs.getString("modifieduser");
BigDecimal totalReservedAmount = null;
LocalDate createdLocalDate = createdDate != null ?
createdDate.toLocalDate() : null;
- return new ProvisioningEntryData(id, journalEntry, createdById,
createdUser, createdLocalDate, modifiedById, modifieUser,
- totalReservedAmount);
+ return new
ProvisioningEntryData().setId(id).setJournalEntry(journalEntry).setCreatedById(createdById)
+
.setCreatedUser(createdUser).setCreatedDate(createdLocalDate).setModifiedById(modifiedById).setModifiedUser(modifieUser)
+ .setReservedAmount(totalReservedAmount);
}
public String getSchema() {
@@ -173,9 +176,13 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
Long criteriaId = rs.getLong("criteriaid");
String liabilityAccountName = rs.getString("liabilityname");
String expenseAccountName = rs.getString("expensename");
- return new LoanProductProvisioningEntryData(historyId, officeId,
officeName, currentcyCode, productId, productName, categoryId,
- categoryName, overdueDays, amountreserved,
liabilityAccountCode, liabilityAccountglCode, liabilityAccountName,
- expenseAccountCode, expenseAccountglCode,
expenseAccountName, criteriaId);
+ return new
LoanProductProvisioningEntryData().setHistoryId(historyId).setOfficeId(officeId).setOfficeName(officeName)
+
.setCurrencyCode(currentcyCode).setProductId(productId).setProductName(productName).setCategoryId(categoryId)
+
.setCategoryName(categoryName).setOverdueInDays(overdueDays).setAmountreserved(amountreserved)
+
.setLiablityAccount(liabilityAccountCode).setLiabilityAccountCode(liabilityAccountglCode)
+
.setLiabilityAccountName(liabilityAccountName).setExpenseAccount(expenseAccountCode)
+
.setExpenseAccountCode(expenseAccountglCode).setExpenseAccountName(expenseAccountName).setCriteriaId(criteriaId);
+
}
public String getSchema() {
@@ -205,8 +212,9 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
String modifieUser = rs.getString("modifieduser");
BigDecimal totalReservedAmount = rs.getBigDecimal("totalreserved");
LocalDate createdLocalDate = createdDate != null ?
createdDate.toLocalDate() : null;
- return new ProvisioningEntryData(id, journalEntry, createdById,
createdUser, createdLocalDate, modifiedById, modifieUser,
- totalReservedAmount);
+ return new
ProvisioningEntryData().setId(id).setJournalEntry(journalEntry).setCreatedById(createdById)
+
.setCreatedUser(createdUser).setCreatedDate(createdLocalDate).setModifiedById(modifiedById).setModifiedUser(modifieUser)
+ .setReservedAmount(totalReservedAmount);
}
public String getSchema() {
@@ -260,7 +268,7 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
ProvisioningEntryDataMapper mapper1 = new
ProvisioningEntryDataMapper();
final String sql1 = "select " + mapper1.getSchema() + " where
entry.id = ?";
data = this.jdbcTemplate.queryForObject(sql1, mapper1, entryId);
// NOSONAR
- data.setEntries(entries);
+ data.setProvisioningEntries(entries);
}
return data;
}
@@ -293,8 +301,9 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
String modifiedName = null;
BigDecimal totalReservedAmount = null;
LocalDate createdLocalDate = createdDate != null ?
createdDate.toLocalDate() : null;
- return new ProvisioningEntryData(id, Boolean.TRUE, createdBy,
createdName, createdLocalDate, modifiedBy, modifiedName,
- totalReservedAmount);
+ return new
ProvisioningEntryData().setId(id).setJournalEntry(Boolean.TRUE).setCreatedById(createdBy).setCreatedUser(createdName)
+
.setCreatedDate(createdLocalDate).setModifiedById(modifiedBy).setModifiedUser(modifiedName)
+ .setReservedAmount(totalReservedAmount);
}
public String schema() {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl.java
index e7478cc71..a12c72c05 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl.java
@@ -95,9 +95,9 @@ public class
ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl implements
existingEntryData.getId(),
PortfolioProductType.PROVISIONING.getValue());
}
if (requestedEntry.getLoanProductProvisioningEntries() == null ||
requestedEntry.getLoanProductProvisioningEntries().size() == 0) {
- requestedEntry.setJournalEntryCreated(Boolean.FALSE);
+ requestedEntry.setIsJournalEntryCreated(Boolean.FALSE);
} else {
- requestedEntry.setJournalEntryCreated(Boolean.TRUE);
+ requestedEntry.setIsJournalEntryCreated(Boolean.TRUE);
}
this.provisioningEntryRepository.saveAndFlush(requestedEntry);
@@ -150,7 +150,7 @@ public class
ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl implements
throw new
ProvisioningEntryAlreadyCreatedException(existingEntry.getId(),
existingEntry.getCreatedDate());
}
AppUser currentUser = this.platformSecurityContext.authenticatedUser();
- ProvisioningEntry requestedEntry = new ProvisioningEntry(currentUser,
date, null, null, null);
+ ProvisioningEntry requestedEntry = new
ProvisioningEntry().setCreatedBy(currentUser).setCreatedDate(date);
Collection<LoanProductProvisioningEntry> entries =
generateLoanProvisioningEntry(requestedEntry, date);
requestedEntry.setProvisioningEntries(entries);
if (addJournalEntries) {
@@ -189,15 +189,16 @@ public class
ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl implements
Money money = Money.of(currency, data.getBalance());
Money amountToReserve = money.percentageOf(data.getPercentage(),
MoneyHelper.getRoundingMode());
Long criteraId = data.getCriteriaId();
- LoanProductProvisioningEntry entry = new
LoanProductProvisioningEntry(loanProduct, office, data.getCurrencyCode(),
- provisioningCategory, data.getOverdueInDays(),
amountToReserve.getAmount(), liabilityAccount, expenseAccount,
- criteraId);
- entry.setProvisioningEntry(parent);
+ LoanProductProvisioningEntry entry = new
LoanProductProvisioningEntry().setLoanProduct(loanProduct).setOffice(office)
+
.setCurrencyCode(data.getCurrencyCode()).setProvisioningCategory(provisioningCategory)
+
.setOverdueInDays(data.getOverdueInDays()).setReservedAmount(amountToReserve.getAmount())
+
.setLiabilityAccount(liabilityAccount).setExpenseAccount(expenseAccount).setCriteriaId(criteraId);
+ entry.setEntry(parent);
if (!provisioningEntries.containsKey(entry.partialHashCode())) {
provisioningEntries.put(entry.partialHashCode(), entry);
} else {
LoanProductProvisioningEntry entry1 =
provisioningEntries.get(entry.partialHashCode());
- entry1.addReservedAmount(entry.getReservedAmount());
+
entry1.setReservedAmount(entry1.getReservedAmount().add(entry.getReservedAmount()));
}
}
return provisioningEntries.values();