createaufko.p 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. DEFINE TEMP-TABLE tAufko LIKE Aufko.
  2. PROCEDURE CREATE_AUFKO.
  3. /*------------------------------------------------------------------------------
  4. Purpose:
  5. Parameters: <none>
  6. Notes:
  7. ------------------------------------------------------------------------------*/
  8. DEFINE INPUT PARAMETER ipBuffer AS HANDLE NO-UNDO.
  9. DEFINE VARIABLE BenDaten AS CHARACTER NO-UNDO.
  10. DEFINE VARIABLE Aufnr AS INTEGER NO-UNDO.
  11. DEFINE VARIABLE Knr AS INTEGER NO-UNDO.
  12. DEFINE VARIABLE FwFakArt AS INTEGER NO-UNDO.
  13. DEFINE VARIABLE FwAufSta AS INTEGER NO-UNDO.
  14. DEFINE VARIABLE FwFahrer AS INTEGER NO-UNDO.
  15. DEFINE VARIABLE FwLKW AS INTEGER NO-UNDO.
  16. DEFINE VARIABLE FwBeiFahr AS INTEGER NO-UNDO.
  17. DEFINE VARIABLE FwSprcd AS INTEGER INIT 1 NO-UNDO.
  18. DEFINE VARIABLE retValue AS CHARACTER NO-UNDO.
  19. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  20. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  21. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
  22. DEFINE VARIABLE iLager AS INTEGER INIT 0 NO-UNDO.
  23. FIND FIRST tAufko.
  24. hBuffer = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
  25. hBuffer:BUFFER-COPY(ipBuffer).
  26. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  27. WHERE Adresse.Firma = '1000'
  28. AND Adresse.Knr = tAufko.Knr NO-ERROR.
  29. FIND Debst USE-INDEX Debst-k1
  30. WHERE Debst.Firma = '1000'
  31. AND Debst.Knr = Adresse.Knr NO-ERROR.
  32. FwLKW = 0.
  33. FwFahrer = 0.
  34. FwBeiFahr = 0.
  35. DO WHILE TRUE:
  36. IF Debst.KnrLie <> 0 AND
  37. Debst.KnrLie <> Debst.Knr THEN
  38. DO:
  39. ASSIGN
  40. tAufko.Knr = Debst.KnrLie
  41. tAufko.Fak_Knr = Debst.Knr.
  42. LEAVE.
  43. END.
  44. IF Debst.KnrFak <> 0 AND
  45. Debst.KnrFak <> Debst.Knr THEN
  46. DO:
  47. ASSIGN
  48. tAufko.Knr = Debst.KnrLie
  49. tAufko.Fak_Knr = Debst.KnrFak.
  50. LEAVE.
  51. END.
  52. ASSIGN
  53. tAufko.Knr = Debst.Knr
  54. tAufko.Fak_Knr = Debst.Knr.
  55. LEAVE.
  56. END.
  57. FIND Waehrung NO-LOCK
  58. WHERE Waehrung.Firma = Debst.Firma
  59. AND Waehrung.FRW = Debst.FRW NO-ERROR.
  60. Aufnr = DYNAMIC-FUNCTION('createAufnr':U) NO-ERROR.
  61. ASSIGN
  62. tAufko.Aufnr = Aufnr
  63. tAufko.Auf_Datum = TODAY
  64. tAufko.Lief_Datum = TODAY
  65. tAufko.Kond_Datum = TODAY
  66. tAufko.Fak_Datum = ?
  67. tAufko.I_Best = ''
  68. tAufko.U_Ref = 'eShop'
  69. tAufko.Abhol = FALSE
  70. tAufko.Vertr = Debst.Vertr
  71. tAufko.Rabatt = 0
  72. tAufko.Preis_Grp = Debst.Preis_Grp
  73. tAufko.Ku_Grp = Debst.Ku_Grp
  74. tAufko.Rab_Grp = Debst.Rab_Grp
  75. tAufko.Lief_Bed = Debst.Lief_Bed
  76. tAufko.Avis = Debst.Avis
  77. tAufko.Frw = Debst.FRW
  78. tAufko.Kurs = Waehrung.Kurs
  79. tAufko.Faktor = Waehrung.Faktor
  80. tAufko.Gedruckt = FALSE
  81. tAufko.WW = 0
  82. tAufko.Wpfl = 0
  83. tAufko.Wust = 0
  84. tAufko.Auf_Tot = 0
  85. tAufko.Faknr = 0
  86. tAufko.Bar_Fak = FALSE
  87. tAufko.Bar_Betr = 0
  88. tAufko.Bar_Skonto = 0
  89. tAufko.Bar_Konto = ''
  90. tAufko.GG_Berech = Debst.Geb_rg
  91. tAufko.Kopf_Text = ''
  92. tAufko.Fuss_Text = ''
  93. tAufko.Samm_Nr = 0
  94. tAufko.SK_Ber = 0
  95. tAufko.Verbucht = FALSE
  96. tAufko.Rueckst = FALSE
  97. tAufko.Fak_KTnr = 0
  98. tAufko.Fak_FTnr = 0
  99. tAufko.Filiale = 0
  100. tAufko.Tour_Nr1 = Debst.Tour_Nr1
  101. tAufko.Tour_Nr2 = Debst.Tour_Nr2
  102. tAufko.Konto = Debst.Konto
  103. tAufko.Geb_Rg = Debst.Geb_Rg
  104. tAufko.MWST_Nr = ''
  105. tAufko.Passant = Debst.Passant
  106. tAufko.Auf_Text = Debst.Auf_Text
  107. tAufko.Bar_Text = Debst.Bar_Text
  108. tAufko.Abh_Text = Debst.Bemerk
  109. tAufko.Zei_Rab_Art = Debst.Zei_Rab_Art
  110. tAufko.Zei_Rab_Wert = Debst.Zei_Rab_Wert
  111. tAufko.Auf_Rab_Art = Debst.Auf_Rab_Art
  112. tAufko.Auf_Rab_Wert = Debst.Auf_Rab_Wert
  113. /*
  114. tAufko.Abh_Rab_Art = Debst.Abh_Rab_Art
  115. tAufko.Abh_Rab_Wert = Debst.Abh_Rab_Wert
  116. */
  117. tAufko.Zuschl_Art = Debst.Zuschl_Art
  118. tAufko.Zuschl_Wert = Debst.Zuschl_Wert
  119. tAufko.Ablad_Vor = Debst.Ablad_Vor
  120. tAufko.Wirt_So = Debst.Wirt_So
  121. tAufko.Ablad_Vor_Text = Debst.Ablad_Vor_Text
  122. tAufko.Wirt_So_Text = Debst.Wirt_So_Text
  123. tAufko.MWST = Debst.MWST
  124. tAufko.Kond = Debst.Kond
  125. tAufko.LKW = FwLKW
  126. tAufko.Fahrer = FwFahrer
  127. tAufko.BeiFahrer = FwBeiFahr
  128. tAufko.Gewicht = 0
  129. tAufko.Transp = 0
  130. tAufko.Verpack = 0
  131. tAufko.Porto = 0
  132. tAufko.Lager = iLager
  133. .
  134. IF tAufko.Konto = '' THEN
  135. DO:
  136. FIND SteuNr USE-INDEX SteuNr-k1
  137. WHERE SteuNr.Firma = '1000' NO-LOCK.
  138. tAufko.Konto = SteuNr.Konto_Debi.
  139. END.
  140. ipBuffer:BUFFER-COPY(hBuffer) NO-ERROR.
  141. RELEASE Adresse.
  142. RELEASE Debst.
  143. END PROCEDURE.
  144. FUNCTION createAufnr
  145. RETURN INTEGER.
  146. DEFINE VARIABLE iAufnr AS INTEGER INIT 0 NO-UNDO.
  147. REPEAT TRANSACTION:
  148. FIND SteuNr WHERE SteuNr.Firma = '1000'
  149. EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  150. IF AVAILABLE SteuNr THEN
  151. DO:
  152. ASSIGN
  153. SteuNr.Nr1 = SteuNr.Nr1 + 1
  154. iAufnr = SteuNr.Nr1.
  155. RELEASE SteuNr.
  156. LEAVE.
  157. END.
  158. IF LOCKED SteuNr THEN
  159. DO:
  160. MESSAGE 'SteuNr LOCKED' VIEW-AS ALERT-BOX INFORMATION.
  161. NEXT.
  162. END.
  163. LEAVE.
  164. END.
  165. RETURN iAufnr.
  166. END FUNCTION.