Erstellt vor 4 Jahren
Zuletzt geändert vor 4 Jahren
#1487 closed Fehler (fixed)
Wechselkurs wird falsch ausgelesen
| Erstellt von: | info@… | Verantwortlicher: | p.reetz@… |
|---|---|---|---|
| Priorität: | normal | Meilenstein: | |
| Komponente: | kivitendo ERP | Version: | 2.6.1 |
| Schweregrad: | kritisch | Stichworte: | Verkauf |
| Beobachter: | s.schoeling@…, info@… |
Beschreibung
Wenn man eine Rechnung in einer Fremdwährung eingeben will und für diesen Tag bereits ein Wechselkurs in der Datenbank eingetragen ist, so wird dieser falsch ausgelesen. So wird aus einem Kurs von 0.765 ein Kurs von 76500 gemacht.
Die Ursache liegt darin, dass die Variable $form->{exchangerate} teilweise als formatierter String (0,765) und teilweise als Zahl (0.765) verwendet wird. Es ist mir bisher nicht gelungen, dies konsistent im Quelltext zu verändern ohne dass es an anderer Stelle klemmt.
Anhänge (1)
Änderungshistorie (4)
comment:1 Geändert vor 4 Jahren durch info@…
- Beobachter info@… hinzugefügt
Geändert vor 4 Jahren durch info@…
comment:2 Geändert vor 4 Jahren durch info@…
Es hat sich herausgestellt, dass der Fehler nicht in der Formatierung lag. Das Procedere ist wie folgt:
Bei post_invoice wird geprüft, ob ein Wechselkurseintrag für das fragliche Datum existiert:
Ja -> diese Zahl wird genommen.
Nein -> $form->{exchangerate} wird als lokalisierter Eingabestring interpretiert und in eine Zahl konvertiert.
Fehlerhaft war die Abfrage: Es wurde $form->{transdate} statt $form->{invdate} genommen. $form->{transdate} wird vom Aufrufer (in is.pl) aber vor dem Aufruf nicht gesetzt, weshalb die Abfrage immer den "Nein"-Fall produzierte.
Ein Patch liegt bei.
Weiterungen:
- Für Einträge bei den einzelnen Positionen wird ebenfalls transdate_$i verwendet, weswegen in der Datenbank in invoice transdate immer leer bleibt. Ich halte diesen Eintrag aber eh für redundant und habe es nicht weiterverfolgt.
- In IR.pm findet sich in post_invoice die gleiche Abfrage. Ich weiß nicht, ob sie dort sinnvoll ist oder ebenfalls falsch
comment:3 Geändert vor 4 Jahren durch s.schoeling@…
- Lösung auf fixed gesetzt
- Status von new nach closed, s.schoeling@linet-services.de geändert
Danke. Committed als a2f07c159111d089b8f5ea139bec46a8624ba4c4.

Patch für Wechselrsbug in Verkaufsrechnungen, relativ zu 2.6.1