Project

General

Profile

Fehler #164

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

Added by Peter Schulgin over 8 years ago. Updated almost 6 years ago.

Status:
Feedback
Priority:
Normal
Assignee:
Martin Helmling
Target version:
-
Start date:
05/17/2016
Due date:
06/01/2016
% Done:

100%

Estimated time:

Description

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).

History

#1

Updated by Peter Schulgin over 8 years ago

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

Updated by Martin Helmling over 8 years ago

  • Assignee set to Martin Helmling
  • % Done changed from 0 to 70
#3

Updated by Martin Helmling over 8 years ago

  • Due date set to 06/01/2016
  • % Done changed from 70 to 100
#4

Updated by Martin Helmling almost 8 years ago

  • Status changed from Neu to Erledigt
#5

Updated by Jan Büren almost 6 years ago

  • Status changed from Erledigt to Feedback

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.

Also available in: Atom PDF