Kleiner Anpassungen / Aktualisierung Dokumentation
This commit is contained in:
@@ -70,7 +70,14 @@ export function parseCents(text) {
|
||||
}
|
||||
|
||||
export function parseQuantity(text) {
|
||||
const cleaned = String(text).trim().replace(",", ".");
|
||||
// Leerzeichen und Tausenderpunkte entfernen, Komma als Dezimaltrenner.
|
||||
// Die Punkte fallen weg, weil eine Eingabe wie "1.500" im Deutschen
|
||||
// eintausendfünfhundert meint - und weil formatQuantity keine
|
||||
// Tausendertrennung mehr erzeugt, bleibt kein anderer Fall übrig.
|
||||
const cleaned = String(text)
|
||||
.trim()
|
||||
.replace(/[\s\u00a0.]/g, "")
|
||||
.replace(",", ".");
|
||||
if (!cleaned) return null;
|
||||
const value = Number(cleaned);
|
||||
return Number.isFinite(value) && value >= 0 ? value : null;
|
||||
@@ -100,5 +107,13 @@ export function formatQuantity(value) {
|
||||
if (value === null || value === undefined) return "";
|
||||
const num = Number(value);
|
||||
if (!Number.isFinite(num)) return String(value);
|
||||
return num.toLocaleString("de-DE", { maximumFractionDigits: 3 });
|
||||
// OHNE Tausendertrennung. Der Wert landet auch in Eingabefeldern, und
|
||||
// parseQuantity liest den deutschen Tausenderpunkt als Dezimalpunkt:
|
||||
// Aus einer 1000-Gramm-Packung wurde beim Bearbeiten eine mit 1 Gramm.
|
||||
// Bei Mengen bringt die Trennung ohnehin wenig - "1000 g" liest sich
|
||||
// gut genug.
|
||||
return num.toLocaleString("de-DE", {
|
||||
maximumFractionDigits: 3,
|
||||
useGrouping: false,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user