KorrDeArUms.p 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. DEF VAR nNetto AS DEC NO-UNDO.
  2. DEF VAR nMwst AS DEC NO-UNDO.
  3. DEF VAR JJ AS INT NO-UNDO.
  4. DEF VAR MM AS INT NO-UNDO.
  5. DEF TEMP-TABLE tDeArUms LIKE DeArUms.
  6. FOR EACH Savko NO-LOCK
  7. WHERE Savko.Firma = '1000'
  8. AND Savko.Fak_Dat >= 01/01/2017:
  9. ASSIGN JJ = YEAR (Savko.Fak_Datum)
  10. MM = MONTH(Savko.Fak_Datum).
  11. FOR EACH Savze NO-LOCK
  12. WHERE Savze.Firma = Savko.Firma
  13. AND Savze.Aufnr = Savko.Aufnr
  14. AND Savze.Artnr > 0:
  15. nNetto = Savze.Net_Betr - Savze.Auf_Rab - Savze.Abh_Rab - Savze.Auf_Sp_Rab.
  16. IF Savze.Mwst_Inkl THEN nMwst = nNetto * Savze.Mwst% / (100 + Savze.Mwst%).
  17. ELSE nMwst = 0.
  18. nNetto = nNetto - nMwst.
  19. FIND FIRST tDeArUms
  20. WHERE tDeArUms.Firma = Savze.Firma
  21. AND tDeArUms.Jahr = JJ
  22. AND tDeArUms.Knr = Savko.Fak_Knr
  23. AND tDeArUms.Artnr = Savze.Artnr
  24. AND tDeArUms.Inhalt = Savze.Inhalt
  25. AND tDeArUms.Jahrg = Savze.Jahr NO-ERROR.
  26. IF NOT AVAILABLE tDeArUms THEN DO:
  27. CREATE tDeArUms.
  28. ASSIGN tDeArUms.Firma = Savze.Firma
  29. tDeArUms.Jahr = JJ
  30. tDeArUms.Knr = Savko.Fak_Knr
  31. tDeArUms.Artnr = Savze.Artnr
  32. tDeArUms.Inhalt = Savze.Inhalt
  33. tDeArUms.Jahrg = Savze.Jahr.
  34. END.
  35. ASSIGN tDeArUms.Me_Mon[MM] = tDeArUms.Me_Mon[MM] + Savze.MGel
  36. tDeArUms.Ep_Mon[MM] = tDeArUms.Ep_Mon[MM] + (Savze.MGel * Savze.Ep)
  37. tDeArUms.VP_Mon[MM] = tDeArUms.VP_Mon[MM] + nNetto
  38. tDeArUms.Li_Mon[MM] = tDeArUms.Li_Mon[MM] + Savze.Liter.
  39. ASSIGN tDeArUms.Me_Kum = tDeArUms.Me_Kum + Savze.MGel
  40. tDeArUms.Ep_Kum = tDeArUms.Ep_Kum + (Savze.MGel * Savze.Ep)
  41. tDeArUms.VP_Kum = tDeArUms.VP_Kum + nNetto
  42. tDeArUms.Li_Kum = tDeArUms.Li_Kum + Savze.Liter.
  43. END.
  44. END.
  45. FOR EACH tDeArUms
  46. BREAK BY tDeArUms.Firma
  47. BY tDeArUms.Jahr
  48. BY tDeArUms.Knr:
  49. IF FIRST-OF ( tDeArUms.Knr ) THEN DO:
  50. FOR EACH DeArUms
  51. WHERE DeArUms.Firma = tDeArUms.Firma
  52. AND DeArUms.Jahr = tDeArUms.Jahr
  53. AND DeArUms.Knr = tDeArUms.Knr:
  54. DELETE DeArUms.
  55. END.
  56. END.
  57. CREATE DeArUms.
  58. BUFFER-COPY tDeArUms TO DeArUms.
  59. END.