PMS32 Online- Hilfereferenz
EDELMETALLE.BERECHNUNGEN
Berechnungen des Edelmetallzuschlags
Information
Durch die neue Berechnung des Edelmetallzuschlags auf Rohstoffgruppen haben sich die Berechnungen der Werte geändert. Dazu wurden alle Berechnungsgrundlagen in eine neue Klasse gepackt die in PMS32 als globales Objekt zur Verfügung steht. Die Berechnung ist in zwei getrennte Berechnungsgrundlagen aufgeteilt.
Bei beiden Berechnungen werden fast die gleichen SQL Statements ausgeführt. Jedoch ist der Endwert der Berechnung unterschiedlich. Bei der Berechnung auf Kalkulationsbasis wird der Edelmetallzuschlag in der Firmenwährung zurückgegeben bei der Berechnung auf Einkaufsbasis wird der Edelmetallzuschlag in der Währung des Lieferanten zurückgegeben. Je nach dem welche Berechnungsbasis benötigt wird, muss eine andere Methode in der Edelmetallklasse angesprungen werden. Die Ausgaben sind bis auf verschiedene Feldinhalte identisch. Dazu wurde auch die Ansicht „E11_A“ – Edelmetalle geändert. Das Datenraster wurde mit den neuen Werten aufgebaut und auch mit neuen Spalten versehen.
Ansicht enthaltener Edelmetalle im Einkauf:

