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

Wirtschaftsplan #525

Open
wants to merge 74 commits into
base: master
Choose a base branch
from

Conversation

mbmueller
Copy link

Closes #434
Depends on #518

@mbmueller mbmueller added enhancement New feature or request blocked Depends on another feature or request labels Dec 11, 2024
@mbmueller mbmueller removed help wanted Extra attention is needed blocked Depends on another feature or request labels Jan 28, 2025
@mbmueller mbmueller self-assigned this Jan 28, 2025
@mbmueller mbmueller marked this pull request as ready for review January 28, 2025 11:06
@mbmueller mbmueller enabled auto-merge (squash) January 28, 2025 11:06
@mbmueller
Copy link
Author

PR ist jetzt bereit für Review.

Copy link

@lenilsas lenilsas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich habe erstmal im Schnelldurchgang den Code und die Funktion reviewed.

  • Es fehlt noch das Menu im ListView
  • Ich würde bei der Planung gerne die Sollbeträge direkt bei der Buchungsart eintragen können ohne Positionen erstellen zu müssen. Wenn man es weiter aufschlüsseln möchte finde ich die Option gut, bei mir wäre das jedoch meistens nicht der Fall und dadurch unnötig umständlich.
  • In den Auswertungen fehlen die Ist-Beträge
  • (Es wäre schön, die Beträge direkt in der Tabelle einzutragen ohne Dialog. Beim TablePart geht das, beim TreePart leider nicht. Ich schaue mal ob man das ermöglichen könnte)
  • Das erstellen eines Wirtschaftsplan auf Basis des letzten wäre schön (Duplizieren)
  • Bei der Ausgabe wäre es gut die Vorjahresdaten mit auszugeben. Eventuell auch einstellbar mit mehreren Jahren.

{
try
{
WirtschaftsplanungNeuDialog neuDialog = new WirtschaftsplanungNeuDialog();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warum muss hier der Zeitraum in einem Dialog abgefragt werden? Mann kann ihn beim neu erstellen doch auch direkt in der View eintragen.

import java.util.ArrayList;
import java.util.List;

public class WirtschaftsplanungView extends AbstractView
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In der View sollten möglichst nur das Aussehen sein ohne Actions

import java.util.List;
import java.util.Map;

public class WirtschaftsplanungPDF
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beim erstellen der Auswertung muss vorher gespeichert werden, sonst verschwinden die ungespeicherten Eingaben.

control.getAusgaben();
}
}
catch (Exception e)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die OperationCancelException muss aufgefangen und ignoriert werden. Auch bei den anderen aufrufen von Dialogen

@mbmueller
Copy link
Author

mbmueller commented Feb 3, 2025

  • Ich würde bei der Planung gerne die Sollbeträge direkt bei der Buchungsart eintragen können ohne Positionen erstellen zu müssen. Wenn man es weiter aufschlüsseln möchte finde ich die Option gut, bei mir wäre das jedoch meistens nicht der Fall und dadurch unnötig umständlich.

Das müsste dann aber in den Einstellungen aktivierbar sein, sonst funktioniert das mit dem Datenmodell nicht mehr. Wie störend ist es denn einfach immer einen Posten zu erstellen? Diesen kann man ja danach immer einklappen.

@mbmueller
Copy link
Author

  • n den Auswertungen fehlen die Ist-Beträge

In der PDF Auswertung ist das kein Problem, in der CSV Auswertung lässt sich das leider nicht darstellen

  • Bei der Ausgabe wäre es gut die Vorjahresdaten mit auszugeben. Eventuell auch einstellbar mit mehreren Jahren.

Meinst du nur bei den Exporten? Dann müsste man noch überlegen, wie man den Vor-Zeitraum (muss ja kein Jahr sein) definiert.
Habe ich beispielsweise ein halb-jährliche Planung, soll dann das vorherige Halbjahr genommen werden, oder das selbe Halbjahr aus dem Vorjahr.

Für beides dann die Frage, sollen Ist-Beträge, für die kein Soll besteht ignoriert werden oder mit SOLL = 0, ausgewertet werden.

@JohannMaierhofer
Copy link

  • Ich würde bei der Planung gerne die Sollbeträge direkt bei der Buchungsart eintragen können ohne Positionen erstellen zu müssen. Wenn man es weiter aufschlüsseln möchte finde ich die Option gut, bei mir wäre das jedoch meistens nicht der Fall und dadurch unnötig umständlich.

Das müsste dann aber in den Einstellungen aktivierbar sein, sonst funktioniert das mit dem Datenmodell nicht mehr. Wie störend ist es denn einfach immer einen Posten zu erstellen? Diesen kann man ja danach immer einklappen.

Ich mache meine Planung auf der Ebene der Buchungsarten. Da wäre es natürlich auch schöner wenn man dann keine Positionen erstellen müsste.
Ein Schalter in den Einstellungen wäre für mich ok.

@JohannMaierhofer
Copy link

