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

View Rechnung automatisch erzeugen sollte nur offene Sollbuchungen anzeigen #494

Open
tolot27 opened this issue Nov 26, 2024 · 7 comments
Open
Labels
bug Something isn't working

Comments

@tolot27
Copy link

tolot27 commented Nov 26, 2024

Momentan werden bei der Rechnungserzeugungsansicht alle Buchungen angezeigt, unabhängig davon, ob sie bereits ausgeglichen sind oder nicht. Man kann nun "Ohne Abbucher" wählen. Das filtert schon einige Buchungen. Über Datum von/bis kann man das noch weiter eingrenzen. Allerdings bekommt man so nicht unbedingt alle Buchungen herausgefiltert, die bereits ausgeglichen sind (Gegenbuchung existiert). Hier wäre es wirklich hilfreich, dass nur noch Buchungen angezeigt werden, für die es keine Gegenbuchung gibt.
Ansonsten kann es ganz schnell passieren, dass eine Buchung doppelt abgerechnet wird.
Die Eingrenzung der Differenz auf Fehlbetrag hilft im Falle von Rückerstattungen/Gutschriften auch nicht, da diese dann gar nicht angezeigt werden. Daher habe ich bei mir die Differenz auf "Egal" stehen.
Man kann bei der Differenz auch "Überzahlung" auswählen. Dann wird die Gutschrift trotzdem nicht angezeigt.

@tolot27 tolot27 added the bug Something isn't working label Nov 26, 2024
@JohannMaierhofer
Copy link

Ich verstehe die Frage nicht ganz.
Erstens werden in dem View keine Buchungen angezeigt sondern Sollbuchungen.
Es werden auch nur Sollbuchungen aufgenommen für die noch keine Rechnung existiert. Es wird also für keine Sollbuchung eine zweite Rechnung erstellt.
Der Filter Differenz funktioniert bei mir schon. Bei Differenz Fehlbetrag werden nur Sollbuchungen in die Rechnung aufgenommen bei denen die Summe der Beträge der zugewiesenen Buchungen noch geringer ist als der Betrag in der Sollbuchung. Hier wird dann der Fehlbetrag in Rechnung gestellt bzw. angemahnt.
Bei Differenz Überzahlung werden nur Sollbuchungen berücksichtigt bei denen die Summe der Beträge der zugewisenen Buchungen über dem Betrag der Sollbuchung liegt.
Das ist eigentlich das was zu erwarten ist.

Du scheinst hier etwas anderes zu erwarten. Du redest von doppelter Abrechnung. Meinst du da den Abrechnungslauf?

@tolot27
Copy link
Author

tolot27 commented Nov 27, 2024

Erstens werden in dem View keine Buchungen angezeigt sondern Sollbuchungen.

Ja, das hätte ich präziser schreiben können. Ich rede hier auch von Sollbuchungen.

Es werden auch nur Sollbuchungen aufgenommen für die noch keine Rechnung existiert. Es wird also für keine Sollbuchung eine zweite Rechnung erstellt.

Das ist partiell korrekt. Ich sehe bei mir auch diejenigen Sollbuchungen, die außerhalb von Rechnungen (ich habe sie bisher nicht genutzt) ganz normal über Abrechnungsläufe erstellt und größtenteils auch alle schon längst bezahlt sind. Es werden alle Sollbuchungen aufgeführt, für die bereits eine Istbuchung zugewiesen ist. Genau für diese ausgeglichenen Sollbuchungen, die damals ohne Rechnung erstellt wurden, braucht man nun auch keine Rechnung mehr.

Es müsste also ein SELECT mk.* FROM mitgliedskonto mk LEFT JOIN buchung b ON mk.id = b.mitgliedskonto WHERE rechnung IS NULL AND b.mitgliedskonto IS NULL gemacht werden, statt nur des rechnung IS NULL.

Wenn man sich das Mitgliedskonto bei der Mitgliedsdetailansicht anschaut, werden ja auch bereits bezahlte Sollbuchungen korrekt mit ihrer Istbuchung berücksichtig und die Differenz 0 ausgegeben.

