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

Sollbuchungen zusammenfassen, Rechnung überarbeitet #547

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

Conversation

lenilsas
Copy link

Wie in #513 besprochen habe ich den Workflow bei den Rechnungen überarbeitet.

  • Bei der Abrechnung gibt es jetzt zusätzliche Optionen
    • "Sollbuchungen zusammenfassen". Hier werden alle Sollbuchungen zu einer zusammengefasst
    • "Rechnungen erstellen". Für jede Sollbuchung wird eine Rechnung erstellt
    • "Rechnung Formular". Das zu verwendende Rechnungsformular
    • "Rechnung Text". Bei Rechnungserstellung wird dieser Text für den Verwendungszweck der Sollbuchung verwendet
  • Es gibt eine neue Tabelle "Sollbuchungspositionen" in der alle Positionen (Zusatzbeträge, (Sekundäre-)Beiträge) zu einer Sollbuchung gespeichert werden.
  • Bei Lastschriften werden automatisch Splitbuchungen (Istbuchungen) für die Zusammengefassten Sollbuchungen erstellt.
  • Die RechnungMap habe ich überarbeitet.
    • Ist und Differenz ist nicht mehr auf Positionsebene sondern nur auf Rechnugsebene verwendbar
    • Zahlungsgrund1 und Zahlungsgrund2 habe ich entfernt, da identisch mit Verwendungszweck bzw. leer (Es wird trotzdem noch gefüllt, aber als deprecated markiert)
    • Die Mapeinträge habe ich von mitgliedskonto-... zu rechnung-... umbenannt, die alten sind noch als deprecated vorhanden
  • In der RechnungsView werden nun auch Ist, Differenz und Zahlungsweg angezeigt werden
  • Rechnungssuche habe ich auch für Namensteile erlaubt

Außerdem habe ein folgende Änderungen gemacht die nicht direkt mit der Rechnung zusammenhängen

  • Beim Buchung getAbrechnungslauf wurde immer der Cache neu generiet statt nur die ID zu holen
  • Beim Cache habe ich eint touch() hinzugefügt, da sonst der Cache immer neu erstellt wird wenn das Erstellen des Caches länger als 10Sekunden dauert

Ein Paar Änderungen fehlen noch

  • Im Abrechnugnsvew müssen die neuen Felder dissabled werden wenn nicht verwendbar. Es ist die Frage ob "kompakte Abbuchung" und "Sollbuchungen zusammenfassen" zu einer Option zusammengefasst werde sollen.
  • Das Manuelle erstellen von Rechnungen ist noch nicht möglich
  • Das Automatisch erstellen der Rechnungen muss aus der RechnungView entfernt werden, da das nichtmehr dem aktuellen vorgehen entspricht
  • Der Mitgliedskonto Export muss überarbeitet werden
  • Manche Informationen werden aktuell doppelt gespeichert in Sollbuchungen und in Rechnungen. Man könnte aus der Rechnung Mitglied, Betrag und Zahlungsweg entfernen. Aus der Sollbuchung könnten Buchungsart und Buchungsklasse enternt werden (Da schon in den Sollbuchungspositionen enthalten)
  • Der Zähler bei den Formularen ist nicht mehr wirklich nötig, zumindes für Rechnungen da hier die Rechnungsnummer verwendet werden kann
    -Die AbrechnungslaufView müssen noch die neuen Parameter angezeigt werden

Gerne würde ich von euch schon mal hören, was ihr von dem aktuellen Stand haltet

@JohannMaierhofer
Copy link

Ich finde diese Lösung gut.

Das automatisch erstellen der Rechnungen aus dem RechnungView könnte man lassen, aber so abändern, dass es Rechnungen erstellt für Sollbuchungen die noch keine Rechnung haben. Also ähnlich wie das manuelle erstellen der Rechnung, nur halt für alle die die Filterkriterien erfüllen und noch keine Rechnung haben.

