Parameter Preisberechnung
  • 20 Sep 2024
  • 4 Minuten zu lesen
  • Dunkel
    Licht
  • pdf

Parameter Preisberechnung

  • Dunkel
    Licht
  • pdf

Artikel-Zusammenfassung

Bei der Parameter-Preisberechnung erfolgt die Preisberechnung für eine Antwort eines Frageparameters über das hierfür neu eingeführte Preismakro eines Frageparameters.

Sobald ein Preismakro bei einem Frageparameter eingetragen wird, werden Zugriffsmakros bzw. Preismakros, welche bei Preismatrizen hinterlegt sind, nicht ausgeführt. Die Preisberechnung erfolgt somit nur über die neue Methode! Alle Einstellungen, welche bei den Antworten in den Laschen Preis sowie Variablen eingestellt werden können, werden für die neue Methode ebenfalls ignoriert.

Für die neue Parameter-Preisberechnung werden alle Einstellungen im neuen Preismakro mit Interface-Methoden gelöst.

Makroablauf

Bei F4-Auwahl (rein springen)

1. Unterdrückungsmakro
2. Abhängigkeitsmakro
3. Preismakro (falls Antwort mit Preisanzeige aktiviert wurde)


Validieren (raus springen)

1. Unterdrückungsmakro
2. Abhängigkeitsmakro
3. Validierungsmakro
4. Preismakro (falls Preisermittlung zur Laufzeit lizenziert bzw. aktiviert wurde)

Interface-Methoden

Im Preismakro des Frageparameters können mittels neuer ISS-Interface-Methoden direkt Daten vom Konfigurator ermittelt werden, bzw. Daten beim Konfigurator gesetzt werden.

Diese Interface-Methoden werden somit nicht erst beim Abschluss einer Procedure an den Konfigurator übergeben, sondern direkt nachdem die Methode ausgeführt wurde.
Das erlaubt mehrere Preiszugriffe innerhalb einer Procedure, ohne über spezielle Zyklen arbeiten zu müssen. ( PRMPRS_EXIT/ PRMPRS_NBR ist somit nicht mehr nötig)

Preise aus Matrizen ermitteln

Die Parameter-Preisberechnung erlaubt nach wie vor Preise aus dem bestehendem System der Preismatrizen zu ziehen. Anleitung zu den Preismatrizen findet man hier.
Dafür stehen 2 Interface-Methoden zur Verfügung:

ISS.GetMatrixPrices

Ermittlung von Grundpreis, Aufschlag und Mindestpreis aus der entsprechenden Preismatrixzeile einer bestimmten Preismatrix.

ISS.GETMATRIXPRICES ( MATRIX, KEY1, KEY2, KEY3, KEY4, KO_ACC, INPUTOUTPUT nGrundpreis, INPUTOUTPUT nAufschlag, INPUTOUTPUT nMindestpreis)

Die beiden Parameter MATRIX und KEY1 sowie die INPUTOUTPUT-Parameter si nd Pflichtwerte!
Wenn der Parameter KO_ACC (Zugriffsart) nicht angegeben wird, dann wird defaultmäßig = als Zugriffsart verwendet.
Bei KEY2- KEY4 wird defaultmäßig blank verwendet, wenn kein Wert angegeben wird.


Die Zugriffsart ( KO_ACC) wird über folgende Systemkonstante definiert:

Interner Wert

Operator

Systemkonstante

Beschreibung

0

=

SysConst.KoAcc.Equal

Der Schlüssel muss exakt dem Matrixzeilen Eintrag entsprechen

1

<>

SysConst.KoAcc.NotEqual

Es wird der nächst höhere (nicht-gleiche) Eintrag in der Matrix gesucht und ausgewählt. Gilt nur für den letzten Schlüssel. Alle anderen arbeiten mit „=“

2

<

SysConst.KoAcc.Less

Es wird der nächst niedrige (nicht-gleiche) Eintrag in der Matrix gesucht und ausgewählt. Gilt nur für den letzten Schlüssel. Alle anderen arbeiten mit „=“

3

>

SysConst.KoAcc.Greater

In der Matrix wird die erste Zeile gesucht, die nicht der Antwort entspricht und wird dann ausgewählt. Gilt nur für den letzten Schlüssel. Alle anderen arbeiten mit „=“

4

<=

SysConst.KoAcc.LessEqual

Es wird der nächst höhere oder gleiche Eintrag in der Matrix gesucht und ausgewählt. Gilt nur für den letzten Schlüssel. Alle anderen arbeiten mit „=“

