v-zahlung.w 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE TEMP-TABLE XTabel NO-UNDO LIKE Tabel.
  9. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS V-table-Win
  10. /*------------------------------------------------------------------------
  11. File:
  12. Description: from VIEWER.W - Template for SmartViewer Objects
  13. Input Parameters:
  14. <none>
  15. Output Parameters:
  16. <none>
  17. ------------------------------------------------------------------------*/
  18. /* This .W file was created with the Progress UIB. */
  19. /*----------------------------------------------------------------------*/
  20. /* Create an unnamed pool to store all the widgets created
  21. by this procedure. This is a good default which assures
  22. that this procedure's triggers and internal procedures
  23. will execute in this procedure's storage, and that proper
  24. cleanup will occur on deletion of the procedure. */
  25. CREATE WIDGET-POOL.
  26. /* *************************** Definitions ************************** */
  27. /* Parameters Definitions --- */
  28. /* Local Variable Definitions --- */
  29. DEF VAR VSko_Max AS DEC.
  30. DEF VAR VSko_Fak AS DEC.
  31. DEF VAR VZaBetr AS DEC.
  32. DEF VAR VSkBetr AS DEC.
  33. DEF VAR VDatum AS DATE.
  34. DEF VAR VTrNr1 AS INT.
  35. DEF VAR VTrNr2 AS INT.
  36. DEF VAR VHerk AS INT.
  37. DEF VAR VBankKto AS CHAR.
  38. DEF VAR VSkoKto AS CHAR.
  39. DEF VAR VDebKto AS CHAR.
  40. DEF VAR VBuchtxt1 AS CHAR.
  41. DEF VAR VBuchtxt2 AS CHAR.
  42. DEF VAR VZahFl AS LOG.
  43. DEF VAR FFehler AS LOG.
  44. DEF VAR VKte AS CHAR.
  45. DEF VAR zz AS INT.
  46. DEF VAR FErst AS LOG INIT TRUE.
  47. DEF VAR DebopRECID AS RECID NO-UNDO.
  48. DEF VAR SperrDat AS DATE NO-UNDO INIT 01/01/0001.
  49. DEF VAR iLager AS INT NO-UNDO.
  50. DEF BUFFER BDebop FOR Debop.
  51. DEF BUFFER BDebza FOR Debza.
  52. DEF BUFFER BDebfa FOR Debfa.
  53. DEF BUFFER BDebst FOR Debst.
  54. DEF BUFFER SDebst FOR Debst.
  55. DEF BUFFER BSteuer FOR Steuer.
  56. DEF VAR VAntZ AS DEC DECIMALS 4.
  57. DEF VAR VAntS AS DEC DECIMALS 4.
  58. DEF VAR nAntWpfl AS DEC DECIMALS 4 EXTENT 12.
  59. DEF VAR VTot AS DEC EXTENT 12.
  60. DEF VAR VZah AS DEC EXTENT 12.
  61. DEF VAR VSko AS DEC EXTENT 12.
  62. DEF VAR VZRes AS DEC.
  63. DEF VAR VSRes AS DEC.
  64. DEF VAR VMax AS INT.
  65. DEF TEMP-TABLE WFile FIELD Kto1 AS CHAR
  66. FIELD Kto2 AS CHAR
  67. FIELD MWST_Cd AS INT
  68. FIELD Betrag AS DEC.
  69. DEF TEMP-TABLE tDebop LIKE Debop.
  70. DEF TEMP-TABLE tDebza LIKE Debza.
  71. /* ---------- Globale Variablen ---------------------------------- */
  72. { v8/globvar.i" " " " "SHARED" }
  73. { v8/debivar.i " " " " "SHARED" }
  74. { v8/artivar.i " " " " "SHARED" }
  75. { v8/contvar.i " " " " "SHARED" }
  76. /* _UIB-CODE-BLOCK-END */
  77. &ANALYZE-RESUME
  78. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  79. /* ******************** Preprocessor Definitions ******************** */
  80. &Scoped-define PROCEDURE-TYPE SmartViewer
  81. &Scoped-define DB-AWARE no
  82. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  83. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  84. &Scoped-define FRAME-NAME F-Main
  85. /* Standard List Definitions */
  86. &Scoped-Define ENABLED-OBJECTS CB_Konto F_Konto_Tot F_Total F_Zah_Datum ~
  87. F_Faknr F_FakDat F_Faellig F_FakBetr F_Knr F_Saldo_T F_Saldo F_Skonto_Ber ~
  88. F_Sko_Max F_Zah_Betr F_Skonto RECT-21 RECT-22
  89. &Scoped-Define DISPLAYED-OBJECTS CB_Konto F_Konto_Tot F_Total F_Zah_Datum ~
  90. F_Faknr F_FakDat F_Faellig F_FakBetr F_Knr F_Saldo_T F_Saldo F_Skonto_Ber ~
  91. F_Sko_Max F_Zah_Betr F_Skonto
  92. /* Custom List Definitions */
  93. /* ADM-CREATE-FIELDS,ADM-ASSIGN-FIELDS,List-3,List-4,List-5,List-6 */
  94. &Scoped-define ADM-ASSIGN-FIELDS F_Konto_Tot F_Total F_Zah_Datum F_Faknr ~
  95. F_FakDat F_Faellig F_FakBetr F_Knr F_Saldo_T F_Saldo F_Skonto_Ber F_Sko_Max ~
  96. F_Zah_Betr F_Skonto
  97. &Scoped-define List-4 F_Saldo F_Skonto_Ber F_Sko_Max F_Zah_Betr F_Skonto
  98. &Scoped-define List-5 F_Faknr F_FakDat F_Faellig F_FakBetr F_Knr F_Saldo_T
  99. &Scoped-define List-6 F_Konto_Tot F_Total F_Zah_Datum
  100. /* _UIB-PREPROCESSOR-BLOCK-END */
  101. &ANALYZE-RESUME
  102. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" V-table-Win _INLINE
  103. /* Actions: ? adm/support/keyedit.w ? ? ? */
  104. /* STRUCTURED-DATA
  105. <KEY-OBJECT>
  106. THIS-PROCEDURE
  107. </KEY-OBJECT>
  108. <FOREIGN-KEYS>
  109. </FOREIGN-KEYS>
  110. <EXECUTING-CODE>
  111. **************************
  112. * Set attributes related to FOREIGN KEYS
  113. */
  114. RUN set-attribute-list (
  115. 'Keys-Accepted = "",
  116. Keys-Supplied = ""':U).
  117. /**************************
  118. </EXECUTING-CODE> */
  119. /* _UIB-CODE-BLOCK-END */
  120. &ANALYZE-RESUME
  121. /* *********************** Control Definitions ********************** */
  122. /* Definitions of the field level widgets */
  123. DEFINE VARIABLE CB_Konto AS CHARACTER FORMAT "X(256)":U
  124. LABEL "Konto"
  125. VIEW-AS COMBO-BOX INNER-LINES 5
  126. LIST-ITEM-PAIRS "Item 1","Item 1"
  127. DROP-DOWN-LIST
  128. SIZE 21.4 BY 1
  129. BGCOLOR 15 NO-UNDO.
  130. DEFINE VARIABLE F_Faellig AS DATE FORMAT "99.99.9999":U
  131. LABEL "/"
  132. VIEW-AS FILL-IN NATIVE
  133. SIZE 16 BY 1.05
  134. BGCOLOR 15 NO-UNDO.
  135. DEFINE VARIABLE F_FakBetr AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
  136. LABEL "Betrag"
  137. VIEW-AS FILL-IN NATIVE
  138. SIZE 20 BY 1.05
  139. BGCOLOR 15 NO-UNDO.
  140. DEFINE VARIABLE F_FakDat AS DATE FORMAT "99.99.9999":U
  141. LABEL "Datum"
  142. VIEW-AS FILL-IN NATIVE
  143. SIZE 16 BY 1.05
  144. BGCOLOR 15 NO-UNDO.
  145. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "9999999":U INITIAL 0
  146. LABEL "Fak-Nr."
  147. VIEW-AS FILL-IN NATIVE
  148. SIZE 11 BY 1.05
  149. BGCOLOR 15 NO-UNDO.
  150. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0
  151. LABEL "Kde-Nr."
  152. VIEW-AS FILL-IN NATIVE
  153. SIZE 11 BY 1.05
  154. BGCOLOR 15 NO-UNDO.
  155. DEFINE VARIABLE F_Konto AS CHARACTER FORMAT "x(12)":U
  156. LABEL "Konto"
  157. VIEW-AS FILL-IN NATIVE
  158. SIZE 18 BY 1.05
  159. BGCOLOR 15 NO-UNDO.
  160. DEFINE VARIABLE F_Konto_Tot AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0
  161. LABEL "Konto-Total"
  162. VIEW-AS FILL-IN NATIVE
  163. SIZE 18 BY 1.05
  164. BGCOLOR 15 NO-UNDO.
  165. DEFINE VARIABLE F_Saldo AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
  166. VIEW-AS FILL-IN NATIVE
  167. SIZE 19 BY 1.05
  168. BGCOLOR 15 NO-UNDO.
  169. DEFINE VARIABLE F_Saldo_T AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
  170. LABEL "Saldo"
  171. VIEW-AS FILL-IN NATIVE
  172. SIZE 20 BY 1.05
  173. BGCOLOR 14 NO-UNDO.
  174. DEFINE VARIABLE F_Skonto AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0
  175. VIEW-AS FILL-IN NATIVE
  176. SIZE 17 BY 1.05
  177. BGCOLOR 15 NO-UNDO.
  178. DEFINE VARIABLE F_Skonto_Ber AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
  179. VIEW-AS FILL-IN NATIVE
  180. SIZE 19 BY 1.05
  181. BGCOLOR 15 NO-UNDO.
  182. DEFINE VARIABLE F_Sko_Max AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0
  183. VIEW-AS FILL-IN NATIVE
  184. SIZE 17 BY 1.05
  185. BGCOLOR 15 NO-UNDO.
  186. DEFINE VARIABLE F_Total AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
  187. LABEL "G-Total"
  188. VIEW-AS FILL-IN NATIVE
  189. SIZE 19 BY 1.05
  190. BGCOLOR 15 NO-UNDO.
  191. DEFINE VARIABLE F_Zah_Betr AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
  192. VIEW-AS FILL-IN NATIVE
  193. SIZE 19 BY 1.05
  194. BGCOLOR 15 NO-UNDO.
  195. DEFINE VARIABLE F_Zah_Datum AS DATE FORMAT "99.99.9999":U
  196. LABEL "Datum"
  197. VIEW-AS FILL-IN NATIVE
  198. SIZE 16 BY 1.05
  199. BGCOLOR 15 NO-UNDO.
  200. DEFINE RECTANGLE RECT-21
  201. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  202. SIZE 131 BY 9.52.
  203. DEFINE RECTANGLE RECT-22
  204. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  205. SIZE 94.2 BY 3.14.
  206. DEFINE VARIABLE F_Anschrift AS CHARACTER
  207. VIEW-AS SELECTION-LIST SINGLE
  208. SIZE 35.2 BY 8
  209. BGCOLOR 15 FONT 6 NO-UNDO.
  210. /* ************************ Frame Definitions *********************** */
  211. DEFINE FRAME F-Main
  212. CB_Konto AT ROW 1.62 COL 9 COLON-ALIGNED
  213. F_Konto_Tot AT ROW 1.62 COL 45 COLON-ALIGNED
  214. F_Total AT ROW 1.62 COL 73 COLON-ALIGNED
  215. F_Zah_Datum AT ROW 2.62 COL 9 COLON-ALIGNED
  216. F_Faknr AT ROW 4.71 COL 9 COLON-ALIGNED
  217. F_FakDat AT ROW 4.71 COL 29 COLON-ALIGNED
  218. F_Faellig AT ROW 4.71 COL 47.4 COLON-ALIGNED
  219. F_FakBetr AT ROW 4.71 COL 73 COLON-ALIGNED
  220. F_Knr AT ROW 5.71 COL 9 COLON-ALIGNED
  221. F_Saldo_T AT ROW 5.71 COL 73 COLON-ALIGNED NO-TAB-STOP
  222. F_Saldo AT ROW 9.05 COL 3 NO-LABEL
  223. F_Skonto_Ber AT ROW 9.05 COL 20 COLON-ALIGNED NO-LABEL
  224. F_Sko_Max AT ROW 9.05 COL 39 COLON-ALIGNED NO-LABEL
  225. F_Zah_Betr AT ROW 9.05 COL 56 COLON-ALIGNED NO-LABEL
  226. F_Skonto AT ROW 9.05 COL 75 COLON-ALIGNED NO-LABEL
  227. F_Anschrift AT ROW 2 COL 97 NO-LABEL NO-TAB-STOP
  228. F_Konto AT ROW 2.62 COL 45 COLON-ALIGNED NO-TAB-STOP
  229. "Saldo" VIEW-AS TEXT
  230. SIZE 8.4 BY 1.05 AT ROW 7.67 COL 15
  231. "Bez. Betrag" VIEW-AS TEXT
  232. SIZE 13 BY 1.05 AT ROW 7.67 COL 28.4
  233. "Bez. Skonto" VIEW-AS TEXT
  234. SIZE 14.2 BY 1.05 AT ROW 7.67 COL 43.8
  235. "Zahl-Betrag" VIEW-AS TEXT
  236. SIZE 12 BY 1.05 AT ROW 7.67 COL 64.4
  237. "Skonto" VIEW-AS TEXT
  238. SIZE 9 BY 1.05 AT ROW 7.67 COL 84.8
  239. RECT-21 AT ROW 1.24 COL 2
  240. RECT-22 AT ROW 4.33 COL 2
  241. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  242. SIDE-LABELS NO-UNDERLINE THREE-D
  243. AT COL 1 ROW 1 SCROLLABLE .
  244. /* *********************** Procedure Settings ************************ */
  245. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  246. /* Settings for THIS-PROCEDURE
  247. Type: SmartViewer
  248. Allow: Basic,DB-Fields
  249. Frames: 1
  250. Add Fields to: EXTERNAL-TABLES
  251. Other Settings: PERSISTENT-ONLY COMPILE
  252. Temp-Tables and Buffers:
  253. TABLE: XTabel T "?" NO-UNDO Anadat Tabel
  254. END-TABLES.
  255. */
  256. /* This procedure should always be RUN PERSISTENT. Report the error, */
  257. /* then cleanup and return. */
  258. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  259. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  260. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  261. RETURN.
  262. END.
  263. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  264. /* ************************* Create Window ************************** */
  265. &ANALYZE-SUSPEND _CREATE-WINDOW
  266. /* DESIGN Window definition (used by the UIB)
  267. CREATE WINDOW V-table-Win ASSIGN
  268. HEIGHT = 9.95
  269. WIDTH = 133.
  270. /* END WINDOW DEFINITION */
  271. */
  272. &ANALYZE-RESUME
  273. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB V-table-Win
  274. /* ************************* Included-Libraries *********************** */
  275. {src/adm/method/viewer.i}
  276. /* _UIB-CODE-BLOCK-END */
  277. &ANALYZE-RESUME
  278. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  279. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  280. /* SETTINGS FOR WINDOW V-table-Win
  281. VISIBLE,,RUN-PERSISTENT */
  282. /* SETTINGS FOR FRAME F-Main
  283. NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */
  284. ASSIGN
  285. FRAME F-Main:SCROLLABLE = FALSE
  286. FRAME F-Main:HIDDEN = TRUE.
  287. /* SETTINGS FOR SELECTION-LIST F_Anschrift IN FRAME F-Main
  288. NO-DISPLAY NO-ENABLE */
  289. /* SETTINGS FOR FILL-IN F_Faellig IN FRAME F-Main
  290. 2 5 */
  291. /* SETTINGS FOR FILL-IN F_FakBetr IN FRAME F-Main
  292. 2 5 */
  293. /* SETTINGS FOR FILL-IN F_FakDat IN FRAME F-Main
  294. 2 5 */
  295. /* SETTINGS FOR FILL-IN F_Faknr IN FRAME F-Main
  296. 2 5 */
  297. /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main
  298. 2 5 */
  299. /* SETTINGS FOR FILL-IN F_Konto IN FRAME F-Main
  300. NO-DISPLAY NO-ENABLE */
  301. ASSIGN
  302. F_Konto:HIDDEN IN FRAME F-Main = TRUE
  303. F_Konto:READ-ONLY IN FRAME F-Main = TRUE.
  304. /* SETTINGS FOR FILL-IN F_Konto_Tot IN FRAME F-Main
  305. 2 6 */
  306. /* SETTINGS FOR FILL-IN F_Saldo IN FRAME F-Main
  307. ALIGN-L 2 4 */
  308. /* SETTINGS FOR FILL-IN F_Saldo_T IN FRAME F-Main
  309. 2 5 */
  310. ASSIGN
  311. F_Saldo_T:READ-ONLY IN FRAME F-Main = TRUE.
  312. /* SETTINGS FOR FILL-IN F_Skonto IN FRAME F-Main
  313. 2 4 */
  314. /* SETTINGS FOR FILL-IN F_Skonto_Ber IN FRAME F-Main
  315. 2 4 */
  316. /* SETTINGS FOR FILL-IN F_Sko_Max IN FRAME F-Main
  317. 2 4 */
  318. /* SETTINGS FOR FILL-IN F_Total IN FRAME F-Main
  319. 2 6 */
  320. /* SETTINGS FOR FILL-IN F_Zah_Betr IN FRAME F-Main
  321. 2 4 */
  322. /* SETTINGS FOR FILL-IN F_Zah_Datum IN FRAME F-Main
  323. 2 6 */
  324. /* _RUN-TIME-ATTRIBUTES-END */
  325. &ANALYZE-RESUME
  326. /* Setting information for Queries and Browse Widgets fields */
  327. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  328. /* Query rebuild information for FRAME F-Main
  329. _Options = "NO-LOCK"
  330. _Query is NOT OPENED
  331. */ /* FRAME F-Main */
  332. &ANALYZE-RESUME
  333. /* ************************ Control Triggers ************************ */
  334. &Scoped-define SELF-NAME CB_Konto
  335. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Konto V-table-Win
  336. ON VALUE-CHANGED OF CB_Konto IN FRAME F-Main /* Konto */
  337. DO:
  338. DEF VAR cKey AS CHAR NO-UNDO.
  339. DO WITH FRAME {&FRAME-NAME}:
  340. F_Konto = CB_Konto:SCREEN-VALUE.
  341. cKey = 'Konto' + STRING(iLager,'99').
  342. PUT-KEY-VALUE SECTION 'DebitorZahlungen'
  343. KEY cKey
  344. VALUE F_Konto NO-ERROR.
  345. F_Konto:SCREEN-VALUE = F_Konto.
  346. END.
  347. END.
  348. /* _UIB-CODE-BLOCK-END */
  349. &ANALYZE-RESUME
  350. &Scoped-define SELF-NAME F_Konto
  351. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto V-table-Win
  352. ON ENTRY OF F_Konto IN FRAME F-Main /* Konto */
  353. DO:
  354. APPLY 'TAB' TO SELF.
  355. END.
  356. /* _UIB-CODE-BLOCK-END */
  357. &ANALYZE-RESUME
  358. &Scoped-define SELF-NAME F_Konto_Tot
  359. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto_Tot V-table-Win
  360. ON LEFT-MOUSE-DBLCLICK OF F_Konto_Tot IN FRAME F-Main /* Konto-Total */
  361. DO:
  362. DEF VAR AWert AS DEC.
  363. DEF VAR NWert AS DEC.
  364. AWert = DECIMAL(SELF:SCREEN-VALUE).
  365. RUN "v8/d-neuer_wert.w" (INPUT AWert, OUTPUT NWert).
  366. F_Konto_Tot = NWert.
  367. DISPLAY F_Konto_Tot WITH FRAME {&FRAME-NAME}.
  368. FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
  369. AND XTabel.RecArt = 'KTotal'
  370. AND XTabel.Sprcd = 1
  371. AND XTabel.CodeC = F_Konto NO-ERROR.
  372. IF NOT AVAILABLE XTabel THEN DO:
  373. CREATE XTabel.
  374. ASSIGN XTabel.Firma = GVFirma
  375. XTabel.RecArt = 'KTotal'
  376. XTabel.Sprcd = 1
  377. XTabel.CodeC = F_Konto.
  378. END.
  379. XTabel.Dec_1 = F_Konto_Tot.
  380. APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
  381. RETURN NO-APPLY.
  382. END.
  383. /* _UIB-CODE-BLOCK-END */
  384. &ANALYZE-RESUME
  385. &Scoped-define SELF-NAME F_Total
  386. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Total V-table-Win
  387. ON LEFT-MOUSE-DBLCLICK OF F_Total IN FRAME F-Main /* G-Total */
  388. DO:
  389. DEF VAR AWert AS DEC.
  390. DEF VAR NWert AS DEC.
  391. AWert = DECIMAL(SELF:SCREEN-VALUE).
  392. RUN "v8/d-neuer_wert.w" (INPUT AWert, OUTPUT NWert).
  393. F_Total = NWert.
  394. DISPLAY F_Total WITH FRAME {&FRAME-NAME}.
  395. FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
  396. AND XTabel.RecArt = 'GTotal'
  397. AND XTabel.Sprcd = 1
  398. AND XTabel.CodeC = '' NO-ERROR.
  399. IF NOT AVAILABLE XTabel THEN DO:
  400. CREATE XTabel.
  401. ASSIGN XTabel.Firma = GVFirma
  402. XTabel.RecArt = 'GTotal'
  403. XTabel.Sprcd = 1
  404. XTabel.CodeC = ''.
  405. END.
  406. XTabel.Dec_1 = F_Total.
  407. APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
  408. RETURN NO-APPLY.
  409. END.
  410. /* _UIB-CODE-BLOCK-END */
  411. &ANALYZE-RESUME
  412. &UNDEFINE SELF-NAME
  413. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK V-table-Win
  414. /* *************************** Main Block *************************** */
  415. FIND BSteuer USE-INDEX Steuer-k1
  416. WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  417. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  418. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  419. &ENDIF
  420. /************************ INTERNAL PROCEDURES ********************/
  421. ON RETURN OF F_Konto IN FRAME {&FRAME-NAME}
  422. OR RETURN OF F_Zah_Datum IN FRAME {&FRAME-NAME}
  423. OR RETURN OF F_Faknr IN FRAME {&FRAME-NAME}
  424. OR RETURN OF F_Knr IN FRAME {&FRAME-NAME}
  425. OR RETURN OF CB_Konto IN FRAME {&FRAME-NAME}
  426. DO:
  427. APPLY 'TAB' TO SELF.
  428. RETURN NO-APPLY.
  429. END.
  430. ON ENTRY OF F_Konto_Tot IN FRAME {&FRAME-NAME}
  431. DO:
  432. APPLY 'ENTRY' TO F_Zah_Datum IN FRAME {&FRAME-NAME}.
  433. RETURN NO-APPLY.
  434. END.
  435. ON ENTRY OF F_Total IN FRAME {&FRAME-NAME}
  436. DO:
  437. IF LASTKEY = KEYCODE('BACK-TAB') THEN APPLY 'ENTRY' TO F_Zah_Datum IN FRAME {&FRAME-NAME}.
  438. APPLY 'ENTRY' TO F_Zah_Datum IN FRAME {&FRAME-NAME}.
  439. RETURN NO-APPLY.
  440. END.
  441. ON ENTRY OF F_FakDat IN FRAME {&FRAME-NAME}
  442. OR ENTRY OF F_Faellig IN FRAME {&FRAME-NAME}
  443. OR ENTRY OF F_FakBetr IN FRAME {&FRAME-NAME}
  444. OR ENTRY OF F_Saldo_T IN FRAME {&FRAME-NAME}
  445. OR ENTRY OF F_Saldo IN FRAME {&FRAME-NAME}
  446. OR ENTRY OF F_Skonto_Ber IN FRAME {&FRAME-NAME}
  447. OR ENTRY OF F_Sko_Max IN FRAME {&FRAME-NAME}
  448. DO:
  449. APPLY 'TAB' TO SELF.
  450. RETURN NO-APPLY.
  451. END.
  452. ON ENTRY OF F_Knr IN FRAME {&FRAME-NAME}
  453. DO:
  454. F_Knr = INTEGER(SELF:SCREEN-VALUE).
  455. IF F_Faknr > 0 AND
  456. F_Faknr < 999999 THEN DO:
  457. APPLY 'TAB' TO SELF.
  458. RETURN NO-APPLY.
  459. END.
  460. END.
  461. ON ENTRY OF F_Zah_Betr IN FRAME {&FRAME-NAME}
  462. OR ENTRY OF F_Skonto IN FRAME {&FRAME-NAME}
  463. DO:
  464. IF F_Faknr = 0 THEN DO:
  465. APPLY 'ENTRY' TO F_Faknr IN FRAME {&FRAME-NAME}.
  466. RETURN NO-APPLY.
  467. END.
  468. END.
  469. ON LEAVE OF CB_Konto IN FRAME {&FRAME-NAME}
  470. DO:
  471. F_Konto = CB_Konto:SCREEN-VALUE.
  472. F_Konto:SCREEN-VALUE = F_Konto.
  473. IF F_Konto = '' AND
  474. FErst = FALSE THEN DO:
  475. { v8/fehler.i "0401" }
  476. APPLY 'ENTRY' TO SELF.
  477. RETURN NO-APPLY.
  478. END.
  479. FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
  480. AND XTabel.RecArt = 'KTotal'
  481. AND XTabel.Sprcd = 1
  482. AND XTabel.CodeC = F_Konto NO-ERROR.
  483. IF NOT AVAILABLE XTabel THEN F_Konto_Tot = 0.
  484. ELSE F_Konto_Tot = XTabel.Dec_1.
  485. DISPLAY F_Konto_Tot WITH FRAME {&FRAME-NAME}.
  486. FErst = FALSE.
  487. END.
  488. ON LEAVE OF F_Zah_Datum IN FRAME {&FRAME-NAME}
  489. DO:
  490. DO WITH FRAME {&FRAME-NAME}:
  491. ASSIGN {&List-6}.
  492. IF F_Zah_Datum = ? THEN DO:
  493. { v8/fehler.i "0096" }
  494. APPLY 'ENTRY' TO SELF.
  495. RETURN NO-APPLY.
  496. END.
  497. IF F_Zah_Datum <= SperrDat THEN DO:
  498. { v8/fehler.i "0096" }
  499. APPLY 'ENTRY' TO SELF.
  500. RETURN NO-APPLY.
  501. END.
  502. END.
  503. END.
  504. ON LEAVE OF F_Faknr IN FRAME {&FRAME-NAME}
  505. DO:
  506. F_Faknr = INTEGER(SELF:SCREEN-VALUE).
  507. LKY = LASTKEY.
  508. IF KEYFUNCTION(LKY) = 'END-ERROR' THEN RETURN.
  509. IF F_Faknr = 0 OR
  510. F_Faknr = 999999 THEN DO WITH FRAME {&FRAME-NAME}:
  511. F_FakDat = ?.
  512. F_Faellig = ?.
  513. F_FakBetr = 0.
  514. F_Saldo_T = 0.
  515. DISPLAY {&List-5}.
  516. DVFaknr = F_Faknr.
  517. APPLY 'ENTRY' TO F_Knr IN FRAME {&FRAME-NAME}.
  518. RETURN NO-APPLY.
  519. END.
  520. FIND Debop USE-INDEX Debop-k2
  521. WHERE Debop.Firma = GVFirma
  522. AND Debop.Faknr = F_Faknr NO-LOCK NO-ERROR.
  523. IF NOT AVAILABLE Debop THEN DO:
  524. { v8/fehler.i "0402" }
  525. APPLY 'ENTRY' TO SELF.
  526. RETURN NO-APPLY.
  527. END.
  528. DVKnr = Debop.Knr.
  529. DVFaknr = Debop.Faknr.
  530. RUN new-state ('Seite_1_selectfnr, MAIN':U).
  531. RUN ANSCHRIFT.
  532. ASSIGN F_Faknr = Debop.Faknr
  533. F_Knr = Debop.Knr
  534. F_Fakbetr = Debop.FakBetr
  535. F_FakDat = Debop.FakDat
  536. F_Faellig = Debop.Faellig
  537. F_Saldo = Debop.Saldo
  538. F_Skonto_Ber = Debop.ZahBetr
  539. F_Sko_Max = Debop.Skonto.
  540. FIND Debst USE-INDEX Debst-k1
  541. WHERE Debst.Firma = GVFirma
  542. AND Debst.Knr = F_Knr NO-LOCK NO-ERROR.
  543. F_Saldo_T = Debst.Saldo.
  544. RUN "v8/skonto.p" ( INPUT F_Knr, INPUT F_Faknr, INPUT F_Zah_Datum,
  545. OUTPUT VSko_Max, OUTPUT VSko_Fak ).
  546. F_Zah_Betr = 0.
  547. F_Skonto = 0.
  548. DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}.
  549. DISPLAY {&List-4} WITH FRAME {&FRAME-NAME}.
  550. END.
  551. ON LEAVE OF F_Knr IN FRAME {&FRAME-NAME}
  552. DO:
  553. IF F_Faknr > 0 AND
  554. F_Faknr < 999999 THEN RETURN.
  555. LKY = LASTKEY.
  556. IF KEYFUNCTION(LKY) = 'END-ERROR' THEN RETURN.
  557. IF KEYFUNCTION(LKY) = 'BACK-TAB' THEN RETURN.
  558. F_Knr = INTEGER(SELF:SCREEN-VALUE).
  559. IF F_Knr = 0 THEN DO:
  560. RUN new-state ('Seite_4, MAIN':U).
  561. RETURN NO-APPLY.
  562. END.
  563. FIND Debst USE-INDEX Debst-k1
  564. WHERE Debst.Firma = GVFirma
  565. AND Debst.Knr = F_Knr NO-LOCK NO-ERROR.
  566. IF NOT AVAILABLE Debst THEN DO:
  567. { v8/fehler.i "0421" }
  568. APPLY 'ENTRY' TO SELF.
  569. RETURN NO-APPLY.
  570. END.
  571. DVKnr = Debst.Knr.
  572. RUN ANSCHRIFT.
  573. IF F_Faknr = 999999 THEN DO:
  574. RUN FAKNR_FUELLEN.
  575. RETURN NO-APPLY.
  576. END.
  577. IF F_Faknr = 0 THEN RUN new-state ('Seite_2, MAIN':U).
  578. RETURN NO-APPLY.
  579. END.
  580. ON RETURN OF F_Zah_Betr IN FRAME {&FRAME-NAME}
  581. OR RETURN OF F_Skonto IN FRAME {&FRAME-NAME}
  582. DO:
  583. APPLY 'U1' TO THIS-PROCEDURE.
  584. IF FFehler THEN RETURN NO-APPLY.
  585. RETURN NO-APPLY.
  586. END.
  587. ON LEAVE OF F_Skonto IN FRAME {&FRAME-NAME}
  588. DO:
  589. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
  590. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
  591. IF KEYFUNCTION(LASTKEY) = '' THEN RETURN.
  592. APPLY 'U1' TO THIS-PROCEDURE.
  593. IF FFehler THEN RETURN NO-APPLY.
  594. RETURN NO-APPLY.
  595. END.
  596. ON U1 OF THIS-PROCEDURE
  597. DO:
  598. FFehler = FALSE.
  599. DO WITH FRAME {&FRAME-NAME}:
  600. ASSIGN {&List-4}.
  601. ASSIGN {&List-5}.
  602. ASSIGN {&List-6}.
  603. IF F_Konto = '' THEN DO:
  604. { v8/fehler.i "0401" }
  605. FFehler = TRUE.
  606. APPLY 'ENTRY' TO CB_Konto.
  607. RETURN NO-APPLY.
  608. END.
  609. FIND Debop USE-INDEX Debop-k1
  610. WHERE Debop.Firma = GVFirma
  611. AND Debop.Knr = F_Knr
  612. AND Debop.Faknr = F_Faknr NO-LOCK NO-ERROR.
  613. IF NOT AVAILABLE Debop THEN DO:
  614. { v8/fehler.i "0402" }
  615. APPLY 'ENTRY' TO SELF.
  616. RETURN NO-APPLY.
  617. END.
  618. DVKnr = Debop.Knr.
  619. DVFaknr = Debop.Faknr.
  620. DebopRECID = RECID(Debop).
  621. FIND Debst USE-INDEX Debst-k1
  622. WHERE Debst.Firma = GVFirma
  623. AND Debst.Knr = F_Knr NO-LOCK NO-ERROR.
  624. IF NOT AVAILABLE Debst THEN DO:
  625. { v8/fehler.i "0421" }
  626. APPLY 'ENTRY' TO SELF.
  627. RETURN NO-APPLY.
  628. END.
  629. IF F_Zah_Betr = 0 AND
  630. F_Skonto = 0 THEN DO:
  631. F_Zah_Betr = Debop.Saldo.
  632. F_Skonto = 0.
  633. DISPLAY {&List-4}.
  634. FFehler = TRUE.
  635. APPLY 'ENTRY' TO F_Zah_Betr.
  636. RETURN NO-APPLY.
  637. END.
  638. Rundbetr = F_Zah_Betr + F_Skonto.
  639. IF Rundbetr = 0 THEN DO:
  640. DISPLAY {&List-4}.
  641. FFehler = TRUE.
  642. APPLY 'ENTRY' TO F_Zah_Betr.
  643. RETURN NO-APPLY.
  644. END.
  645. DO WHILE Rundbetr <> Debop.Saldo:
  646. IF Debop.Saldo >= 0 AND
  647. Rundbetr > 0 THEN DO:
  648. IF (F_Skonto + Rundbetr) <= VSko_Max THEN F_Skonto = F_Skonto + Rundbetr.
  649. END.
  650. IF Debop.Saldo < 0 AND
  651. Rundbetr < 0 THEN DO:
  652. IF (F_Skonto + Rundbetr) >= VSko_Max THEN F_Skonto = F_Skonto + Rundbetr.
  653. END.
  654. LEAVE.
  655. END.
  656. Ja = TRUE.
  657. /*
  658. IF (F_Sko_Max >= 0 AND
  659. F_Skonto >= 0 AND
  660. F_Skonto > F_Sko_Max) OR
  661. (F_Sko_Max < 0 AND
  662. F_Skonto < 0 AND
  663. F_Skonto < F_Sko_Max) THEN DO:
  664. Ja = TRUE.
  665. { v8/antwort.i "0405" }
  666. END.
  667. */
  668. IF NOT Ja THEN DO:
  669. FFehler = TRUE.
  670. APPLY 'ENTRY' TO F_Skonto.
  671. RETURN NO-APPLY.
  672. END.
  673. RUN ZAHLUNG.
  674. END.
  675. FFehler = FALSE.
  676. APPLY 'ENTRY' TO F_Knr IN FRAME {&FRAME-NAME}.
  677. RETURN NO-APPLY.
  678. END.
  679. ON END-ERROR OF F_Knr IN FRAME {&FRAME-NAME}
  680. DO:
  681. F_Knr = 0.
  682. APPLY 'ENTRY' TO F_Faknr IN FRAME {&FRAME-NAME}.
  683. RETURN NO-APPLY.
  684. END.
  685. ON END-ERROR OF F_Faknr IN FRAME {&FRAME-NAME}
  686. DO:
  687. APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
  688. RETURN NO-APPLY.
  689. END.
  690. ON END-ERROR OF F_Zah_Betr IN FRAME {&FRAME-NAME}
  691. OR END-ERROR OF F_Skonto IN FRAME {&FRAME-NAME}
  692. DO:
  693. APPLY 'ENTRY' TO F_Faknr IN FRAME {&FRAME-NAME}.
  694. RETURN NO-APPLY.
  695. END.
  696. /* _UIB-CODE-BLOCK-END */
  697. &ANALYZE-RESUME
  698. /* ********************** Internal Procedures *********************** */
  699. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLOESCHEN V-table-Win
  700. PROCEDURE ABLOESCHEN :
  701. /*------------------------------------------------------------------------------
  702. Purpose:
  703. Parameters: <none>
  704. Notes:
  705. ------------------------------------------------------------------------------*/
  706. FRAME {&FRAME-NAME}:HIDDEN = TRUE.
  707. FRAME {&FRAME-NAME}:SENSITIVE = FALSE.
  708. END PROCEDURE.
  709. /* _UIB-CODE-BLOCK-END */
  710. &ANALYZE-RESUME
  711. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available V-table-Win _ADM-ROW-AVAILABLE
  712. PROCEDURE adm-row-available :
  713. /*------------------------------------------------------------------------------
  714. Purpose: Dispatched to this procedure when the Record-
  715. Source has a new row available. This procedure
  716. tries to get the new row (or foriegn keys) from
  717. the Record-Source and process it.
  718. Parameters: <none>
  719. ------------------------------------------------------------------------------*/
  720. /* Define variables needed by this internal procedure. */
  721. {src/adm/template/row-head.i}
  722. /* Process the newly available records (i.e. display fields,
  723. open queries, and/or pass records on to any RECORD-TARGETS). */
  724. {src/adm/template/row-end.i}
  725. END PROCEDURE.
  726. /* _UIB-CODE-BLOCK-END */
  727. &ANALYZE-RESUME
  728. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANSCHRIFT V-table-Win
  729. PROCEDURE ANSCHRIFT :
  730. /*------------------------------------------------------------------------------
  731. Purpose:
  732. Parameters: <none>
  733. Notes:
  734. ------------------------------------------------------------------------------*/
  735. FIND Adresse USE-INDEX Adresse-k1
  736. WHERE Adresse.Firma = AdFirma
  737. AND Adresse.Knr = DVKnr NO-LOCK NO-ERROR.
  738. DO WITH FRAME {&FRAME-NAME}:
  739. F_Anschrift:DELIMITER = "}".
  740. F_Anschrift:DELETE(9).
  741. F_Anschrift:DELETE(8).
  742. F_Anschrift:DELETE(7).
  743. F_Anschrift:DELETE(6).
  744. F_Anschrift:DELETE(5).
  745. F_Anschrift:DELETE(4).
  746. F_Anschrift:DELETE(3).
  747. F_Anschrift:DELETE(2).
  748. F_Anschrift:DELETE(1).
  749. IF AVAILABLE Adresse THEN DO:
  750. F_Anschrift:ADD-LAST(Adresse.Anschrift[3]).
  751. F_Anschrift:ADD-LAST(Adresse.Anschrift[4]).
  752. F_Anschrift:ADD-LAST(Adresse.Anschrift[5]).
  753. F_Anschrift:ADD-LAST(Adresse.Anschrift[6]).
  754. F_Anschrift:ADD-LAST(Adresse.Anschrift[7]).
  755. F_Anschrift:ADD-LAST(Adresse.Anschrift[8]).
  756. F_Anschrift:ADD-LAST(Adresse.Anschrift[9]).
  757. F_Anschrift:ADD-LAST(Adresse.Anschrift[10]).
  758. F_Anschrift:ADD-LAST(Adresse.Anschrift[11]).
  759. END.
  760. DISPLAY F_Anschrift.
  761. FIND SDebst USE-INDEX Debst-k1
  762. WHERE SDebst.Firma = GVFirma
  763. AND SDebst.Knr = Adresse.Knr NO-LOCK NO-ERROR.
  764. IF AVAILABLE SDebst THEN F_Saldo_T = SDebst.Saldo.
  765. ELSE F_Saldo_T = 0.
  766. DISPLAY F_Saldo_T.
  767. END.
  768. END PROCEDURE.
  769. /* _UIB-CODE-BLOCK-END */
  770. &ANALYZE-RESUME
  771. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZUENDEN V-table-Win
  772. PROCEDURE ANZUENDEN :
  773. /*------------------------------------------------------------------------------
  774. Purpose:
  775. Parameters: <none>
  776. Notes:
  777. ------------------------------------------------------------------------------*/
  778. FRAME {&FRAME-NAME}:HIDDEN = FALSE.
  779. FRAME {&FRAME-NAME}:SENSITIVE = TRUE.
  780. END PROCEDURE.
  781. /* _UIB-CODE-BLOCK-END */
  782. &ANALYZE-RESUME
  783. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DEBWECHSEL V-table-Win
  784. PROCEDURE DEBWECHSEL :
  785. /*------------------------------------------------------------------------------
  786. Purpose:
  787. Parameters: <none>
  788. Notes:
  789. ------------------------------------------------------------------------------*/
  790. RUN ANSCHRIFT.
  791. FIND Debst USE-INDEX Debst-k1
  792. WHERE Debst.Firma = GVFirma
  793. AND Debst.Knr = DVKnr NO-LOCK NO-ERROR.
  794. IF Available DEBST THEN F_Saldo_T = Debst.Saldo.
  795. ELSE F_Saldo_T = 0.
  796. DISPLAY F_Saldo_T WITH FRAME {&FRAME-NAME}.
  797. RETURN NO-APPLY.
  798. END PROCEDURE.
  799. /* _UIB-CODE-BLOCK-END */
  800. &ANALYZE-RESUME
  801. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI V-table-Win _DEFAULT-DISABLE
  802. PROCEDURE disable_UI :
  803. /*------------------------------------------------------------------------------
  804. Purpose: DISABLE the User Interface
  805. Parameters: <none>
  806. Notes: Here we clean-up the user-interface by deleting
  807. dynamic widgets we have created and/or hide
  808. frames. This procedure is usually called when
  809. we are ready to "clean-up" after running.
  810. ------------------------------------------------------------------------------*/
  811. /* Hide all frames. */
  812. HIDE FRAME F-Main.
  813. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  814. END PROCEDURE.
  815. /* _UIB-CODE-BLOCK-END */
  816. &ANALYZE-RESUME
  817. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_KONTO V-table-Win
  818. PROCEDURE ENTRY_KONTO :
  819. /*------------------------------------------------------------------------------
  820. Purpose:
  821. Parameters: <none>
  822. Notes:
  823. ------------------------------------------------------------------------------*/
  824. APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
  825. RETURN NO-APPLY.
  826. END PROCEDURE.
  827. /* _UIB-CODE-BLOCK-END */
  828. &ANALYZE-RESUME
  829. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKNR_FUELLEN V-table-Win
  830. PROCEDURE FAKNR_FUELLEN :
  831. /*------------------------------------------------------------------------------
  832. Purpose:
  833. Parameters: <none>
  834. Notes:
  835. ------------------------------------------------------------------------------*/
  836. F_Faknr = DVFaknr.
  837. FIND Debop USE-INDEX Debop-k2
  838. WHERE Debop.Firma = GVFirma
  839. AND Debop.Faknr = F_Faknr NO-LOCK NO-ERROR.
  840. IF NOT AVAILABLE Debop THEN DO:
  841. { v8/fehler.i "0402" }
  842. APPLY 'ENTRY' TO SELF.
  843. RETURN NO-APPLY.
  844. END.
  845. DVKnr = Debop.Knr.
  846. DVFaknr = Debop.Faknr.
  847. RUN ANSCHRIFT.
  848. ASSIGN F_Faknr = Debop.Faknr
  849. F_Knr = Debop.Knr
  850. F_Fakbetr = Debop.FakBetr
  851. F_FakDat = Debop.FakDat
  852. F_Faellig = Debop.Faellig
  853. F_Saldo = Debop.Saldo
  854. F_Skonto_Ber = Debop.ZahBetr
  855. F_Sko_Max = Debop.Skonto.
  856. FIND Debst USE-INDEX Debst-k1
  857. WHERE Debst.Firma = GVFirma
  858. AND Debst.Knr = F_Knr NO-LOCK NO-ERROR.
  859. F_Saldo_T = Debst.Saldo.
  860. RUN "v8/skonto.p" ( INPUT F_Knr, INPUT F_Faknr, INPUT F_Zah_Datum,
  861. OUTPUT VSko_Max, OUTPUT VSko_Fak ).
  862. F_Zah_Betr = 0.
  863. F_Skonto = 0.
  864. DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}.
  865. DISPLAY {&List-4} WITH FRAME {&FRAME-NAME}.
  866. APPLY 'ENTRY' TO F_Zah_Betr IN FRAME {&FRAME-NAME}.
  867. RETURN NO-APPLY.
  868. END PROCEDURE.
  869. /* _UIB-CODE-BLOCK-END */
  870. &ANALYZE-RESUME
  871. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INTERFACE V-table-Win
  872. PROCEDURE INTERFACE :
  873. /*------------------------------------------------------------------------------
  874. Purpose:
  875. Parameters: <none>
  876. Notes:
  877. ------------------------------------------------------------------------------*/
  878. FOR EACH WFile WHERE WFile.Betrag <> 0
  879. BY WFile.Kto1:
  880. FIND LAST Interf USE-INDEX Interf-k1
  881. WHERE Interf.Firma = BSteuer.FBFirma
  882. AND Interf.TrNr1 = VTrNr1
  883. AND Interf.TrNr2 = VTrNr2 NO-LOCK NO-ERROR.
  884. IF AVAILABLE Interf THEN ix = Interf.Trnr + 1.
  885. ELSE ix = 1.
  886. CREATE Interf.
  887. ASSIGN Interf.Firma = BSteuer.FBFirma
  888. Interf.TrNr1 = VTrNr1
  889. Interf.TrNr2 = VTrNr2
  890. Interf.TrNr = ix
  891. Interf.Kto1 = WFile.Kto1
  892. Interf.Kto2 = WFile.Kto2
  893. Interf.Herk = TransNr.Herk
  894. Interf.Datum = BDebza.ZahDat
  895. Interf.Buchtxt1 = VBuchtxt1
  896. Interf.Buchtxt2 = VBuchtxt2
  897. Interf.Betrag = WFile.Betrag
  898. Interf.Betrag_Frw = WFile.Betrag
  899. Interf.FRW = BDebop.FRW
  900. Interf.Faktor = BDebop.Faktor
  901. Interf.Kurs = BDebop.Kurs
  902. Interf.Verbucht = FALSE
  903. Interf.Faknr = STRING(BDebop.Faknr,"9999999")
  904. Interf.Knr = BDebop.Knr
  905. Interf.MWST_Nr = ""
  906. Interf.MWST_Cd = WFile.MWST_Cd
  907. Interf.HKFirma = BDebop.Firma.
  908. DELETE WFile.
  909. END.
  910. END PROCEDURE.
  911. /* _UIB-CODE-BLOCK-END */
  912. &ANALYZE-RESUME
  913. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KUNDE_FUELLEN V-table-Win
  914. PROCEDURE KUNDE_FUELLEN :
  915. /*------------------------------------------------------------------------------
  916. Purpose:
  917. Parameters: <none>
  918. Notes:
  919. ------------------------------------------------------------------------------*/
  920. F_FakDat = ?.
  921. F_Faellig = ?.
  922. F_FakBetr = 0.
  923. F_Saldo_T = 0.
  924. F_Knr = DVKnr.
  925. DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}.
  926. RUN ANSCHRIFT.
  927. RETURN NO-APPLY.
  928. END PROCEDURE.
  929. /* _UIB-CODE-BLOCK-END */
  930. &ANALYZE-RESUME
  931. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-disable-fields V-table-Win
  932. PROCEDURE local-disable-fields :
  933. /*------------------------------------------------------------------------------
  934. Purpose: Override standard ADM method
  935. Notes:
  936. ------------------------------------------------------------------------------*/
  937. RUN dispatch IN THIS-PROCEDURE ( INPUT 'disable-fields':U ) .
  938. DO WITH FRAME {&FRAME-NAME}:
  939. DISABLE {&ADM-ASSIGN-FIELDS}.
  940. END.
  941. END PROCEDURE.
  942. /* _UIB-CODE-BLOCK-END */
  943. &ANALYZE-RESUME
  944. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-display-fields V-table-Win
  945. PROCEDURE local-display-fields :
  946. /*------------------------------------------------------------------------------
  947. Purpose: Override standard ADM method
  948. Notes:
  949. ------------------------------------------------------------------------------*/
  950. RUN dispatch IN THIS-PROCEDURE ( INPUT 'display-fields':U ) .
  951. DISPLAY {&ADM-ASSIGN-FIELDS} WITH FRAME {&FRAME-NAME}.
  952. F_Konto = CB_Konto:SCREEN-VALUE.
  953. F_Konto:SCREEN-VALUE = F_Konto.
  954. END PROCEDURE.
  955. /* _UIB-CODE-BLOCK-END */
  956. &ANALYZE-RESUME
  957. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-enable-fields V-table-Win
  958. PROCEDURE local-enable-fields :
  959. /*------------------------------------------------------------------------------
  960. Purpose: Override standard ADM method
  961. Notes:
  962. ------------------------------------------------------------------------------*/
  963. RUN dispatch IN THIS-PROCEDURE ( INPUT 'enable-fields':U ) .
  964. DO WITH FRAME {&FRAME-NAME}:
  965. ENABLE {&ADM-ASSIGN-FIELDS}.
  966. END.
  967. END PROCEDURE.
  968. /* _UIB-CODE-BLOCK-END */
  969. &ANALYZE-RESUME
  970. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize V-table-Win
  971. PROCEDURE local-initialize :
  972. /*------------------------------------------------------------------------------
  973. Purpose: Override standard ADM method
  974. Notes:
  975. ------------------------------------------------------------------------------*/
  976. DEF VAR cString AS CHAR NO-UNDO.
  977. DEF VAR cKey AS CHAR NO-UNDO.
  978. DO WITH FRAME {&FRAME-NAME}:
  979. iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR.
  980. CB_Konto:DELIMITER = ";".
  981. RUN COMBO_ZAHLUNGSART ( INPUT CB_Konto:HANDLE ) NO-ERROR.
  982. cKey = 'Konto' + STRING(iLager,'99').
  983. GET-KEY-VALUE SECTION 'DebitorZahlungen'
  984. KEY cKey
  985. VALUE cString.
  986. IF cString = ? THEN cString = ''.
  987. IF cString = '' THEN DO:
  988. cKey = 'Konto'.
  989. GET-KEY-VALUE SECTION 'DebitorZahlungen'
  990. KEY cKey
  991. VALUE cString.
  992. END.
  993. IF cString = ? THEN cString = ''.
  994. IF cString = '' THEN cString = ENTRY(2, CB_Konto:LIST-ITEM-PAIRS, ';').
  995. F_Konto = cString.
  996. F_Konto :SCREEN-VALUE = cString NO-ERROR.
  997. CB_Konto:SCREEN-VALUE = cString NO-ERROR.
  998. END.
  999. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
  1000. FOR EACH XTabel:
  1001. DELETE XTabel.
  1002. END.
  1003. F_Konto_Tot = 0.
  1004. F_Total = 0.
  1005. F_Konto = CB_Konto:SCREEN-VALUE.
  1006. F_Zah_Datum = TODAY.
  1007. F_FakDat = ?.
  1008. F_Faellig = ?.
  1009. F_Saldo_T = 0.
  1010. F_Faknr = 0.
  1011. F_Fakbetr = 0.
  1012. F_Knr = 0.
  1013. F_Saldo = 0.
  1014. F_Skonto_Ber = 0.
  1015. F_Sko_Max = 0.
  1016. F_Zah_Betr = 0.
  1017. FIND Steuer NO-LOCK USE-INDEX Steuer-k1
  1018. WHERE Steuer.Firma = GVFirma NO-ERROR.
  1019. IF AVAILABLE Steuer THEN DO:
  1020. SperrDat = DATE(Steuer.Fwc08) NO-ERROR.
  1021. IF ERROR-STATUS:ERROR THEN SperrDat = 01/01/0001.
  1022. END.
  1023. RUN dispatch IN THIS-PROCEDURE ('display-fields':U).
  1024. Helptext = ''.
  1025. FOR EACH LiBild WHERE LiBild.Sprcd = GVSprcd
  1026. AND LiBild.Prog = 'ZAHLUNG' NO-LOCK:
  1027. Helptext[LiBild.Tenr] = LiBild.Litext.
  1028. END.
  1029. END PROCEDURE.
  1030. /* _UIB-CODE-BLOCK-END */
  1031. &ANALYZE-RESUME
  1032. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view V-table-Win
  1033. PROCEDURE local-view :
  1034. /*------------------------------------------------------------------------------
  1035. Purpose: Override standard ADM method
  1036. Notes:
  1037. ------------------------------------------------------------------------------*/
  1038. Helptext = ''.
  1039. i5 = 0.
  1040. FOR EACH LiBild USE-INDEX LiBild-k1
  1041. WHERE LiBild.Sprcd = GVSprcd
  1042. AND LiBild.Prog = 'ZAHLUNG' NO-LOCK:
  1043. i5 = i5 + 1.
  1044. Helptext[i5] = LiBild.Litext.
  1045. END.
  1046. SperrDat = DYNAMIC-FUNCTION('getSperrDatum':U) NO-ERROR.
  1047. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  1048. RUN dispatch IN THIS-PROCEDURE ('apply-entry':U).
  1049. APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
  1050. END PROCEDURE.
  1051. /* _UIB-CODE-BLOCK-END */
  1052. &ANALYZE-RESUME
  1053. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER V-table-Win
  1054. PROCEDURE MEHRWERTSTEUER :
  1055. /*------------------------------------------------------------------------------
  1056. Purpose:
  1057. Parameters: <none>
  1058. Notes:
  1059. ------------------------------------------------------------------------------*/
  1060. DEF VAR nDiff AS DEC NO-UNDO.
  1061. DEF VAR nTotProz AS DEC NO-UNDO.
  1062. DEF VAR nSaldo AS DEC NO-UNDO.
  1063. DEF VAR nBetrag AS DEC NO-UNDO.
  1064. DEF VAR nZahBetr AS DEC NO-UNDO.
  1065. DEF VAR nFakBetr AS DEC NO-UNDO.
  1066. DEF VAR nSkoBetr AS DEC NO-UNDO.
  1067. DEF VAR lStorno AS LOG NO-UNDO.
  1068. DEF VAR iFaktor AS INT NO-UNDO.
  1069. DEF VAR lNochmals AS LOG NO-UNDO.
  1070. DEF VAR ii AS INT NO-UNDO.
  1071. IF VZaBetr = 0 AND
  1072. VSkBetr = 0 THEN RETURN.
  1073. VMax = 0.
  1074. DO zz = 1 TO 11:
  1075. IF bDebop.FakWpfl[zz] = 0 THEN NEXT.
  1076. VMax = zz.
  1077. END.
  1078. EMPTY TEMP-TABLE tDebop.
  1079. EMPTY TEMP-TABLE tDebza.
  1080. CREATE tDebop.
  1081. BUFFER-COPY bDebop TO tDebop.
  1082. DO zz = 1 TO 11:
  1083. ASSIGN tDebop.ZahWpfl[zz] = 0
  1084. tDebop.ZahWust[zz] = 0
  1085. tDebop.ZahSkon[zz] = 0
  1086. tDebop.FakWpfl[zz] = tDebop.FakWpfl[zz] + tDebop.FakWust[zz].
  1087. END.
  1088. ASSIGN tDebop.ZahBetr = tDebop.Zahbetr + VZaBetr
  1089. tDebop.Skonto = tDebop.Skonto + VSkBetr.
  1090. CREATE tDebza.
  1091. BUFFER-COPY bDebza TO tDebza.
  1092. DO zz = 1 TO 11:
  1093. ASSIGN tDebza.ZahWpfl[zz] = 0
  1094. tDebza.ZahWust[zz] = 0
  1095. tDebza.ZahSkon[zz] = 0.
  1096. END.
  1097. IF tDebop.Zahbetr <> 0 THEN DO:
  1098. IF tDebop.FakBetr <> 0 THEN nTotProz = tDebop.ZahBetr * 100 / tDebop.FakBetr.
  1099. ELSE nTotProz = VZaBetr * 100 / tDebop.Fakbetr.
  1100. END.
  1101. ELSE DO:
  1102. nTotProz = 0.
  1103. END.
  1104. DO zz = 1 TO 11:
  1105. tDebop.ZahWpfl[zz] = tDebop.FakWpfl[zz] * nTotProz / 100.
  1106. END.
  1107. IF tDebop.Skonto <> 0 THEN DO:
  1108. IF tDebop.FakBetr <> 0 THEN nTotProz = tDebop.Skonto * 100 / tDebop.FakBetr.
  1109. ELSE nTotProz = VSkBetr * 100 / tDebop.FakBetr.
  1110. END.
  1111. ELSE DO:
  1112. nTotProz = 0.
  1113. END.
  1114. DO zz = 1 TO 11:
  1115. tDebop.ZahSkon[zz] = tDebop.FakWpfl[zz] * nTotProz / 100.
  1116. END.
  1117. ASSIGN nZahBetr = 0
  1118. nSkoBetr = 0.
  1119. /* ZAHLBETRAG */
  1120. DO zz = 1 TO 11:
  1121. IF tDebop.FakWpfl[zz] < 0 AND
  1122. tDebop.ZahWpfl[zz] <= 0 THEN DO:
  1123. IF tDebop.ZahWpfl[zz] >= tDebop.FakWpfl[zz] THEN NEXT.
  1124. nDiff = tDebop.ZahWpfl[zz] - tDebop.FakWpfl[zz].
  1125. tDebop.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - nDiff.
  1126. nZahBetr = nZahBetr + nDiff.
  1127. NEXT.
  1128. END.
  1129. IF tDebop.FakWpfl[zz] >= 0 AND
  1130. tDebop.ZahWpfl[zz] >= 0 THEN DO:
  1131. IF tDebop.ZahWpfl[zz] <= tDebop.FakWpfl[zz] THEN NEXT.
  1132. nDiff = tDebop.ZahWpfl[zz] - tDebop.FakWpfl[zz].
  1133. tDebop.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - nDiff.
  1134. nZahBetr = nZahBetr + nDiff.
  1135. NEXT.
  1136. END.
  1137. IF tDebop.FakWpfl[zz] < 0 AND
  1138. tDebop.ZahWpfl[zz] >= 0 THEN DO:
  1139. nDiff = tDebop.ZahWpfl[zz].
  1140. tDebop.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - nDiff.
  1141. nZahBetr = nZahBetr + nDiff.
  1142. NEXT.
  1143. END.
  1144. IF tDebop.FakWpfl[zz] >= 0 AND
  1145. tDebop.ZahWpfl[zz] <= 0 THEN DO:
  1146. nDiff = tDebop.ZahWpfl[zz].
  1147. tDebop.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - nDiff.
  1148. nZahBetr = nZahBetr + nDiff.
  1149. NEXT.
  1150. END.
  1151. END.
  1152. tDebop.ZahWpfl[11] = tDebop.ZahWpfl[11] + nZahBetr.
  1153. /* SKONTO */
  1154. DO zz = 1 TO 11:
  1155. IF tDebop.FakWpfl[zz] < 0 AND
  1156. tDebop.ZahSkon[zz] <= 0 THEN DO:
  1157. IF (tDebop.ZahWpfl[zz] + tDebop.ZahSkon[zz]) >= tDebop.FakWpfl[zz] THEN NEXT.
  1158. nDiff = (tDebop.ZahWpfl[zz] + tDebop.ZahSkon[zz]) - tDebop.FakWpfl[zz].
  1159. tDebop.ZahSkon[zz] = tDebop.ZahSkon[zz] - nDiff.
  1160. nSkoBetr = nSkoBetr + nDiff.
  1161. NEXT.
  1162. END.
  1163. IF tDebop.FakWpfl[zz] >= 0 AND
  1164. tDebop.ZahSkon[zz] >= 0 THEN DO:
  1165. IF (tDebop.ZahWpfl[zz] + tDebop.ZahSkon[zz]) <= tDebop.FakWpfl[zz] THEN NEXT.
  1166. nDiff = (tDebop.ZahWpfl[zz] + tDebop.ZahSkon[zz]) - tDebop.FakWpfl[zz].
  1167. tDebop.ZahSkon[zz] = tDebop.ZahSkon[zz] - nDiff.
  1168. nSkoBetr = nSkoBetr + nDiff.
  1169. NEXT.
  1170. END.
  1171. IF tDebop.FakWpfl[zz] < 0 AND
  1172. tDebop.ZahSkon[zz] >= 0 THEN DO:
  1173. nDiff = tDebop.ZahSkon[zz].
  1174. tDebop.ZahSkon[zz] = tDebop.ZahSkon[zz] - nDiff.
  1175. nSkoBetr = nSkoBetr + nDiff.
  1176. NEXT.
  1177. END.
  1178. IF tDebop.FakWpfl[zz] >= 0 AND
  1179. tDebop.ZahSkon[zz] <= 0 THEN DO:
  1180. nDiff = tDebop.ZahSkon[zz].
  1181. tDebop.ZahSkon[zz] = tDebop.ZahSkon[zz] - nDiff.
  1182. nSkoBetr = nSkoBetr + nDiff.
  1183. NEXT.
  1184. END.
  1185. END.
  1186. tDebop.ZahSkon[11] = tDebop.ZahSkon[11] + nSkoBetr.
  1187. nZahBetr = 0.
  1188. nSkoBetr = 0.
  1189. DO zz = 1 TO 11:
  1190. ASSIGN tDebza.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - bDebop.ZahWpfl[zz] - bDebop.ZahWust[zz]
  1191. tDebza.ZahSkon[zz] = tDebop.ZahSkon[zz] - bDebop.ZahSkon[zz].
  1192. IF tDebza.ZahWpfl[zz] <> 0 THEN DO:
  1193. tDebza.ZahWust[zz] = tDebza.ZahWpfl[zz] * tDebop.FakWPro[zz] / (100 + tDebop.FakWPro[zz]).
  1194. tDebza.ZahWpfl[zz] = tDebza.ZahWpfl[zz] - tDebza.ZahWust[zz].
  1195. END.
  1196. nZahBetr = nZahBetr + tDebza.ZahWpfl[zz] + tDebza.ZahWust[zz].
  1197. nSkoBetr = nSkoBetr + tDebza.ZahSkon[zz].
  1198. ASSIGN bDebza.ZahWpfl[zz] = tDebza.ZahWpfl[zz]
  1199. bDebza.ZahWust[zz] = tDebza.ZahWust[zz]
  1200. bDebza.ZahSkon[zz] = tDebza.ZahSkon[zz].
  1201. END.
  1202. nDiff = VZaBetr - nZahBetr.
  1203. IF nZahBetr + nDiff = VZaBetr THEN bDebza.ZahWpfl[11] = bDebza.ZahWpfl[11] + nDiff.
  1204. ELSE bDebza.ZahWpfl[11] = bDebza.ZahWpfl[11] - nDiff.
  1205. nDiff = VSkBetr - nSkoBetr.
  1206. IF nSkoBetr + nDiff = VSkBetr THEN bDebza.ZahSkon[11] = bDebza.ZahSkon[11] + nDiff.
  1207. ELSE bDebza.ZahSkon[11] = bDebza.ZahSkon[11] - nDiff.
  1208. DO zz = 1 TO 11:
  1209. ASSIGN bDebop.ZahWpfl[zz] = bDebop.ZahWpfl[zz] + tDebza.ZahWpfl[zz]
  1210. bDebop.ZahWust[zz] = bDebop.ZahWust[zz] + tDebza.ZahWust[zz]
  1211. bDebop.ZahSkon[zz] = bDebop.ZahSkon[zz] + tDebza.ZahSkon[zz].
  1212. END.
  1213. END PROCEDURE.
  1214. /* _UIB-CODE-BLOCK-END */
  1215. &ANALYZE-RESUME
  1216. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records V-table-Win _ADM-SEND-RECORDS
  1217. PROCEDURE send-records :
  1218. /*------------------------------------------------------------------------------
  1219. Purpose: Send record ROWID's for all tables used by
  1220. this file.
  1221. Parameters: see template/snd-head.i
  1222. ------------------------------------------------------------------------------*/
  1223. /* SEND-RECORDS does nothing because there are no External
  1224. Tables specified for this SmartViewer, and there are no
  1225. tables specified in any contained Browse, Query, or Frame. */
  1226. END PROCEDURE.
  1227. /* _UIB-CODE-BLOCK-END */
  1228. &ANALYZE-RESUME
  1229. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed V-table-Win
  1230. PROCEDURE state-changed :
  1231. /* -----------------------------------------------------------
  1232. Purpose:
  1233. Parameters: <none>
  1234. Notes:
  1235. -------------------------------------------------------------*/
  1236. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  1237. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  1238. CASE p-state:
  1239. WHEN 'Aktivieren' THEN DO:
  1240. RUN dispatch IN THIS-PROCEDURE ('enable-fields':U).
  1241. RETURN NO-APPLY.
  1242. END.
  1243. WHEN 'Deaktivieren' THEN DO:
  1244. RUN dispatch IN THIS-PROCEDURE ('disable-fields':U).
  1245. RETURN NO-APPLY.
  1246. END.
  1247. {src/adm/template/vstates.i}
  1248. END CASE.
  1249. END PROCEDURE.
  1250. /* _UIB-CODE-BLOCK-END */
  1251. &ANALYZE-RESUME
  1252. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZAHLUNG V-table-Win
  1253. PROCEDURE ZAHLUNG :
  1254. /*------------------------------------------------------------------------------
  1255. Purpose:
  1256. Parameters: <none>
  1257. Notes:
  1258. ------------------------------------------------------------------------------*/
  1259. VZaBetr = F_Zah_Betr.
  1260. VSkBetr = F_Skonto.
  1261. VDatum = F_Zah_Datum.
  1262. VBankKto = F_Konto.
  1263. VHerk = 61.
  1264. FIND Debop WHERE RECID(Debop) = DebopRECID NO-LOCK.
  1265. DO TRANSACTION:
  1266. FIND BDebop USE-INDEX Debop-k1
  1267. WHERE BDebop.Firma = Debop.Firma
  1268. AND BDebop.Knr = Debop.Knr
  1269. AND BDebop.Faknr = Debop.Faknr.
  1270. FIND BDebst USE-INDEX Debst-k1
  1271. WHERE BDebst.Firma = Debop.Firma
  1272. AND BDebst.Knr = Debop.Knr.
  1273. DVKnr = Debop.Knr.
  1274. DVFaknr = Debop.Faknr.
  1275. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK.
  1276. FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK.
  1277. IF VDatum > BDebop.Faellig THEN VZahFl = FALSE.
  1278. ELSE VZahFl = TRUE.
  1279. IF VZahFl THEN VKte = TRIM(SUBSTRING(Helptext[02],01,10)).
  1280. ELSE VKte = TRIM(SUBSTRING(Helptext[02],11,10)).
  1281. IF VSkoKto = '' THEN DO:
  1282. VSkoKto = SteuNr.Konto_Skonto.
  1283. IF VSkoKto = '' THEN DO:
  1284. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1
  1285. WHERE Waehrung.Firma = GVFirma
  1286. AND Waehrung.FRW = Steuer.Fwc03 NO-ERROR.
  1287. IF AVAILABLE Waehrung THEN VSkoKto = Waehrung.DebSammKto.
  1288. END.
  1289. END.
  1290. VDebKto = BDebop.Konto.
  1291. FBFirma = Steuer.FBFirma.
  1292. FIND LAST TransNr USE-INDEX TransNr-k1
  1293. WHERE TransNr.Firma = StFirma
  1294. AND TransNr.TrNr1 = BDebop.TrNr1 NO-LOCK NO-ERROR.
  1295. VTrNr1 = TransNr.TrNr1.
  1296. VTrNr2 = TransNr.TrNr2 + 1.
  1297. CREATE TransNr.
  1298. ASSIGN TransNr.Firma = StFirma
  1299. TransNr.TrNr1 = VTrNr1
  1300. TransNr.TrNr2 = VTrNr2
  1301. TransNr.Herk = VHerk.
  1302. VBuchtxt1 = Adresse.Anzeig_Br.
  1303. VBuchtxt2 = Helptext[01]
  1304. + " "
  1305. + STRING(BDebop.Faknr,"9999999").
  1306. FOR EACH WFile:
  1307. DELETE WFile.
  1308. END.
  1309. /* ---- Zahlung verarbeiten (Normal) --------------------------------------- */
  1310. DO WHILE VZaBetr <> 0 OR VSkBetr <> 0:
  1311. FIND LAST bDebza USE-INDEX Debza-k1
  1312. WHERE bDebza.Firma = GVFirma
  1313. AND bDebza.Knr = DVKnr
  1314. AND bDebza.Faknr = DVFaknr NO-LOCK NO-ERROR.
  1315. IF AVAILABLE bDebza THEN VTrnr = bDebza.Trnr + 1.
  1316. ELSE VTrnr = 1.
  1317. CREATE bDebza.
  1318. ASSIGN bDebza.Firma = GVFirma
  1319. bDebza.Knr = DVKnr
  1320. bDebza.Faknr = DVFaknr
  1321. bDebza.Trnr = VTrnr
  1322. bDebza.Zahdat = VDatum
  1323. bDebza.Zahbetr = VZaBetr
  1324. bDebza.Skonto = VSkBetr
  1325. bDebza.Konto = VBankKto
  1326. bDebza.TrNr1 = VTrNr1
  1327. bDebza.TrNr2 = VTrNr2
  1328. bDebza.FRW = BDebop.Frw
  1329. bDebza.Kurs = BDebop.Kurs
  1330. bDebza.Faktor = BDebop.Faktor
  1331. bDebza.Kte = VKte.
  1332. RUN MEHRWERTSTEUER. /* MWSTBERECHNUNG */
  1333. BDebop.Saldo = BDebop.Saldo - VZaBetr - VSkBetr.
  1334. BDebop.Skonto = BDebop.Skonto + VSkBetr.
  1335. BDebop.Zahbetr = BDebop.Zahbetr + VZaBetr.
  1336. BDebop.Zahdat = VDatum.
  1337. BDebst.Saldo = BDebst.Saldo - VZaBetr - VSkBetr.
  1338. FIND LAST Debhi USE-INDEX Debhi-k1
  1339. WHERE Debhi.Firma = GVFirma
  1340. AND Debhi.Knr = DVKnr NO-LOCK NO-ERROR.
  1341. IF AVAILABLE Debhi THEN VTrnr = Debhi.Trnr + 1.
  1342. ELSE VTrnr = 1.
  1343. CREATE Debhi.
  1344. ASSIGN Debhi.Firma = bDebza.Firma
  1345. Debhi.Knr = bDebza.Knr
  1346. Debhi.Trnr = VTrnr
  1347. Debhi.TrNr1 = VTrNr1
  1348. Debhi.TrNr2 = VTrNr2
  1349. Debhi.Datum = bDebza.Zahdat
  1350. Debhi.Faknr = bDebza.Faknr
  1351. Debhi.Haben = bDebza.Zahbetr
  1352. Debhi.Kte = bDebza.Kte
  1353. Debhi.Konto = bDebza.Konto
  1354. Debhi.Skonto = bDebza.Skonto
  1355. Debhi.Saldo = BDebst.Saldo
  1356. Debhi.FRW = BDebop.Frw
  1357. Debhi.Kurs = BDebop.Kurs
  1358. Debhi.Faktor = BDebop.Faktor.
  1359. IF NOT BDebop.Wustabr THEN DO:
  1360. FIND LAST Debwu USE-INDEX Debwu-k1
  1361. WHERE Debwu.Firma = GVFirma
  1362. AND Debwu.Knr = bDebza.Knr
  1363. AND Debwu.Faknr = bDebza.Faknr NO-LOCK NO-ERROR.
  1364. IF AVAILABLE Debwu THEN VTrnr = Debwu.Trnr + 1.
  1365. ELSE VTrnr = 1.
  1366. CREATE Debwu.
  1367. ASSIGN Debwu.Firma = bDebza.Firma
  1368. Debwu.Knr = bDebza.Knr
  1369. Debwu.Faknr = bDebza.Faknr
  1370. Debwu.Trnr = VTrnr
  1371. Debwu.TrNr1 = VTrNr1
  1372. Debwu.TrNr2 = VTrNr2
  1373. Debwu.Datum = bDebza.Zahdat
  1374. Debwu.Betrag = bDebza.Zahbetr
  1375. Debwu.Konto = bDebza.Konto
  1376. Debwu.Kte = bDebza.Kte
  1377. Debwu.FRW = BDebop.Frw
  1378. Debwu.Kurs = BDebop.Kurs
  1379. Debwu.Faktor = BDebop.Faktor.
  1380. DO ix = 1 TO 11:
  1381. ASSIGN Debwu.Wustpfl[ix] = bDebza.Zahwpfl[ix]
  1382. Debwu.Wust [ix] = bDebza.Zahwust[ix]
  1383. Debwu.Skonto [ix] = bDebza.ZahSkon[ix].
  1384. END.
  1385. END.
  1386. /* ---- Interface fuer Zahlung, Skonto ------------------------------------- */
  1387. FIND FIRST WFile WHERE WFile.Kto1 = bDebza.Konto
  1388. AND WFile.Kto2 = BDebop.Konto NO-ERROR.
  1389. IF NOT AVAILABLE WFile THEN DO:
  1390. CREATE WFile.
  1391. ASSIGN WFile.Kto1 = bDebza.Konto
  1392. WFile.Kto2 = BDebop.Konto
  1393. WFile.MWST_Cd = 0.
  1394. END.
  1395. ASSIGN WFile.Betrag = WFile.Betrag + VZaBetr.
  1396. FIND FIRST WFile WHERE WFile.Kto1 = VSkoKto
  1397. AND WFile.Kto2 = BDebop.Konto NO-ERROR.
  1398. IF NOT AVAILABLE WFile THEN DO:
  1399. CREATE WFile.
  1400. ASSIGN WFile.Kto1 = VSkoKto
  1401. WFile.Kto2 = BDebop.Konto
  1402. WFile.MWST_Cd = 0.
  1403. END.
  1404. ASSIGN WFile.Betrag = WFile.Betrag + VSkBetr.
  1405. /* ---- Interface fuer Mehrwertsteuer (Vereinnahmt und Skonto) ------------- */
  1406. DO ix = 1 TO 10:
  1407. IF bDebza.ZahWpfl[ix] = 0 AND
  1408. bDebza.ZahSkon[ix] = 0 THEN NEXT.
  1409. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
  1410. WHERE Wust.WuCd = ix NO-ERROR.
  1411. IF NOT BDebop.WustAbr AND
  1412. bDebza.ZahWpfl[ix] <> 0 THEN DO:
  1413. IF BDebop.Fakincl[ix] THEN DO:
  1414. RundBetr = bDebza.ZahWpfl[ix]
  1415. / (100 + BDebop.FakWPro[ix])
  1416. * BDebop.FakWPro[ix].
  1417. Rundcode = 1.
  1418. RUN "v8/runden.p".
  1419. END.
  1420. ELSE DO:
  1421. Rundbetr = bDebza.ZahWust[ix].
  1422. END.
  1423. FIND FIRST WFile WHERE WFile.Kto1 = SteuNr.Konto_Wust_H
  1424. AND WFile.Kto2 = Wust.Konto NO-ERROR.
  1425. IF NOT AVAILABLE WFile THEN DO:
  1426. CREATE WFile.
  1427. ASSIGN WFile.Kto1 = SteuNr.Konto_Wust_H
  1428. WFile.Kto2 = Wust.Konto
  1429. WFile.MWST_Cd = 0.
  1430. END.
  1431. ASSIGN WFile.Betrag = WFile.Betrag + Rundbetr.
  1432. END.
  1433. IF NOT BDebop.WustAbr AND
  1434. bDebza.ZahSkon[ix] <> 0 THEN DO:
  1435. IF NOT BDebop.WustAbr THEN LVKto1 = SteuNr.Konto_Wust_H.
  1436. ELSE LVKto1 = Wust.Konto.
  1437. LVKto2 = VSkoKto.
  1438. RundBetr = bDebza.ZahSkon[ix] * BDebop.FakWPro[ix]
  1439. / (100 + BDebop.FakWPro[ix]).
  1440. Rundcode = 1.
  1441. RUN "v8/runden.p".
  1442. FIND FIRST WFile WHERE WFile.Kto1 = LVKto1
  1443. AND WFile.Kto2 = LVKto2 NO-ERROR.
  1444. IF NOT AVAILABLE WFile THEN DO:
  1445. CREATE WFile.
  1446. ASSIGN WFile.Kto1 = LVKto1
  1447. WFile.Kto2 = LVKto2
  1448. WFile.MWST_Cd = 0.
  1449. END.
  1450. ASSIGN WFile.Betrag = WFile.Betrag + Rundbetr.
  1451. END.
  1452. END.
  1453. RUN INTERFACE.
  1454. DVFaknr = BDebop.Faknr.
  1455. DVKnr = BDebop.Knr.
  1456. RELEASE bDebop.
  1457. RELEASE Debwu.
  1458. RELEASE Debhi.
  1459. RELEASE bDebza.
  1460. RUN new-state ('zahlung_verbucht, MAIN':U).
  1461. LEAVE.
  1462. END. /* Zahlung Normal */
  1463. FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
  1464. AND XTabel.RecArt = 'KTotal'
  1465. AND XTabel.Sprcd = 1
  1466. AND XTabel.CodeC = F_Konto NO-ERROR.
  1467. IF NOT AVAILABLE XTabel THEN DO:
  1468. CREATE XTabel.
  1469. ASSIGN XTabel.Firma = GVFirma
  1470. XTabel.RecArt = 'KTotal'
  1471. XTabel.Sprcd = 1
  1472. XTabel.CodeC = F_Konto.
  1473. END.
  1474. XTabel.Dec_1 = XTabel.Dec_1 + F_Zah_Betr.
  1475. F_Konto_Tot = XTabel.Dec_1.
  1476. FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
  1477. AND XTabel.RecArt = 'GTotal'
  1478. AND XTabel.Sprcd = 1
  1479. AND XTabel.CodeC = '' NO-ERROR.
  1480. IF NOT AVAILABLE XTabel THEN DO:
  1481. CREATE XTabel.
  1482. ASSIGN XTabel.Firma = GVFirma
  1483. XTabel.RecArt = 'GTotal'
  1484. XTabel.Sprcd = 1
  1485. XTabel.CodeC = ''.
  1486. END.
  1487. XTabel.Dec_1 = XTabel.Dec_1 + F_Zah_Betr.
  1488. F_Total = XTabel.Dec_1.
  1489. DO WITH FRAME {&FRAME-NAME}:
  1490. DISPLAY F_Konto_Tot F_Total.
  1491. END.
  1492. F_Faknr = 0.
  1493. F_FakDat = ?.
  1494. F_Faellig = ?.
  1495. F_FakBetr = 0.
  1496. F_Saldo_T = 0.
  1497. DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}.
  1498. F_Saldo = 0.
  1499. F_Skonto_Ber = 0.
  1500. F_Sko_Max = 0.
  1501. F_Zah_Betr = 0.
  1502. F_Skonto = 0.
  1503. DISPLAY {&List-4} WITH FRAME {&FRAME-NAME}.
  1504. RUN ANSCHRIFT.
  1505. RETURN NO-APPLY.
  1506. END.
  1507. END PROCEDURE.
  1508. /* _UIB-CODE-BLOCK-END */
  1509. &ANALYZE-RESUME