Hey community,
ich stehe grade vor einem Problem und habe wohl eine Denkblockade und komme einfach nicht weiter.
Folgende Situation:
Ich habe eine Datenbank aus der mit einer for schleife "Buchungen" ausgelesen werden.
Diese Buchungen beinhalten folgende Werte: Grund, Wert, Datum, Gebucht
Das Problem findet sich bei: Gebucht
Dieser Wert ist ein String und beinhaltet entweder 0 (nicht gebucht) oder 1 (gebucht).
Bei jedem Start wird die Methode zum Laden und überprüfen der Buchungen aufgerufen und soll prüfen, ob das gewählte Datum erreicht wurde und ob die Buchung bereits ausgeführt wurde oder nicht.
Datum erreicht -> prüfen ob bereichts gebucht oder nicht -> nicht gebucht -> buchen und Gebucht wert auf "1" setzen.
Beim nächsten Start wird diese Buchung mit dem neuen Gebucht Wert allerdings ignoriert, da sie ja nun bereits gebucht ist.
Das Problem ist aber, dass der Grund dennoch geladen werden soll.
Etwas kompliziert zu erklären, hier mal der Code:
ich stehe grade vor einem Problem und habe wohl eine Denkblockade und komme einfach nicht weiter.
Folgende Situation:
Ich habe eine Datenbank aus der mit einer for schleife "Buchungen" ausgelesen werden.
Diese Buchungen beinhalten folgende Werte: Grund, Wert, Datum, Gebucht
Das Problem findet sich bei: Gebucht
Dieser Wert ist ein String und beinhaltet entweder 0 (nicht gebucht) oder 1 (gebucht).
Bei jedem Start wird die Methode zum Laden und überprüfen der Buchungen aufgerufen und soll prüfen, ob das gewählte Datum erreicht wurde und ob die Buchung bereits ausgeführt wurde oder nicht.
Datum erreicht -> prüfen ob bereichts gebucht oder nicht -> nicht gebucht -> buchen und Gebucht wert auf "1" setzen.
Beim nächsten Start wird diese Buchung mit dem neuen Gebucht Wert allerdings ignoriert, da sie ja nun bereits gebucht ist.
Das Problem ist aber, dass der Grund dennoch geladen werden soll.
Etwas kompliziert zu erklären, hier mal der Code:
Java:
private void loadBuchungFromDB() {
try {
todaysDate = dateformat.parse(actualDate);
System.out.println("Todays Date: " + todaysDate);
} catch (ParseException e) {
System.out.println("TodaysDate Parse Error: " + e.toString());
}
StringBuilder sb = new StringBuilder();
List<Buchung> buchung = db.getAllBuchungen();
for (Buchung cn : buchung) {
//Testing phase: check date and ONLY if date is reached or over: write to historietf
String date = cn.getDate();
String log = "Grund: " + cn.getGrund() + " | " + "Wert: " + cn.getWert() + "€";
String booked = cn.getBooked();
try {
if (!(date == null)) {
if (booked.equals("0")) {
System.out.println("DatumAsString: " + date);
Date realDate = dateformat.parse(date);
System.out.println("DatumAsDate: " + realDate);
if (todaysDate.getTime() == realDate.getTime() || todaysDate.getTime() > realDate.getTime()) {
System.out.println("Datum erreicht oder verstrichen!");
sb.append(log);
sb.append("\n");
System.out.println("Log: " + log);
guthaben = guthaben + cn.getWert();
System.out.println("cn.getWert: " + cn.getWert() + "_" + "guthaben: " + guthaben);
booked = "1";
cn.setBooked(booked);
db.updateBuchung(cn);
Toast.makeText(this, "Datum erreicht: Buchung ausgeführt", Toast.LENGTH_SHORT).show();
} else {
System.out.println("Datum nicht erreicht");
}
} else {
System.out.println("Bereits gebucht");
}
} else {
System.out.println("Log: " + log);
sb.append(log);
sb.append("\n");
}
} catch (NullPointerException e) {
System.out.println("Not date found");
} catch (ParseException e) {
System.out.println("Parse Exception: " + e.toString());
}
}
float guthabenformatted = guthaben;
System.out.println("Guthabenformatted: " + df.format(guthabenformatted));
kstand.setText(df.format(guthabenformatted) + "€");
System.out.println("kstand after loading from DB: " + String.valueOf(kstand.getText()));
historietf.setText(sb.toString());
}