Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Unterdrücke Buchungsarten in Dialogen #104

Merged
merged 12 commits into from
Jan 26, 2024

Conversation

JohannMaierhofer
Copy link

Das Feature unterdrückt in Auswahldialogen Buchungsarten die seit mehr als 2 Jahren nicht benutzt wurden. Das Feature ist in den Einstellungen auswählbar.

Das Feature unterdrückt in Auswahldialogen Buchungsarten die seit mehr als 2 Jahren nicht benutzt wurden.
Das Feature ist in den Einstellungen auswählbar.
@dippeal
Copy link
Member

dippeal commented Jan 14, 2024

Vorschlag: Anstatt 2 Jahre fest zu definieren lege in den Einstellungen ein Zahlenfeld an in dem man den Wert setzen kann. 0/null/leer String wäre dann "alle Jahre anzeigen" und eine natürliche Zahl entsprechend das Limit.

@JohannMaierhofer
Copy link
Author

Das wäre sicherlich eine Verbesserung des Features. Ich versuche den Code entsprechend zu ändern, evtl. mit Monaten statt Jahren.

Im Feature zur Unterdrückung ungenutzter Buchungsarten ist jetzt der Zeitraum in Monaten einstellbar.
@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Jan 15, 2024

Habe die Änderungen gemacht. Das Intervall ist jetzt in Monaten konfigurierbar.
Screenshot_20240115_122356

@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Jan 15, 2024

Ich habe noch eine Frage.
Im BuchungsartZuordnungDialog wird bei der Auswahl des Button 'abbrechen' eine Exception geworfen. Das führt zur Ausgabe einer Fehlermeldung im darunder liegenden View. Das ist verwirrend weil ja kein Fehler passiert ist. Man hat ja nur den Dialog beendet.
Sollte die Exception nicht entfernt werden?
Oder hat sie einen anderen Grund?
Ich dachte z. B. buchungsart auf NULL setzen und in der aufrufenden Action darauf abprüfen, nichts setzen und Abbruch Meldung ausgeben. Alternativ kann man auch ein abort Attribut einführen anstatt buchungsart auf NULL setzen.

Exception entfernt in BuchungZuordnungDialog wenn abbrechen gewählt wird.
Deprecated Long ersetzt.
Abbruch gibt keine Meldung mehr aus so wie es auch bei vielen anderen Dialogen ist.
Funktioniert analog bei ESC und dem Schließen Icon oben rechts.
Icons zu den Buttons hinzugefügt analog Mitglieder Konto Auswahl Dialog.
@dippeal dippeal added the enhancement New feature or request label Jan 19, 2024
JohannMaierhofer added a commit to JohannMaierhofer/jverein that referenced this pull request Jan 20, 2024
Habe den Kommentar bezüglich der catch Implementierung aus Request openjverein#104 implementiert.
Analog zu Buchungsart Zuordnung kann man einstellen ob überschrieben werden soll.
Analog zu Mitgliedskonto Zuordnung kann das Projekt auch gelöscht werden
JohannMaierhofer added a commit to JohannMaierhofer/jverein that referenced this pull request Jan 20, 2024
Habe den Kommentar bezüglich der catch Implementierung aus Request openjverein#104 implementiert.
Analog zu Mitgliedskonto Zuordnung kann der Kontoauszug auch  per Button forced gelöscht werden
@JohannMaierhofer
Copy link
Author

Analog zu den anderen Dialogen möchte ich noch löschen implementieren.

dippeal pushed a commit that referenced this pull request Jan 21, 2024
* Verbesserung ProjektAuswahlDialog

Update Button Text "weiter" zu "übernehmen". Weiter suggeriert das noch was folgt. Übernehmen wie bei anderen Dialogen.
Korrektur falsche ä
Icons für die Buttons
Korrektes Handling von Abbruch über Button, Icon und ESC ohne Meldung

* replace Boolean with boolean

* Weiter Verbesserung

Habe den Kommentar bezüglich der catch Implementierung aus Request #104 implementiert.
Analog zu Buchungsart Zuordnung kann man einstellen ob überschrieben werden soll.
Analog zu Mitgliedskonto Zuordnung kann das Projekt auch gelöscht werden

* remove obsolete import java.rmi.RemoteException

* Bessere Dialoghöhe 175
dippeal pushed a commit that referenced this pull request Jan 21, 2024
* Verbesserung KontoauszugZuordnungDialog

Icons für die Buttons hinzugefügt, analog zu den anderen Dialogen.
Korrektes Handling von Abbruch über Button, Icon und ESC ohne Ausgabe einer Meldung.
ESC und Abbruch Button meldeten "Fehler bei der Zuordnung des Projektes".
Abbruch Icon rechts oben meldete "Kontoauszug zugeordnet" obwohl Abbruch!.

