-
Notifications
You must be signed in to change notification settings - Fork 17
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
base: master
Are you sure you want to change the base?
Conversation
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:
|
entfernt
behoben
geändert
geändert
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
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.
habe ich so umgesetzt das eine Sollbuchungsposition erzeugt wird.
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. |
Ich bekomme jetzt eine Exception beim Abrechnungslauf: Buchungsart und Buchungsklasse sollten ein Long sein so wie in MitgliedskontoImp. |
Ja, da sollten wir uns weitere Meinungen einholen. |
src/de/jost_net/JVerein/gui/action/BuchungSollbuchungZuordnungAction.java
Show resolved
Hide resolved
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. |
habe ich korrigiert, auch gleich beim JVereinZahler |
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. |
Ich habe noch einige Probleme entdeckt:
|
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. |
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, ... 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." |
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. |
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" |
There was a problem hiding this comment.
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.
Vielen vielen Dank für diesen komplexen PR. Das erleichtert mir die Arbeit sehr. 😄 |
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. |
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. |
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." : ".")); | ||
} |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
Ich habe eine Abrechnung gemacht wo ein Zusatzbeitrag eine Buchungsart mit Steuersatz hatte. |
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. |
Habe ich gemacht
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.
Stimmt, jetzt nehme ich den Steuersatz aus der Buchungsart. |
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. |
@@ -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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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(); |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
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. |
Wie in #513 besprochen habe ich den Workflow bei den Rechnungen überarbeitet.
Außerdem habe ein folgende Änderungen gemacht die nicht direkt mit der Rechnung zusammenhängen
Ein Paar Änderungen fehlen noch
-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