Wie oben zu sehen, wurde in der Maske D4002 – Bestellvorschlag ein neuer Button eingefügt, mit dem alle enthaltenen Edelmetallzuschläge des Bestellvorschlags angezeigt werden können. Dabei werden die Zuschläge in Lieferantenwährung und Firmenwährung angezeigt. In der Bestellung sind die Edelmetallzuschläge immer in der Währung des Lieferanten angegeben. Zur besseren Übersicht und Nachvollziehbarkeit wird zusätzlich der Edelmetallzuschlag in Firmenwährung angezeigt. Die Einstellungen für dieses Datenraster sind sowohl im Einkauf wie im Verkauf (Kalkulation) gleich. Zusätzlich werden die Summen für das entsprechende Edelmetall angezeigt.
SQL Select für die Berechnung des Edelmetallzuschlags in der Kalkulation
Für die, die Interesse daran haben, ist unten der SQL Select beschrieben, wie der Edelmetallzuschlag in der Kalkulation berechnet wird.
SELECT ;
CAST(wbxx.position AS V(100)) AS position,;
wbxx.icb01s,;
wbxx.idb01s,;
CAST(m.lcWe AS C(3))
AS idc03fi,;
CAST(m.lcWe AS C(3))
AS idc03we,;
c03.idc03 AS idc03li,;
1 AS urfwefi,;
c98cu.idc98,;
c98cu.bezei
AS icc98,;
d05.ipd05,;
d05.rohgrp,;
c98cu.preis,;
CAST(d05.basis/c03.faktor*c03.kurs
AS B(6)) AS basis,;
CAST(c98cu.gewi AS B(3)) AS gewi,;
CAST(m.tnMenge*wbxx.menge1
AS B(3)) AS menge,;
d05.edelzahl,;
d05.uflaezu,;
CAST((c98cu.preis-d05.basis/c03.faktor*c03.kurs)/c98cu.gewi*d05.edelzahl/d05.uflaezu*m.tnMenge*wbxx.menge1
AS B(6)) AS summe;
FROM (m.tcC98) AS c98cu,
(THIS.cDbfDir+'c61.dbf') AS c61,
(THIS.cDbfDir+'c03.dbf') AS c03,
(THIS.cDbfDir+'d05.dbf') AS d05,
(m.tcWB) AS wbxx;
WHERE wbxx.ID == m.tcId ;
AND NOT wbxx.is_sl ;
AND wbxx.idb01s+wbxx.idc61
== d05.idb01+d05.idc61 ;
AND d05.ipd05
= "DEB";
AND d05.idc61
== c61.idc61
AND c61.idc03 == c03.idc03;
AND d05.idc98
== c98cu.idc98 AND c98cu.idc26 == THIS.diSprache;
UNION ALL;
SELECT ;
CAST(wbxx.position AS V(100)) AS position,;
wbxx.icb01s,;
wbxx.idb01s,;
CAST(m.lcWe AS C(3)) AS idc03fi,;
CAST(m.lcWe AS C(3)) AS idc03we,;
c03.idc03
AS idc03li,;
1 AS urfwefi,;
c98cu.idc98,;
c98cu.bezei AS icc98,;
d05.ipd05,;
d05.rohgrp,;
c98cu.preis,;
CAST(IIF(d05.ipd05="DE1",wbxx.eknet,wbxx.ekbr) AS B(6)) AS basis,;
CAST(d05.basis AS B(3)) AS gewi,;
CAST(m.tnMenge * wbxx.menge1 AS B(3)) AS menge,;
d05.edelzahl,;
d05.uflaezu,;
CAST(IIF(d05.ipd05="DE1",wbxx.eknet,wbxx.ekbr)*d05.edelzahl/100*wbxx.menge1*m.tnMenge AS B(6)) AS summe;
FROM (THIS.cDbfDir+'d05.dbf') AS d05, (THIS.cDbfDir+'d05.dbf') AS d05a,;
(THIS.cDbfDir+'c61.dbf') AS c61, (THIS.cDbfDir+'c03.dbf') AS c03,;
(m.tcC98)
AS c98cu, (m.tcWB) AS wbxx;
WHERE wbxx.ID == m.tcId ;
AND NOT wbxx.is_sl ;
AND wbxx.idb01s+wbxx.idc61
== d05a.idb01+d05a.idc61 ;
AND d05a.ipd05 = "DEA";
AND d05a.idc61 == d05.idc61 ;
AND d05a.idc61 == c61.idc61 AND c61.idc03 == c03.idc03 ;
AND d05.cdbf = "C61" ;
AND d05a.rohgrp
== d05.rohgrp ;
AND d05a.idc98 == d05.idc98 ;
AND d05.idc98 == c98cu.idc98 AND c98cu.idc26 == THIS.diSprache ;
AND STR(d05.basis)+d05.idc61+d05.idc98 IN ;
(SELECT STR(MAX(d05.basis))+d05.idc61+d05.idc98 ;
FROM (m.tcC98) AS c98cu,
(THIS.cDbfDir+'c61.dbf') AS c61,
(THIS.cDbfDir+'c03.dbf') AS c03,
(THIS.cDbfDir+'d05.dbf') AS d05,
(m.tcWB) AS wbxx;
WHERE wbxx.ID == m.tcId ;
AND NOT wbxx.is_sl;
AND wbxx.idc61
== d05.idc61 AND d05.cdbf = "C61" ;
AND d05.idc98 == c98cu.idc98 AND c98cu.idc26 == THIS.diSprache ;
AND d05.idc61 == c61.idc61 AND c61.idc03 == c03.idc03 ;
AND d05.basis / c03.faktor * c03.kurs <= c98cu.preis ;
GROUP BY d05.idb01,d05.idc61,d05.idc98);
INTO CURSOR qed2 NOFILTER
Der erste SQL Select berechnet den Edelmetallzuschlag wie bisher, d.h. auf Basis der Eingaben in B0103 für den Artikel und den Lieferanten. Der zweite SQL berechnet die Edelmetallzuschläge auf der Basis der Rohstoffgruppen. Der SQL IN… berechnet die Preisstaffel, die zur Berechnung des prozentualen Zuschlags benötigt wird. Die Tabelle WBXX ist entweder ein temporärer Cursor, der mit den Informationen eines Artikels gefüllt ist oder eine aufgelöste Baugruppe enthält. Für die Ermittelung der Daten werden in diesem SQL noch keine Summen gebildet. Dies wird erst anschließend mit dem Befehl:
SUM summe TO
m.lnEdelwert
berechnet. Der obige SQL wird auch genommen, wenn eine Anzeige der verschiedenen Edelmetallwerte benötigt wird. Damit entfallen verschiedene SQL’s zur Ermittlung und Anzeige der Daten. Für die Berechnung des Edelmetallzuschlags gilt:
* Für die
Seite Kalkulationsbasis:
* Standardberechnung, D05.IPD05=“DEB“
(c98.preis-d05.basis/c03.faktor*c03.kurs)/c98.gewi*d05.edelzahl/d05.uflaezu AS edelmetallzuschlag_in_firmenwährung
* Auf Rohstoffgruppenbasis, D05.IPD05=“DEA“
AND D05.CDBF=“B01“ => D05.IPD05$“DE1,DE2“ AND D05.CBDF=“C61“
IIF(d05.ipd05="DE1",b01.eknet,b01.ekbr)*d05.edelzahl/100 AS edelmetallzuschlag_in_firmenwährung
* Für die
Seite Einkaufsbasis:
* Standardberechnung
(c98.preis*c03.faktor/c03.kurs-d05.basis)/c98.gewi*d05.edelzahl/d05.uflaezu*d03.meekuf AS edelmetallzuschlag_in_lieferantenwährung
* Auf Rohstoffgruppenbasis
d03.ekpreis*IIF(d05.ipd05="DE1",(1-d03.rabatt/100)*(1-d03.rabatt1/100),1)*d05.edelzahl/100*d03.meekuf AS edelmetallzuschlag_in_lieferantenwährung
Die fett dargestellten Felder des obigen SQL’s geben die Währung an, in der die verschiedenen Werte berechnet wurden. Die Inhalte sind je nach „Seite“ der Berechnung, Kalkulationsbasis / Einkaufsbasis, unterschiedlich. Eine Tabelle soll dies verdeutlichen:
|
Seite |
IDC03FI |
IDC03WE |
IDC03LI |
PREIS |
BASIS |
SUMME |
SUMMEFI |
|
Kalkulation |
FIW |
FIW |
LIW |
FIW |
FIW |
FIW |
FIW |
|
Einkauf |
FIW |
LIW |
LIW |
LIW |
LIW |
LIW |
FIW |
|
Summen, IPD05$“DEX,DEY“ |
FIW |
FIW |
|
|
|
FIW |
FIW |
Es bedeuten:
Die Spalte SUMMEFI ist nur bei der Anzeige der Edelmetallwerte vorhanden und immer mit der Firmenwährung berechnet. Summenzeilen, werden in der Darstellung immer in der Firmenwährung berechnet. Die SQL Spalte URFWEFI enthält den Umrechnungsfaktor für die Umrechnung des Wertes SUMME in die Firmenwährung.
summe*urfwefi = summefi
Hinweise
Bitte achten Sie bei der Eingabe von Edelmetalldefinitionen sowohl im Artikelstamm als auch im Lieferantenstamm darauf, dass keine doppelten Werte eingegebenen werden. Derartige Eingaben führen zu fehlerhaften Berechnungen des Edelmetallzuschlags. In der Maske D05NEW werden die Eingaben geprüft, jedoch kann es vorkommen, dass bei der Auswahl der Berechnungsgrundlage auf Rohstoffgruppen mehrere Einträge zur Verfügung stehen. Hier muss der Anwender die korrekte Rohstoffgruppe zuordnen damit die Berechnung korrekt ist.
Siehe auch : Hauptmenü / Hauptindex; / Dictionary Module / Programm- Module / Tabellen Index / Masken Index
Lokale Benutzerhilfe : Meine eigene Hilfe / Zurück zur PMS32 - Hilfe
Dateiversion:1.0.00.09.00 - H.U.DD.V1.V2
Senden Sie Ihren Kommentar zu diesem Thema an das
Entwicklungsteam von PMS32
Weitere Informationen finden Sie unter der aktuellen PMS32 WEB-Hilfe . © PMS
Compelec GmbH 2006 ® el-Projekt