0

Überwachung von Zahlungseingängen und Zuordnung einzelner Datensätze dazu

Mein "Modul" Rechnung ist ziemlich fertig und funktioniert soweit. Nun würde ich gern noch eine Möglichkeit einbauen um Zahlungsvorgänge zuzuordnen.

Vor allem wenn es, wie oft bei mir, Pakete mit mehreren Rechnungsposten in einer Überweisung sind. Meine bisherige Lösung von der Stange hat das immer analysiert und mir die passenden Rechnungen vorgeschlagen die ich als gebucht markieren konnte.

Und eigentlich ist es wohl auch nur ein Zahlenspiel:

Die einzelnen Rechnungsbeträge die offen sind müssten mit der eingehenden Zahlsumme verglichen werden und die Kombination heraus gesucht werden bei der 0 € Differenz bei heraus kommt. Diese Rechnungen sollten dann markiert bzw. ersteinmal vorgeschlagen werden... Wenn ich zustimme ein Button und die vorgeschlagenen Rechnungen werden als "bezahlt" markiert. Irgendwie so.

Wie aber könnte eine passende Formel dafür lauten?

 

Zum Beispiel Berechnungsfelder:

Feld Zahleingang - 2150,58 €

Feld Rechnungsposten 1 - offen: € 1000,00 

Feld Rechnungsposten 2 - offen: € 1000,58

Feld Rechnungsposten 3 - offen: € 100,-

Feld Rechnungsposten 4 - offen € 50,-

usw.

Vorschlag Ergebnisfeld: Posten 3 - Posten 2 - Posten 4 = 0€ Differenz

 

Wie könnte man sowas aufbauen? Hat jemand eine Idee?

9 Antworten

