Listenpreise stellen in vielen Fällen das zentrale Preisfindungssystem dar. Es beruht darauf, dass von Kunden (-klassen) unterschiedlich kalkulierte Preise automatisch vom Programm gezogen werden. Dies ist auch in A.eins realisiert: Pro Artikel können im Prinzip beliebig viele Preise vergeben und Kunden zugeordnet werden. Grundlage des Verfahrens ist die Einrichtung einer oder mehrerer Preismatrizen, die Zuordnung von Listenpreisklassen zu Kunden und die Eingabe von Listenpreisen beim Artikel. Auf die Einrichtung von Preismatrizen und ihrer Bedeutung wird im Rahmen der Preispflege eingegangen. Nachfolgend wird unterstellt, dass sie vorhanden ist und die Preise gepflegt werden sollen.
Sowohl in der Preisübersicht der Artikelmaske als auch im Preispflegemodul ist es möglich, mittels einer Datenbankprozedur die Sichtbarkeit und Pflegbarkeit von vorhandenen Preisen zu bestimmten Preislistennummern (Listenpreisbezeichnungen) für ausgewählte Bediener zu erlauben oder zu verbieten. Der Name der Datenbankprozedur wird dazu in der globalen Option ‚Listenpreispflegefilterprozedur‘ ohne Parameterangaben festgelegt. Die verwendeten Datenbankprozeduren müssen ein RESULT mit einem Attribut zurückliefern, dass praktischerweise vom Typ ‚integer‘ oder ‚smallint‘ sein sollte und den Wert 0 (Preis NICHT sichtbar/pflegbar) oder 1 (Preis sichtbar/pflegbar) enthält. Der Name des Ergebnisfeldes ist beliebig wählbar.
Die Parameter der DB-Prozedur werden mittels festgelegter Parameternamen bestimmt. Diese sind mit DEFAULT-Werten in der Parameterliste zu versehen. Aus der Liste der möglichen Parameter müssen nur die tatsächlich benötigten deklariert werden.
Die Parameter, die zur Laufzeit versorgt werden sind:
|
Parameter |
Typ |
Beschreibung |
|
PAR_BEDIENERID |
INTEGER |
Dieser Parameter übergibt die ID des A.eins-Bedieners. |
|
PAR_BEDIENERKLASSE |
INTEGER |
Dieser Parameter übergibt die Bedienerklasse des A.eins-Bedieners. |
|
PAR_ARTIKELID |
INTEGER |
Dieser Parameter übergibt die Artikel ID des zugrundeliegenden Artikels. |
|
PAR_EKVK |
SMALLINT |
Dieser Parameter übergibt den Wert ‚1‘ für Einkaufspreispflege bzw. den Wert ‚2‘ für Verkaufspreispflege. |
|
PAR_PREISGRUPPE |
INTEGER |
Dieser Parameter übergibt die Listenpreisgruppe (Ein- bzw. Verkauf) des zugrundeliegenden Artikels. |
|
PAR_MATRIXNUMMER |
INTEGER |
Dieser Parameter übergibt die Preismatrixnummer (Ein- bzw. Verkauf) des zugrundeliegenden Artikels. |
|
PAR_PREISNUMMER |
INTEGER |
Dieser Parameter übergibt die Preislistennummer des zugrundeliegenden Artikels. |
Beispiel einer privaten Datenbankprozedur, die für Bediener, die der Bedienerklasse 15 oder 20 angehören, die Sicht- und Pflegbarkeit der Preise mit den Preislistennummern 21 und 22 im Verkauf unterbinden ( Voraussetzung ist der Eintrag ‚p_listenpreisfilter‘ in der globalen Option ‚ Listenpreispflegefilterprozedur‘ ) :
CREATE procedure p_listenpreisfilter (
in PAR_BEDIENERKLASSE integer DEFAULT -1,
in PAR_EKVK integer DEFAULT -1,
in PAR_PREISNUMMER integer DEFAULT -1
)
RESULT ("ergval" integer)
BEGIN
declare erlaubt integer;
set erlaubt = 1;
if ( PAR_EKVK = 2 )
then
if ( PAR_BEDIENERKLASSE = 15 or PAR_BEDIENERKLASSE = 20 )
then
if ( PAR_PREISNUMMER = 21 or PAR_PREISNUMMER = 22 )
then
set erlaubt = 0;
end if;
end if;
end if;
if ( erlaubt = 0 )
then
select 0 from dummy;
else
select 1 from dummy;
end if;
END;
Die Bedienung des Preispflegemoduls ist für Ein- und Verkauf identisch.
Bei Aufruf des Punktes Listenpreise Verkauf erscheint folgende Maske:

Folgende Werte müssen dazu eingegeben werden:
Preis/Klassen-Matrix
Diese Matrix dient dazu, bestimmte Preise verschiedenen Kunden-Preisklassen zuzuordnen.
Bei einem Doppelklick auf die Nummer oder die Bezeichnung kann die ausgewählte Matrix bearbeitet werden.
Listenpreisgruppe
Verschiedene Artikel mit derselben Preis/Klassen-Matrix sollen auch verschiedene Preise zugeordnet werden. Um das zu erreichen, können verschiedene Listenpreisgruppen angelegt werden. Andersrum ist es natürlich auch möglich, verschiedene Artikel denselben Preis zuzuordnen, wenn sie dieselbe Listenpreisgruppe haben.
Bei einem Doppelklick auf die Nummer oder die Bezeichnung kann die ausgewählte Listenpreisgruppe bearbeitet werden.
Mengenstaffel
Über die Mengenstaffel kann geregelt werden, welche Preise ab einer bestimmten Menge gestaffelt werden. Ist das bei einem Preis der Fall, steht im oberen Grid in der Spalte „Staff.“ ein „S“, im unteren Grid sind die einzelnen Staffel-Preise pflegbar.
Bei einem Doppelklick auf die Nummer oder die Bezeichnung kann die ausgewählte Mengenstaffel bearbeitet werden. Dort werden auch die Mengen angegeben, an denen der Preis gestaffelt wird.
Zeiträume
Für eine Preisliste kann es beliebig viele Gültigkeitszeiträume mit unterschiedlichen Preisen geben. So ist es z.B. möglich neue Preise im Voraus einzupflegen und automatisch mit dem neuen Gültigkeitszeitraum zu aktivieren. Ein Gültigkeitszeitraum kann auch innerhalb des Gesamtzeitraums eines anderen liegen: Der vergebene Preis ist dann für dieses Intervall aktiv, danach wieder der alte.
Spalten
In der Spalte „Preis“ werden die Preise eingetragen, die Preiseinheit gibt an für wie viele Mengeneinheiten (also z.B. pro 1000) der Preis gültig sein soll und unter Mengeneinheit ist die gültige Mengeneinheit geführt.
Außerdem lässt sich bei einem Doppelklick auf eine Reihe in der Spalte „Preisklassen“ eine Maske öffnen, in der Kunden den jeweiligen Preisklassen zugeordnet werden können.
Die Listenpreise Einkauf bieten die gleichen Möglichkeiten. Sie können als Einkaufspreise beim (Haupt-) Lieferanten betrachtet werden. Zusätzlich besteht die Möglichkeit sie für kalkulatorische Zwecke einzusetzen: Bewertung des Einkaufs, der Produktion, etc.. Näheres findet sich in diesen Abschnitten.