https://www.kivitendo.de/redmine/https://www.kivitendo.de/redmine/redmine/favicon.ico?15768422422016-07-19T07:30:19Zwissenprojekt kivitendo - Fehler #192: »Kontoauszug verbuchen« kommt mit multipler Zuweisung nicht zurechthttps://www.kivitendo.de/redmine/issues/192?journal_id=2662016-07-19T07:30:19ZPeter Schulginpeter.schulgin@opendynamic.de
<ul></ul><p>Habe soeben einen weiteren Fall mit derselben Fehlermeldung:<br />Eine Verkaufsrechnung wurde per SPEA-Lastschrift bezahlt.<br />Danach erfolgte eine SEPA-Rücklastschrift seitens der Bank (vermutlich Konto nicht gedeckt).<br />Die o.g. Fehlermeldung tritt auf beim Versuch die Rücklastschrift zu verbuchen.<br />Vermutlich wird tatsächlich "open_amount" verwendet...</p> projekt kivitendo - Fehler #192: »Kontoauszug verbuchen« kommt mit multipler Zuweisung nicht zurechthttps://www.kivitendo.de/redmine/issues/192?journal_id=2672016-07-19T07:31:09ZPeter Schulginpeter.schulgin@opendynamic.de
<ul></ul><p>Habe soeben einen weiteren Fall mit derselben Fehlermeldung zu Gesicht bekommen:<br />Eine Verkaufsrechnung wurde per SPEA-Lastschrift bezahlt.<br />Danach erfolgte eine SEPA-Rücklastschrift seitens der Bank (vermutlich Konto nicht gedeckt).<br />Die o.g. Fehlermeldung tritt auf beim Versuch die Rücklastschrift zu verbuchen.<br />Vermutlich wird tatsächlich "open_amount" verwendet...</p> projekt kivitendo - Fehler #192: »Kontoauszug verbuchen« kommt mit multipler Zuweisung nicht zurechthttps://www.kivitendo.de/redmine/issues/192?journal_id=2732016-07-20T12:41:58ZG. Richardson
<ul></ul><p>Multiple Zuweisung in der Maske ist ein Problem, die ist nicht darauf ausgelegt. daß eine Rechnung mehr als 1x in einem Durchlauf angesprochen wird. Derzeit werden sogar alle anderen Vorschläge für eine Rechnung entfernt, sobald die Rechnung zugewiesen wurde - hier war die Idee, daß wenn eine Rechnung zu mehreren Kontoauszugszeilen passen könnte (gleiche Punktzahl), aber nur eine richtig ist, die falschen Zuweisung verschwinden sobald man die richtige auswählt. Das beisst sich aber mit dem Fall hier.<br />Ganz konsequent ist das aber nicht, man kann nämlich trotzdem eine weitere Zuweisung per "Rechnung zuweisen" hinzufügen.</p>
<p>Zu der Problembeschreibung:<br />Mit Martins Patch <a class="changeset" title="Kontoauszug verbuchen: Fehlermeldung und falscher Betrag Werden mehrere Rechnungen mit einer Ban..." href="https://www.kivitendo.de/redmine/projects/forum/repository/kivitendo/revisions/92e2fb5927e65dd8c509c794ebe273554c6f6ef6">92e2fb5927</a> hat sich das Verhalten geändert. Jetzt bekommt die letzte Rechnung eine Überzahlung und ist damit noch offen, wahrscheinlich ist das erwünscht.</p>
<p>Mosus Einwand, daß das nicht einfach so passieren sollte, ist natürlich weiterhin berechtigt: wenn das automatisch passiert und der Benutzer nicht eingreifen kann, sollte zumindest eine Mitteilung generiert werden, daß es eine Überzahlung gab, um die man sich kümmern sollte. Ansonsten merkt man das erst, wenn man sich die offenen Posten anschaut.</p>
<p>Kompliziertere Fälle (eine Mischung aus mehreren Rechnungen, Gutschriften, Skonto, ...) sollte man für die Maske wahrscheinlich erst gar nicht probieren, und stattdessen beim Popup "Rechnung zuweisen" ansetzen. Derzeit wird das Ergebnis der dortigen Zuweisung wieder an die Maske "Kontoauszug verbuchen" zurückgeschickt, das müßte man wahrscheinlich ändern so daß man direkt aus dem Popup heraus Zahlungen verbuchen kann. Dort hätte man neben den besseren Filtermöglichkeiten auch die Möglichkeit sich vor dem Buchen die Gesamtsummen der Zuweisungen anzuzeigen. Z.B. wenn der Kunde per Sammelüberweisung mehrere Rechnungen bezahlt hat, aus dem Verwendungszweck aber nicht ersichtlich ist, welche, und man etwas herumprobieren muß. Das sind v.A. Fragen des Interfacedesigns.</p> projekt kivitendo - Fehler #192: »Kontoauszug verbuchen« kommt mit multipler Zuweisung nicht zurechthttps://www.kivitendo.de/redmine/issues/192?journal_id=2762016-07-21T08:16:30ZMartin Helmlingmartin.helmling@opendynamic.de
<ul></ul><p>Der Commit 92e2fb59 löst das Problem nicht, dass ganz bezahlte Rechnungen (open_amount=0) nicht mehr rückgebucht werden können.<br />Jedoch wird bei einer Banktransaktion, die mehrere Rechnungen betrifft, eine Überzahlung nicht wie bisher einfach weggeworfen,<br />sondern die letzte (oder einzigste) Rechnung einer Transaktion wird überbezahlt.</p>
<p>Sorry das mit dem "fix Redmine <a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Fehler: »Kontoauszug verbuchen« kommt mit multipler Zuweisung nicht zurecht (Gelöst)" href="https://www.kivitendo.de/redmine/issues/192">#192</a>" war falsch.</p> projekt kivitendo - Fehler #192: »Kontoauszug verbuchen« kommt mit multipler Zuweisung nicht zurechthttps://www.kivitendo.de/redmine/issues/192?journal_id=2862016-08-16T12:56:02ZMoritz Bunkusm.bunkus@linet-services.de
<ul><li><strong>Status</strong> wurde von <i>Neu</i> zu <i>Gelöst</i> geändert</li></ul><p>Ich habe hierzu mehrere Commits gemacht, die das Problem erst mal<br />deutlich sauberer machen, als es vorher war. Ich schließe diesen Bug<br />daher.</p>
<p>Mein Ziele waren, die Maske deutlich widerstandsfähiger gegenüber<br />Fehlbedienungen sowie der BenutzerIn transparenter zu machen, was bei<br />Problemen passiert.</p>
<p>Weitere Verbesserungen sind natürlich OK, z.B. dass in der Maske<br />bereits festgelegt werden kann, welche Rechnungen wie unterzahlt<br />verbucht werden sollen, wenn eine Zahlung eben nicht gleich der Summe<br />der offenen Beträge ist.</p>
<p>- 66d468b093e7c4510722f22b4a0c069cb95e6117 »Bankauszug verbuchen: Warnungen/Fehler anzeigen; pro Zeile eine DB-Transaktion«</p>
<p>Hier wird zum Einen eine Datenbank-Transaktion eingeführt, die<br />verhindern, dass grobe Fehler mit inkonsistentem Datenbankzustand<br />belohnt werden.</p>
<p>Weiterhin wird hier der Grundstein dafür gelegt, dass während der<br />Bearbeitung auftretende Fehler und Warnungen der BenutzerIn<br />nachträglich in Tabellenform übersichtlich angezeigt werden, anstatt<br />die Funktion gleich komplett abzubrechen (bei Exceptions) oder nur<br />unübersichtlich angzeigt werden (Warnungen als Flash).</p>
<p>Das Datenbank-Transkations-Verhalten ist wie folgt:</p>
<p>1. Bei einer Ausnahme: Rollback und Anzeige in Tabelle als Fehler<br />2. Bei einem Fehler: Rollback und Anzeige in Tabelle als Fehler<br />3. Bei einer Warwnung: Commit und Anzeige in Tabelle als Warnung<br />4. Wenn kein Problem auftrat: Commit, keine Anzeige in Tabelle</p>
<p>Wenn in keiner der Zahlungen Warnungen oder Fehler auftreten, so wird<br />die Fehlertabelle auch nicht angezeigt.</p>
<p>- 0631432e58e8c70312adae94db3e41dd36bc6e30 »Bankauszug: Transaktionsrichtung mit Belegrichtung abgleichen«</p>
<p>Es war möglich, einer Transaktion beliebige Einkaufs- und<br />Verkaufsrechnungen zuzuweisen. Somit war es problemlos machbar, einer<br />erhaltenen Zahlung eine Verkaufsrechnung zuzuweisen.</p>
<p>Mit diesem Commit werden falsche Zahlungsrichtungen abgewiesen und gar<br />nicht durchgeführt. Zugelassen ist: erhaltene Zahlungen mit<br />Verkaufsrechnungen und stornierten Einkaufsrechnungen; gemachte<br />Zahlungen mit Einkaufsrechnungen und stornierten Verkaufsrechnungen.</p>
<p>»Abgewiesen« heißt: die Zahlung wird als Fehler in der Fehlertabelle<br />angezeigt und nicht verbucht.</p>
<p>- 0c93bf2085b5cca69cb831fd90a50ed0ec6b8601 »Bankauszug: Unterzahlung mehrerer Rechnungen verhindern«</p>
<p>Wenn mehrere Rechnungen ausgewählt werden, so verteilt der Algorithmus<br />schlicht den Betrag der Überweisungen auf die Rechnungen in der<br />Reihenfolge, in der die Rechnungen ausgewählt wurden. Dabei wird so<br />lange der volle offene Betrag bezahlt wie möglich, der Rest kommt auf<br />die folgende Rechnung.</p>
<p>Allerdings ist für das Programm nicht ersichtlich, welche Anteile<br />welcher Rechnungen des Kunden/Lieferanten tatsächlich damit beglichen<br />wurden.</p>
<p>Also muss verhindert werden, dass das passiert; eine Warnung genügt<br />nicht. Die Zahlung wird daher als Fehler in der Fehlertabelle<br />angezeigt und nicht verbucht.</p>
<p>Ist nur eine Rechnung zugewiesen, so bleiben Unterzahlungen problemlos<br />möglich und auch sinnvoll (z.B. Abschlagszahlungen, regelmäßige<br />Teilzahlungen, Irrtümer).</p>
<p>Dieser Commit kann nachträglich natürlich noch entschärft werden, wenn<br />z.B. die Masken so erweitert werden, dass die BenutzerIn im Vorfeld<br />genau steuern kann, welche Rechnungen unterzahlt werden sollen.</p>
<p>- 20392548f2e8ed92478542893df9852d6987e031 »Bankeinzug: bei Überzahlung eine Warnung ausgeben«</p>
<p>Eine Überzahlung ist oftmals OK oder unvermeidbar, sollte aber von der<br />BenutzerIn begutachtet werden. Daher wird die Zahlung durchaus<br />verbucht und im Anschluss an das Verbuchen eine Warnung in besagter<br />Tabelle angezeigt, aus der die BenutzerIn die Möglichkeit hat, die<br />Rechnungen direkt anzusteuern.</p> projekt kivitendo - Fehler #192: »Kontoauszug verbuchen« kommt mit multipler Zuweisung nicht zurechthttps://www.kivitendo.de/redmine/issues/192?journal_id=2872016-08-16T13:45:48ZMoritz Bunkusm.bunkus@linet-services.de
<ul></ul><p>Moritz Bunkus schrieb:</p>
<p>…</p>
<blockquote>
<p>- 0631432e58e8c70312adae94db3e41dd36bc6e30 »Bankauszug: Transaktionsrichtung mit Belegrichtung abgleichen«</p>
</blockquote>
<p>…</p>
<blockquote>
<p>Mit diesem Commit werden falsche Zahlungsrichtungen abgewiesen und gar<br />nicht durchgeführt. Zugelassen ist: erhaltene Zahlungen mit<br />Verkaufsrechnungen und stornierten Einkaufsrechnungen; gemachte<br />Zahlungen mit Einkaufsrechnungen und stornierten Verkaufsrechnungen.</p>
</blockquote>
<p>Ist natürlich Quark: ich meine hier nicht die Stornos, sondern die<br />Gutschriften. Letztlich basiert der Check aber nicht auf den<br />Belegtypen, sondern auf dem Vorzeichen der Zahlungen:</p>
<p>- Bei eingehenden Zahlungen sind nur Verkaufsbelege mit positiver<br /> Summe und Einkaufsbelege mit negativer Summe zugelassen.</p>
<p>- Bei ausgehenden Zahlungen sind nur Verkaufsbelege mit negativer<br /> Summe und Einkaufsbelege mit positiver Summe zugelassen.</p>