Kaufmännische Software für Handel, Handwerk und Produktionsbetriebe
Diese Prozedur ermittelt den Verkaufspreis, bezogen auf einen Artikel und einen spezifischen Kunden. Hierbei werden die verschiedenen Rabatt- und Staffelsysteme berücksichtigt:
Die Paramater Artikel-ID, Adress-ID, Menge, Währung und BruttoFlg dienen als Eingangsparameter und liefern als Ergebnis den neuen Preis, einen Rabatt und die Quelle der Ermittlung.
PROC cn_Preis_GetVk
@ad_Id int,
@ar_Id int,
@Menge numeric(18,4),
@Waehrung char(3),
@BruttoFlg bit,
@Vk numeric(18,2),
@Rabatt numeric(18,2),
@Quelle varchar(20)
@ad_Id
Das Argument @ad_id ist die ID vom Typ Integer eines bestehenden Kunden, also einer Adresse.
@ar_id
Das Argument @ar_id ist die ID vom Typ Integer eines bestehenden Artikels.
@Menge
Das Argument @Menge gibt die Anzahl des Artikels. Diese Zahl wird benötigt, falls Staffelpreise hinterlegt sind.
@Waehrung
Über das Argument @Waehrung wird ggf. eine Konvertierung des Preises in eine Zielwährung vorgenommen. Für die EURO-Zone wird hier 'EUR' angegeben.
@BruttoFlg
Über das Argument @BruttoFlg wird angegeben, ob der Vk-Preis inkl. Steuer sein soll oder nicht. Bei BruttoFlg=0 ist der Ergebnispreis ein Nettopreis, bei BruttoFlg=1 ist es ein Preis inkl. der MwSt.
@Vk
[OUT]
Das Argument @Vk ist der gezogene Preis, der sich aufgrund des Artikels und des Kunden bzw. der Menge ergibt. Je nach Einstellung des BruttoFlg ist er netto oder enthält den gültigen Steuersatz.
@Rabatt
Das Argument @Rabatt ist ein Ergebnis, der aufgrund des Artikels und Kunden aus der Rabattgruppen und Kundengruppenmatrix entnommen wird.
@Quelle
Das Argument @Quelle gibt an, aus welchem Bereich die Kondition ermittelt wurde. Folgende Rückgaben sind möglich:
- Keine
- Artikel
- Preisliste
- Angebot
- Auftrag
Des Weiteren ist ein Rückgabewert der Form "FEHLER: xx" möglich. In diesem Fall schlug die Preisermittlung fehl. Zur genaueren Beschreibung des aufgetretenen Fehlers wird außerdem ein Laufzeitfehler durch RAISERROR erzeugt .
Weiter Rückgabewerte sind ggf. in neuerer API vorhanden.
DECLARE@e int, @Vk numeric(18,2), @Rabatt numeric(18,2), @quelle varchar(20)EXEC@e = cn_Preis_GetVk @Ad_Id=50, @Ar_Id=10, @Menge=1, @Waehrung='EUR', @BruttoFlg=0, @Vk=@Vk OUT, @Rabatt=@Rabatt OUT, @Quelle=@Quelle OUTSELECT@e [Exec], @Vk [Vk], @Rabatt [Rabatt], @Quelle [Quelle]
In diesem Beispiel wird der VK-Preis zum Artikel mit der ID „10“ und einer Adresse mit der ID „50“ ermittelt. Die Preisabfrage basiert auf der Menge von „1“. Das Ergebnis soll in der Währung „EUR“ und ohne Steuer ausgegeben werden. Zusätzlich wird noch der Wert Rabatt zurückgegeben und enthält einen Zeilenrabatt, falls zum angegebenen Artikel und der Adresse eine Rabattgruppe sowie Kundengruppe existiert, die mit einem Zeilenrabatt verknüpft ist. Der Wert Quelle enthält den Wert „Artikel“, wenn der Preis aus den Stammdaten geladen wurde, ansonsten der Wert „Preisliste“, wenn dieser aus der Staffelpreisliste geladen wurde.