| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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 .
|