f-aktion-anz.w 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS fFrameWin
  5. /*------------------------------------------------------------------------
  6. File:
  7. Description: from cntnrfrm.w - ADM2 SmartFrame Template
  8. Input Parameters:
  9. <none>
  10. Output Parameters:
  11. <none>
  12. ------------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress AppBuilder. */
  14. /*----------------------------------------------------------------------*/
  15. /* Create an unnamed pool to store all the widgets created
  16. by this procedure. This is a good default which assures
  17. that this procedure's triggers and internal procedures
  18. will execute in this procedure's storage, and that proper
  19. cleanup will occur on deletion of the procedure. */
  20. CREATE WIDGET-POOL.
  21. /* *************************** Definitions ************************** */
  22. /* Parameters Definitions --- */
  23. /* Local Variable Definitions --- */
  24. DEF VAR FPreisGrp AS LOG NO-UNDO INIT ?.
  25. DEF VAR AdFirma AS CHAR NO-UNDO.
  26. DEF VAR FBFirma AS CHAR NO-UNDO.
  27. DEF VAR Firma AS CHAR NO-UNDO.
  28. DEF VAR SAktiv AS LOG NO-UNDO.
  29. DEF VAR Progname AS CHAR NO-UNDO.
  30. DEF BUFFER BSteuer FOR Steuer.
  31. DEF TEMP-TABLE tArtPreis LIKE ArtPreis.
  32. /* _UIB-CODE-BLOCK-END */
  33. &ANALYZE-RESUME
  34. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  35. /* ******************** Preprocessor Definitions ******************** */
  36. &Scoped-define PROCEDURE-TYPE SmartFrame
  37. &Scoped-define DB-AWARE no
  38. &Scoped-define ADM-CONTAINER FRAME
  39. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  40. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  41. &Scoped-define FRAME-NAME fMain
  42. /* Standard List Definitions */
  43. &Scoped-Define ENABLED-OBJECTS RECT-7 Btn_Aktionen Btn_Zuteilen
  44. /* Custom List Definitions */
  45. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  46. /* _UIB-PREPROCESSOR-BLOCK-END */
  47. &ANALYZE-RESUME
  48. /* *********************** Control Definitions ********************** */
  49. /* Definitions of handles for SmartObjects */
  50. DEFINE VARIABLE h_d-aktionen AS HANDLE NO-UNDO.
  51. DEFINE VARIABLE h_dyntoolbar AS HANDLE NO-UNDO.
  52. DEFINE VARIABLE h_v-aktionen AS HANDLE NO-UNDO.
  53. /* Definitions of the field level widgets */
  54. DEFINE BUTTON Btn_Aktionen NO-FOCUS
  55. LABEL "Aktionen"
  56. SIZE 11 BY 1.33.
  57. DEFINE BUTTON Btn_Zuteilen
  58. IMAGE-UP FILE "grafik/add.bmp":U NO-FOCUS
  59. LABEL "Zuteilen"
  60. SIZE 5.2 BY 1.24.
  61. DEFINE RECTANGLE RECT-7
  62. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  63. SIZE 58 BY 9.29.
  64. /* ************************ Frame Definitions *********************** */
  65. DEFINE FRAME fMain
  66. Btn_Aktionen AT ROW 1.67 COL 47
  67. Btn_Zuteilen AT ROW 1.76 COL 27
  68. RECT-7 AT ROW 1.24 COL 2
  69. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  70. SIDE-LABELS NO-UNDERLINE THREE-D
  71. AT COL 1 ROW 1
  72. SIZE 60 BY 9.67.
  73. /* *********************** Procedure Settings ************************ */
  74. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  75. /* Settings for THIS-PROCEDURE
  76. Type: SmartFrame
  77. Allow: Basic,Browse,DB-Fields,Query,Smart
  78. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  79. Other Settings: PERSISTENT-ONLY COMPILE
  80. */
  81. /* This procedure should always be RUN PERSISTENT. Report the error, */
  82. /* then cleanup and return. */
  83. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  84. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  85. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  86. RETURN.
  87. END.
  88. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  89. /* ************************* Create Window ************************** */
  90. &ANALYZE-SUSPEND _CREATE-WINDOW
  91. /* DESIGN Window definition (used by the UIB)
  92. CREATE WINDOW fFrameWin ASSIGN
  93. HEIGHT = 9.67
  94. WIDTH = 60.
  95. /* END WINDOW DEFINITION */
  96. */
  97. &ANALYZE-RESUME
  98. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB fFrameWin
  99. /* ************************* Included-Libraries *********************** */
  100. {src/adm2/containr.i}
  101. /* _UIB-CODE-BLOCK-END */
  102. &ANALYZE-RESUME
  103. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  104. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  105. /* SETTINGS FOR WINDOW fFrameWin
  106. VISIBLE,,RUN-PERSISTENT */
  107. /* SETTINGS FOR FRAME fMain
  108. NOT-VISIBLE FRAME-NAME */
  109. ASSIGN
  110. FRAME fMain:HIDDEN = TRUE.
  111. /* _RUN-TIME-ATTRIBUTES-END */
  112. &ANALYZE-RESUME
  113. /* Setting information for Queries and Browse Widgets fields */
  114. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME fMain
  115. /* Query rebuild information for FRAME fMain
  116. _Options = ""
  117. _Query is NOT OPENED
  118. */ /* FRAME fMain */
  119. &ANALYZE-RESUME
  120. /* ************************ Control Triggers ************************ */
  121. &Scoped-define SELF-NAME Btn_Aktionen
  122. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Aktionen fFrameWin
  123. ON CHOOSE OF Btn_Aktionen IN FRAME fMain /* Aktionen */
  124. DO:
  125. IF DYNAMIC-FUNCTION('getMutflag':U, Progname) = TRUE THEN RETURN NO-APPLY.
  126. RUN START_PROGRAMM ( INPUT 'w-aktionen.w':u ).
  127. END.
  128. /* _UIB-CODE-BLOCK-END */
  129. &ANALYZE-RESUME
  130. &Scoped-define SELF-NAME Btn_Zuteilen
  131. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Zuteilen fFrameWin
  132. ON CHOOSE OF Btn_Zuteilen IN FRAME fMain /* Zuteilen */
  133. DO:
  134. IF DYNAMIC-FUNCTION('getMutflag':U, Progname) = TRUE THEN RETURN NO-APPLY.
  135. RUN ZUFUEGEN_AKTION.
  136. END.
  137. /* _UIB-CODE-BLOCK-END */
  138. &ANALYZE-RESUME
  139. &UNDEFINE SELF-NAME
  140. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK fFrameWin
  141. /* *************************** Main Block *************************** */
  142. SAktiv = DYNAMIC-FUNCTION('getSuperaktiv':U) NO-ERROR.
  143. IF SAktiv = ? THEN SAktiv = FALSE.
  144. IF SAktiv THEN DO:
  145. AdFirma = DYNAMIC-FUNCTION('getAdMandant':U) NO-ERROR.
  146. FBFirma = DYNAMIC-FUNCTION('getFBMandant':U) NO-ERROR.
  147. Firma = DYNAMIC-FUNCTION('getMandant':U) NO-ERROR.
  148. Progname = DYNAMIC-FUNCTION('makeProgname':U,INPUT THIS-PROCEDURE ) NO-ERROR.
  149. END.
  150. FIND BSteuer NO-LOCK USE-INDEX Steuer-k1
  151. WHERE BSteuer.Firma = Firma NO-ERROR.
  152. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  153. RUN initializeObject.
  154. &ENDIF
  155. /* _UIB-CODE-BLOCK-END */
  156. &ANALYZE-RESUME
  157. /* ********************** Internal Procedures *********************** */
  158. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects fFrameWin _ADM-CREATE-OBJECTS
  159. PROCEDURE adm-create-objects :
  160. /*------------------------------------------------------------------------------
  161. Purpose: Create handles for all SmartObjects used in this procedure.
  162. After SmartObjects are initialized, then SmartLinks are added.
  163. Parameters: <none>
  164. ------------------------------------------------------------------------------*/
  165. DEFINE VARIABLE currentPage AS INTEGER NO-UNDO.
  166. ASSIGN currentPage = getCurrentPage().
  167. CASE currentPage:
  168. WHEN 0 THEN DO:
  169. RUN constructObject (
  170. INPUT 'd-aktionen.wDB-AWARE':U ,
  171. INPUT FRAME fMain:HANDLE ,
  172. INPUT 'AppServiceASInfoASUsePrompt?CacheDuration0CheckCurrentChangedyesDestroyStatelessnoDisconnectAppServernoServerOperatingModeNONEShareDatanoUpdateFromSourcenoForeignFieldsObjectNamed-aktionenOpenOnInityesPromptColumns(NONE)PromptOnDeleteyesRowsToBatch200RebuildOnReposnoToggleDataTargetsyes':U ,
  173. OUTPUT h_d-aktionen ).
  174. RUN repositionObject IN h_d-aktionen ( 4.43 , 39.80 ) NO-ERROR.
  175. /* Size in AB: ( 1.86 , 10.80 ) */
  176. RUN constructObject (
  177. INPUT 'v-aktionen.w':U ,
  178. INPUT FRAME fMain:HANDLE ,
  179. INPUT 'EnabledObjFldsToDisable?ModifyFields(All)DataSourceNamesUpdateTargetNamesLogicalObjectNameLogicalObjectNamePhysicalObjectNameDynamicObjectnoRunAttributeHideOnInitnoDisableOnInitnoObjectLayout':U ,
  180. OUTPUT h_v-aktionen ).
  181. RUN repositionObject IN h_v-aktionen ( 3.19 , 4.00 ) NO-ERROR.
  182. /* Size in AB: ( 6.95 , 54.00 ) */
  183. RUN constructObject (
  184. INPUT 'adm2/dyntoolbar.w':U ,
  185. INPUT FRAME fMain:HANDLE ,
  186. INPUT 'EdgePixels2DeactivateTargetOnHidenoDisabledActionsFlatButtonsyesMenunoShowBorderyesToolbaryesActionGroupsNavigationTableIOTypeUpdateSupportedLinksNavigation-sourceToolbarBandsToolbarAutoSizenoToolbarDrawDirectionHorizontalLogicalObjectNameDisabledActionsHiddenActionsResetHiddenToolbarBandsHiddenMenuBandsMenuMergeOrder0RemoveMenuOnHidenoCreateSubMenuOnConflictyesNavigationTargetNameHideOnInitnoDisableOnInitnoObjectLayout':U ,
  187. OUTPUT h_dyntoolbar ).
  188. RUN repositionObject IN h_dyntoolbar ( 1.67 , 4.80 ) NO-ERROR.
  189. RUN resizeObject IN h_dyntoolbar ( 1.33 , 21.20 ) NO-ERROR.
  190. /* Links to SmartDataObject h_d-aktionen. */
  191. RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-aktionen ).
  192. /* Links to SmartDataViewer h_v-aktionen. */
  193. RUN addLink ( h_d-aktionen , 'Data':U , h_v-aktionen ).
  194. /* Adjust the tab order of the smart objects. */
  195. RUN adjustTabOrder ( h_v-aktionen ,
  196. h_dyntoolbar , 'AFTER':U ).
  197. END. /* Page 0 */
  198. END CASE.
  199. END PROCEDURE.
  200. /* _UIB-CODE-BLOCK-END */
  201. &ANALYZE-RESUME
  202. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI fFrameWin _DEFAULT-DISABLE
  203. PROCEDURE disable_UI :
  204. /*------------------------------------------------------------------------------
  205. Purpose: DISABLE the User Interface
  206. Parameters: <none>
  207. Notes: Here we clean-up the user-interface by deleting
  208. dynamic widgets we have created and/or hide
  209. frames. This procedure is usually called when
  210. we are ready to "clean-up" after running.
  211. ------------------------------------------------------------------------------*/
  212. /* Hide all frames. */
  213. HIDE FRAME fMain.
  214. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  215. END PROCEDURE.
  216. /* _UIB-CODE-BLOCK-END */
  217. &ANALYZE-RESUME
  218. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI fFrameWin _DEFAULT-ENABLE
  219. PROCEDURE enable_UI :
  220. /*------------------------------------------------------------------------------
  221. Purpose: ENABLE the User Interface
  222. Parameters: <none>
  223. Notes: Here we display/view/enable the widgets in the
  224. user-interface. In addition, OPEN all queries
  225. associated with each FRAME and BROWSE.
  226. These statements here are based on the "Other
  227. Settings" section of the widget Property Sheets.
  228. ------------------------------------------------------------------------------*/
  229. ENABLE RECT-7 Btn_Aktionen Btn_Zuteilen
  230. WITH FRAME fMain.
  231. {&OPEN-BROWSERS-IN-QUERY-fMain}
  232. END PROCEDURE.
  233. /* _UIB-CODE-BLOCK-END */
  234. &ANALYZE-RESUME
  235. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SETADDBUTTON fFrameWin
  236. PROCEDURE SETADDBUTTON :
  237. /*------------------------------------------------------------------------------
  238. Purpose:
  239. Parameters: <none>
  240. Notes:
  241. ------------------------------------------------------------------------------*/
  242. DEF INPUT PARAMETER ipAktion AS INT NO-UNDO.
  243. DO WITH FRAME {&FRAME-NAME}:
  244. CASE ipAktion:
  245. WHEN 1 THEN Btn_Zuteilen:SENSITIVE = TRUE.
  246. WHEN 2 THEN Btn_Zuteilen:SENSITIVE = FALSE.
  247. END CASE.
  248. END.
  249. END PROCEDURE.
  250. /* _UIB-CODE-BLOCK-END */
  251. &ANALYZE-RESUME
  252. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZUFUEGEN_AKTION fFrameWin
  253. PROCEDURE ZUFUEGEN_AKTION :
  254. /*------------------------------------------------------------------------------
  255. Purpose:
  256. Parameters: <none>
  257. Notes:
  258. ------------------------------------------------------------------------------*/
  259. DEF VAR cAktion AS CHAR NO-UNDO.
  260. DEF VAR cArtikel AS CHAR NO-UNDO.
  261. DEF VAR Artnr AS INT NO-UNDO.
  262. DEF VAR Inhalt AS INT NO-UNDO.
  263. DEF VAR Jahr AS INT NO-UNDO.
  264. DEF VAR i1 AS INT NO-UNDO.
  265. DEF VAR cPreisGrp AS CHAR NO-UNDO.
  266. DEF VAR Bru_Netto AS LOG NO-UNDO.
  267. DEF VAR Betrag AS DEC DECIMALS 4 NO-UNDO.
  268. DEF VAR vArt AS INT NO-UNDO.
  269. DEF VAR cGruppen AS CHAR NO-UNDO.
  270. DEF VAR Grp AS INT NO-UNDO.
  271. DEF VAR hDaten AS HANDLE NO-UNDO.
  272. DEF VAR dDatum AS DATE NO-UNDO.
  273. DEF VAR hArtPreis AS HANDLE NO-UNDO.
  274. DEF VAR hNetto AS HANDLE NO-UNDO.
  275. DEF VAR hBrutto AS HANDLE NO-UNDO.
  276. DEF VAR hMarge AS HANDLE NO-UNDO.
  277. DEF VAR hDatum AS HANDLE NO-UNDO.
  278. hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  279. DO WITH FRAME {&FRAME-NAME}:
  280. cArtikel = DYNAMIC-FUNCTION('GetArtikel':U) NO-ERROR.
  281. RUN GETAKTION IN h_v-aktionen ( OUTPUT cAktion ) NO-ERROR.
  282. IF cArtikel = '' THEN RETURN NO-APPLY.
  283. IF cArtikel = ? THEN RETURN NO-APPLY.
  284. Artnr = INTEGER(ENTRY(2, cArtikel, CHR(01))).
  285. Inhalt = INTEGER(ENTRY(3, cArtikel, CHR(01))).
  286. Jahr = INTEGER(ENTRY(4, cArtikel, CHR(01))).
  287. FIND Artst WHERE RECID(Artst) = INTEGER(ENTRY(1, cArtikel, CHR(01)))
  288. NO-LOCK NO-ERROR.
  289. IF NOT AVAILABLE Artst THEN RETURN NO-APPLY.
  290. IF BSteuer.AktionsPreis = 0 THEN FPreisGrp = TRUE.
  291. ELSE FPreisGrp = FALSE.
  292. FIND Aktionen USE-INDEX Aktionen-k1
  293. WHERE Aktionen.Firma = Firma
  294. AND Aktionen.Aktion = cAktion NO-LOCK NO-ERROR.
  295. dDatum = Aktionen.Ab_Datum.
  296. cGruppen = ''.
  297. DO i1 = 1 TO 50 WHILE Aktionen.Gruppen[i1] <> 0:
  298. IF FPreisGrp THEN DO:
  299. FIND LAST ArtPreis USE-INDEX ArtPreis-k1
  300. WHERE ArtPreis.Firma = Firma
  301. AND ArtPreis.Artnr = Artnr
  302. AND ArtPreis.Inhalt = Inhalt
  303. AND ArtPreis.Jahr = Jahr
  304. AND ArtPreis.Preis_Grp = Aktionen.Gruppen[i1]
  305. AND ArtPreis.Aktion = FALSE
  306. AND ArtPreis.Aktiv = TRUE NO-LOCK NO-ERROR.
  307. IF NOT AVAILABLE ArtPreis THEN NEXT.
  308. END.
  309. Grp = Aktionen.Gruppen[i1].
  310. IF cGruppen <> '' THEN cGruppen = cGruppen + ';'.
  311. cGruppen = cGruppen + STRING(Grp,'999').
  312. FIND AktPreis USE-INDEX AktPreis-k1
  313. WHERE AktPreis.Firma = Firma
  314. AND AktPreis.Artnr = Artnr
  315. AND AktPreis.Inhalt = Inhalt
  316. AND AktPreis.Jahr = Jahr
  317. AND AktPreis.Grp = Grp
  318. AND AktPreis.Ab_Datum = Aktionen.Ab_Datum
  319. NO-LOCK NO-ERROR.
  320. IF AVAILABLE AktPreis THEN NEXT.
  321. CREATE AktPreis.
  322. ASSIGN AktPreis.Firma = Firma
  323. AktPreis.Artnr = Artnr
  324. AktPreis.Inhalt = Inhalt
  325. AktPreis.Jahr = Jahr
  326. AktPreis.Grp = Grp
  327. AktPreis.Ab_Datum = Aktionen.Ab_Datum
  328. AktPreis.Bis_Datum = Aktionen.Bis_Datum
  329. AktPreis.Art = Aktionen.Art
  330. AktPreis.Wert = Aktionen.Wert
  331. AktPreis.Bemerkung = Aktionen.Bemerkung
  332. AktPreis.Aktion = Aktionen.Aktion.
  333. IF AktPreis.Bemerkung = '' THEN AktPreis.Bemerkung = 'Aktion'.
  334. END.
  335. IF FPreisGrp THEN DO:
  336. EMPTY TEMP-TABLE tArtPreis.
  337. CREATE tArtPreis.
  338. hArtPreis = BUFFER tArtPreis:HANDLE.
  339. hNetto = hArtPreis:BUFFER-FIELD('VK_Netto') .
  340. hBrutto = hArtPreis:BUFFER-FIELD('VK_Brutto') .
  341. hMarge = hArtPreis:BUFFER-FIELD('Marge') .
  342. hDatum = hArtPreis:BUFFER-FIELD('Ab_Datum').
  343. DO i1 = 1 TO NUM-ENTRIES(cGruppen, ';'):
  344. Grp = INTEGER(ENTRY(i1, cGruppen, ';')).
  345. FIND ArtPreis USE-INDEX ArtPreis-k1
  346. WHERE ArtPreis.Firma = Firma
  347. AND ArtPreis.Artnr = Artnr
  348. AND ArtPreis.Inhalt = Inhalt
  349. AND ArtPreis.Jahr = Jahr
  350. AND ArtPreis.Preis_Grp = Grp
  351. AND ArtPreis.Aktion = TRUE
  352. AND ArtPreis.Ab_Datum = Aktionen.Ab_Datum
  353. NO-LOCK NO-ERROR.
  354. IF AVAILABLE ArtPreis THEN NEXT.
  355. FIND LAST ArtPreis USE-INDEX ArtPreis-k1
  356. WHERE ArtPreis.Firma = Firma
  357. AND ArtPreis.Artnr = Artnr
  358. AND ArtPreis.Inhalt = Inhalt
  359. AND ArtPreis.Jahr = Jahr
  360. AND ArtPreis.Preis_Grp = Grp
  361. AND ArtPreis.Ab_Datum < Aktionen.Ab_Datum
  362. AND ArtPreis.Aktion = FALSE
  363. AND ArtPreis.Aktiv = TRUE
  364. NO-LOCK NO-ERROR.
  365. IF NOT AVAILABLE ArtPreis THEN NEXT.
  366. FIND FIRST tArtPreis.
  367. BUFFER-COPY ArtPreis TO tArtPreis.
  368. RUN FIND_PREISGRUPPE ( INPUT tArtPreis.Preis_Grp,
  369. OUTPUT cPreisGrp ) NO-ERROR.
  370. IF cPreisGrp = '' THEN NEXT.
  371. IF INTEGER(ENTRY(3, cPreisGrp, CHR(01))) = 1 THEN Bru_Netto = TRUE.
  372. ELSE Bru_Netto = FALSE.
  373. IF Bru_Netto THEN DO:
  374. IF Aktionen.Art = 0
  375. THEN tArtPreis.VK_Brutto = tArtPreis.VK_Brutto - Aktionen.Wert.
  376. IF Aktionen.Art = 1
  377. THEN tArtPreis.VK_Brutto = tArtPreis.VK_Brutto * (100 - Aktionen.Wert) / 100.
  378. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT tArtPreis.VK_Brutto ).
  379. vArt = 2.
  380. END.
  381. ELSE DO:
  382. IF Aktionen.Art = 0
  383. THEN tArtPreis.VK_Netto = tArtPreis.VK_Netto - Aktionen.Wert.
  384. IF Aktionen.Art = 1
  385. THEN tArtPreis.VK_Netto = tArtPreis.VK_Netto * (100 - Aktionen.Wert) / 100.
  386. /*
  387. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT tArtPreis.VK_Netto ).
  388. */
  389. vArt = 1.
  390. END.
  391. RUN ARTPREISRECHNEN ( INPUT vArt, INPUT hNetto ,
  392. INPUT hBrutto,
  393. INPUT hMarge ,
  394. INPUT hDatum ,
  395. INPUT 'CHF' ).
  396. ASSIGN tArtPreis.Ab_Datum = dDatum
  397. tArtPreis.Aktion = TRUE
  398. tArtPreis.Aktiv = TRUE
  399. tArtPreis.AktName = Aktionen.Aktion.
  400. CREATE ArtPreis.
  401. BUFFER-COPY tArtPreis TO ArtPreis.
  402. END.
  403. IF VALID-HANDLE ( hDaten ) THEN RUN SET_OPENFLAG IN hDaten ( TRUE ).
  404. END.
  405. END.
  406. END PROCEDURE.
  407. /* _UIB-CODE-BLOCK-END */
  408. &ANALYZE-RESUME