| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- TRIGGER PROCEDURE FOR WRITE OF RuestAuf
- NEW BUFFER NRuestAuf
- OLD BUFFER ORuestAuf.
- DEFINE VARIABLE lBatch AS LOGICAL NO-UNDO.
- DEFINE VARIABLE iDiff AS INTEGER NO-UNDO.
- DEFINE BUFFER bHoRelager FOR HoReLager.
- DEFINE BUFFER bLotLager FOR LotLager .
- DEFINE BUFFER bAufLot FOR AufLot .
- lBatch = DYNAMIC-FUNCTION ('getBatch':U) NO-ERROR.
- IF lBatch = ? THEN lBatch = TRUE.
- IF ORuestAuf.MGeli = 0 AND
- NRuestAuf.MGeli = 0 THEN RETURN.
-
- iDiff = NRuestAuf.MGeli - ORuestAuf.MGeli.
- IF iDiff = 0 THEN RETURN.
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FIND Aufze NO-LOCK
- WHERE Aufze.Firma = NRuestAuf.Firma
- AND Aufze.Aufnr = NRuestAuf.Aufnr
- AND Aufze.Pos = NRuestAuf.Pos NO-ERROR.
- FIND FIRST bHoReLager
- WHERE bHoReLager.Firma = NRuestAuf.Firma
- AND bHoReLager.cSort = NRuestAuf.Lagerort
- AND bHoRelager.Artnr = NRuestAuf.Artnr NO-ERROR.
- IF NOT AVAILABLE bHoRelager THEN RETURN.
-
- bHoRelager.Bestand = bHoRelager.Bestand - iDiff.
-
- FOR EACH bAuflot
- WHERE bAufLot.Firma = Aufze.Firma
- AND bAufLot.Aufnr = Aufze.Aufnr
- AND bAufLot.Pos = Aufze.Pos:
-
- FIND FIRST bLotLager USE-INDEX LotLager-k1
- WHERE bLotLager.HoReLager_Id = bHoRelager.HoReLager_Id
- AND bLotLager.Artnr = Aufze.Artnr
- AND bLotLager.Verfall = bAufLot.Verfall
- AND bLotLager.Lotnummer = bAufLot.Nummer NO-ERROR.
- IF NOT AVAILABLE bLotLager THEN
- DO:
- CREATE bLotLager.
- ASSIGN
- bLotLager.Firma = bAufLot.Firma
- bLotLager.Lager = bAufLot.Lager
- bLotLager.Artnr = bAufLot.Artnr
- bLotLager.Inhalt = NRuestAuf.Inhalt
- bLotLager.Jahr = NRuestAuf.Jahr
- bLotLager.Verfall = bAufLot.Verfall
- bLotLager.Eingang = TODAY
- bLotLager.HoReLager_Id = bHoRelager.HoReLager_Id
- bLotLager.Lotnummer = bAufLot.Nummer.
- END.
- bLotLager.Bestand = bLotLager.Bestand - iDiff.
- IF bLotLager.Bestand < 0 THEN bLotLager.Bestand = 0.
- END.
-
- RELEASE bHoRelager.
- RELEASE bAufLot .
- RELEASE bLotLager .
-
- LEAVE.
- END.
|