Zum Inhalt springen Zur Hauptnavigation springen Zur Fußzeile springen

Position-Neuberechnung

Einleitung

Diese Aktion ermöglicht es, bei der Berechnung einer Position im Angebot, in der Bestellung oder im Warenkorb individuelle Konditionen in die Preisermittlung einfließen zu lassen.

Beispiel
BEISPIEL

Sie möchten, dass alle Artikel derselben Artikelgruppe einen Rabatt von 5 % erhalten, sobald drei Artikel dieser Artikelgruppe in einer Bestellung enthalten sind. Sobald einer dieser Artikel wieder entfernt wird, wird der Rabatt ebenfalls entfernt.

Wählen Sie bitte den Aktionstyp „Position-Neuberechnung“ aus.

Auslöser

In der Karte „Ausführung bei“ können Sie festlegen, wann die Aktion ausgelöst wird.

Wenn Sie „Ermittlung von Preisen“ (TriggeredBy = „priceCalculation“) aktivieren, wird die Aktion immer ausgeführt, wenn eine Änderung innerhalb der Entität zur Neuberechnung von Preisen führt. Welche Änderungen diese Neuberechnung veranlassen können, können Sie in der Hilfe unter <Bestellungen/Angebote > Bestellung/Angebot bearbeiten> einsehen.

Zudem können Sie es den Benutzern ermöglichen, die Aktion selbst auszulösen, indem Sie „Manuelle Ausführung“ (TriggeredBy = „manually“) aktivieren. Dann kann der Benutzer die Aktion im Kontext- oder Dreipunktemenü der übergeordneten Entität auswählen.

Sie können auch den Auslöser „Änderung Feldinhalt“ (TriggeredBy = „fieldChange“) aktivieren. Die Aktion wird dann ausgeführt, wenn Änderungen an den in der aufgeführten Tabelle hinterlegten Feldern festgestellt werden.

Die Aktion kann in diesen Entitäten ausgelöst werden:

  • Angebot (offer)
  • Bestellung (order)
  • Warenkorb (shoppingCart)

Eingabeparameter

Neben den allgemeinen werden zusätzlich diese Daten übergeben:

KeyDatentypValue
PriceListIdintdie ID der Preisliste, die aktuell zugewiesen ist
DiscountListIdintdie ID der Rabattliste, die aktuell zugewiesen ist
CurrencyCodestringdie Währung, die aktuell zugewiesen ist
CurrencyCodeExchangeRatedecimalder aktuell verwendete Umrechnungsfaktor
HasGrossPricesbooldas Preiskennzeichen (brutto/netto)
AccountIdstringdie Kundennummer (KHKKontokorrent.Kto)
DocumentDatedatetimedas Belegdatum
TaxClassIdshortdie Besteuerungsart
PositionsDictionary<string,object>[]Position / Artikel

Neben den allgemeinen Positionsdaten werden zusätzlich diese Daten übergeben:

KeyDatentypValue
ExternalEntityReferencestringdie Salesware-Referenz für die Position
CustomDictionary<string, object>die Custom-Felder, die für die Position definiert sind (s. Entity-Spezifische Eingabeparameter)
Tipp
TIPP

Das Kennzeichen, ob der Einzelpreis manuell verändert worden ist, kann genutzt werden, um Positionen mit einem individuellen Preis/Rabatt von der Neuberechnung auszuschließen.

Ausgabeparameter

Es werden die allgemeinen Rückmeldungen erwartet, allerdings pro Position:

KeyDatentypValue
PositionsDictionary<string,object>[]die Positionsdaten

Das sind die Ausgabeparameter der Position:

KeyDatentypValue
EntityKeystringder Salesware-Key für diesen Datensatz
UnitPricedecimalder Einzelpreis
DiscountValuedecimalder Rabattsatz (in Prozent)
IsManualPricebooldas Kennzeichen, ob der Einzelpreis manuell verändert worden ist (EinzelpreisManuell)

Sobald die Aktion also eine Änderung an den Positionskonditionen feststellt, können Sie diese an Salesware übermitteln.

Tipp
TIPP

Das Kennzeichen, ob der Einzelpreis manuell verändert worden ist, kann genutzt werden, um Positionen von einer späteren Neuberechnung aufgrund einer Änderung an der Entität auszuschließen.

Beispiel
BEISPIEL

Der Benutzer ändert den Preis eines Artikels. Diese Änderung wird durch die Aktion überprüft und stellt keine Bedingung für eine Änderung der Preise dar.

Beispiel
BEISPIEL

Der Benutzer ändert einen Preis und dieser ist zu gering. Der Benutzer bekommt eine Fehlermeldung angezeigt und muss den Preis wieder korrigieren. Alternativ kann die Aktion auch den korrekten Preis übergeben.

War dieser Beitrag hilfreich?

0
0 Kommentare

Es gibt noch keine Kommentare

Hinterlassen Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert