From 2f1e1805244bae852d5698b6d7529bdc79f52a76 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sat, 2 Oct 2021 16:55:06 +0200
Subject: [PATCH] #596 - fixed transaction types

---
 .../transactions/TransactionController.java    | 18 +++++++-----------
 .../transactions/TransactionType.java          |  9 +--------
 .../templates/transactions/changeTypeModal.ftl |  7 ++-----
 .../integration/selenium/HotkeyTest.java       |  2 +-
 4 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
index 9411433f1..851a40a68 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
@@ -143,7 +143,7 @@ public class TransactionController extends BaseController
 	{
 		DateTime date = dateService.getDateTimeFromCookie(cookieDate);
 
-		handlePreviousType(previousType, transaction);
+		handlePreviousType(transaction, isRepeating);
 
 		TransactionValidator transactionValidator = new TransactionValidator();
 		transactionValidator.validate(transaction, bindingResult);
@@ -164,9 +164,9 @@ public class TransactionController extends BaseController
 		return handleRedirect(model, transaction.getID() != null, transaction, bindingResult, date, "transactions/newTransaction");
 	}
 
-	private void handlePreviousType(TransactionType previousType, Transaction transaction)
+	private void handlePreviousType(Transaction transaction, boolean isRepeating)
 	{
-		if(previousType == TransactionType.REPEATING)
+		if(transaction.getID() != null && isRepeating)
 		{
 			transactionService.deleteTransaction(transaction.getID());
 		}
@@ -205,7 +205,8 @@ public class TransactionController extends BaseController
 	{
 		DateTime date = dateService.getDateTimeFromCookie(cookieDate);
 
-		handlePreviousType(previousType, transaction);
+//		TODO
+//		handlePreviousType(transaction, isRepeating);
 
 		TransactionValidator transactionValidator = new TransactionValidator();
 		transactionValidator.validate(transaction, bindingResult);
@@ -333,18 +334,13 @@ public class TransactionController extends BaseController
 		{
 			case NORMAL:
 				transactionCopy.setTransferAccount(null);
-				transactionCopy.setRepeatingOption(null);
 				redirectUrl = "transactions/newTransactionNormal";
 				break;
-//				TODO
-			case REPEATING:
-				transactionCopy.setTransferAccount(null);
-				redirectUrl = "transactions/newTransactionRepeating";
-				break;
 			case TRANSFER:
-				transactionCopy.setRepeatingOption(null);
 				redirectUrl = "transactions/newTransactionTransfer";
 				break;
+			default:
+				throw new IllegalStateException("Unexpected value: " + newTransactionType);
 		}
 
 		DateTime date = dateService.getDateTimeFromCookie(cookieDate);
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionType.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionType.java
index 1c515e802..26ba6bab1 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionType.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionType.java
@@ -5,8 +5,7 @@ import java.util.Optional;
 public enum TransactionType
 {
 	NORMAL(1),
-	REPEATING(2),
-	TRANSFER(3);
+	TRANSFER(2);
 
 	private final int typeID;
 
@@ -27,8 +26,6 @@ public enum TransactionType
 			case 1:
 				return Optional.of(NORMAL);
 			case 2:
-				return Optional.of(REPEATING);
-			case 3:
 				return Optional.of(TRANSFER);
 			default:
 				return Optional.empty();
@@ -41,10 +38,6 @@ public enum TransactionType
 		{
 			return TRANSFER;
 		}
-		else if(transaction.isRepeating())
-		{
-			return REPEATING;
-		}
 		else
 		{
 			return NORMAL;
diff --git a/src/main/resources/templates/transactions/changeTypeModal.ftl b/src/main/resources/templates/transactions/changeTypeModal.ftl
index 21461c072..35fd2eb42 100644
--- a/src/main/resources/templates/transactions/changeTypeModal.ftl
+++ b/src/main/resources/templates/transactions/changeTypeModal.ftl
@@ -14,14 +14,11 @@
         <div class="row">
             <div class="input-field col s12">
                 <select id="newTypeSelect">
-                    <#if transaction.isRepeating() || transaction.isTransfer()>
+                    <#if transaction.isTransfer()>
                         <option value="1">${locale.getString("title.transaction.new.normal")}</option>
                     </#if>
-                    <#if !transaction.isRepeating()>
-                        <option value="2">${locale.getString("title.transaction.new.repeating")}</option>
-                    </#if>
                     <#if !transaction.isTransfer()>
-                        <option value="3">${locale.getString("title.transaction.new.transfer")}</option>
+                        <option value="2">${locale.getString("title.transaction.new.transfer")}</option>
                     </#if>
                 </select>
                 <label for="newTypeSelect">${locale.getString("transaction.change.type.new")}</label>
diff --git a/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java b/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java
index dd5b33d5e..d2dad4313 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java
@@ -73,7 +73,7 @@ class HotkeyTest extends SeleniumTestBase
 	}
 
 	@Test
-	public void hotkey_newTransaction_transfer()
+	void hotkey_newTransaction_transfer()
 	{
 		driver.findElement(By.tagName("body")).sendKeys("t");
 
-- 
GitLab