Normalisierung von Mengeneinheiten
Normalisierung von Mengeneinheiten
Standardmäßig werden Mengeneinheiten (z.B. "Stck." -> "STK") beim Abholen der Positionen aus Dexpro und beim Laden von Bestelldaten aus der Datenbank normalisiert.
Das Vorgehen ist dabei wie folgt:
-
Es wird immer versucht, alle Mengeneinheiten auf die Einheit der Bestellung zu normalisieren, da mit dieser Einheit auch gebucht werden muss.
-
Es wird also versucht, die Bestelleinheit einer Gruppe zuzuordnen:
const item = {itemOrderQuantityUnit: "Stk", -> // kann der Gruppe "STK" zugeordnet werdenitemQuantityUnit: "st.",itemQuantityUnitDelivered: "stk",} -
Alle Einheiten, die der Gruppe zugeordnet werden können, werden auf die Bestelleinheit normalisiert, in diesem Fall "Stk":
const item = {itemOrderQuantityUnit: "Stk", -> // kann der Gruppe "STK" zugeordnet werdenitemQuantityUnit: "Stk", // normalisiert auf "Stk" der BestelleinheititemQuantityUnitDelivered: "Stk", // normalisiert auf "Stk" der Bestelleinheit} -
Falls die Bestelleinheit keiner Gruppe zugeordnet werden kann, wird versucht, die anderen Einheiten zu bereinigen und direkt auf die Bestelleinheit zu normalisieren:
// Vorherconst item = {itemOrderQuantityUnit: "L", -> // wird nicht in der Koniguration gefundenitemQuantityUnit: "l.",itemQuantityUnitDelivered: "l",}// Nachherconst item = {itemOrderQuantityUnit: "L", -> // wird nicht in der Koniguration gefundenitemQuantityUnit: "L", // nach Transformation auf Großbuchstaben und Entfernen von Punkten direkt auf "L" normalisiertitemQuantityUnitDelivered: "L", // nach Transformation auf Großbuchstaben direkt auf "L" normalisiert} -
Falls das direkte Matching auch nicht funktioniert, werden die Einheiten nicht normalisiert.
Gruppen definieren/erweitern
Im Skript ou.cust.ptpINV.settings gibt es die Möglichkeit, Gruppen von
Einheiten zu definieren oder zu erweitern.
Soll zum Beispiel die Einheit "KG" in die Normalisierung aufgenommen werden, kann eine neue Gruppe "KG" mit den entsprechenden Einheiten definiert werden:
const settings = {
(...)
units: {
unitGroups: {
STK: ["ST", "STK", "STÜCK", "STCK", "PCE", "PCS", "PC"]
/* Neue Gruppe "KG" mit den entsprechenden Einheiten */
KG: ["KG", "KILO", "KGS", "kg."] // etc.
},
disableUnitNormalization: false
}
};
(...)
Nun werden alle Einheiten, die in der Gruppe "KG" definiert sind, auf "KG" normalisiert.
Die Normalisierung deaktivieren
Im bereits genannten Skript ou.cust.ptpINV.settings gibt es die Option
settings.units.disableUnitNormalization. Diese kann auf true gesetzt
werden, um die Normalisierung zu deaktivieren – die Funktionen im Skript
ou.sp.ptpINV.lib.units ziehen dann diese Option und führen die Normalisierung
nicht mehr durch.