t-aufko-write.p 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. TRIGGER PROCEDURE FOR WRITE OF Aufko
  2. NEW BUFFER NAufko
  3. OLD BUFFER OAufko.
  4. DEF VAR hBuffer AS HANDLE NO-UNDO.
  5. DEF VAR lDatum AS LOG INIT FALSE NO-UNDO.
  6. DEF BUFFER bAufze FOR Aufze.
  7. DEF BUFFER bArtbw FOR Artbw.
  8. IF NAufko.Aufnr = 0 THEN DO:
  9. hBuffer = BUFFER NAufko:HANDLE.
  10. RUN CREATE_AUFKO ( hBuffer ).
  11. RETURN.
  12. END.
  13. IF NAufko.Lief_Datum <> OAufko.Lief_Datum AND
  14. OAufko.Lief_Datum <> ? AND
  15. NAufko.Lief_Datum <> ? THEN DO:
  16. FOR EACH bAufze NO-LOCK
  17. WHERE bAufze.Firma = NAufko.Firma
  18. AND bAufze.Aufnr = NAufko.Aufnr
  19. AND bAufze.Trnr > 0
  20. AND bAufze.Artnr > 0,
  21. EACH Artbw NO-LOCK
  22. WHERE Artbw.Firma = bAufze.Firma
  23. AND Artbw.Trnr = bAufze.Trnr
  24. AND Artbw.Datum <> NAufko.Lief_Datum:
  25. FIND bArtbw EXCLUSIVE-LOCK
  26. WHERE bArtbw.Firma = Artbw.Firma
  27. AND bArtbw.Trnr = Artbw.Trnr NO-WAIT NO-ERROR.
  28. IF NOT AVAILABLE bArtbw THEN NEXT.
  29. bArtbw.Datum = NAufko.Lief_Datum.
  30. RELEASE bArtbw.
  31. END.
  32. END.
  33. IF NAufko.Mwst = 0 AND
  34. OAufko.Mwst > 0 THEN DO:
  35. FIND FIRST Aufze NO-LOCK
  36. WHERE Aufze.Firma = NAufko.Firma
  37. AND Aufze.Aufnr = NAufko.Aufnr
  38. AND Aufze.Artnr > 0 NO-ERROR.
  39. FIND FIRST Debst NO-LOCK
  40. WHERE Debst.Firma = NAufko.Firma
  41. AND Debst.Knr = NAufko.Knr NO-ERROR.
  42. IF NOT AVAILABLE Debst THEN RETURN.
  43. IF AVAILABLE Aufze THEN DO:
  44. FIND Artbw OF Aufze NO-LOCK NO-ERROR.
  45. IF AVAILABLE Artbw THEN DO:
  46. ASSIGN NAufko.Auf_Datum = OAufko.Auf_Datum.
  47. IF Artbw.Faknr = 0 THEN DO:
  48. ASSIGN NAufko.Kond_Datum = OAufko.Kond_Datum
  49. NAufko.Lief_Datum = OAufko.Lief_Datum
  50. NAufko.Fak_Datum = OAufko.Fak_Datum.
  51. END.
  52. END.
  53. END.
  54. ELSE DO:
  55. IF NAufko.Auf_Datum = ? THEN NAufko.Auf_Datum = OAufko.Auf_Datum.
  56. IF NAufko.Kond_Datum = ? THEN NAufko.Kond_Datum = OAufko.Kond_Datum.
  57. IF NAufko.Lief_Datum = ? THEN NAufko.Lief_Datum = OAufko.Lief_Datum.
  58. IF NAufko.Faknr <> 0 AND
  59. NAufko.Fak_Datum = ? THEN NAufko.Fak_Datum = OAufko.Fak_Datum.
  60. END.
  61. ASSIGN NAufko.Kond = Debst.Kond
  62. NAufko.Preis_Grp = Debst.Preis_Grp
  63. NAufko.Rab_Grp = Debst.Rab_Grp
  64. NAufko.Ku_Grp = Debst.Ku_Grp
  65. NAufko.MWSt = Debst.MWSt.
  66. END.
  67. IF NAufko.Auf_Tot <> OAufko.Auf_Tot AND
  68. NAufko.Gedruckt = TRUE THEN NAufko.Gedruckt = FALSE.