TRIGGER PROCEDURE FOR DELETE OF RuestAuf. DEFINE VARIABLE lBatch AS LOGICAL NO-UNDO. DEFINE VARIABLE iHoReLager_Id AS INTEGER NO-UNDO. DEFINE BUFFER bHoRelager FOR HoReLager. DEFINE BUFFER bLotLager FOR LotLager . DEFINE BUFFER bAufLot FOR AufLot . DEFINE BUFFER bAufze FOR Aufze . lBatch = DYNAMIC-FUNCTION ('getBatch':U) NO-ERROR. IF lBatch = ? THEN lBatch = TRUE. IF RuestAuf.MGeli = 0 THEN RETURN. REPEAT TRANSACTION ON ERROR UNDO, LEAVE: FIND bAufze NO-LOCK OF RuestAuf NO-ERROR. IF NOT AVAILABLE bAufze THEN LEAVE. iHoReLager_Id = 0. FIND FIRST bHoReLager WHERE bHoReLager.Firma = bAufze.Firma AND bHoReLager.Lager = bAufze.Lager AND bHoReLager.cSort = RuestAuf.Lagerort NO-ERROR. IF AVAILABLE bHoReLager THEN DO: bHoReLager.Bestand = bHoReLager.Bestand + RuestAuf.MGeli. iHoReLager_Id = bHoReLager.HoReLager_Id. END. FOR EACH bAufLot WHERE bAufLot.Firma = bAufze.Firma AND bAufLot.Lager = bAufze.Lager AND bAufLot.Aufnr = bAufze.Aufnr AND bAufLot.Pos = bAufze.Pos : FIND FIRST bLotLager USE-INDEX LotLager-k3 WHERE bLotLager.Firma = bAufze.Firma AND bLotLager.Lager = bAufze.Lager AND bLotLager.Artnr = bAufze.Artnr AND bLotLager.Inhalt = bAufze.Inhalt AND bLotLager.Jahr = bAufze.Jahr AND bLotLager.Verfall = bAufLot.Verfall NO-ERROR. IF iHoReLager_Id <> 0 THEN DO: IF NOT AVAILABLE bLotLager OR bLotLager.HoReLager_Id <> iHoReLager_Id THEN DO: CREATE bLotLager. ASSIGN bLotLager.Firma = bAufLot.Firma bLotLager.Artnr = bAufLot.Artnr bLotLager.Inhalt = bAufze.Inhalt bLotLager.Jahr = bAufze.Jahr bLotLager.Eingang = TODAY bLotLager.Verfall = bAufLot.Verfall bLotLager.Lotnummer = bAufLot.Nummer bLotLager.Prodnummer = bAufLot.ProduktionsNr bLotLager.HoReLager_Id = iHoReLager_Id bLotLager.Lager = bAufLot.Lager. END. bLotLager.Bestand = bLotLager.Bestand + bAufLot.Menge. END. DELETE bAufLot . RELEASE bLotLager. END. RELEASE bHoRelager. RELEASE bAufLot . RELEASE bLotLager . LEAVE. END.