TRIGGER PROCEDURE FOR WRITE OF Aufko NEW BUFFER NAufko OLD BUFFER OAufko. DEF VAR hBuffer AS HANDLE NO-UNDO. DEF VAR lDatum AS LOG INIT FALSE NO-UNDO. DEF BUFFER bAufze FOR Aufze. DEF BUFFER bArtbw FOR Artbw. IF NAufko.Aufnr = 0 THEN DO: hBuffer = BUFFER NAufko:HANDLE. RUN CREATE_AUFKO ( hBuffer ). RETURN. END. IF NAufko.Lief_Datum <> OAufko.Lief_Datum AND OAufko.Lief_Datum <> ? AND NAufko.Lief_Datum <> ? THEN DO: FOR EACH bAufze NO-LOCK WHERE bAufze.Firma = NAufko.Firma AND bAufze.Aufnr = NAufko.Aufnr AND bAufze.Trnr > 0 AND bAufze.Artnr > 0, EACH Artbw NO-LOCK WHERE Artbw.Firma = bAufze.Firma AND Artbw.Trnr = bAufze.Trnr AND Artbw.Datum <> NAufko.Lief_Datum: FIND bArtbw EXCLUSIVE-LOCK WHERE bArtbw.Firma = Artbw.Firma AND bArtbw.Trnr = Artbw.Trnr NO-WAIT NO-ERROR. IF NOT AVAILABLE bArtbw THEN NEXT. bArtbw.Datum = NAufko.Lief_Datum. RELEASE bArtbw. END. END. IF NAufko.Mwst = 0 AND OAufko.Mwst > 0 THEN DO: FIND FIRST Aufze NO-LOCK WHERE Aufze.Firma = NAufko.Firma AND Aufze.Aufnr = NAufko.Aufnr AND Aufze.Artnr > 0 NO-ERROR. FIND FIRST Debst NO-LOCK WHERE Debst.Firma = NAufko.Firma AND Debst.Knr = NAufko.Knr NO-ERROR. IF NOT AVAILABLE Debst THEN RETURN. IF AVAILABLE Aufze THEN DO: FIND Artbw OF Aufze NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN DO: ASSIGN NAufko.Auf_Datum = OAufko.Auf_Datum. IF Artbw.Faknr = 0 THEN DO: ASSIGN NAufko.Kond_Datum = OAufko.Kond_Datum NAufko.Lief_Datum = OAufko.Lief_Datum NAufko.Fak_Datum = OAufko.Fak_Datum. END. END. END. ELSE DO: IF NAufko.Auf_Datum = ? THEN NAufko.Auf_Datum = OAufko.Auf_Datum. IF NAufko.Kond_Datum = ? THEN NAufko.Kond_Datum = OAufko.Kond_Datum. IF NAufko.Lief_Datum = ? THEN NAufko.Lief_Datum = OAufko.Lief_Datum. IF NAufko.Faknr <> 0 AND NAufko.Fak_Datum = ? THEN NAufko.Fak_Datum = OAufko.Fak_Datum. END. ASSIGN NAufko.Kond = Debst.Kond NAufko.Preis_Grp = Debst.Preis_Grp NAufko.Rab_Grp = Debst.Rab_Grp NAufko.Ku_Grp = Debst.Ku_Grp NAufko.MWSt = Debst.MWSt. END. IF NAufko.Auf_Tot <> OAufko.Auf_Tot AND NAufko.Gedruckt = TRUE THEN NAufko.Gedruckt = FALSE.