Folgendes ist mir beim kurzen rumspielen aufgefallen:

  • In der Sollbuchung ist bei den Sollbuchungspositionen die Spalte Buchungsklasse sichtbar. Sie erscheint doppelt wenn man SKR42 aktiviert.
  • Bei Lastschriften ist der Betrag bei der Gegenbuchung immer 0.
  • Hat die Sollbuchung nur einen Eintrag wird in der generierten Buchung die Buchungsart und Buchungsklasse nicht gesetzt.
  • Bei den generierten Splitbuchungen denke ich baucht man die Haupt- und Gegenbuchung nicht der Sollbuchung zuzuweisen. Das irritiert im Kontoauszug.
  • Beim Verwendungszweck in den erzeugten Splitbuchungen würde ich nicht den Zweck aus der Sollbuchung setzen sondern den aus den Sollbuchungspositionen. Auf die bezieht sich ja die Buchung. Den aus der Sollbuchung könnte man nur bei Splitbuchungen für die Haupt- und Gegenbuchung setzen.
  • Die Buchungsart und Buchungsklasse bräuchte man eigentlich nicht mehr in der Sollbuchung da sie in den Sollbuchungspositionen ist. Die Frage ist höchstens ob man Sollbuchungen ohne Positionen unterstützen will, so wie es momentan ist, wenn man manuell eine Sollbuchung erzeugt. Soll das so bleiben oder wird es da eine Möglichkeit geben Sollbuchungspositionen zu erzeugen?
  • In die gleiche Richtung geht, wenn man eine Buchung einer Sollbuchung zuordnen will und im Dialog in der zweiten Lasche ein Mitglied auswählt. Dann wird eine Sollbuchung ohne Sollbuchungsposition erzeugt. Sollte hier auch eine Sollbuchungsposition erzeugt werden?
  • Bei der Zuordnung einer Buchung zu einer vorhandenen Sollbuchung wird heute die Buchungsart und Buchungsklasse von der Sollbuchung übernommen wenn sie noch nicht in der Buchung gesetzt ist. Wenn man jetzt bei Überweisung die einzelnen Splitbuchungen zuweist wird momentan aus der Sollbuchung kopiert. Da ist aber nach der Abrechnung nichts gesetzt und evtl. kommt es ja weg. Eigentlich müsste man jetzt bei der Zuweisung die Sollbuchungspositionen auswählen können um die richtigen Buchungsarten und Buchungsklassen zu kopieren. Oder wir lassen dieses Feature halt weg, wobei es aber praktisch war.

@JohannMaierhofer JohannMaierhofer changed the title Soolbuchungn zusammenfassen, Rechnung überarbeitet Sollbuchungen zusammenfassen, Rechnung überarbeitet Dec 21, 2024
@lenilsas
Copy link
Author

  • In der Sollbuchung ist bei den Sollbuchungspositionen die Spalte Buchungsklasse sichtbar. Sie erscheint doppelt wenn man SKR42 aktiviert.

entfernt

  • Bei Lastschriften ist der Betrag bei der Gegenbuchung immer 0.

behoben

  • Hat die Sollbuchung nur einen Eintrag wird in der generierten Buchung die Buchungsart und Buchungsklasse nicht gesetzt.

geändert

  • Bei den generierten Splitbuchungen denke ich baucht man die Haupt- und Gegenbuchung nicht der Sollbuchung zuzuweisen. Das irritiert im Kontoauszug.

geändert

  • Beim Verwendungszweck in den erzeugten Splitbuchungen würde ich nicht den Zweck aus der Sollbuchung setzen sondern den aus den Sollbuchungspositionen. Auf die bezieht sich ja die Buchung. Den aus der Sollbuchung könnte man nur bei Splitbuchungen für die Haupt- und Gegenbuchung setzen.

