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