diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java index 683e4e9c4648531949e302b548f5d25122ae19b9..61ca84fc054dff98f2227acb8974b21ff05486d4 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java +++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java @@ -96,7 +96,7 @@ public class TransactionSpecifications if(transferBackReference == null) { - return builder.and(predicates.toArray(predicatesArray)); + return builder.and(dateConstraint, builder.or(builder.and(predicates.toArray(predicatesArray)))); } return builder.and(dateConstraint, builder.or(builder.and(predicates.toArray(predicatesArray)), transferBackReference)); diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java index 364e102a669c0cda4989d07f5b0b7b5525947a93..f2ce3fadee9676d02ddab31b7f0f0665600fb9ec 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java @@ -94,7 +94,7 @@ public class TransactionSpecificationsTest transaction2 = new Transaction(); transaction2.setName("Test_2"); transaction2.setAmount(-525); - transaction2.setDate(new DateTime(2018, 10, 3, 12, 0, 0, 0)); + transaction2.setDate(new DateTime(2018, 12, 3, 12, 0, 0, 0)); transaction2.setCategory(category2); transaction2.setAccount(account); transaction2 = transactionRepository.save(transaction2); @@ -379,4 +379,17 @@ public class TransactionSpecificationsTest assertTrue(results.contains(repeatingTransaction)); assertFalse(results.contains(transferTransaction)); } + + @Test + public void getFromAllAccountsExceptTransfersWithSpecificEndDate() + { + DateTime endDate = new DateTime(2018, 11, 30, 12, 0, 0, 0); + Specification spec = TransactionSpecifications.withDynamicQuery(startDate, endDate, null, true, true, false, null, null, null, null); + + List<Transaction> results = transactionRepository.findAll(spec); + assertTrue(results.contains(transaction1)); + assertFalse(results.contains(transaction2)); + assertTrue(results.contains(repeatingTransaction)); + assertFalse(results.contains(transferTransaction)); + } } \ No newline at end of file