Ich habe gerade angefangen es auszuprobieren

  • Wenn man bei Einnahmen und Ausgaben etwas hinzufügt wird das Feld nicht angepasst. Ich muss erst das ganze Window etwas zoomen damit der refresh passiert. Warum lässt man die Rahmen bei Einnahmen und Ausgaben nicht gleich bis nach unten gehen, dann hat man das Update Problem nicht. Das geht wenn man true einfügt:
    LabelGroup(group.getComposite(), "Einnahmen", true) und LabelGroup(group.getComposite(), "Ausgaben", true)
  • Wenn ich speichere kommt die Meldung "Neuer Wirtschaftsplan enthält keine Planung" obwohl ich eine Buchungsklasse und Buchungsart eingefügt habe. Das liegt wohl daran wenn noch keine Position existiert. Aber warum kann man das nicht auch ohne diese Positionen speichern?
  • Mit Position kann ich speichern. Wenn ich die Position lösche kann ich wieder speichern. Geht man aus der Wirtschaftsplanung raus, ist aber dann der Eintrag des Wirtschaftsplan in der Liste verschwunden. Erzeugt man ihn neu ist aber die Klasse und die Buchungsart noch vorhanden. Scheinbar gab es noch Daten zum Wirschaftsplan in der DB obwohl er nicht angezeigt wird
  • Löschen eine Buchungsart geht bei mir nicht, zumindest bei einem Test war es so. Scheint aber nicht immer so zu sein
  • Irgendwie ist es auch seltsam, wenn ich bei Buchungsklasse auf Löschen gehe werden zwar die Positionen gelöscht aber die Klasse und die Buchungsart bleiben im Baum. Wenn man dann den View wechselt ist der Wirtschaftsplan verschwunden. Legt man ihn neu an ist die Buchungsklasse und Buchungsart auch wieder da. Es ist auch unüblich, dass Löschen bei der Buchungsklasse nicht die Buchungsklasse löscht sondern die Positionen. Das gleiche passiert wenn man die Buchungsart auswählt. Ich würde erwarten, dass beim Buchungsart Context die Buchungsart gelöscht wird und bei Buchungsklasse die Buchungsklasse evtl. mit der Rückfrage ob bestehende Kinder auch mit gelöscht werden sollen
  • Warum muss ich die Einträge alle manuell ezeugen. Wenn es eine feste Zuordnung von Buchungsart zu Buchungsklasse gibt kann man den Baum doch automatisch erzeugen indem man alle aktiven/Auto Buchungsarten erzeugt. Das Query wäre wie beim Buchungsart Auswahl Dialog. Ohne feste Zuordnung könnte man auch alle aktiven/Auto Buchungsarten erzeugen und bei Buchungsklasse den Default aus der Buchungsart nehmen. Wenn es keinen Default gibt macht man halt ein "Nicht zugeordnet". Das würde das erstellen doch wesentlich vereinfachen. Und bei Buchungsart gibt es ja das Status Flag
  • Bezüglich der Positionen könnte man doch die erste Position automatisch mit der Buchungsart mit erzeugen. Da muss man halt bei Buchungsart den ersten Betrag mit eingeben. Das würde dann auch denen helfen, die keine weiteren Positionen planen wollen
  • Mir fehlt irgendwie noch ein zusätzlicher View nach der Art des Buchungsklassensaldo mit zusätzlichen Spalten für die Planwerte wie z.B. "Plan 2024", "Plan 2025" wenn das aktuelle Jahr 2024 ist. Man würde man halt schauen ob es zum Bis Datum im aktuellen Buchungsklassensaldo einen Wirtschaftsplan gibt und da die Daten raus holen. Dann mit dem angezeigten Intervall nach vorne gehen und schauen ob es wieder einen Plan gibt und dann die Spalte dazu einfügen. In den Einstellungen könnte man dann noch einstellen on man auch Plan und Ist des letzten Jahres als Spalten aufnehmen soll. Diese Liste könnte man dann in CSV und PDF ausgeben so wie es im Buchungsklassensaldo auch ist. Dann hätte man auch in Reports die Ist Daten. Bei mir schaut ein Wirschschaftsplan auch so aus, es ist die Saldo Liste mit zusätzlichen Spalten für die Planung.
    Man könnte aber auch überlegen ob man gleich den bestehenden Buchungsklassensaldo View erweitert und die Spalten werden dann nur bei aktivierter Wirtschaftsplanung angezeigt

@JohannMaierhofer
Copy link

JohannMaierhofer commented Feb 4, 2025

Man könnte aber auch überlegen ob man gleich den bestehenden Buchungsklassensaldo View erweitert und die Spalten werden dann nur bei aktivierter Wirtschaftsplanung angezeigt

Man bräuchte in diesem Fall dann womöglich doch noch eine weitere Option um die zusätzlichen Spalten ein und aus zu schalten. Bei einem Report für die Steuererklärung würde man ja keine Plandaten im Report wollen sondern das Buchungsklassensaldo so wie es heute ist.

