From 5f1e0190bb351a3d6021f2881234ed5922c0d7e4 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sat, 22 Apr 2017 12:31:37 +0200
Subject: [PATCH] Fixed #79

rest is not calculated if database doesn't contain at least one normal
and one repeating payment
---
 .../main/DatabaseHandler.java                 | 38 +++++++++++++++----
 1 file changed, 31 insertions(+), 7 deletions(-)

diff --git a/src/de/deadlocker8/budgetmasterserver/main/DatabaseHandler.java b/src/de/deadlocker8/budgetmasterserver/main/DatabaseHandler.java
index 61b8ee040..43097810d 100644
--- a/src/de/deadlocker8/budgetmasterserver/main/DatabaseHandler.java
+++ b/src/de/deadlocker8/budgetmasterserver/main/DatabaseHandler.java
@@ -56,7 +56,15 @@ public class DatabaseHandler
 
 			while(rs.next())
 			{
-				dateTime = formatter.parseDateTime(rs.getString("min"));
+				String min = rs.getString("min");
+				if(min == null)
+				{
+					dateTime = null;
+				}
+				else
+				{
+					dateTime = formatter.parseDateTime(rs.getString("min"));
+				}
 			}
 		}
 		catch(SQLException e)
@@ -92,7 +100,15 @@ public class DatabaseHandler
 
 			while(rs.next())
 			{
-				dateTime = formatter.parseDateTime(rs.getString("min"));
+				String min = rs.getString("min");
+				if(min == null)
+				{
+					dateTime = null;
+				}
+				else
+				{
+					dateTime = formatter.parseDateTime(rs.getString("min"));
+				}
 			}
 		}
 		catch(SQLException e)
@@ -118,18 +134,26 @@ public class DatabaseHandler
 
 	public int getRestForAllPreviousMonths(int year, int month)
 	{		
+		DateTimeFormatter formatter = DateTimeFormat.forPattern("MM.yyyy");
+		String dateString = String.valueOf(month) + "." + year;
+		DateTime currentDate = formatter.parseDateTime(dateString);		
+		
 		DateTime firstNormalPaymentDate = getFirstNormalPaymentDate();
+		if(firstNormalPaymentDate == null)
+		{
+			firstNormalPaymentDate = currentDate;
+		}
 		DateTime firstRepeatingPaymentDate = getFirstRepeatingPaymentDate();
+		if(firstRepeatingPaymentDate == null)
+		{
+			firstRepeatingPaymentDate = currentDate;
+		}
 		
 		DateTime firstDate = firstNormalPaymentDate;
 		if(firstRepeatingPaymentDate.isBefore(firstNormalPaymentDate))
 		{
 			firstDate = firstRepeatingPaymentDate;
-		}
-		
-		DateTimeFormatter formatter = DateTimeFormat.forPattern("MM.yyyy");
-		String dateString = String.valueOf(month) + "." + year;
-		DateTime currentDate = formatter.parseDateTime(dateString);//	
+		}	
 	
 		if(firstDate.isAfter(currentDate))
 		{
-- 
GitLab