Zum Hauptinhalt springen

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:

  1. Es wird immer versucht, alle Mengeneinheiten auf die Einheit der Bestellung zu normalisieren, da mit dieser Einheit auch gebucht werden muss.

  2. Es wird also versucht, die Bestelleinheit einer Gruppe zuzuordnen:

    const item = {
    itemOrderQuantityUnit: "Stk", -> // kann der Gruppe "STK" zugeordnet werden
    itemQuantityUnit: "st.",
    itemQuantityUnitDelivered: "stk",
    }
  3. 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 werden
    itemQuantityUnit: "Stk", // normalisiert auf "Stk" der Bestelleinheit
    itemQuantityUnitDelivered: "Stk", // normalisiert auf "Stk" der Bestelleinheit
    }
  4. Falls die Bestelleinheit keiner Gruppe zugeordnet werden kann, wird versucht, die anderen Einheiten zu bereinigen und direkt auf die Bestelleinheit zu normalisieren:

    // Vorher
    const item = {
    itemOrderQuantityUnit: "L", -> // wird nicht in der Koniguration gefunden
    itemQuantityUnit: "l.",
    itemQuantityUnitDelivered: "l",
    }

    // Nachher
    const item = {
    itemOrderQuantityUnit: "L", -> // wird nicht in der Koniguration gefunden
    itemQuantityUnit: "L", // nach Transformation auf Großbuchstaben und Entfernen von Punkten direkt auf "L" normalisiert
    itemQuantityUnitDelivered: "L", // nach Transformation auf Großbuchstaben direkt auf "L" normalisiert
    }
  5. 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.