* Weitere Verbesserung und fix catch

Habe den Kommentar bezüglich der catch Implementierung aus Request #104 implementiert.
Analog zu Mitgliedskonto Zuordnung kann der Kontoauszug auch  per Button forced gelöscht werden

* Delete obsolete import java.rmi.RemoteException

* Dialoghöhe analog zu Projekt Auswahl
JohannMaierhofer added a commit to JohannMaierhofer/jverein that referenced this pull request Jan 21, 2024
Try/Catch Handling entsprechend dem Kommentar von willuhn aus Pull request openjverein#104 commit d8cebbf angepasst
@JohannMaierhofer
Copy link
Author

Jetzt könnte man das Feature mergen

dippeal pushed a commit that referenced this pull request Jan 22, 2024
* Try/Catch Handling angepasst

Try/Catch Handling entsprechend dem Kommentar von willuhn aus Pull request #104 commit d8cebbf angepasst

* Und wieder import java.rmi.RemoteException entfernt
@JohannMaierhofer
Copy link
Author

Könnte jemand dieses Feature reviewen, bitte.

Aus historischen Gründen habe ich alte Buchungsarten die benutzt sind und ich sie darum nicht löschen kann. Sie werden aber nicht mehr für neue Buchungen verwendet.
Der Auswahldialog spannt sich momentan über die ganze Bildschirm Höhe. Mit dem Filter bekomme ich wirklich nur noch die Buchungsarten die noch benutzt werden.
Ich hätte das gerne in der nächsten offiziellen Release von Open Jverein.

@dippeal
Copy link
Member

dippeal commented Jan 25, 2024

Könnte jemand dieses Feature reviewen, bitte.

Aus historischen Gründen habe ich alte Buchungsarten die benutzt sind und ich sie darum nicht löschen kann. Sie werden aber nicht mehr für neue Buchungen verwendet. Der Auswahldialog spannt sich momentan über die ganze Bildschirm Höhe. Mit dem Filter bekomme ich wirklich nur noch die Buchungsarten die noch benutzt werden. Ich hätte das gerne in der nächsten offiziellen Release von Open Jverein.

Ich habe oben einen Code-Kommentar zu deiner Implementierung geschrieben. Erst alle Daten aus der DB zu ziehen und dann zu verarbeiten ist nicht performant. Es sollten nur die benötigten Daten aus der DB geladen werden. Einen nicht getesteten Code-Vorschlag habe ich im review hinterlassen.

@JohannMaierhofer
Copy link
Author

Könnte jemand dieses Feature reviewen, bitte.
Aus historischen Gründen habe ich alte Buchungsarten die benutzt sind und ich sie darum nicht löschen kann. Sie werden aber nicht mehr für neue Buchungen verwendet. Der Auswahldialog spannt sich momentan über die ganze Bildschirm Höhe. Mit dem Filter bekomme ich wirklich nur noch die Buchungsarten die noch benutzt werden. Ich hätte das gerne in der nächsten offiziellen Release von Open Jverein.

Ich habe oben einen Code-Kommentar zu deiner Implementierung geschrieben. Erst alle Daten aus der DB zu ziehen und dann zu verarbeiten ist nicht performant. Es sollten nur die benötigten Daten aus der DB geladen werden. Einen nicht getesteten Code-Vorschlag habe ich im review hinterlassen.

Wo finde ich den Code-Kommentar?

@dippeal
Copy link
Member

dippeal commented Jan 25, 2024

Könnte jemand dieses Feature reviewen, bitte.
Aus historischen Gründen habe ich alte Buchungsarten die benutzt sind und ich sie darum nicht löschen kann. Sie werden aber nicht mehr für neue Buchungen verwendet. Der Auswahldialog spannt sich momentan über die ganze Bildschirm Höhe. Mit dem Filter bekomme ich wirklich nur noch die Buchungsarten die noch benutzt werden. Ich hätte das gerne in der nächsten offiziellen Release von Open Jverein.

Ich habe oben einen Code-Kommentar zu deiner Implementierung geschrieben. Erst alle Daten aus der DB zu ziehen und dann zu verarbeiten ist nicht performant. Es sollten nur die benötigten Daten aus der DB geladen werden. Einen nicht getesteten Code-Vorschlag habe ich im review hinterlassen.

Wo finde ich den Code-Kommentar?

Mach mal bitte einen Issue auf, dass du als Mitglied in der OpenJVerein github Organisation aufgenommen werden willst. Ich kann mir vorstellen, dass nur Mitglieder die reviews sehen können.

