EpKorr.p 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. DEF VAR ix AS INT NO-UNDO.
  2. DEF VAR Lep AS DEC DECIMALS 4 NO-UNDO.
  3. DEF BUFFER BArtst FOR Artst.
  4. FOR EACH Artst NO-LOCK :
  5. IF Artst.Dep <> ? THEN NEXT.
  6. Lep = Artst.Lep.
  7. IF Lep = 0 OR Lep = ? THEN Lep = Artst.Listen_Ep.
  8. FOR EACH Artbw USE-INDEX Artbw-k2
  9. WHERE Artbw.Firma = Artst.Firma
  10. AND Artbw.Artnr = Artst.Artnr
  11. AND Artbw.Inhalt = Artst.Inhalt
  12. AND Artbw.Jahr = Artst.Jahr
  13. AND Artbw.Tr_Art < 21 :
  14. IF Artbw.Tr_Art = 11 THEN DO:
  15. IF Artbw.Preis = ? THEN Artbw.Preis = Lep.
  16. IF Artbw.Preis = 0 THEN Artbw.Preis = Lep.
  17. IF Artbw.Preis > 0 THEN Lep = Artbw.Preis.
  18. IF Artbw.Ep = ? THEN Artbw.Ep = Lep.
  19. IF Artbw.Ep = 0 THEN Artbw.Ep = Lep.
  20. NEXT.
  21. END.
  22. IF Artbw.Ep = ? THEN Artbw.Ep = Lep.
  23. IF Artbw.Ep = 0 THEN Artbw.Ep = Lep.
  24. IF Artbw.Ep <> ? AND
  25. Artbw.Ep <> 0 THEN Lep = Artbw.Ep.
  26. END.
  27. FOR EACH DeArUms USE-INDEX DeArUms-k4
  28. WHERE DeArUms.Firma = Artst.Firma
  29. AND DeArUms.Artnr = Artst.Artnr
  30. AND DeArUms.Inhalt = Artst.Inhalt
  31. AND DeArUms.Jahrg = Artst.Jahr:
  32. IF DeArUms.Ep_Kum <> ? THEN NEXT.
  33. ASSIGN DeArUms.Ep_Kum = 0.
  34. DO ix = 1 TO 12:
  35. IF DeArUms.Ep_Mon[ix] = ? THEN DO:
  36. Datum = DATE(ix,01,DeArUms.Jahr).
  37. FIND LAST Artbw USE-INDEX Artbw-k2
  38. WHERE Artbw.Firma = Artst.Firma
  39. AND Artbw.Artnr = Artst.Artnr
  40. AND Artbw.Inhalt = Artst.Inhalt
  41. AND Artbw.Jahr = Artst.Jahr
  42. AND Artbw.Tr_Art = 1
  43. AND Artbw.Datum <= Datum NO-ERROR.
  44. IF AVAILABLE Artbw AND
  45. Artbw.Ep <> 0 THEN Lep = Artbw.Ep.
  46. DeArUms.Ep_Mon[ix] = DeArUms.Me_Mon[ix] * Lep.
  47. END.
  48. ASSIGN DeArUms.Ep_Kum = DeArUms.Ep_Kum + DeArUms.Ep_Mon[ix].
  49. END.
  50. END.
  51. REPEAT TRANSACTION:
  52. FIND BArtst WHERE RECID(BArtst) = RECID(Artst).
  53. BArtst.Dep = Lep.
  54. RELEASE BArtst.
  55. LEAVE.
  56. END.
  57. END.
  58. FOR EACH ArtUms USE-INDEX ArtUms-k2:
  59. IF ArtUms.Ep_Kum <> ? THEN NEXT.
  60. ASSIGN ArtUms.Ep_Kum = 0
  61. ArtUms.Ep_Mon = 0.
  62. FOR EACH DeArUms USE-INDEX DeArUms-k4
  63. WHERE DeArUms.Firma = ArtUms.Firma
  64. AND DeArUms.Artnr = ArtUms.Artnr
  65. AND DeArUms.Inhalt = ArtUms.Inhalt
  66. AND DeArUms.Jahrg = ArtUms.Jahrg
  67. AND DeArUms.Jahr = ArtUms.Jahr NO-LOCK:
  68. DO ix = 1 TO 12:
  69. ASSIGN ArtUms.Ep_Mon[ix] = ArtUms.Ep_Mon[ix] + DeArUms.Ep_Mon[ix]
  70. ArtUms.Ep_Kum = ArtUms.Ep_Kum + DeArUms.Ep_Mon[ix].
  71. END.
  72. END.
  73. END.
  74. FOR EACH DebUms:
  75. IF DebUms.Ep_Kum <> ? THEN NEXT.
  76. ASSIGN DebUms.Ep_Kum = 0
  77. DebUms.Ep_Mon = 0.
  78. FOR EACH DeArUms USE-INDEX DeArUms-k3
  79. WHERE DeArUms.Firma = DebUms.Firma
  80. AND DeArUms.Knr = DebUms.Knr
  81. AND DeArUms.Jahr = DebUms.Jahr NO-LOCK:
  82. DO ix = 1 TO 12:
  83. ASSIGN DebUms.Ep_Mon[ix] = DebUms.Ep_Mon[ix] + DeArUms.Ep_Mon[ix]
  84. DebUms.Ep_Kum = DebUms.Ep_Kum + DeArUms.Ep_Mon[ix].
  85. END.
  86. END.
  87. END.