Ich habe es bisher so umgesetzt, dass die Splitbuchungen nach Buchungsart und Klasse gruppiert erstellt werden, also ggf. mehrere Sollbuchungspositonen eine Splitbuchung ergeben. Daher kann ich hier nicht den Zweck der einzelnen Sollbuchungsposition verwenden

  • Die Buchungsart und Buchungsklasse bräuchte man eigentlich nicht mehr in der Sollbuchung da sie in den Sollbuchungspositionen ist. Die Frage ist höchstens ob man Sollbuchungen ohne Positionen unterstützen will, so wie es momentan ist, wenn man manuell eine Sollbuchung erzeugt. Soll das so bleiben oder wird es da eine Möglichkeit geben Sollbuchungspositionen zu erzeugen?

Das ist die Frage ob man manuell Sollbuchungen und Sollbuchungspositionen erzeugen können soll, das haben wir ja auch schon wo anders diskutiert. Grundsätzlich denke ich sollten sie über den Abrechnungslauf erstellt werden und es ist kein manuelles erstellen nötig. Es kann jedoch fälle geben wo es sinnvoll wäre.

  • In die gleiche Richtung geht, wenn man eine Buchung einer Sollbuchung zuordnen will und im Dialog in der zweiten Lasche ein Mitglied auswählt. Dann wird eine Sollbuchung ohne Sollbuchungsposition erzeugt. Sollte hier auch eine Sollbuchungsposition erzeugt werden?

habe ich so umgesetzt das eine Sollbuchungsposition erzeugt wird.

  • Bei der Zuordnung einer Buchung zu einer vorhandenen Sollbuchung wird heute die Buchungsart und Buchungsklasse von der Sollbuchung übernommen wenn sie noch nicht in der Buchung gesetzt ist. Wenn man jetzt bei Überweisung die einzelnen Splitbuchungen zuweist wird momentan aus der Sollbuchung kopiert. Da ist aber nach der Abrechnung nichts gesetzt und evtl. kommt es ja weg. Eigentlich müsste man jetzt bei der Zuweisung die Sollbuchungspositionen auswählen können um die richtigen Buchungsarten und Buchungsklassen zu kopieren. Oder wir lassen dieses Feature halt weg, wobei es aber praktisch war.

Hier habe ich auch das automatische Spliten implementiert. Allerdings nur wenn eine Buchung einer Sollbuchung zugeordnet wird, bei allen SollbuchungsPositionen die Buchungsart gesetzt ist und die Beträge gleich sind.

@lenilsas lenilsas linked an issue Dec 27, 2024 that may be closed by this pull request
@JohannMaierhofer
Copy link

Ich bekomme jetzt eine Exception beim Abrechnungslauf:
[Sat Dec 28 10:33:01 CET 2024][ERROR][bg-task:][de.jost_net.JVerein.gui.control.AbrechnungSEPAControl$3.run] error during operation
java.lang.ClassCastException: class java.lang.Long cannot be cast to class java.lang.String (java.lang.Long and java.lang.String are in module java.base of loader 'bootstrap')
at de.jost_net.JVerein.server.SollbuchungPositionImpl.getBuchungsartId(SollbuchungPositionImpl.java:112)
at de.jost_net.JVerein.io.SplitbuchungsContainer.autoSplit(SplitbuchungsContainer.java:342)
at de.jost_net.JVerein.io.AbrechnungSEPA.writeSollbuchung(AbrechnungSEPA.java:1274)

Buchungsart und Buchungsklasse sollten ein Long sein so wie in MitgliedskontoImp.

@JohannMaierhofer
Copy link

Das ist die Frage ob man manuell Sollbuchungen und Sollbuchungspositionen erzeugen können soll, das haben wir ja auch schon wo anders diskutiert. Grundsätzlich denke ich sollten sie über den Abrechnungslauf erstellt werden und es ist kein manuelles erstellen nötig. Es kann jedoch fälle geben wo es sinnvoll wäre.

Ja, da sollten wir uns weitere Meinungen einholen.
Wenn es weiter gewünscht ist könnte ich das Erzeugen der Sollbuchungspositionen auch implementieren um dich zu entlasten.

