Erstellt vor 9 Jahren

Geschlossen vor 8 Jahren

#291 closed Fehler (fixed)

Wandeln von Angeboten/Anfragen verlieren Nachkommawerte

Erstellt von: hli@… Verantwortlicher: s.schoeling@…
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 2.2
Schweregrad: schwerwiegend Stichworte: Verkauf
Beobachter: s.koehler@…

Beschreibung

Beim Wandeln von Angeboten bzw Anfragen in Aufträge, gehen die Nachkommastellen
bei den Positionen verloren.

Auftrag -> Rechnung ist ok

Änderungshistorie (4)

comment:1 Geändert vor 9 Jahren durch s.koehler@…

  • Beobachter s.koehler@… hinzugefügt
  • Verantwortlicher von p.reetz@… nach s.schoeling@… geändert

Bestätigt und wird demnächst gefixed

comment:2 Geändert vor 9 Jahren durch s.schoeling@…

Habe mir das angeschaut, und werde das jetzt nicht "fixen".

Grund:
Es ist mal wieder ein Problem mit der Verwendung von parse_amount und
format_amount. sellprices werden im prepare_order für die Anzeige formatiert.
Beim Umwandeln von irgendwelchen anderen Formaten in einen Auftrag müssen die
Werte also vorher geparst werden, werden sie aber nicht.

Daraus folgt, dass die Umwandlung von Rechung->Auftrag denselben Fehler hat, was
in der Tat auch der Fall ist.

Nun aber das eigentliche Problem:
Die Umwandlung von Angeboten in Rechnungen funktioniert, weil das parse_amount
aufgerufen wird in.... OE.pm->save, wenn das Angebot geschlossen wird.

Man könnte das ganze jetzt fixen indem man irgendwo ein paar parse_amounts
hineinsetzt (Rabatte haben dasselbe Problem), aber das führt nur wieder zu neuen
Problemen, wenn irgendwann der Auftrag gleichzeitig gespeichert wird und damit
OE.pm->save aufgerufen wird.

Die Verwendung von parse_amount und format_amount auf dieselbe Variable ist
später im Code nicht nachzuvollziehen und jede doppelte Anwendung führt sofort
zur Katastrophe:

  • 2x format_amount -> Nachkommastellen weg, aus 1,50€ wird 1,00€
  • 2x parse_amount -> Komma weg, auf 1,50€ werden 150€

Vorschläge?

comment:3 Geändert vor 9 Jahren durch s.koehler@…

(Mit Bezug zu comment 1)

Bestätigt und wird demnächst gefixed

Der Bug ist doch etwas aufwendiger als gedacht, eine provisorische Beseitigung
würde wahrscheinlich einen Haufen von Bugs zur Folge haben. Um das Problem
komplett zu entfernen, müsste das Konzept der parse_amount & format_amount im
ganzen Programm überarbeitet werden.

Das ist aber ein globaler Eingriff in den Code und muss ausgiebig getestet
werden. Insofern wird das nicht so schnell gefixed werden.

Ich schreibe das mal auf die Roadmap und hoffe das wir das bis zum 2.3.0 schaffen.

Der Bug bleibt weiterhin als NEU bestehen!

comment:4 Geändert vor 8 Jahren durch m.bunkus@…

  • Lösung auf fixed gesetzt
  • Status von new nach closed geändert

Im SVN bis r1631 behoben.

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.