Ansonsten https://github.com/openjverein/jverein/pull/104/files#diff-222eb26935ffd571a1c0aa018d3157ecda51de7c7428fc669db611a49051eda5 Zeile 150.

@JohannMaierhofer
Copy link
Author

Wo finde ich den Code-Kommentar?

Mach mal bitte einen Issue auf, dass du als Mitglied in der OpenJVerein github Organisation aufgenommen werden willst. Ich kann mir vorstellen, dass nur Mitglieder die reviews sehen können.

Ansonsten https://github.com/openjverein/jverein/pull/104/files#diff-222eb26935ffd571a1c0aa018d3157ecda51de7c7428fc669db611a49051eda5 Zeile 150.

Seltsam, jetzt bin ich Mitglied, aber ich kann trotzdem keinen Kommentar finden. Auch bei dem Link sehe ich nichts, auch keine Zeile 150.
Das einzige was ich sehe ist der Kommentar von Willuhn zu Commit d8cebbf den ich auf dieser Seite öffnen kann. Bei "Files Changed" finde ich nichts.

@dippeal
Copy link
Member

dippeal commented Jan 26, 2024

mhm dann noch mal hier - Formatierung geht leider verloren.

Statt im Java das Filtern durchzuführen soll doch lieber eine gefilterte Liste aus der DB geliefert werden (analog bei den anderen Filtern im Code). Irgendwie sowas (ungetestet !):
Suggested change
private SelectInput getBuchungsartAuswahl() throws RemoteException
{
if (buchungsarten != null)
{
return buchungsarten;
}
final DBService service = Einstellungen.getDBService();
Calendar cal = Calendar.getInstance();
Date db = cal.getTime();
cal.add(Calendar.MONTH, - Einstellungen.getEinstellung().getUnterdrueckungLaenge());
Date dv = cal.getTime();
String sql = "SELECT buchungsart.* from buchungsart, buchung ";
sql += "WHERE buchung.buchungsart = buchungsart.id ";
sql += "AND buchung.datum >= ? AND buchung.datum <= ? ";
sql += "ORDER BY nummer";
Logger.debug(sql);
ResultSetExtractor rs = new ResultSetExtractor()
{
@OverRide
public Object extract(ResultSet rs) throws RemoteException, SQLException
{
ArrayList list = new ArrayList<>();
while (rs.next())
{
list.add(
(Buchungsart) service.createObject(Buchungsart.class, rs.getString(1)));
}
return list;
}
};
ArrayList ergebnis = (ArrayList) service.execute(sql, new Object[] { dv, db },
rs);
buchungsarten = new SelectInput(ergebnis, null);
buchungsarten.setValue(null);
buchungsarten.setAttribute("nrbezeichnung");
buchungsarten.setPleaseChoose("Bitte Buchungsart auswählen");
buchungsarten.addListener(new Listener()
{
@OverRide
public void handleEvent(Event event)
{
status.setValue("");
}
});
return buchungsarten;
}

@JohannMaierhofer
Copy link
Author

Der Vorschlag funktioniert. Allerdings sind jetzt Buchungsklassen so oft im Menü wie es entsprechende Buchungen gibt. Ich muss noch filtern damit ein Eintrag nur einmal vorkommt.
Aber Danke schon mal.

@JohannMaierhofer
Copy link
Author

Habe den Kommentar von dippeal implementiert

@willuhn willuhn merged commit bc02480 into openjverein:master Jan 26, 2024
@JohannMaierhofer JohannMaierhofer deleted the filterBuchungsartDialog branch January 26, 2024 15:03
JohannMaierhofer added a commit to JohannMaierhofer/jverein that referenced this pull request Feb 1, 2024
Habe auch die anderen Stellen aus Feature openjverein#104 vereinfacht um doppelte Einträge bei der Datenbank Abfrage zu verhindern.
dippeal pushed a commit that referenced this pull request Feb 8, 2024
* Zwischenstand

* Feature Gegenbuchung

* kleine Optimierung

* Auch Mitgliedskonto entfernen

* Resolve comments

* Use DISTINCT

* Kommentare gelöst

Habe auch die anderen Stellen aus Feature #104 vereinfacht um doppelte Einträge bei der Datenbank Abfrage zu verhindern.

* Remove Sub-Select

* Change Update Version 429 to 430

* konto aus query entfernt

* Fertige Buchungsartabfrage

* Fix Sort und Formatter

* Fix Filter in Combo Box

* Neue Buchung bei Action

* Verbessere Buchungsart Eingabe

* Update Schleife

* Update Schleife in KontoKontrol

* Entferne Dateien die nicht zum Feature gehören
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants