x2.p 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. DEF VAR iAufnr AS INT NO-UNDO.
  2. DEF VAR hSavze AS HANDLE NO-UNDO.
  3. FOR EACH Savze
  4. WHERE Savze.Firma = '1000'
  5. AND Savze.Artnr > 0
  6. AND Savze.Trnr = 0,
  7. FIRST Savko NO-LOCK OF Savze :
  8. hSavze = BUFFER Savze:HANDLE.
  9. RUN CREATE_ARTBW ( INPUT-OUTPUT hSavze ).
  10. END.
  11. PROCEDURE CREATE_ARTBW:
  12. /*------------------------------------------------------------------------------
  13. Purpose:
  14. Parameters: <none>
  15. Notes:
  16. ------------------------------------------------------------------------------*/
  17. DEF INPUT-OUTPUT PARAMETER iphSavze AS HANDLE NO-UNDO.
  18. DEF VAR cFirma AS CHAR NO-UNDO.
  19. DEF VAR iKnr AS INT NO-UNDO.
  20. DEF VAR iLager AS INT NO-UNDO.
  21. DEF VAR iArtnr AS INT NO-UNDO.
  22. DEF VAR iInhalt AS INT NO-UNDO.
  23. DEF VAR iJahr AS INT NO-UNDO.
  24. DEF VAR iTrnr AS INT NO-UNDO.
  25. DEF VAR hArtbw AS HANDLE NO-UNDO.
  26. DEF VAR nMGel AS DEC NO-UNDO.
  27. ASSIGN cFirma = iphSavze::Firma
  28. iArtnr = iphSavze::Artnr
  29. iInhalt = iphSavze::Inhalt
  30. iJahr = iphSavze::Jahr
  31. nMGel = iphSavze::MGeli
  32. iAufnr = iphSavze::Aufnr.
  33. FIND Savko NO-LOCK
  34. WHERE Savko.Firma = cFirma
  35. AND Savko.Aufnr = iAufnr NO-ERROR.
  36. IF NOT AVAILABLE Savko THEN RETURN.
  37. ASSIGN iKnr = Savko.Knr
  38. iLager = Savko.Lager.
  39. IF iphSavze::Trnr = 0 THEN DO:
  40. FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k1
  41. WHERE Artbw.Firma = cFirma NO-ERROR.
  42. IF AVAILABLE Artbw THEN iphSavze::Trnr = Artbw.Trnr + 1.
  43. ELSE iphSavze::Trnr = 1.
  44. END.
  45. iTrnr = iphSavze::Trnr.
  46. FIND Artbw USE-INDEX Artbw-k1
  47. WHERE Artbw.Firma = cFirma
  48. AND Artbw.Trnr = iTrnr NO-ERROR.
  49. IF NOT AVAILABLE Artbw THEN DO:
  50. CREATE Artbw.
  51. ASSIGN Artbw.Firma = cFirma
  52. Artbw.Trnr = iTrnr
  53. Artbw.Tr_Art = 01
  54. Artbw.Artnr = iArtnr
  55. Artbw.Inhalt = iInhalt
  56. Artbw.Jahr = iJahr
  57. Artbw.Knr = iKnr.
  58. END.
  59. hArtbw = BUFFER Artbw:HANDLE.
  60. hArtbw:BUFFER-COPY(iphSavze, "Firma,Trnr,Artnr,Inhalt,Jahr").
  61. ASSIGN Artbw.Menge = nMGel
  62. Artbw.Datum = Savko.Auf_Dat
  63. Artbw.Faktor = 1
  64. Artbw.Kurs = Savko.Kurs
  65. Artbw.Faknr = Savko.Faknr
  66. Artbw.Fak_Dat = Savko.Fak_Dat
  67. Artbw.Fak_Art = Savko.Fak_Art
  68. Artbw.Knr = Savko.Knr
  69. Artbw.Fak_Knr = Savko.Fak_Knr
  70. Artbw.Abhol = Savko.Abhol
  71. Artbw.Vertr = Savko.Vertr
  72. Artbw.Bonus_Verb = FALSE.
  73. /* ------------------------------------------ */
  74. /* Bestand, Ausgang (Lager) */
  75. /* ------------------------------------------ */
  76. IF iphSavze::Lag_Buch THEN DO:
  77. FIND ArtLager USE-INDEX ArtLager-k1
  78. WHERE ArtLager.Firma = cFirma
  79. AND ArtLager.Artnr = iArtnr
  80. AND ArtLager.Inhalt = iInhalt
  81. AND ArtLager.Jahr = iJahr
  82. AND ArtLager.Lager = iLager NO-ERROR.
  83. IF NOT AVAILABLE ArtLager THEN DO:
  84. CREATE ArtLager.
  85. ASSIGN ArtLager.Firma = cFirma
  86. ArtLager.Artnr = iArtnr
  87. ArtLager.Inhalt = iInhalt
  88. ArtLager.Jahr = iJahr
  89. ArtLager.Lager = iLager NO-ERROR.
  90. END.
  91. ASSIGN ArtLager.Ausgang = ArtLager.Ausgang + nMGel
  92. ArtLager.Bestand = ArtLager.Bestand - nMGel.
  93. END.
  94. END PROCEDURE.