Menü

cn_Preis_GetVk

Zurück | Ebene zurück

Diese Prozedur ermittelt den Verkaufspreis, bezogen auf einen Artikel und einen spezifischen Kunden. Hierbei werden die verschiedenen Rabatt- und Staffelsysteme berücksichtigt:

  • Kundengruppen und Rabattgruppen und deren Verknüpfungen mit Zeilenrabatten
  • Preislisten
  • Staffelmengen und Staffelpreise
  • Währungstabellen
  • Netto- und brutto-orientierte Preise
  • Konditionen

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.

Syntax

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)

Argumente

@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.

Beispiel

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 OUT

SELECT @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.