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 81 commits into
base: feature-3.1.0
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
@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.

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 hab nochmal den Code durchgeschaut. Ich hab aber gemerkt, dass du noch nicht fertig bist die bisherigen Kommentare einzuarbeiten. Trotzdem schicke ich schon mal die neuen Anmerkungen.
Melde dich wenn du alles umgesetzt hast, dann schaue ich es nochmal an.

Copy link

Choose a reason for hiding this comment

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

Bitte durch die neue NewAction ersetzen: new NewAction(View.class, DBObject.class)

Copy link
Author

Choose a reason for hiding this comment

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

Geht nicht, da WirtschaftsplanungZeile keine Unterklasse von DBObject ist

@dippeal dippeal changed the base branch from master to feature-3.1.0 February 9, 2025 18:46
@mbmueller
Copy link
Author

Habe jetzt alle Anmerkungen eingearbeitet, mit 3 Ausnahmen:

  • (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)
  • Bei der Ausgabe wäre es gut die Vorjahresdaten mit auszugeben. Eventuell auch einstellbar mit mehreren Jahren.
  • 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

@mbmueller mbmueller requested a review from lenilsas February 14, 2025 11:33

try
{
//noinspection unchecked

Choose a reason for hiding this comment

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

Das ist wohl spezifisch für deine IDE, in Eclipse gibt das Warnings. Da sollte das vor die Methode gesetzt werden:
@SuppressWarnings("unchecked")
public void starteAuswertung...

{
public WirtschaftsplanungListMenu()
{
addItem(new CheckedContextMenuItem("Duplizieren", new WirtschaftsplanDuplizierenAction(), "edit-copy.png"));

Choose a reason for hiding this comment

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

Wie sonst üblich sollte hier das gleiche stehen was auch bei dem Doppelklick passiert. Also ein "Bearbeiten" Eintrag.

{
public WirtschaftsplanungMenu(int art, WirtschaftsplanungControl control)
{
addItem(new BuchungsklasseItem("Buchungsart hinzuf�gen", new WirtschaftsplanungAddBuchungsartAction(control, art), "list-add.png"));

Choose a reason for hiding this comment

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

Wie sonst üblich sollte hier das gleiche stehen was auch bei dem Doppelklick passiert. Also ein "Bearbeiten" Eintrag und nur bei Posten aktiv.

@JohannMaierhofer
Copy link

Bei den Actions gibt es noch Probleme:

  • Bei Buchungsart hinzufügen kommt es zu eine Fehlermeldung wenn man den Close Button (Kreuz rechts oben) im Dialog drückt
  • Bei Posten bearbeiten kommt es zur Exception wenn man ESC oder Abbrechen wählt. Hier muss die cancelled Exception abgefangen werden
  • Wenn man bei Posten hinzufügen den Close Button drückt wird ein Posten erzeugt, dass solte nicht sein

@JohannMaierhofer
Copy link

Du holst dir jetzt Buchungen aus allen Konten, auch aus denen über dem Limit. Ich habe mal ein Rücklagenkonto angelegt und eine Buchung erzeugt.
Die Buchungsart dafür wird bei dir angezeigt, das ist eigentlich klar, weil es hier keine Info gibt, dass sie für Rücklagen ist. Es wird aber auch der Istbetrag der Buchung aus dem Rücklagenkonto angezeigt.
Das finde ich eigentlich kein Problem, warum sollte man nicht auch Rücklagen planen können. Im Buchungsklassensaldo tauchen die natürlich nicht auf, aber das macht ja auch nichts. Darum finde ich das jetzt ganz ok so.
Etwas unschön ist nur, dass die Rücklagen Beträge mit in den "Einnahmen Ist" auftauchen. Das verfälscht natürlich den Wert etwas weil die Zuführungen zu den Rücklagen keine Einnahmen sind. Theoretisch könnte man Buchungsarten die eine Buchung aus Konten über dem Limit haben etwas getrennt darstellen und aus den Einnahmen herausnehmen.

Wenn das so bleibt, wäre ich dafür jetzt doch noch zwei Kontoarten über dem Limit einzuführen. Einmal "Verbindlichkeiten" und "Forderungen". Das sind ja etwas was man haben kann aber nicht in eine einfache Buchführung eingeht weil dort das Zuflussprinzip gilt. Aber mit der Kontoart über dem Limit könnte man hier Buchungen eintragen um sie zu dokumentieren.
Ich glaube das löst dann eigentlich auch schon das Problem mit dem Leistungsdatum. So wie ich das verstanden habe möchte man z.B. Hallennutzungsgebühren die im GJ anfallen aber erst im nächsten Jahr abgebucht werden schon im aktuellen GJ in Plan als Istausgaben sehen. Das würde dann ganz einfach gehen wenn man den Betrag im Verbindlichkeitskonto führt. Es zeigt, dass man eine Verbindlichkeit hat die später mal verbucht wird. Im Wirtschaftplan wäre die Buchung mit aktueller Implementierung dann als Istbetrag schon sichtbar. Du könntest dann auch einen Schalter machen mit dem man diese beiden Konten ein und ausblenden kann, wenn man das möchte. Ich denke das könnte dann hier auch reichen und man bräuchte das garnicht in anderen Teilen der SW berücksichtigen. Und wenn man das dann doch noch woanders möchte muss man es dort halt spezifisch implementieren.

@JohannMaierhofer
Copy link

Jetzt sehe ich gerade, Dass die Zuführungen zur Rücklage zwar im Einnahmen Bereich angezeigt wird aber nicht im "Einnahmen Ist" enthalten ist. Das würde dann eigentlich passen.

@JohannMaierhofer
Copy link

Ich fände es noch praktisch, wenn man im Übersicht Bereich die zwei grünen Pfeile hätte, so wie bei den Filtern oder den Salden ist. Dann könnte man sehr einfach zwischen den Geschäftsjahren wechseln ohne in die Liste zurück zu müssen.

@JohannMaierhofer
Copy link

Nachdem wir jetzt neue Icons unter Buchführung haben könnte man auch für die Wirtschaftplanung ein schöneres nehmen. Wie wäre es mit dem x-office-spreadsheet.png aus Hibiscus?
x-office-spreadsheet

@JohannMaierhofer
Copy link

  • 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

Das hier könnte man auch später in einem eigenen PR machen.

@JohannMaierhofer
Copy link

PS: Die neuen DB TAbellen müssen noch in den Diagnose Backup Export aufgenommen werden.

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