null
    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hehe. Und prompt habe ich selber den ersten Fehler in meiner Auflistung. Zahleingang sollten nur € 1150,58 lauten.

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    ich würde zweistufig vorgehen. Im ersten Step würde ich schauen, ob es einen Rechnungsposten gibt, der exakt dem Zahleingang entspricht. Falls ja, ist das mein Treffer. Falls nicht, würde ich nach dem FIFO-Prinzip die Zahlung dem ältesten Rechnungsposten zuordnen. Das sollte recht einfach per Script umsetzbar sein.

     

    lg, Torsten

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    grundsätzlich würde ich Torsten beistimmen - wenn bei der Zahlung der genaue Verwendungszweck nicht angegeben ist sollten die ältesten Forderungen zuerst ausgeglichen werden, ansonsten kann es Probleme mit Verzugs- und Verjährungsfristen geben. Werden die bezahlten Rechnungen angegeben, musst du auf jeden Fall diese ausgleichen.

    Aber... wenn es dir nur um einen Vorschlag des "wahrscheinlichsten" Ausgleich geht, der dann vor der Buchung noch geprüft wird, dann ist dein Wunsch-Vorgehen wohl durchaus nachvollziehbar. Aber vermutlich nicht ganz einfach umzusetzen - erst gar nicht, wenn es evtl. noch die Möglichkeit des Skonto-Abzuges gibt.

    Ohne dies jetzt vollständig durchdenken zu können (irgendwie will mein Lebensunterhalt auch verdient sein...) würde einen Ansatz über eine rekursiv aufgerufene Funktion wählen, die jeweils den ältesten Posten mit einem Betrag <= dem Restzahlbetrag sucht, den Betrag vom Restzahlbetrag abzieht und sich selbst wieder aufruft, wenn der Restzahlbetrag noch nicht 0 ist. Wir bei dem Aufruf kein Posten <= Restzahlbetrag gefunden, dann muss dies an die vorherige Instanz der Funktion gemeldet werden ... diese muss dann den gefundenen Posten verwerfen und mit dem nächsten Posten mit abweichendem Betrag einen neuen Versuch durchführen.

    Ich hoffe, den Ansatz habe ich verständlich rüber gebracht - wie du das jetzt in Ninox-Logik umsetzt und die einzelnen Posten zusammen sammelst überlasse ich nun erst mal dir. :)

    VG Frank

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Moin, ein anderer Ansatz wäre, die Tabellen für 'Rechnungen' und 'Zahlungen' über eine Hilfstabelle 'Rechnungszahlungen' als n:m-Verknüpfung miteinander zu verbinden. Dann kann man bei der Erfassung eines Zahlungseingangs von vornherein selbst wählen, welcher Rechnung bzw. welchen Rechnungen die Zahlung zugeordnet werden soll. Zur Auswahl lässt man sich alle Rechnungen des betreffenden Kunden anzeigen, deren OP > 0 ist.

    Wenn man in der Hilfstabelle noch die Möglichkeit zur Eingabe eines (Teil-) Betrages vorsieht, lassen sich auch Abschlags-, Sammel- und mehrere Teilzahlungen flexibel so zuordnen, dass die Zahlbeträge mit denen der Kontoauszüge und ggf. auch der Angabe des Kunden beim Verwendungszweck übereinstimmen.

    Damit ließen sich dann auch Szenarien berücksichtigen wie das, dass der Kunde bspw. ausdrücklich Rechnung 1 und 3 bezahlt, nicht jedoch Rechnung 2, weil diese intern noch nicht freigegeben wurde.

     

    Nur so als Idee.

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Das ist für mich kein anderer Ansatz sondern etwas anderes... Du musst natürlich eine Möglichkeit schaffen, eine Zahlung mit mehreren Rechnungen zu verknüpfen und eine Rechnung mit mehreren Zahlungen. Darüber hinaus können natürlich Teilzahlungen passieren... sogar eine Überzahlung des Kunden ist nicht ausgeschlossen und müsste zu einem Guthaben auf dem Kundenkonto führen.

    Ob die Zahlungsbuchung zu neuen Datensätzen in einer Verknüpfungstabelle führt oder wie auch immer diese Daten dann verarbeitet werden ... da gibt es verschiedene Lösungsansätze und hängt auch damit zusammen, ob du da eine komplette Finanzbuchhaltung mit doppelter Buchführung bauen willst oder nur wissen musst, welche Rechnungen eigentlich noch offen sind. Dein Ansatz kann da schon ein guter Weg sein.

    Dem Anwender den möglichen Ausgleich vorzuschlagen ist nicht zwingend - manuelle Zuweisung aber undbeding notwendig (und technisch nicht so herausfordernd).

    VG Frank

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Lieber Frank, Ich finde deine Beiträge hier im Forum ausgesprochen hilfreich, bei diesem weiß weiß ich aber offen gestanden jetzt nicht genau, was du damit sagen willst. Mir ging es lediglich darum, den Lösungsvorschlägen zur Problemstellung, so wie ich sie interpretiert habe, eine alternative Herangehensweise hinzuzufügen, welche die Überlegungen zu einer (Halb-) Automatisierung der Zahlungszuordnung im Grunde obsolet machen würde. Es war nicht als Wettbewerbsbeitrag zur Goldenen Ananas gedacht.

    Ich kenne das Datenmodell, die Abläufe und weiteren Anforderungen des Fragestellers nicht, weiß aber aus eigener, langjähriger Praxis, dass bei der Fakturierung und bei der Zuordnung von Zahlungseingängen viele Eventualitäten zu berücksichtigen sind. Bspw. erhalte ich nicht selten Sammelzahlungen zu "Rechnung1 (50 %), Rechnung2 und Rechnung3 abzgl Skonto". Bevor ich nun versuche, die Zuordnung über komplizierte Abfragen zu automatisieren und dann doch überprüfen und ggf. bestätigen zu müssen, wähle ich die betreffenden Rechnungen halt lieber gleich manuell aus der OP-Liste aus.

    Das ist, nebenbei bemerkt, übrigens der Grund, warum ich nach langer, vergeblicher Suche bei Ninox gelandet und damit glücklich bin. Es bietet mir die Möglichkeit, Prozesse mit überschaubarem Aufwand individuell so abzubilden, wie sie sich aus der alltäglichen Praxis ergeben.

     

    Solche persönlichen Lösungen müssen natürlich längst nicht für jeden passen. Deshalb der Hinweis "Nur so als Idee". Und als solche erschien sie mir im gegebenen Zusammenhang durchaus erwähnenswert. Nicht mehr, aber auch nicht weniger.

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Copytexter,

    die Goldene Ananas wollen wir beide nicht ... entschuldige bitte, wenn ich dir mit meiner Antwort irgendwie auf die Füsse getreten bin. Ich habe auch jetzt anhand deines neuen Beitrags erst gemerkt, dass ich dich mit dem Fragesteller verwechselt habe ... fehlende Aufmerksamkeit bei mir, ähnlich anmutendes Bild bei euch und zwei mal ein etwas kryptischer Benutzername haben da wohl ihren Anteil dran. Vermutlich hätte ich sonst etwas anders formuliert...mia culpa

    Ich wollte darauf hinweisen, dass es bei deiner Idee eher um die Struktur geht, die Zahlungszuweisung zu speichern die für mich auf jeden Fall da sein muss. Beim Fragesteller habe ich aber eher verstanden, dass er schon einen Schritt weiter ist und gerade der automatische Ausgleichsvorschlag im Vordergrund stand...

    Ich hoffe aber vor allem, dass der Fragesteller einfach aus all unseren Antworten das für ihn notwendig herausziehen kann. :)

    VG Frank

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    So sei es. 😇

    • Pyromixer.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Zitat: "Aber... wenn es dir nur um einen Vorschlag des "wahrscheinlichsten" Ausgleich geht, der dann vor der Buchung noch geprüft wird, dann ist dein Wunsch-Vorgehen wohl durchaus nachvollziehbar. Aber vermutlich nicht ganz einfach umzusetzen - erst gar nicht, wenn es evtl. noch die Möglichkeit des Skonto-Abzuges gibt."

    Exakt darum geht es. Ich möchte nur Vorschläge von Ninox welche Rechnungen am ehesten in Frage kommen. Kontrollieren und dann wirklich buchen, mache ich natürlich manuell.

     

    Zitat: Bspw. erhalte ich nicht selten Sammelzahlungen zu "Rechnung1 (50 %), Rechnung2 und Rechnung3 abzgl Skonto".

    Skonto gibts bei mir nicht. Generell nicht :-) Auch aus diesem Grund es einfacher buchen zu können und auch weil ich nicht billiger arbeite nur weil jemand schneller zahlt. Meine Auftraggeber sind aber allesamt wohlerzogen und zahlen pünktlich und schnell. Andere will ich auch nicht.

    Wie gesagt, es ginge mir nur um die Vorschläge welche Rechnungen wohl zur Eingangsumme passen könnten. Ich habe zwar oft Verwendungszwecke wenn ich vorab ein Avis vom Auftraggeber bekomme. Meistens kommt das vorher, damit lassen sich die Zahlungen schon schnell zuordnen. Aber wenn man doch schon ein Ninox hat, hätte es ja sein können :-)

    Ich werde Eure Vorschläge dann mal durchprobieren. Im Moment hänge ich noch an anderen, wichtigeren Dingen in meiner Anwendung. Danke Euch auf jeden Fall schon mal!