w-skontoabrechnung.w 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME wSkontoabrechnung
  4. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wSkontoabrechnung
  5. /*------------------------------------------------------------------------
  6. File:
  7. Description: from cntnrwin.w - ADM SmartWindow Template
  8. Input Parameters:
  9. <none>
  10. Output Parameters:
  11. <none>
  12. History: New V9 Version - January 15, 1998
  13. ------------------------------------------------------------------------*/
  14. /* This .W file was created with the Progress AB. */
  15. /*----------------------------------------------------------------------*/
  16. /* Create an unnamed pool to store all the widgets created
  17. by this procedure. This is a good default which assures
  18. that this procedure's triggers and internal procedures
  19. will execute in this procedure's storage, and that proper
  20. cleanup will occur on deletion of the procedure. */
  21. CREATE WIDGET-POOL.
  22. /* *************************** Definitions ************************** */
  23. /* Parameters Definitions --- */
  24. /* Local Variable Definitions --- */
  25. DEF VAR MaxPage AS INT NO-UNDO.
  26. DEF VAR AktSeite AS INT NO-UNDO.
  27. DEF VAR Fenster AS HANDLE NO-UNDO.
  28. DEF VAR hToolbar AS HANDLE NO-UNDO.
  29. DEF VAR FMutFlag AS LOG NO-UNDO INIT FALSE.
  30. DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
  31. DEF VAR Firma AS CHAR NO-UNDO.
  32. DEF VAR hData AS HANDLE NO-UNDO.
  33. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  34. DEF VAR VBuchen AS DEC EXTENT 10 NO-UNDO.
  35. DEF VAR VAnsatz AS DEC EXTENT 10 NO-UNDO.
  36. DEF TEMP-TABLE TWork FIELD MWST% AS DEC
  37. FIELD Betrag AS DEC
  38. FIELD Skonto AS DEC
  39. FIELD Abzug AS DEC
  40. INDEX TWork-k1 IS UNIQUE PRIMARY
  41. MWST%.
  42. /* _UIB-CODE-BLOCK-END */
  43. &ANALYZE-RESUME
  44. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  45. /* ******************** Preprocessor Definitions ******************** */
  46. &Scoped-define PROCEDURE-TYPE SmartWindow
  47. &Scoped-define DB-AWARE no
  48. &Scoped-define ADM-CONTAINER WINDOW
  49. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  50. /* Name of first Frame and/or Browse and/or first Query */
  51. &Scoped-define FRAME-NAME fMain
  52. /* Standard List Definitions */
  53. &Scoped-Define ENABLED-OBJECTS R_Status Btn_Loeschen Btn_SelLoesch T_Excel ~
  54. Btn_Start Btn_NeuRech T_Verbuchen
  55. &Scoped-Define DISPLAYED-OBJECTS R_Status T_Excel T_Verbuchen
  56. /* Custom List Definitions */
  57. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  58. &Scoped-define List-6 R_Status T_Excel T_Verbuchen
  59. /* _UIB-PREPROCESSOR-BLOCK-END */
  60. &ANALYZE-RESUME
  61. /* *********************** Control Definitions ********************** */
  62. /* Define the widget handle for the window */
  63. DEFINE VAR wSkontoabrechnung AS WIDGET-HANDLE NO-UNDO.
  64. /* Definitions of handles for SmartObjects */
  65. DEFINE VARIABLE h_b-skontoabrechnung AS HANDLE NO-UNDO.
  66. DEFINE VARIABLE h_d-skontoab AS HANDLE NO-UNDO.
  67. DEFINE VARIABLE h_dyntoolbar AS HANDLE NO-UNDO.
  68. /* Definitions of the field level widgets */
  69. DEFINE BUTTON Btn_Loeschen
  70. LABEL "alle löschen"
  71. SIZE 21 BY 1.14.
  72. DEFINE BUTTON Btn_NeuRech
  73. LABEL "neu rechnen"
  74. SIZE 21 BY 1.14.
  75. DEFINE BUTTON Btn_SelLoesch
  76. LABEL "selektierte loeschen"
  77. SIZE 21 BY 1.14.
  78. DEFINE BUTTON Btn_Start
  79. LABEL "Start"
  80. SIZE 21 BY 1.14.
  81. DEFINE VARIABLE R_Status AS INTEGER
  82. VIEW-AS RADIO-SET VERTICAL
  83. RADIO-BUTTONS
  84. "offene", 0,
  85. "abgerechnete", 1
  86. SIZE 38.4 BY 1.33 NO-UNDO.
  87. DEFINE VARIABLE T_Excel AS LOGICAL INITIAL no
  88. LABEL "Excel"
  89. VIEW-AS TOGGLE-BOX
  90. SIZE 18.4 BY 1 NO-UNDO.
  91. DEFINE VARIABLE T_Verbuchen AS LOGICAL INITIAL no
  92. LABEL "Verbuchen"
  93. VIEW-AS TOGGLE-BOX
  94. SIZE 18.4 BY 1 NO-UNDO.
  95. /* ************************ Frame Definitions *********************** */
  96. DEFINE FRAME fMain
  97. R_Status AT ROW 1.1 COL 55 NO-LABEL
  98. Btn_Loeschen AT ROW 10.52 COL 3
  99. Btn_SelLoesch AT ROW 10.52 COL 27.8
  100. T_Excel AT ROW 10.52 COL 55
  101. Btn_Start AT ROW 10.52 COL 78
  102. Btn_NeuRech AT ROW 10.52 COL 117.4
  103. T_Verbuchen AT ROW 11.52 COL 55
  104. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  105. SIDE-LABELS NO-UNDERLINE THREE-D
  106. AT COL 1 ROW 1
  107. SIZE 140 BY 12.05.
  108. /* *********************** Procedure Settings ************************ */
  109. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  110. /* Settings for THIS-PROCEDURE
  111. Type: SmartWindow
  112. Allow: Basic,Browse,DB-Fields,Query,Smart,Window
  113. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  114. Design Page: 1
  115. Other Settings: COMPILE
  116. */
  117. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  118. /* ************************* Create Window ************************** */
  119. &ANALYZE-SUSPEND _CREATE-WINDOW
  120. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  121. CREATE WINDOW wSkontoabrechnung ASSIGN
  122. HIDDEN = YES
  123. TITLE = "Skontoabrechnung"
  124. HEIGHT = 12.05
  125. WIDTH = 140
  126. MAX-HEIGHT = 48.76
  127. MAX-WIDTH = 256
  128. VIRTUAL-HEIGHT = 48.76
  129. VIRTUAL-WIDTH = 256
  130. RESIZE = no
  131. SCROLL-BARS = no
  132. STATUS-AREA = no
  133. BGCOLOR = ?
  134. FGCOLOR = ?
  135. THREE-D = yes
  136. MESSAGE-AREA = no
  137. SENSITIVE = yes.
  138. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  139. /* END WINDOW DEFINITION */
  140. &ANALYZE-RESUME
  141. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wSkontoabrechnung
  142. /* ************************* Included-Libraries *********************** */
  143. {src/adm2/containr.i}
  144. /* _UIB-CODE-BLOCK-END */
  145. &ANALYZE-RESUME
  146. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  147. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  148. /* SETTINGS FOR WINDOW wSkontoabrechnung
  149. VISIBLE,,RUN-PERSISTENT */
  150. /* SETTINGS FOR FRAME fMain
  151. */
  152. /* SETTINGS FOR RADIO-SET R_Status IN FRAME fMain
  153. 6 */
  154. /* SETTINGS FOR TOGGLE-BOX T_Excel IN FRAME fMain
  155. 6 */
  156. /* SETTINGS FOR TOGGLE-BOX T_Verbuchen IN FRAME fMain
  157. 6 */
  158. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wSkontoabrechnung)
  159. THEN wSkontoabrechnung:HIDDEN = yes.
  160. /* _RUN-TIME-ATTRIBUTES-END */
  161. &ANALYZE-RESUME
  162. /* ************************ Control Triggers ************************ */
  163. &Scoped-define SELF-NAME wSkontoabrechnung
  164. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wSkontoabrechnung wSkontoabrechnung
  165. ON END-ERROR OF wSkontoabrechnung /* Skontoabrechnung */
  166. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  167. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  168. RUN ENDE.
  169. RETURN NO-APPLY.
  170. END.
  171. /* _UIB-CODE-BLOCK-END */
  172. &ANALYZE-RESUME
  173. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wSkontoabrechnung wSkontoabrechnung
  174. ON WINDOW-CLOSE OF wSkontoabrechnung /* Skontoabrechnung */
  175. DO:
  176. RUN ENDE.
  177. RETURN NO-APPLY.
  178. END.
  179. /* _UIB-CODE-BLOCK-END */
  180. &ANALYZE-RESUME
  181. &Scoped-define SELF-NAME Btn_Loeschen
  182. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen wSkontoabrechnung
  183. ON CHOOSE OF Btn_Loeschen IN FRAME fMain /* alle löschen */
  184. DO:
  185. DEF VAR ja AS LOG NO-UNDO INIT FALSE.
  186. ja = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, INPUT 1000 ) NO-ERROR.
  187. IF NOT Ja THEN DO:
  188. APPLY 'U1'.
  189. RETURN NO-APPLY.
  190. END.
  191. FOR EACH SkontoAb USE-INDEX SkontoAb-k1
  192. WHERE SkontoAb.Firma = Firma
  193. AND SkontoAb.Sko_Sta = 0 TRANSACTION:
  194. DELETE SkontoAb.
  195. END.
  196. DYNAMIC-FUNCTION('SETSTATUS':U IN h_d-skontoab, INPUT R_Status ) NO-ERROR.
  197. APPLY 'U1'.
  198. RETURN NO-APPLY.
  199. END.
  200. /* _UIB-CODE-BLOCK-END */
  201. &ANALYZE-RESUME
  202. &Scoped-define SELF-NAME Btn_NeuRech
  203. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_NeuRech wSkontoabrechnung
  204. ON CHOOSE OF Btn_NeuRech IN FRAME fMain /* neu rechnen */
  205. DO:
  206. RUN 'g-skontorechnen.w':U.
  207. DYNAMIC-FUNCTION('SETSTATUS':U IN h_d-skontoab, INPUT R_Status ) NO-ERROR.
  208. APPLY 'U1'.
  209. RETURN NO-APPLY.
  210. END.
  211. /* _UIB-CODE-BLOCK-END */
  212. &ANALYZE-RESUME
  213. &Scoped-define SELF-NAME Btn_SelLoesch
  214. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_SelLoesch wSkontoabrechnung
  215. ON CHOOSE OF Btn_SelLoesch IN FRAME fMain /* selektierte loeschen */
  216. DO:
  217. DEF VAR ja AS LOG NO-UNDO INIT FALSE.
  218. DEF VAR Anz AS INT NO-UNDO.
  219. Anz = DYNAMIC-FUNCTION('GETANZAHLSELEKTIERT':U IN h_b-skontoabrechnung) NO-ERROR.
  220. IF Anz = 0 THEN DO:
  221. APPLY 'U1'.
  222. RETURN NO-APPLY.
  223. END.
  224. ja = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, INPUT 1000 ) NO-ERROR.
  225. IF NOT Ja THEN DO:
  226. APPLY 'U1'.
  227. RETURN NO-APPLY.
  228. END.
  229. RUN LOESCHEN IN h_b-skontoabrechnung.
  230. /*
  231. DYNAMIC-FUNCTION('SETSTATUS':U IN h_d-skontoab, INPUT R_Status ) NO-ERROR.
  232. */
  233. APPLY 'U1'.
  234. RETURN NO-APPLY.
  235. END.
  236. /* _UIB-CODE-BLOCK-END */
  237. &ANALYZE-RESUME
  238. &Scoped-define SELF-NAME Btn_Start
  239. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start wSkontoabrechnung
  240. ON CHOOSE OF Btn_Start IN FRAME fMain /* Start */
  241. DO:
  242. DO WITH FRAME {&FRAME-NAME}:
  243. Btn_Start:SENSITIVE = FALSE.
  244. ASSIGN {&List-6}.
  245. SESSION:SET-WAIT-STATE('GENERAL').
  246. IF T_Excel THEN RUN EXCEL.
  247. SESSION:SET-WAIT-STATE('').
  248. IF T_Verbuchen THEN DO:
  249. RUN VERBUCHEN.
  250. END.
  251. Btn_Start:SENSITIVE = TRUE.
  252. APPLY 'U1'.
  253. RETURN NO-APPLY.
  254. END.
  255. END.
  256. /* _UIB-CODE-BLOCK-END */
  257. &ANALYZE-RESUME
  258. &Scoped-define SELF-NAME R_Status
  259. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL R_Status wSkontoabrechnung
  260. ON VALUE-CHANGED OF R_Status IN FRAME fMain
  261. DO:
  262. R_Status = INTEGER(SELF:SCREEN-VALUE).
  263. DYNAMIC-FUNCTION('SETSTATUS':U IN h_d-skontoab, INPUT R_Status ) NO-ERROR.
  264. IF R_Status = 0 THEN DO:
  265. Btn_Loeschen:SENSITIVE = TRUE.
  266. Btn_SelLoesch:SENSITIVE = TRUE.
  267. Btn_NeuRech:SENSITIVE = TRUE.
  268. Btn_Start:SENSITIVE = TRUE.
  269. Btn_Start:LABEL = 'Start'.
  270. END.
  271. ELSE DO:
  272. Btn_Loeschen:SENSITIVE = FALSE.
  273. Btn_SelLoesch:SENSITIVE = FALSE.
  274. Btn_NeuRech:SENSITIVE = FALSE.
  275. Btn_Start:SENSITIVE = TRUE.
  276. Btn_Start:LABEL = 'Storno'.
  277. END.
  278. END.
  279. /* _UIB-CODE-BLOCK-END */
  280. &ANALYZE-RESUME
  281. &UNDEFINE SELF-NAME
  282. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wSkontoabrechnung
  283. /* *************************** Main Block *************************** */
  284. MaxPage = 3.
  285. AktSeite = 1.
  286. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  287. IF SAktiv THEN DO:
  288. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  289. END.
  290. SESSION:DATA-ENTRY-RETURN = TRUE.
  291. SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
  292. /* TRIGGERS ------------------------------------------------------ */
  293. ON 'ALT-CURSOR-RIGHT':U OF {&WINDOW-NAME} ANYWHERE
  294. DO:
  295. RUN NEXTPAGE.
  296. RETURN NO-APPLY.
  297. END.
  298. ON 'ALT-CURSOR-LEFT':U OF {&WINDOW-NAME} ANYWHERE
  299. DO:
  300. RUN PREVPAGE.
  301. RETURN NO-APPLY.
  302. END.
  303. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  304. DO:
  305. RUN ENTRY_CURSOR.
  306. RETURN NO-APPLY.
  307. END.
  308. ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE
  309. DO:
  310. RUN TOOLBAR IN hToolbar ( INPUT 'Next':U ).
  311. RETURN NO-APPLY.
  312. END.
  313. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE
  314. DO:
  315. RUN TOOLBAR IN hToolbar ( INPUT 'Prev':U ).
  316. RETURN NO-APPLY.
  317. END.
  318. ON 'ALT-RETURN':U OF {&WINDOW-NAME} ANYWHERE
  319. DO:
  320. RUN TOOLBAR IN hToolbar ( INPUT 'UPDATE':U ).
  321. END.
  322. ON 'ALT-INS':U OF {&WINDOW-NAME} ANYWHERE
  323. DO:
  324. RUN TOOLBAR IN hToolbar ( INPUT 'ADD':U ).
  325. END.
  326. ON 'ALT-DEL':U OF {&WINDOW-NAME} ANYWHERE
  327. DO:
  328. RUN TOOLBAR IN hToolbar ( INPUT 'DELETE':U ).
  329. END.
  330. ON 'ALT-R':U OF {&WINDOW-NAME} ANYWHERE
  331. DO:
  332. RUN TOOLBAR IN hToolbar ( INPUT 'RESET':U ).
  333. END.
  334. ON 'F9':U OF {&WINDOW-NAME} ANYWHERE
  335. DO:
  336. RUN TOOLBAR IN hToolbar ( INPUT 'SAVE':U ).
  337. END.
  338. ON 'ALT-S':U OF {&WINDOW-NAME} ANYWHERE
  339. DO:
  340. RUN TOOLBAR IN hToolbar ( INPUT 'SAVE':U ).
  341. END.
  342. ON 'ALT-K':U OF {&WINDOW-NAME} ANYWHERE
  343. DO:
  344. RUN TOOLBAR IN hToolbar ( INPUT 'COPY':U ).
  345. END.
  346. ON 'CTRL-N':U OF {&WINDOW-NAME} ANYWHERE
  347. DO:
  348. DEF VAR sRecid AS RECID NO-UNDO.
  349. DEF VAR sRowid AS ROWID NO-UNDO.
  350. RUN 'g-kundennr.w':U ( OUTPUT sRecid ).
  351. IF sRecid = ? THEN RETURN NO-APPLY.
  352. FIND Adresse NO-LOCK WHERE RECID(Adresse) = sRecid NO-ERROR.
  353. IF NOT AVAILABLE Adresse THEN RETURN NO-APPLY.
  354. DO WITH FRAME {&FRAME-NAME}:
  355. ASSIGN {&List-6}.
  356. END.
  357. FIND FIRST SkontoAb NO-LOCK USE-INDEX SkontoAb-k1
  358. WHERE SkontoAb.Firma = Firma
  359. AND SkontoAb.Sko_Sta = R_Status
  360. AND SkontoAb.Knr = Adresse.Knr NO-ERROR.
  361. IF NOT AVAILABLE SkontoAb THEN RETURN NO-APPLY.
  362. sRowid = ROWID(SkontoAb).
  363. RUN REPOS IN h_d-skontoab ( INPUT sRowid ).
  364. APPLY 'U1'.
  365. RETURN NO-APPLY.
  366. END.
  367. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
  368. DO:
  369. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  370. IF FMutFlag = FALSE THEN DO:
  371. RUN ENDE.
  372. RETURN NO-APPLY.
  373. END.
  374. RUN TOOLBAR IN hToolbar ( INPUT 'CANCEL':U ).
  375. RETURN NO-APPLY.
  376. END.
  377. /* Include custom Main Block code for SmartWindows. */
  378. {src/adm2/windowmn.i}
  379. /* _UIB-CODE-BLOCK-END */
  380. &ANALYZE-RESUME
  381. /* ********************** Internal Procedures *********************** */
  382. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wSkontoabrechnung _ADM-CREATE-OBJECTS
  383. PROCEDURE adm-create-objects :
  384. /*------------------------------------------------------------------------------
  385. Purpose: Create handles for all SmartObjects used in this procedure.
  386. After SmartObjects are initialized, then SmartLinks are added.
  387. Parameters: <none>
  388. ------------------------------------------------------------------------------*/
  389. DEFINE VARIABLE currentPage AS INTEGER NO-UNDO.
  390. ASSIGN currentPage = getCurrentPage().
  391. CASE currentPage:
  392. WHEN 1 THEN DO:
  393. RUN constructObject (
  394. INPUT 'd-skontoab.wDB-AWARE':U ,
  395. INPUT FRAME fMain:HANDLE ,
  396. INPUT 'AppServiceASUsePromptASInfoForeignFieldsRowsToBatch100CheckCurrentChangedyesRebuildOnReposyesServerOperatingModeNONEDestroyStatelessnoDisconnectAppServernoObjectNamed-skontoabUpdateFromSourceno':U ,
  397. OUTPUT h_d-skontoab ).
  398. RUN repositionObject IN h_d-skontoab ( 2.91 , 56.20 ) NO-ERROR.
  399. /* Size in AB: ( 1.86 , 10.80 ) */
  400. RUN constructObject (
  401. INPUT 'b-skontoabrechnung.w':U ,
  402. INPUT FRAME fMain:HANDLE ,
  403. INPUT 'ScrollRemoteyesNumDown0CalcWidthnoMaxWidth80FetchOnReposToEndyesDataSourceNamesUpdateTargetNamesHideOnInitnoDisableOnInitnoObjectLayout':U ,
  404. OUTPUT h_b-skontoabrechnung ).
  405. RUN repositionObject IN h_b-skontoabrechnung ( 2.52 , 1.00 ) NO-ERROR.
  406. RUN resizeObject IN h_b-skontoabrechnung ( 7.62 , 140.00 ) NO-ERROR.
  407. RUN constructObject (
  408. INPUT 'src_dlcv91c/adm2/dyntoolbar.w':U ,
  409. INPUT FRAME fMain:HANDLE ,
  410. INPUT 'FlatButtonsyesMenunoShowBorderyesToolbaryesActionGroupsNavigationSubModulesTableIOTypeUpdateSupportedLinksNavigation-sourceEdgePixels2PanelTypeToolbarNavigationTargetNameHideOnInitnoDisableOnInitnoObjectLayout':U ,
  411. OUTPUT h_dyntoolbar ).
  412. RUN repositionObject IN h_dyntoolbar ( 1.00 , 1.60 ) NO-ERROR.
  413. RUN resizeObject IN h_dyntoolbar ( 1.33 , 46.60 ) NO-ERROR.
  414. /* Links to SmartDataObject h_d-skontoab. */
  415. RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-skontoab ).
  416. /* Links to SmartDataBrowser h_b-skontoabrechnung. */
  417. RUN addLink ( h_d-skontoab , 'Data':U , h_b-skontoabrechnung ).
  418. RUN addLink ( h_b-skontoabrechnung , 'Update':U , h_d-skontoab ).
  419. /* Adjust the tab order of the smart objects. */
  420. END. /* Page 1 */
  421. END CASE.
  422. /* Select a Startup page. */
  423. IF currentPage eq 0
  424. THEN RUN selectPage IN THIS-PROCEDURE ( 1 ).
  425. END PROCEDURE.
  426. /* _UIB-CODE-BLOCK-END */
  427. &ANALYZE-RESUME
  428. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage wSkontoabrechnung
  429. PROCEDURE changePage :
  430. /*------------------------------------------------------------------------------
  431. Purpose: Super Override
  432. Parameters:
  433. Notes:
  434. ------------------------------------------------------------------------------*/
  435. RUN SUPER.
  436. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  437. CASE AktSeite:
  438. WHEN 1 THEN DO:
  439. /*
  440. RUN addLink ( hToolbar , 'TableIO':U , h_v-auftr ).
  441. RUN addLink ( hToolbar , 'Navigation':U , h_d-auftr ).
  442. */
  443. RUN ENTRY_CURSOR.
  444. END.
  445. WHEN 2 THEN DO:
  446. RUN ENTRY_CURSOR.
  447. END.
  448. END CASE.
  449. END PROCEDURE.
  450. /* _UIB-CODE-BLOCK-END */
  451. &ANALYZE-RESUME
  452. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wSkontoabrechnung _DEFAULT-DISABLE
  453. PROCEDURE disable_UI :
  454. /*------------------------------------------------------------------------------
  455. Purpose: DISABLE the User Interface
  456. Parameters: <none>
  457. Notes: Here we clean-up the user-interface by deleting
  458. dynamic widgets we have created and/or hide
  459. frames. This procedure is usually called when
  460. we are ready to "clean-up" after running.
  461. ------------------------------------------------------------------------------*/
  462. /* Delete the WINDOW we created */
  463. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wSkontoabrechnung)
  464. THEN DELETE WIDGET wSkontoabrechnung.
  465. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  466. END PROCEDURE.
  467. /* _UIB-CODE-BLOCK-END */
  468. &ANALYZE-RESUME
  469. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wSkontoabrechnung
  470. PROCEDURE enableObject :
  471. /*------------------------------------------------------------------------------
  472. Purpose: Super Override
  473. Parameters:
  474. Notes:
  475. ------------------------------------------------------------------------------*/
  476. DEF VAR wx AS INT NO-UNDO.
  477. DEF VAR wy AS INT NO-UNDO.
  478. DEF VAR xString AS CHAR NO-UNDO.
  479. GET-KEY-VALUE SECTION 'FensterPositionen'
  480. KEY 'Skontoabrechnung'
  481. VALUE xString.
  482. IF xString = ? THEN xString = '30;30'.
  483. IF xString = '' THEN xString = '30;30'.
  484. wx = INTEGER(ENTRY(1, xString, ';')).
  485. wy = INTEGER(ENTRY(2, xString, ';')).
  486. IF wx < 0 THEN wx = 1.
  487. IF wy < 0 THEN wy = 1.
  488. {&WINDOW-NAME}:X = wx.
  489. {&WINDOW-NAME}:Y = wy.
  490. RUN SUPER.
  491. hToolbar = h_dyntoolbar.
  492. IF SAktiv THEN RUN FENSTER_TITEL ( INPUT {&WINDOW-NAME}:HANDLE ) NO-ERROR.
  493. IF VALID-HANDLE(hToolbar) THEN DO:
  494. RUN SETPROGNAME IN hToolbar ( THIS-PROCEDURE ).
  495. RUN setButtons IN hToolbar ( INPUT 'Initial-TableIo':U ).
  496. END.
  497. END PROCEDURE.
  498. /* _UIB-CODE-BLOCK-END */
  499. &ANALYZE-RESUME
  500. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wSkontoabrechnung _DEFAULT-ENABLE
  501. PROCEDURE enable_UI :
  502. /*------------------------------------------------------------------------------
  503. Purpose: ENABLE the User Interface
  504. Parameters: <none>
  505. Notes: Here we display/view/enable the widgets in the
  506. user-interface. In addition, OPEN all queries
  507. associated with each FRAME and BROWSE.
  508. These statements here are based on the "Other
  509. Settings" section of the widget Property Sheets.
  510. ------------------------------------------------------------------------------*/
  511. DISPLAY R_Status T_Excel T_Verbuchen
  512. WITH FRAME fMain IN WINDOW wSkontoabrechnung.
  513. ENABLE R_Status Btn_Loeschen Btn_SelLoesch T_Excel Btn_Start Btn_NeuRech
  514. T_Verbuchen
  515. WITH FRAME fMain IN WINDOW wSkontoabrechnung.
  516. {&OPEN-BROWSERS-IN-QUERY-fMain}
  517. VIEW wSkontoabrechnung.
  518. END PROCEDURE.
  519. /* _UIB-CODE-BLOCK-END */
  520. &ANALYZE-RESUME
  521. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wSkontoabrechnung
  522. PROCEDURE ENDE :
  523. /*------------------------------------------------------------------------------
  524. Purpose:
  525. Parameters: <none>
  526. Notes:
  527. ------------------------------------------------------------------------------*/
  528. DEF VAR wx AS INT NO-UNDO.
  529. DEF VAR wy AS INT NO-UNDO.
  530. DEF VAR xString AS CHAR NO-UNDO.
  531. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  532. IF AktSeite > 1 THEN DO:
  533. RUN selectPage ( INPUT 1 ).
  534. RETURN NO-APPLY.
  535. END.
  536. IF Saktiv THEN RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  537. wx = {&WINDOW-NAME}:X NO-ERROR.
  538. wy = {&WINDOW-NAME}:Y NO-ERROR.
  539. xString = STRING(wx) + ';' + STRING(wy).
  540. PUT-KEY-VALUE SECTION 'FensterPositionen'
  541. KEY 'Skontoabrechnung'
  542. VALUE xString.
  543. APPLY "CLOSE":U TO THIS-PROCEDURE.
  544. END PROCEDURE.
  545. /* _UIB-CODE-BLOCK-END */
  546. &ANALYZE-RESUME
  547. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR wSkontoabrechnung
  548. PROCEDURE ENTRY_CURSOR :
  549. /*------------------------------------------------------------------------------
  550. Purpose:
  551. Parameters: <none>
  552. Notes:
  553. ------------------------------------------------------------------------------*/
  554. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  555. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U).
  556. CASE AktSeite:
  557. /* WHEN 1 THEN DO: */
  558. /* IF FMutFlag THEN RUN applyEntry IN h_v- ( INPUT ? ). */
  559. /* ELSE RUN applyEntry IN h_b- ( INPUT ? ). */
  560. /* END. */
  561. WHEN 1 THEN RUN applyEntry IN h_b-skontoabrechnung ( INPUT ? ).
  562. /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
  563. /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
  564. /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
  565. /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
  566. /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
  567. /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
  568. END CASE.
  569. RETURN NO-APPLY.
  570. END PROCEDURE.
  571. /* _UIB-CODE-BLOCK-END */
  572. &ANALYZE-RESUME
  573. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL wSkontoabrechnung
  574. PROCEDURE EXCEL :
  575. /*------------------------------------------------------------------------------
  576. Purpose:
  577. Parameters: <none>
  578. Notes:
  579. ------------------------------------------------------------------------------*/
  580. DEF VAR cParameter AS CHAR NO-UNDO.
  581. DEF VAR cDaten AS CHAR NO-UNDO.
  582. DEF VAR cDatei AS CHAR NO-UNDO.
  583. DEF VAR io AS LOG NO-UNDO.
  584. DEF VAR ix AS INT NO-UNDO.
  585. DEF VAR i1 AS INT NO-UNDO.
  586. DEF VAR AnzZeilen AS INT NO-UNDO.
  587. DEF VAR Zelle AS CHAR NO-UNDO.
  588. DEF VAR VTotal AS DEC EXTENT 10 NO-UNDO.
  589. DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
  590. DEF VAR Firma AS CHAR NO-UNDO.
  591. DEF VAR AdFirma AS CHAR NO-UNDO.
  592. DEF VAR Knr AS INT NO-UNDO.
  593. DEF VAR Sko_Sta AS INT NO-UNDO.
  594. DEF VAR VonDatum AS DATE NO-UNDO.
  595. Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR.
  596. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  597. DO WITH FRAME {&FRAME-NAME}:
  598. cParameter = 'Skonto.xls' + CHR(01)
  599. + 'SkontoVorlage.xls' + CHR(01)
  600. + ''.
  601. RUN CREATEDATEI ( INPUT cParameter ).
  602. cDatei = RETURN-VALUE.
  603. cDaten = SESSION:TEMP-DIR + 'Skonto.txt'.
  604. RUN GETSKONTODATEN IN h_b-skontoabrechnung.
  605. IF RETURN-VALUE = 'ERROR' THEN RETURN.
  606. Sko_Sta = INTEGER(ENTRY(2, RETURN-VALUE, CHR(01))).
  607. Knr = INTEGER(ENTRY(3, RETURN-VALUE, CHR(01))).
  608. VonDatum = DATE (ENTRY(4, RETURN-VALUE, CHR(01))).
  609. FIND Adresse USE-INDEX Adresse-k1
  610. WHERE Adresse.Firma = AdFirma
  611. AND Adresse.Knr = Knr NO-LOCK NO-ERROR.
  612. IF NOT AVAILABLE Adresse THEN RETURN.
  613. FIND Steuer USE-INDEX Steuer-k1
  614. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  615. FIND FIRST SkontoAb USE-INDEX SkontoAb-k1
  616. WHERE SkontoAb.Firma = Firma
  617. AND SkontoAb.Sko_Sta = Sko_Sta
  618. AND SkontoAb.Knr = Knr
  619. AND SkontoAb.VonDatum = VonDatum NO-LOCK NO-ERROR.
  620. IF NOT AVAILABLE SkontoAb THEN RETURN.
  621. OUTPUT TO VALUE(cDaten).
  622. DO ix = 1 TO 12:
  623. CASE ix:
  624. WHEN 1 THEN PUT CONTROL Steuer.Firma1.
  625. WHEN 2 THEN PUT CONTROL Steuer.Firma2.
  626. WHEN 3 THEN PUT CONTROL Steuer.Strasse.
  627. WHEN 4 THEN PUT CONTROL Steuer.Ort.
  628. END CASE.
  629. PUT CONTROL '££££££' Adresse.Anschrift[ix] CHR(10).
  630. END.
  631. PUT CONTROL '£' CHR(10)
  632. 'Skonto-Abrechnung' CHR(10)
  633. '£' CHR(10).
  634. PUT CONTROL 'MWSt-Nr.: '
  635. Steuer.MWST_Nr '££££££'
  636. 'Kunden-Nr.: '
  637. STRING(Adresse.Knr,'999999') CHR(10)
  638. Steuer.Ort
  639. ', '
  640. STRING(TODAY,'99.99.9999') '££££££'
  641. 'Zeitraum : '
  642. STRING(SkontoAb.VonDatum,'99.99.9999')
  643. ' - '
  644. STRING(SkontoAb.BisDatum,'99.99.9999') CHR(10)
  645. '£' CHR(10).
  646. PUT CONTROL '£Faktura£Skonto£Anzahl Tg£Rechnungs£Skonto£Zahlungs'
  647. '£Skonto£Skonto£Skonto' CHR(10)
  648. '£Nummer£berecht.£zu Skonto£Datum£Datum£Datum£berecht'
  649. '£Netto£abgez.' CHR(10)
  650. '£' CHR(10).
  651. FOR EACH TWork:
  652. DELETE TWork.
  653. END.
  654. AnzZeilen = 0.
  655. FOR EACH SkontoAb USE-INDEX SkontoAb-k1
  656. WHERE SkontoAb.Firma = Firma
  657. AND SkontoAb.Sko_Sta = Sko_Sta
  658. AND SkontoAb.Knr = Knr
  659. AND SkontoAb.VonDatum = VonDatum
  660. AND SkontoAb.Netto <> 0 NO-LOCK
  661. BREAK BY SkontoAb.Knr
  662. BY SkontoAb.Faknr :
  663. IF FIRST-OF ( SkontoAb.Faknr ) THEN DO:
  664. ASSIGN VTotal[01] = 0
  665. VTotal[02] = 0
  666. VTotal[03] = 0
  667. VTotal[04] = 0
  668. VTotal[05] = 0.
  669. END.
  670. Rundbetr = SkontoAb.Netto * SkontoAb.Sko_Proz / 100.
  671. VTotal[01] = VTotal[01] + SkontoAb.Netto.
  672. VTotal[03] = VTotal[03] + SkontoAb.Sko_Abzug.
  673. IF SkontoAb.Berechtigt THEN DO:
  674. VTotal[02] = VTotal[02] + Rundbetr.
  675. END.
  676. FIND TWork USE-INDEX TWork-k1
  677. WHERE TWork.MWST% = SkontoAb.MWST-% NO-ERROR.
  678. IF NOT AVAILABLE TWork THEN DO:
  679. CREATE TWork.
  680. ASSIGN TWork.MWST% = SkontoAb.MWST-%.
  681. END.
  682. TWork.Betrag = TWork.Betrag + SkontoAb.Netto.
  683. TWork.Abzug = TWork.Abzug + SkontoAb.Sko_Abzug.
  684. IF SkontoAb.Berechtigt THEN DO:
  685. TWork.Skonto = TWork.Skonto + Rundbetr.
  686. END.
  687. IF NOT LAST-OF ( SkontoAb.Faknr ) THEN NEXT.
  688. PUT CONTROL '£'
  689. STRING(SkontoAb.Faknr ,'999999') '£'
  690. STRING(SkontoAb.Berechtigt ,'J/N') '£'
  691. STRING(SkontoAb.Anz_Tage ,'->>9') '£'
  692. STRING(SkontoAb.Fak_Datum ,'99.99.9999') '£'
  693. STRING(SkontoAb.Sko_Datum ,'99.99.9999') '£'.
  694. IF SkontoAb.Zah_Datum <> ?
  695. THEN PUT CONTROL STRING(SkontoAb.Zah_Datum ,'99.99.9999').
  696. PUT CONTROL '£'
  697. STRING(VTotal[01] ,'->>,>>9.99') '£'.
  698. IF SkontoAb.Berechtig = TRUE
  699. THEN PUT CONTROL STRING(VTotal[02],'->>,>>9.99').
  700. PUT CONTROL '£'.
  701. IF VTotal[03] <> 0 THEN PUT CONTROL STRING(VTotal[03],'->>,>>9.99').
  702. VTotal[07] = VTotal[07] + VTotal[02].
  703. VTotal[08] = VTotal[08] + VTotal[03].
  704. PUT CONTROL CHR(10).
  705. AnzZeilen = AnzZeilen + 1.
  706. END.
  707. PUT CONTROL '£' CHR(10)
  708. 'Total Skonto Netto££££££££'
  709. STRING(VTotal[07],'->>>,>>9.99') '£'
  710. STRING(VTotal[08],'->>>,>>9.99') CHR(10)
  711. '£' CHR(10).
  712. VTotal = 0.
  713. VBuchen = 0.
  714. VAnsatz = 0.
  715. i1 = 0.
  716. FOR EACH TWork
  717. BREAK BY TWork.MWST%:
  718. VTotal[01] = VTotal[01] + TWork.Betrag.
  719. VTotal[02] = VTotal[02] + TWork.Skonto.
  720. VTotal[03] = VTotal[03] + TWork.Abzug.
  721. IF NOT LAST-OF ( TWork.MWST% ) THEN NEXT.
  722. i1 = i1 + 1.
  723. VBuchen[i1] = VTotal[02] - VTotal[03].
  724. VAnsatz[i1] = TWork.MWST%.
  725. PUT CONTROL 'Mehrwertsteuer '
  726. STRING(TWork.MWST%,'>9.99%') '££££££'
  727. STRING(VTotal[02] ,'->>>,>>9.99') '£'
  728. STRING(VTotal[03] ,'->>>,>>9.99') '£'.
  729. Rundbetr = VTotal[02] - VTotal[03].
  730. VTotal[09] = VTotal[09] + Rundbetr.
  731. PUT CONTROL STRING(Rundbetr ,'->>>,>>9.99') '£'.
  732. Rundbetr = Rundbetr * TWork.MWST% / 100.
  733. VTotal[10] = VTotal[10] + Rundbetr.
  734. PUT CONTROL STRING(Rundbetr ,'->>>,>>9.99') CHR(10).
  735. VTotal[01] = 0.
  736. VTotal[02] = 0.
  737. VTotal[03] = 0.
  738. END.
  739. Rundbetr = VTotal[09] + VTotal[10].
  740. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  741. PUT CONTROL CHR(10)
  742. 'Total Skonto/Mehrwertsteuer-Guthaben' '££££££££'
  743. STRING(VTotal[09] ,'->>>,>>9.99') '£'
  744. STRING(VTotal[10] ,'->>>,>>9.99') CHR(10)
  745. 'Skontogutschrift inkl. Mehrwertsteuer' '£££££££££'
  746. STRING(Rundbetr ,"->>>,>>9.99") CHR(10).
  747. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  748. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  749. RUN FEHLER ( INPUT 1035 ).
  750. RETURN NO-APPLY.
  751. END.
  752. RUN OPENEXCEL ( INPUT excelAppl,
  753. INPUT cDatei,
  754. INPUT '',
  755. OUTPUT io ).
  756. IF NOT io THEN DO:
  757. RUN FEHLER ( INPUT 1040 ).
  758. RETURN NO-APPLY.
  759. END.
  760. Zelle = 'A1'.
  761. excelAppl:Range(Zelle):SELECT.
  762. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
  763. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  764. Zelle = 'A1'.
  765. excelAppl:Range(Zelle):SELECT.
  766. excelAppl:Selection:ColumnWidth = 0.3.
  767. Zelle = 'A' + STRING(AnzZeilen + 21 + 2)
  768. + ':J' + STRING(AnzZeilen + 21 + 2).
  769. excelAppl:Range(Zelle):SELECT.
  770. excelAppl:Selection:Font:Bold = TRUE.
  771. Zelle = 'A' + STRING(AnzZeilen + 21 + 7)
  772. + ':J' + STRING(AnzZeilen + 21 + 7).
  773. excelAppl:Range(Zelle):SELECT.
  774. excelAppl:Selection:Font:Bold = TRUE.
  775. Zelle = 'A' + STRING(AnzZeilen + 21 + 8)
  776. + ':J' + STRING(AnzZeilen + 21 + 8).
  777. excelAppl:Range(Zelle):SELECT.
  778. excelAppl:Selection:Font:Bold = TRUE.
  779. Zelle = 'G' + STRING(AnzZeilen + 21 + 2)
  780. + ':J' + STRING(AnzZeilen + 21 + 8).
  781. excelAppl:Range(Zelle):SELECT.
  782. excelAppl:Selection:HorizontalAlignment = -4152.
  783. Zelle = 'A1'.
  784. excelAppl:Range(Zelle):SELECT.
  785. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  786. END.
  787. END PROCEDURE.
  788. /* _UIB-CODE-BLOCK-END */
  789. &ANALYZE-RESUME
  790. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wSkontoabrechnung
  791. PROCEDURE exitObject :
  792. /*------------------------------------------------------------------------------
  793. Purpose: Window-specific override of this procedure which destroys
  794. its contents and itself.
  795. Notes:
  796. ------------------------------------------------------------------------------*/
  797. RUN ENDE.
  798. RETURN NO-APPLY.
  799. END PROCEDURE.
  800. /* _UIB-CODE-BLOCK-END */
  801. &ANALYZE-RESUME
  802. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE wSkontoabrechnung
  803. PROCEDURE NEXTPAGE :
  804. /*------------------------------------------------------------------------------
  805. Purpose:
  806. Parameters: <none>
  807. Notes:
  808. ------------------------------------------------------------------------------*/
  809. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  810. IF AktSeite = MaxPage THEN AktSeite = 1.
  811. ELSE AktSeite = AktSeite + 1.
  812. RUN selectPage ( INPUT AktSeite ).
  813. END PROCEDURE.
  814. /* _UIB-CODE-BLOCK-END */
  815. &ANALYZE-RESUME
  816. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE wSkontoabrechnung
  817. PROCEDURE PREVPAGE :
  818. /*------------------------------------------------------------------------------
  819. Purpose:
  820. Parameters: <none>
  821. Notes:
  822. ------------------------------------------------------------------------------*/
  823. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  824. IF AktSeite = 1 THEN AktSeite = MaxPage.
  825. ELSE AktSeite = AktSeite - 1.
  826. RUN selectPage ( INPUT AktSeite ).
  827. END PROCEDURE.
  828. /* _UIB-CODE-BLOCK-END */
  829. &ANALYZE-RESUME
  830. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wSkontoabrechnung
  831. PROCEDURE selectPage :
  832. /*------------------------------------------------------------------------------
  833. Purpose: Super Override
  834. Parameters:
  835. Notes:
  836. ------------------------------------------------------------------------------*/
  837. DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
  838. DEF VAR FMutFlag AS LOG NO-UNDO.
  839. DEF VAR MutProg AS CHAR NO-UNDO.
  840. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
  841. DO WHILE TRUE:
  842. IF NOT FMutFlag THEN LEAVE.
  843. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
  844. IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
  845. RETURN NO-APPLY.
  846. END.
  847. CASE piPageNum:
  848. END CASE.
  849. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
  850. CASE AktSeite:
  851. WHEN 1 THEN DO:
  852. /* RUN removeLink ( hToolbar , 'TableIO':U , h_v-auftr ). */
  853. /* RUN removeLink ( hToolbar , 'Navigation':U , h_d-auftr ). */
  854. END.
  855. END CASE.
  856. RUN SUPER( INPUT piPageNum).
  857. END PROCEDURE.
  858. /* _UIB-CODE-BLOCK-END */
  859. &ANALYZE-RESUME
  860. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR wSkontoabrechnung
  861. PROCEDURE TOOLBAR :
  862. /*------------------------------------------------------------------------------
  863. Purpose:
  864. Parameters: <none>
  865. Notes:
  866. ------------------------------------------------------------------------------*/
  867. DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO.
  868. IF VALID-HANDLE(hToolbar) THEN RUN TOOLBAR IN hToolbar ( INPUT pcAction ).
  869. END PROCEDURE.
  870. /* _UIB-CODE-BLOCK-END */
  871. &ANALYZE-RESUME
  872. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN wSkontoabrechnung
  873. PROCEDURE VERBUCHEN :
  874. /*------------------------------------------------------------------------------
  875. Purpose:
  876. Parameters: <none>
  877. Notes:
  878. ------------------------------------------------------------------------------*/
  879. DEF VAR Firma AS CHAR NO-UNDO.
  880. DEF VAR AdFirma AS CHAR NO-UNDO.
  881. DEF VAR Knr AS INT NO-UNDO.
  882. DEF VAR Sko_Sta AS INT NO-UNDO.
  883. DEF VAR VonDatum AS DATE NO-UNDO.
  884. DEF VAR VTotal AS DEC EXTENT 10 NO-UNDO.
  885. DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
  886. DEF VAR cParam AS CHAR NO-UNDO.
  887. DEF VAR i1 AS INT NO-UNDO.
  888. DEF VAR iFaktor AS INT NO-UNDO.
  889. DEF VAR fStorno AS LOG NO-UNDO.
  890. Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR.
  891. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  892. RUN GETSKONTODATEN IN h_b-skontoabrechnung.
  893. IF RETURN-VALUE = 'ERROR' THEN RETURN.
  894. Sko_Sta = INTEGER(ENTRY(2, RETURN-VALUE, CHR(01))).
  895. Knr = INTEGER(ENTRY(3, RETURN-VALUE, CHR(01))).
  896. VonDatum = DATE (ENTRY(4, RETURN-VALUE, CHR(01))).
  897. iFaktor = IF Btn_Start:LABEL IN FRAME {&FRAME-NAME} = 'Storno' THEN -1 ELSE 1.
  898. fStorno = IF iFaktor < 0 THEN TRUE ELSE FALSE.
  899. FIND Adresse USE-INDEX Adresse-k1
  900. WHERE Adresse.Firma = AdFirma
  901. AND Adresse.Knr = Knr NO-LOCK NO-ERROR.
  902. IF NOT AVAILABLE Adresse THEN RETURN.
  903. FIND Steuer USE-INDEX Steuer-k1
  904. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  905. FIND FIRST SkontoAb USE-INDEX SkontoAb-k1
  906. WHERE SkontoAb.Firma = Firma
  907. AND SkontoAb.Sko_Sta = Sko_Sta
  908. AND SkontoAb.Knr = Knr
  909. AND SkontoAb.VonDatum = VonDatum NO-LOCK NO-ERROR.
  910. IF NOT AVAILABLE SkontoAb THEN RETURN.
  911. FOR EACH TWork:
  912. DELETE TWork.
  913. END.
  914. FOR EACH SkontoAb USE-INDEX SkontoAb-k1
  915. WHERE SkontoAb.Firma = Firma
  916. AND SkontoAb.Sko_Sta = Sko_Sta
  917. AND SkontoAb.Knr = Knr
  918. AND SkontoAb.VonDatum = VonDatum
  919. AND SkontoAb.Netto <> 0 NO-LOCK:
  920. Rundbetr = SkontoAb.Netto * SkontoAb.Sko_Proz / 100.
  921. FIND TWork USE-INDEX TWork-k1
  922. WHERE TWork.MWST% = SkontoAb.MWST-% NO-ERROR.
  923. IF NOT AVAILABLE TWork THEN DO:
  924. CREATE TWork.
  925. ASSIGN TWork.MWST% = SkontoAb.MWST-%.
  926. END.
  927. TWork.Betrag = TWork.Betrag + SkontoAb.Netto.
  928. TWork.Abzug = TWork.Abzug + SkontoAb.Sko_Abzug.
  929. IF SkontoAb.Berechtigt THEN DO:
  930. TWork.Skonto = TWork.Skonto + Rundbetr.
  931. END.
  932. END.
  933. VTotal = 0.
  934. VBuchen = 0.
  935. VAnsatz = 0.
  936. i1 = 0.
  937. FOR EACH TWork
  938. BREAK BY TWork.MWST%:
  939. VTotal[01] = VTotal[01] + TWork.Betrag.
  940. VTotal[02] = VTotal[02] + TWork.Skonto.
  941. VTotal[03] = VTotal[03] + TWork.Abzug.
  942. IF NOT LAST-OF ( TWork.MWST% ) THEN NEXT.
  943. i1 = i1 + 1.
  944. VBuchen[i1] = (VTotal[02] - VTotal[03]) * iFaktor.
  945. VAnsatz[i1] = TWork.MWST%.
  946. ASSIGN VTotal[01] = 0
  947. VTotal[02] = 0
  948. VTotal[03] = 0
  949. VTotal[04] = 0
  950. VTotal[05] = 0.
  951. END.
  952. cParam = ''.
  953. cParam = STRING(Knr ,'999999') + CHR(01)
  954. + STRING(VonDatum ,'99.99.9999') + CHR(01)
  955. + STRING(VBuchen[01] ,'zzzzzzzz9.99-') + CHR(01)
  956. + STRING(VAnsatz[01] ,'zzzzzzzzz.99-') + CHR(01)
  957. + STRING(VBuchen[02] ,'zzzzzzzz9.99-') + CHR(01)
  958. + STRING(VAnsatz[02] ,'zzzzzzzzz.99-') + CHR(01)
  959. + STRING(VBuchen[03] ,'zzzzzzzz9.99-') + CHR(01)
  960. + STRING(VAnsatz[03] ,'zzzzzzzzz.99-') + CHR(01)
  961. + STRING(VBuchen[04] ,'zzzzzzzz9.99-') + CHR(01)
  962. + STRING(VAnsatz[04] ,'zzzzzzzzz.99-').
  963. RUN 'g-skontobuchen.w':U ( cParam, fStorno ).
  964. FIND FIRST SkontoAb USE-INDEX SkontoAb-k1
  965. WHERE SkontoAb.Firma = Firma
  966. AND SkontoAb.Sko_Sta = Sko_Sta
  967. AND SkontoAb.Knr = Knr
  968. AND SkontoAb.VonDatum = VonDatum NO-LOCK NO-ERROR.
  969. IF AVAILABLE SkontoAb THEN RETURN.
  970. DYNAMIC-FUNCTION('openQuery':U IN h_d-skontoab ) NO-ERROR.
  971. FIND FIRST SkontoAb USE-INDEX SkontoAb-k1
  972. WHERE SkontoAb.Firma = Firma
  973. AND SkontoAb.Sko_Sta = Sko_Sta
  974. AND SkontoAb.Knr > Knr NO-LOCK NO-ERROR.
  975. IF AVAILABLE SkontoAb THEN DO:
  976. RUN REPOS IN h_d-skontoab ( INPUT ROWID(SkontoAb) ).
  977. APPLY 'U1'.
  978. RETURN NO-APPLY.
  979. END.
  980. FIND LAST SkontoAb USE-INDEX SkontoAb-k1
  981. WHERE SkontoAb.Firma = Firma
  982. AND SkontoAb.Sko_Sta = Sko_Sta NO-LOCK NO-ERROR.
  983. IF AVAILABLE SkontoAb THEN DO:
  984. RUN REPOS IN h_d-skontoab ( INPUT ROWID(SkontoAb) ).
  985. END.
  986. APPLY 'U1'.
  987. RETURN NO-APPLY.
  988. END PROCEDURE.
  989. /* _UIB-CODE-BLOCK-END */
  990. &ANALYZE-RESUME
  991. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wSkontoabrechnung
  992. PROCEDURE viewObject :
  993. /*------------------------------------------------------------------------------
  994. Purpose: Super Override
  995. Parameters:
  996. Notes:
  997. ------------------------------------------------------------------------------*/
  998. RUN SUPER.
  999. RUN ENTRY_CURSOR.
  1000. END PROCEDURE.
  1001. /* _UIB-CODE-BLOCK-END */
  1002. &ANALYZE-RESUME