t-aufze-delete.p 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. TRIGGER PROCEDURE FOR DELETE OF Aufze.
  2. DEFINE VARIABLE lBatch AS LOGICAL NO-UNDO INIT FALSE.
  3. DEFINE VARIABLE lRuestDruck AS LOGICAL NO-UNDO INIT FALSE.
  4. DEFINE BUFFER bArtLager FOR ArtLager.
  5. DEFINE BUFFER bArtbw FOR Artbw.
  6. IF Aufze.Artnr = 0 THEN RETURN.
  7. lBatch = DYNAMIC-FUNCTION ('getBatch':U) NO-ERROR.
  8. IF lBatch = ? THEN lBatch = TRUE.
  9. FIND bArtbw
  10. WHERE bArtbw.Firma = Aufze.Firma
  11. AND bArtbw.Trnr = Aufze.Trnr NO-ERROR.
  12. IF AVAILABLE bArtbw THEN DELETE bArtbw.
  13. IF NOT Aufze.Lag_Buch THEN RETURN.
  14. FIND bArtLager
  15. WHERE bArtLager.Firma = Aufze.Firma
  16. AND bArtLager.Artnr = Aufze.Artnr
  17. AND bArtLager.Inhalt = Aufze.Inhalt
  18. AND bArtLager.Jahr = Aufze.Jahr
  19. AND bArtLager.Lager = Aufze.Lager NO-ERROR.
  20. IF NOT AVAILABLE bArtLager THEN
  21. DO:
  22. CREATE bArtLager.
  23. ASSIGN
  24. bArtLager.Firma = Aufze.Firma
  25. bArtLager.Artnr = Aufze.Artnr
  26. bArtLager.Inhalt = Aufze.Inhalt
  27. bArtLager.Jahr = Aufze.Jahr
  28. bArtLager.Lager = Aufze.Lager.
  29. END.
  30. ASSIGN
  31. bArtLager.Ausgang = bArtLager.Ausgang - Aufze.MGeli
  32. bArtLager.Bestand = bArtLager.Bestand + Aufze.MGeli.
  33. RELEASE bArtLager.
  34. FIND Aufko NO-LOCK OF Aufze NO-ERROR.
  35. IF AVAILABLE Aufko THEN
  36. DO:
  37. IF Aufko.Auf_Sta > 2 THEN
  38. DO:
  39. RELEASE Aufko.
  40. RETURN. /* Auftrag ist bereits im Lieferschein */
  41. END.
  42. END.