f-bonberech.w 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS F-Frame-Win
  5. /*------------------------------------------------------------------------
  6. File:
  7. Description: from cntnrfrm.w - ADM SmartFrame Template
  8. Input Parameters:
  9. <none>
  10. Output Parameters:
  11. <none>
  12. ------------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress UIB. */
  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 VSummGrp AS INT NO-UNDO.
  25. DEF VAR VMenge AS DEC DECIMALS 4 NO-UNDO.
  26. DEF VAR VVolumen AS DEC DECIMALS 4 NO-UNDO.
  27. DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO.
  28. DEF VAR VMwst AS DEC DECIMALS 4 NO-UNDO.
  29. DEF VAR Berechtigt AS LOG NO-UNDO.
  30. DEF VAR Inklusive AS LOG NO-UNDO.
  31. DEF VAR VWuCd AS INT NO-UNDO.
  32. DEF VAR VArt AS INT NO-UNDO.
  33. DEF VAR VWert AS DEC DECIMALS 4 NO-UNDO.
  34. DEF VAR iLager AS INT NO-UNDO.
  35. DEF TEMP-TABLE TBon LIKE BonusAbr
  36. USE-INDEX BonusAbr-k1 AS PRIMARY.
  37. DEF BUFFER BBon FOR TBon.
  38. DEF TEMP-TABLE TArtbw LIKE Artbw
  39. FIELD ARecid AS RECID.
  40. /* ---------- Globale Variablen ---------------------------------- */
  41. { v8/globvar.i" " " " "SHARED" }
  42. { v8/debivar.i " " " " "SHARED" }
  43. { v8/artivar.i " " " " "SHARED" }
  44. { v8/contvar.i " " " " "SHARED" }
  45. /* _UIB-CODE-BLOCK-END */
  46. &ANALYZE-RESUME
  47. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  48. /* ******************** Preprocessor Definitions ******************** */
  49. &Scoped-define PROCEDURE-TYPE SmartFrame
  50. &Scoped-define DB-AWARE no
  51. &Scoped-define ADM-CONTAINER FRAME
  52. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  53. &Scoped-define FRAME-NAME F-Main
  54. /* Standard List Definitions */
  55. &Scoped-Define ENABLED-OBJECTS F_VonKnr F_BisKnr F_VonDatum F_BisDatum ~
  56. F_Artikel F_Kunde Btn_Rechnen RECT-20
  57. &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_VonDatum F_BisDatum ~
  58. F_Artikel F_Kunde
  59. /* Custom List Definitions */
  60. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  61. &Scoped-define List-1 F_VonKnr F_BisKnr F_VonDatum F_BisDatum
  62. &Scoped-define List-2 F_Artikel F_Kunde
  63. /* _UIB-PREPROCESSOR-BLOCK-END */
  64. &ANALYZE-RESUME
  65. /* *********************** Control Definitions ********************** */
  66. /* Menu Definitions */
  67. DEFINE MENU POPUP-MENU-F-Main
  68. MENU-ITEM m_Lschen_der_aufbereiteten_Da LABEL "Löschen der aufbereiteten Daten".
  69. /* Definitions of the field level widgets */
  70. DEFINE BUTTON Btn_Rechnen
  71. LABEL "Berechnen"
  72. SIZE 16.8 BY 1.24.
  73. DEFINE VARIABLE F_Artikel AS CHARACTER FORMAT "X(256)":U
  74. VIEW-AS FILL-IN NATIVE
  75. SIZE 119 BY 1
  76. BGCOLOR 15 NO-UNDO.
  77. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  78. LABEL "--"
  79. VIEW-AS FILL-IN NATIVE
  80. SIZE 19.6 BY 1
  81. BGCOLOR 15 NO-UNDO.
  82. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
  83. LABEL "--"
  84. VIEW-AS FILL-IN NATIVE
  85. SIZE 11.2 BY 1
  86. BGCOLOR 15 NO-UNDO.
  87. DEFINE VARIABLE F_Kunde AS CHARACTER FORMAT "X(256)":U
  88. VIEW-AS FILL-IN NATIVE
  89. SIZE 119 BY 1
  90. BGCOLOR 15 NO-UNDO.
  91. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  92. LABEL "von - bis Datum"
  93. VIEW-AS FILL-IN NATIVE
  94. SIZE 19.6 BY 1
  95. BGCOLOR 15 NO-UNDO.
  96. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  97. LABEL "von - bis Kundennummer"
  98. VIEW-AS FILL-IN NATIVE
  99. SIZE 11.2 BY 1
  100. BGCOLOR 15 NO-UNDO.
  101. DEFINE RECTANGLE RECT-20
  102. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  103. SIZE 128 BY 12.38.
  104. /* ************************ Frame Definitions *********************** */
  105. DEFINE FRAME F-Main
  106. F_VonKnr AT ROW 3.48 COL 39.6 COLON-ALIGNED
  107. F_BisKnr AT ROW 3.48 COL 64.8 COLON-ALIGNED
  108. F_VonDatum AT ROW 4.71 COL 39.6 COLON-ALIGNED
  109. F_BisDatum AT ROW 4.71 COL 64.8 COLON-ALIGNED
  110. F_Artikel AT ROW 10.33 COL 6 COLON-ALIGNED NO-LABEL NO-TAB-STOP
  111. F_Kunde AT ROW 8.43 COL 6 COLON-ALIGNED NO-LABEL NO-TAB-STOP
  112. Btn_Rechnen AT ROW 3.29 COL 108.8
  113. RECT-20 AT ROW 1.24 COL 2
  114. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  115. SIDE-LABELS NO-UNDERLINE THREE-D
  116. AT COL 1 ROW 1
  117. SIZE 130 BY 12.86.
  118. /* *********************** Procedure Settings ************************ */
  119. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  120. /* Settings for THIS-PROCEDURE
  121. Type: SmartFrame
  122. Allow: Basic,Browse,DB-Fields,Query,Smart
  123. Design Page: 3
  124. Other Settings: PERSISTENT-ONLY COMPILE
  125. */
  126. /* This procedure should always be RUN PERSISTENT. Report the error, */
  127. /* then cleanup and return. */
  128. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  129. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  130. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  131. RETURN.
  132. END.
  133. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  134. /* ************************* Create Window ************************** */
  135. &ANALYZE-SUSPEND _CREATE-WINDOW
  136. /* DESIGN Window definition (used by the UIB)
  137. CREATE WINDOW F-Frame-Win ASSIGN
  138. HEIGHT = 12.76
  139. WIDTH = 130.
  140. /* END WINDOW DEFINITION */
  141. */
  142. &ANALYZE-RESUME
  143. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB F-Frame-Win
  144. /* ************************* Included-Libraries *********************** */
  145. {src/adm/method/containr.i}
  146. /* _UIB-CODE-BLOCK-END */
  147. &ANALYZE-RESUME
  148. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  149. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  150. /* SETTINGS FOR WINDOW F-Frame-Win
  151. VISIBLE,,RUN-PERSISTENT */
  152. /* SETTINGS FOR FRAME F-Main
  153. NOT-VISIBLE FRAME-NAME Custom */
  154. ASSIGN
  155. FRAME F-Main:POPUP-MENU = MENU POPUP-MENU-F-Main:HANDLE.
  156. /* SETTINGS FOR FILL-IN F_Artikel IN FRAME F-Main
  157. 2 */
  158. ASSIGN
  159. F_Artikel:READ-ONLY IN FRAME F-Main = TRUE.
  160. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME F-Main
  161. 1 */
  162. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME F-Main
  163. 1 */
  164. /* SETTINGS FOR FILL-IN F_Kunde IN FRAME F-Main
  165. 2 */
  166. ASSIGN
  167. F_Kunde:READ-ONLY IN FRAME F-Main = TRUE.
  168. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME F-Main
  169. 1 */
  170. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME F-Main
  171. 1 */
  172. /* _RUN-TIME-ATTRIBUTES-END */
  173. &ANALYZE-RESUME
  174. /* Setting information for Queries and Browse Widgets fields */
  175. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  176. /* Query rebuild information for FRAME F-Main
  177. _Options = ""
  178. _Query is NOT OPENED
  179. */ /* FRAME F-Main */
  180. &ANALYZE-RESUME
  181. /* ************************ Control Triggers ************************ */
  182. &Scoped-define SELF-NAME Btn_Rechnen
  183. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Rechnen F-Frame-Win
  184. ON CHOOSE OF Btn_Rechnen IN FRAME F-Main /* Berechnen */
  185. DO:
  186. DEF VAR FKunde AS LOG NO-UNDO.
  187. DEF VAR iLager AS INT NO-UNDO.
  188. DO WITH FRAME {&FRAME-NAME}:
  189. SESSION:IMMEDIATE-DISPLAY = TRUE.
  190. ASSIGN {&List-1}.
  191. IF F_VonKnr = 0 AND
  192. F_BisKnr = 0 THEN F_BisKnr = 999999.
  193. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr.
  194. IF F_VonDatum = ? THEN F_VonDatum = 01/01/0001.
  195. IF F_BisDatum = ? THEN DO:
  196. F_BisDatum = TODAY.
  197. DO WHILE TRUE.
  198. IF MONTH(F_BisDatum + 1) <> MONTH(F_BisDatum) THEN LEAVE.
  199. F_BisDatum = F_BisDatum - 1.
  200. END.
  201. END.
  202. DISPLAY {&List-1}.
  203. DISABLE Btn_Rechnen.
  204. F_Kunde = 'Löschen der nicht verbuchten Boni'.
  205. F_Artikel = ''.
  206. DISPLAY {&List-2}.
  207. FOR EACH BonusAbr USE-INDEX BonusAbr-k1
  208. WHERE BonusAbr.Firma = GVFirma
  209. AND BonusAbr.Bon_Sta = 0
  210. AND BonusAbr.Knr >= F_VonKnr
  211. AND BonusAbr.Knr <= F_BisKnr :
  212. DELETE BonusAbr.
  213. END.
  214. F_Kunde = 'Aufbereiten der Verkäufe'.
  215. DISPLAY {&List-2}.
  216. VWucd = -1.
  217. FOR EACH TBon:
  218. DELETE TBon.
  219. END.
  220. FOR EACH TArtbw:
  221. DELETE TArtbw.
  222. END.
  223. FOR EACH Artbw USE-INDEX Artbw-k8
  224. WHERE Artbw.Firma = GVFirma
  225. AND Artbw.Tr_Art = 01
  226. AND Artbw.Datum <= F_BisDatum
  227. AND Artbw.Datum >= F_VonDatum
  228. AND Artbw.Knr >= F_VonKnr
  229. AND Artbw.Knr <= F_BisKnr
  230. AND Artbw.Bonus_Verb = FALSE
  231. AND Artbw.Faknr > 0
  232. AND Artbw.MWST% = 0
  233. AND Artbw.Lager = iLager NO-LOCK:
  234. CREATE TArtbw.
  235. BUFFER-COPY Artbw TO TArtbw.
  236. TArtbw.ARecid = RECID(Artbw).
  237. END.
  238. FOR EACH TArtbw:
  239. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  240. WHERE MWSTAns.MWST_Cd = TArtbw.WuCd
  241. AND MWSTAns.Datum <= TArtbw.Fak_dat NO-LOCK NO-ERROR.
  242. IF NOT AVAILABLE MWSTAns THEN NEXT.
  243. FIND Artbw WHERE RECID(Artbw) = TArtbw.ARecid.
  244. Artbw.MWST% = MWSTAns.Ansatz.
  245. DELETE TArtbw.
  246. END.
  247. FOR EACH Artbw USE-INDEX Artbw-k8
  248. WHERE Artbw.Firma = GVFirma
  249. AND Artbw.Tr_Art = 01
  250. AND Artbw.Datum <= F_BisDatum
  251. AND Artbw.Datum >= F_VonDatum
  252. AND Artbw.Knr >= F_VonKnr
  253. AND Artbw.Knr <= F_BisKnr
  254. AND Artbw.Bonus_Verb = FALSE
  255. AND Artbw.Tr_Art = 01
  256. AND Artbw.Faknr > 0
  257. AND Artbw.Lager = iLager NO-LOCK
  258. BREAK BY Artbw.Firma
  259. BY Artbw.Knr
  260. BY Artbw.Artnr
  261. BY Artbw.Inhalt
  262. BY Artbw.Jahr
  263. BY Artbw.WuCd
  264. BY Artbw.MWST% :
  265. IF FIRST-OF ( Artbw.Knr ) THEN DO:
  266. FKunde = TRUE.
  267. FIND Adresse USE-INDEX Adresse-k1
  268. WHERE Adresse.Firma = AdFirma
  269. AND Adresse.Knr = Artbw.Knr NO-LOCK NO-ERROR.
  270. IF NOT AVAILABLE Adresse THEN DO:
  271. FKunde = FALSE.
  272. F_Kunde = STRING(Artbw.Knr,"999999 / ") + '????????????????????'.
  273. END.
  274. ELSE DO:
  275. F_Kunde = STRING(Artbw.Knr,"999999 / ") + Adresse.Anzeig_Br.
  276. END.
  277. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}.
  278. END.
  279. DO WHILE FIRST-OF ( Artbw.MWST% ):
  280. VMenge = 0.
  281. VVolumen = 0.
  282. VBetrag = 0.
  283. Berechtigt = FALSE.
  284. VSummGrp = 0.
  285. Inklusive = Artbw.MWST_Inkl.
  286. VMwst = Artbw.MWST%.
  287. FIND Artst OF Artbw NO-LOCK NO-ERROR.
  288. IF NOT AVAILABLE Artst THEN LEAVE.
  289. FIND Debst NO-LOCK USE-INDEX Debst-k1
  290. WHERE Debst.Firma = Artbw.Firma
  291. AND Debst.Knr = Artbw.Knr NO-ERROR.
  292. IF NOT AVAILABLE Debst THEN DO:
  293. FKunde = FALSE.
  294. LEAVE.
  295. END.
  296. FIND BonTab USE-INDEX BonTab-k1
  297. WHERE BonTab.Firma = GVFirma
  298. AND BonTab.Ku_Bon = Debst.Bonus
  299. AND BonTab.Art_Bon = Artst.Bonus NO-LOCK NO-ERROR.
  300. IF NOT AVAILABLE BonTab THEN LEAVE.
  301. VSummGrp = BonTab.Bon_Summ.
  302. IF VSummGrp = 0 THEN LEAVE.
  303. F_Artikel = STRING(Artbw.Artnr ,"999999/")
  304. + STRING(Artbw.Inhalt,"9999/")
  305. + STRING(Artbw.Jahr ,"9999 ")
  306. + Artst.Bez.
  307. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}.
  308. Berechtigt = TRUE.
  309. LEAVE.
  310. END.
  311. IF NOT FKunde THEN NEXT.
  312. DO WHILE Berechtigt:
  313. VMenge = VMenge + Artbw.Menge.
  314. VVolumen = VVolumen + Artbw.Liter.
  315. VBetrag = VBetrag + Artbw.Net_Betr
  316. - Artbw.Auf_Rab
  317. - Artbw.Abh_Rab
  318. - Artbw.Auf_Sp_Rab.
  319. IF NOT LAST-OF ( Artbw.MWST% ) THEN LEAVE.
  320. IF Inklusive THEN VBetrag = VBetrag * 100 / (100 + VMWst).
  321. FIND TBon USE-INDEX BonusAbr-k1
  322. WHERE TBon.Firma = Artbw.Firma
  323. AND TBon.Bon_Sta = 0
  324. AND TBon.Knr = Artbw.Knr
  325. AND TBon.VonDatum = F_VonDatum
  326. AND TBon.SummGrp = VSummGrp
  327. AND TBon.Artnr = Artbw.Artnr
  328. AND TBon.Inhalt = Artbw.Inhalt
  329. AND TBon.Jahr = Artbw.Jahr
  330. AND TBon.MWST-% = VMwst NO-ERROR.
  331. IF NOT AVAILABLE TBon THEN DO:
  332. CREATE TBon.
  333. ASSIGN TBon.Firma = Artbw.Firma
  334. TBon.Bon_Sta = 0
  335. TBon.Knr = Artbw.Knr
  336. TBon.VonDatum = F_VonDatum
  337. TBon.SummGrp = VSummGrp
  338. TBon.Artnr = Artbw.Artnr
  339. TBon.Inhalt = Artbw.Inhalt
  340. TBon.Jahr = Artbw.Jahr
  341. TBon.MWST-% = VMwst
  342. TBon.Menge = VMenge
  343. TBon.Volumen = VVolumen
  344. TBon.Betrag = VBetrag
  345. TBon.BisDatum = F_BisDatum.
  346. END.
  347. ELSE DO:
  348. ASSIGN TBon.Menge = TBon.Menge + VMenge
  349. TBon.Volumen = TBon.Volumen + VVolumen
  350. TBon.Betrag = TBon.Betrag + VBetrag.
  351. END.
  352. LEAVE.
  353. END.
  354. IF NOT LAST-OF ( Artbw.Knr ) THEN NEXT.
  355. FOR EACH TBon USE-INDEX BonusAbr-k1 NO-LOCK
  356. BREAK BY TBon.Firma
  357. BY TBon.Bon_Sta
  358. BY TBon.Knr
  359. BY TBon.SummGrp
  360. BY TBon.Artnr
  361. BY TBon.Inhalt
  362. BY TBon.Jahr :
  363. IF FIRST-OF ( TBon.SummGrp ) THEN DO:
  364. VMenge = 0.
  365. VVolumen = 0.
  366. VBetrag = 0.
  367. END.
  368. VMenge = VMenge + TBon.Menge.
  369. VVolumen = VVolumen + TBon.Volumen.
  370. VBetrag = VBetrag + TBon.Betrag.
  371. IF NOT LAST-OF ( TBon.SummGrp ) THEN NEXT.
  372. FIND FIRST BonSumm USE-INDEX BonSumm-k1
  373. WHERE BonSumm.Firma = GVFirma
  374. AND BonSumm.Bon_Summ = TBon.SummGrp NO-LOCK NO-ERROR.
  375. IF NOT AVAILABLE BonSumm THEN NEXT.
  376. VArt = BonSumm.Bon_Art.
  377. VWert = 0.
  378. VVolumen = VVolumen / 100.
  379. CASE VArt:
  380. WHEN 0 THEN DO: /* Rappen auf Mengen */
  381. FIND LAST BonSumm USE-INDEX BonSumm-k1
  382. WHERE BonSumm.Firma = GVFirma
  383. AND BonSumm.Bon_Summ = TBon.SummGrp
  384. AND BonSumm.Menge <= VMenge NO-LOCK NO-ERROR.
  385. END.
  386. WHEN 1 THEN DO: /* Rappen auf Mengen */
  387. FIND LAST BonSumm USE-INDEX BonSumm-k1
  388. WHERE BonSumm.Firma = GVFirma
  389. AND BonSumm.Bon_Summ = TBon.SummGrp
  390. AND BonSumm.Betrag <= VBetrag NO-LOCK NO-ERROR.
  391. END.
  392. WHEN 2 THEN DO: /* Rappen auf Mengen */
  393. FIND LAST BonSumm USE-INDEX BonSumm-k1
  394. WHERE BonSumm.Firma = GVFirma
  395. AND BonSumm.Bon_Summ = TBon.SummGrp
  396. AND BonSumm.Inhalt <= VVolumen NO-LOCK NO-ERROR.
  397. END.
  398. END CASE.
  399. IF AVAILABLE BonSumm THEN VWert = BonSumm.Bon_Wert.
  400. FOR EACH BBon USE-INDEX BonusAbr-k1
  401. WHERE BBon.Firma = TBon.Firma
  402. AND BBon.Bon_Sta = TBon.Bon_Sta
  403. AND BBon.Knr = TBon.Knr
  404. AND BBon.VonDatum = TBon.VonDatum
  405. AND BBon.SummGrp = TBon.SummGrp :
  406. BBon.Bon_Wert = VWert.
  407. BBon.Bon_Art = VArt.
  408. END.
  409. END.
  410. FOR EACH TBon USE-INDEX BonusAbr-k1:
  411. FIND BonusAbr OF TBon NO-ERROR.
  412. IF NOT AVAILABLE BonusAbr THEN DO:
  413. CREATE BonusAbr.
  414. { v8/bonusabr.i "BonusAbr" "TBon" }
  415. END.
  416. ELSE DO:
  417. ASSIGN BonusAbr.Menge = BonusAbr.Menge + TBon.Menge
  418. BonusAbr.Volumen = BonusAbr.Volumen + TBon.Volumen
  419. BonusAbr.Betrag = BonusAbr.Betrag + TBon.Betrag.
  420. END.
  421. CASE BonusAbr.Bon_Art:
  422. WHEN 0 THEN BonusAbr.Bonus = BonusAbr.Menge * BonusAbr.Bon_Wert.
  423. WHEN 1 THEN BonusAbr.Bonus = BonusAbr.Betrag * BonusAbr.Bon_Wert / 100.
  424. WHEN 2 THEN BonusAbr.Bonus = BonusAbr.Volumen * BonusAbr.Bon_Wert / 100.
  425. END CASE.
  426. DELETE TBon.
  427. END.
  428. END.
  429. ENABLE Btn_Rechnen.
  430. APPLY 'ENTRY' TO F_VonKnr.
  431. SESSION:IMMEDIATE-DISPLAY = FALSE.
  432. RETURN NO-APPLY.
  433. END.
  434. END.
  435. /* _UIB-CODE-BLOCK-END */
  436. &ANALYZE-RESUME
  437. &Scoped-define SELF-NAME m_Lschen_der_aufbereiteten_Da
  438. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Lschen_der_aufbereiteten_Da F-Frame-Win
  439. ON CHOOSE OF MENU-ITEM m_Lschen_der_aufbereiteten_Da /* Löschen der aufbereiteten Daten */
  440. DO:
  441. DEF VAR ja AS LOG INIT FALSE NO-UNDO.
  442. MESSAGE 'Wollen Sie die Daten wirklich löschen?'
  443. VIEW-AS ALERT-BOX QUESTION
  444. UPDATE ja.
  445. IF NOT ja THEN RETURN NO-APPLY.
  446. FOR EACH BonusAbr USE-INDEX BonusAbr-k1
  447. WHERE BonusAbr.Firma = GVFirma
  448. AND BonusAbr.Bon_Sta = 0:
  449. DELETE BonusAbr.
  450. END.
  451. RETURN NO-APPLY.
  452. END.
  453. /* _UIB-CODE-BLOCK-END */
  454. &ANALYZE-RESUME
  455. &UNDEFINE SELF-NAME
  456. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK F-Frame-Win
  457. /* *************************** Main Block *************************** */
  458. SUBSCRIBE TO 'BONUSLAGER' ANYWHERE.
  459. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  460. /* Now enable the interface if in test mode - otherwise this happens when
  461. the object is explicitly initialized from its container. */
  462. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  463. &ENDIF
  464. /* _UIB-CODE-BLOCK-END */
  465. &ANALYZE-RESUME
  466. /* ********************** Internal Procedures *********************** */
  467. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects F-Frame-Win _ADM-CREATE-OBJECTS
  468. PROCEDURE adm-create-objects :
  469. /*------------------------------------------------------------------------------
  470. Purpose: Create handles for all SmartObjects used in this procedure.
  471. After SmartObjects are initialized, then SmartLinks are added.
  472. Parameters: <none>
  473. ------------------------------------------------------------------------------*/
  474. END PROCEDURE.
  475. /* _UIB-CODE-BLOCK-END */
  476. &ANALYZE-RESUME
  477. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available F-Frame-Win _ADM-ROW-AVAILABLE
  478. PROCEDURE adm-row-available :
  479. /*------------------------------------------------------------------------------
  480. Purpose: Dispatched to this procedure when the Record-
  481. Source has a new row available. This procedure
  482. tries to get the new row (or foriegn keys) from
  483. the Record-Source and process it.
  484. Parameters: <none>
  485. ------------------------------------------------------------------------------*/
  486. /* Define variables needed by this internal procedure. */
  487. {src/adm/template/row-head.i}
  488. /* Process the newly available records (i.e. display fields,
  489. open queries, and/or pass records on to any RECORD-TARGETS). */
  490. {src/adm/template/row-end.i}
  491. END PROCEDURE.
  492. /* _UIB-CODE-BLOCK-END */
  493. &ANALYZE-RESUME
  494. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BONUSLAGER F-Frame-Win
  495. PROCEDURE BONUSLAGER :
  496. /*------------------------------------------------------------------------------
  497. Purpose:
  498. Parameters: <none>
  499. Notes:
  500. ------------------------------------------------------------------------------*/
  501. DEF INPUT PARAMETER ipLager AS INT NO-UNDO.
  502. iLager = ipLager.
  503. DO WITH FRAME {&FRAME-NAME}:
  504. APPLY 'ENTRY' TO F_VonKnr.
  505. RETURN NO-APPLY.
  506. END.
  507. END PROCEDURE.
  508. /* _UIB-CODE-BLOCK-END */
  509. &ANALYZE-RESUME
  510. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI F-Frame-Win _DEFAULT-DISABLE
  511. PROCEDURE disable_UI :
  512. /*------------------------------------------------------------------------------
  513. Purpose: DISABLE the User Interface
  514. Parameters: <none>
  515. Notes: Here we clean-up the user-interface by deleting
  516. dynamic widgets we have created and/or hide
  517. frames. This procedure is usually called when
  518. we are ready to "clean-up" after running.
  519. ------------------------------------------------------------------------------*/
  520. /* Hide all frames. */
  521. HIDE FRAME F-Main.
  522. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  523. END PROCEDURE.
  524. /* _UIB-CODE-BLOCK-END */
  525. &ANALYZE-RESUME
  526. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI F-Frame-Win _DEFAULT-ENABLE
  527. PROCEDURE enable_UI :
  528. /*------------------------------------------------------------------------------
  529. Purpose: ENABLE the User Interface
  530. Parameters: <none>
  531. Notes: Here we display/view/enable the widgets in the
  532. user-interface. In addition, OPEN all queries
  533. associated with each FRAME and BROWSE.
  534. These statements here are based on the "Other
  535. Settings" section of the widget Property Sheets.
  536. ------------------------------------------------------------------------------*/
  537. DISPLAY F_VonKnr F_BisKnr F_VonDatum F_BisDatum F_Artikel F_Kunde
  538. WITH FRAME F-Main.
  539. ENABLE F_VonKnr F_BisKnr F_VonDatum F_BisDatum F_Artikel F_Kunde Btn_Rechnen
  540. RECT-20
  541. WITH FRAME F-Main.
  542. {&OPEN-BROWSERS-IN-QUERY-F-Main}
  543. END PROCEDURE.
  544. /* _UIB-CODE-BLOCK-END */
  545. &ANALYZE-RESUME
  546. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view F-Frame-Win
  547. PROCEDURE local-view :
  548. /*------------------------------------------------------------------------------
  549. Purpose: Override standard ADM method
  550. Notes:
  551. ------------------------------------------------------------------------------*/
  552. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  553. PUBLISH 'GETBONUSLAGER' ( OUTPUT iLager ).
  554. APPLY 'ENTRY' TO F_VonKnr IN FRAME {&FRAME-NAME}.
  555. END PROCEDURE.
  556. /* _UIB-CODE-BLOCK-END */
  557. &ANALYZE-RESUME
  558. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records F-Frame-Win _ADM-SEND-RECORDS
  559. PROCEDURE send-records :
  560. /*------------------------------------------------------------------------------
  561. Purpose: Send record ROWID's for all tables used by
  562. this file.
  563. Parameters: see template/snd-head.i
  564. ------------------------------------------------------------------------------*/
  565. /* SEND-RECORDS does nothing because there are no External
  566. Tables specified for this SmartFrame, and there are no
  567. tables specified in any contained Browse, Query, or Frame. */
  568. END PROCEDURE.
  569. /* _UIB-CODE-BLOCK-END */
  570. &ANALYZE-RESUME
  571. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed F-Frame-Win
  572. PROCEDURE state-changed :
  573. /* -----------------------------------------------------------
  574. Purpose:
  575. Parameters: <none>
  576. Notes:
  577. -------------------------------------------------------------*/
  578. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  579. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  580. END PROCEDURE.
  581. /* _UIB-CODE-BLOCK-END */
  582. &ANALYZE-RESUME