Wenn der Eingabepunkt aus der Erfassung einer Position heraus aufgerufen wird (Angebot, Auftrag, Lieferung, Rechnung, Gutschrift), ist keine Protokolldatei geöffnet.
Es gibt eine laufende Maskensteuerung, wenn der Eingabepunkt aus folgenden Funktionen aufgerufen wird:
. Button Lieferung in der Auftragsverwaltung, Button Freigabe in der Lieferverwaltung.
. Funktionen Automatik-Lieferung von Aufträgen, Automatik-Freigabe von Lieferungen.
. Button Rechnung in der Auftragsverwaltung, Button Freigabe in der Rechnungsverwaltung.
. Funktionen Automatik-Fakturierung von Aufträgen, Automatik-Freigabe von Rechnungen.
. Vertragsverwaltung.
. Anlage einer Gutschriftsposition mit Bestandsbewegung.
. Fenster für Änderungen an Bestandsabgängen in der Lieferverwaltung.
. Preisausgleichsfunktion
Wird der Eingabepunkt aus der Erfassung einer Position (Angebot, Auftrag, Lieferung, Rechnung, Gutschrift), aus der Erstellung einer Gutschriftsposition mit Bestandsbewegung oder in der Lieferverwaltung aus dem Änderungsfenster für Bestandsabgänge heraus aufgerufen, ist keine Protokolldatei geöffnet.
Wenn der Eingabepunkt aus der Funktion Automatik-Lieferung oder Automatik-Fakturierung von Aufträgen bzw. Automatik-Freigabe von Lieferungen oder Rechnungen oder aus dem Preisausgleich heraus aufgerufen wird, ist eine Protokolldatei geöffnet.
Die verschiedenen Aufrufszenarien sind der globalen Variable GCALPFM zu entnehmen.
GCALPFM = 0 Erfassung von Angebots-, Auftrags-, Lieferungs-, Rechnungs- oder Gutschriftspositionen
GCALPFM = 1 Button Lieferung oder Automatik-Lieferung
GCALPFM = 2 Button Freigabe Lieferung oder Funktion Freigabe von Lieferungen
GCALPFM = 3 Button Rechnung (aus einem Auftrag) oder Funktion Automatik-Fakturierung von Aufträgen
GCALPFM = 4 Button Freigabe Rechnung oder Funktion Freigabe von Rechnungen
GCALPFM = 5 Erfassung von Verträgen
GCALPFM = 6 Anlage einer Gutschriftsposition mit Bestandsbewegung
GCALPFM = 7 Fenster für Änderungen an Bestandsabgängen in der Lieferverwaltung.
GCALPFM = 8 Preisausgleichsfunktion
Um den Kontext zu ermitteln, muss also ggf. diese Variable ausgewertet werden.
Aufruf des Eingabepunkts:
. Im Unterprogramm für die Margenberechnung (GCALPFM = 0).
Dieses Unterprogramm wird von allen Verkaufsfunktionen gemeinsam verwendet. Es wird immer aufgerufen, wenn eine Position erfasst wird (Angebot, Auftrag, Lieferung, Rechnung, Gutschrift) und die Marge neu berechnet werden muss:
· Nach der Mengenerfassung.
Der in der Preissuche ermittelte Bruttopreis wird übernommen. Dann wird der Nettopreis und damit die Marge bestimmt.
· Nach der Änderung des Bruttopreises oder einer Abschlags- / Aufschlagsspalte. Eine solche Änderung zieht eine erneute Berechnung des Nettopreises und folglich eine erneute Berechnung der Marge nach sich.
· Nach der Freigabe der Position.
Die mit dem Objekt verbundene Maskenklasse ist belegt ([M:SQH], [M:SOH], [M:SDH], [M:SIH]). Das Programm befindet sich im Unterprogramm CALPFM.
Folgende Variablen werden vom Unterprogramm als Parameter übergeben:
· MSK : Maskenklasse (leer: MSK wird mit [M] belegt)
· NLIG : Index der Position in der Tabelle.
· PRI : Nettopreis der Position
· VAT : Tabelle mit den drei Steuercodes der Position (VAT(0), VAT(1), VAT(2))
· PRITYP : Preistyp des Dokuments
· SIT : Bestandsstandort
· LITM : Artikelreferenz
· CHGTYP : Wechselkurstyp
· DAT : Dokumentdatum
· CUR : Dokumentwährung
· COEF : Umrechnungsfaktor Verkaufseinheit / Lagereinheit der Position
· INICPRPRI : Initialisierungskennzeichen des Kalkulationspreises (0 = keine Initialisierung, 1 = Initialisierung ohne Zurücksetzen, 2 = Initialisierung mit Zurücksetzen)
· XSTOMGTCOD : Kennzeichen Aktualisierung der Bestände
Folgende Variablen werden vom Unterprogramm als Arbeitsvariablen berechnet:
· PHTNET : Nettopreis für die Margenberechnung (Nettopreis)
· WQTY : Menge in Lagereinheiten
· COUTHT : Selbstkostenpreis kalkuliert
Folgende Variablen werden vom Unterprogramm berechnet und zurückgegeben:
· XPFM : Marge
· XCPRPRI : Kalkulationspreis
Die Margenberechnung und damit der Eingabepunkt werden nur aufgerufen, wenn die Variable INICPRPRI auf den Wert 1 oder 2 gesetzt ist.
. Bei der Lieferung eines Auftrags per Klick auf den Button oder mit der Funktion Automatik-Lieferung (GCALPFM = 1).
Die erneute Berechnung der Marge wird während der Belegung der Auskunftsposition zur Lieferung aus der Auskunftsposition des Auftrags berechnet, wenn eine Lieferposition angelegt wird. Das Programm befindet sich unmittelbar vor dem Schreiben der Auskunftsposition der Lieferung.
Die Buffer [F :SOH], [F :SOQ], [F :SOP] sind mit dem zu liefernden Auftrag belegt. [F :SDH] und [F :SDD] sind mit der in Anlage befindlichen Lieferung belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
. Bei Freigabe einer Lieferung per Klick auf den Button oder mit der Funktion Automatik-Freigabe von Lieferungen (GCALPFM = 2).
Die erneute Margenberechnung wird für die im Bestand geführten Artikel vor der Bestandsaktualisierung durchgeführt.
Die Buffers [F :SDH] und [F :SDD] sind wie die Buffer [F :ITM] und [F :ITS] belegt.
. Bei der Fakturierung eines Auftrags per Klick auf den Button oder mit der Funktion Automatik-Fakturierung von Aufträgen (GCALPFM = 3).
Die Berechnung der Marge wird während der Belegung der Auskunftsposition zur Rechnung aus der Auskunftsposition des Auftrags berechnet, wenn eine Rechnungsposition angelegt wird. Das Programm befindet sich unmittelbar vor dem Schreiben der Auskunftsposition der Lieferung.
Die Buffer [F :SOH], [F :SOP] und [F :SOQ] sind mit dem zu fakturierenden Auftrag belegt. [F :SIH], [F :SIV] und [F :SID] sind mit der in Anlage befindlichen Rechnung belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
. Bei Freigabe einer Rechnung per Klick auf den Button oder mit der Funktion Automatik-Freigabe von Rechnungen (GCALPFM = 4).
Die erneute Margenberechnung wird für die Auftragsrechnungen und für die im Bestand geführten Artikeln jeweils vor der Bestandsaktualisierung durchgeführt.
Die Buffers [F :SIH], [F :SIV] und [F :SDD] sind wie die Buffer [F :ITM] und [F :ITS] belegt.
. In der Kontraktverwaltung (GCALPFM = 5).
Die erneute Margenberechnung wird bei Kontraktänderungen durchgeführt, wenn sich das Steuersystem ändert. Es ist notwendig, die Suche nach den Steuercodes für jede Artikelposition erneut durchzuführen. Auch wenn zu der entsprechenden Artikelposition Preispositionen erfasst sind, müssen der Netto- und Bruttopreis und die Marge erneut berechnet werden.
Diese Verarbeitung wird beim Speichern der Änderung in der Maskensteuerung für die Kontraktaktualisierung in der Aktion AVANT_MODFIC ausgeführt.
Die Buffer [F :SOH], [F :SOC] und [F :SOP] sind mit dem Kontrakt, der Artikelposition und der Preisposition belegt. Die Maskenklasse [M:SOR1] ist ebenfalls mit dem Kontrakt belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
. Bei der Anlage einer Gutschriftsposition mit Bestandsbewegung zu einem Artikel, dessen Margenberechnungsbasis der durchschnittliche Chargenpreis ist (GCALPFM = 6).
Die Margenberechnung wird bei der Positionsanlage erneut ausgeführt. Der Kontext ist dabei jedoch nicht derselbe wie bei der Erfassung der Position. Die Berechnung wird in der Aktion INICRE_LIG des Objekts ausgeführt, während die Rechnungsauskunftsposition [F:SID] aus der Maske [M:SIH4] belegt wird. Die Variable NOL (nolign-1) enthält den Index der in Anlage befindlichen Position in der Positionstabelle [M:SIH4].
Die Buffer [F :SIH], [F :SIV] und [F :SID] sind mit der in Anlage befindlichen Gutschrift belegt. Die Masken des Rechnungsobjekts sind mit der in Anlage befindlichen Gutschrift belegt. Das Programm befindet sich vor dem Schreiben des Datensatzes [F:SID]. Die Datensätze [F :SIH] und [F :SIV] werden geschrieben. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
. In der Lieferverwaltung bei Änderungen an Bestandsabgängen zu einer freigegebenen Lieferung per Rechtsklick auf die Positionen "Änderung Abgänge" (GCALPFM=7).
Änderungen an Abgängen können eine erneute Berechnung des Kalkulationspreises anstoßen, wenn die Charge geändert wird oder die Berechnungsbasis für die Marge der durchschnittliche Chargenpreis ist. Die Berechnung wird in der Aktion ENR der Aktion SAISTOSORM während der nach dem Speichern der Änderungen im Bestand zusätzlich durchgeführten Aktualisierungen vorgenommen.
Die Buffer [F :SDH] und [F :SDD] sind mit der Lieferung belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt. Die Maskenklasse [M:SOM] (Maske Abgangsänderung) steht zur Verfügung.
. Beim Preisausgleich mit der Preisausgleichsfunktion (GCALPFM = 8) können die Werte der mit der Lieferung verbundenen Bestandsbewegungen aktualisiert werden.
Mit dieser Funktion können die Werte der mit einer Lieferung verbundenen Bestandsbewegungen aktualisiert werden. In der Funktion werden die GDP und die Margen erneut berechnet.
Die Buffer [F :SDH] und [F :SDD] sind mit der Lieferung belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
In allen Fällen gilt:
Die Variable COUTHT enthält den berechneten Kalkulationspreis.
Der Eingabepunkt befindet unmittelbar hinter dem Aufruf des Unterprogramms für die Kalkulationspreisberechnung und unmittelbar vor der Margenberechnung. Folgende Variablen werden verwendet:
· WPOINT_COUT (local decimal) :
Wird bei Aufruf des Eingabepunkts deklariert. Es handelt sich um die auf die Marge umzulegenden Zusatzkosten. Diese müssen vom Eingabepunkt belegt werden.
· WPOINT_RET (local integer) :
Vor Aufruf des Eingabepunkts wird die Variable mit dem Wert 0 initialisiert. Es handelt sich um die Variable, der der Rückgabestatus zu entnehmen ist. Um WPOINT_COUT zu verwenden, muss die Variable vom Eingabepunkt auf 1 zu setzen.
Diese beiden Variablen müssen folglich vom Eingabepunkt gesetzt werden.
Beim Verlassen des Eingabepunkts wird der neue Kalkulationspreis berechnet, wenn WPOINT = 1.
COUTHT = COUTHT + WPOINT_COUT
Die Marge wird berechnet:
PFM = PHTNET - COUTHT
Wichtige Hinweise:
Der X3-Kalkulationspreis wird in der (der globalen Variable GLOCALDEV zu entnehmenden) Unternehmenswährung berechnet. Er wird in die Dokumentwährung umgerechnet, wenn diese sich von GLOCALDEV unterscheidet.
WPOINT_COUT muss also in der Dokumentwährung zurückgegeben werden.
Der X3-Kalkulationspreis wird in Lagereinheiten berechnet. Er wird in Auftragseinheiten umgerechnet. Der X3-Kalkulationspreis wird mit dem Umrechnungsfaktor VE/STK COEF multipliziert.
WPOINT_COUT muss also in der Auftragswährung übergeben werden.
Da das Unterprogramm zur Margenberechnung von allen Funktionen gemeinsam verwendet wird, muss der Kontext bekannt sein. Hierfür ist wie oben beschrieben die Variable GCALPFM zu verwenden.
Der Eingabepunkt betrifft die Berechnung des Kalkulationspreises und der Verkaufsmarge.
Mit dem Eingabepunkt können der berechnete Kalkulationspreis und die berechnete Marge geändert werden.
Er wird aus jeder Verarbeitung aufgerufen, in der Margen berechnet werden können:
Wenn der Eingabepunkt aus der Erfassung einer Position heraus aufgerufen wird (Angebot, Auftrag, Lieferung, Rechnung, Gutschrift), ist keine Protokolldatei geöffnet.
Es gibt eine laufende Maskensteuerung, wenn der Eingabepunkt aus folgenden Funktionen aufgerufen wird:
. Button Lieferung in der Auftragsverwaltung, Button Freigabe in der Lieferverwaltung.
. Funktionen Automatik-Lieferung von Aufträgen, Automatik-Freigabe von Lieferungen.
. Button Rechnung in der Auftragsverwaltung, Button Freigabe in der Rechnungsverwaltung.
. Funktionen Automatik-Fakturierung von Aufträgen, Automatik-Freigabe von Rechnungen.
. Vertragsverwaltung.
. Anlage einer Gutschriftsposition mit Bestandsbewegung.
. Fenster für Änderungen an Bestandsabgängen in der Lieferverwaltung.
. Preisausgleichsfunktion
Wird der Eingabepunkt aus der Erfassung einer Position (Angebot, Auftrag, Lieferung, Rechnung, Gutschrift), aus der Erstellung einer Gutschriftsposition mit Bestandsbewegung oder in der Lieferverwaltung aus dem Änderungsfenster für Bestandsabgänge heraus aufgerufen, ist keine Protokolldatei geöffnet.
Wenn der Eingabepunkt aus der Funktion Automatik-Lieferung oder Automatik-Fakturierung von Aufträgen bzw. Automatik-Freigabe von Lieferungen oder Rechnungen oder aus dem Preisausgleich heraus aufgerufen wird, ist eine Protokolldatei geöffnet.
Die verschiedenen Aufrufszenarien sind der globalen Variable GCALPFM zu entnehmen.
GCALPFM = 0 Erfassung von Angebots-, Auftrags-, Lieferungs-, Rechnungs- oder Gutschriftspositionen
GCALPFM = 1 Button Lieferung oder Automatik-Lieferung
GCALPFM = 2 Button Freigabe Lieferung oder Funktion Freigabe von Lieferungen
GCALPFM = 3 Button Rechnung (aus einem Auftrag) oder Funktion Automatik-Fakturierung von Aufträgen
GCALPFM = 4 Button Freigabe Rechnung oder Funktion Freigabe von Rechnungen
GCALPFM = 5 Erfassung von Verträgen
GCALPFM = 6 Anlage einer Gutschriftsposition mit Bestandsbewegung
GCALPFM = 7 Fenster für Änderungen an Bestandsabgängen in der Lieferverwaltung.
GCALPFM = 8 Preisausgleichsfunktion
Um den Kontext zu ermitteln, muss also ggf. diese Variable ausgewertet werden.
Aufruf des Eingabepunkts:
. Im Unterprogramm für die Margenberechnung (GCALPFM = 0).
Dieses Unterprogramm wird von allen Verkaufsfunktionen gemeinsam verwendet. Es wird immer aufgerufen, wenn eine Position erfasst wird (Angebot, Auftrag, Lieferung, Rechnung, Gutschrift) und die Marge neu berechnet werden muss:
· Nach der Mengenerfassung.
Der in der Preissuche ermittelte Bruttopreis wird übernommen. Dann wird der Nettopreis und damit die Marge bestimmt.
· Nach der Änderung des Bruttopreises oder einer Abschlags- / Aufschlagsspalte. Eine solche Änderung zieht eine erneute Berechnung des Nettopreises und folglich eine erneute Berechnung der Marge nach sich.
· Nach der Freigabe der Position.
Die mit dem Objekt verbundene Maskenklasse ist belegt ([M:SQH], [M:SOH], [M:SDH], [M:SIH]). Das Programm befindet sich im Unterprogramm CALPFM.
Folgende Variablen werden vom Unterprogramm als Parameter übergeben:
· MSK : Maskenklasse (leer: MSK wird mit [M] belegt)
· NLIG : Index der Position in der Tabelle.
· PRI : Nettopreis der Position
· VAT : Tabelle mit den drei Steuercodes der Position (VAT(0), VAT(1), VAT(2))
· PRITYP : Preistyp des Dokuments
· SIT : Bestandsstandort
· LITM : Artikelreferenz
· CHGTYP : Wechselkurstyp
· DAT : Dokumentdatum
· CUR : Dokumentwährung
· COEF : Umrechnungsfaktor Verkaufseinheit / Lagereinheit der Position
· INICPRPRI : Initialisierungskennzeichen des Kalkulationspreises (0 = keine Initialisierung, 1 = Initialisierung ohne Zurücksetzen, 2 = Initialisierung mit Zurücksetzen)
· XSTOMGTCOD : Kennzeichen Aktualisierung der Bestände
Folgende Variablen werden vom Unterprogramm als Arbeitsvariablen berechnet:
· PHTNET : Nettopreis für die Margenberechnung (Nettopreis)
· WQTY : Menge in Lagereinheiten
· COUTHT : Selbstkostenpreis kalkuliert
Folgende Variablen werden vom Unterprogramm berechnet und zurückgegeben:
· XPFM : Marge
· XCPRPRI : Kalkulationspreis
Der Eingabepunkt wird unabhängig vom Wert der Variable INICPRPRI aufgerufen.
. Bei der Lieferung eines Auftrags per Klick auf den Button oder mit der Funktion Automatik-Lieferung (GCALPFM = 1).
Die erneute Berechnung der Marge wird während der Belegung der Auskunftsposition zur Lieferung aus der Auskunftsposition des Auftrags berechnet, wenn eine Lieferposition angelegt wird. Das Programm befindet sich unmittelbar vor dem Schreiben der Auskunftsposition der Lieferung.
Die Buffer [F :SOH], [F :SOQ], [F :SOP] sind mit dem zu liefernden Auftrag belegt. [F :SDH] und [F :SDD] sind mit der in Anlage befindlichen Lieferung belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
. Bei Freigabe einer Lieferung per Klick auf den Button oder mit der Funktion Automatik-Freigabe von Lieferungen (GCALPFM = 2).
Die erneute Margenberechnung wird für die im Bestand geführten Artikel vor der Bestandsaktualisierung durchgeführt.
Die Buffers [F :SDH] und [F :SDD] sind wie die Buffer [F :ITM] und [F :ITS] belegt.
. Bei der Fakturierung eines Auftrags per Klick auf den Button oder mit der Funktion Automatik-Fakturierung von Aufträgen (GCALPFM = 3).
Die Berechnung der Marge wird während der Belegung der Auskunftsposition zur Rechnung aus der Auskunftsposition des Auftrags berechnet, wenn eine Rechnungsposition angelegt wird. Das Programm befindet sich unmittelbar vor dem Schreiben der Auskunftsposition der Lieferung.
Die Buffer [F :SOH], [F :SOP] und [F :SOQ] sind mit dem zu fakturierenden Auftrag belegt. [F :SIH], [F :SIV] und [F :SID] sind mit der in Anlage befindlichen Rechnung belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
. Bei Freigabe einer Rechnung per Klick auf den Button oder mit der Funktion Automatik-Freigabe von Rechnungen (GCALPFM = 4).
Die erneute Margenberechnung wird für die Auftragsrechnungen und für die im Bestand geführten Artikeln jeweils vor der Bestandsaktualisierung durchgeführt.
Die Buffers [F :SIH], [F :SIV] und [F :SDD] sind wie die Buffer [F :ITM] und [F :ITS] belegt.
. In der Kontraktverwaltung (GCALPFM = 5).
Die erneute Margenberechnung wird bei Kontraktänderungen durchgeführt, wenn sich das Steuersystem ändert. Es ist notwendig, die Suche nach den Steuercodes für jede Artikelposition erneut durchzuführen. Auch wenn zu der entsprechenden Artikelposition Preispositionen erfasst sind, müssen der Netto- und Bruttopreis und die Marge erneut berechnet werden.
Diese Verarbeitung wird beim Speichern der Änderung in der Maskensteuerung für die Kontraktaktualisierung in der Aktion AVANT_MODFIC ausgeführt.
Die Buffer [F :SOH], [F :SOC] und [F :SOP] sind mit dem Kontrakt, der Artikelposition und der Preisposition belegt. Die Maskenklasse [M:SOR1] ist ebenfalls mit dem Kontrakt belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
. Bei der Anlage einer Gutschriftsposition mit Bestandsbewegung zu einem Artikel, dessen Margenberechnungsbasis der durchschnittliche Chargenpreis ist (GCALPFM = 6).
Die Margenberechnung wird bei der Positionsanlage erneut ausgeführt. Der Kontext ist dabei jedoch nicht derselbe wie bei der Erfassung der Position. Die Berechnung wird in der Aktion INICRE_LIG des Objekts ausgeführt, während die Rechnungsauskunftsposition [F:SID] aus der Maske [M:SIH4] belegt wird. Die Variable NOL (nolign-1) enthält den Index der in Anlage befindlichen Position in der Positionstabelle [M:SIH4].
Die Buffer [F :SIH], [F :SIV] und [F :SID] sind mit der in Anlage befindlichen Gutschrift belegt. Die Masken des Rechnungsobjekts sind mit der in Anlage befindlichen Gutschrift belegt. Das Programm befindet sich vor dem Schreiben des Datensatzes [F:SID]. Die Datensätze [F :SIH] und [F :SIV] werden geschrieben. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt.
. In der Lieferverwaltung bei Änderungen an Bestandsabgängen zu einer freigegebenen Lieferung per Rechtsklick auf die Positionen "Änderung Abgänge" (GCALPFM=7).
Änderungen an Abgängen können eine erneute Berechnung des Kalkulationspreises anstoßen, wenn die Charge geändert wird oder die Berechnungsbasis für die Marge der durchschnittliche Chargenpreis ist. Die Berechnung wird in der Aktion ENR der Aktion SAISTOSORM während der nach dem Speichern der Änderungen im Bestand zusätzlich durchgeführten Aktualisierungen vorgenommen.
Die Buffer [F :SDH] und [F :SDD] sind mit der Lieferung belegt. Die Buffer [F :ITM] und [F :ITS] sind mit dem Artikel belegt. Die Maskenklasse [M:SOM] (Maske Abgangsänderung) steht zur Verfügung.
. Beim Preisausgleich mit der Preisausgleichsfunktion (GCALPFM = 8) können die Werte der mit der Lieferung verbundenen Bestandsbewegungen aktualisiert werden.
Mit dieser Funktion können die Werte der mit einer Lieferung verbundenen Bestandsbewegungen aktualisiert werden. In der Funktion werden die GDP und die Margen erneut berechnet.
Die Buffers [F :SDH] und [F :SDD] sind mit der Lieferung und wie die Buffer [F :ITM] und [F :ITS] belegt.
In allen Fällen gilt:
Der Eingabepunkt befindet hinter dem Aufruf des Unterprogramms für die Kalkulationspreisberechnung und vor der Margenberechnung.
Die Variable XPFM enthält die berechnete Marge.
Die Variable XCPRPRI enthält den berechneten Kalkulationspreis.
Diese beiden Variablen können folglich vom Eingabepunkt gesetzt werden.
Wichtige Hinweise:
Der Kalkulationspreis XCPRPRI und die Marge XPFM werden für eine Verkaufseinheit und in der Dokumentwährung berechnet.
Diese beiden Werte müssen gemäß der Anzahl von Dezimalstellen des Preises GDECPRI gerundet werden.
Da das Unterprogramm zur Margenberechnung von allen Funktionen gemeinsam verwendet wird, muss der Kontext bekannt sein. Hierfür ist wie oben beschrieben die Variable GCALPFM zu verwenden.
Der Eingabepunkt betrifft die Prüfung der Verkaufsmarge.
Relevant ist der Eingabepunkt bei Anzeige der Meldung, dass die Marge unter der zum Verkaufsartikel definierten Mindestmarge liegt Mit dem Eingabepunkt kann diese Meldung geändert bzw. die Prüfung unterdrückt werden.
Er wird bei jeder Prüfung von Margenberechnungen aufgerufen.
Es gibt keine laufende Maskensteuerung.
Es ist keine Protokolldatei geöffnet.
Der Eingabepunkt wird im Unterprogramm CTLPFM für die Margenprüfung aufgerufen.
Aufgerufen wird dieses Unterprogramm bei der Erfassung von Angebotspositionen, Aufträgen, Kontrakt-Artikeldaten, Lieferungen, Rechnungen, am Ende der Positionen und bei Änderungen an einem Element, das in die Margenberechnung einfließt (nach jeder Preissuche, nach Änderungen am Versandstandort, an Auf- und Abschlägen oder am Kalkulationspreis). Dieses Unterprogramm wird von allen Verkaufsfunktionen gemeinsam verwendet.
Die mit dem Objekt verbundene Maskenklasse ist belegt ([M:SQH], [M:SOH], [M:SDH], [M:SIH] und [M:SOI]). Das Programm befindet sich im Unterprogramm CTLPFM.
Folgende Variablen werden vom Unterprogramm als Parameter übergeben:
· CUR : Dokumentwährung
· XCPRPRI : Kalkulationspreis der Position
· NLIG : Index der Position in der Tabelle. Nicht belegt und bei Kontrakt-Artikeldaten nicht relevant.
Folgende Variablen sind belegt:
· WITMREF : Artikelreferenz
· WSAU : Verkaufseinheit
· PFMRAT : Kalkulierte Marge in Prozent.
Wenn der Eingabepunkt aufgerufen wird, wurde die Berechnung der prozentualen Marge bereits durchgeführt. Der berechnete Prozentsatz liegt unter dem in Artikel - Verkauf definierten Mindestsatz.
GMESSAGE ist mit der anzuzeigenden Meldung belegt.
Diese Meldung kann mit dem Eingabepunkt geändert werden. Hierfür ist die Variable GMESSAGE zu ändern. Wenn GMESSAGE geleert wird, wird keine Meldung angezeigt, und die Prüfung ist nicht aktiv (kein Hinweis oder keine Sperre).
In nachstehender Tabelle weist das Kennzeichen "Wichtiger Inhalt" auf Inhalte hin, die im Kontext kohärent sind (geladen ist der aktuelle Kunde).
Tabelle | Wichtiger Inhalt | Tabellentitel |
ITMSALES | Ja | Artikel - Verkauf |
Der Eingabepunkt betrifft die Prüfung des Nettopreises im Verkauf.
Relevant ist der Eingabepunkt bei Anzeige der Meldung, dass der Nettopreis unter dem in Artikel - Verkauf definierten Mindestpreis liegt. Mit dem Eingabepunkt kann diese Meldung geändert bzw. die Prüfung unterdrückt werden.
Er wird bei jeder Prüfung von Nettopreisberechnungen aufgerufen.
Es gibt keine laufende Maskensteuerung.
Es ist keine Protokolldatei geöffnet.
Der Eingabepunkt wird im Unterprogramm CTLNETPRI für die Nettopreisprüfung aufgerufen.
Aufgerufen wird dieses Unterprogramm bei der Erfassung von Angebotspositionen, Aufträgen, Kontrakt-Artikeldaten, Lieferungen, Rechnungen, am Ende der Positionen und bei Änderungen an einem Element, das in die Nettopreisberechnung einfließt (nach jeder Preissuche, nach Änderungen am Umrechnungsfaktor VE / STK oder an Ab- / Aufschlägen). Dieses Unterprogramm wird von allen Verkaufsfunktionen gemeinsam verwendet.
Die mit dem Objekt verbundene Maskenklasse ist belegt ([M:SQH], [M:SOH], [M:SDH], [M:SIH] und [M:SOI]). Das Programm befindet sich im Unterprogramm CTLNETPRI.
Folgende Variablen werden vom Unterprogramm als Parameter übergeben:
· BPC : Kunde
· CHGTYP : Preistyp
· DAT : Datum
· CUR : Währung
· NLIG : Index der Position in der Tabelle. Nicht belegt und bei Kontrakt-Artikeldaten nicht relevant.
Folgende Variablen sind belegt:
· WITMREF : Artikelreferenz
· WSAU : Verkaufseinheit
· WNETPRINOT : Nettopreis exkl. USt.
· MONT : Berechneter Mindestpreis (umgerechnet in die passende Einheit und in die passende Währung).
Wenn der Eingabepunkt aufgerufen wird, wurde die Berechnung des Nettopreises exkl. USt. bereits ausgeführt, und dieser Nettopreis ohne USt. liegt unter dem in Artikel - Verkauf definierten Mindestnettopreis ohne USt.
GMESSAGE ist mit der anzuzeigenden Meldung belegt.
Diese Meldung kann mit dem Eingabepunkt geändert werden. Hierfür ist die Variable GMESSAGE zu ändern. Wenn GMESSAGE geleert wird, wird keine Meldung angezeigt, und die Prüfung ist nicht aktiv (kein Hinweis oder keine Sperre).
In nachstehender Tabelle weist das Kennzeichen "Wichtiger Inhalt" auf Inhalte hin, die im Kontext kohärent sind (geladen ist der aktuelle Kunde).
Tabelle | Wichtiger Inhalt | Tabellentitel |
ITMSALES | Ja | Artikel - Verkauf |
ITMMASTER | Ja | Artikel |
Der Eingabepunkt betrifft die Berechnung des Brutto- und des Nettopreises und der Verkaufsmarge.
Mit dem Eingabepunkt kann vor der Margenberechnung bei der Berechnung des Brutto- und des Nettopreises eingegriffen werden.
Der Eingabepunkt wird bei der Erfassung einer Verkaufsdokumentposition aufgerufen (Angebot, Auftrag, Lieferung, Rechnung, Gutschrift).
Es gibt keine laufende Maskensteuerung.
Es ist keine Protokolldatei geöffnet.
Mit der Variable WABREV werden der Kontext und genauer das bearbeitete Dokument ermittelt:
WABREV = SQH2 Erfassung Angebotsposition
WABREV = SOH4 Erfassung Auftragsposition
WABREV = SDH1 Erfassung Lieferposition
WABREV = SIH4 Erfassung Rechnungsposition
Der Eingabepunkt wird im Unterprogramm für die Margenberechnung aufgerufen. Dieses Unterprogramm wird von allen Verkaufsfunktionen gemeinsam verwendet. Es wird immer aufgerufen, wenn eine Position erfasst wird (Angebot, Auftrag, Lieferung, Rechnung, Gutschrift) und die Marge neu berechnet werden muss:
· Nach der Mengenerfassung.
Der in der Preissuche ermittelte Bruttopreis wird übernommen. Dann werden der Nettopreis und die Marge bestimmt.
· Nach der Änderung des Bruttopreises oder einer Abschlags- / Aufschlagsspalte. Eine solche Änderung zieht eine erneute Berechnung des Nettopreises und eine erneute Berechnung der Marge nach sich.
· Nach der Freigabe der Position.
Die mit dem Objekt verbundene Maskenklasse ist belegt ([M:SQH], [M:SOH], [M:SDH], [M:SIH]). Das Programm befindet sich im Unterprogramm CALPFM.
Folgende Variablen werden vom Unterprogramm als Parameter übergeben:
· MSK: Maskenklasse (leer: MSK wird mit [M] belegt)
· NLIG: Index der Position in der Tabelle.
· PRI: Nettopreis der Position
· VAT: Tabelle mit den drei Steuercodes der Position (VAT(0), VAT(1), VAT(2))
· PRITYP: Preistyp des Dokuments
· SIT: Bestandsstandort
· LITM: Artikelreferenz
· CHGTYP: Wechselkurstyp
· DAT: Dokumentdatum
· CUR: Dokumentwährung
· COEF: Umrechnungsfaktor Verkaufseinheit / Lagereinheit der Position
· INICPRPRI: Initialisierungskennzeichen des Kalkulationspreises (0 = keine Initialisierung, 1 = Initialisierung ohne Zurücksetzen, 2 = Initialisierung mit Zurücksetzen)
· XSTOMGTCOD: Kennzeichen Aktualisierung der Bestände
Folgende Variablen werden vom Unterprogramm als Arbeitsvariablen berechnet:
. LQTY: Menge in Verkaufseinheiten
. WITMREF: Artikelreferenz
. LCLCAMT1: Berechnungsbasis für Steuer 1.
. LCLCAMT2: Berechnungsbasis für Steuer 2.
Der Eingabepunkt befindet sich vor dem Aufruf des Unterprogramms für die Bruttopreisberechnung in Abhängigkeit vom Nettopreis (Nettodokument) bzw. umgekehrt (Bruttodokument).
Da das Unterprogramm zur Margenberechnung von allen Funktionen gemeinsam verwendet wird, muss der Kontext bekannt sein. Hierfür ist wie oben beschrieben die Variable WABREV zu verwenden.