FINERACT-2354: Allow re-age today if the previous re-age was reversed
This commit is contained in:
committed by
Adam Saghy
parent
5b1d72d15b
commit
7ee1919ddb
+6
-76
@@ -314,36 +314,6 @@ public interface LoanTransactionRepository extends JpaRepository<LoanTransaction
|
||||
Optional<LocalDate> findLastNonReversedTransactionDateByLoanAndTypes(@Param("loan") Loan loan,
|
||||
@Param("types") Set<LoanTransactionType> types);
|
||||
|
||||
@Query("""
|
||||
SELECT lt FROM LoanTransaction lt
|
||||
WHERE lt.loan = :loan
|
||||
AND (
|
||||
(lt.reversed = true AND lt.id IN :existingTransactionIds AND lt.id NOT IN :existingReversedTransactionIds)
|
||||
OR (lt.id NOT IN :existingTransactionIds)
|
||||
)
|
||||
""")
|
||||
List<LoanTransaction> findTransactionsForAccountingBridge(@Param("loan") Loan loan,
|
||||
@Param("existingTransactionIds") List<Long> existingTransactionIds,
|
||||
@Param("existingReversedTransactionIds") List<Long> existingReversedTransactionIds);
|
||||
|
||||
@Query("""
|
||||
SELECT lt FROM LoanTransaction lt
|
||||
WHERE lt.loan = :loan
|
||||
AND (
|
||||
(lt.reversed = true AND lt.id IN :existingTransactionIds)
|
||||
OR (lt.id NOT IN :existingTransactionIds)
|
||||
)
|
||||
""")
|
||||
List<LoanTransaction> findTransactionsForAccountingBridge(@Param("loan") Loan loan,
|
||||
@Param("existingTransactionIds") List<Long> existingTransactionIds);
|
||||
|
||||
@Query("""
|
||||
SELECT lt FROM LoanTransaction lt
|
||||
WHERE lt.loan = :loan
|
||||
AND lt.reversed = false
|
||||
""")
|
||||
List<LoanTransaction> findNonReversedByLoan(@Param("loan") Loan loan);
|
||||
|
||||
@Query("""
|
||||
SELECT lt FROM LoanTransaction lt
|
||||
WHERE lt.loan = :loan
|
||||
@@ -482,54 +452,14 @@ public interface LoanTransactionRepository extends JpaRepository<LoanTransaction
|
||||
BigDecimal calculateTotalRecoveryPaymentAmount(@Param("loan") Loan loan);
|
||||
|
||||
@Query("""
|
||||
SELECT lt FROM LoanTransaction lt
|
||||
SELECT CASE WHEN COUNT(lt) > 0 THEN true ELSE false END
|
||||
FROM LoanTransaction lt
|
||||
WHERE lt.loan = :loan
|
||||
AND (
|
||||
(:dateComparison = 'BEFORE' AND lt.dateOf < :chargeOffDate) OR
|
||||
(:dateComparison = 'EQUAL' AND lt.dateOf = :chargeOffDate) OR
|
||||
(:dateComparison = 'AFTER' AND lt.dateOf > :chargeOffDate)
|
||||
)
|
||||
AND (
|
||||
(lt.reversed = true AND lt.id IN :existingTransactionIds AND lt.id NOT IN :existingReversedTransactionIds)
|
||||
OR (lt.id NOT IN :existingTransactionIds)
|
||||
)
|
||||
ORDER BY lt.dateOf, lt.createdDate, lt.id
|
||||
""")
|
||||
List<LoanTransaction> findTransactionsForChargeOffClassification(@Param("loan") Loan loan,
|
||||
@Param("chargeOffDate") LocalDate chargeOffDate, @Param("dateComparison") String dateComparison,
|
||||
@Param("existingTransactionIds") List<Long> existingTransactionIds,
|
||||
@Param("existingReversedTransactionIds") List<Long> existingReversedTransactionIds);
|
||||
|
||||
@Query("""
|
||||
SELECT lt FROM LoanTransaction lt
|
||||
WHERE lt.loan = :loan
|
||||
AND (
|
||||
(:dateComparison = 'BEFORE' AND lt.dateOf < :chargeOffDate) OR
|
||||
(:dateComparison = 'EQUAL' AND lt.dateOf = :chargeOffDate) OR
|
||||
(:dateComparison = 'AFTER' AND lt.dateOf > :chargeOffDate)
|
||||
)
|
||||
AND (
|
||||
(lt.reversed = true AND lt.id IN :existingTransactionIds)
|
||||
OR (lt.id NOT IN :existingTransactionIds)
|
||||
)
|
||||
ORDER BY lt.dateOf, lt.createdDate, lt.id
|
||||
""")
|
||||
List<LoanTransaction> findTransactionsForChargeOffClassification(@Param("loan") Loan loan,
|
||||
@Param("chargeOffDate") LocalDate chargeOffDate, @Param("dateComparison") String dateComparison,
|
||||
@Param("existingTransactionIds") List<Long> existingTransactionIds);
|
||||
|
||||
@Query("""
|
||||
SELECT lt FROM LoanTransaction lt
|
||||
WHERE lt.loan = :loan
|
||||
AND (
|
||||
(:dateComparison = 'BEFORE' AND lt.dateOf < :chargeOffDate) OR
|
||||
(:dateComparison = 'EQUAL' AND lt.dateOf = :chargeOffDate) OR
|
||||
(:dateComparison = 'AFTER' AND lt.dateOf > :chargeOffDate)
|
||||
)
|
||||
AND lt.reversed = false
|
||||
ORDER BY lt.dateOf, lt.createdDate, lt.id
|
||||
AND lt.typeOf = :type
|
||||
AND lt.dateOf = :transactionDate
|
||||
""")
|
||||
List<LoanTransaction> findTransactionsForChargeOffClassification(@Param("loan") Loan loan,
|
||||
@Param("chargeOffDate") LocalDate chargeOffDate, @Param("dateComparison") String dateComparison);
|
||||
boolean existsNonReversedByLoanAndTypeAndDate(@Param("loan") Loan loan, @Param("type") LoanTransactionType type,
|
||||
@Param("transactionDate") LocalDate transactionDate);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user