Revert "FINERACT-1932: Fineract modularization - fineract-savings"

This reverts commit b9314d0b1e.
This commit is contained in:
Adam Saghy
2023-12-15 18:48:44 +01:00
parent f981ffe519
commit 834cfb6e27
213 changed files with 78 additions and 352 deletions
+1 -3
View File
@@ -31,7 +31,6 @@ buildscript {
'fineract-provider', 'fineract-provider',
'fineract-investor', 'fineract-investor',
'fineract-loan', 'fineract-loan',
'fineract-savings',
'integration-tests', 'integration-tests',
'twofactor-tests', 'twofactor-tests',
'oauth2-tests', 'oauth2-tests',
@@ -47,8 +46,7 @@ buildscript {
'fineract-core', 'fineract-core',
'fineract-provider', 'fineract-provider',
'fineract-investor', 'fineract-investor',
'fineract-loan', 'fineract-loan'
'fineract-savings'
].contains(it.name) ].contains(it.name)
} }
npmRepository = 'https://npm.pkg.github.com' npmRepository = 'https://npm.pkg.github.com'
-1
View File
@@ -21,7 +21,6 @@ dependencies {
implementation(project(path: ':fineract-core')) implementation(project(path: ':fineract-core'))
implementation(project(path: ':fineract-investor')) implementation(project(path: ':fineract-investor'))
implementation(project(path: ':fineract-loan')) implementation(project(path: ':fineract-loan'))
implementation(project(path: ':fineract-savings'))
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
// Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'. // Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
@@ -21,18 +21,41 @@ package org.apache.fineract.interoperation.data;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import lombok.Getter;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.apache.fineract.infrastructure.core.service.MathUtil; import org.apache.fineract.infrastructure.core.service.MathUtil;
import org.apache.fineract.portfolio.note.domain.Note;
import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType; import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
import org.apache.fineract.portfolio.savings.domain.SavingsAccount; import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy; import org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction; import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
import org.apache.fineract.portfolio.savings.service.SavingsEnumerations; import org.apache.fineract.portfolio.savings.service.SavingsEnumerations;
@Getter
public class InteropTransactionData extends CommandProcessingResult { public class InteropTransactionData extends CommandProcessingResult {
// private final SavingsAccountTransactionEnumData transactionType;
// private final PaymentDetailData paymentDetailData;
// private final BigDecimal outstandingChargeAmount;
// private final boolean reversed;
// private final AccountTransferData transfer;
// private final LocalDate submittedOnDate;
// private final boolean interestedPostedAsOn;
// private final String submittedByUsername;
// // templates
// final Collection<PaymentTypeData> paymentTypeOptions;
// //import fields
// private Long paymentTypeId;
// private String checkNumber;
// private String routingCode;
// private String receiptNumber;
// private String bankNumber;
// private String transactionReference;
// private String statementReference;
// private CreditDebitType creditDebit;
// private TransactionStatus status;
// private String transactionInformation;
// private String addressLine;
@NotNull @NotNull
private final String accountId; private final String accountId;
@NotNull @NotNull
@@ -52,7 +75,7 @@ public class InteropTransactionData extends CommandProcessingResult {
@NotNull @NotNull
private final LocalDate valueDateTime; private final LocalDate valueDateTime;
private String note; private final String note;
public InteropTransactionData(Long entityId, String accountId, String transactionId, SavingsAccountTransactionType transactionType, public InteropTransactionData(Long entityId, String accountId, String transactionId, SavingsAccountTransactionType transactionType,
BigDecimal amount, BigDecimal chargeAmount, String currency, BigDecimal accountBalance, LocalDate bookingDateTime, BigDecimal amount, BigDecimal chargeAmount, String currency, BigDecimal accountBalance, LocalDate bookingDateTime,
@@ -94,14 +117,33 @@ public class InteropTransactionData extends CommandProcessingResult {
LocalDate valueDateTime = endOfBalanceLocalDate == null ? bookingDateTime : endOfBalanceLocalDate; LocalDate valueDateTime = endOfBalanceLocalDate == null ? bookingDateTime : endOfBalanceLocalDate;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(SavingsEnumerations.transactionType(transactionType).getValue()); int currLength = 0;
for (Note note : transaction.getNotes()) {
String s = note.getNote();
if (s == null) {
continue;
}
int availableLength = 500 - currLength;
if (availableLength <= 1) {
break;
}
if (currLength > 0) {
sb.append(' ');
availableLength--;
}
if (s.length() > availableLength) {
s = s.substring(availableLength);
}
sb.append(s);
currLength = sb.length();
}
if (currLength == 0) {
sb.append(SavingsEnumerations.transactionType(transactionType).getValue());
}
return new InteropTransactionData(savingsAccount.getId(), savingsAccount.getExternalId().getValue(), transactionId, transactionType, return new InteropTransactionData(savingsAccount.getId(), savingsAccount.getExternalId().getValue(), transactionId, transactionType,
amount, chargeAmount, currency, runningBalance, bookingDateTime, valueDateTime, sb.toString()); amount, chargeAmount, currency, runningBalance, bookingDateTime, valueDateTime, sb.toString());
} }
public void updateNote(String note) {
this.note = note;
}
} }
@@ -22,15 +22,11 @@ import jakarta.validation.constraints.NotNull;
import java.util.List; import java.util.List;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.Getter;
import lombok.Setter;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.apache.fineract.infrastructure.core.service.DateUtils; import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.apache.fineract.portfolio.savings.domain.SavingsAccount; import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction; import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
@Getter
@Setter
public class InteropTransactionsData extends CommandProcessingResult { public class InteropTransactionsData extends CommandProcessingResult {
List<InteropTransactionData> transactions; List<InteropTransactionData> transactions;
@@ -64,7 +64,6 @@ import org.apache.fineract.interoperation.data.InteropKycResponseData;
import org.apache.fineract.interoperation.data.InteropQuoteRequestData; import org.apache.fineract.interoperation.data.InteropQuoteRequestData;
import org.apache.fineract.interoperation.data.InteropQuoteResponseData; import org.apache.fineract.interoperation.data.InteropQuoteResponseData;
import org.apache.fineract.interoperation.data.InteropRequestData; import org.apache.fineract.interoperation.data.InteropRequestData;
import org.apache.fineract.interoperation.data.InteropTransactionData;
import org.apache.fineract.interoperation.data.InteropTransactionRequestData; import org.apache.fineract.interoperation.data.InteropTransactionRequestData;
import org.apache.fineract.interoperation.data.InteropTransactionRequestResponseData; import org.apache.fineract.interoperation.data.InteropTransactionRequestResponseData;
import org.apache.fineract.interoperation.data.InteropTransactionsData; import org.apache.fineract.interoperation.data.InteropTransactionsData;
@@ -219,27 +218,7 @@ public class InteropServiceImpl implements InteropService {
return (transactionsTo == null || transactionsTo.compareTo(transactionDate) > 0) && (transactionsFrom == null return (transactionsTo == null || transactionsTo.compareTo(transactionDate) > 0) && (transactionsFrom == null
|| transactionsFrom.compareTo(transactionDate.withHour(23).withMinute(59).withSecond(59)) <= 0); || transactionsFrom.compareTo(transactionDate.withHour(23).withMinute(59).withSecond(59)) <= 0);
}; };
InteropTransactionsData interopTransactionsData = InteropTransactionsData.build(savingsAccount, transFilter); return InteropTransactionsData.build(savingsAccount, transFilter);
for (InteropTransactionData interopTransactionData : interopTransactionsData.getTransactions()) {
final List<Note> transactionNotes = noteRepository
.findBySavingsTransactionId(Long.valueOf(interopTransactionData.getTransactionId()));
StringBuilder sb = new StringBuilder();
for (final Note note : transactionNotes) {
String s = note.getNote();
if (s == null) {
continue;
}
sb.append(s + " ");
}
if (sb.toString().length() > 0) {
String text = interopTransactionData.getNote() + " " + sb.toString();
if (text.length() > 500) {
text = text.substring(0, 500);
}
interopTransactionData.updateNote(text);
}
}
return interopTransactionsData;
} }
@NotNull @NotNull
@@ -39,7 +39,6 @@ import org.apache.fineract.infrastructure.core.service.ExternalIdFactory;
import org.apache.fineract.organisation.holiday.domain.Holiday; import org.apache.fineract.organisation.holiday.domain.Holiday;
import org.apache.fineract.organisation.holiday.domain.HolidayRepository; import org.apache.fineract.organisation.holiday.domain.HolidayRepository;
import org.apache.fineract.organisation.holiday.domain.HolidayStatusType; import org.apache.fineract.organisation.holiday.domain.HolidayStatusType;
import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.organisation.staff.domain.Staff; import org.apache.fineract.organisation.staff.domain.Staff;
import org.apache.fineract.organisation.staff.domain.StaffRepository; import org.apache.fineract.organisation.staff.domain.StaffRepository;
import org.apache.fineract.organisation.staff.exception.StaffNotFoundException; import org.apache.fineract.organisation.staff.exception.StaffNotFoundException;
@@ -82,6 +81,7 @@ import org.apache.fineract.portfolio.loanaccount.loanschedule.service.LoanSchedu
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct; import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRelatedDetail; import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRelatedDetail;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository; import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.loanproduct.exception.LinkedAccountRequiredException; import org.apache.fineract.portfolio.loanproduct.exception.LinkedAccountRequiredException;
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException; import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException;
import org.apache.fineract.portfolio.rate.domain.Rate; import org.apache.fineract.portfolio.rate.domain.Rate;
@@ -60,7 +60,6 @@ import org.apache.fineract.infrastructure.event.business.domain.loan.transaction
import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService; import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency; import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money; import org.apache.fineract.organisation.monetary.domain.Money;
import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.account.PortfolioAccountType; import org.apache.fineract.portfolio.account.PortfolioAccountType;
import org.apache.fineract.portfolio.account.data.AccountTransferDTO; import org.apache.fineract.portfolio.account.data.AccountTransferDTO;
import org.apache.fineract.portfolio.account.data.PortfolioAccountData; import org.apache.fineract.portfolio.account.data.PortfolioAccountData;
@@ -126,6 +125,7 @@ import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.DefaultSche
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.ScheduledDateGenerator; import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.ScheduledDateGenerator;
import org.apache.fineract.portfolio.loanaccount.serialization.LoanChargeApiJsonValidator; import org.apache.fineract.portfolio.loanaccount.serialization.LoanChargeApiJsonValidator;
import org.apache.fineract.portfolio.loanproduct.data.LoanOverdueDTO; import org.apache.fineract.portfolio.loanproduct.data.LoanOverdueDTO;
import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.loanproduct.exception.LinkedAccountRequiredException; import org.apache.fineract.portfolio.loanproduct.exception.LinkedAccountRequiredException;
import org.apache.fineract.portfolio.note.domain.Note; import org.apache.fineract.portfolio.note.domain.Note;
import org.apache.fineract.portfolio.note.domain.NoteRepository; import org.apache.fineract.portfolio.note.domain.NoteRepository;
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations * specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.apache.fineract.organisation.monetary.exception; package org.apache.fineract.portfolio.loanproduct.exception;
import org.apache.fineract.infrastructure.core.exception.AbstractPlatformDomainRuleException; import org.apache.fineract.infrastructure.core.exception.AbstractPlatformDomainRuleException;
@@ -40,7 +40,6 @@ import org.apache.fineract.infrastructure.entityaccess.service.FineractEntityAcc
import org.apache.fineract.infrastructure.event.business.domain.loan.product.LoanProductCreateBusinessEvent; import org.apache.fineract.infrastructure.event.business.domain.loan.product.LoanProductCreateBusinessEvent;
import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService; import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.charge.domain.Charge; import org.apache.fineract.portfolio.charge.domain.Charge;
import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper; import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
import org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket; import org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket;
@@ -58,6 +57,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.AdvancedPaymentAllocatio
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct; import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule; import org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository; import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductCannotBeModifiedDueToNonClosedLoansException; import org.apache.fineract.portfolio.loanproduct.exception.LoanProductCannotBeModifiedDueToNonClosedLoansException;
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductDateException; import org.apache.fineract.portfolio.loanproduct.exception.LoanProductDateException;
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException; import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException;
@@ -26,8 +26,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
import org.apache.fineract.portfolio.savings.domain.SavingsAccount; import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
public interface NoteRepository extends JpaRepository<Note, Long>, JpaSpecificationExecutor<Note> { public interface NoteRepository extends JpaRepository<Note, Long>, JpaSpecificationExecutor<Note> {
@@ -48,8 +46,4 @@ public interface NoteRepository extends JpaRepository<Note, Long>, JpaSpecificat
List<Note> findBySavingsAccount(SavingsAccount savingAccount); List<Note> findBySavingsAccount(SavingsAccount savingAccount);
Note findBySavingsAccountAndId(SavingsAccount savingAccount, Long id); Note findBySavingsAccountAndId(SavingsAccount savingAccount, Long id);
@Query("select note from Note note where note.savingsTransaction.id = :savingsTransactionId")
List<Note> findBySavingsTransactionId(@Param("savingsTransactionId") Long savingsTransactionId);
} }

Some files were not shown because too many files have changed in this diff Show More