@JohannMaierhofer
Copy link

Da bei der Sollbuchung die Buchungsart und Buchungsklasse noch bei alten Sollbuchungen ausgewertet wird müssen wir sie wohl belassen. Ich würde sie am GUI aber dann nur anzeigen wenn die Sollbuchung keine Sollbuchungspositionen hat.

@lenilsas
Copy link
Author

Buchungsart und Buchungsklasse sollten ein Long sein so wie in MitgliedskontoImp.

habe ich korrigiert, auch gleich beim JVereinZahler

@lenilsas
Copy link
Author

Da bei der Sollbuchung die Buchungsart und Buchungsklasse noch bei alten Sollbuchungen ausgewertet wird müssen wir sie wohl belassen. Ich würde sie am GUI aber dann nur anzeigen wenn die Sollbuchung keine Sollbuchungspositionen hat.

Ich überlege, ob ich per UpdateScript für alle bestehenden Sollbuchungen eine Sollbuchungsposition erstellen soll. Dan haben wir eine einheitliche Datengrundlage und müssen nicht die verschiedenen Versionen berücksichtigen. Das wäre dann allerdings ein Update das nicht rückgängig gemacht werden könnte (es sei den man lässt die Spalten vorerst in der DB bestehen ohne sie zu nutzen.)

@JohannMaierhofer
Copy link

Ich überlege, ob ich per UpdateScript für alle bestehenden Sollbuchungen eine Sollbuchungsposition erstellen soll. Dan haben wir eine einheitliche Datengrundlage und müssen nicht die verschiedenen Versionen berücksichtigen. Das wäre dann allerdings ein Update das nicht rückgängig gemacht werden könnte (es sei den man lässt die Spalten vorerst in der DB bestehen ohne sie zu nutzen.)

Ich habe das gleiche Problem mit der Anlagenkonto Checkbox beim Konto. Das boolean ist jetzt durch ein Integer ersetzt. Ich habe das boolean flag auch gelöscht. So kann man nicht mehr zurück. Ich müsste das Flag auch belassen.

Ich habe das in #482 kommentiert.

@JohannMaierhofer
Copy link

JohannMaierhofer commented Dec 29, 2024

Ich habe noch einige Probleme entdeckt:

  • Wenn ein Mitglied B im Familienverband bei Zahlung auf Vollzahler A konfiguriert ist werden alle Sollbuchungen bei A eingetragen. Das gilt aber nur für Lastschriften. Bei den Sollbuchungen müssen sie dem richtigen Mitglied zugeordnet werden. Die Gruppierung muss also bei Lastschriften anders sein als bei den Sollbuchungen. Wer eigentlich die Rechnung bekommen soll war ja noch offen. A würde halt zwei Rechnungen bekommen wenn man sie dem Zahler schickt. Da bräuchte man aber noch das Feature Spendenbescheinigung auf Zahler ausstellen #493. Ansonsten bekommt halt B die Rechnung.
  • Beim Zweck in der Lastschrift an A sieht man nur beim Beitrag dass er für B ist. Beim Zusatzbetrag fehlt die Info dass er für B ist.
  • Beim Autosplit beim Zuweisen einer Sollbuchung wird nicht geprüft ob die Buchung Teil einer Splitbuchung ist. In dem Fall dürfte man keine neue Splitbuchung erzeugen sondern müsste die Buchung durch die gesplitteten Buchungen innerhalb der vorhandenen Splitbuchung ersetzen. Momentan gibt es eine Exception. Das tritt ein wenn im Fall oben A und B per Überweisung bezahlen. Dann zahlt A die gesamte Summe. Diese muss ich splitten in den Teil für A und für B. Wenn ich dann die Sollbuchung den gesplitteten Beträgen zuweise versucht der AutoSplit wieder zu splitten wenn der gesplitte Betrag der Sollbuchung entspricht.

