Projekt

Allgemein

Profil

Fehler #164

Prüfung der Bücherkontrolle in Zahlungseingängen und Zahlungsausgängen fehlerhaft

Von Peter Schulgin vor fast 8 Jahren hinzugefügt. Vor mehr als 5 Jahren aktualisiert.

Status:
Feedback
Priorität:
Normal
Zugewiesen an:
Martin Helmling
Zielversion:
-
Beginn:
17.05.2016
Abgabedatum:
01.06.2016
% erledigt:

100%

Geschätzter Aufwand:

Beschreibung

Beim Verbuchen von Zahlungseingängen/Zahlungsausgängen in den Belegmasken Einkaufsrechnung, Verkaufsrechnung, Kreditorenbuchung und Debitorenbuchung wird die Prüfung der Bücherkontrolle nur auf das closedto-Datum angewendet ("Die Bücher abschließen bis einschließlich zum..."), das max_future_booking_interval ("Maximale Anzahl von Tagen an denen Buchungen in der Zukunft erlaubt sind.") wird ignoriert.

Außerdem werden dabei ALLE bereits verbuchten Zahlungen geprüft, nicht nur die neu hinzugefügte, was das hinzufügen einer neuen Zahlung ohne aufheben der Bücherknotrolle in solch einem Fall unmöglich macht.
Dies wurde zwar teilweise korrigiert (http://trac.kivitendo.de/ticket/1502) jedoch nur für Einkaufsrechnungen (is.pl) und auch das sehr fragil: Es wird stets nur der letzte Eintrag in der Liste der Zahlungsvorgänge geprüft (was nach einem "Erneuern" keinen Sinn mehr macht, da der letzte Eintrag leer ist; außerdem ist es möglich bereits gebuchte Zahlungsvorgänge zu ändern).

Historie

#1

Von Peter Schulgin vor fast 8 Jahren aktualisiert

Vorschlag für den zweiten Teil (Bücherkontrolle prüft auch ALTE Zahlungsvorgänge):

  1. Bei der Anzeige von "alten" Zahlungsvorgängen, welche außerhalb der Bücherkontrolle liegen, diese readonly anzeigen - analog zu dem Fall wenn Zahlungen nur am selben Tag editierbar sind (Mandantekonfiguration->Buchungskonfiguration->Änderbarkeit von Zahlungen).
  2. Bücherkontrolle nur auf editierbare Zahlungsvorgänge anwenden
#2

Von Martin Helmling vor fast 8 Jahren aktualisiert

  • Zugewiesen an wurde auf Martin Helmling gesetzt
  • % erledigt wurde von 0 zu 70 geändert
#3

Von Martin Helmling vor fast 8 Jahren aktualisiert

  • Abgabedatum wurde auf 01.06.2016 gesetzt
  • % erledigt wurde von 70 zu 100 geändert
#4

Von Martin Helmling vor mehr als 7 Jahren aktualisiert

  • Status wurde von Neu zu Erledigt geändert
#5

Von Jan Büren vor mehr als 5 Jahren aktualisiert

  • Status wurde von Erledigt zu Feedback geändert

Zwei Anmerkungen zu dem Commit:


if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));

Beim ersten date_closed wird nicht %myconfig übergeben. Das scheint auch in der Form.pm keinen Unterschied zu machen, der Parameter wird angenommen, aber in der Routine nicht weiter verarbeitet.

Das kritischer Problem ist, wenn ein alter gldate Eintrag noch in einer nicht abgeschlossenen Periode ist.
Dann erhält man, bspw.:

Bücher geschloßen zum 30.11.2018
Eine (alte) Zahlung am 10.12.2018 mit gldate 12.12.2018 gebucht
Eine neue Zahlung am 19.12. wirft dann einen Fehler weil:

Zahldatum 10.12. mit Buchungsdatum:


if (SELECT 1 FROM defaults WHERE '10.12.2018' < '30.11.2018') && not (SELECT 1 FROM defaults WHERE '07.12.2018' < '30.11.2018') ) 

Odyn löst das Problem indem es in der HTML-Maske noch einen Eintrag für olddatepaid setzt (s.a. 8ef8b247).
Das wäre auch meine erster Lösungsansatz, lieber wäre es mir, dass die acc_trans_id "zusätzlich" nicht gelöscht werden, d.h. es wird nur das verbucht, was auch wirklich vom Benutzer neu eingegeben worden ist.

Auch abrufbar als: Atom PDF