InventarKorrektur1.p 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. DEF VAR dvonDatum AS DATE INIT 01/01/2020. /* Altes Inventardatum */
  2. DEF VAR dbisDatum AS DATE INIT 05/01/2020. /* Neues Inventardatum */
  3. DEF TEMP-TABLE tArtst
  4. FIELD Firma AS CHAR
  5. FIELD Artnr AS INT
  6. FIELD Inhalt AS INT
  7. FIELD Jahr AS INT
  8. FIELD Inventar AS DEC
  9. FIELD Eingang AS DEC
  10. FIELD Ausgang AS DEC
  11. FIELD Bestand AS DEC
  12. INDEX tArtst-k1 IS PRIMARY
  13. Firma
  14. Artnr
  15. Inhalt
  16. Jahr.
  17. FOR EACH ArtLager
  18. WHERE ArtLager.Firma = '1000'
  19. AND ArtLager.Datum_Inv = dvonDatum:
  20. CREATE tArtst.
  21. BUFFER-COPY ArtLager
  22. USING Firma Artnr Inhalt Jahr
  23. TO tArtst.
  24. END.
  25. FOR EACH tArtst:
  26. FIND Artst NO-LOCK OF tArtst.
  27. IF NOT Artst.Aktiv THEN NEXT.
  28. FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k2
  29. WHERE Artbw.Firma = Artst.Firma
  30. AND Artbw.Artnr = Artst.Artnr
  31. AND Artbw.Inhalt = Artst.Inhalt
  32. AND Artbw.Jahr = Artst.Jahr
  33. AND Artbw.Lag_Buch = TRUE
  34. AND Artbw.Lager = 0
  35. AND Artbw.Datum >= dvonDatum
  36. AND Artbw.Datum <= (dbisDatum - 1):
  37. DO WHILE TRUE:
  38. IF Artbw.Tr_Art < 11 THEN DO:
  39. tArtst.Ausgang = tArtst.Ausgang + Artbw.Menge.
  40. LEAVE.
  41. END.
  42. IF Artbw.Tr_Art < 21 THEN DO:
  43. tArtst.Eingang = tArtst.Eingang + Artbw.Menge.
  44. LEAVE.
  45. END.
  46. tArtst.Inventar = tArtst.Inventar + Artbw.Menge.
  47. LEAVE.
  48. END.
  49. END.
  50. END.
  51. FOR EACH tArtst:
  52. FIND ArtLager
  53. WHERE ArtLager.Firma = tArtst.Firma
  54. AND ArtLager.Artnr = tArtst.Artnr
  55. AND ArtLager.Inhalt = tArtst.Inhalt
  56. AND ArtLager.Jahr = tArtst.Jahr
  57. AND ArtLager.Lager = 0.
  58. ASSIGN ArtLager.Datum_Inv = dbisDatum
  59. ArtLager.Bestand_alt = tArtst.Inventar + tArtst.Eingang - tArtst.Ausgang
  60. ArtLager.Bestand = 0.
  61. END.