TRIGGER PROCEDURE FOR DELETE OF BesEing. /* ------------------------------------------------------ */ /* Eingangsmengen zurücksezten */ /* ------------------------------------------------------ */ FIND Besze WHERE Besze.Firma = BesEing.Firma AND Besze.Besnr = BesEing.Besnr AND Besze.Pos = BesEing.Pos. ASSIGN Besze.Eingang = Besze.Eingang - BesEing.Eingang Besze.MRuek = Besze.MRuek + BesEing.Eingang Besze.GGeb_EG = Besze.GGeb_EG - BesEing.GGeb_EG Besze.VGeb_EG = Besze.VGeb_EG - BesEing.VGeb_EG Besze.KGeb_EG = Besze.KGeb_EG - BesEing.KGeb_EG . /* ------------------------------------------------------ */ /* Gesammelt-Eintraege löschen */ /* ------------------------------------------------------ */ IF BesEing.lGesammelt THEN DO: FOR EACH Tabel WHERE Tabel.Firma = BesEing.Firma AND Tabel.RecArt = 'BESSAMM' AND Tabel.Int_1 = BesEing.Besnr AND Tabel.Int_2 = BesEing.Pos AND Tabel.Int_3 = BesEing.SubPos: FIND FIRST HoReLager WHERE HoReLager.Firma = BesEing.Firma AND HoReLager.Lager = BesEing.Lager AND HoReLager.cSort = Tabel.CodeC AND HoReLager.Artnr = BesEing.Artnr AND HoReLager.Inhalt = BesEing.Inhalt NO-ERROR. IF AVAILABLE HoReLager THEN HoReLager.iStatus = 1. DELETE Tabel. END. RELEASE Tabel. END. IF NOT BesEing.lEingelagert THEN RETURN. IF BesEing.HoReLager_Id = 0 THEN RETURN. FIND HoReLager WHERE HoReLager.HoReLager_Id = BesEing.HoReLager_Id NO-ERROR. IF NOT AVAILABLE HoReLager THEN RETURN. IF BesEing.lVerbucht OR BesEing.lLotnr THEN DO: FIND FIRST LotLager WHERE LotLager.HoReLager_Id = BesEing.HoReLager_Id AND LotLager.Lotnummer = BesEing.Lotnr AND LotLager.Verfall = BesEing.Verfall AND LotLager.Artnr = BesEing.Artnr NO-ERROR. IF NOT AVAILABLE LotLager THEN DO: FIND FIRST LotLager WHERE LotLager.HoReLager_Id = BesEing.HoReLager_Id AND LotLager.Lotnummer = BesEing.Lotnr AND LotLager.Verfall = BesEing.Verfall NO-ERROR. END. IF AVAILABLE LotLager THEN DO: IF BesEing.Eingang >= LotLager.Bestand THEN DELETE LotLager. ELSE LotLager.Bestand = LotLager.Bestand - BesEing.Eingang. END. END. HoReLager.Bestand = HoReLager.Bestand - BesEing.Eingang. IF HoReLager.Bestand <= 0 THEN DO: IF BesEing.iOldStatus = 0 OR HoReLager.Art = 2 THEN DO: ASSIGN HoReLager.Artnr = 0 HoReLager.Inhalt = 0 HoReLager.Jahr = 0 HoReLager.Bestand = 0 HoReLager.Eingang = ? HoReLager.iStatus = 0 HoReLager.Lotnummer = '' HoReLager.Verfall = ?. END. ELSE DO: ASSIGN HoReLager.Bestand = 0 HoReLager.iStatus = 1. END. END. FIND FIRST LotLager USE-INDEX LotLager-k1 WHERE LotLager.HoReLager_Id = HoReLager.HoReLager_Id NO-ERROR. IF AVAILABLE LotLager AND LotLager.Bestand > 0 THEN DO: ASSIGN HoReLager.Lotnummer = LotLager.Lotnummer HoReLager.Verfall = LotLager.Verfall HoReLager.Artnr = LotLager.Artnr HoReLager.Inhalt = LotLager.Inhalt HoReLager.Jahr = LotLager.Jahr HoReLager.iStatus = 2. END. RELEASE HoReLager . RELEASE LotLager .