g-preismut.w 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gPreismutationen
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gPreismutationen
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress AppBuilder. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO.
  28. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO.
  29. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO.
  30. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
  31. DEFINE VARIABLE ok AS LOG NO-UNDO.
  32. DEFINE VARIABLE AddText AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE VWGrp AS INTEGER NO-UNDO.
  34. DEFINE TEMP-TABLE TArtPreis LIKE ArtPreis.
  35. DEFINE BUFFER BArtPreis FOR ArtPreis.
  36. /* _UIB-CODE-BLOCK-END */
  37. &ANALYZE-RESUME
  38. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  39. /* ******************** Preprocessor Definitions ******************** */
  40. &Scoped-define PROCEDURE-TYPE SmartDialog
  41. &Scoped-define DB-AWARE no
  42. &Scoped-define ADM-CONTAINER DIALOG-BOX
  43. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  44. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  45. &Scoped-define FRAME-NAME gPreismutationen
  46. /* Standard List Definitions */
  47. &Scoped-Define ENABLED-OBJECTS F_Datum CB_PreisGrp T_Brutto CB_WGrp CB_PGrp ~
  48. F_vonInhalt F_bisInhalt R_Gebindeart CB_Land CB_Hersteller F_bemerkung ~
  49. F_LetztesDatum R_Runden CB_Art F_Wert Btn_OK Btn_Cancel RECT-5
  50. &Scoped-Define DISPLAYED-OBJECTS F_Datum CB_PreisGrp T_Brutto CB_WGrp ~
  51. CB_PGrp F_vonInhalt F_bisInhalt R_Gebindeart CB_Land CB_Hersteller ~
  52. F_bemerkung F_LetztesDatum R_Runden CB_Art F_Wert
  53. /* Custom List Definitions */
  54. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  55. &Scoped-define List-6 F_Datum T_Brutto F_vonInhalt F_bisInhalt F_bemerkung ~
  56. F_LetztesDatum R_Runden F_Wert
  57. /* _UIB-PREPROCESSOR-BLOCK-END */
  58. &ANALYZE-RESUME
  59. /* *********************** Control Definitions ********************** */
  60. /* Define a dialog box */
  61. /* Definitions of the field level widgets */
  62. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  63. LABEL "&Abbrechen"
  64. SIZE 15 BY 1
  65. BGCOLOR 15 .
  66. DEFINE BUTTON Btn_OK
  67. LABEL "&Starten"
  68. SIZE 15 BY 1
  69. BGCOLOR 15 .
  70. DEFINE VARIABLE CB_Art AS CHARACTER FORMAT "X(256)":U
  71. LABEL "Auf-/Abschlagsart"
  72. VIEW-AS COMBO-BOX INNER-LINES 5
  73. LIST-ITEMS "Prozent","Betrag","Nettomarge"
  74. DROP-DOWN-LIST
  75. SIZE 25 BY 1
  76. BGCOLOR 15 NO-UNDO.
  77. DEFINE VARIABLE CB_Hersteller AS CHARACTER FORMAT "X(256)":U
  78. LABEL "Hersteller"
  79. VIEW-AS COMBO-BOX INNER-LINES 5
  80. LIST-ITEM-PAIRS "Item 1","Item 1"
  81. DROP-DOWN-LIST
  82. SIZE 40 BY 1
  83. BGCOLOR 15 NO-UNDO.
  84. DEFINE VARIABLE CB_Land AS CHARACTER FORMAT "X(256)":U
  85. LABEL "Herkunftsland"
  86. VIEW-AS COMBO-BOX INNER-LINES 5
  87. LIST-ITEM-PAIRS "Item 1","Item 1"
  88. DROP-DOWN-LIST
  89. SIZE 40 BY 1
  90. BGCOLOR 15 NO-UNDO.
  91. DEFINE VARIABLE CB_PGrp AS CHARACTER FORMAT "X(256)":U
  92. LABEL "Produktegruppe"
  93. VIEW-AS COMBO-BOX INNER-LINES 5
  94. LIST-ITEM-PAIRS "Item 1","Item 1"
  95. DROP-DOWN-LIST
  96. SIZE 40 BY 1
  97. BGCOLOR 15 NO-UNDO.
  98. DEFINE VARIABLE CB_PreisGrp AS CHARACTER FORMAT "X(256)":U
  99. LABEL "Preisgruppe"
  100. VIEW-AS COMBO-BOX INNER-LINES 5
  101. LIST-ITEM-PAIRS "Item 1","Item 1"
  102. DROP-DOWN-LIST
  103. SIZE 40 BY 1
  104. BGCOLOR 15 NO-UNDO.
  105. DEFINE VARIABLE CB_WGrp AS CHARACTER FORMAT "X(256)":U
  106. LABEL "Warengruppe"
  107. VIEW-AS COMBO-BOX INNER-LINES 5
  108. LIST-ITEM-PAIRS "Item 1","Item 1"
  109. DROP-DOWN-LIST
  110. SIZE 40 BY 1
  111. BGCOLOR 15 NO-UNDO.
  112. DEFINE VARIABLE F_bemerkung AS CHARACTER FORMAT "X(256)":U
  113. LABEL "Bemerkung"
  114. VIEW-AS FILL-IN NATIVE
  115. SIZE 40 BY 1
  116. BGCOLOR 15 NO-UNDO.
  117. DEFINE VARIABLE F_bisInhalt AS INTEGER FORMAT "zzz9":U INITIAL 0
  118. LABEL "-"
  119. VIEW-AS FILL-IN NATIVE
  120. SIZE 8 BY 1
  121. BGCOLOR 15 NO-UNDO.
  122. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  123. LABEL "ab Datum"
  124. VIEW-AS FILL-IN NATIVE
  125. SIZE 16 BY 1
  126. BGCOLOR 15 NO-UNDO.
  127. DEFINE VARIABLE F_LetztesDatum AS DATE FORMAT "99.99.9999":U
  128. LABEL "letztes Datum"
  129. VIEW-AS FILL-IN NATIVE
  130. SIZE 16 BY 1 TOOLTIP "Letztes zu berücksichtigendes Preisdatum"
  131. BGCOLOR 15 NO-UNDO.
  132. DEFINE VARIABLE F_vonInhalt AS INTEGER FORMAT "zzz9":U INITIAL 0
  133. LABEL "von - bis Inhalt (cl)"
  134. VIEW-AS FILL-IN NATIVE
  135. SIZE 8 BY 1
  136. BGCOLOR 15 NO-UNDO.
  137. DEFINE VARIABLE F_Wert AS DECIMAL FORMAT "zz9.9999-":U INITIAL 0
  138. LABEL "Wert"
  139. VIEW-AS FILL-IN NATIVE
  140. SIZE 14 BY 1
  141. BGCOLOR 15 NO-UNDO.
  142. DEFINE VARIABLE R_Gebindeart AS INTEGER
  143. VIEW-AS RADIO-SET HORIZONTAL
  144. RADIO-BUTTONS
  145. "Kleingeninde", 1,
  146. "Artikelnummer", 2
  147. SIZE 38.2 BY 1 NO-UNDO.
  148. DEFINE VARIABLE R_Runden AS INTEGER
  149. VIEW-AS RADIO-SET VERTICAL
  150. RADIO-BUTTONS
  151. "Keine Rundung", 1,
  152. "5er Rundung", 2,
  153. "10er Rundung", 3
  154. SIZE 40 BY 2 NO-UNDO.
  155. DEFINE RECTANGLE RECT-5
  156. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  157. SIZE 86 BY 15.38.
  158. DEFINE VARIABLE T_Brutto AS LOGICAL INITIAL NO
  159. LABEL "Bruttopreis ?"
  160. VIEW-AS TOGGLE-BOX
  161. SIZE 17 BY 1 NO-UNDO.
  162. /* ************************ Frame Definitions *********************** */
  163. DEFINE FRAME gPreismutationen
  164. F_Datum AT ROW 1.52 COL 20 COLON-ALIGNED
  165. CB_PreisGrp AT ROW 3 COL 20 COLON-ALIGNED
  166. T_Brutto AT ROW 3 COL 69
  167. CB_WGrp AT ROW 4 COL 20 COLON-ALIGNED
  168. CB_PGrp AT ROW 5 COL 20 COLON-ALIGNED
  169. F_vonInhalt AT ROW 6 COL 20 COLON-ALIGNED
  170. F_bisInhalt AT ROW 6 COL 30 COLON-ALIGNED
  171. R_Gebindeart AT ROW 6 COL 42.8 NO-LABELS WIDGET-ID 14
  172. CB_Land AT ROW 7 COL 20 COLON-ALIGNED WIDGET-ID 2
  173. CB_Hersteller AT ROW 8 COL 20 COLON-ALIGNED WIDGET-ID 8
  174. F_bemerkung AT ROW 9 COL 20 COLON-ALIGNED WIDGET-ID 10
  175. F_LetztesDatum AT ROW 10 COL 20 COLON-ALIGNED WIDGET-ID 12
  176. R_Runden AT ROW 11.24 COL 22 NO-LABELS WIDGET-ID 4
  177. CB_Art AT ROW 13.52 COL 20 COLON-ALIGNED
  178. F_Wert AT ROW 14.52 COL 20 COLON-ALIGNED
  179. Btn_OK AT ROW 13.52 COL 69
  180. Btn_Cancel AT ROW 14.52 COL 69
  181. RECT-5 AT ROW 1.24 COL 2
  182. SPACE(0.99) SKIP(1.32)
  183. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  184. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  185. TITLE "Preise Linear mutieren".
  186. /* *********************** Procedure Settings ************************ */
  187. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  188. /* Settings for THIS-PROCEDURE
  189. Type: SmartDialog
  190. Allow: Basic,Browse,DB-Fields,Query,Smart
  191. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  192. Design Page: 1
  193. Other Settings: COMPILE
  194. */
  195. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  196. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gPreismutationen
  197. /* ************************* Included-Libraries *********************** */
  198. {src/adm2/containr.i}
  199. /* _UIB-CODE-BLOCK-END */
  200. &ANALYZE-RESUME
  201. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  202. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  203. /* SETTINGS FOR DIALOG-BOX gPreismutationen
  204. FRAME-NAME Custom */
  205. ASSIGN
  206. FRAME gPreismutationen:SCROLLABLE = FALSE
  207. FRAME gPreismutationen:HIDDEN = TRUE.
  208. /* SETTINGS FOR FILL-IN F_bemerkung IN FRAME gPreismutationen
  209. 6 */
  210. /* SETTINGS FOR FILL-IN F_bisInhalt IN FRAME gPreismutationen
  211. 6 */
  212. /* SETTINGS FOR FILL-IN F_Datum IN FRAME gPreismutationen
  213. 6 */
  214. /* SETTINGS FOR FILL-IN F_LetztesDatum IN FRAME gPreismutationen
  215. 6 */
  216. /* SETTINGS FOR FILL-IN F_vonInhalt IN FRAME gPreismutationen
  217. 6 */
  218. /* SETTINGS FOR FILL-IN F_Wert IN FRAME gPreismutationen
  219. 6 */
  220. /* SETTINGS FOR RADIO-SET R_Runden IN FRAME gPreismutationen
  221. 6 */
  222. /* SETTINGS FOR TOGGLE-BOX T_Brutto IN FRAME gPreismutationen
  223. 6 */
  224. /* _RUN-TIME-ATTRIBUTES-END */
  225. &ANALYZE-RESUME
  226. /* Setting information for Queries and Browse Widgets fields */
  227. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gPreismutationen
  228. /* Query rebuild information for DIALOG-BOX gPreismutationen
  229. _Options = "SHARE-LOCK"
  230. _Query is NOT OPENED
  231. */ /* DIALOG-BOX gPreismutationen */
  232. &ANALYZE-RESUME
  233. /* ************************ Control Triggers ************************ */
  234. &Scoped-define SELF-NAME gPreismutationen
  235. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreismutationen gPreismutationen
  236. ON END-ERROR OF FRAME gPreismutationen /* Preise Linear mutieren */
  237. DO:
  238. RUN ENDE.
  239. RETURN NO-APPLY.
  240. END.
  241. /* _UIB-CODE-BLOCK-END */
  242. &ANALYZE-RESUME
  243. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreismutationen gPreismutationen
  244. ON GO OF FRAME gPreismutationen /* Preise Linear mutieren */
  245. DO:
  246. /*
  247. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  248. */
  249. END.
  250. /* _UIB-CODE-BLOCK-END */
  251. &ANALYZE-RESUME
  252. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreismutationen gPreismutationen
  253. ON WINDOW-CLOSE OF FRAME gPreismutationen /* Preise Linear mutieren */
  254. DO:
  255. RUN ENDE.
  256. RETURN NO-APPLY.
  257. END.
  258. /* _UIB-CODE-BLOCK-END */
  259. &ANALYZE-RESUME
  260. &Scoped-define SELF-NAME Btn_OK
  261. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gPreismutationen
  262. ON CHOOSE OF Btn_OK IN FRAME gPreismutationen /* Starten */
  263. DO:
  264. RUN NEURECHNEN.
  265. RETURN NO-APPLY.
  266. END.
  267. /* _UIB-CODE-BLOCK-END */
  268. &ANALYZE-RESUME
  269. &Scoped-define SELF-NAME CB_PreisGrp
  270. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_PreisGrp gPreismutationen
  271. ON VALUE-CHANGED OF CB_PreisGrp IN FRAME gPreismutationen /* Preisgruppe */
  272. DO:
  273. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  274. RUN FIND_PREISGRUPPE ( INTEGER(SELF:SCREEN-VALUE), OUTPUT cString ).
  275. IF cString = '' OR
  276. cString = ? THEN RETURN NO-APPLY.
  277. IF INTEGER(ENTRY(3, cString, CHR(01))) = 1
  278. THEN T_Brutto:SCREEN-VALUE = STRING(TRUE).
  279. ELSE T_Brutto:SCREEN-VALUE = STRING(FALSE).
  280. RETURN NO-APPLY.
  281. END.
  282. /* _UIB-CODE-BLOCK-END */
  283. &ANALYZE-RESUME
  284. &Scoped-define SELF-NAME CB_WGrp
  285. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_WGrp gPreismutationen
  286. ON VALUE-CHANGED OF CB_WGrp IN FRAME gPreismutationen /* Warengruppe */
  287. DO:
  288. DEFINE VARIABLE Wgr AS INTEGER NO-UNDO.
  289. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  290. DO WITH FRAME {&FRAME-NAME}:
  291. Wgr = INTEGER(CB_WGrp:SCREEN-VALUE) NO-ERROR.
  292. RUN COMBO_PRODUKTEGRUPPE (INPUT CB_PGrp:HANDLE, INPUT Wgr) NO-ERROR.
  293. cString = 'Alle;XXXXXX;' + CB_PGrp:LIST-ITEM-PAIRS.
  294. CB_PGrp:LIST-ITEM-PAIRS = cString.
  295. CB_PGrp :SCREEN-VALUE = ENTRY(2, CB_PGrp :LIST-ITEM-PAIRS, ';').
  296. END.
  297. END.
  298. /* _UIB-CODE-BLOCK-END */
  299. &ANALYZE-RESUME
  300. &UNDEFINE SELF-NAME
  301. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gPreismutationen
  302. /* *************************** Main Block *************************** */
  303. MaxPage = 1.
  304. AktSeite = 1.
  305. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  306. SESSION:DATA-ENTRY-RETURN = TRUE.
  307. /* TRIGGERS ------------------------------------------------------ */
  308. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  309. DO:
  310. RUN ENDE.
  311. RETURN NO-APPLY.
  312. END.
  313. /* ------------------------------------------------------------------ */
  314. {src/adm2/dialogmn.i}
  315. /* _UIB-CODE-BLOCK-END */
  316. &ANALYZE-RESUME
  317. /* ********************** Internal Procedures *********************** */
  318. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gPreismutationen _ADM-CREATE-OBJECTS
  319. PROCEDURE adm-create-objects :
  320. /*------------------------------------------------------------------------------
  321. Purpose: Create handles for all SmartObjects used in this procedure.
  322. After SmartObjects are initialized, then SmartLinks are added.
  323. Parameters: <none>
  324. ------------------------------------------------------------------------------*/
  325. END PROCEDURE.
  326. /* _UIB-CODE-BLOCK-END */
  327. &ANALYZE-RESUME
  328. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gPreismutationen _DEFAULT-DISABLE
  329. PROCEDURE disable_UI :
  330. /*------------------------------------------------------------------------------
  331. Purpose: DISABLE the User Interface
  332. Parameters: <none>
  333. Notes: Here we clean-up the user-interface by deleting
  334. dynamic widgets we have created and/or hide
  335. frames. This procedure is usually called when
  336. we are ready to "clean-up" after running.
  337. ------------------------------------------------------------------------------*/
  338. /* Hide all frames. */
  339. HIDE FRAME gPreismutationen.
  340. END PROCEDURE.
  341. /* _UIB-CODE-BLOCK-END */
  342. &ANALYZE-RESUME
  343. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gPreismutationen
  344. PROCEDURE enableObject :
  345. /*------------------------------------------------------------------------------
  346. Purpose: Super Override
  347. Parameters:
  348. Notes:
  349. ------------------------------------------------------------------------------*/
  350. DEFINE VARIABLE Wgr AS INTEGER NO-UNDO.
  351. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  352. DO WITH FRAME {&FRAME-NAME}:
  353. RUN COMBO_LAND (INPUT CB_Land :HANDLE) NO-ERROR.
  354. CB_Land:LIST-ITEM-PAIRS = 'alle Länder;ALLE;' + CB_Land:LIST-ITEM-PAIRS.
  355. CB_Land:SCREEN-VALUE = ENTRY(2, CB_Land:LIST-ITEM-PAIRS, ';').
  356. RUN COMBO_HERSTELLER (INPUT CB_Hersteller:HANDLE) NO-ERROR.
  357. CB_Hersteller:LIST-ITEM-PAIRS = 'alle Hersteller;999999;' + CB_Hersteller:LIST-ITEM-PAIRS.
  358. CB_Hersteller:SCREEN-VALUE = ENTRY(2, CB_Hersteller:LIST-ITEM-PAIRS, ';').
  359. RUN COMBO_PREISGRP (INPUT CB_PreisGrp:HANDLE) NO-ERROR.
  360. RUN COMBO_WARENGRUPPE (INPUT CB_WGrp :HANDLE) NO-ERROR.
  361. cString = 'Alle;XXXXXX;' + CB_WGrp:LIST-ITEM-PAIRS.
  362. CB_WGrp:LIST-ITEM-PAIRS = cString.
  363. CB_PreisGrp:SCREEN-VALUE = ENTRY(2, CB_PreisGrp:LIST-ITEM-PAIRS, ';').
  364. CB_WGrp :SCREEN-VALUE = ENTRY(2, CB_WGrp :LIST-ITEM-PAIRS, ';').
  365. CB_Art:SCREEN-VALUE = CB_Art:ENTRY(1).
  366. END.
  367. RUN SUPER.
  368. DO WITH FRAME {&FRAME-NAME}:
  369. APPLY 'VALUE-CHANGED' TO CB_PreisGrp.
  370. APPLY 'VALUE-CHANGED' TO CB_WGrp.
  371. END.
  372. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  373. END PROCEDURE.
  374. /* _UIB-CODE-BLOCK-END */
  375. &ANALYZE-RESUME
  376. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gPreismutationen _DEFAULT-ENABLE
  377. PROCEDURE enable_UI :
  378. /*------------------------------------------------------------------------------
  379. Purpose: ENABLE the User Interface
  380. Parameters: <none>
  381. Notes: Here we display/view/enable the widgets in the
  382. user-interface. In addition, OPEN all queries
  383. associated with each FRAME and BROWSE.
  384. These statements here are based on the "Other
  385. Settings" section of the widget Property Sheets.
  386. ------------------------------------------------------------------------------*/
  387. DISPLAY F_Datum CB_PreisGrp T_Brutto CB_WGrp CB_PGrp F_vonInhalt F_bisInhalt
  388. R_Gebindeart CB_Land CB_Hersteller F_bemerkung F_LetztesDatum R_Runden
  389. CB_Art F_Wert
  390. WITH FRAME gPreismutationen.
  391. ENABLE F_Datum CB_PreisGrp T_Brutto CB_WGrp CB_PGrp F_vonInhalt F_bisInhalt
  392. R_Gebindeart CB_Land CB_Hersteller F_bemerkung F_LetztesDatum R_Runden
  393. CB_Art F_Wert Btn_OK Btn_Cancel RECT-5
  394. WITH FRAME gPreismutationen.
  395. VIEW FRAME gPreismutationen.
  396. {&OPEN-BROWSERS-IN-QUERY-gPreismutationen}
  397. END PROCEDURE.
  398. /* _UIB-CODE-BLOCK-END */
  399. &ANALYZE-RESUME
  400. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gPreismutationen
  401. PROCEDURE ENDE :
  402. /*------------------------------------------------------------------------------
  403. Purpose:
  404. Parameters: <none>
  405. Notes:
  406. ------------------------------------------------------------------------------*/
  407. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  408. IF AktSeite > 1 THEN
  409. DO:
  410. RUN selectPage ( INPUT 1 ).
  411. RETURN NO-APPLY.
  412. END.
  413. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  414. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  415. RETURN NO-APPLY.
  416. END PROCEDURE.
  417. /* _UIB-CODE-BLOCK-END */
  418. &ANALYZE-RESUME
  419. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gPreismutationen
  420. PROCEDURE exitObject :
  421. /*------------------------------------------------------------------------------
  422. Purpose: Super Override
  423. Parameters:
  424. Notes:
  425. ------------------------------------------------------------------------------*/
  426. RUN ENDE.
  427. RETURN NO-APPLY.
  428. END PROCEDURE.
  429. /* _UIB-CODE-BLOCK-END */
  430. &ANALYZE-RESUME
  431. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEURECHNEN gPreismutationen
  432. PROCEDURE NEURECHNEN :
  433. /*------------------------------------------------------------------------------
  434. Purpose:
  435. Parameters: <none>
  436. Notes:
  437. ------------------------------------------------------------------------------*/
  438. DEFINE VARIABLE VWGrp AS INTEGER NO-UNDO.
  439. DEFINE VARIABLE VPGrp AS INTEGER NO-UNDO.
  440. DEFINE VARIABLE VPreisGrp AS INTEGER NO-UNDO.
  441. DEFINE VARIABLE VArt AS INTEGER NO-UNDO.
  442. DEFINE VARIABLE FBrutto AS LOG NO-UNDO.
  443. DEFINE VARIABLE VPreis AS DECIMAL DECIMALS 4 NO-UNDO.
  444. DEFINE VARIABLE WucdK AS INTEGER NO-UNDO.
  445. DEFINE VARIABLE WucdA AS INTEGER NO-UNDO.
  446. DEFINE VARIABLE Ansatz AS DECIMAL NO-UNDO.
  447. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  448. DEFINE VARIABLE cLkz AS CHARACTER NO-UNDO.
  449. DEFINE VARIABLE iHerst AS INTEGER NO-UNDO.
  450. DEFINE VARIABLE cDBUser AS CHARACTER NO-UNDO.
  451. DEFINE VARIABLE iGebindeArt AS INTEGER NO-UNDO.
  452. EMPTY TEMP-TABLE tArtPreis.
  453. CREATE tArtPreis.
  454. DO WITH FRAME {&FRAME-NAME}:
  455. ASSIGN {&List-6}.
  456. VPreisGrp = INTEGER(CB_PreisGrp :SCREEN-VALUE) NO-ERROR.
  457. VWGrp = INTEGER(CB_WGrp :SCREEN-VALUE) NO-ERROR.
  458. VPGrp = INTEGER(CB_PGrp :SCREEN-VALUE) NO-ERROR.
  459. iHerst = INTEGER(CB_Hersteller:SCREEN-VALUE) NO-ERROR.
  460. iGebindeArt = INTEGER(R_GebindeArt :SCREEN-VALUE) NO-ERROR.
  461. VArt = LOOKUP (CB_Art:SCREEN-VALUE, CB_Art:LIST-ITEMS).
  462. cLkz = CB_Land :SCREEN-VALUE NO-ERROR.
  463. IF CB_WGrp:SCREEN-VALUE = 'XXXXXX' THEN VWGrp = ?.
  464. IF CB_PGrp:SCREEN-VALUE = 'XXXXXX' THEN VPGrp = ?.
  465. IF F_LetztesDatum = ? THEN F_LetztesDatum = F_Datum - 1.
  466. IF iGebindeArt = ? THEN iGebindeArt = 1.
  467. IF F_Wert = 0 AND
  468. VArt = 3 THEN RETURN NO-APPLY.
  469. DISABLE Btn_OK Btn_Cancel.
  470. FBrutto = FALSE.
  471. IF T_Brutto = TRUE THEN FBrutto = TRUE.
  472. WucdK = 0.
  473. FOR EACH Debst USE-INDEX Debst-k1
  474. WHERE Debst.Firma = Firma
  475. AND Debst.Preis_Grp = VPreisGrp NO-LOCK:
  476. WucdK = Debst.MWST.
  477. LEAVE.
  478. END.
  479. cDBUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
  480. FOR EACH Artst USE-INDEX Artst-k1
  481. WHERE Artst.Firma = Firma
  482. AND Artst.Aktiv = TRUE
  483. AND ((VWGrp = ?)
  484. OR (Artst.Wg_Grp = VWGrp))
  485. AND ((VPGrp = ?)
  486. OR (Artst.Prod_Grp = VPGrp))
  487. AND ((cLkz = 'ALLE')
  488. OR (Artst.Herk_Lkz = cLkz))
  489. AND ((iHerst = 999999)
  490. OR (Artst.Herst = iHerst)) NO-LOCK:
  491. CASE iGebindeArt:
  492. WHEN 1 THEN
  493. DO:
  494. FIND KGebinde USE-INDEX KGebinde-k1
  495. WHERE KGebinde.Firma = Artst.Firma
  496. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR.
  497. IF NOT AVAILABLE KGebinde THEN NEXT.
  498. IF KGebinde.Inhalt < F_VonInhalt OR
  499. KGebinde.Inhalt > F_BisINhalt THEN NEXT.
  500. END.
  501. WHEN 2 THEN
  502. DO:
  503. IF Artst.Inhalt < F_vonInhalt THEN NEXT.
  504. IF Artst.Inhalt > F_bisInhalt THEN NEXT.
  505. END.
  506. END CASE.
  507. FIND LAST ArtPreis USE-INDEX ArtPreis-k1
  508. WHERE ArtPreis.Firma = Artst.Firma
  509. AND ArtPreis.Artnr = Artst.Artnr
  510. AND ArtPreis.Inhalt = Artst.Inhalt
  511. AND ArtPreis.Jahr = Artst.Jahr
  512. AND ArtPreis.Aktion = FALSE
  513. AND ArtPreis.Preis_Grp = VPreisGrp
  514. AND ArtPreis.Ab_Datum <= F_LetztesDatum NO-ERROR.
  515. IF NOT AVAILABLE ArtPreis THEN NEXT.
  516. FIND FIRST tArtPreis.
  517. BUFFER-COPY ArtPreis TO tArtPreis
  518. ASSIGN
  519. tArtPreis.Ab_Datum = F_Datum
  520. tArtPreis.erstellt_am = TODAY
  521. tArtPreis.Aenderungs_Art = VArt
  522. tArtPreis.Aenderungs_Text = F_Bemerkung
  523. tArtPreis.Aenderungs_Wert = F_Wert
  524. tArtPreis.Aenderungs_Rundung = R_Runden
  525. tArtPreis.Aenderungs_Sabe = cDBUser.
  526. WucdA = Artst.MWST.
  527. FIND Wust USE-INDEX Wust-k1
  528. WHERE Wust.CodeK = WucdK
  529. AND Wust.CodeA = WucdA NO-LOCK NO-ERROR.
  530. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  531. WHERE MWSTAns.MWST_Cd = Wust.WuCd
  532. AND MWSTAns.Datum <= F_Datum NO-LOCK NO-ERROR.
  533. IF AVAILABLE MWSTAns THEN Ansatz = MWSTAns.Ansatz.
  534. IF FBrutto THEN VPreis = tArtPreis.VK_Brutto.
  535. ELSE VPreis = tArtPreis.VK_Netto.
  536. CASE VArt:
  537. WHEN 1 THEN
  538. DO: /* Prozent */
  539. Rundbetr = VPreis * (100 + F_Wert) / 100.
  540. END.
  541. WHEN 2 THEN
  542. DO: /* Betrag */
  543. Rundbetr = VPreis + F_Wert.
  544. END.
  545. WHEN 3 THEN
  546. DO: /* Betrag */
  547. IF Artst.Listen_Ep = 0 THEN
  548. DO:
  549. MESSAGE 'Dieser Artikel hat kein Listen-EP' SKIP
  550. 'Preismutation manuell machen ! ' SKIP
  551. 'Artikelnummer / Inhalt / Jahr '
  552. Artst.Artnr '/' Artst.Inhalt '/' Artst.Jahr
  553. VIEW-AS ALERT-BOX INFORMATION.
  554. END.
  555. Rundbetr = Artst.Listen_EP * (100 + F_Wert) / 100.
  556. IF FBrutto THEN Rundbetr = Rundbetr * (100 + Ansatz) / 100.
  557. END.
  558. END CASE.
  559. IF FBrutto OR
  560. R_Runden > 1 THEN
  561. DO:
  562. RUN RUNDEN ( INPUT (R_Runden - 1), INPUT-OUTPUT Rundbetr ).
  563. END.
  564. IF FBrutto THEN
  565. DO:
  566. tArtPreis.VK_Brutto = Rundbetr.
  567. tArtPreis.VK_Netto = Rundbetr / (100 + Ansatz) * 100.
  568. END.
  569. ELSE
  570. DO:
  571. tArtPreis.VK_Netto = Rundbetr.
  572. tArtPreis.VK_Brutto = Rundbetr * (100 + Ansatz) / 100.
  573. END.
  574. IF Artst.Listen_EP <> 0 THEN
  575. tArtPreis.Marge = 100 - (Artst.Listen_EP * 100 / tArtPreis.VK_Netto).
  576. ELSE tArtPreis.Marge = 0.
  577. FIND ArtPreis OF tArtPreis NO-ERROR.
  578. IF NOT AVAILABLE ArtPreis THEN
  579. DO:
  580. CREATE ArtPreis.
  581. END.
  582. BUFFER-COPY tArtPreis TO ArtPreis.
  583. END.
  584. ENABLE Btn_OK Btn_Cancel.
  585. END.
  586. END PROCEDURE.
  587. /* _UIB-CODE-BLOCK-END */
  588. &ANALYZE-RESUME