w-batch-retouren.w 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME wretouren
  4. {adecomm/appserv.i}
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wretouren
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrwin.w - ADM SmartWindow Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. History: New V9 Version - January 15, 1998
  14. ------------------------------------------------------------------------*/
  15. /* This .W file was created with the Progress AB. */
  16. /*----------------------------------------------------------------------*/
  17. /* Create an unnamed pool to store all the widgets created
  18. by this procedure. This is a good default which assures
  19. that this procedure's triggers and internal procedures
  20. will execute in this procedure's storage, and that proper
  21. cleanup will occur on deletion of the procedure. */
  22. CREATE WIDGET-POOL.
  23. /* *************************** Definitions ************************** */
  24. /* Parameters Definitions --- */
  25. /* Local Variable Definitions --- */
  26. DEF VAR cUser AS CHAR NO-UNDO.
  27. DEF VAR iBeg AS INT NO-UNDO.
  28. DEF VAR iArtnr AS INT NO-UNDO.
  29. DEF VAR iInhalt AS INT NO-UNDO.
  30. DEF VAR iJahr AS INT NO-UNDO.
  31. DEF VAR iKGeb_Me AS INT NO-UNDO.
  32. DEF VAR iVGeb_Me AS INT NO-UNDO.
  33. DEF VAR iGGeb_Me AS INT NO-UNDO.
  34. DEF VAR lBatch AS LOG NO-UNDO.
  35. DEF VAR cLogName AS CHAR NO-UNDO.
  36. DEF TEMP-TABLE tAufko LIKE Aufko.
  37. DEF TEMP-TABLE tAufze LIKE Aufze.
  38. DEF VAR htAufze AS HANDLE NO-UNDO.
  39. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  40. DEF STREAM Out_Stream.
  41. DEF STREAM LogStream.
  42. { incl/windefinition.i }
  43. { incl/ttdruckparam.i }
  44. {src/adm2/widgetprto.i}
  45. /* _UIB-CODE-BLOCK-END */
  46. &ANALYZE-RESUME
  47. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  48. /* ******************** Preprocessor Definitions ******************** */
  49. &Scoped-define PROCEDURE-TYPE SmartWindow
  50. &Scoped-define DB-AWARE no
  51. &Scoped-define ADM-CONTAINER WINDOW
  52. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  53. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  54. &Scoped-define FRAME-NAME fMain
  55. /* Standard List Definitions */
  56. &Scoped-Define ENABLED-OBJECTS F_Status
  57. /* Custom List Definitions */
  58. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  59. /* _UIB-PREPROCESSOR-BLOCK-END */
  60. &ANALYZE-RESUME
  61. /* ************************ Function Prototypes ********************** */
  62. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculateAufGebKo wretouren
  63. FUNCTION calculateAufGebKo RETURNS LOGICAL
  64. ( ipRecid AS RECID, ipMenge AS INT ) FORWARD.
  65. /* _UIB-CODE-BLOCK-END */
  66. &ANALYZE-RESUME
  67. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getDruckProgramm wretouren
  68. FUNCTION getDruckProgramm RETURNS CHARACTER
  69. ( /* parameter-definitions */ ) FORWARD.
  70. /* _UIB-CODE-BLOCK-END */
  71. &ANALYZE-RESUME
  72. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLogName wretouren
  73. FUNCTION getLogName RETURNS CHARACTER
  74. ( /* parameter-definitions */ ) FORWARD.
  75. /* _UIB-CODE-BLOCK-END */
  76. &ANALYZE-RESUME
  77. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getProgname wretouren
  78. FUNCTION getProgname RETURNS CHARACTER
  79. ( /* parameter-definitions */ ) FORWARD.
  80. /* _UIB-CODE-BLOCK-END */
  81. &ANALYZE-RESUME
  82. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD writeLogFile wretouren
  83. FUNCTION writeLogFile RETURNS LOGICAL
  84. ( ipMessage AS CHAR ) FORWARD.
  85. /* _UIB-CODE-BLOCK-END */
  86. &ANALYZE-RESUME
  87. /* *********************** Control Definitions ********************** */
  88. /* Define the widget handle for the window */
  89. DEFINE VAR wretouren AS WIDGET-HANDLE NO-UNDO.
  90. /* Definitions of the field level widgets */
  91. DEFINE VARIABLE F_Status AS CHARACTER FORMAT "X(256)":U
  92. LABEL "Status"
  93. VIEW-AS FILL-IN NATIVE
  94. SIZE 65 BY 1
  95. BGCOLOR 15 FONT 6 NO-UNDO.
  96. /* ************************ Frame Definitions *********************** */
  97. DEFINE FRAME fMain
  98. F_Status AT ROW 2.57 COL 12 COLON-ALIGNED WIDGET-ID 2 NO-TAB-STOP
  99. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  100. SIDE-LABELS NO-UNDERLINE THREE-D
  101. AT COL 1 ROW 1
  102. SIZE 85.4 BY 5.52 WIDGET-ID 100.
  103. /* *********************** Procedure Settings ************************ */
  104. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  105. /* Settings for THIS-PROCEDURE
  106. Type: SmartWindow
  107. Allow: Basic,Browse,DB-Fields,Query,Smart,Window
  108. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  109. Other Settings: COMPILE APPSERVER
  110. */
  111. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  112. /* ************************* Create Window ************************** */
  113. &ANALYZE-SUSPEND _CREATE-WINDOW
  114. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  115. CREATE WINDOW wretouren ASSIGN
  116. HIDDEN = YES
  117. TITLE = "Retouren"
  118. HEIGHT = 5.52
  119. WIDTH = 85.4
  120. MAX-HEIGHT = 30.48
  121. MAX-WIDTH = 160
  122. VIRTUAL-HEIGHT = 30.48
  123. VIRTUAL-WIDTH = 160
  124. RESIZE = no
  125. SCROLL-BARS = no
  126. STATUS-AREA = no
  127. BGCOLOR = ?
  128. FGCOLOR = ?
  129. THREE-D = yes
  130. MESSAGE-AREA = no
  131. SENSITIVE = yes.
  132. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  133. &IF '{&WINDOW-SYSTEM}' NE 'TTY' &THEN
  134. IF NOT wretouren:LOAD-ICON("grafik/appl.ico":U) THEN
  135. MESSAGE "Unable to load icon: grafik/appl.ico"
  136. VIEW-AS ALERT-BOX WARNING BUTTONS OK.
  137. &ENDIF
  138. /* END WINDOW DEFINITION */
  139. &ANALYZE-RESUME
  140. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wretouren
  141. /* ************************* Included-Libraries *********************** */
  142. {src/adm2/containr.i}
  143. /* _UIB-CODE-BLOCK-END */
  144. &ANALYZE-RESUME
  145. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  146. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  147. /* SETTINGS FOR WINDOW wretouren
  148. VISIBLE,,RUN-PERSISTENT */
  149. /* SETTINGS FOR FRAME fMain
  150. FRAME-NAME */
  151. /* SETTINGS FOR FILL-IN F_Status IN FRAME fMain
  152. NO-DISPLAY */
  153. ASSIGN
  154. F_Status:READ-ONLY IN FRAME fMain = TRUE.
  155. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wretouren)
  156. THEN wretouren:HIDDEN = yes.
  157. /* _RUN-TIME-ATTRIBUTES-END */
  158. &ANALYZE-RESUME
  159. /* ************************ Control Triggers ************************ */
  160. &Scoped-define SELF-NAME wretouren
  161. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wretouren wretouren
  162. ON WINDOW-CLOSE OF wretouren /* Retouren */
  163. DO:
  164. /* This ADM code must be left here in order for the SmartWindow
  165. and its descendents to terminate properly on exit. */
  166. DEF VAR cMeldung AS CHAR NO-UNDO.
  167. DEF VAR ja AS LOG NO-UNDO.
  168. RUN ENDE.
  169. RETURN NO-APPLY.
  170. END.
  171. /* _UIB-CODE-BLOCK-END */
  172. &ANALYZE-RESUME
  173. &UNDEFINE SELF-NAME
  174. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wretouren
  175. /* *************************** Main Block *************************** */
  176. DEF VAR iTime AS INT NO-UNDO.
  177. DEF VAR iRecId AS RECID NO-UNDO.
  178. DEF VAR cRetVal AS CHAR NO-UNDO.
  179. DEF VAR iTrnr AS INT INIT 0 NO-UNDO.
  180. DEF VAR iWoTag AS INT NO-UNDO.
  181. DEF VAR iHH AS INT NO-UNDO.
  182. DEF VAR cMessage AS CHAR NO-UNDO.
  183. DEF VAR iAblauf AS INT NO-UNDO.
  184. { incl/winmainblock.i }
  185. ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
  186. {&WINDOW-NAME}:KEEP-FRAME-Z-ORDER = YES
  187. THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
  188. cUser = DYNAMIC-FUNCTION('getBenutzer') NO-ERROR.
  189. cLogName = DYNAMIC-FUNCTION('getLogName':U) NO-ERROR.
  190. lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
  191. cMessage = SUBSTITUTE('Programm &1 gestartet', ProgName).
  192. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  193. RUN createObjects.
  194. RUN initializeObject.
  195. iBeg = TIME.
  196. iTime = ETIME(TRUE).
  197. iTrnr = -1.
  198. MAIN-BLOCK:
  199. REPEAT WITH FRAME {&FRAME-NAME}
  200. ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
  201. ON QUIT UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK :
  202. IF (TIME - iBeg) >= 285 THEN RUN ENDE. /* ordentliches beenden
  203. nach 4min 45sek */
  204. F_Status:SCREEN-VALUE = 'warten auf Auftrag'.
  205. FIND FIRST ASMutation NO-lOCK USE-INDEX ASMutation-k2
  206. WHERE ASMutation.Aktiv = TRUE
  207. AND ASMutation.asmutation_id > iTrnr
  208. AND ASMutation.cStatus = '' NO-ERROR.
  209. IF NOT AVAILABLE ASMutation THEN DO:
  210. iTrnr = -1.
  211. WAIT-FOR WINDOW-CLOSE OF THIS-PROCEDURE PAUSE 2.
  212. APPLY LASTKEY TO THIS-PROCEDURE.
  213. NEXT MAIN-BLOCK.
  214. END.
  215. iTime = ETIME(TRUE).
  216. iTrnr = ASMutation.asmutation_id.
  217. iRecid = RECID(ASMutation).
  218. F_Status:SCREEN-VALUE = 'Verarbeiten -> ' + ASMutation.MutArt.
  219. IF NOT ASMutation.MutArt BEGINS 'RETOUREN' THEN NEXT.
  220. REPEAT TRANSACTION:
  221. FIND ASMutation EXCLUSIVE-LOCK
  222. WHERE RECID(ASMutation) = iRecid NO-WAIT NO-ERROR.
  223. IF NOT AVAILABLE ASMutation AND
  224. LOCKED ASMutation THEN NEXT MAIN-BLOCK.
  225. ASSIGN ASMutation.cStatus = 'A'.
  226. RELEASE ASMutation.
  227. LEAVE.
  228. END.
  229. cRetVal = ''.
  230. EMPTY TEMP-TABLE tAufko.
  231. EMPTY TEMP-TABLE tAufze.
  232. FIND ASMutation NO-LOCK WHERE RECID(ASMutation) = iRecid.
  233. CASE ASMutation.MutArt:
  234. WHEN 'RETOUREN' THEN RUN CREATE_RETOUREN_AUFZE ( iRecid ).
  235. WHEN 'RETOURENGEBINDE' THEN RUN CREATE_RETOUREN_GEBINDE ( iRecid ).
  236. WHEN 'RETOURENENDE' THEN RUN CREATE_RETOUREN_ENDE ( iRecid ).
  237. END CASE.
  238. cRetVal = RETURN-VALUE.
  239. RUN viewObject.
  240. IF cRetVal BEGINS 'ERROR' THEN DO:
  241. IF lBatch THEN DO:
  242. cMessage = SUBSTITUTE('Fehler &1 bei Retouren von &2', ENTRY(2, cRetVal, ';'), ASMutation.MutArt).
  243. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  244. END.
  245. F_Status:SCREEN-VALUE = ASMutation.MutArt + ' -> ' + ENTRY(2, cRetVal, ';').
  246. PAUSE 10 NO-MESSAGE.
  247. iAblauf = 0.
  248. REPEAT TRANSACTION:
  249. FIND ASMutation EXCLUSIVE-LOCK
  250. WHERE RECID(ASMutation) = iRecid NO-WAIT NO-ERROR.
  251. IF NOT AVAILABLE ASMutation AND
  252. LOCKED ASMutation THEN DO:
  253. PAUSE 1 NO-MESSAGE.
  254. iAblauf = iAblauf + 1.
  255. IF iAblauf >= 10 THEN LEAVE.
  256. NEXT.
  257. END.
  258. ASSIGN ASMutation.cStatus = ''.
  259. RELEASE ASMutation.
  260. LEAVE.
  261. END.
  262. WAIT-FOR WINDOW-CLOSE OF THIS-PROCEDURE PAUSE 1.
  263. APPLY LASTKEY TO THIS-PROCEDURE.
  264. NEXT MAIN-BLOCK.
  265. END.
  266. ELSE DO:
  267. iAblauf = 0.
  268. REPEAT TRANSACTION:
  269. FIND ASMutation EXCLUSIVE-LOCK
  270. WHERE RECID(ASMutation) = iRecid NO-WAIT NO-ERROR.
  271. IF NOT AVAILABLE ASMutation AND
  272. LOCKED ASMutation THEN DO:
  273. PAUSE 1 NO-MESSAGE.
  274. iAblauf = iAblauf + 1.
  275. IF iAblauf >= 10 THEN LEAVE.
  276. NEXT.
  277. END.
  278. ASSIGN ASMutation.cStatus = 'E'
  279. ASMutation.Aktiv = FALSE.
  280. RELEASE ASMutation.
  281. LEAVE.
  282. END.
  283. END.
  284. WAIT-FOR WINDOW-CLOSE OF THIS-PROCEDURE PAUSE 1.
  285. APPLY LASTKEY TO THIS-PROCEDURE.
  286. END.
  287. /* _UIB-CODE-BLOCK-END */
  288. &ANALYZE-RESUME
  289. /* ********************** Internal Procedures *********************** */
  290. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wretouren _ADM-CREATE-OBJECTS
  291. PROCEDURE adm-create-objects :
  292. /*------------------------------------------------------------------------------
  293. Purpose: Create handles for all SmartObjects used in this procedure.
  294. After SmartObjects are initialized, then SmartLinks are added.
  295. Parameters: <none>
  296. ------------------------------------------------------------------------------*/
  297. END PROCEDURE.
  298. /* _UIB-CODE-BLOCK-END */
  299. &ANALYZE-RESUME
  300. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_RETOUREN_AUFZE wretouren
  301. PROCEDURE CREATE_RETOUREN_AUFZE :
  302. /*------------------------------------------------------------------------------
  303. Purpose:
  304. Parameters: <none>
  305. Notes:
  306. ------------------------------------------------------------------------------*/
  307. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  308. DEF VAR cRuester AS CHAR NO-UNDO.
  309. DEF VAR iAufnr AS INT NO-UNDO.
  310. DEF VAR iPos AS INT NO-UNDO.
  311. DEF VAR iRecid AS RECID NO-UNDO.
  312. DEF VAR ix AS INT NO-UNDO.
  313. DEF VAR nTotale AS DEC EXTENT 15 NO-UNDO.
  314. DEF VAR cFirma AS CHAR NO-UNDO.
  315. DEF VAR cMessage AS CHAR NO-UNDO.
  316. DEF BUFFER bAufze FOR Aufze .
  317. DEF BUFFER bAufko FOR Aufko .
  318. FIND ASMutation NO-LOCK
  319. WHERE RECID(ASMutation) = ipRecid.
  320. ASSIGN cRuester = ASMutation.cFeld_2
  321. iAufnr = ASMutation.iKey_1
  322. cFirma = ASMutation.Firma.
  323. FIND Aufko NO-LOCK USE-INDEX Aufko-k1
  324. WHERE Aufko.Firma = cFirma
  325. AND Aufko.Aufnr = iAufnr NO-ERROR.
  326. IF NOT AVAILABLE Aufko THEN RETURN ''.
  327. DO ix = 1 TO NUM-ENTRIES(ASMutation.cFeld_1, ';'):
  328. CASE ix:
  329. WHEN 1 THEN iArtnr = INTEGER(ENTRY(ix, ASMutation.cFeld_1, ';')).
  330. WHEN 2 THEN iInhalt = INTEGER(ENTRY(ix, ASMutation.cFeld_1, ';')).
  331. WHEN 3 THEN iJahr = INTEGER(ENTRY(ix, ASMutation.cFeld_1, ';')).
  332. WHEN 4 THEN iKGeb_Me = INTEGER(ENTRY(ix, ASMutation.cFeld_1, ';')).
  333. WHEN 5 THEN iVGeb_Me = INTEGER(ENTRY(ix, ASMutation.cFeld_1, ';')).
  334. WHEN 6 THEN iGGeb_Me = INTEGER(ENTRY(ix, ASMutation.cFeld_1, ';')).
  335. END.
  336. END.
  337. cMessage = SUBSTITUTE('Create_Retouren_Aufze -> Aufnr &1 Artnr &2 Inhalt &3 Jahr &4 KGeb &5 VGeb &6 GGeb &7',
  338. Aufko.Aufnr, iArtnr, iInhalt, iJahr, iKGeb_Me, iVGeb_Me, iGGeb_Me).
  339. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  340. FIND FIRST bAufze NO-LOCK
  341. WHERE bAufze.Firma = cFirma
  342. AND bAufze.Aufnr = iAufnr
  343. AND bAufze.Artnr = iArtnr
  344. AND bAufze.Inhalt = iInhalt
  345. AND bAufze.Jahr = iJahr NO-ERROR.
  346. IF AVAILABLE bAufze THEN DO:
  347. iRecid = RECID(bAufze).
  348. REPEAT TRANSACTION:
  349. FIND bAufze WHERE RECID(bAufze) = iRecid.
  350. CREATE tAufze.
  351. BUFFER-COPY bAufze
  352. TO tAufze.
  353. ASSIGN tAufze.MBest = tAufze.MBest - iKGeb_Me
  354. tAufze.MGeli = tAufze.MGeli - iKGeb_Me
  355. tAufze.KGeb_Be = tAufze.KGeb_Be - iKGeb_Me
  356. tAufze.KGeb_Me = tAufze.KGeb_Me - iKGeb_Me
  357. tAufze.VGeb_Be = tAufze.VGeb_Be - iVGeb_Me
  358. tAufze.VGeb_Me = tAufze.VGeb_Me - iVGeb_Me
  359. tAufze.GGeb_Be = tAufze.GGeb_Be - iGGeb_Me
  360. tAufze.GGeb_Me = tAufze.GGeb_Me - iGGeb_Me.
  361. DYNAMIC-FUNCTION('calculateZeilenTotal':U, INPUT-OUTPUT htAufze) NO-ERROR.
  362. DYNAMIC-FUNCTION('fillArtbwFromAufze':U , INPUT-OUTPUT htAufze) NO-ERROR.
  363. BUFFER-COPY tAufze TO bAufze.
  364. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, cFirma, iAufnr, OUTPUT nTotale ) NO-ERROR.
  365. RELEASE bAufze.
  366. LEAVE.
  367. END.
  368. RETURN ''.
  369. END.
  370. iRecid = ?.
  371. FOR EACH bAufko NO-LOCK
  372. WHERE bAufko.Firma = Aufko.Firma
  373. AND bAufko.Samm_Nr = Aufko.Samm_Nr
  374. AND bAufko.Aufnr <> Aufko.Aufnr,
  375. EACH bAufze NO-LOCK
  376. WHERE bAufze.Firma = bAufko.Firma
  377. AND bAufze.Aufnr = bAufko.Aufnr
  378. AND bAufze.Artnr > 0
  379. AND bAufze.Artnr = iArtnr
  380. AND bAufze.Inhalt = iInhalt
  381. AND bAufze.Jahr = iJahr.
  382. iRecid = RECID(bAufze).
  383. LEAVE.
  384. END.
  385. FIND LAST bAufze NO-LOCK
  386. WHERE bAufze.Firma = Aufko.Firma
  387. AND bAufze.Aufnr = Aufko.Aufnr NO-ERROR.
  388. iPos = (IF AVAILABLE bAufze THEN bAufze.Pos + 5 ELSE 5).
  389. REPEAT TRANSACTION WHILE iRecid <> ?:
  390. FIND bAufze NO-LOCK WHERE RECID(bAufze) = iRecid.
  391. CREATE tAufze.
  392. BUFFER-COPY bAufze
  393. EXCEPT Aufnr Pos Artnr Inhalt Jahr
  394. MBest MGeli MRuek
  395. KGeb_Be KGeb_Me VGeb_Be VGeb_Me
  396. GGeb_Be GGeb_Me KGeb_Ru VGeb_Ru GGeb_Ru
  397. Trnr
  398. TO tAufze
  399. ASSIGN tAufze.Aufnr = Aufko.Aufnr
  400. tAufze.Artnr = iArtnr
  401. tAufze.Inhalt = iInhalt
  402. tAufze.Jahr = iJahr
  403. tAufze.Pos = iPos
  404. tAufze.MBest = - iKGeb_Me
  405. tAufze.MGeli = - iKGeb_Me
  406. tAufze.KGeb_Be = - iKGeb_Me
  407. tAufze.KGeb_Me = - iKGeb_Me
  408. tAufze.VGeb_Be = - iVGeb_Me
  409. tAufze.VGeb_Me = - iVGeb_Me
  410. tAufze.GGeb_Be = - iGGeb_Me
  411. tAufze.GGeb_Me = - iGGeb_Me
  412. .
  413. DYNAMIC-FUNCTION('calculateZeilenTotal':U, INPUT-OUTPUT htAufze) NO-ERROR.
  414. DYNAMIC-FUNCTION('fillArtbwFromAufze':U , INPUT-OUTPUT htAufze) NO-ERROR.
  415. CREATE Aufze.
  416. BUFFER-COPY tAufze TO Aufze.
  417. LEAVE.
  418. END.
  419. REPEAT TRANSACTION WHILE iRecid = ?:
  420. CREATE tAufze.
  421. ASSIGN tAufze.Firma = Aufko.Firma
  422. tAufze.Aufnr = Aufko.Aufnr
  423. tAufze.Pos = iPos
  424. tAufze.Artnr = iArtnr
  425. tAufze.Inhalt = iInhalt
  426. tAufze.Jahr = iJahr.
  427. DYNAMIC-FUNCTION('fillAufze':U, INPUT-OUTPUT htAufze ).
  428. ASSIGN tAufze.MBest = - iKGeb_Me
  429. tAufze.MGeli = - iKGeb_Me
  430. tAufze.KGeb_Be = - iKGeb_Me
  431. tAufze.KGeb_Me = - iKGeb_Me
  432. tAufze.VGeb_Be = - iVGeb_Me
  433. tAufze.VGeb_Me = - iVGeb_Me
  434. tAufze.GGeb_Be = - iGGeb_Me
  435. tAufze.GGeb_Me = - iGGeb_Me.
  436. tAufze.PreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze) NO-ERROR.
  437. DYNAMIC-FUNCTION('calculateZeilenTotal':U, INPUT-OUTPUT htAufze) NO-ERROR.
  438. DYNAMIC-FUNCTION('fillArtbwFromAufze':U , INPUT-OUTPUT htAufze) NO-ERROR.
  439. CREATE Aufze.
  440. BUFFER-COPY tAufze TO Aufze.
  441. LEAVE.
  442. END.
  443. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Aufko.Firma, Aufko.Aufnr, OUTPUT nTotale ) NO-ERROR.
  444. RELEASE bAufko .
  445. RELEASE bAufze .
  446. RELEASE Aufze .
  447. RELEASE bAufze .
  448. RETURN ''.
  449. END PROCEDURE.
  450. /* _UIB-CODE-BLOCK-END */
  451. &ANALYZE-RESUME
  452. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_RETOUREN_ENDE wretouren
  453. PROCEDURE CREATE_RETOUREN_ENDE :
  454. /*------------------------------------------------------------------------------
  455. Purpose:
  456. Parameters: <none>
  457. Notes:
  458. ------------------------------------------------------------------------------*/
  459. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  460. DEF VAR cRuester AS CHAR NO-UNDO.
  461. DEF VAR iAufnr AS INT NO-UNDO.
  462. DEF VAR iRecid AS RECID NO-UNDO.
  463. DEF VAR ix AS INT NO-UNDO.
  464. DEF VAR cFirma AS CHAR NO-UNDO.
  465. DEF VAR cMessage AS CHAR NO-UNDO.
  466. DEF BUFFER bAufko FOR Aufko .
  467. FIND ASMutation NO-LOCK
  468. WHERE RECID(ASMutation) = ipRecid.
  469. ASSIGN cRuester = ASMutation.cFeld_2
  470. iAufnr = ASMutation.iKey_1
  471. cFirma = ASMutation.Firma.
  472. FIND bAufko NO-LOCK USE-INDEX Aufko-k1
  473. WHERE bAufko.Firma = cFirma
  474. AND bAufko.Aufnr = iAufnr NO-ERROR.
  475. IF NOT AVAILABLE bAufko THEN RETURN ''.
  476. cMessage = SUBSTITUTE('Create_Retouren_Ende -> Aufnr &1 ', bAufko.Aufnr).
  477. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  478. RUN WEITER ( bAufko.Aufnr ).
  479. RETURN ''.
  480. END PROCEDURE.
  481. /* _UIB-CODE-BLOCK-END */
  482. &ANALYZE-RESUME
  483. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_RETOUREN_GEBINDE wretouren
  484. PROCEDURE CREATE_RETOUREN_GEBINDE :
  485. /*------------------------------------------------------------------------------
  486. Purpose:
  487. Parameters: <none>
  488. Notes:
  489. ------------------------------------------------------------------------------*/
  490. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  491. DEF VAR cRuester AS CHAR NO-UNDO.
  492. DEF VAR iAufnr AS INT NO-UNDO.
  493. DEF VAR iRecid AS RECID NO-UNDO.
  494. DEF VAR ix AS INT NO-UNDO.
  495. DEF VAR nTotale AS DEC EXTENT 15 NO-UNDO.
  496. DEF VAR cFirma AS CHAR NO-UNDO.
  497. DEF VAR cGebinde AS CHAR NO-UNDO.
  498. DEF VAR cGebKto AS CHAR NO-UNDO.
  499. DEF VAR iGebMe AS INT NO-UNDO.
  500. DEF VAR iMwst_Cd AS INT INIT 11 NO-UNDO.
  501. DEF BUFFER bAufko FOR Aufko .
  502. DEF BUFFER bAufGebKo FOR AufGebKo.
  503. DEF BUFFER bGebKonto FOR GebKonto.
  504. FIND ASMutation NO-LOCK
  505. WHERE RECID(ASMutation) = ipRecid.
  506. ASSIGN cRuester = ASMutation.cFeld_2
  507. iAufnr = ASMutation.iKey_1
  508. cFirma = ASMutation.Firma.
  509. FIND bAufko NO-LOCK USE-INDEX Aufko-k1
  510. WHERE bAufko.Firma = cFirma
  511. AND bAufko.Aufnr = iAufnr NO-ERROR.
  512. IF NOT AVAILABLE bAufko THEN RETURN ''.
  513. cMessage = SUBSTITUTE('Create_Retouren_Gebinde -> Aufnr &1 ', bAufko.Aufnr).
  514. DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
  515. DO WHILE TRUE:
  516. FIND FIRST bAufGebKo NO-LOCK
  517. WHERE bAufGebKo.Firma = Firma
  518. AND bAufGebKo.Aufnr = iAufnr NO-ERROR.
  519. IF AVAILABLE bAufGebKo THEN LEAVE.
  520. REPEAT TRANSACTION:
  521. FOR EACH GebRueck NO-LOCK
  522. WHERE GebRueck.Firma = cFirma:
  523. CREATE bAufGebKo.
  524. BUFFER-COPY GebRueck TO bAufGebKo
  525. ASSIGN bAufGebKo.Aufnr = iAufnr.
  526. IF bAufGebKo.Kto_Cd1 <> '' THEN DO:
  527. FIND bGebKonto NO-LOCK
  528. WHERE bGebKonto.Firma = bAufGebKo.Firma
  529. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd1.
  530. ASSIGN bAufGebKo.Wert_1 = bGebKonto.Depot + bGebKonto.Gebuehr.
  531. RELEASE bGebKonto.
  532. END.
  533. IF bAufGebKo.Kto_Cd2 <> '' THEN DO:
  534. FIND bGebKonto NO-LOCK
  535. WHERE bGebKonto.Firma = bAufGebKo.Firma
  536. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd2.
  537. ASSIGN bAufGebKo.Wert_2 = bGebKonto.Depot + bGebKonto.Gebuehr.
  538. RELEASE bGebKonto.
  539. END.
  540. IF bAufGebKo.Kto_Cd3 <> '' THEN DO:
  541. FIND bGebKonto NO-LOCK
  542. WHERE bGebKonto.Firma = bAufGebKo.Firma
  543. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd3.
  544. ASSIGN bAufGebKo.Wert_3 = bGebKonto.Depot + bGebKonto.Gebuehr.
  545. RELEASE bGebKonto.
  546. END.
  547. END.
  548. RELEASE bAufGebKo.
  549. LEAVE.
  550. END.
  551. LEAVE.
  552. END.
  553. DO ix = 1 TO NUM-ENTRIES(ASMutation.cFeld_1, ';'):
  554. cGebinde = ENTRY(ix, ASMutation.cFeld_1, ';').
  555. cGebKto = ENTRY(1, cGebinde, ',').
  556. iGebMe = INTEGER(ENTRY(2, cGebinde, ',')).
  557. FIND FIRST bAufGebKo NO-LOCK
  558. WHERE bAufGebKo.Firma = cFirma
  559. AND bAufGebKo.Aufnr = iAufnr
  560. AND bAufGebKo.Geb_Cd = cGebKto NO-ERROR.
  561. IF NOT AVAILABLE bAufGebKo THEN DO:
  562. FIND GebKonto NO-LOCK
  563. WHERE GebKonto.Firma = cFirma
  564. AND GebKonto.Geb_Cd = cGebKto NO-ERROR.
  565. IF NOT AVAILABLE GebKonto THEN NEXT.
  566. REPEAT TRANSACTION:
  567. CREATE bAufGebKo.
  568. BUFFER-COPY GebRueck TO bAufGebKo
  569. ASSIGN bAufGebKo.Aufnr = iAufnr.
  570. IF bAufGebKo.Kto_Cd1 <> '' THEN DO:
  571. FIND bGebKonto NO-LOCK
  572. WHERE bGebKonto.Firma = bAufGebKo.Firma
  573. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd1.
  574. ASSIGN bAufGebKo.Wert_1 = bGebKonto.Depot + bGebKonto.Gebuehr.
  575. RELEASE bGebKonto.
  576. END.
  577. IF bAufGebKo.Kto_Cd2 <> '' THEN DO:
  578. FIND bGebKonto NO-LOCK
  579. WHERE bGebKonto.Firma = bAufGebKo.Firma
  580. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd2.
  581. ASSIGN bAufGebKo.Wert_2 = bGebKonto.Depot + bGebKonto.Gebuehr.
  582. RELEASE bGebKonto.
  583. END.
  584. IF bAufGebKo.Kto_Cd3 <> '' THEN DO:
  585. FIND bGebKonto NO-LOCK
  586. WHERE bGebKonto.Firma = bAufGebKo.Firma
  587. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd3.
  588. ASSIGN bAufGebKo.Wert_3 = bGebKonto.Depot + bGebKonto.Gebuehr.
  589. RELEASE bGebKonto.
  590. END.
  591. LEAVE.
  592. END.
  593. END.
  594. DYNAMIC-FUNCTION('calculateAufGebKo':U, RECID(bAufGebKo), iGebMe).
  595. RELEASE GebKonto.
  596. RELEASE bAufGebKo.
  597. END.
  598. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, cFirma, iAufnr, OUTPUT nTotale ) NO-ERROR.
  599. RELEASE bAufko .
  600. RELEASE bAufGebKo .
  601. RELEASE GebKonto.
  602. RETURN ''.
  603. END PROCEDURE.
  604. /* _UIB-CODE-BLOCK-END */
  605. &ANALYZE-RESUME
  606. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wretouren _DEFAULT-DISABLE
  607. PROCEDURE disable_UI :
  608. /*------------------------------------------------------------------------------
  609. Purpose: DISABLE the User Interface
  610. Parameters: <none>
  611. Notes: Here we clean-up the user-interface by deleting
  612. dynamic widgets we have created and/or hide
  613. frames. This procedure is usually called when
  614. we are ready to "clean-up" after running.
  615. ------------------------------------------------------------------------------*/
  616. /* Delete the WINDOW we created */
  617. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wretouren)
  618. THEN DELETE WIDGET wretouren.
  619. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  620. END PROCEDURE.
  621. /* _UIB-CODE-BLOCK-END */
  622. &ANALYZE-RESUME
  623. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wretouren
  624. PROCEDURE enableObject :
  625. /*------------------------------------------------------------------------------
  626. Purpose: Super Override
  627. Parameters:
  628. Notes:
  629. ------------------------------------------------------------------------------*/
  630. { incl/winenableobject.i }
  631. RUN SUPER.
  632. /* Code placed here will execute AFTER standard behavior. */
  633. END PROCEDURE.
  634. /* _UIB-CODE-BLOCK-END */
  635. &ANALYZE-RESUME
  636. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wretouren _DEFAULT-ENABLE
  637. PROCEDURE enable_UI :
  638. /*------------------------------------------------------------------------------
  639. Purpose: ENABLE the User Interface
  640. Parameters: <none>
  641. Notes: Here we display/view/enable the widgets in the
  642. user-interface. In addition, OPEN all queries
  643. associated with each FRAME and BROWSE.
  644. These statements here are based on the "Other
  645. Settings" section of the widget Property Sheets.
  646. ------------------------------------------------------------------------------*/
  647. ENABLE F_Status
  648. WITH FRAME fMain IN WINDOW wretouren.
  649. {&OPEN-BROWSERS-IN-QUERY-fMain}
  650. VIEW wretouren.
  651. END PROCEDURE.
  652. /* _UIB-CODE-BLOCK-END */
  653. &ANALYZE-RESUME
  654. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wretouren
  655. PROCEDURE ENDE :
  656. /*------------------------------------------------------------------------------
  657. Purpose:
  658. Parameters: <none>
  659. Notes:
  660. ------------------------------------------------------------------------------*/
  661. DEF VAR wx AS INT NO-UNDO.
  662. DEF VAR wy AS INT NO-UNDO.
  663. IF KEYLABEL(LASTKEY) = 'ESC' THEN RETURN NO-APPLY.
  664. wx = {&WINDOW-NAME}:X NO-ERROR.
  665. wy = {&WINDOW-NAME}:Y NO-ERROR.
  666. DYNAMIC-FUNCTION('setFensterposition':U, INPUT 'Fensterposition',
  667. INPUT Progname,
  668. INPUT wx,
  669. INPUT wy) NO-ERROR.
  670. RUN CLOSE_FUNKTIONEN.
  671. APPLY "CLOSE":U TO THIS-PROCEDURE.
  672. QUIT.
  673. END PROCEDURE.
  674. /* _UIB-CODE-BLOCK-END */
  675. &ANALYZE-RESUME
  676. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wretouren
  677. PROCEDURE exitObject :
  678. /*------------------------------------------------------------------------------
  679. Purpose: Window-specific override of this procedure which destroys
  680. its contents and itself.
  681. Notes:
  682. ------------------------------------------------------------------------------*/
  683. RUN ENDE.
  684. RETURN NO-APPLY.
  685. END PROCEDURE.
  686. /* _UIB-CODE-BLOCK-END */
  687. &ANALYZE-RESUME
  688. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject wretouren
  689. PROCEDURE initializeObject :
  690. /*------------------------------------------------------------------------------
  691. Purpose: Super Override
  692. Parameters:
  693. Notes:
  694. ------------------------------------------------------------------------------*/
  695. /* Code placed here will execute PRIOR to standard behavior. */
  696. RUN SUPER.
  697. { incl/wininitializeobject.i }
  698. DO WITH FRAME {&FRAME-NAME}:
  699. F_Status:READ-ONLY = TRUE.
  700. END.
  701. END PROCEDURE.
  702. /* _UIB-CODE-BLOCK-END */
  703. &ANALYZE-RESUME
  704. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wretouren
  705. PROCEDURE viewObject :
  706. /*------------------------------------------------------------------------------
  707. Purpose: Super Override
  708. Parameters:
  709. Notes:
  710. ------------------------------------------------------------------------------*/
  711. /* Code placed here will execute PRIOR to standard behavior. */
  712. RUN SUPER.
  713. /* Code placed here will execute AFTER standard behavior. */
  714. END PROCEDURE.
  715. /* _UIB-CODE-BLOCK-END */
  716. &ANALYZE-RESUME
  717. /* ************************ Function Implementations ***************** */
  718. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculateAufGebKo wretouren
  719. FUNCTION calculateAufGebKo RETURNS LOGICAL
  720. ( ipRecid AS RECID, ipMenge AS INT ) :
  721. /*------------------------------------------------------------------------------
  722. Purpose:
  723. Notes:
  724. ------------------------------------------------------------------------------*/
  725. DEF BUFFER bAufGebKo FOR AufGebKo.
  726. DEF BUFFER bAufGKon FOR AufGKon .
  727. DEF BUFFER bGebKonto FOR GebKonto.
  728. DEF VAR DiffMenge AS INT NO-UNDO.
  729. DEF VAR MW AS INT NO-UNDO.
  730. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}:
  731. FIND bAufGebKo WHERE RECID(bAufGebKo) = ipRecid.
  732. DiffMenge = ipMenge - bAufGebKo.Menge.
  733. IF DiffMenge = 0 THEN DO:
  734. RELEASE bAufGebKo.
  735. LEAVE.
  736. END.
  737. bAufGebKo.Menge = ipMenge.
  738. DO WHILE bAufGebKo.Kto_Cd1 <> '':
  739. IF bAufGebKo.Anz_1 = 0 THEN LEAVE.
  740. FIND bGebKonto NO-LOCK
  741. WHERE bGebKonto.Firma = bAufGebKo.Firma
  742. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd1.
  743. IF bGebKonto.MWST_Art = 0 THEN MW = 11.
  744. IF bGebKonto.MWST_Art = 2 THEN MW = bGebKonto.MWST_Cd.
  745. IF bGebKonto.MWST_Art = 1 THEN DO:
  746. FIND FIRST bAufGKon NO-LOCK
  747. WHERE bAufGKon.Firma = bAufGebKo.Firma
  748. AND bAufGKon.Aufnr = bAufGebKo.Aufnr
  749. AND bAufGKon.Geb_Cd = bGebKonto.Geb_Cd NO-ERROR.
  750. IF AVAILABLE bAufGKon THEN MW = bAufGKon.MWSt_Cd.
  751. ELSE MW = 11.
  752. END.
  753. FIND bAufGKon
  754. WHERE bAufGKon.Firma = bAufGebKo.Firma
  755. AND bAufGKon.Aufnr = bAufGebKo.Aufnr
  756. AND bAufGKon.Geb_Cd = bGebKonto.Geb_Cd
  757. AND bAufGKon.MWSt_Cd = MW NO-ERROR.
  758. IF NOT AVAILABLE bAufGKon THEN DO:
  759. CREATE bAufGKon.
  760. ASSIGN bAufGKon.Firma = bAufGebKo.Firma
  761. bAufGKon.Aufnr = bAufGebKo.Aufnr
  762. bAufGKon.Geb_Cd = bGebKonto.Geb_Cd
  763. bAufGKon.MWSt_Cd = MW
  764. bAufGKon.Gebuehr = bGebKonto.Gebuehr
  765. bAufGKon.Depot = bGebKonto.Depot
  766. bAufGKon.Sort_Cd = bGebKonto.Sort_Cd.
  767. END.
  768. bAufGKon.Eingang = bAufGKon.Eingang + (bAufGebKo.Anz_1 * DiffMenge).
  769. bAufGKon.Betrag = (bAufGKon.Ausgang - bAufGKon.Eingang)
  770. * (bAufGKon.Depot + bAufGKon.Gebuehr).
  771. RELEASE bAufGKon.
  772. RELEASE bGebKonto.
  773. LEAVE.
  774. END.
  775. DO WHILE bAufGebKo.Kto_Cd2 <> '':
  776. IF bAufGebKo.Anz_2 = 0 THEN LEAVE.
  777. FIND bGebKonto NO-LOCK
  778. WHERE bGebKonto.Firma = bAufGebKo.Firma
  779. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd2.
  780. IF bGebKonto.MWST_Art = 0 THEN MW = 11.
  781. IF bGebKonto.MWST_Art = 2 THEN MW = bGebKonto.MWST_Cd.
  782. IF bGebKonto.MWST_Art = 1 THEN DO:
  783. FIND FIRST bAufGKon NO-LOCK
  784. WHERE bAufGKon.Firma = bAufGebKo.Firma
  785. AND bAufGKon.Aufnr = bAufGebKo.Aufnr
  786. AND bAufGKon.Geb_Cd = bGebKonto.Geb_Cd NO-ERROR.
  787. IF AVAILABLE bAufGKon THEN MW = bAufGKon.MWSt_Cd.
  788. ELSE MW = 11.
  789. END.
  790. FIND bAufGKon
  791. WHERE bAufGKon.Firma = bAufGebKo.Firma
  792. AND bAufGKon.Aufnr = bAufGebKo.Aufnr
  793. AND bAufGKon.Geb_Cd = bGebKonto.Geb_Cd
  794. AND bAufGKon.MWSt_Cd = MW NO-ERROR.
  795. IF NOT AVAILABLE bAufGKon THEN DO:
  796. CREATE bAufGKon.
  797. ASSIGN bAufGKon.Firma = bAufGebKo.Firma
  798. bAufGKon.Aufnr = bAufGebKo.Aufnr
  799. bAufGKon.Geb_Cd = bGebKonto.Geb_Cd
  800. bAufGKon.MWSt_Cd = MW
  801. bAufGKon.Gebuehr = bGebKonto.Gebuehr
  802. bAufGKon.Depot = bGebKonto.Depot
  803. bAufGKon.Sort_Cd = bGebKonto.Sort_Cd.
  804. END.
  805. bAufGKon.Eingang = bAufGKon.Eingang + (bAufGebKo.Anz_2 * DiffMenge).
  806. bAufGKon.Betrag = (bAufGKon.Ausgang - bAufGKon.Eingang)
  807. * (bAufGKon.Depot + bAufGKon.Gebuehr).
  808. RELEASE bAufGKon.
  809. RELEASE bGebKonto.
  810. LEAVE.
  811. END.
  812. DO WHILE bAufGebKo.Kto_Cd3 <> '':
  813. IF bAufGebKo.Anz_3 = 0 THEN LEAVE.
  814. FIND bGebKonto NO-LOCK
  815. WHERE bGebKonto.Firma = bAufGebKo.Firma
  816. AND bGebKonto.Geb_Cd = bAufGebKo.Kto_Cd3.
  817. IF bGebKonto.MWST_Art = 0 THEN MW = 11.
  818. IF bGebKonto.MWST_Art = 2 THEN MW = bGebKonto.MWST_Cd.
  819. IF bGebKonto.MWST_Art = 1 THEN DO:
  820. FIND FIRST bAufGKon NO-LOCK
  821. WHERE bAufGKon.Firma = bAufGebKo.Firma
  822. AND bAufGKon.Aufnr = bAufGebKo.Aufnr
  823. AND bAufGKon.Geb_Cd = bGebKonto.Geb_Cd NO-ERROR.
  824. IF AVAILABLE bAufGKon THEN MW = bAufGKon.MWSt_Cd.
  825. ELSE MW = 11.
  826. END.
  827. FIND bAufGKon
  828. WHERE bAufGKon.Firma = bAufGebKo.Firma
  829. AND bAufGKon.Aufnr = bAufGebKo.Aufnr
  830. AND bAufGKon.Geb_Cd = bGebKonto.Geb_Cd
  831. AND bAufGKon.MWSt_Cd = MW NO-ERROR.
  832. IF NOT AVAILABLE bAufGKon THEN DO:
  833. CREATE bAufGKon.
  834. ASSIGN bAufGKon.Firma = bAufGebKo.Firma
  835. bAufGKon.Aufnr = bAufGebKo.Aufnr
  836. bAufGKon.Geb_Cd = bGebKonto.Geb_Cd
  837. bAufGKon.MWSt_Cd = MW
  838. bAufGKon.Gebuehr = bGebKonto.Gebuehr
  839. bAufGKon.Depot = bGebKonto.Depot
  840. bAufGKon.Sort_Cd = bGebKonto.Sort_Cd.
  841. END.
  842. bAufGKon.Eingang = bAufGKon.Eingang + (bAufGebKo.Anz_3 * DiffMenge).
  843. bAufGKon.Betrag = (bAufGKon.Ausgang - bAufGKon.Eingang)
  844. * (bAufGKon.Depot + bAufGKon.Gebuehr).
  845. RELEASE bAufGKon.
  846. RELEASE bGebKonto.
  847. LEAVE.
  848. END.
  849. ASSIGN bAufGebKo.Betrag_1 = bAufGebKo.Anz_1 * bAufGebKo.Wert_1 * bAufGebKo.Menge
  850. bAufGebKo.Betrag_2 = bAufGebKo.Anz_2 * bAufGebKo.Wert_2 * bAufGebKo.Menge
  851. bAufGebKo.Betrag_3 = bAufGebKo.Anz_3 * bAufGebKo.Wert_3 * bAufGebKo.Menge.
  852. RELEASE bAufGebKo.
  853. RELEASE bAufGKon .
  854. END.
  855. END FUNCTION.
  856. /* _UIB-CODE-BLOCK-END */
  857. &ANALYZE-RESUME
  858. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getDruckProgramm wretouren
  859. FUNCTION getDruckProgramm RETURNS CHARACTER
  860. ( /* parameter-definitions */ ) :
  861. /*------------------------------------------------------------------------------
  862. Purpose:
  863. Notes:
  864. ------------------------------------------------------------------------------*/
  865. DEF VAR cDruckProgramm AS CHAR NO-UNDO.
  866. DEF VAR cInstallation AS CHAR NO-UNDO.
  867. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  868. DO WHILE TRUE:
  869. cDruckProgramm = 'g-p_' + cInstallation + '.r'.
  870. cDruckProgramm = SEARCH(cDruckProgramm).
  871. IF cDruckProgramm <> ? THEN LEAVE.
  872. cDruckProgramm = 'g-p_' + cInstallation + '.w'.
  873. cDruckProgramm = SEARCH(cDruckProgramm).
  874. IF cDruckProgramm <> ? THEN LEAVE.
  875. LEAVE.
  876. END.
  877. IF cDruckProgramm = ? THEN cDruckProgramm = ''.
  878. RETURN cDruckProgramm.
  879. END FUNCTION.
  880. /* _UIB-CODE-BLOCK-END */
  881. &ANALYZE-RESUME
  882. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLogName wretouren
  883. FUNCTION getLogName RETURNS CHARACTER
  884. ( /* parameter-definitions */ ) :
  885. /*------------------------------------------------------------------------------
  886. Purpose:
  887. Notes:
  888. ------------------------------------------------------------------------------*/
  889. DEF VAR cPath AS CHAR NO-UNDO.
  890. GET-KEY-VALUE SECTION 'GrundEinstellungen'
  891. KEY 'Ge_MIS_TEMP'
  892. VALUE cPath.
  893. IF cPath = '' OR
  894. cPath = ? THEN cPath = SESSION:TEMP-DIRECTORY.
  895. IF SUBSTRING(cPath, LENGTH(cPath), 01) <> '/' AND
  896. SUBSTRING(cPath, LENGTH(cPath), 01) <> '\' THEN cPath = cPath + '\'.
  897. cPath = cPath
  898. + Progname
  899. + '-'
  900. + REPLACE(STRING(TODAY,'99.99.9999'), '.', '')
  901. + '.Log'.
  902. RETURN cPath.
  903. END FUNCTION.
  904. /* _UIB-CODE-BLOCK-END */
  905. &ANALYZE-RESUME
  906. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getProgname wretouren
  907. FUNCTION getProgname RETURNS CHARACTER
  908. ( /* parameter-definitions */ ) :
  909. /*------------------------------------------------------------------------------
  910. Purpose:
  911. Notes:
  912. ------------------------------------------------------------------------------*/
  913. RETURN Progname.
  914. END FUNCTION.
  915. /* _UIB-CODE-BLOCK-END */
  916. &ANALYZE-RESUME
  917. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION writeLogFile wretouren
  918. FUNCTION writeLogFile RETURNS LOGICAL
  919. ( ipMessage AS CHAR ) :
  920. /*------------------------------------------------------------------------------
  921. Purpose:
  922. Notes:
  923. ------------------------------------------------------------------------------*/
  924. DEF VAR cString AS CHAR NO-UNDO.
  925. cString = SUBSTITUTE('&1 &2 -> &3', STRING(TODAY,'99.99.9999'), STRING(TIME,'HH:MM:SS'), ipMessage).
  926. OUTPUT STREAM LogStream TO VALUE(cLogName) APPEND.
  927. PUT STREAM LogStream CONTROL cString CHR(10).
  928. OUTPUT STREAM LogStream CLOSE.
  929. RETURN TRUE.
  930. END FUNCTION.
  931. /* _UIB-CODE-BLOCK-END */
  932. &ANALYZE-RESUME