Der Filter Differenz funktioniert bei mir schon. Bei Differenz Fehlbetrag werden nur Sollbuchungen in die Rechnung aufgenommen bei denen die Summe der Beträge der zugewiesenen Buchungen noch geringer ist als der Betrag in der Sollbuchung. Hier wird dann der Fehlbetrag in Rechnung gestellt bzw. angemahnt. Bei Differenz Überzahlung werden nur Sollbuchungen berücksichtigt bei denen die Summe der Beträge der zugewisenen Buchungen über dem Betrag der Sollbuchung liegt. Das ist eigentlich das was zu erwarten ist.

Nur werden hier reine Gutschriften (negativer Betrag) gar nicht angezeigt. D. h. Zeile

+ "sum(buchung.betrag) is null and mitgliedskonto.betrag > 0 ";
müsste auf <> 0 testen, statt nur auf > 0.

Das gilt auch für

+ "sum(buchung.betrag) is null and mitgliedskonto.betrag > 0 ";
und
+ "(SUM(buchung.betrag) IS NULL AND mitgliedskonto.betrag > 0)");
gleichermaßen.

Das scheint allerdings auch noch nicht zu reichen. Die SQL-Abfragen liefern nun auch die Gutschriften zurück. Allerdings werden sie trotzdem nicht angezeigt, außer bei Egal.

@JohannMaierhofer
Copy link

JohannMaierhofer commented Nov 27, 2024

Das ist partiell korrekt. Ich sehe bei mir auch diejenigen Sollbuchungen, die außerhalb von Rechnungen (ich habe sie bisher nicht genutzt) ganz normal über Abrechnungsläufe erstellt und größtenteils auch alle schon längst bezahlt sind. Es werden alle Sollbuchungen aufgeführt, für die bereits eine Istbuchung zugewiesen ist. Genau für diese ausgeglichenen Sollbuchungen, die damals ohne Rechnung erstellt wurden, braucht man nun auch keine Rechnung mehr.

Dafür gibt es ja die Filter für Datum und die Differenz. Bei Differenz Fehlbetrag werden die ausgeblendet. Fehlbetrag sollte eigentlich normalerweise gewählt sein.

Es müsste also ein SELECT mk.* FROM mitgliedskonto mk LEFT JOIN buchung b ON mk.id = b.mitgliedskonto WHERE rechnung IS NULL AND b.mitgliedskonto IS NULL gemacht werden, statt nur des rechnung IS NULL.

Das sehe ich nicht so. Es kann ja sein, dass jemand in Raten bezahlt oder nicht den vollen Betrag. Bei dir würde dann die Sollbuchungen nicht mehr aufgenommen wenn bereits eine Buchung zugeordnet ist. So wie es ist, ist es richtig. Es wird die Summe der zugeordneten Buchungen ausgerechnet und wenn die noch kleiner als der Sollbetrag in der Sollbuchung ist wird sie angezeigt. Sie ist ja dann nicht ausgeglichen.

Wenn man sich das Mitgliedskonto bei der Mitgliedsdetailansicht anschaut, werden ja auch bereits bezahlte Sollbuchungen korrekt mit ihrer Istbuchung berücksichtig und die Differenz 0 ausgegeben.

Ja, Differenz egal bedeutet auch 0.

Der Filter Differenz funktioniert bei mir schon. Bei Differenz Fehlbetrag werden nur Sollbuchungen in die Rechnung aufgenommen bei denen die Summe der Beträge der zugewiesenen Buchungen noch geringer ist als der Betrag in der Sollbuchung. Hier wird dann der Fehlbetrag in Rechnung gestellt bzw. angemahnt. Bei Differenz Überzahlung werden nur Sollbuchungen berücksichtigt bei denen die Summe der Beträge der zugewisenen Buchungen über dem Betrag der Sollbuchung liegt. Das ist eigentlich das was zu erwarten ist.

Nur werden hier reine Gutschriften (negativer Betrag) gar nicht angezeigt. D. h. Zeile

+ "sum(buchung.betrag) is null and mitgliedskonto.betrag > 0 ";
müsste auf <> 0 testen, statt nur auf > 0.

