t-besze-delete.p 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. TRIGGER PROCEDURE FOR DELETE OF Besze.
  2. DEFINE VARIABLE lBatch AS LOG INIT TRUE NO-UNDO.
  3. DEFINE VARIABLE rArtst AS RECID NO-UNDO.
  4. DEFINE BUFFER bArtLager FOR ArtLager.
  5. DEFINE BUFFER bArtbw FOR Artbw.
  6. DEFINE BUFFER bArtst FOR Artst.
  7. IF Besze.Artnr = 0 THEN RETURN.
  8. FIND FIRST BesEing NO-LOCK OF Besze NO-ERROR.
  9. IF AVAILABLE BesEing THEN RETURN ERROR.
  10. FIND bArtst NO-LOCK
  11. WHERE bArtst.Firma = Besze.Firma
  12. AND bArtst.Artnr = Besze.Artnr
  13. AND bArtst.Inhalt = Besze.Inhalt
  14. AND bArtst.Jahr = Besze.Jahr NO-ERROR.
  15. IF NOT AVAILABLE bArtst OR
  16. NOT bArtst.Lager OR
  17. NOT bArtst.Aktiv OR
  18. bArtst.Ausverk = 9 THEN RETURN.
  19. rArtst = RECID(bArtst).
  20. FIND FIRST ASMutation
  21. WHERE ASMutation.Firma = Besze.Firma
  22. AND ASMutation.Datum = TODAY
  23. AND ASMutation.MutArt = 'DASHBOARD'
  24. AND ASMutation.cFeld_1 = 'BESTELLUNG'
  25. AND ASMutation.iKey_1 = Besze.Besnr NO-ERROR.
  26. IF AVAILABLE ASMutation THEN
  27. DO:
  28. IF (TIME - ASMutation.iFeld_1) > 5 THEN RELEASE ASMutation.
  29. END.
  30. IF NOT AVAILABLE ASMutation THEN
  31. DO:
  32. CREATE ASMutation.
  33. ASSIGN
  34. ASMutation.asmutation_id = NEXT-VALUE(asmutation_id)
  35. ASMutation.Aktiv = TRUE
  36. ASMutation.cStatus = ''
  37. ASMutation.Datum = TODAY
  38. ASMutation.Firma = Besze.Firma
  39. ASMutation.MutArt = 'DASHBOARD'
  40. ASMutation.cFeld_1 = 'BESTELLUNG'
  41. ASMutation.iKey_1 = Besze.Besnr
  42. ASMutation.iFeld_1 = TIME
  43. .
  44. END.
  45. lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
  46. IF ERROR-STATUS:ERROR THEN lBatch = FALSE.
  47. IF lBatch = ? THEN lBatch = FALSE.
  48. FIND Artst WHERE RECID(Artst) = rArtst.
  49. Artst.Bestellt = bArtst.Bestellt - Besze.MBest.
  50. IF Besze.Trnr > 0 THEN
  51. DO:
  52. FIND bArtbw
  53. WHERE bArtbw.Firma = Besze.Firma
  54. AND bArtbw.Trnr = Besze.Trnr NO-ERROR.
  55. IF AVAILABLE bArtbw THEN DELETE bArtbw.
  56. END.
  57. IF Artst.Lager THEN
  58. DO:
  59. FIND bArtLager
  60. WHERE bArtLager.Firma = Besze.Firma
  61. AND bArtLager.Artnr = Besze.Artnr
  62. AND bArtLager.Inhalt = Besze.Inhalt
  63. AND bArtLager.Jahr = Besze.Jahr
  64. AND bArtLager.Lager = Besze.Lager NO-ERROR.
  65. IF NOT AVAILABLE bArtLager THEN
  66. DO:
  67. CREATE bArtLager.
  68. ASSIGN
  69. bArtLager.Firma = Besze.Firma
  70. bArtLager.Artnr = Besze.Artnr
  71. bArtLager.Inhalt = Besze.Inhalt
  72. bArtLager.Jahr = Besze.Jahr
  73. bArtLager.Lager = Besze.Lager.
  74. END.
  75. ASSIGN
  76. bArtLager.Eingang = bArtLager.Eingang - Besze.MGeli
  77. bArtLager.Bestand = bArtLager.Bestand - Besze.MGeli
  78. bArtLager.Bestellt = bArtLager.Bestellt - Besze.MBest.
  79. .
  80. RELEASE bArtLager.
  81. END.
  82. RELEASE Artst .
  83. RELEASE bArtst .
  84. RELEASE bArtbw .
  85. RELEASE bArtLager.