Interfkontr.p 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. DEF VAR DeKto AS CHAR NO-UNDO INIT '1050'.
  2. DEF VAR ErKto AS CHAR NO-UNDO INIT '6000'.
  3. DEF VAR GeKto AS CHAR NO-UNDO INIT ''.
  4. DEF VAR iTrnr AS INT NO-UNDO.
  5. DEF VAR Firma AS CHAR NO-UNDO INIT '1000'.
  6. DEF VAR Trnr AS INT NO-UNDO.
  7. DEF WORKFILE WInterf LIKE Interf.
  8. DEF TEMP-TABLE TKontr FIELD Faknr AS INT
  9. FIELD Knr AS INT
  10. FIELD Fakbetr AS DEC
  11. FIELD Intbetr AS DEC
  12. FIELD Gebbetr AS DEC
  13. FIELD Diff AS DEC
  14. FIELD Trnr1 AS INT
  15. FIELD Trnr2 AS INT
  16. FIELD Herk AS INT
  17. FIELD Fakdat AS DATE
  18. FIELD Konto AS CHAR
  19. FIELD Buchtxt1 AS CHAR
  20. FIELD Buchtxt2 AS CHAR.
  21. EMPTY TEMP-TABLE TKontr.
  22. FOR EACH WInterf.
  23. DELETE WInterf.
  24. END.
  25. CREATE WInterf.
  26. FIND SteuNr WHERE SteuNr.Firma = Firma NO-LOCK NO-ERROR.
  27. IF SteuNr.Konto_Ertrag <> '' THEN ErKto = SteuNr.Konto_Ertrag.
  28. IF GeKto = '' THEN GeKto = SteuNr.Konto_Gebinde.
  29. IF GeKto = '' THEN GeKto = SteuNr.Konto_Ertrag .
  30. OUTPUT TO 'Interf.txt'.
  31. FOR EACH Debfa USE-INDEX Debfa-k3
  32. WHERE Debfa.Firma = Firma
  33. AND Debfa.Fakdat >= 08/01/2003
  34. AND Debfa.Fakdat <= 08/31/2003 NO-LOCK:
  35. CREATE TKontr.
  36. ASSIGN TKontr.Faknr = Debfa.Faknr
  37. TKontr.Knr = Debfa.Knr
  38. TKontr.Fakbetr = Debfa.Fakbetr
  39. TKontr.Trnr1 = Debfa.Trnr1
  40. TKontr.Trnr2 = Debfa.Trnr2
  41. TKontr.Fakdat = Debfa.Fakdat
  42. TKontr.Konto = Debfa.Konto.
  43. FOR EACH Interf USE-INDEX Interf-k1
  44. WHERE Interf.Firma = Debfa.Firma
  45. AND Interf.Trnr1 = Debfa.Trnr1
  46. AND Interf.Trnr2 = Debfa.Trnr2
  47. AND Interf.Kto1 = Debfa.Konto NO-LOCK:
  48. TKontr.Intbetr = TKontr.Intbetr + Interf.Betrag.
  49. TKontr.Herk = Interf.Herk.
  50. IF TKontr.Buchtxt1 = '' THEN DO:
  51. ASSIGN TKontr.Buchtxt1 = Interf.Buchtxt1
  52. TKontr.Buchtxt2 = Interf.Buchtxt2.
  53. END.
  54. END.
  55. IF TKontr.Intbetr = 0 THEN DO:
  56. ASSIGN TKontr.Buchtxt1 = 'Leergutrücknahme'
  57. TKontr.Buchtxt2 = ''
  58. TKontr.Herk = 51.
  59. END.
  60. TKontr.Diff = TKontr.Fakbetr - TKontr.Intbetr.
  61. IF TKontr.Diff = 0 THEN NEXT.
  62. IF TKontr.Diff >= -0.05 AND
  63. TKontr.Diff <= +0.05 THEN DO:
  64. FIND LAST Interf USE-INDEX Interf-k1
  65. WHERE Interf.Firma = Debfa.Firma
  66. AND Interf.Trnr1 = Debfa.Trnr1
  67. AND Interf.Trnr2 = Debfa.Trnr2 NO-LOCK NO-ERROR.
  68. IF AVAILABLE Interf THEN Trnr = Interf.Trnr + 1.
  69. ELSE Trnr = 1.
  70. CREATE Interf.
  71. ASSIGN Interf.Firma = Firma
  72. Interf.TrNr1 = Debfa.Trnr1
  73. Interf.TrNr2 = Debfa.Trnr2
  74. Interf.TrNr = Trnr
  75. Interf.Kto1 = DeKto
  76. Interf.Kto2 = ErKto
  77. Interf.Herk = TKontr.Herk
  78. Interf.Datum = Debfa.Fakdat
  79. Interf.Buchtxt1 = 'Rundungsdifferenzen'
  80. Interf.Buchtxt2 = ''
  81. Interf.Betrag = TKontr.Diff
  82. Interf.Betrag_Frw = TKontr.Diff
  83. Interf.FRW = Debfa.FRW
  84. Interf.Faktor = Debfa.Faktor
  85. Interf.Kurs = Debfa.Kurs
  86. Interf.Verbucht = FALSE
  87. Interf.Faknr = STRING(Debfa.Faknr,"9999999")
  88. Interf.Knr = Debfa.Knr
  89. Interf.MWST_Nr = ""
  90. Interf.MWST_Cd = 0
  91. Interf.HKFirma = Firma.
  92. TKontr.Intbetr = TKontr.Intbetr + TKontr.Diff.
  93. TKontr.Diff = 0.
  94. EXPORT DELIMITER ';' Interf.
  95. NEXT.
  96. END.
  97. FOR EACH Savko USE-INDEX Savko-k6
  98. WHERE Savko.Firma = Debfa.Firma
  99. AND Savko.Knr = Debfa.Knr
  100. AND Savko.Faknr = Debfa.Faknr NO-LOCK,
  101. EACH SavGKon OF Savko NO-LOCK:
  102. TKontr.Gebbetr = TKontr.Gebbetr + SavGKon.Betrag.
  103. END.
  104. IF TKontr.Gebbetr = 0 THEN TKontr.Gebbetr = TKontr.Diff.
  105. TKontr.Diff = TKontr.Diff - TKontr.Gebbetr.
  106. IF TKontr.Diff = 0 THEN NEXT.
  107. FIND LAST Interf USE-INDEX Interf-k1
  108. WHERE Interf.Firma = Debfa.Firma
  109. AND Interf.Trnr1 = Debfa.Trnr1
  110. AND Interf.Trnr2 = Debfa.Trnr2 NO-LOCK NO-ERROR.
  111. IF AVAILABLE Interf THEN Trnr = Interf.Trnr + 1.
  112. ELSE Trnr = 1.
  113. CREATE Interf.
  114. ASSIGN Interf.Firma = Firma
  115. Interf.TrNr1 = Debfa.Trnr1
  116. Interf.TrNr2 = Debfa.Trnr2
  117. Interf.TrNr = Trnr
  118. Interf.Kto1 = DeKto
  119. Interf.Kto2 = ErKto
  120. Interf.Herk = TKontr.Herk
  121. Interf.Datum = Debfa.Fakdat
  122. Interf.Buchtxt1 = 'Rundungsdifferenzen'
  123. Interf.Buchtxt2 = ''
  124. Interf.Betrag = TKontr.Diff
  125. Interf.Betrag_Frw = TKontr.Diff
  126. Interf.FRW = Debfa.FRW
  127. Interf.Faktor = Debfa.Faktor
  128. Interf.Kurs = Debfa.Kurs
  129. Interf.Verbucht = FALSE
  130. Interf.Faknr = STRING(Debfa.Faknr,"9999999")
  131. Interf.Knr = Debfa.Knr
  132. Interf.MWST_Nr = ""
  133. Interf.MWST_Cd = 0
  134. Interf.HKFirma = Firma.
  135. TKontr.Intbetr = TKontr.Intbetr + TKontr.Diff.
  136. TKontr.Diff = 0.
  137. EXPORT DELIMITER ';' Interf.
  138. END.
  139. FOR EACH TKontr WHERE TKontr.Gebbetr <> 0
  140. BY TKontr.Faknr.
  141. FIND LAST Interf USE-INDEX Interf-k1
  142. WHERE Interf.Firma = Firma
  143. AND Interf.Trnr1 = TKontr.Trnr1
  144. AND Interf.Trnr2 = TKontr.Trnr2 NO-LOCK NO-ERROR.
  145. IF AVAILABLE Interf THEN Trnr = Interf.Trnr + 1.
  146. ELSE Trnr = 1.
  147. CREATE Interf.
  148. ASSIGN Interf.Firma = Firma
  149. Interf.TrNr1 = TKontr.Trnr1
  150. Interf.TrNr2 = TKontr.Trnr2
  151. Interf.TrNr = Trnr
  152. Interf.Kto1 = DeKto
  153. Interf.Kto2 = GeKto
  154. Interf.Herk = TKontr.Herk
  155. Interf.Datum = TKontr.Fakdat
  156. Interf.Buchtxt1 = TKontr.Buchtxt1
  157. Interf.Buchtxt2 = TKontr.Buchtxt2
  158. Interf.Betrag = TKontr.Gebbetr
  159. Interf.Betrag_Frw = TKontr.Gebbetr
  160. Interf.FRW = 'CHF'
  161. Interf.Faktor = 1
  162. Interf.Kurs = 1.0000
  163. Interf.Verbucht = FALSE
  164. Interf.Faknr = STRING(TKontr.Faknr,"9999999")
  165. Interf.Knr = TKontr.Knr
  166. Interf.MWST_Nr = ""
  167. Interf.MWST_Cd = 0
  168. Interf.HKFirma = Firma.
  169. TKontr.Intbetr = TKontr.Intbetr + TKontr.Diff.
  170. TKontr.Diff = 0.
  171. EXPORT DELIMITER ';' Interf.
  172. END.
  173. OUTPUT CLOSE.