Aber Sollbuchungen sind Forderungen, da sollte kein negativer Betrag stehen. Jedenfalls denke ich, dass ein Abrechnungslauf sowas nicht erzeugt. Dort kann man zwar einen Beitrag mit negativen Zusatzbeiträgen verrechnen, aber das Ergebnis muss immer ein zu zahlen der Betrag sein.
Bei einer Umdeutung stimmt auch <> nicht. Da müssten alle Vergleiche umgedreht werden.
Wenn du aber meinst, dass eine Sollbuchung dann über z.B. aus einer Lastschrift besteht und einer Gutschrift, dann funktioniert es auch wieder wenn die Summe aus beiden der Forderung entspricht.

@tolot27
Copy link
Author

tolot27 commented Nov 27, 2024

Das ist partiell korrekt. Ich sehe bei mir auch diejenigen Sollbuchungen, die außerhalb von Rechnungen (ich habe sie bisher nicht genutzt) ganz normal über Abrechnungsläufe erstellt und größtenteils auch alle schon längst bezahlt sind. Es werden alle Sollbuchungen aufgeführt, für die bereits eine Istbuchung zugewiesen ist. Genau für diese ausgeglichenen Sollbuchungen, die damals ohne Rechnung erstellt wurden, braucht man nun auch keine Rechnung mehr.

Dafür gibt es ja die Filter für Datum und die Differenz. Bei Differenz Fehlbetrag werden die ausgeblendet. Fehlbetrag sollte eigentlich normalerweise gewählt sein.

Es müsste also ein SELECT mk.* FROM mitgliedskonto mk LEFT JOIN buchung b ON mk.id = b.mitgliedskonto WHERE rechnung IS NULL AND b.mitgliedskonto IS NULL gemacht werden, statt nur des rechnung IS NULL.

Das sehe ich nicht so. Es kann ja sein, dass jemand in Raten bezahlt oder nicht den vollen Betrag. Bei dir würde dann die Sollbuchungen nicht mehr aufgenommen wenn bereits eine Buchung zugeordnet ist. So wie es ist, ist es richtig. Es wird die Summe der zugeordneten Buchungen ausgerechnet und wenn die noch kleiner als der Sollbetrag in der Sollbuchung ist wird sie angezeigt. Sie ist ja dann nicht ausgeglichen.

Wir nähern uns langsam an. 😄

Wenn man egal wählt, dürften ausgeglichene Buchungen (Soll=Ist) für die es auch keine Rechnung gibt (weil damals nicht gemacht) meiner Ansicht nach gar nicht angezeigt werden. Man kann das über den Datumsfilter nur bedingt eingrenzen, da ja eine derartige Buchung auch im Rechnungszeitraum (zeitlich zwischen den nicht ausgeglichenen Sollbuchungen) liegen kann.

@JohannMaierhofer
Copy link

Wenn man egal wählt, dürften ausgeglichene Buchungen (Soll=Ist) für die es auch keine Rechnung gibt (weil damals nicht gemacht) meiner Ansicht nach gar nicht angezeigt werden. Man kann das über den Datumsfilter nur bedingt eingrenzen, da ja eine derartige Buchung auch im Rechnungszeitraum (zeitlich zwischen den nicht ausgeglichenen Sollbuchungen) liegen kann.

Was soll dann egal sein? Das wäre ja dann nur Fehlbetrag oder Überzahlung, also sowas wie nicht exakt.
Ich finde die Option alle zu sehen nicht schlecht. Vielleicht möchte ja jemand nachdem er schon bezahlt hat eine Rechnung.
Ich stelle eigentlich keine Rechnungen aus wenn ein Mitglied bezahlt. Sollte er aber eine brauchen hätten wir die Möglichkeit und das auch im Nachhinein.

@tolot27
Copy link
Author

tolot27 commented Nov 27, 2024

Aber Sollbuchungen sind Forderungen, da sollte kein negativer Betrag stehen. Jedenfalls denke ich, dass ein Abrechnungslauf sowas nicht erzeugt. Dort kann man zwar einen Beitrag mit negativen Zusatzbeiträgen verrechnen, aber das Ergebnis muss immer ein zu zahlen der Betrag sein.

