Skip to content
Code-Schnipsel Gruppen Projekte
Commit 648863a9 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

fix: Prices like 4.958 parsed correctly to float

Übergeordneter 0d7d4bf5
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
1 Merge Request!9Dev
......@@ -16,6 +16,7 @@
use function preg_replace;
use function round;
use function str_replace;
use function strpos;
use function substr;
use function trim;
......@@ -195,6 +196,14 @@ public static function validatePrice($value, $Locale = null)
return round($value, QUI\ERP\Defaults::getPrecision());
}
if (strpos($value, '.') === 1 && strpos($value, ',') === false) {
$float = floatval($value);
if ($value == $float) { // don't use ===
return $float;
}
}
$value = (string)$value;
$isNegative = substr($value, 0, 1) === '-';
......
  • Autor(in) Owner

    @mor @peat ich hab in die ERP money Klasse ein Fix eingespielt. Da das grundlegende parsen von Werten zu Float Werten aber von euch kommt, schaut einmal einen Blick drauf.

    Folgendes Problem, deutsches System aber englische Eingabe. Zum Beispiel der Preis 4.958 wurde dann zu 4958. Was ich nun mache, wenn ein . und kein , dann nutze ich floatval und prüfe ob das value == dem float ist. Wenn ja, gebe ich den floatval value zurück.

    Spricht da was dagegen?

    Der Bug lag hier: https://dev.quiqqer.com/quiqqer/erp/-/blob/master/src/QUI/ERP/Money/Price.php#L229-231

    von Henning Leutz bearbeitet
  • Nein geht so nicht, wenn jetzt 1.000 eingegeben wird (also 1000€) dann wandelst du das in 1 um . Es gibt hierfür keine Lösung, ist also auch kein bug an dieser Stelle.

0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren