g-mahnwork.w 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME gMahnwork
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gMahnwork
  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. DEF VAR MaxPage AS INT NO-UNDO.
  28. DEF VAR AktSeite AS INT NO-UNDO.
  29. DEF VAR FMutFlag AS LOG NO-UNDO.
  30. DEF VAR Firma AS CHAR NO-UNDO.
  31. DEF VAR AdFirma AS CHAR NO-UNDO.
  32. /* _UIB-CODE-BLOCK-END */
  33. &ANALYZE-RESUME
  34. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  35. /* ******************** Preprocessor Definitions ******************** */
  36. &Scoped-define PROCEDURE-TYPE SmartDialog
  37. &Scoped-define DB-AWARE no
  38. &Scoped-define ADM-CONTAINER DIALOG-BOX
  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 gMahnwork
  42. /* Standard List Definitions */
  43. &Scoped-Define ENABLED-OBJECTS RECT-1 F_VonKnr F_BisKnr F_VonDatum ~
  44. F_BisDatum CB_Kundengruppe CB_Vertreter CB_Mahnstufe F_Toleranz T_Faellig ~
  45. T_Gut T_Positiv T_Hoechste Btn_OK Btn_Cancel
  46. &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_VonDatum F_BisDatum ~
  47. CB_Kundengruppe CB_Vertreter CB_Mahnstufe F_Toleranz T_Faellig T_Gut ~
  48. T_Positiv T_Hoechste
  49. /* Custom List Definitions */
  50. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  51. &Scoped-define List-6 F_VonKnr F_BisKnr F_VonDatum F_BisDatum F_Toleranz ~
  52. T_Faellig T_Gut T_Positiv T_Hoechste
  53. /* _UIB-PREPROCESSOR-BLOCK-END */
  54. &ANALYZE-RESUME
  55. /* *********************** Control Definitions ********************** */
  56. /* Define a dialog box */
  57. /* Definitions of the field level widgets */
  58. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  59. LABEL "abbrechen"
  60. SIZE 14 BY 1.
  61. DEFINE BUTTON Btn_OK AUTO-GO
  62. LABEL "erstellen"
  63. SIZE 14 BY 1.
  64. DEFINE VARIABLE CB_Kundengruppe AS CHARACTER FORMAT "X(256)":U
  65. LABEL "Kundengruppe"
  66. VIEW-AS COMBO-BOX INNER-LINES 5
  67. LIST-ITEM-PAIRS "Item 1","Item 1"
  68. DROP-DOWN-LIST
  69. SIZE 35 BY 1
  70. BGCOLOR 15 NO-UNDO.
  71. DEFINE VARIABLE CB_Mahnstufe AS CHARACTER FORMAT "X(256)":U
  72. LABEL "Mahnstufe"
  73. VIEW-AS COMBO-BOX INNER-LINES 5
  74. LIST-ITEM-PAIRS "Kontoauszug","0",
  75. "1. Mahnung","1",
  76. "2. Mahnung","2",
  77. "3. Mahnung","3",
  78. "Inkasso","4",
  79. "Alle Stufen","5"
  80. DROP-DOWN-LIST
  81. SIZE 35 BY 1
  82. BGCOLOR 15 NO-UNDO.
  83. DEFINE VARIABLE CB_Vertreter AS CHARACTER FORMAT "X(256)":U
  84. LABEL "Vertreter"
  85. VIEW-AS COMBO-BOX INNER-LINES 5
  86. LIST-ITEM-PAIRS "Item 1","Item 1"
  87. DROP-DOWN-LIST
  88. SIZE 35 BY 1
  89. BGCOLOR 15 NO-UNDO.
  90. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
  91. LABEL "-"
  92. VIEW-AS FILL-IN NATIVE
  93. SIZE 16 BY 1
  94. BGCOLOR 15 NO-UNDO.
  95. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
  96. LABEL "-"
  97. VIEW-AS FILL-IN NATIVE
  98. SIZE 11 BY 1
  99. BGCOLOR 15 NO-UNDO.
  100. DEFINE VARIABLE F_Status AS CHARACTER FORMAT "X(256)":U
  101. VIEW-AS FILL-IN NATIVE
  102. SIZE 70 BY 1
  103. BGCOLOR 14 NO-UNDO.
  104. DEFINE VARIABLE F_Toleranz AS INTEGER FORMAT "99":U INITIAL 0
  105. LABEL "Toleranztage auf Fälligkeit"
  106. VIEW-AS FILL-IN NATIVE
  107. SIZE 6 BY 1
  108. BGCOLOR 15 NO-UNDO.
  109. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
  110. LABEL "von - bis Fakturadatum"
  111. VIEW-AS FILL-IN NATIVE
  112. SIZE 16 BY 1
  113. BGCOLOR 15 NO-UNDO.
  114. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
  115. LABEL "von - bis Kundennummer"
  116. VIEW-AS FILL-IN NATIVE
  117. SIZE 11 BY 1
  118. BGCOLOR 15 NO-UNDO.
  119. DEFINE RECTANGLE RECT-1
  120. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  121. SIZE 82 BY 14.76.
  122. DEFINE VARIABLE T_Faellig AS LOGICAL INITIAL NO
  123. LABEL "nur fällige ?"
  124. VIEW-AS TOGGLE-BOX
  125. SIZE 40 BY 1 NO-UNDO.
  126. DEFINE VARIABLE T_Gut AS LOGICAL INITIAL NO
  127. LABEL "Gutschriften auch ?"
  128. VIEW-AS TOGGLE-BOX
  129. SIZE 40 BY 1 NO-UNDO.
  130. DEFINE VARIABLE T_Hoechste AS LOGICAL INITIAL YES
  131. LABEL "alles auf die höchste Mahnstufe"
  132. VIEW-AS TOGGLE-BOX
  133. SIZE 40 BY 1 NO-UNDO.
  134. DEFINE VARIABLE T_Positiv AS LOGICAL INITIAL YES
  135. LABEL "nur mit Gesamtsaldo grösser Null?"
  136. VIEW-AS TOGGLE-BOX
  137. SIZE 40 BY 1 NO-UNDO.
  138. /* ************************ Frame Definitions *********************** */
  139. DEFINE FRAME gMahnwork
  140. F_VonKnr AT ROW 2 COL 33 COLON-ALIGNED
  141. F_BisKnr AT ROW 2 COL 52 COLON-ALIGNED
  142. F_VonDatum AT ROW 3 COL 33 COLON-ALIGNED
  143. F_BisDatum AT ROW 3 COL 52 COLON-ALIGNED
  144. CB_Kundengruppe AT ROW 4 COL 33 COLON-ALIGNED
  145. CB_Vertreter AT ROW 5 COL 33 COLON-ALIGNED WIDGET-ID 6
  146. CB_Mahnstufe AT ROW 6 COL 33 COLON-ALIGNED WIDGET-ID 12
  147. F_Toleranz AT ROW 7 COL 33 COLON-ALIGNED WIDGET-ID 8
  148. T_Faellig AT ROW 8 COL 35
  149. T_Gut AT ROW 9 COL 35
  150. T_Positiv AT ROW 10 COL 35 WIDGET-ID 2
  151. T_Hoechste AT ROW 11 COL 35 WIDGET-ID 10
  152. Btn_OK AT ROW 12.52 COL 14.8
  153. Btn_Cancel AT ROW 12.52 COL 56
  154. F_Status AT ROW 14 COL 7 COLON-ALIGNED NO-LABEL NO-TAB-STOP
  155. RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 4
  156. SPACE(0.99) SKIP(0.23)
  157. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  158. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  159. TITLE "erstellen Mahnwork"
  160. DEFAULT-BUTTON Btn_OK CANCEL-BUTTON Btn_Cancel.
  161. /* *********************** Procedure Settings ************************ */
  162. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  163. /* Settings for THIS-PROCEDURE
  164. Type: SmartDialog
  165. Allow: Basic,Browse,DB-Fields,Query,Smart
  166. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  167. Design Page: 1
  168. Other Settings: COMPILE
  169. */
  170. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  171. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gMahnwork
  172. /* ************************* Included-Libraries *********************** */
  173. {src/adm2/containr.i}
  174. /* _UIB-CODE-BLOCK-END */
  175. &ANALYZE-RESUME
  176. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  177. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  178. /* SETTINGS FOR DIALOG-BOX gMahnwork
  179. FRAME-NAME */
  180. ASSIGN
  181. FRAME gMahnwork:SCROLLABLE = FALSE
  182. FRAME gMahnwork:HIDDEN = TRUE.
  183. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gMahnwork
  184. 6 */
  185. /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gMahnwork
  186. 6 */
  187. /* SETTINGS FOR FILL-IN F_Status IN FRAME gMahnwork
  188. NO-DISPLAY NO-ENABLE */
  189. ASSIGN
  190. F_Status:HIDDEN IN FRAME gMahnwork = TRUE
  191. F_Status:READ-ONLY IN FRAME gMahnwork = TRUE.
  192. /* SETTINGS FOR FILL-IN F_Toleranz IN FRAME gMahnwork
  193. 6 */
  194. /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gMahnwork
  195. 6 */
  196. /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gMahnwork
  197. 6 */
  198. /* SETTINGS FOR TOGGLE-BOX T_Faellig IN FRAME gMahnwork
  199. 6 */
  200. /* SETTINGS FOR TOGGLE-BOX T_Gut IN FRAME gMahnwork
  201. 6 */
  202. /* SETTINGS FOR TOGGLE-BOX T_Hoechste IN FRAME gMahnwork
  203. 6 */
  204. /* SETTINGS FOR TOGGLE-BOX T_Positiv IN FRAME gMahnwork
  205. 6 */
  206. /* _RUN-TIME-ATTRIBUTES-END */
  207. &ANALYZE-RESUME
  208. /* Setting information for Queries and Browse Widgets fields */
  209. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gMahnwork
  210. /* Query rebuild information for DIALOG-BOX gMahnwork
  211. _Options = "SHARE-LOCK"
  212. _Query is NOT OPENED
  213. */ /* DIALOG-BOX gMahnwork */
  214. &ANALYZE-RESUME
  215. /* ************************ Control Triggers ************************ */
  216. &Scoped-define SELF-NAME gMahnwork
  217. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gMahnwork gMahnwork
  218. ON END-ERROR OF FRAME gMahnwork /* erstellen Mahnwork */
  219. DO:
  220. RUN ENDE.
  221. RETURN NO-APPLY.
  222. END.
  223. /* _UIB-CODE-BLOCK-END */
  224. &ANALYZE-RESUME
  225. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gMahnwork gMahnwork
  226. ON GO OF FRAME gMahnwork /* erstellen Mahnwork */
  227. DO:
  228. /*
  229. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  230. */
  231. END.
  232. /* _UIB-CODE-BLOCK-END */
  233. &ANALYZE-RESUME
  234. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gMahnwork gMahnwork
  235. ON WINDOW-CLOSE OF FRAME gMahnwork /* erstellen Mahnwork */
  236. DO:
  237. RUN ENDE.
  238. RETURN NO-APPLY.
  239. END.
  240. /* _UIB-CODE-BLOCK-END */
  241. &ANALYZE-RESUME
  242. &Scoped-define SELF-NAME Btn_Cancel
  243. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gMahnwork
  244. ON CHOOSE OF Btn_Cancel IN FRAME gMahnwork /* abbrechen */
  245. DO:
  246. RUN ENDE.
  247. RETURN NO-APPLY.
  248. END.
  249. /* _UIB-CODE-BLOCK-END */
  250. &ANALYZE-RESUME
  251. &Scoped-define SELF-NAME Btn_OK
  252. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gMahnwork
  253. ON CHOOSE OF Btn_OK IN FRAME gMahnwork /* erstellen */
  254. DO:
  255. RUN CREATE_WORKFILE.
  256. RUN ENDE.
  257. RETURN NO-APPLY.
  258. END.
  259. /* _UIB-CODE-BLOCK-END */
  260. &ANALYZE-RESUME
  261. &UNDEFINE SELF-NAME
  262. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gMahnwork
  263. /* *************************** Main Block *************************** */
  264. MaxPage = 1.
  265. AktSeite = 1.
  266. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  267. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  268. SESSION:DATA-ENTRY-RETURN = TRUE.
  269. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  270. /* TRIGGERS ------------------------------------------------------ */
  271. /* ------------------------------------------------------------------ */
  272. {src/adm2/dialogmn.i}
  273. /* _UIB-CODE-BLOCK-END */
  274. &ANALYZE-RESUME
  275. /* ********************** Internal Procedures *********************** */
  276. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gMahnwork _ADM-CREATE-OBJECTS
  277. PROCEDURE adm-create-objects :
  278. /*------------------------------------------------------------------------------
  279. Purpose: Create handles for all SmartObjects used in this procedure.
  280. After SmartObjects are initialized, then SmartLinks are added.
  281. Parameters: <none>
  282. ------------------------------------------------------------------------------*/
  283. END PROCEDURE.
  284. /* _UIB-CODE-BLOCK-END */
  285. &ANALYZE-RESUME
  286. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_WORKFILE gMahnwork
  287. PROCEDURE CREATE_WORKFILE :
  288. /*------------------------------------------------------------------------------
  289. Purpose:
  290. Parameters: <none>
  291. Notes:
  292. ------------------------------------------------------------------------------*/
  293. DEF VAR Ku_Grp AS INT NO-UNDO.
  294. DEF VAR iVertreter AS INT NO-UNDO.
  295. DEF VAR iStufe AS INT NO-UNDO.
  296. DEF VAR i1 AS INT NO-UNDO.
  297. DEF VAR i2 AS INT NO-UNDO.
  298. DEF VAR cString AS CHAR NO-UNDO.
  299. DEF VAR dFaellig AS DATE NO-UNDO.
  300. DEFINE VARIABLE nTotSaldo AS DECIMAL NO-UNDO.
  301. DEF BUFFER bMahnung FOR Mahnung.
  302. DO WITH FRAME {&FRAME-NAME}:
  303. Btn_OK :SENSITIVE = FALSE.
  304. Btn_Cancel:SENSITIVE = FALSE.
  305. ASSIGN {&List-6}.
  306. Ku_Grp = INTEGER(CB_Kundengruppe:SCREEN-VALUE) NO-ERROR.
  307. iVertreter = INTEGER(CB_Vertreter :SCREEN-VALUE) NO-ERROR.
  308. iStufe = INTEGER(CB_Mahnstufe :SCREEN-VALUE) NO-ERROR.
  309. IF F_VonDatum = ? THEN F_VonDatum = 01/01/0001.
  310. IF F_BisDatum = ? THEN F_BisDatum = TODAY.
  311. IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_VonDatum.
  312. IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999.
  313. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr.
  314. DISPLAY {&List-6}.
  315. cString = F_VonKnr :SCREEN-VALUE + '£'
  316. + F_BisKnr :SCREEN-VALUE + '£'
  317. + F_VonDatum :SCREEN-VALUE + '£'
  318. + F_BisDatum :SCREEN-VALUE + '£'
  319. + CB_Kundengruppe:SCREEN-VALUE + '£'
  320. + T_Faellig :SCREEN-VALUE + '£'
  321. + T_Gut :SCREEN-VALUE + '£'
  322. + CB_Vertreter :SCREEN-VALUE + '£'
  323. + T_Hoechste :SCREEN-VALUE + '£'
  324. + CB_Mahnstufe :SCREEN-VALUE + '£'
  325. .
  326. PUT-KEY-VALUE SECTION 'Mahnung' KEY 'WorkParameter' VALUE cString.
  327. END.
  328. DO WITH FRAME {&FRAME-NAME}:
  329. F_Status:HIDDEN = FALSE.
  330. F_Status:SENSITIVE = TRUE.
  331. SESSION:IMMEDIATE-DISPLAY = TRUE.
  332. F_Status:SCREEN-VALUE = 'altes Mahnwork wird gelöscht ... '.
  333. END.
  334. FOR EACH Mahnung:
  335. DELETE Mahnung.
  336. END.
  337. DO WITH FRAME {&FRAME-NAME}:
  338. F_Status:SCREEN-VALUE = 'Mahnwork wird erstellt ... '.
  339. END.
  340. FOR EACH Debop NO-LOCK USE-INDEX Debop-k1
  341. WHERE Debop.Firma = Firma
  342. AND Debop.Knr >= F_VonKnr
  343. AND Debop.Knr <= F_BisKnr
  344. AND Debop.FakDat >= F_VonDatum
  345. AND Debop.FakDat <= F_BisDatum
  346. AND Debop.Saldo <> 0 ,
  347. FIRST Kondi NO-LOCK
  348. WHERE Kondi.Sprcd = 1
  349. AND Kondi.Kond = Debop.Kond
  350. BREAK BY Debop.Knr:
  351. IF FIRST-OF (Debop.Knr) THEN nTotSaldo = 0.
  352. IF Kondi.Mahnen > 0 THEN dFaellig = Debop.Fakdat + Kondi.Mahnen.
  353. ELSE dFaellig = Debop.Faellig + F_Toleranz.
  354. IF T_Faellig THEN DO:
  355. IF dFaellig > TODAY THEN NEXT.
  356. END.
  357. IF NOT T_Gut THEN DO:
  358. IF Debop.Saldo < 0 THEN NEXT.
  359. END.
  360. FIND Debst NO-LOCK USE-INDEX Debst-k1
  361. WHERE Debst.Firma = Debop.Firma
  362. AND Debst.Knr = Debop.Knr NO-ERROR.
  363. IF NOT AVAILABLE Debst THEN NEXT.
  364. IF Debst.Mahn = 1 THEN NEXT.
  365. IF Ku_Grp <> 999999 AND
  366. Debst.Ku_Grp <> Ku_Grp THEN NEXT.
  367. IF iVertreter <> 999999 AND
  368. Debst.Vertr <> iVertreter THEN NEXT.
  369. FIND Passant USE-INDEX Passant-k1 NO-LOCK
  370. WHERE Passant.Firma = Debop.Firma
  371. AND Passant.Knr = Debop.Knr
  372. AND Passant.Faknr = Debop.Faknr NO-ERROR.
  373. CREATE Mahnung.
  374. ASSIGN Mahnung.Firma = Debop.Firma
  375. Mahnung.Knr = Debop.Knr
  376. Mahnung.Faknr = Debop.Faknr
  377. Mahnung.Fakdat = Debop.Fakdat
  378. Mahnung.Faellig = Debop.Faellig
  379. Mahnung.MahStu = Debop.MahStu
  380. Mahnung.MahDat = Debop.MahDat
  381. Mahnung.MahAnz = Debop.MahAnz
  382. Mahnung.Fakbetr = Debop.Fakbetr
  383. Mahnung.Zahbetr = Debop.Zahbetr
  384. Mahnung.Skonto = Debop.Skonto
  385. Mahnung.ZahDat = Debop.ZahDat
  386. Mahnung.Saldo = Debop.Saldo.
  387. IF AVAILABLE Passant THEN Mahnung.Passant = TRUE .
  388. ELSE Mahnung.Passant = FALSE.
  389. nTotSaldo = nTotSaldo + Debop.Saldo.
  390. IF NOT LAST-OF ( Debop.Knr ) THEN NEXT.
  391. IF Mahnung.Passant THEN NEXT.
  392. IF NOT T_Positiv THEN NEXT.
  393. IF nTotSaldo > 0 THEN NEXT.
  394. FOR EACH bMahnung /* Gesamtbetrag der zu Mahnenden Posten ist < 0 */
  395. WHERE bMahnung.Firma = Debop.Firma
  396. AND bMahnung.Knr = Debop.Knr:
  397. DELETE bMahnung.
  398. END.
  399. END.
  400. DO WITH FRAME {&FRAME-NAME}:
  401. F_Status:SCREEN-VALUE = 'Mahnstufen werden zugeteilt ... '.
  402. END.
  403. /* KUNDEN */
  404. FOR EACH Mahnung NO-LOCK USE-INDEX Mahnung-k1
  405. WHERE Mahnung.Firma = Firma
  406. AND Mahnung.Passant = FALSE
  407. AND Mahnung.Saldo > 0
  408. BREAK BY Mahnung.Knr
  409. BY Mahnung.Faellig :
  410. IF T_Hoechste AND
  411. NOT FIRST-OF ( Mahnung.Knr ) THEN NEXT.
  412. i2 = TODAY - Mahnung.Faellig.
  413. i1 = 0.
  414. IF iStufe > 0 THEN DO:
  415. IF i2 > 30 THEN i1 = 1.
  416. IF i2 > 60 THEN i1 = 2.
  417. IF i2 > 90 THEN i1 = 3.
  418. IF i2 > 120 THEN i1 = 4.
  419. END.
  420. FOR EACH bMahnung
  421. WHERE bMahnung.Firma = Mahnung.Firma
  422. AND bMahnung.Knr = Mahnung.Knr
  423. AND ((T_Hoechste)
  424. OR (NOT T_Hoechste AND bMahnung.Faknr = Mahnung.Faknr))
  425. :
  426. bMahnung.MahStu = i1.
  427. END.
  428. RELEASE bMahnung.
  429. END.
  430. /* PASSANTEN */
  431. FOR EACH Mahnung USE-INDEX Mahnung-k1
  432. WHERE Mahnung.Firma = Firma
  433. AND Mahnung.Passant = TRUE
  434. AND Mahnung.Saldo > 0
  435. BREAK BY Mahnung.Knr
  436. BY Mahnung.Faknr :
  437. IF NOT FIRST-OF ( Mahnung.Faknr ) THEN NEXT.
  438. i2 = TODAY - Mahnung.Faellig.
  439. i1 = 0.
  440. IF iStufe > 0 THEN DO:
  441. IF i2 > 30 THEN i1 = 1.
  442. IF i2 > 60 THEN i1 = 2.
  443. IF i2 > 90 THEN i1 = 3.
  444. IF i2 > 120 THEN i1 = 4.
  445. END.
  446. FOR EACH bMahnung
  447. WHERE bMahnung.Firma = Mahnung.Firma
  448. AND bMahnung.Knr = Mahnung.Knr
  449. AND bMahnung.Faknr = Mahnung.Faknr:
  450. bMahnung.MahStu = i1.
  451. END.
  452. RELEASE bMahnung.
  453. END.
  454. IF iStufe < 5 THEN DO:
  455. FOR EACH bMahnung
  456. WHERE bMahnung.Firma = Mahnung.Firma
  457. AND bMahnung.MahStu <> iStufe:
  458. DELETE bMahnung.
  459. END.
  460. END.
  461. DO WITH FRAME {&FRAME-NAME}:
  462. F_Status:SENSITIVE = FALSE.
  463. F_Status:HIDDEN = TRUE .
  464. SESSION:IMMEDIATE-DISPLAY = FALSE.
  465. F_Status:SCREEN-VALUE = ''.
  466. END.
  467. END PROCEDURE.
  468. /* _UIB-CODE-BLOCK-END */
  469. &ANALYZE-RESUME
  470. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gMahnwork _DEFAULT-DISABLE
  471. PROCEDURE disable_UI :
  472. /*------------------------------------------------------------------------------
  473. Purpose: DISABLE the User Interface
  474. Parameters: <none>
  475. Notes: Here we clean-up the user-interface by deleting
  476. dynamic widgets we have created and/or hide
  477. frames. This procedure is usually called when
  478. we are ready to "clean-up" after running.
  479. ------------------------------------------------------------------------------*/
  480. /* Hide all frames. */
  481. HIDE FRAME gMahnwork.
  482. END PROCEDURE.
  483. /* _UIB-CODE-BLOCK-END */
  484. &ANALYZE-RESUME
  485. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gMahnwork
  486. PROCEDURE enableObject :
  487. /*------------------------------------------------------------------------------
  488. Purpose: Super Override
  489. Parameters:
  490. Notes:
  491. ------------------------------------------------------------------------------*/
  492. DO WITH FRAME {&FRAME-NAME}:
  493. RUN COMBO_KUNDENGRP ( INPUT CB_Kundengruppe:HANDLE ) NO-ERROR.
  494. RUN COMBO_VERTRETER ( INPUT CB_Vertreter :HANDLE ) NO-ERROR.
  495. DEF VAR cString AS CHAR NO-UNDO.
  496. DEF VAR i1 AS INT NO-UNDO.
  497. cString = 'Alle Kundengruppen;999999;' + CB_Kundengruppe:LIST-ITEM-PAIRS.
  498. CB_Kundengruppe:LIST-ITEM-PAIRS = cString.
  499. cString = 'Alle Vertreter;999999;' + CB_Vertreter:LIST-ITEM-PAIRS.
  500. CB_Vertreter :LIST-ITEM-PAIRS = cString.
  501. GET-KEY-VALUE SECTION 'Mahnung' KEY 'WorkParameter' VALUE cString.
  502. IF cString = ? OR
  503. cString = '' THEN cString = '£££££££££££'.
  504. END.
  505. RUN SUPER.
  506. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  507. DO WITH FRAME {&FRAME-NAME}:
  508. DO i1 = 1 TO NUM-ENTRIES(cString, '£'):
  509. CASE i1:
  510. WHEN 1 THEN F_VonKnr :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  511. WHEN 2 THEN F_BisKnr :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  512. WHEN 3 THEN F_VonDatum :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  513. WHEN 4 THEN F_BisDatum :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  514. WHEN 5 THEN CB_Kundengruppe:SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  515. WHEN 6 THEN T_Faellig :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  516. WHEN 7 THEN T_Gut :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  517. WHEN 8 THEN CB_Vertreter :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  518. WHEN 9 THEN T_Hoechste :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  519. WHEN 10 THEN CB_Mahnstufe :SCREEN-VALUE = ENTRY(i1, cString, '£') NO-ERROR.
  520. END CASE.
  521. END.
  522. END.
  523. END PROCEDURE.
  524. /* _UIB-CODE-BLOCK-END */
  525. &ANALYZE-RESUME
  526. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gMahnwork _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 CB_Kundengruppe CB_Vertreter
  538. CB_Mahnstufe F_Toleranz T_Faellig T_Gut T_Positiv T_Hoechste
  539. WITH FRAME gMahnwork.
  540. ENABLE RECT-1 F_VonKnr F_BisKnr F_VonDatum F_BisDatum CB_Kundengruppe
  541. CB_Vertreter CB_Mahnstufe F_Toleranz T_Faellig T_Gut T_Positiv
  542. T_Hoechste Btn_OK Btn_Cancel
  543. WITH FRAME gMahnwork.
  544. VIEW FRAME gMahnwork.
  545. {&OPEN-BROWSERS-IN-QUERY-gMahnwork}
  546. END PROCEDURE.
  547. /* _UIB-CODE-BLOCK-END */
  548. &ANALYZE-RESUME
  549. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gMahnwork
  550. PROCEDURE ENDE :
  551. /*------------------------------------------------------------------------------
  552. Purpose:
  553. Parameters: <none>
  554. Notes:
  555. ------------------------------------------------------------------------------*/
  556. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  557. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  558. RETURN NO-APPLY.
  559. END PROCEDURE.
  560. /* _UIB-CODE-BLOCK-END */
  561. &ANALYZE-RESUME
  562. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gMahnwork
  563. PROCEDURE exitObject :
  564. /*------------------------------------------------------------------------------
  565. Purpose: Super Override
  566. Parameters:
  567. Notes:
  568. ------------------------------------------------------------------------------*/
  569. RUN ENDE.
  570. RETURN NO-APPLY.
  571. END PROCEDURE.
  572. /* _UIB-CODE-BLOCK-END */
  573. &ANALYZE-RESUME