t-aufze-write.p 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. TRIGGER PROCEDURE FOR WRITE OF Aufze
  2. NEW BUFFER NAufze
  3. OLD BUFFER OAufze.
  4. DEFINE VARIABLE cResult AS CHARACTER NO-UNDO.
  5. DEFINE VARIABLE lWeiter AS LOG NO-UNDO.
  6. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  7. DEFINE VARIABLE lBatch AS LOG NO-UNDO INIT FALSE.
  8. DEFINE VARIABLE iDiff AS INTEGER NO-UNDO.
  9. DEFINE VARIABLE iRest AS INTEGER NO-UNDO.
  10. DEFINE VARIABLE lRuestDruck AS LOGICAL NO-UNDO INIT FALSE.
  11. DEFINE VARIABLE cCallProg AS CHARACTER NO-UNDO.
  12. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  13. DEFINE BUFFER bArtLager FOR ArtLager.
  14. DEFINE BUFFER bArtbw FOR Artbw .
  15. DEFINE BUFFER bArtst FOR Artst .
  16. IF NAufze.Artnr = 0 AND
  17. OAufze.Artnr = 0 THEN RETURN.
  18. FIND bArtst NO-LOCK OF nAufze NO-ERROR.
  19. ASSIGN
  20. NAufze.lVerfall = bArtst.lVerfall
  21. NAufze.lLotnr = bArtst.lLotnr.
  22. RELEASE bArtst.
  23. BUFFER-COMPARE nAufze
  24. EXCEPT EP Liter Sk_Ber Verbucht
  25. TO OAufze
  26. SAVE RESULT IN cResult.
  27. IF cResult = '' THEN RETURN.
  28. lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
  29. IF lBatch = ? THEN lBatch = TRUE.
  30. /* ---------------------------------------------- */
  31. /* Bestandesmutation */
  32. /* ---------------------------------------------- */
  33. DO WHILE TRUE:
  34. IF OAufze.Artnr = 0 AND
  35. NAufze.Artnr = 0 THEN LEAVE.
  36. IF OAufze.MGeli = NAufze.MGeli AND
  37. OAufze.Lag_Buch = NAufze.Lag_Buch THEN LEAVE.
  38. IF OAufze.Lag_Buch AND
  39. OAufze.Artnr > 0 THEN
  40. DO:
  41. FIND bArtLager
  42. WHERE bArtLager.Firma = OAufze.Firma
  43. AND bArtLager.Artnr = OAufze.Artnr
  44. AND bArtLager.Inhalt = OAufze.Inhalt
  45. AND bArtLager.Jahr = OAufze.Jahr
  46. AND bArtLager.Lager = OAufze.Lager NO-ERROR.
  47. IF NOT AVAILABLE bArtLager THEN
  48. DO:
  49. CREATE bArtLager.
  50. ASSIGN
  51. bArtLager.Firma = OAufze.Firma
  52. bArtLager.Artnr = OAufze.Artnr
  53. bArtLager.Inhalt = OAufze.Inhalt
  54. bArtLager.Jahr = OAufze.Jahr
  55. bArtLager.Lager = OAufze.Lager.
  56. END.
  57. ASSIGN
  58. bArtLager.Ausgang = bArtLager.Ausgang - OAufze.MGeli
  59. bArtLager.Bestand = bArtLager.Bestand + OAufze.MGeli.
  60. END.
  61. RELEASE bArtLager.
  62. IF NAufze.Lag_Buch AND
  63. NAufze.Artnr > 0 THEN
  64. DO:
  65. FIND bArtLager
  66. WHERE bArtLager.Firma = NAufze.Firma
  67. AND bArtLager.Artnr = NAufze.Artnr
  68. AND bArtLager.Inhalt = NAufze.Inhalt
  69. AND bArtLager.Jahr = NAufze.Jahr
  70. AND bArtLager.Lager = NAufze.Lager NO-ERROR.
  71. IF NOT AVAILABLE bArtLager THEN
  72. DO:
  73. CREATE bArtLager.
  74. ASSIGN
  75. bArtLager.Firma = NAufze.Firma
  76. bArtLager.Artnr = NAufze.Artnr
  77. bArtLager.Inhalt = NAufze.Inhalt
  78. bArtLager.Jahr = NAufze.Jahr
  79. bArtLager.Lager = NAufze.Lager.
  80. END.
  81. ASSIGN
  82. bArtLager.Ausgang = bArtLager.Ausgang + NAufze.MGeli
  83. bArtLager.Bestand = bArtLager.Bestand - NAufze.MGeli.
  84. END.
  85. RELEASE bArtLager.
  86. IF NAufze.Trnr <> 0 THEN
  87. DO:
  88. FIND FIRST Artbw
  89. WHERE Artbw.Firma = NAufze.Firma
  90. AND Artbw.Trnr = NAufze.Trnr.
  91. ASSIGN
  92. Artbw.GGeb_Me = NAufze.GGeb_Me
  93. Artbw.VGeb_Me = NAufze.VGeb_Me
  94. Artbw.KGeb_Me = NAufze.KGeb_Me
  95. Artbw.Menge = NAufze.KGeb_Me
  96. Artbw.Gewicht = NAufze.Gewicht
  97. Artbw.Net_Betr = NAufze.Net_Betr.
  98. END.
  99. LEAVE.
  100. END.
  101. FIND Aufko NO-LOCK OF NAufze.
  102. IF Aufko.Auf_Sta > 2 OR
  103. Aufko.Fahrer = 0 THEN
  104. DO:
  105. RELEASE Aufko.
  106. RETURN. /* Auftrag ist bereits im Lieferschein */
  107. END.