Mengenvalidierung (RMB)
Mengenvalidierung (RMB)
Validierung gegen die Bestellmenge (RMB)
Die Validierung gegen die Bestellmenge für RMB-Positionen kann über die
Eigenschaft settings.validateAgainstOrderQuantity im Skript
ou.cust.ptpINV.settings aktiviert oder deaktiviert werden.
Ist die Eigenschaft auf true gesetzt, wird pro Position validiert,
dass die Rechnungs- und die gelieferte Menge, wenn diese gleich sind, die
Bestellmenge nicht unter- und nicht überschreiten. Ist die Eigenschaft auf
false gesetzt (Standard), wird diese Validierung übersprungen.
Validierungsschritte
- Stimmt die gelieferte Mengeneinheit und die der Rechnung überein? -> Fehler, wenn nicht
- Ist die gelieferte Menge größer als die Bestellmenge? -> Fehler, wenn ja
- Ist die gelieferte Menge kleiner als die Bestellmenge? -> Rechnung wartet auf Wareneingang, wenn ja
- Ende der Funktion, wenn
validateAgainstOrderQuantityauffalsegesetzt ist - Ist die Rechnungsmenge größer als die Bestellmenge? -> Fehler, wenn ja
- Ist die Rechnungsmenge kleiner als die Bestellmenge? -> Fehler, wenn ja
Validierung gegen den Bestellpreis (RMB)
Die Validierung des Bestell-Einzelpreises gegen den Rechnungs-Einzelpreis
kann über die Eigenschaft settings.validateOrderAndInvoiceSingleAmount
im Skript ou.cust.ptpINV.settings gesteuert werden.
Die folgenden Werte sind möglich:
| Wert | Beschreibung |
|---|---|
"off" | Keine Preisprüfung |
"goodsReceiptRequired" | Nur Positionen mit WE erforderlich = true |
"noGoodsReceiptRequired" | Nur Positionen mit WE erforderlich = false |
"all" | Alle Positionen (Standard) |
Die Prüfung wird nach einer erfolgreichen Wareneingangsprüfung durchgeführt. Wenn der Bestell-Einzelpreis und der Rechnungs-Einzelpreis nicht übereinstimmen, wird ein Fehlerstatus gesetzt und die Mappe wird an "Prüfe Einkauf" weitergeleitet.
const settings = {
(...)
// Nur Positionen mit WE erforderlich prüfen
validateOrderAndInvoiceSingleAmount: "goodsReceiptRequired",
(...)
};
Steuerung der Validierung über Callbacks
Im Callback-Skript ou.tmpl.ptpINV.callbacks.goodsReceiptCheck gibt es die
Funktion checkIfAllGoodsDeliveredBefore, die vor der Mengenvalidierung
pro Position aufgerufen wird.
Um die Funktion anzupassen, muss zuerst ein zugehöriges Cust-Skript
ou.cust.ptpINV.callbacks.goodsReceiptCheck erstellt werden.
Standardmäßig gibt die Funktion nichts zurück, was bedeutet, dass die Validierung wie gewohnt durchgeführt wird.
Die folgende Validierung überschreiben
Um die Validierung zu überschreiben, kann nun der Funktion
checkIfAllGoodsDeliveredBefore ein Rückgabewert hinzugefügt werden:
{
allGoodsDelivered?: boolean;
isOrderQuantityMismatch?: boolean;
}
allGoodsDelivered steuert, ob die Lieferung der Rechnung als vollständig
behandelt werden soll, d.h. ob die Rechung weiterhin auf einen Wareneingang
wartet oder im Workflow fortschreiten soll.
isOrderQuantityMismatch steuert, ob die Validierung gegen die Bestellmenge
erfolgreich war oder nicht. Je nach Wert, wird der Mappe ein Statuseintrag
hinzugefügt bzw. dieser entfernt.
Einen Fehler werfen
Soll im Prozess ein Fehler geworfen, an der Mappe also der Status
GoodsReceiptCheckStates.ERROR gesetzt werden, kann dem Array errorMessages,
der in die Funktion gegeben wird, eine Fehlermeldung hinzugefügt werden. Diese
wird dann als Statuseintrag an der Mappe gesetzt.