@lenilsas
Copy link
Author

lenilsas commented Jan 6, 2025

Mir ist noch aufgefallen, dass die Statistikdaten bei reinen Überweisungsabrechnungsläufen nun "Buchungen Anzahl: 0; Summe: 0,00 EUR" anzeigen. Das die Lastschriftzeile darunter 0 enthält ist klar. Nur die Buchungsanzahl und -summe ist nicht 0.

Ja, das ist nicht intuitiv, hier habe ich jedoch nichts geändert. Die Zahlen bedeuten nur welche Buchungen beim Abrechnungslauf erstellt wurden. Da diese nur bei Lastschriften erstellt werden, werden die Überweisungen nicht mitgezählt. Eigentlich müssten hier besser die Summe und anzahl der Sollbuchungen statt der Buchungen stehen. Soll ich das ändern?

@tolot27
Copy link
Member

tolot27 commented Jan 6, 2025

Mir ist noch aufgefallen, dass die Statistikdaten bei reinen Überweisungsabrechnungsläufen nun "Buchungen Anzahl: 0; Summe: 0,00 EUR" anzeigen. Das die Lastschriftzeile darunter 0 enthält ist klar. Nur die Buchungsanzahl und -summe ist nicht 0.

Ja, das ist nicht intuitiv, hier habe ich jedoch nichts geändert. Die Zahlen bedeuten nur welche Buchungen beim Abrechnungslauf erstellt wurden. Da diese nur bei Lastschriften erstellt werden, werden die Überweisungen nicht mitgezählt. Eigentlich müssten hier besser die Summe und Anzahl der Sollbuchungen statt der Buchungen stehen. Soll ich das ändern?

Ja, wenn es keinen Aufwand macht. Gehört ja irgendwie dazu. Alternativ als Issue extrahieren und separat behandeln. Du hast hier eh schon wahnsinnig viel Arbeit reingesteckt und der PR ist schon recht groß geworden.

@tolot27
Copy link
Member

tolot27 commented Jan 6, 2025

Ja, das stimmt. Ich würde in der Doku und den Releasnotes darauf hinweisen. Oder meinst du wir sollten noch im View ein Hinweisfeld machen?

Ich würde es in der View machen, so wie das "*)" hinter den drei ... nach der Stichtagsdatumsauswahl, allerdings direkt hinter Stichtag¹ und "Rechnung(en) erstellen²" mit Hochzahlen, da es so besser auffindbar ist. Und dann unten:

¹für die Berechnung, ...
²Es wird für jede (zusammengefasste) Sollbuchung eine separate Rechnung erstellt.

Man kann es natürlich auch ausklammern und schreiben: "Es wird für jede Sollbuchung eine separate Rechnung je Rechnungsempfänger erstellt. Ist 'Sollbuchungen zusammenfassen' aktiviert, wird nur eine Rechnung je Rechnungsempfänger erstellt und dabei die ursprünglichen Sollbuchungen als Positionen aufgeführt."
Letzteres ist jedoch eher was für die Doku.

@tolot27
Copy link
Member

tolot27 commented Jan 6, 2025

Ich verstehe es so, dass man erst den Abrechnungslauf durchführt und damit die Forderungen(Sollbucuhngen) generiert. Das also normalerweise erst danach bezahlt wird. Das Datum ist in erster Linie dafür gedacht zu wann die Lastschriften eingezogen werden. Wie würdest du es dir den wünschen das das Datum verwendet wird?

