t-artlager-write.p 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. TRIGGER PROCEDURE FOR WRITE OF ArtLager
  2. NEW BUFFER NArtLager
  3. OLD BUFFER OArtLager.
  4. DEF VAR cDiff AS CHAR NO-UNDO.
  5. DEF VAR cFeld AS CHAR NO-UNDO.
  6. DEF VAR kk AS INT NO-UNDO.
  7. DEF VAR kx AS INT NO-UNDO.
  8. DEF VAR cWort AS CHAR NO-UNDO.
  9. DISABLE TRIGGERS FOR LOAD OF Artst.
  10. BUFFER-COMPARE NArtLager USING Bestand Reserviert
  11. Bestellt Mind_Bestand Soll_Bestand
  12. TO OArtLager
  13. SAVE RESULT IN cDiff.
  14. IF cDiff = '' THEN RETURN.
  15. FIND Artst
  16. WHERE Artst.Firma = NArtLager.Firma
  17. AND Artst.Artnr = NArtLager.Artnr
  18. AND Artst.Inhalt = NArtLager.Inhalt
  19. AND Artst.Jahr = NArtLager.Jahr NO-ERROR.
  20. IF NOT AVAILABLE Artst THEN RETURN.
  21. IF NOT Artst.Lager THEN RETURN.
  22. ASSIGN Artst.Bestand = NArtLager.Bestand
  23. Artst.Reserviert = NArtLager.Reserviert
  24. Artst.Bestellt = NArtLager.Bestellt
  25. Artst.Mind_Bestand = NArtLager.Mind_Bestand
  26. Artst.Soll_Bestand = NArtLager.Soll_Bestand
  27. .
  28. FOR EACH ArtLager NO-LOCK
  29. WHERE ArtLager.Firma = NArtLager.Firma
  30. AND ArtLager.Artnr = NArtLager.Artnr
  31. AND ArtLager.Inhalt = NArtLager.Inhalt
  32. AND ArtLager.Jahr = NArtLager.Jahr
  33. AND ArtLager.Lager <> NArtLager.Lager:
  34. ASSIGN Artst.Bestand = Artst.Bestand + ArtLager.Bestand
  35. Artst.Reserviert = Artst.Reserviert + ArtLager.Reserviert
  36. Artst.Bestellt = Artst.Bestellt + ArtLager.Bestellt
  37. Artst.Mind_Bestand = Artst.Mind_Bestand + ArtLager.Mind_Bestand
  38. Artst.Soll_Bestand = Artst.Soll_Bestand + ArtLager.Soll_Bestand
  39. .
  40. END.
  41. RELEASE Artst.