@mbmueller
Copy link
Author

  • Wenn man bei Einnahmen und Ausgaben etwas hinzufügt wird das Feld nicht angepasst. Ich muss erst das ganze Window etwas zoomen damit der refresh passiert. Warum lässt man die Rahmen bei Einnahmen und Ausgaben nicht gleich bis nach unten gehen, dann hat man das Update Problem nicht. Das geht wenn man true einfügt:
    LabelGroup(group.getComposite(), "Einnahmen", true) und LabelGroup(group.getComposite(), "Ausgaben", true)

Geändert. Wusste nur nicht wie das geht.

  • Irgendwie ist es auch seltsam, wenn ich bei Buchungsklasse auf Löschen gehe werden zwar die Positionen gelöscht aber die Klasse und die Buchungsart bleiben im Baum. Wenn man dann den View wechselt ist der Wirtschaftsplan verschwunden. Legt man ihn neu an ist die Buchungsklasse und Buchungsart auch wieder da. Es ist auch unüblich, dass Löschen bei der Buchungsklasse nicht die Buchungsklasse löscht sondern die Positionen. Das gleiche passiert wenn man die Buchungsart auswählt. Ich würde erwarten, dass beim Buchungsart Context die Buchungsart gelöscht wird und bei Buchungsklasse die Buchungsklasse evtl. mit der Rückfrage ob bestehende Kinder auch mit gelöscht werden sollen

Ja, du hast Recht, das ist nicht so ganz intuitiv. Dadurch das auch Buchungsarten angezeigt werden bei denen es eine Buchung im zugehörigen Zeitraum gibt mit den IST-Werten angezeigt werden, deshalb kann ich nicht einfach den kompletten Node löschen, da sonst auch die IST-Auswertung mit gelöscht werden würde. Man könnte natürlich sagen, dass wenn ist == 0, wird die komplette Node gelöscht, ansonsten nur die Kinder.

  • Warum muss ich die Einträge alle manuell ezeugen. Wenn es eine feste Zuordnung von Buchungsart zu Buchungsklasse gibt kann man den Baum doch automatisch erzeugen indem man alle aktiven/Auto Buchungsarten erzeugt. Das Query wäre wie beim Buchungsart Auswahl Dialog. Ohne feste Zuordnung könnte man auch alle aktiven/Auto Buchungsarten erzeugen und bei Buchungsklasse den Default aus der Buchungsart nehmen. Wenn es keinen Default gibt macht man halt ein "Nicht zugeordnet". Das würde das erstellen doch wesentlich vereinfachen. Und bei Buchungsart gibt es ja das Status Flag
  • Bezüglich der Positionen könnte man doch die erste Position automatisch mit der Buchungsart mit erzeugen. Da muss man halt bei Buchungsart den ersten Betrag mit eingeben. Das würde dann auch denen helfen, die keine weiteren Positionen planen wollen

Wäre das denn ausreichend (auch für @lenilsas), wenn ich die Implementierung folgerndermaßen ändere:

  • Alle aktiven Buchungsarten werden automatisch generiert
  • Zusätzlich wird für alle Buchungsarten, denen keine Positionen zugeordnet sind, eine Dummy-Position (Name evtl. "Allgemein") angelegt
  • Dafür wird es nicht implementiert in den Einstellungen festlegen zu können, ob die Planung in Positionen unterteilt wird oder nicht.
    Diese Implementierung würde Konsistenz-Probleme beim Wechsel zwischen den Möglichkeiten vorbeugen, insbesondere von Unterteilt -> Nicht-Unterteilt

Man bräuchte in diesem Fall dann womöglich doch noch eine weitere Option um die zusätzlichen Spalten ein und aus zu schalten. Bei einem Report für die Steuererklärung würde man ja keine Plandaten im Report wollen sondern das Buchungsklassensaldo so wie es heute ist.

Bei dem Vorgehen bräuchte aber nur bei der PDF Auswertung 2 Möglichkeiten (Also mit Plan oder ohne)

Ich habe mich erstmal den Code-Anmerkungen angenommen, die inhaltlichen Anmerkungen werde ich im laufe der nächsten Woche umsetzen.

@JohannMaierhofer
Copy link

Wäre das denn ausreichend (auch für @lenilsas), wenn ich die Implementierung folgerndermaßen ändere:\n\nAlle aktiven Buchungsarten werden automatisch generiert\nZusätzlich wird für alle Buchungsarten, denen keine Positionen zugeordnet sind, eine Dummy-Position (Name evtl. "Allgemein") angelegt\nDafür wird es nicht implementiert in den Einstellungen festlegen zu können, ob die Planung in Positionen unterteilt wird oder nicht.\nDiese Implementierung würde Konsistenz-Probleme beim Wechsel zwischen den Möglichkeiten vorbeugen, insbesondere von Unterteilt -> Nicht-Unterteilt

Ich denke, das wäre ein akzeptabler Kompromiss. Das Umschalten könnte wie du schon sagst problematisch sein.
Ich würde der automatisch generierten Position den gleichen Namen wie den von der Buchungsart geben.

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.

Feature: Wirtschaftsplanung
3 participants