Dadurch, dass der Abrechnungslauf nun "aufgebohrt" wurde – was ich sehr begrüße –, ist das Datum auch automatisch das Rechnungsdatum. Das ist dann insbesondere buchhalterisch relevant bzw. dann wenn man die Zahlungsfälligkeit von Rechnungen mit berücksichtigen möchte.
Mit einem separaten PR könnte man die Optionen etwas gruppieren und sobald man eine GUI-Option "SEPA" anklickt, die SEPA-spezifischen Optionen (SEPA Fälligkeit, SEPA-Datei drucken, Abbuchungsausgabe, [Kompakte Abbuchung(en)]) anzeigen lassen. Noch komfortabler wäre es, wenn erst nach dem "Starten" eines Abrechnungslaufs und bei vorhandener Zahlart "Lastschrift" diese Optionen abgefragt werden. Dann würde auch bei reinen reinen Überweisungsrechnungslauf im Status unten nicht angezeigt werden, das Lastschriften erzeugt werden.
Aber lass uns dass separat diskutieren.

@lenilsas
Copy link
Author

lenilsas commented Jan 6, 2025

ich habe beide Änderungen gemacht

@@ -69,7 +69,9 @@ public void bind() throws Exception
group.addLabelPair("Abbuchungsausgabe", control.getAbbuchungsausgabe());
group.addSeparator();
group.addText(
"*) f�r die Berechnung, ob ein Mitglied bereits eingetreten oder ausgetreten ist. ",
"�) F�r die Berechnung, ob ein Mitglied bereits eingetreten oder ausgetreten ist. "
+ "Und f�r Berechnung ob Zusatzbetr�ge f�llig sind.\n"
Copy link
Member

Choose a reason for hiding this comment

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

Die schließende Klammer bei den Fußnotentexten ist eigentlich nicht notwendig (da oben auch nicht), stört jedoch
nicht.

tolot27
tolot27 previously approved these changes Jan 6, 2025
@tolot27
Copy link
Member

tolot27 commented Jan 6, 2025

Vielen vielen Dank für diesen komplexen PR. Das erleichtert mir die Arbeit sehr. 😄

@JohannMaierhofer
Copy link

Mit einem separaten PR könnte man die Optionen etwas gruppieren und sobald man eine GUI-Option "SEPA" anklickt, die SEPA-spezifischen Optionen (SEPA Fälligkeit, SEPA-Datei drucken, Abbuchungsausgabe, [Kompakte Abbuchung(en)]) anzeigen lassen.

Da kommen mir jetzt auch ein paar Gedanken dazu. Du und evtl. auch JVerein scheinen SEPA mit Lastschrift gleich zu setzen. Es gibt aber SEPA Lastschrift und SEPA Überweisung. Und die SEPA Fälligkeit die man hier eingibt gilt nicht nur für Lastschrift. Auch bei Rechnungen mit Überweisung steht dieses Datum als Fälligkeitsdatum im XML-Teil der Rechnung.

Um da etwas Verwirrung vorzubeugen wäre es vermutlich gut die Namen zu ändern. Also "SEPA Fälligkeit" einfach in "Fälligkeit" oder etwa "Fälligkeit der Forderung" etc. umzubenennen. Und "Sepa-Datei drucken" in "Lastschrift-PDF erstellen".

Ob man dann später für "Kompakte Abbuchung" und "Lastschrift-PDF erstellen" noch einen extra Schalter braucht könnte etwas zu viel sein.

@JohannMaierhofer
Copy link

JohannMaierhofer commented Jan 7, 2025

Wenn man das Editieren der Sollbuchung noch nicht rein nimmt, sollte dafür aber im Sollbuchung Liste View der "Neu" Button und beim Mitglied im Mitgliedskonto Menü der Eintrag "Neue Sollbuchung" erst einmal auskommentiert werden.
Damit kann man ja eine neue Sollbuchung erzeugen aber eben ohne die Sollbuchungspositionen. Das sollte aber nicht sein.

@JohannMaierhofer
Copy link

JohannMaierhofer commented Jan 7, 2025

Dann jetzt noch ein Kommentar zur Steuer. Da das Feature für die Trennung von Steuersatz und Buchungsart ein eigenes Feature werden sollte und wir wegen einiger Fehler in der 2.8.23 schnell eine neue Version herausgeben sollten, bei der natürlich dieses Feature hier dabei sein sollte, sollte die aktuelle Version von einem Steuersatz ausgehen der in der Buchungsart konfiguriert ist, so wie es in allen anderen Teilen der SW auch ist.

Darum sollte im Sollbuchung Detail View in der Tabelle der Sollbuchungspositionen die Spalte Steuersatz auskommentiert werden. Die wird ja später nur angezeigt wenn die Option der nicht festen Zuordnung zur Buchungsart selektiert ist.

Um dann aber mit der aktuellen Funktionalit beim Splitten einer Buchung konform zu sein müsste im AutoSplit wenn die Splitbuchungsposition eine Buchungsart mit Steuersatz hat ein Spliteintrag für den Netto Betrag erzeugt werden und einer für die Steuer mit der Steuer Buchungsart. Ich denke, das sollte noch gemacht werden weil wir sonst ein inkonsistentes Verhalten haben.

PS: Da kommt mit dann auch etwas für das neue Feature. Wenn man den Steuersatz aus der Buchungsart herausnimmt, dann muss man gleichzeitig auch die Steuer Buchungsart herausnehmen. Also muss "Steuer Buchungsart" auch ein Attribut der Sollbuchungsposition werden und auch an allen anderen Stellen wo Buchungsart vorkommt wie z.B. in der Buchung.

else {
GUI.getStatusBar().setSuccessText(erstellt + " Rechnung(en) erstellt"
+ (skip > 0 ? ", " + skip + " vorhandene übersprungen." : "."));
}

Choose a reason for hiding this comment

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

Hier sollte ein Refresh des SollbuchungListe View bzw. der Tabelle gemacht werden. Sonst werden in der Spalte Rechnung die neuen Nummern nicht angezeigt.

Copy link
Author

Choose a reason for hiding this comment

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

stimmt, ich habe ein reload eingebaut

@JohannMaierhofer
Copy link

Ich habe eine Abrechnung gemacht wo ein Zusatzbeitrag eine Buchungsart mit Steuersatz hatte.
Im XML der Rechnung wird dieser Betrag aber als Netto ausgegeben und keine Steuer ausgewiesen.

@JohannMaierhofer
Copy link

Um dann aber mit der aktuellen Funktionalit beim Splitten einer Buchung konform zu sein müsste im AutoSplit wenn die Splitbuchungsposition eine Buchungsart mit Steuersatz hat ein Spliteintrag für den Netto Betrag erzeugt werden und einer für die Steuer mit der Steuer Buchungsart. Ich denke, das sollte noch gemacht werden weil wir sonst ein inkonsistentes Verhalten haben.

Da kommt mir dann noch was. Was macht man im Autosplit wenn eine Splittbuchungen mit Buchungsart mit Steuersatz zugewiesen wird, aber die Buchung bereits eine Nettobuchung ist und die zugeordnete Steuer Splittbuchung schon existiert. Dann darf man keine Steuerbuchung mehr erzeugen. Da muss mann das wohl auch abfangen.

@lenilsas
Copy link
Author

lenilsas commented Jan 7, 2025

Darum sollte im Sollbuchung Detail View in der Tabelle der Sollbuchungspositionen die Spalte Steuersatz auskommentiert werden. Die wird ja später nur angezeigt wenn die Option der nicht festen Zuordnung zur Buchungsart selektiert ist.

Habe ich gemacht

Um dann aber mit der aktuellen Funktionalit beim Splitten einer Buchung konform zu sein müsste im AutoSplit wenn die Splitbuchungsposition eine Buchungsart mit Steuersatz hat ein Spliteintrag für den Netto Betrag erzeugt werden und einer für die Steuer mit der Steuer Buchungsart. Ich denke, das sollte noch gemacht werden weil wir sonst ein inkonsistentes Verhalten haben.

Für die Steuerbucuhgen muss man ja momentan eine Buchung splitten und dann einen Eintrag erzeugen, dann wir automatisch eine Steuerbuchung erstellt. Wenn jetzt die automatischen Splitbuchungen erstellt werden kann man ja auch die Splitbuchung bearbeiten, eine Teilbuchhung bearbeiten, Nettobetrag eintragen und Speichern, auch hier wird die Steuerbuchung automatisch erstellt. Da finde ich das Vorgehen bei beiden Varianten ziemlich ähnlich.
Wenn ich hier jetzt automatisch eine Steuerbuchung erstellen würde fände ich das Inkonsistent, da da ja sonst nicht gemacht wird.

Ich habe eine Abrechnung gemacht wo ein Zusatzbeitrag eine Buchungsart mit Steuersatz hatte.
Im XML der Rechnung wird dieser Betrag aber als Netto ausgegeben und keine Steuer ausgewiesen.

Stimmt, jetzt nehme ich den Steuersatz aus der Buchungsart.

@JohannMaierhofer
Copy link

Wenn ich hier jetzt automatisch eine Steuerbuchung erstellen würde fände ich das Inkonsistent, da da ja sonst nicht gemacht wird.

Ich dachte halt, dass es momentan keine Möglichkeit gibt eine Buchung zu splitten und dann Split Einträge ohne zugeordnete Steuerbuchung zu haben. Jetzt passiert das aber.
Aber da bin ich jetzt leidenschaftslos, wenn da sonst keiner ein Problem damit hat ist das für mich auch ok.

@@ -730,7 +730,8 @@ public void addZUGFeRD(Rechnung re, boolean mahnung) throws IOException
{
invoice.addItem(new Item(
new Product(sp.getZweck(), "", "LS",
new BigDecimal(sp.getSteuersatz()).setScale(2,
new BigDecimal(sp.getBuchungsart() == null ? 0

Choose a reason for hiding this comment

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

Im else Zweig unten muss das auch noch geändert werden.

Choose a reason for hiding this comment

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

Das reicht aber dann auch noch nicht weil sp.getNettobetrag(); die Steuer nicht berücksichtigt.
Evtl. sollte man so wie es früher bei der Sollbuchung war beim generieren der Rechnung am Anfang den Steuersatz aus der Buchungsart in die Sollbuchungsposition kopieren. Dann sollte sp.getNettobetrag() funktionieren und die Korrektur hier ist auch nicht nötig.

Copy link
Author

Choose a reason for hiding this comment

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

Stimmt. Ich habe jetzt beim erstellen der Positionen die Steuer übernommen.

@@ -83,6 +83,7 @@ else if (context instanceof Mitgliedskonto[])
{
GUI.getStatusBar().setErrorText("Keine Rechnung erstellt, alle " + skip
+ " Sollbuchungen enthalten bereits Rechnungen.");
GUI.getCurrentView().reload();

Choose a reason for hiding this comment

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

Das reload muss in den else Zweig.

Copy link
Author

Choose a reason for hiding this comment

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

ja, natürlich ändere ich

@lenilsas
Copy link
Author

Ich habe noch einen Fehler behoben: Wenn eine Splitbuchung mit Steuer bearbeitet wird, wird ja automatisch eine Steuerbuchung erstellt, diese muss auch der Sollbuchung zugeordnet werden.
Außerdem habe ich in den Einstellungen die Optionen für den QR-Code gruppiert, das das nicht klar ersichtlich war dass diese alle nur für den QR Code sind.
Dann habe ich noch die Möglichkeit eine Buchungen mehreren Sollbuchungen zuzuordnen hinzugefügt. In Dem Zuge habe ich des Fehlerehandling im AutoSplit verbessert.
Im AutoSplit setze ich nun die Zuordnung der Haupt und Gegebuchung auf null, damit ist das Vorgehen gleich wie ohne Split, dass die vorhandene Zuordnung ersetzt wird.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Workflow Rechnungen OhneAbbucher Filter Handling bei Rechnungen
3 participants