/*Im Fall von Chargen errechnet metro den Roherlös auf Basis von Chargen-Durchschnittspreisen. Das Skript berechnet den Roherlös genauer auf Basis der echten Chargen-Einkaufspreise. Hinweise: - Roherlös = VK-EK ggf. ./. Frachten (sofern gepflegt) - Die Felder 'summerohertrag' und 'ek' in der Liepos werden überschrieben! Alternativ können diese aber als Unterstrichfelder zusätzlich angelegt und das Skript entsprechend angepasst werden. - Standardmäßig werden nur die letzten beiden Monate neu berechnet, ggf. kann die Konstante 'zeitraum' angepasst werden um einen längeren Zeitraum zu erfassen. Dies empfiehlt sich z.B. bei erstmaliger Ausführung. - Wenn laufend Frachten nachgepflegt werden, sollte die Berechnung regelmäßig über einem Zeitraum nachberechnet werden, in dem die Frachten eingegeben werden - Die Ausführung empfiehlt sich mit adsconsole.exe über einen Scheduler - Das query enthält mehr Spalten als eigentlich nötig, für Kontrollzwecke. */ Declare zeitraum Integer; zeitraum = 60; SELECT distinct liepos.belegnr AS Lieferschein, reckpf.belegnr AS Rechnung, einpos.belegnr AS Einkauf, einkpf.waehrungsfaktor AS WaehrEK, recpos.summeanzahl AS Liefermenge, charausg.ChargenNr, recpos.Artnr, recpos.vknetto AS VK, liepos.id as LieposId, liepos._Frachtanteil AS Fracht, Round(einpos.vknetto/einkpf.waehrungsfaktor,2) AS EK, Round(recpos.summeanzahl*((recpos.vknetto/reckpf.waehrungsfaktor) - IIF((liepos._Frachtanteil=0) or (liepos._Frachtanteil is NULL), 0,liepos._Frachtanteil) - (einpos.vknetto/einkpf.waehrungsfaktor)),2) AS Rohertrag into #temp FROM liepos, charausg, einpos, einkpf, recpos, reckpf, chareink // RECHNUNG->LIEFERSCHEIN WHERE recpos.vonbelegposid = liepos.id AND reckpf.Belegnr = recpos.belegnr // LIEFERSCHEIN->CHARGENAUSGANG: AND charausg.belegposid = liepos.id //CHARGENAUSGANG->CHARGENEINKAUF: // mehrfache Chargeneinkäufe - Problem, da unterschiedliche Belegposid! AND charausg.Chargennr = chareink.Chargennr AND charausg.Artnr = chareink.Artnr and liepos.lagerort = chareink.lagerort //CHARGENEINKAUF->EINKAUF AND chareink.Belegposid = einpos.id AND chareink.Belegnr = einpos.belegnr AND chareink.Artnr = einpos.artnr AND einpos.belegnr = einkpf.belegnr AND timestampdiff(sql_tsi_day,reckpf.datum,Timestampadd(SQL_TSI_DAY,-2,now()))