From 6563bd630442a6e0b4a5b77d13c844b36c4c5338 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sat, 30 Sep 2017 13:49:54 +0200
Subject: [PATCH] small fixes for v1.6.0

---
 .../serverconnection/ServerConnection.java    |  3 ++-
 .../resources/languages/_de.properties        |  1 +
 .../resources/languages/_en.properties        |  3 ++-
 .../ui/controller/ReportController.java       | 10 ++++++--
 .../budgetmaster/ui/fxml/SearchGUI.fxml       |  2 +-
 .../logic/database/DatabaseHandler.java       | 24 +++++++++++++++++++
 .../payment/search/PaymentMaxAmount.java      |  9 ++++++-
 7 files changed, 46 insertions(+), 6 deletions(-)

diff --git a/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java
index b1c424d06..f546d04b8 100644
--- a/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java
+++ b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java
@@ -369,7 +369,8 @@ public class ServerConnection
 		{
 			String result = Read.getStringFromInputStream(httpsCon.getInputStream());
 			JsonParser parser = new JsonParser();
-			JsonElement resultJSON = parser.parse(result);		
+			JsonElement resultJSON = parser.parse(result);
+			
 	        return PaymentJSONDeserializer.deserializePaymentList(resultJSON.getAsJsonObject().get("payments").getAsJsonArray());
 		}
 		else
diff --git a/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties b/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties
index 398678928..13c3d86a0 100644
--- a/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties
+++ b/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties
@@ -238,6 +238,7 @@ search.by.name=Name
 search.by.description=Notiz
 search.by.category.name=Kategoriename
 search.by.tags=Tags
+search.by.amount=Betrag eingrenzen
 search.button.search=Suchen
 
 gui.tab.home=Startseite
diff --git a/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties b/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties
index 6952c2ab5..fee2f5fa3 100644
--- a/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties
+++ b/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties
@@ -119,7 +119,7 @@ info.text.chart.export.open.folder=Open Folder
 info.text.chart.export.open.chart=Open Chart
 info.title.report.save=Successfully Created
 info.text.report.save=The month report has been successfully created.
-info.text.report.save.open.folder=Open Folde
+info.text.report.save.open.folder=Open Folder
 info.text.report.save.open.report=Open Report
 info.title.database.export=Successfully Exported
 info.text.database.export=The database has been successfully exported.
@@ -238,6 +238,7 @@ search.by.name=Name
 search.by.description=Description
 search.by.tags=Tags
 search.by.category.name=Category Name
+search.by.amount=Limit Amount
 search.button.search=Search
 
 gui.tab.home=Home
diff --git a/src/de/deadlocker8/budgetmaster/ui/controller/ReportController.java b/src/de/deadlocker8/budgetmaster/ui/controller/ReportController.java
index 872ed127d..b196ad476 100644
--- a/src/de/deadlocker8/budgetmaster/ui/controller/ReportController.java
+++ b/src/de/deadlocker8/budgetmaster/ui/controller/ReportController.java
@@ -590,14 +590,20 @@ public class ReportController implements Refreshable, Styleable
 		{
 			reportSorting.setColumnType(ColumnType.DATE);
 			reportSorting.setSortType(SortType.DESCENDING);
-		}		
+		}
+		
+		String reportFolderPath = null;
+		if(reportPreferences != null)
+		{
+			reportFolderPath = reportPreferences.getReportFolderPath();
+		}
 		
 		return new ReportPreferences(columnOrder, 
 									checkBoxIncludeBudget.isSelected(),
 									checkBoxSplitTable.isSelected(),
 									checkBoxIncludeCategoryBudgets.isSelected(),
 									reportSorting, 
-									reportPreferences.getReportFolderPath());
+									reportFolderPath);
 	}
 	
 	private void saveReportPreferences() 
diff --git a/src/de/deadlocker8/budgetmaster/ui/fxml/SearchGUI.fxml b/src/de/deadlocker8/budgetmaster/ui/fxml/SearchGUI.fxml
index a22a3db2b..bc66cd164 100644
--- a/src/de/deadlocker8/budgetmaster/ui/fxml/SearchGUI.fxml
+++ b/src/de/deadlocker8/budgetmaster/ui/fxml/SearchGUI.fxml
@@ -67,7 +67,7 @@
                   </Label>
                   <HBox alignment="CENTER_LEFT" prefHeight="32.0" prefWidth="377.0" spacing="10.0">
                      <children>
-                        <CheckBox fx:id="checkBoxSearchByAmount" mnemonicParsing="false" text="Betrag eingrenzen">
+                        <CheckBox fx:id="checkBoxSearchByAmount" mnemonicParsing="false" text="%search.by.amount">
                            <HBox.margin>
                               <Insets right="25.0" />
                            </HBox.margin>
diff --git a/src/de/deadlocker8/budgetmasterserver/logic/database/DatabaseHandler.java b/src/de/deadlocker8/budgetmasterserver/logic/database/DatabaseHandler.java
index 42854c52b..b9f91615a 100644
--- a/src/de/deadlocker8/budgetmasterserver/logic/database/DatabaseHandler.java
+++ b/src/de/deadlocker8/budgetmasterserver/logic/database/DatabaseHandler.java
@@ -680,6 +680,30 @@ public class DatabaseHandler
 
 		return -1;
 	}
+	
+	public int getRepeatingPaymentMaxAmount()
+	{
+		PreparedStatement stmt = null;
+		try
+		{
+			stmt = connection.prepareStatement("SELECT MAX(ABS(Amount)) as'max' FROM repeating_payment;");		;
+			ResultSet rs = stmt.executeQuery();
+			while(rs.next())
+			{
+				return rs.getInt("max");			
+			}
+		}
+		catch(SQLException e)
+		{
+			Logger.error(e);
+		}
+		finally
+		{
+			closeConnection(stmt);
+		}
+
+		return -1;
+	}
 
 	/*
 	 * DELETE
diff --git a/src/de/deadlocker8/budgetmasterserver/server/payment/search/PaymentMaxAmount.java b/src/de/deadlocker8/budgetmasterserver/server/payment/search/PaymentMaxAmount.java
index 967671a4d..a8f40253b 100644
--- a/src/de/deadlocker8/budgetmasterserver/server/payment/search/PaymentMaxAmount.java
+++ b/src/de/deadlocker8/budgetmasterserver/server/payment/search/PaymentMaxAmount.java
@@ -26,8 +26,15 @@ public class PaymentMaxAmount implements Route
 		try
 		{
 			int maxNormal = handler.getNormalPaymentMaxAmount();
+			int maxRepeating = handler.getRepeatingPaymentMaxAmount();
+			
+			int max = maxNormal;
+			if(maxRepeating > max)
+			{
+				max = maxRepeating;
+			}
 			//plus 1 to allow all amounts up to maxNormal.99 €
-			return gson.toJson((maxNormal+1)/100);
+			return gson.toJson((max+1)/100);
 		}
 		catch(IllegalStateException ex)
 		{
-- 
GitLab