5

>=

SysConst.KoAcc.GreaterEqual

Es wird der nächst niedrige oder gleiche Eintrag in der Matrix gesucht und ausgewählt. Gilt nur für den letzten Schlüssel. Alle anderen arbeiten mit „=“

6

>=(2)

SysConst.KoAcc.GreaterEqual2

Es werden die nächst höheren oder gleichen Einträge zweier abhängiger Keys in der Matrix gesucht und ausgewählt (wird zB bei Maße verwendet). Gilt nur für die letzten 2 Schlüssel. Alle anderen arbeiten mit „=“

7

>=(3)

SysConst.KoAcc.GreaterEqual3

Es werden die nächst höheren oder gleichen Einträge abhängig von drei Keys in der Matrix gesucht und ausgewählt. Gilt nur für die letzten 3 Schlüssel. Alle anderen arbeiten mit „=“

8

>=(4)

SysConst.KoAcc.GreaterEqual4

Es werden die nächst höheren oder gleichen Einträge abhängig von vier Keys in der Matrix gesucht und ausgewählt. Gilt nur für die letzten 4 Schlüssel. Alle anderen arbeiten mit „=“

ISS.GetMatrixPricePrs1

Wird nur der Grundpreis der entsprechenden Preismatrixzeile benötigt, dann steht folgende Interface-Methode zur Verfügung:

ISS.GETMATRIXPRICEPRS1 ( MATRIX , KEY1 , KEY2 , KEY3 , KEY4 , KO_ACC , INPUTOUTPUT nGrundpreis)

Beispiele

Ermitteln des Grundpreises eines Produktes über eine Preismatrix, welche einen Rasterpreis mit Breite und Höhe besitzt:

nGrundpreis = 0

ISS.GETMATRIXPRICEPRS1 ( "MmFensterGP" , STR$ (nBreite), STR$ (nHoehe), SYSCONST. KOACC. GreaterEqual2, INPUTOUTPUT nGrundpreis)


Ermitteln des Grundpreises sowie einen Aufschlag eines Zubehörs über eine Preismatrix:

nGP = 0

nAP = 0

ISS.GETMATRIXPRICES ( "MmZubehoer" , EVAL ( ASKPRMID ), INPUTOUTPUT nGP, INPUTOUTPUT nAP)

Setzen eines Preises

Für das Setzen eines Preises für eine Preisgruppe steht eine weitere Interface-Methode zur Verfügung:

ISS.SetPrice

ISS.SETPRICE ( "PgPreisgruppe" , nVerkaufspreis, nEinkaufspreis)

Preisgruppe sowie Verkaufspreis sind Pflichtfelder.
Wird kein Einkaufspreis angegeben, dann wird der Einkaufspreis auf denselben Wert gesetzt wie der Verkaufspreis. Die Systemvariable INDEPENDENTPCHCALCULATION wird für die neue Methode somit nicht mehr berücksichtigt. Die angegebene Preisgruppe muss im System angelegt sein.

Weitere Steuerungsmöglichkeiten

ISS.SetUndefinedPrice

Bei einer Preisgruppe des Frageparameters vermerken, dass der Preis undefiniert (?) ist. Die angegebene Preisgruppe muss definiert sein!
Wenn für eine Preisgruppe ein undefinierter Preis definiert ist, dann bleibt der Preis undefiniert, auch wenn ein Preis <> ? gesetzt werden sollte!

ISS.SETUNDEFINEDPRICE ( "PgPreisgruppe" )

ISS.PriceGroupResetList

Löschen einer kommagetrennten Liste von Preisgruppen, wobei die angegebenen Preisgruppen für alle Frageparameter gelöscht werden.
Es wird hierbei nicht überprüft, ob die angegebenen Preisgruppen auch definiert sind. Bei der Preisberechnung für die F4-Auswahl wird dies nicht berücksichtigt!

ISS.PRICEGROUPRESETLIST ( "PgPreisgruppe1,PgPreisgruppe2" )

ISS.SetShowZeroPrice

Festlegen, dass die Preisgruppe auch dann angezeigt werden soll, wenn Preis = 0. Dies ist unabhängig vom Frageparameter.

ISS.SETSHOWZEROPRICE ( "PgPreisgruppe" )

ISS.SetDisKey1-6

Definition von variablen Rabatten DisKey1-6.

ISS.SETDISKEY1 ( "PgPreisgruppe" , "Diskey1-Value" )


War dieser Artikel hilfreich?

What's Next