x6.p 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. DEF VAR nLiter AS DEC DECIMALS 4 NO-UNDO.
  2. DEF VAR nDiff AS DEC DECIMALS 4 NO-UNDO.
  3. DEF VAR iJJ AS INT NO-UNDO.
  4. DEF VAR iMM AS INT NO-UNDO.
  5. FOR EACH Savko NO-LOCK
  6. WHERE Savko.Firma = '1000'
  7. AND Savko.Fak_Datum >= 01/01/2015:
  8. FOR EACH Savze
  9. WHERE Savze.Firma = Savko.Firma
  10. AND Savze.Aufnr = Savko.Aufnr
  11. AND Savze.Artnr > 0,
  12. FIRST KGebinde NO-LOCK
  13. WHERE KGebinde.Firma = Savze.Firma
  14. AND KGebinde.Geb_Cd = Savze.KGeb_Cd:
  15. nLiter = Savze.KGeb_Me * KGebinde.INhalt / 100.
  16. nDiff = nLiter - Savze.Liter.
  17. IF nDiff = 0 THEN NEXT.
  18. ASSIGN Savze.Liter = nLiter
  19. iJJ = YEAR (Savko.Fak_Datum)
  20. iMM = MONTH(Savko.Fak_Datum).
  21. FIND Artbw OF Savze NO-ERROR.
  22. IF AVAILABLE Artbw THEN Artbw.Liter = nLiter.
  23. FIND ArtUms USE-INDEX ArtUms-k1
  24. WHERE ArtUms.Firma = Savko.Firma
  25. AND ArtUms.Jahr = iJJ
  26. AND ArtUms.Artnr = Savze.Artnr
  27. AND ArtUms.Inhalt = Savze.Inhalt
  28. AND ArtUms.Jahrg = Savze.Jahr NO-ERROR.
  29. IF NOT AVAILABLE ArtUms THEN DO:
  30. CREATE ArtUms.
  31. ASSIGN ArtUms.Firma = Savko.Firma
  32. ArtUms.Jahr = iJJ
  33. ArtUms.Artnr = Savze.Artnr
  34. ArtUms.Inhalt = Savze.Inhalt
  35. ArtUms.Jahrg = Savze.Jahr NO-ERROR.
  36. END.
  37. ASSIGN ArtUms.Li_Mon[iMM] = ArtUms.Li_Mon[iMM] + nDiff
  38. ArtUms.Li_Kum = ArtUms.Li_Kum + nDiff.
  39. FIND DeArUms USE-INDEX DeArUms-k1
  40. WHERE DeArUms.Firma = Savko.Firma
  41. AND DeArUms.Jahr = iJJ
  42. AND DeArUms.Knr = Savko.Fak_Knr
  43. AND DeArUms.Artnr = Savze.Artnr
  44. AND DeArUms.Inhalt = Savze.Inhalt
  45. AND DeArUms.Jahrg = Savze.Jahr NO-ERROR.
  46. IF NOT AVAILABLE DeArUms THEN DO:
  47. CREATE DeArUms.
  48. ASSIGN DeArUms.Firma = Savko.Firma
  49. DeArUms.Jahr = iJJ
  50. DeArUms.Knr = Savko.Fak_Knr
  51. DeArUms.Artnr = Savze.Artnr
  52. DeArUms.Inhalt = Savze.Inhalt
  53. DeArUms.Jahrg = Savze.Jahr NO-ERROR.
  54. END.
  55. ASSIGN DeArUms.Li_Mon[iMM] = DeArUms.Li_Mon[iMM] + nDiff
  56. DeArUms.Li_Kum = DeArUms.Li_Kum + nDiff.
  57. END.
  58. END.