Buchhalterisch magst du bzgl. Soll recht haben. Nur werden aus Gutschriften (negative Zusatzbeträge) beim Abrechnungslauf keine Istbuchungen erzeugt, sondern negative Sollbuchungen. Die werden auch nicht mit anderen positiven Beträgen verrechnet, zumindest nicht, wenn der Zahlweg auf Überweisung steht. Es werden stumpf negative Sollbuchungen erzeugt. Diese will ich mit anderen positiven Sollbuchungen (Forderungen) verrechnen können. Das geht aber nur, wenn sie auch aufgeführt werden.
Und warum muss ein Ergebnis immer ein zu zahlender Betrag sein? Wie will man dann Gutschriften abbilden?

Bei einer Umdeutung stimmt auch <> nicht. Da müssten alle Vergleiche umgedreht werden.

Sehe ich nicht so. Das Wort Fehlbetrag bedeutet ja nicht automatisch, dass er positiv sein muss (Forderung). Er kann ja auch negativ sein (Gutschrift). Ich habe die queries in SQL getestet und bekomme die gewünschten Ergebnisse.
Man kann bei Fehlbetrag auch das AND mitgliedskonto.betrag <> 0 komplett weglassen, da maßgeblich zusätzlich zu berücksichtigen ist, dass noch gar keine Zahlung eingegangen ist (SUM(buchung.betrag) IS NULL). Das mitgliedskonto.betrag nicht NULL oder 0 ist, ist offensichtlich, da ja ein Eintrag im Mitgliedskonto vorhanden sein sollte. Falls dieser den Wert 0 hat, will man ihn ja vielleicht doch auf der Rechnung haben. Falls nicht, wäre <> 0 in dem Fall richtig.

Wenn du aber meinst, dass eine Sollbuchung dann über z.B. aus einer Lastschrift besteht und einer Gutschrift, dann funktioniert es auch wieder wenn die Summe aus beiden der Forderung entspricht.

Einen derartigen Fall habe ich momentan nicht.

Da die Rechnungserstellung aus selektiv ausgewählten Sollbuchungen (die man sich via "Egal" anzeigen lassen kann [positive und negative]) nicht mehr verfügbar ist, sollte über die Funktion "Neu (automatisch)" die Möglichkeit bestehen, aus den relevanten (= nicht ausgeglichenen) Sollbuchungen eine Rechnung zu erstellen, wo auch Gutschriften berücksichtigt werden. Dazu sehe ich momentan nur die Möglichkeit, bei "Fehlbetrag" auch negative Sollbuchungen zuzulassen. Bei "Egal" kann ich ja auch nicht selektiv auswählen, welche Sollbuchungen auf der Rechnung erscheinen sollen. Ich kann nur filtern, jedoch zeitlich innenliegende ausgeglichene Sollbuchungen nicht ausschließen.

@tolot27
Copy link
Author

tolot27 commented Nov 27, 2024

Wenn man egal wählt, dürften ausgeglichene Buchungen (Soll=Ist) für die es auch keine Rechnung gibt (weil damals nicht gemacht) meiner Ansicht nach gar nicht angezeigt werden. Man kann das über den Datumsfilter nur bedingt eingrenzen, da ja eine derartige Buchung auch im Rechnungszeitraum (zeitlich zwischen den nicht ausgeglichenen Sollbuchungen) liegen kann.

Was soll dann egal sein? Das wäre ja dann nur Fehlbetrag oder Überzahlung, also sowas wie nicht exakt. Ich finde die Option alle zu sehen nicht schlecht. Vielleicht möchte ja jemand nachdem er schon bezahlt hat eine Rechnung. Ich stelle eigentlich keine Rechnungen aus wenn ein Mitglied bezahlt. Sollte er aber eine brauchen hätten wir die Möglichkeit und das auch im Nachhinein.

Das geht dann im Nachhinein nicht wirklich selektiv sondern nur für alle oder diejenigen Buchungen, die man mit dem Filter eingegrenzt bekommt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants