TRIGGER PROCEDURE FOR WRITE OF Aufze NEW BUFFER NAufze OLD BUFFER OAufze. DEFINE VARIABLE cResult AS CHARACTER NO-UNDO. DEFINE VARIABLE lWeiter AS LOG NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE lBatch AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE iDiff AS INTEGER NO-UNDO. DEFINE VARIABLE iRest AS INTEGER NO-UNDO. DEFINE VARIABLE lRuestDruck AS LOGICAL NO-UNDO INIT FALSE. DEFINE VARIABLE cCallProg AS CHARACTER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE BUFFER bArtLager FOR ArtLager. DEFINE BUFFER bArtbw FOR Artbw . DEFINE BUFFER bArtst FOR Artst . IF NAufze.Artnr = 0 AND OAufze.Artnr = 0 THEN RETURN. FIND bArtst NO-LOCK OF nAufze NO-ERROR. ASSIGN NAufze.lVerfall = bArtst.lVerfall NAufze.lLotnr = bArtst.lLotnr. RELEASE bArtst. BUFFER-COMPARE nAufze EXCEPT EP Liter Sk_Ber Verbucht TO OAufze SAVE RESULT IN cResult. IF cResult = '' THEN RETURN. lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR. IF lBatch = ? THEN lBatch = TRUE. /* ---------------------------------------------- */ /* Bestandesmutation */ /* ---------------------------------------------- */ DO WHILE TRUE: IF OAufze.Artnr = 0 AND NAufze.Artnr = 0 THEN LEAVE. IF OAufze.MGeli = NAufze.MGeli AND OAufze.Lag_Buch = NAufze.Lag_Buch THEN LEAVE. IF OAufze.Lag_Buch AND OAufze.Artnr > 0 THEN DO: FIND bArtLager WHERE bArtLager.Firma = OAufze.Firma AND bArtLager.Artnr = OAufze.Artnr AND bArtLager.Inhalt = OAufze.Inhalt AND bArtLager.Jahr = OAufze.Jahr AND bArtLager.Lager = OAufze.Lager NO-ERROR. IF NOT AVAILABLE bArtLager THEN DO: CREATE bArtLager. ASSIGN bArtLager.Firma = OAufze.Firma bArtLager.Artnr = OAufze.Artnr bArtLager.Inhalt = OAufze.Inhalt bArtLager.Jahr = OAufze.Jahr bArtLager.Lager = OAufze.Lager. END. ASSIGN bArtLager.Ausgang = bArtLager.Ausgang - OAufze.MGeli bArtLager.Bestand = bArtLager.Bestand + OAufze.MGeli. END. RELEASE bArtLager. IF NAufze.Lag_Buch AND NAufze.Artnr > 0 THEN DO: FIND bArtLager WHERE bArtLager.Firma = NAufze.Firma AND bArtLager.Artnr = NAufze.Artnr AND bArtLager.Inhalt = NAufze.Inhalt AND bArtLager.Jahr = NAufze.Jahr AND bArtLager.Lager = NAufze.Lager NO-ERROR. IF NOT AVAILABLE bArtLager THEN DO: CREATE bArtLager. ASSIGN bArtLager.Firma = NAufze.Firma bArtLager.Artnr = NAufze.Artnr bArtLager.Inhalt = NAufze.Inhalt bArtLager.Jahr = NAufze.Jahr bArtLager.Lager = NAufze.Lager. END. ASSIGN bArtLager.Ausgang = bArtLager.Ausgang + NAufze.MGeli bArtLager.Bestand = bArtLager.Bestand - NAufze.MGeli. END. RELEASE bArtLager. IF NAufze.Trnr <> 0 THEN DO: FIND FIRST Artbw WHERE Artbw.Firma = NAufze.Firma AND Artbw.Trnr = NAufze.Trnr. ASSIGN Artbw.GGeb_Me = NAufze.GGeb_Me Artbw.VGeb_Me = NAufze.VGeb_Me Artbw.KGeb_Me = NAufze.KGeb_Me Artbw.Menge = NAufze.KGeb_Me Artbw.Gewicht = NAufze.Gewicht Artbw.Net_Betr = NAufze.Net_Betr. END. LEAVE. END. FIND Aufko NO-LOCK OF NAufze. IF Aufko.Auf_Sta > 2 OR Aufko.Fahrer = 0 THEN DO: RELEASE Aufko. RETURN. /* Auftrag ist bereits im Lieferschein */ END.