From 542afa01b97fff80ca67fd4940a6c1746a66cae4 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Tue, 13 Dec 2022 22:01:11 +0100
Subject: [PATCH] #725 - refactor: externalized methods

---
 .../transactions/TransactionService.java      | 22 ++++++++++++++-----
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
index 7cd4ee799..9c23b629a 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
@@ -74,10 +74,8 @@ public class TransactionService implements Resettable
 		return transactions;
 	}
 
-	private List<Transaction> getTransactionsForMonthAndYearWithRest(Account account, int month, int year, FilterConfiguration filterConfiguration)
+	public Transaction getTransactionForBalanceLastMonth(Account account, int month, int year)
 	{
-		final List<Transaction> transactions = getTransactionsForMonthAndYearWithoutRest(account, month, year, filterConfiguration);
-
 		final LocalDate endDateLastMonth = LocalDate.of(year, month, 1).minusMonths(1).with(lastDayOfMonth());
 
 		final Transaction transactionBalanceLastMonth = new Transaction();
@@ -86,8 +84,12 @@ public class TransactionService implements Resettable
 		transactionBalanceLastMonth.setDate(LocalDate.of(year, month, 1));
 		transactionBalanceLastMonth.setAmount(getRest(account, endDateLastMonth));
 		transactionBalanceLastMonth.setTags(new ArrayList<>());
-		transactions.add(transactionBalanceLastMonth);
 
+		return transactionBalanceLastMonth;
+	}
+
+	public Transaction getTransactionForBalanceCurrentMonth(Account account, int month, int year)
+	{
 		final LocalDate endDateCurrentMonth = LocalDate.of(year, month, 1).with(lastDayOfMonth());
 
 		final Transaction transactionBalanceCurrentMonth = new Transaction();
@@ -96,8 +98,16 @@ public class TransactionService implements Resettable
 		transactionBalanceCurrentMonth.setDate(endDateCurrentMonth);
 		transactionBalanceCurrentMonth.setAmount(getRest(account, endDateCurrentMonth));
 		transactionBalanceCurrentMonth.setTags(new ArrayList<>());
-		// always add as first transaction
-		transactions.add(0, transactionBalanceCurrentMonth);
+
+		return transactionBalanceCurrentMonth;
+	}
+
+	private List<Transaction> getTransactionsForMonthAndYearWithRest(Account account, int month, int year, FilterConfiguration filterConfiguration)
+	{
+		final List<Transaction> transactions = getTransactionsForMonthAndYearWithoutRest(account, month, year, filterConfiguration);
+
+		transactions.add(getTransactionForBalanceLastMonth(account, month, year));
+		transactions.add(0, getTransactionForBalanceCurrentMonth(account, month, year));
 
 		return transactions;
 	}
-- 
GitLab