Warenwirtschaft: N-6 — Punkt mit 1-2 Nachkommastellen = Dezimaltrenner (Kundenentscheid 15.07.2026)
Neuer Helper reFormatWawiNumber(): '5.1'/'5.12' werden als 5,1/5,12 gelesen (kommt beim Kopieren von Daten vor); '1.500' bleibt Tausender. Gilt nur für die WaWi-Eingaben (Mengen, Preise, Gewichte, Rezeptur) — reFormatNumber() app-weit unverändert. JS-Parser (parseGerman, parseDeNumber) auf dieselbe Regel vereinheitlicht; parseDeNumber behandelte '1.500' bisher sogar als 1,5. Tests: +1 (Parsing-Matrix). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
9b6c9def97
commit
016e8bbbd8
11 changed files with 60 additions and 31 deletions
|
|
@ -35,6 +35,11 @@
|
|||
if (!value) {
|
||||
return 0;
|
||||
}
|
||||
// Audit N-6: einzelner Punkt mit 1–2 Nachkommastellen = Dezimaltrenner
|
||||
// ("5.1" = 5,1) — identische Regel wie serverseitig (reFormatWawiNumber).
|
||||
if (/^-?\d+\.\d{1,2}$/.test(value)) {
|
||||
return parseFloat(value) || 0;
|
||||
}
|
||||
return parseFloat(value.replace(/\./g, '').replace(',', '.')) || 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80,8 +80,13 @@
|
|||
|
||||
function parseDeNumber(val) {
|
||||
if (val === undefined || val === null || val === '') return NaN;
|
||||
var s = String(val).replace(/\s/g, '').replace(',', '.');
|
||||
var n = parseFloat(s);
|
||||
var s = String(val).replace(/\s/g, '');
|
||||
// Audit N-6: einzelner Punkt mit 1–2 Nachkommastellen = Dezimaltrenner;
|
||||
// sonst deutsche Konvention (Punkt = Tausender) — wie serverseitig.
|
||||
if (!/^-?\d+\.\d{1,2}$/.test(s)) {
|
||||
s = s.replace(/\./g, '');
|
||||
}
|
||||
var n = parseFloat(s.replace(',', '.'));
|
||||
return isNaN(n) ? NaN : n;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue