sql use boart --Restabrechnung für KISTL --Für alle Bestellids, die mehr als 3 Wochen nicht beliefert wurden, werden die --Gutschriften und Nachbelastungen in einen --Auftrag (Tour 99, Montag der aktuellen Woche) geschrieben --Die Positionen werden auch in Bestellpos geschrieben, damit Abrechnung erfolgen kann. --Es werden nur Gutschriften bis zu einschließlich diesem Montag verarbeitet. --datediff(dd,datepart(dw,getdate())-1,getdate()) gibt immer den Montag der aktuellen Woche zurück drop table tmpBId Select Bestellid into tmpBId From dAuftrag Group by Bestellid Having max(aftdatum) < dateadd(dd,-21,getdate()) --Falls es noch weiterlaufende Bestellungen gibt delete from b From tmpBId b Join (Select Bestellid,max(bis) as bis From bo..dBestellpos group by Bestellid)bp On b.Bestellid = bp.Bestellid _ where getdate() <= bp.bis -- Falls in bis ein Null-Wert steht delete from b From tmpBId b Join (Select Bestellid From bo..dBestellpos where bis is Null group by Bestellid) bp On b.Bestellid = bp.Bestellid update g Set Status = 2 From dGutschrift g Join tmpBId au _ On g.Bestellid = au.Bestellid Where g.Status = 0 and g.datum < datediff(dd,datepart(dw,getdate())-2,getdate()) use bo Insert into dBestellpos(Kg,Stueck,Bezeichnung,Bestellid,EAN,Bemerkung,von,bis,Menge,Vk0,Gesamt,Periode) _ Select 0, coalesce(g.VMenge, 1), a.Bezeichnung, g.Bestellid, g.EAN, g.Bemerkung, _ datediff(dd,datepart(dw,getdate())-1,getdate()),datediff(dd,datepart(dw,getdate())-1,getdate())+6,coalesce(g.VMenge,1), _ case when -g.VMenge=0 then -g.Wert Else -g.Wert/g.VMenge End, -g.Wert,1 _ From boart..dGutschrift g join boart..Artikel a on a.EAN = g.EAN _ Join boart..Verkauf v on a.ean = v.ean _ Where v.LadenId = 'KISTL' and g.Status = 2 use boart Insert into dAuftrag(KG, Stueck, Bezeichnung, Bestellid, EAN, UrEAN, Bemerkung, Aftdatum, _ Menge, Vk0, Gesamt, Status, pTyp, MwSt,tournr,tourpos) _ Select 0, coalesce(g.VMenge, 1), a.Bezeichnung, g.Bestellid, g.EAN, g.EAN2, g.Bemerkung, _ datediff(dd,datepart(dw,getdate())-1,getdate()),coalesce(g.VMenge,1), _ case when -g.VMenge=0 then -g.Wert Else -g.Wert/g.VMenge End, -g.Wert, 'OK', v.pTyp, v.MwSt,99,0 _ From dGutschrift g join Artikel a on a.EAN = g.EAN _ Join Verkauf v on a.ean = v.ean _ Where v.LadenId = 'KISTL' and g.Status = 2 Select 0 as kg, coalesce(g.VMenge, 1), a.Bezeichnung, g.Bestellid, g.EAN, g.EAN2, g.Bemerkung, _ datediff(dd,datepart(dw,getdate())-7,getdate()),coalesce(g.VMenge,1), _ case when -g.VMenge=0 then -g.Wert Else -g.Wert/g.VMenge End, -g.Wert, 'OK', v.pTyp, v.MwSt,99,0 _ From dGutschrift g join Artikel a on a.EAN = g.EAN _ Join Verkauf v on a.ean = v.ean _ Where v.LadenId = 'KISTL' and g.Status = 2 update dgutschrift Set Status = 1 where Status = 2