Verkaufspreise erzeugen mit Scripts
Artikel - Artikel - Verkaufspreise erzeugen
Bei den Tabellen Verkaufspreise und Artikelgruppen können Preise mittel der Funktion Verkaufspreise erzeugen... neu gebildet werden. Der Beschrieb gilt auch für die Preiserzeugung unter der Tabelle Artikel, ergänzt um die Zuhilfenahme von Scripts.
Artikel | Funktion Verkaufspreise erzeugen |
---|---|
Checkbox "Keine Null-Preise erzeugen | Weil Formeln als Resultat auch Null ergeben können (z.B. auch wenn die Formel falsch ist), kann mit der Checkbox „Keine Null-Preise erzeugen“ festgelegt werden, dass keine Null-Preise erzeugt werden sollen. |
![]() |
Klickt man auf den Button „i“, erscheint folgendes Info-Fenster: ![]() |
Folgendes Script anwenden | Auswählen, welches man möchte |
Neu | Siehe Beschrieb unten |
Bearbeiten | |
Löschen |
Scripts erstellen
Beim Skripten muss folgendes beachtet werden:
- Das Resultat, sprich: der neue Preis, muss am Schluss in der globalen Variablen zwingend „<>r_Script_Result“ stehen (siehe Abbildungen).
- Normalerweise geht die Neuberechnung und damit auch das Skript von einer bestehenden Zahl aus (das ist die gewählte Kalkulationsbasis, welche man oben im Dialog wählt). Damit das Skript mit dieser Grundlage weiterrechnen kann, muss die Zahl auf irgend eine Art ins Skript gelangen. Sie ist in der globalen Variablen „<>r_Script_Parameter_1“ gespeichert und kann in einem Skript z.B. folgendermassen übernommen werden:
- Man kann auch Skripts definieren, welche die neuen Preise ohne Kalkulationsbasis berechnen. Dann wird der Wert in „<>r_Script_Parameter_1“ (also die Kalkulationsbasis) einfach nicht übernommen bzw. nicht verwendet. Das folgende Beispiel errechnet den neuen Verkaufspreis nur aus Angaben der Freien Felder des Artikels selber: Verkaufspreis := 10 mal FreiZahl6 plus FreiZahl7.
- Sind noch keine Verkaufspreise vorhanden, kann mit der Zuweisung „<>t_Script_Result_1:=“EUR“ “ im Skript festgelegt werden, für welche Währung die neuen Preise angelegt werden sollen.
- Was allenfalls ins Bemerkungsfeld der Verkaufspreise geschrieben wird, kann mit der Zuweisung „<>Result_Text:=“Meine Bemerkung“ “ festgelegt werden.
Basiscript Preiserzeugung aufgrund von Einträgen im Script
- Es liegt ein gültiger Einkaufspreis (allenfalls in Fw) vor.
- Das Script sieht wie folgt aus:
Initialisierung der variablenc_Real($r_Basis)SRDatum01:=!01.01.2020!
Datum für PreishistorisierungSRText01:="CHF"Währung in welcher der Preis erzeugt wirdSRDezimalzahl01:=1.0
Faktor 1SRDezimalzahl02:=1.0Faktor 2SRDezimalzahl03:=1.0
Faktor 3SRDezimalzahl04:=1.0 `Faktor 4$r_Basis:=<>r_Script_Parameter_1<>t_Script_Result_1:=SRText01<>r_Script_Result:=$r_Basis*SRDezimalzahl01*SRDezimalzahl02*SRDezimalzahl03*SRDezimalzahl04<>Result_Text:="Verkaufspreis erzeugt am "+string(SRDatum01)+"; Faktor 1: "+string(SRDezimalzahl01)+"; Faktor 2: "+string(SRDezimalzahl02)+"; Faktor 3: "+string(SRDezimalzahl03)+"; Faktor 4: "+string(SRDezimalzahl04)
Basiscript Preiserzeugung aufgrund von Freien Feldern im Artikelstamm
- Es liegt ein gültiger Einkaufspreis (allenfalls in Fw) vor.
- Das Script sieht wie folgt aus:
Initialisierung der variablenc_Real($r_Basis)SRDatum01:=!01.01.2020!
Datum für PreishistorisierungSRText01:="CHF"Währung in welcher der Preis erzeugt wirdSRDezimalzahl01:=[s0_Artikel]f_Zahl__6
Faktor 1SRDezimalzahl02:=[s0_Artikel]f_Zahl__7Faktor 2SRDezimalzahl03:=[s0_Artikel]f_Zahl__8
Faktor 3SRDezimalzahl04:=[s0_Artikel]f_Zahl__9 `Faktor 4$r_Basis:=<>r_Script_Parameter_1<>t_Script_Result_1:=SRText01<>r_Script_Result:=$r_Basis*SRDezimalzahl01*SRDezimalzahl02*SRDezimalzahl03*SRDezimalzahl04<>Result_Text:="Verkaufspreis erzeugt am "+string(SRDatum01)+"; Faktor 1: "+string(SRDezimalzahl01)+"; Faktor 2: "+string(SRDezimalzahl02)+"; Faktor 3: "+string(SRDezimalzahl03)+"; Faktor 4: "+string(SRDezimalzahl04)
CHF-Verkaufspreiserzeugung mittels Scripts am Beispiel eines EUR-Einkaufspreises eines Kunden
- Es liegt ein gültiger Einkaufspreis in Euro vor.
- Das Script sieht wie folgt aus:
Initialisierung der variablenc_Real($r_Basis)SRDezimalzahl01:=[s0_Artikel]f_Zahl__6
Faktor 1: WährungSRDezimalzahl02:=[s0_Artikel]f_Zahl__7Faktor 2: WährungskompensationSRDezimalzahl03:=[s0_Artikel]f_Zahl__8
Faktor 3: TransportSRDezimalzahl04:=[s0_Artikel]f_Zahl__9 `Faktor 4: Verkaufsmarge$r_Basis:=<>r_Script_Parameter_1<>t_Script_Result_1:="EUV"<>r_Script_Result:=$r_Basis*SRDezimalzahl01*SRDezimalzahl02*SRDezimalzahl03*SRDezimalzahl04<>Result_Text:="Verkaufspreis erzeugt am 01.01.2000; Währung: "+string(SRDezimalzahl01)+"; Währungskompensation: "+string(SRDezimalzahl02)+"; Transport: "+string(SRDezimalzahl03)+"; Verkaufsmarge: "+string(SRDezimalzahl04)
Beispiel von Rundungen von Verkaufspreisen
Möglichkeit 1
<>r_Script_Result:=$r_Basis*(SRDezimalzahl01/100)*SRDezimalzahl02 <>r_Script_Result:=Round(<>r_Script_Result;0) //runden auf 0 Nachkommastellen (=1 Fr.) oder <>r_Script_Result:=Round(<>r_Script_Result;1) //runden auf 1 Nachkommastellen (=10 Rp.)
Möglichkeit 2 (nur aufrunden)
C_REAL($r_Gerundet) $r_Gerundet:= Round(<>r_Script_Result;0) //auf 1 Fr. runden If ($r_Gerundet<<>r_Script_Result) //gerundet ist kleiner als ungerundet – also abgerundet <>r_Script_Result:=$r_Gerundet + 1 Else <>r_Script_Result:=$r_Gerundet End if