v-verbuchen.w 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS V-table-Win
  5. /*------------------------------------------------------------------------
  6. File:
  7. Description: from VIEWER.W - Template for SmartViewer Objects
  8. Input Parameters:
  9. <none>
  10. Output Parameters:
  11. <none>
  12. ------------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress UIB. */
  14. /*----------------------------------------------------------------------*/
  15. /* Create an unnamed pool to store all the widgets created
  16. by this procedure. This is a good default which assures
  17. that this procedure's triggers and internal procedures
  18. will execute in this procedure's storage, and that proper
  19. cleanup will occur on deletion of the procedure. */
  20. CREATE WIDGET-POOL.
  21. /* *************************** Definitions ************************** */
  22. /* Parameters Definitions --- */
  23. /* Local Variable Definitions --- */
  24. DEF VAR KRecid AS RECID.
  25. DEF VAR DRecid AS RECID.
  26. DEF VAR ZRecid AS RECID.
  27. DEF VAR SRecid AS RECID.
  28. DEF VAR XFak_Art AS CHAR NO-UNDO.
  29. DEF VAR XAuf_Sta AS CHAR NO-UNDO.
  30. DEF VAR VFak_Art AS INT NO-UNDO.
  31. DEF VAR VAuf_Sta AS INT NO-UNDO.
  32. DEF VAR GWpfl AS DEC DECIMALS 4 EXTENT 12 NO-UNDO.
  33. DEF VAR GWust AS DEC DECIMALS 4 EXTENT 12 NO-UNDO.
  34. DEF VAR GWW AS DEC DECIMALS 4 NO-UNDO.
  35. DEF VAR GSkBer AS DEC DECIMALS 4 NO-UNDO.
  36. DEF VAR GFakBetr AS DEC DECIMALS 4 NO-UNDO.
  37. DEF VAR GBarBetr AS DEC DECIMALS 4 NO-UNDO.
  38. DEF VAR GBarSkon AS DEC DECIMALS 4 NO-UNDO.
  39. DEF VAR GZusBetr AS DEC DECIMALS 4 NO-UNDO.
  40. DEF VAR GTrans AS DEC DECIMALS 4 NO-UNDO.
  41. DEF VAR GVerpa AS DEC DECIMALS 4 NO-UNDO.
  42. DEF VAR GPorto AS DEC DECIMALS 4 NO-UNDO.
  43. DEF VAR VKto_De AS CHAR FORMAT "x(12)" NO-UNDO.
  44. DEF VAR VKto_Ar AS CHAR FORMAT "x(12)" NO-UNDO.
  45. DEF VAR VKto_Wu AS CHAR FORMAT "x(12)" NO-UNDO.
  46. DEF VAR VKto_Dv AS CHAR FORMAT "x(12)" NO-UNDO.
  47. DEF VAR VKto_Ge AS CHAR FORMAT "x(12)" NO-UNDO.
  48. DEF VAR VKto_Soll AS CHAR FORMAT "x(12)" NO-UNDO.
  49. DEF VAR VKto_Haben AS CHAR FORMAT "x(12)" NO-UNDO.
  50. DEF VAR FwFrw AS CHAR NO-UNDO.
  51. DEF VAR VEp AS DEC.
  52. DEF VAR VUms_Grp LIKE Debums.Ums_Grp.
  53. DEF VAR VArt_Grp AS INT.
  54. DEF VAR XAnzPos AS INT.
  55. DEF VAR VAufnr AS INT.
  56. DEF VAR VKnr AS INT.
  57. DEF VAR VSpezTrnr AS INT NO-UNDO.
  58. DEF VAR FBatch AS LOG NO-UNDO.
  59. DEF VAR VPer AS INT.
  60. DEF VAR VJahr AS INT.
  61. DEF VAR VVertr AS INT.
  62. DEF VAR FDatum AS DATE.
  63. DEF VAR VTrNr1 LIKE TransNr.TrNr1.
  64. DEF VAR VTrNr2 LIKE TransNr.TrNr2.
  65. DEF VAR VBuchtxt1 LIKE Interf.Buchtxt1.
  66. DEF VAR VBuchtxt2 LIKE Interf.Buchtxt2.
  67. DEF VAR VZeile AS CHAR FORMAT "x(70)".
  68. DEF VAR VRand AS INT.
  69. DEF VAR VLine AS INT.
  70. DEF VAR FFehler AS LOG.
  71. DEF VAR SperrDat AS DATE.
  72. DEF VAR RoutFehler AS LOG.
  73. DEF BUFFER BAufko FOR Aufko.
  74. DEF BUFFER XAufko FOR Aufko.
  75. DEF BUFFER BAufze FOR Aufze.
  76. DEF BUFFER BDebst FOR Debst.
  77. DEF BUFFER BArtst FOR Artst.
  78. DEF BUFFER BArtbw FOR Artbw.
  79. DEF BUFFER BAdresse FOR Adresse.
  80. DEF BUFFER BTabel FOR Tabel .
  81. DEF BUFFER CSteuer FOR Steuer .
  82. DEF BUFFER BSteuer FOR Steuer .
  83. DEF TEMP-TABLE TFile NO-UNDO
  84. FIELD Kto1 AS CHAR FORMAT "x(12)"
  85. FIELD Kto2 AS CHAR FORMAT "x(12)"
  86. FIELD Betrag AS DEC
  87. FIELD MWST_Cd AS INT
  88. FIELD fMWSt AS LOG INIT FALSE.
  89. { v8/aufkototv.i "NEW" "SHARED" }
  90. DEF VAR VZaBetr AS DEC.
  91. DEF VAR VSkBetr AS DEC.
  92. DEF VAR XDatum AS DATE.
  93. DEF VAR VHerk AS INT.
  94. DEF VAR VBankKto AS CHAR.
  95. DEF VAR VSkoKto AS CHAR.
  96. DEF VAR VDebKto AS CHAR.
  97. DEF VAR VZahFl AS LOG.
  98. DEF VAR VKte AS CHAR.
  99. DEF VAR zz AS INT.
  100. DEF BUFFER BDebop FOR Debop.
  101. DEF BUFFER BDebza FOR Debza.
  102. DEF BUFFER BDebfa FOR Debfa.
  103. DEF VAR VAntZ AS DEC DECIMALS 4.
  104. DEF VAR VAntS AS DEC DECIMALS 4.
  105. DEF VAR XTot AS DEC EXTENT 12.
  106. DEF VAR VZah AS DEC EXTENT 12.
  107. DEF VAR VSko AS DEC EXTENT 12.
  108. DEF VAR VZRes AS DEC.
  109. DEF VAR VSRes AS DEC.
  110. DEF VAR VMax AS INT.
  111. DEF NEW SHARED TEMP-TABLE TVerbucht FIELD Datum AS DATE
  112. FIELD Konto AS CHAR
  113. FIELD FakBetr AS DEC
  114. FIELD ZahBetr AS DEC
  115. FIELD Skonto AS DEC.
  116. /* ---------- Globale Variablen ---------------------------------- */
  117. { v8/globvar.i" " " " "SHARED" }
  118. { v8/debivar.i " " " " "SHARED" }
  119. { v8/artivar.i " " " " "SHARED" }
  120. { v8/contvar.i " " " " "SHARED" }
  121. /* _UIB-CODE-BLOCK-END */
  122. &ANALYZE-RESUME
  123. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  124. /* ******************** Preprocessor Definitions ******************** */
  125. &Scoped-define PROCEDURE-TYPE SmartViewer
  126. &Scoped-define DB-AWARE no
  127. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  128. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  129. &Scoped-define FRAME-NAME F-Main
  130. /* Standard List Definitions */
  131. &Scoped-Define ENABLED-OBJECTS F_VAufnr F_BAufnr F_VKnr F_BKnr F_VDatum ~
  132. F_BDatum F_BuchDat CB-Fak_Art CB-Auf_Sta Btn_Start F_Adresse
  133. &Scoped-Define DISPLAYED-OBJECTS F_VAufnr F_BAufnr F_VKnr F_BKnr F_VDatum ~
  134. F_BDatum F_BuchDat CB-Fak_Art CB-Auf_Sta
  135. /* Custom List Definitions */
  136. /* ADM-CREATE-FIELDS,ADM-ASSIGN-FIELDS,List-3,List-4,List-5,List-6 */
  137. &Scoped-define List-6 F_VAufnr F_BAufnr F_VKnr F_BKnr F_VDatum F_BDatum ~
  138. F_BuchDat
  139. /* _UIB-PREPROCESSOR-BLOCK-END */
  140. &ANALYZE-RESUME
  141. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" V-table-Win _INLINE
  142. /* Actions: ? adm/support/keyedit.w ? ? ? */
  143. /* STRUCTURED-DATA
  144. <KEY-OBJECT>
  145. THIS-PROCEDURE
  146. </KEY-OBJECT>
  147. <FOREIGN-KEYS>
  148. </FOREIGN-KEYS>
  149. <EXECUTING-CODE>
  150. **************************
  151. * Set attributes related to FOREIGN KEYS
  152. */
  153. RUN set-attribute-list (
  154. 'Keys-Accepted = "",
  155. Keys-Supplied = ""':U).
  156. /**************************
  157. </EXECUTING-CODE> */
  158. /* _UIB-CODE-BLOCK-END */
  159. &ANALYZE-RESUME
  160. /* *********************** Control Definitions ********************** */
  161. /* Definitions of the field level widgets */
  162. DEFINE BUTTON Btn_Start
  163. LABEL "Starten"
  164. SIZE 21 BY 1.
  165. DEFINE VARIABLE CB-Auf_Sta AS CHARACTER FORMAT "X(256)":U
  166. LABEL "Auftragstatus"
  167. VIEW-AS COMBO-BOX INNER-LINES 5
  168. DROP-DOWN-LIST
  169. SIZE 43.2 BY 1
  170. BGCOLOR 15 NO-UNDO.
  171. DEFINE VARIABLE CB-Fak_Art AS CHARACTER FORMAT "X(256)":U
  172. LABEL "Faktura-Art"
  173. VIEW-AS COMBO-BOX INNER-LINES 5
  174. DROP-DOWN-LIST
  175. SIZE 43.2 BY 1
  176. BGCOLOR 15 NO-UNDO.
  177. DEFINE VARIABLE F_Adresse AS CHARACTER FORMAT "X(256)":U INITIAL "Hallo"
  178. VIEW-AS FILL-IN NATIVE
  179. SIZE 80.4 BY 1.05
  180. BGCOLOR 14 NO-UNDO.
  181. DEFINE VARIABLE F_BAufnr AS INTEGER FORMAT "9999999":U INITIAL 999999
  182. VIEW-AS FILL-IN NATIVE
  183. SIZE 11 BY 1
  184. BGCOLOR 15 NO-UNDO.
  185. DEFINE VARIABLE F_BDatum AS DATE FORMAT "99.99.9999":U
  186. VIEW-AS FILL-IN NATIVE
  187. SIZE 18.2 BY 1
  188. BGCOLOR 15 NO-UNDO.
  189. DEFINE VARIABLE F_BKnr AS INTEGER FORMAT "999999":U INITIAL 999999
  190. VIEW-AS FILL-IN NATIVE
  191. SIZE 11 BY 1
  192. BGCOLOR 15 NO-UNDO.
  193. DEFINE VARIABLE F_BuchDat AS DATE FORMAT "99.99.9999":U
  194. LABEL "Verbuchungsdatum"
  195. VIEW-AS FILL-IN NATIVE
  196. SIZE 18.2 BY 1 TOOLTIP "Wenn kein Datum eingegeben wird, wird das Rechnungsdatum übernommen"
  197. BGCOLOR 15 NO-UNDO.
  198. DEFINE VARIABLE F_VAufnr AS INTEGER FORMAT "9999999":U INITIAL 0
  199. LABEL "von - bis Fakturanummer"
  200. VIEW-AS FILL-IN NATIVE
  201. SIZE 11 BY 1
  202. BGCOLOR 15 NO-UNDO.
  203. DEFINE VARIABLE F_VDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/1901
  204. LABEL "von - bis Fakturadatum"
  205. VIEW-AS FILL-IN NATIVE
  206. SIZE 16 BY 1
  207. BGCOLOR 15 NO-UNDO.
  208. DEFINE VARIABLE F_VKnr AS INTEGER FORMAT "999999":U INITIAL 0
  209. LABEL "von - bis Faktura-Kundennummer"
  210. VIEW-AS FILL-IN NATIVE
  211. SIZE 11 BY 1
  212. BGCOLOR 15 NO-UNDO.
  213. /* ************************ Frame Definitions *********************** */
  214. DEFINE FRAME F-Main
  215. F_VAufnr AT ROW 2 COL 35 COLON-ALIGNED
  216. F_BAufnr AT ROW 2 COL 58 COLON-ALIGNED NO-LABEL
  217. F_VKnr AT ROW 3 COL 35 COLON-ALIGNED
  218. F_BKnr AT ROW 3 COL 58 COLON-ALIGNED NO-LABEL
  219. F_VDatum AT ROW 4 COL 35 COLON-ALIGNED
  220. F_BDatum AT ROW 4 COL 58 COLON-ALIGNED NO-LABEL
  221. F_BuchDat AT ROW 5 COL 35 COLON-ALIGNED
  222. CB-Fak_Art AT ROW 7 COL 35 COLON-ALIGNED
  223. CB-Auf_Sta AT ROW 8 COL 35 COLON-ALIGNED
  224. Btn_Start AT ROW 9.52 COL 37
  225. F_Adresse AT ROW 11.38 COL 3.4 COLON-ALIGNED NO-LABEL
  226. "--" VIEW-AS TEXT
  227. SIZE 2.8 BY 1.05 AT ROW 2 COL 55
  228. "--" VIEW-AS TEXT
  229. SIZE 2.8 BY 1.05 AT ROW 3 COL 55
  230. "--" VIEW-AS TEXT
  231. SIZE 2.8 BY 1.05 AT ROW 4 COL 55
  232. WITH 1 DOWN KEEP-TAB-ORDER OVERLAY
  233. SIDE-LABELS NO-UNDERLINE THREE-D
  234. AT COL 1 ROW 1
  235. SIZE 90.8 BY 13
  236. TITLE "Verbuchen der gedruckten Rechnungen"
  237. DEFAULT-BUTTON Btn_Start.
  238. /* *********************** Procedure Settings ************************ */
  239. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  240. /* Settings for THIS-PROCEDURE
  241. Type: SmartViewer
  242. Allow: Basic,DB-Fields
  243. Frames: 1
  244. Add Fields to: EXTERNAL-TABLES
  245. Other Settings: PERSISTENT-ONLY COMPILE
  246. */
  247. /* This procedure should always be RUN PERSISTENT. Report the error, */
  248. /* then cleanup and return. */
  249. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  250. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  251. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  252. RETURN.
  253. END.
  254. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  255. /* ************************* Create Window ************************** */
  256. &ANALYZE-SUSPEND _CREATE-WINDOW
  257. /* DESIGN Window definition (used by the UIB)
  258. CREATE WINDOW V-table-Win ASSIGN
  259. HEIGHT = 13
  260. WIDTH = 90.8.
  261. /* END WINDOW DEFINITION */
  262. */
  263. &ANALYZE-RESUME
  264. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB V-table-Win
  265. /* ************************* Included-Libraries *********************** */
  266. {src/adm/method/viewer.i}
  267. /* _UIB-CODE-BLOCK-END */
  268. &ANALYZE-RESUME
  269. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  270. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  271. /* SETTINGS FOR WINDOW V-table-Win
  272. VISIBLE,,RUN-PERSISTENT */
  273. /* SETTINGS FOR FRAME F-Main
  274. NOT-VISIBLE FRAME-NAME */
  275. ASSIGN
  276. FRAME F-Main:HIDDEN = TRUE.
  277. /* SETTINGS FOR FILL-IN F_Adresse IN FRAME F-Main
  278. NO-DISPLAY */
  279. /* SETTINGS FOR FILL-IN F_BAufnr IN FRAME F-Main
  280. 6 */
  281. /* SETTINGS FOR FILL-IN F_BDatum IN FRAME F-Main
  282. 6 */
  283. /* SETTINGS FOR FILL-IN F_BKnr IN FRAME F-Main
  284. 6 */
  285. /* SETTINGS FOR FILL-IN F_BuchDat IN FRAME F-Main
  286. 6 */
  287. /* SETTINGS FOR FILL-IN F_VAufnr IN FRAME F-Main
  288. 6 */
  289. /* SETTINGS FOR FILL-IN F_VDatum IN FRAME F-Main
  290. 6 */
  291. /* SETTINGS FOR FILL-IN F_VKnr IN FRAME F-Main
  292. 6 */
  293. /* _RUN-TIME-ATTRIBUTES-END */
  294. &ANALYZE-RESUME
  295. /* Setting information for Queries and Browse Widgets fields */
  296. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  297. /* Query rebuild information for FRAME F-Main
  298. _Options = "NO-LOCK"
  299. _Query is NOT OPENED
  300. */ /* FRAME F-Main */
  301. &ANALYZE-RESUME
  302. /* ************************ Control Triggers ************************ */
  303. &Scoped-define SELF-NAME Btn_Start
  304. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start V-table-Win
  305. ON CHOOSE OF Btn_Start IN FRAME F-Main /* Starten */
  306. DO:
  307. DEF VAR AnzFak AS INT NO-UNDO.
  308. RUN WERTE_EINLESEN.
  309. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY.
  310. F_Adresse = 'Aufträge werden verbucht ...'.
  311. DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
  312. /* ------------------------------------------------------------------------ */
  313. /* Verbuchen der Aufträge */
  314. /* ------------------------------------------------------------------------ */
  315. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK.
  316. FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK.
  317. FOR EACH TVerbucht:
  318. DELETE TVerbucht.
  319. END.
  320. AnzFak = 0.
  321. FOR EACH BAufko USE-INDEX Aufko-k7 NO-LOCK
  322. WHERE BAufko.Firma = GVFirma
  323. AND BAufko.Fak_Art = VFak_Art
  324. AND BAufko.Auf_Sta = VAuf_Sta
  325. AND BAufko.Faknr >= F_VAufnr
  326. AND BAufko.Faknr <= F_BAufnr
  327. AND BAufko.Fak_Knr >= F_VKnr
  328. AND BAufko.Fak_Knr <= F_BKnr
  329. AND BAufko.Fak_Dat >= F_VDatum
  330. AND BAufko.Fak_Dat <= F_BDatum
  331. AND BAufko.Faknr <> 0
  332. AND BAufko.Gedruckt = TRUE
  333. AND BAufko.Verbucht = FALSE
  334. AND ((BAufko.Samm_Nr = 0) OR
  335. (BAufko.Samm_Nr > 0 AND
  336. BAufko.Auf_Sta > 3)) TRANSACTION
  337. BREAK BY BAufko.Fak_Knr
  338. BY BAufko.Faknr
  339. BY BAufko.Aufnr :
  340. IF FIRST-OF ( BAufko.Faknr ) THEN DO:
  341. FIND Adresse USE-INDEX Adresse-k1
  342. WHERE Adresse.Firma = AdFirma
  343. AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK.
  344. F_Adresse = Adresse.Anzeig_Br.
  345. DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
  346. EMPTY TEMP-TABLE TFile.
  347. FDatum = F_BuchDat.
  348. IF FDatum = ? THEN FDatum = BAufko.Fak_Dat.
  349. IF FDatum < SperrDat THEN FDatum = SperrDat + 1.
  350. VPer = MONTH(FDatum).
  351. VJahr = YEAR (FDatum).
  352. FFehler = FALSE.
  353. VAufnr = XVAufnr.
  354. VKnr = XVKnr.
  355. GWpfl = 0.
  356. GWust = 0.
  357. GWW = 0.
  358. GSkBer = 0.
  359. GFakBetr = 0.
  360. GBarBetr = 0.
  361. GZusBetr = 0.
  362. GBarSkon = 0.
  363. GTrans = 0.
  364. GVerpa = 0.
  365. GPorto = 0.
  366. AnzFak = AnzFak + 1.
  367. END.
  368. KRecid = RECID(BAufko).
  369. XVAufnr = BAufko.Aufnr.
  370. XVKnr = BAufko.Fak_Knr.
  371. FIND BDebst USE-INDEX Debst-k1
  372. WHERE BDebst.Firma = GVFirma
  373. AND BDebst.Knr = XVKnr NO-LOCK NO-ERROR.
  374. DRecid = RECID(BDebst).
  375. VKto_De = SteuNr.Konto_Debit.
  376. VKto_Ge = SteuNr.Konto_Gebinde.
  377. FOR EACH BAufze USE-INDEX Aufze-k1
  378. WHERE BAufze.Firma = BAufko.Firma
  379. AND BAufze.Aufnr = BAufko.Aufnr
  380. AND BAufze.Artnr > 0:
  381. FIND BArtst OF BAufze NO-ERROR.
  382. IF NOT AVAILABLE BArtst THEN DO:
  383. BAufze.Verbucht = TRUE.
  384. NEXT.
  385. END.
  386. FIND BArtbw OF BAufze NO-ERROR.
  387. IF NOT AVAILABLE BArtbw THEN DO:
  388. BAufze.Verbucht = TRUE.
  389. NEXT.
  390. END.
  391. VKto_Ar = SteuNr.Konto_Ertrag.
  392. VKto_Soll = VKto_De.
  393. VKto_Haben = VKto_Ar.
  394. DO WHILE NOT BAufze.Verbucht:
  395. RoutFehler = TRUE.
  396. RUN BUCHEN_ARTIKEL.
  397. LEAVE.
  398. END.
  399. IF RoutFehler = TRUE THEN DO:
  400. FFehler = TRUE.
  401. NEXT.
  402. END.
  403. IF BAufko.Fak_Art <> 99 THEN DO:
  404. FIND FIRST TFile WHERE TFile.Kto1 = VKto_De
  405. AND TFile.Kto2 = VKto_Ar
  406. AND TFile.MWST_Cd = BAufze.WuCd NO-ERROR.
  407. IF NOT AVAILABLE TFile THEN DO:
  408. CREATE TFile.
  409. ASSIGN TFile.Kto1 = VKto_De
  410. TFile.Kto2 = VKto_Ar
  411. TFile.MWSt_Cd = BAufze.WuCd
  412. TFile.fMWSt = FALSE.
  413. END.
  414. ASSIGN TFile.Betrag = TFile.Betrag + BAufze.Net_Betr
  415. - BAufze.Auf_Rab - BAufze.Abh_Rab
  416. - BAufze.Auf_Sp_Rab.
  417. END.
  418. GZusBetr = GZusBetr + BAufze.Zus_Betr.
  419. BAufze.Verbucht = TRUE.
  420. END.
  421. DO ix = 1 TO 12:
  422. GWpfl[ix] = GWpfl[ix] + BAufko.Wpfl[ix].
  423. GWust[ix] = GWust[ix] + BAufko.Wust[ix].
  424. GWW = GWW + BAufko.WW [ix].
  425. END.
  426. GSkBer = GSkBer + BAufko.Sk_Ber.
  427. GFakBetr = GFakBetr + BAufko.Auf_Tot.
  428. GBarBetr = GBarBetr + BAufko.Bar_Betr.
  429. GBarSkon = GBarSkon + BAufko.Bar_Skonto.
  430. GTrans = GTrans + BAufko.Transp.
  431. GVerpa = GVerpa + BAufko.Verpack.
  432. GPorto = GPorto + BAufko.Porto.
  433. RUN GEBINDE_IN_TFILE ( INPUT KRecid ).
  434. IF NOT LAST-OF ( BAufko.Faknr ) THEN DO:
  435. FIND Aufko WHERE RECID(Aufko) = KRecid.
  436. Aufko.Verbucht = TRUE.
  437. NEXT.
  438. END.
  439. GFakBetr = 0.
  440. Rundbetr = 0.
  441. DO ix = 1 TO 12:
  442. Rundbetr = Rundbetr + GWpfl[ix] + GWust[ix].
  443. END.
  444. Rundcode = 1.
  445. RUN "v8/runden.p".
  446. GFakBetr = Rundbetr.
  447. REPEAT ON ERROR UNDO, LEAVE:
  448. IF FFehler = TRUE THEN LEAVE.
  449. FIND Aufko WHERE RECID(Aufko) = KRecid.
  450. FIND Debst WHERE RECID(Debst) = DRecid.
  451. IF BAufko.Fak_Art = 99 THEN DO.
  452. Aufko.Verbucht = TRUE.
  453. LEAVE.
  454. END.
  455. VBuchtxt1 = 'Debitorrechnung:'
  456. + STRING(BAufko.Faknr," 999999").
  457. VBuchtxt2 = F_Adresse.
  458. FIND Kondi USE-INDEX Kondi-k1
  459. WHERE Kondi.Sprcd = GVSprcd
  460. AND Kondi.Kond = BAufko.Kond NO-LOCK NO-ERROR.
  461. IF NOT AVAILABLE Kondi THEN DO:
  462. FIND Kondi USE-INDEX Kondi-k1
  463. WHERE Kondi.Sprcd = GVSprcd
  464. AND Kondi.Kond = Debst.Kond NO-LOCK NO-ERROR.
  465. END.
  466. IF NOT AVAILABLE Kondi THEN DO:
  467. FIND Kondi USE-INDEX Kondi-k1
  468. WHERE Kondi.Sprcd = GVSprcd
  469. AND Kondi.Kond = 1 NO-LOCK NO-ERROR.
  470. END.
  471. FIND LAST TransNr USE-INDEX TransNr-k1
  472. WHERE TransNr.Firma = StFirma NO-LOCK NO-ERROR.
  473. IF AVAILABLE TransNr THEN DO:
  474. VTrNr1 = TransNr.TrNr1 + 1.
  475. VTrNr2 = 1.
  476. END.
  477. ELSE DO:
  478. VTrNr1 = 1.
  479. VTrNr2 = 1.
  480. END.
  481. CREATE TransNr.
  482. ASSIGN TransNr.Firma = StFirma
  483. TransNr.TrNr1 = VTrNr1
  484. TransNr.TrNr2 = VTrNr2
  485. TransNr.Herk = 51.
  486. CREATE Debop.
  487. ASSIGN Debop.Firma = BAufko.Firma
  488. Debop.Knr = BAufko.Fak_Knr
  489. Debop.Faknr = BAufko.Faknr
  490. Debop.Fakdat = FDatum
  491. Debop.Faellig = FDatum + Kondi.Faellig
  492. Debop.Skber = GSkBer
  493. Debop.WW = GWW
  494. Debop.Fakbetr = GFakBetr
  495. Debop.Saldo = GFakBetr
  496. Debop.Kond = BAufko.Kond
  497. Debop.Transp = 0
  498. Debop.Porto = 0
  499. Debop.Verpack = 0
  500. Debop.Konto = VKto_De
  501. Debop.Vertr = Debst.Vertr
  502. Debop.Kte = 'DEF':U
  503. Debop.TrNr1 = VTrNr1
  504. Debop.TrNr2 = VTrNr2
  505. Debop.FRW = FwFRW
  506. Debop.Kurs = 1.0
  507. Debop.Faktor = 1.
  508. IF Steuer.MWST = 0 THEN Debop.WustAbr = TRUE. /* vereinbahrt */
  509. ELSE Debop.WustAbr = FALSE. /* vereinnahmt */
  510. DO ix = 1 TO 12:
  511. FIND FIRST Wust USE-INDEX Wust-k2
  512. WHERE Wust.WuCd = ix NO-LOCK NO-ERROR.
  513. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  514. WHERE MWSTAns.MWST_Cd = ix
  515. AND MWSTAns.Datum <= BAufko.Kond_Datum
  516. NO-LOCK NO-ERROR.
  517. ASSIGN Debop.FakWpfl[ix] = GWpfl[ix]
  518. Debop.FakWust[ix] = GWust[ix].
  519. IF AVAILABLE Wust THEN ASSIGN Debop.FakIncl[ix] = Wust.Incl
  520. Debop.FakWPro[ix] = Wust.Proz.
  521. IF AVAILABLE MWSTAns THEN Debop.FakWPro[ix] = MWSTAns.Ansatz.
  522. END.
  523. CREATE Debfa.
  524. ASSIGN Debfa.Firma = Debop.Firma
  525. Debfa.Knr = Debop.Knr
  526. Debfa.Faknr = Debop.Faknr
  527. Debfa.Fakdat = Debop.Fakdat
  528. Debfa.Faellig = Debop.Faellig
  529. Debfa.Fakbetr = Debop.Fakbetr
  530. Debfa.Skber = Debop.Skber
  531. Debfa.WW = Debop.WW
  532. Debfa.Transp = Debop.Transp
  533. Debfa.Porto = Debop.Porto
  534. Debfa.Verpack = Debop.Verpack
  535. Debfa.Konto = Debop.Konto
  536. Debfa.Vertr = Debop.Vertr
  537. Debfa.Kte = Debop.Kte
  538. Debfa.TrNr1 = Debop.TrNr1
  539. Debfa.TrNr2 = Debop.TrNr2
  540. Debfa.FRW = Debop.FRW
  541. Debfa.Kurs = Debop.Kurs
  542. Debfa.Faktor = 1.
  543. DO ix = 1 TO 12:
  544. ASSIGN Debfa.FakWpfl[ix] = Debop.FakWpfl[ix]
  545. Debfa.FakWust[ix] = Debop.FakWust[ix].
  546. END.
  547. FIND LAST Debhi USE-INDEX Debhi-k1
  548. WHERE Debhi.Firma = Debop.Firma
  549. AND Debhi.Knr = Debop.Knr NO-LOCK NO-ERROR.
  550. IF AVAILABLE Debhi THEN ix = Debhi.Trnr + 1.
  551. ELSE ix = 1.
  552. CREATE Debhi.
  553. ASSIGN Debhi.Firma = Debop.Firma
  554. Debhi.Knr = Debop.Knr
  555. Debhi.Trnr = ix
  556. Debhi.Datum = Debop.Fakdat
  557. Debhi.Faknr = Debop.Faknr
  558. Debhi.Kte = Debop.Kte
  559. Debhi.Soll = Debop.Fakbetr
  560. Debhi.Transp = Debop.Transp
  561. Debhi.Porto = Debop.Porto
  562. Debhi.Verpack = Debop.Verpack
  563. Debhi.Konto = Debop.Konto
  564. Debhi.TrNr1 = Debop.TrNr1
  565. Debhi.TrNr2 = Debop.TrNr2
  566. Debhi.FRW = Debop.FRW
  567. Debhi.Kurs = 1.0
  568. Debhi.Faktor = 1
  569. Debhi.Saldo = Debst.Saldo + Debop.Fakbetr.
  570. IF Steuer.MWST = 0 THEN DO: /* Mehrwertsteuer vereinbart */
  571. CREATE Debwu.
  572. ASSIGN Debwu.Firma = Debop.Firma
  573. Debwu.Knr = Debop.Knr
  574. Debwu.Faknr = Debop.Faknr
  575. Debwu.Trnr = 1
  576. Debwu.Datum = Debop.Fakdat
  577. Debwu.Betrag = Debop.Fakbetr
  578. Debwu.Konto = Debop.Konto
  579. Debwu.Kte = Debop.Kte
  580. Debwu.TrNr1 = Debop.TrNr1
  581. Debwu.TrNr2 = Debop.TrNr2
  582. Debwu.FRW = Debop.FRW
  583. Debwu.Kurs = 1.0
  584. Debwu.Faktor = 1.
  585. DO ix = 1 TO 12:
  586. IF Debop.FakWpfl[ix] = 0 THEN NEXT.
  587. ASSIGN Debwu.Wustpfl[ix] = Debop.FakWpfl[ix]
  588. Debwu.Wust [ix] = Debop.FakWust[ix].
  589. END.
  590. END.
  591. /* ---- Interface fuer Mehrwertsteuer -------------------------------------- */
  592. DO ix = 1 TO 10:
  593. IF GWpfl[ix] = 0 THEN NEXT.
  594. FIND FIRST Wust USE-INDEX Wust-k2
  595. WHERE Wust.WuCd = ix NO-LOCK NO-ERROR.
  596. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  597. WHERE MWSTAns.MWST_Cd = ix
  598. AND MWSTAns.Datum <= BAufko.Kond_Datum
  599. NO-LOCK NO-ERROR.
  600. IF Steuer.MWST = 0 THEN VKto_Wu = Wust.Konto.
  601. ELSE VKto_Wu = SteuNr.Konto_Wust_H.
  602. IF Wust.incl THEN DO:
  603. IF VKto_Ar <> VKto_Wu THEN DO:
  604. RundBetr = GWpfl[ix] / (100 + MWSTAns.Ansatz) * MWSTAns.Ansatz.
  605. FIND FIRST TFile WHERE TFile.Kto1 = VKto_Ar
  606. AND TFile.Kto2 = VKto_Wu
  607. AND TFile.MWST_Cd = ix NO-ERROR.
  608. IF NOT AVAILABLE TFile THEN DO:
  609. CREATE TFile.
  610. ASSIGN TFile.Kto1 = VKto_Ar
  611. TFile.Kto2 = VKto_Wu
  612. TFile.MWST_Cd = ix
  613. TFile.fMWSt = TRUE.
  614. END.
  615. ASSIGN TFile.Betrag = TFile.Betrag + Rundbetr.
  616. END.
  617. END.
  618. ELSE DO:
  619. FIND FIRST TFile WHERE TFile.Kto1 = VKto_De
  620. AND TFile.Kto2 = VKto_Wu
  621. AND TFile.MWSt_Cd = ix NO-ERROR.
  622. IF NOT AVAILABLE TFile THEN DO:
  623. CREATE TFile.
  624. ASSIGN TFile.Kto1 = VKto_De
  625. TFile.Kto2 = VKto_Wu
  626. TFile.MWST_Cd = ix
  627. TFile.fMWSt = TRUE.
  628. END.
  629. ASSIGN TFile.Betrag = TFile.Betrag + GWust[ix].
  630. END.
  631. END.
  632. /* ---- Interface fuer Transport, Porto, Verpackung ------------------------ */
  633. DO ix = 1 TO 3:
  634. CASE ix:
  635. WHEN 1 THEN Rundbetr = GTrans.
  636. WHEN 2 THEN Rundbetr = GPorto.
  637. WHEN 3 THEN Rundbetr = GVerpa.
  638. END CASE.
  639. IF VTotal[ix] = 0 THEN NEXT.
  640. IF ix = 4 THEN VKto_Dv = SteuNr.Konto_Transp.
  641. IF ix = 5 THEN VKto_Dv = SteuNr.Konto_Porto.
  642. IF ix = 6 THEN VKto_Dv = SteuNr.Konto_Verpack.
  643. FIND FIRST TFile WHERE TFile.Kto1 = VKto_De
  644. AND TFile.Kto2 = VKto_Dv
  645. AND TFile.MWSt_Cd = 12 NO-ERROR.
  646. IF NOT AVAILABLE TFile THEN DO:
  647. CREATE TFile.
  648. ASSIGN TFile.Kto1 = VKto_De
  649. TFile.Kto2 = VKto_Dv
  650. TFile.MWST_Cd = 12
  651. TFile.fMWSt = FALSE.
  652. END.
  653. ASSIGN TFile.Betrag = TFile.Betrag + Rundbetr.
  654. END.
  655. RUN INTERFACE.
  656. Debst.Saldo = Debst.Saldo + Debop.Fakbetr.
  657. Debst.Zuschl_Verr = Debst.Zuschl_Verr + GZusBetr.
  658. Debst.LetztVK = FDatum.
  659. Aufko.Verbucht = TRUE.
  660. FIND FIRST TVerbucht WHERE TVerbucht.Datum = Debop.FakDat
  661. AND TVerbucht.Konto = Debop.Konto NO-ERROR.
  662. IF NOT AVAILABLE TVerbucht THEN DO:
  663. CREATE TVerbucht.
  664. ASSIGN TVerbucht.Datum = Debop.FakDat
  665. TVerbucht.Konto = Debop.Konto.
  666. END.
  667. TVerbucht.FakBetr = TVerbucht.Fakbetr + Debop.Fakbetr.
  668. IF Debst.Passant THEN RUN PASSANT.
  669. IF GBarBetr <> 0 OR
  670. GBarSkon <> 0 THEN DO:
  671. FIND LAST Zahlung USE-INDEX Zahlung-k1
  672. WHERE Zahlung.Firma = GVFirma NO-LOCK NO-ERROR.
  673. IF AVAILABLE Zahlung THEN i4 = Zahlung.Trnr + 1.
  674. ELSE i4 = 1.
  675. CREATE Zahlung.
  676. ASSIGN Zahlung.Firma = Debop.Firma
  677. Zahlung.Trnr = i4
  678. Zahlung.Knr = Debop.Knr
  679. Zahlung.Faknr = STRING(Debop.Faknr,"9999999")
  680. Zahlung.Datum_1 = Debop.FakDat
  681. Zahlung.Konto_S = Aufko.Bar_Konto
  682. Zahlung.Konto_H = Debop.Konto
  683. Zahlung.Betrag = GBarBetr
  684. Zahlung.Skonto = GBarSkon
  685. Zahlung.Zahl_Art = 90.
  686. FIND FIRST TVerbucht WHERE TVerbucht.Datum = Zahlung.Datum_1
  687. AND TVerbucht.Konto = Zahlung.Konto_S
  688. NO-ERROR.
  689. IF NOT AVAILABLE TVerbucht THEN DO:
  690. CREATE TVerbucht.
  691. ASSIGN TVerbucht.Datum = Zahlung.Datum_1
  692. TVerbucht.Konto = Zahlung.Konto_S.
  693. END.
  694. TVerbucht.ZahBetr = TVerbucht.ZahBetr + Zahlung.Betrag.
  695. TVerbucht.Skonto = TVerbucht.Skonto + Zahlung.Skonto.
  696. END.
  697. LEAVE.
  698. END.
  699. IF BAufko.Samm_Nr <> 0 THEN DO:
  700. FOR EACH XAufko USE-INDEX Aufko-k2
  701. WHERE XAufko.Firma = BAufko.Firma
  702. AND XAufko.Knr = BAufko.Knr
  703. AND XAufko.Samm_Nr <> 0
  704. AND XAufko.Auf_Sta < 4:
  705. XAufko.Faknr = 0.
  706. XAufko.Gedruckt = FALSE.
  707. END.
  708. END.
  709. END.
  710. RUN LOESCHEN_AUFTRAG.
  711. RUN BARZAHLUNGEN.
  712. DEF VAR htVerbucht AS HANDLE NO-UNDO.
  713. htVerbucht = TEMP-TABLE tVerbucht:DEFAULT-BUFFER-HANDLE.
  714. IF AnzFak > 1 THEN RUN 'g-verbuchjour.w':U ( htVerbucht ) NO-ERROR.
  715. ENABLE Btn_Start WITH FRAME {&FRAME-NAME}.
  716. IF FBatch THEN DO:
  717. XVKnr = 0.
  718. XVAufnr = 0.
  719. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  720. RETURN NO-APPLY.
  721. END.
  722. RETURN NO-APPLY.
  723. END.
  724. /* _UIB-CODE-BLOCK-END */
  725. &ANALYZE-RESUME
  726. &Scoped-define SELF-NAME CB-Auf_Sta
  727. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB-Auf_Sta V-table-Win
  728. ON VALUE-CHANGED OF CB-Auf_Sta IN FRAME F-Main /* Auftragstatus */
  729. DO:
  730. DO WITH FRAME {&FRAME-NAME}:
  731. ix = LOOKUP(SELF:SCREEN-VALUE, SELF:LIST-ITEMS, '|').
  732. VFak_Art = INTEGER(ENTRY(ix, XFak_Art, "|")).
  733. END.
  734. END.
  735. /* _UIB-CODE-BLOCK-END */
  736. &ANALYZE-RESUME
  737. &Scoped-define SELF-NAME CB-Fak_Art
  738. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB-Fak_Art V-table-Win
  739. ON VALUE-CHANGED OF CB-Fak_Art IN FRAME F-Main /* Faktura-Art */
  740. DO:
  741. DO WITH FRAME {&FRAME-NAME}:
  742. ix = LOOKUP(SELF:SCREEN-VALUE, SELF:LIST-ITEMS, '|').
  743. VFak_Art = INTEGER(ENTRY(ix, XFak_Art, "|")).
  744. END.
  745. END.
  746. /* _UIB-CODE-BLOCK-END */
  747. &ANALYZE-RESUME
  748. &UNDEFINE SELF-NAME
  749. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK V-table-Win
  750. /* *************************** Main Block *************************** */
  751. FIND BSteuer USE-INDEX Steuer-k1
  752. WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
  753. SperrDat = DYNAMIC-FUNCTION('getSperrDatum':U) NO-ERROR.
  754. CB-Fak_Art:DELIMITER = "|".
  755. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE FwFRW.
  756. IF FwFRW = ? THEN FwFRW = 'CHF'.
  757. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  758. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  759. &ENDIF
  760. /************************ INTERNAL PROCEDURES ********************/
  761. /* _UIB-CODE-BLOCK-END */
  762. &ANALYZE-RESUME
  763. /* ********************** Internal Procedures *********************** */
  764. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available V-table-Win _ADM-ROW-AVAILABLE
  765. PROCEDURE adm-row-available :
  766. /*------------------------------------------------------------------------------
  767. Purpose: Dispatched to this procedure when the Record-
  768. Source has a new row available. This procedure
  769. tries to get the new row (or foriegn keys) from
  770. the Record-Source and process it.
  771. Parameters: <none>
  772. ------------------------------------------------------------------------------*/
  773. /* Define variables needed by this internal procedure. */
  774. {src/adm/template/row-head.i}
  775. /* Process the newly available records (i.e. display fields,
  776. open queries, and/or pass records on to any RECORD-TARGETS). */
  777. {src/adm/template/row-end.i}
  778. END PROCEDURE.
  779. /* _UIB-CODE-BLOCK-END */
  780. &ANALYZE-RESUME
  781. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BARZAHLUNGEN V-table-Win
  782. PROCEDURE BARZAHLUNGEN :
  783. /*------------------------------------------------------------------------------
  784. Purpose:
  785. Parameters: <none>
  786. Notes:
  787. ------------------------------------------------------------------------------*/
  788. F_Adresse = 'Zahlungen werden verbucht ...'.
  789. DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
  790. DEF VAR VKnr AS INT.
  791. DEF VAR VFaknr AS INT.
  792. Helptext = ''.
  793. FOR EACH LiBild USE-INDEX LiBild-k1
  794. WHERE LiBild.Sprcd = GVSprcd
  795. AND LiBild.Prog = 'ZAHLUNG' NO-LOCK:
  796. Helptext[LiBild.Tenr] = LiBild.Litext.
  797. END.
  798. FOR EACH Zahlung USE-INDEX Zahlung-k1
  799. WHERE Zahlung.Firma = GVFirma
  800. AND Zahlung.Zahl_Art = 90
  801. AND Zahlung.Verbucht = FALSE TRANSACTION:
  802. VZaBetr = Zahlung.Betrag.
  803. VSkBetr = Zahlung.Skonto.
  804. XDatum = Zahlung.Datum_1.
  805. VBankKto = Zahlung.Konto_S.
  806. VHerk = 62.
  807. DVKnr = Zahlung.Knr.
  808. DVFaknr = INTEGER(Zahlung.Faknr).
  809. FIND Debop USE-INDEX Debop-k1
  810. WHERE Debop.Firma = Zahlung.Firma
  811. AND Debop.Knr = DVKnr
  812. AND Debop.Faknr = DVFaknr NO-LOCK.
  813. FIND BDebop USE-INDEX Debop-k1
  814. WHERE BDebop.Firma = Debop.Firma
  815. AND BDebop.Knr = Debop.Knr
  816. AND BDebop.Faknr = Debop.Faknr.
  817. FIND BDebst USE-INDEX Debst-k1
  818. WHERE BDebst.Firma = Debop.Firma
  819. AND BDebst.Knr = Debop.Knr.
  820. FIND Adresse USE-INDEX Adresse-k1
  821. WHERE Adresse.Firma = AdFirma
  822. AND Adresse.Knr = Debop.Knr NO-LOCK NO-ERROR.
  823. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK.
  824. FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK.
  825. IF XDatum > BDebop.Faellig THEN VZahFl = FALSE.
  826. ELSE VZahFl = TRUE.
  827. VKte = TRIM(SUBSTRING(Helptext[02],41,04)).
  828. IF VSkoKto = '' THEN DO:
  829. VSkoKto = SteuNr.Konto_Skonto.
  830. IF VSkoKto = '' THEN DO:
  831. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1
  832. WHERE Waehrung.Firma = GVFirma
  833. AND Waehrung.FRW = FwFRW NO-ERROR.
  834. IF AVAILABLE Waehrung THEN VSkoKto = Waehrung.DebSammKto.
  835. END.
  836. END.
  837. VDebKto = BDebop.Konto.
  838. FIND LAST TransNr USE-INDEX TransNr-k1
  839. WHERE TransNr.Firma = StFirma
  840. AND TransNr.TrNr1 = BDebop.TrNr1 NO-LOCK NO-ERROR.
  841. VTrNr1 = TransNr.TrNr1.
  842. VTrNr2 = TransNr.TrNr2 + 1.
  843. CREATE TransNr.
  844. ASSIGN TransNr.Firma = StFirma
  845. TransNr.TrNr1 = VTrNr1
  846. TransNr.TrNr2 = VTrNr2
  847. TransNr.Herk = VHerk.
  848. VBuchtxt1 = Adresse.Anzeig_Br.
  849. VBuchtxt2 = Helptext[01]
  850. + " "
  851. + STRING(BDebop.Faknr,"9999999").
  852. EMPTY TEMP-TABLE TFile.
  853. /* ---- Zahlung verarbeiten (Normal) --------------------------------------- */
  854. DO WHILE VZaBetr <> 0 OR VSkBetr <> 0:
  855. FIND LAST BDebza USE-INDEX Debza-k1
  856. WHERE BDebza.Firma = GVFirma
  857. AND BDebza.Knr = DVKnr
  858. AND BDebza.Faknr = DVFaknr NO-LOCK NO-ERROR.
  859. IF AVAILABLE BDebza THEN VTrnr = BDebza.Trnr + 1.
  860. ELSE VTrnr = 1.
  861. CREATE BDebza.
  862. ASSIGN BDebza.Firma = GVFirma
  863. BDebza.Knr = DVKnr
  864. BDebza.Faknr = DVFaknr
  865. BDebza.Trnr = VTrnr
  866. BDebza.Zahdat = XDatum
  867. BDebza.Zahbetr = VZaBetr
  868. BDebza.Skonto = VSkBetr
  869. BDebza.Konto = VBankKto
  870. BDebza.TrNr1 = VTrNr1
  871. BDebza.TrNr2 = VTrNr2
  872. BDebza.FRW = BDebop.Frw
  873. BDebza.Kurs = BDebop.Kurs
  874. BDebza.Faktor = BDebop.Faktor
  875. BDebza.Kte = VKte.
  876. RUN MEHRWERTSTEUER. /* MWSTBERECHNUNG */
  877. BDebop.Saldo = BDebop.Saldo - VZaBetr - VSkBetr.
  878. BDebop.Skonto = BDebop.Skonto + VSkBetr.
  879. BDebop.Zahbetr = BDebop.Zahbetr + VZaBetr.
  880. BDebop.Zahdat = XDatum.
  881. BDebst.Saldo = BDebst.Saldo - VZaBetr - VSkBetr.
  882. FIND LAST Debhi USE-INDEX Debhi-k1
  883. WHERE Debhi.Firma = GVFirma
  884. AND Debhi.Knr = DVKnr NO-LOCK NO-ERROR.
  885. IF AVAILABLE Debhi THEN VTrnr = Debhi.Trnr + 1.
  886. ELSE VTrnr = 1.
  887. CREATE Debhi.
  888. ASSIGN Debhi.Firma = BDebza.Firma
  889. Debhi.Knr = BDebza.Knr
  890. Debhi.Trnr = VTrnr
  891. Debhi.TrNr1 = VTrNr1
  892. Debhi.TrNr2 = VTrNr2
  893. Debhi.Datum = BDebza.Zahdat
  894. Debhi.Faknr = BDebza.Faknr
  895. Debhi.Haben = BDebza.Zahbetr
  896. Debhi.Kte = BDebza.Kte
  897. Debhi.Konto = BDebza.Konto
  898. Debhi.Skonto = BDebza.Skonto
  899. Debhi.Saldo = BDebst.Saldo
  900. Debhi.FRW = BDebop.Frw
  901. Debhi.Kurs = BDebop.Kurs
  902. Debhi.Faktor = BDebop.Faktor.
  903. IF NOT BDebop.Wustabr THEN DO:
  904. FIND LAST Debwu USE-INDEX Debwu-k1
  905. WHERE Debwu.Firma = GVFirma
  906. AND Debwu.Knr = BDebza.Knr
  907. AND Debwu.Faknr = BDebza.Faknr NO-LOCK NO-ERROR.
  908. IF AVAILABLE Debwu THEN VTrnr = Debwu.Trnr + 1.
  909. ELSE VTrnr = 1.
  910. CREATE Debwu.
  911. ASSIGN Debwu.Firma = BDebza.Firma
  912. Debwu.Knr = BDebza.Knr
  913. Debwu.Faknr = BDebza.Faknr
  914. Debwu.Trnr = VTrnr
  915. Debwu.TrNr1 = VTrNr1
  916. Debwu.TrNr2 = VTrNr2
  917. Debwu.Datum = BDebza.Zahdat
  918. Debwu.Betrag = BDebza.Zahbetr
  919. Debwu.Konto = BDebza.Konto
  920. Debwu.Kte = BDebza.Kte
  921. Debwu.FRW = BDebop.Frw
  922. Debwu.Kurs = BDebop.Kurs
  923. Debwu.Faktor = BDebop.Faktor.
  924. DO ix = 1 TO 11:
  925. ASSIGN Debwu.Wustpfl[ix] = BDebza.Zahwpfl[ix]
  926. Debwu.Wust [ix] = BDebza.Zahwust[ix]
  927. Debwu.Skonto [ix] = BDebza.ZahSkon[ix].
  928. END.
  929. END.
  930. /* ---- Interface fuer Zahlung, Skonto ------------------------------------- */
  931. VKto_Soll = BDebza.Konto.
  932. VKto_Haben = BDebop.Konto.
  933. FIND FIRST TFile WHERE TFile.Kto1 = BDebza.Konto
  934. AND TFile.Kto2 = BDebop.Konto NO-ERROR.
  935. IF NOT AVAILABLE TFile THEN DO:
  936. CREATE TFile.
  937. ASSIGN TFile.Kto1 = BDebza.Konto
  938. TFile.Kto2 = BDebop.Konto
  939. TFile.MWST_Cd = 0.
  940. END.
  941. ASSIGN TFile.Betrag = TFile.Betrag + VZaBetr.
  942. FIND FIRST TFile WHERE TFile.Kto1 = VSkoKto
  943. AND TFile.Kto2 = BDebop.Konto NO-ERROR.
  944. IF NOT AVAILABLE TFile THEN DO:
  945. CREATE TFile.
  946. ASSIGN TFile.Kto1 = VSkoKto
  947. TFile.Kto2 = BDebop.Konto
  948. TFile.MWST_Cd = 0.
  949. END.
  950. ASSIGN TFile.Betrag = TFile.Betrag + VSkBetr.
  951. /* ---- Interface fuer Mehrwertsteuer (Vereinnahmt und Skonto) ------------- */
  952. DO ix = 1 TO 10:
  953. IF BDebza.ZahWpfl[ix] = 0 AND
  954. BDebza.ZahSkon[ix] = 0 THEN NEXT.
  955. FIND FIRST Wust USE-INDEX Wust-k2
  956. WHERE Wust.WuCd = ix NO-LOCK.
  957. IF NOT BDebop.WustAbr AND
  958. BDebza.ZahWpfl[ix] <> 0 THEN DO:
  959. IF BDebop.Fakincl[ix] THEN DO:
  960. RundBetr = BDebza.ZahWpfl[ix]
  961. / (100 + BDebop.FakWPro[ix])
  962. * BDebop.FakWPro[ix].
  963. Rundcode = 1.
  964. RUN "v8/runden.p".
  965. END.
  966. ELSE DO:
  967. Rundbetr = BDebza.ZahWust[ix].
  968. END.
  969. FIND FIRST TFile WHERE TFile.Kto1 = SteuNr.Konto_Wust_H
  970. AND TFile.Kto2 = Wust.Konto NO-ERROR.
  971. IF NOT AVAILABLE TFile THEN DO:
  972. CREATE TFile.
  973. ASSIGN TFile.Kto1 = SteuNr.Konto_Wust_H
  974. TFile.Kto2 = Wust.Konto
  975. TFile.MWST_Cd = 0.
  976. END.
  977. ASSIGN TFile.Betrag = TFile.Betrag + Rundbetr.
  978. END.
  979. IF BDebza.ZahSkon[ix] <> 0 THEN DO:
  980. IF NOT BDebop.WustAbr THEN LVKto1 = SteuNr.Konto_Wust_H.
  981. ELSE LVKto1 = Wust.Konto.
  982. LVKto2 = VSkoKto.
  983. RundBetr = BDebza.ZahSkon[ix] * BDebop.FakWPro[ix]
  984. / (100 + BDebop.FakWPro[ix]).
  985. Rundcode = 1.
  986. RUN "v8/runden.p".
  987. FIND FIRST TFile WHERE TFile.Kto1 = LVKto1
  988. AND TFile.Kto2 = LVKto2 NO-ERROR.
  989. IF NOT AVAILABLE TFile THEN DO:
  990. CREATE TFile.
  991. ASSIGN TFile.Kto1 = LVKto1
  992. TFile.Kto2 = LVKto2
  993. TFile.MWST_Cd = 0.
  994. END.
  995. ASSIGN TFile.Betrag = TFile.Betrag + Rundbetr.
  996. END.
  997. END.
  998. RUN INTERFACE.
  999. DVFaknr = BDebop.Faknr.
  1000. DVKnr = BDebop.Knr.
  1001. LEAVE.
  1002. END. /* Zahlung Normal */
  1003. Zahlung.Verbucht = TRUE.
  1004. END.
  1005. DVKnr = VKnr.
  1006. DVFaknr = VFaknr.
  1007. F_Adresse = 'Zahlungen sind verbucht'.
  1008. DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
  1009. FOR EACH Zahlung WHERE Zahlung.Firma = GVFirma
  1010. AND Zahlung.Verbucht = TRUE TRANSACTION:
  1011. DELETE Zahlung.
  1012. END.
  1013. RETURN.
  1014. END PROCEDURE.
  1015. /* _UIB-CODE-BLOCK-END */
  1016. &ANALYZE-RESUME
  1017. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUCHEN_ARTIKEL V-table-Win
  1018. PROCEDURE BUCHEN_ARTIKEL :
  1019. /*------------------------------------------------------------------------------
  1020. Purpose:
  1021. Parameters: <none>
  1022. Notes:
  1023. ------------------------------------------------------------------------------*/
  1024. DEF VAR KRecid AS RECID NO-UNDO.
  1025. DEF VAR ZRecid AS RECID NO-UNDO.
  1026. DEF VAR VNetto AS DEC NO-UNDO.
  1027. DEF VAR VEp AS DEC NO-UNDO.
  1028. DEF VAR VLiter AS DEC NO-UNDO.
  1029. KRecid = RECID(BAufko).
  1030. ZRecid = RECID(BAufze).
  1031. REPEAT ON ERROR UNDO, RETURN:
  1032. FIND Aufko WHERE RECID(Aufko) = KRecid NO-LOCK.
  1033. FIND Aufze WHERE RECID(Aufze) = ZRecid NO-LOCK.
  1034. FIND FIRST Wust USE-INDEX Wust-k2
  1035. WHERE Wust.WuCd = BAufze.WuCd NO-LOCK NO-ERROR.
  1036. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1037. WHERE MWSTAns.MWST_Cd = BAufze.WuCd
  1038. AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK NO-ERROR.
  1039. VNetto = BAufze.Net_Betr - BAufze.Auf_Rab - BAufze.Abh_Rab - BAufze.Auf_Sp_Rab.
  1040. IF Wust.Incl THEN VNetto = VNetto * 100 / (100 + MWSTAns.Ansatz).
  1041. VLiter = BAufze.Liter.
  1042. VEp = BAufze.Ep * BAufze.MGeli.
  1043. { v8/artbw_aufze.I "BArtbw" }
  1044. FIND DebUms USE-INDEX DebUms-k1
  1045. WHERE DebUms.Firma = GVFirma
  1046. AND DebUms.Jahr = VJahr
  1047. AND DebUms.Knr = XVKnr
  1048. AND DebUms.Ums_Grp = 999 NO-ERROR.
  1049. IF NOT AVAILABLE DebUms THEN DO:
  1050. CREATE DebUms.
  1051. ASSIGN DebUms.Firma = GVFirma
  1052. DebUms.Jahr = VJahr
  1053. DebUms.Knr = XVKnr
  1054. DebUms.Ums_Grp = 999.
  1055. END.
  1056. ASSIGN DebUms.Me_Mon[VPer] = DebUms.Me_Mon[VPer] + BAufze.MGeli
  1057. DebUms.Me_Kum = DebUms.Me_Kum + BAufze.MGeli
  1058. DebUms.Ep_Mon[VPer] = DebUms.Ep_Mon[VPer] + VEp
  1059. DebUms.Ep_Kum = DebUms.Ep_Kum + VEp
  1060. DebUms.Vp_Mon[VPer] = DebUms.Vp_Mon[VPer] + VNetto
  1061. DebUms.Vp_Kum = DebUms.Vp_Kum + VNetto.
  1062. FIND ArtUms USE-INDEX ArtUms-k1
  1063. WHERE ArtUms.Firma = GVFirma
  1064. AND ArtUms.Jahr = VJahr
  1065. AND ArtUms.Artnr = BAufze.Artnr
  1066. AND ArtUms.Inhalt = BAufze.Inhalt
  1067. AND ArtUms.Jahrg = BAufze.Jahr NO-ERROR.
  1068. IF NOT AVAILABLE ArtUms THEN DO:
  1069. CREATE ArtUms.
  1070. ASSIGN ArtUms.Firma = GVFirma
  1071. ArtUms.Jahr = VJahr
  1072. ArtUms.Artnr = BAufze.Artnr
  1073. ArtUms.Inhalt = BAufze.Inhalt
  1074. ArtUms.Jahrg = BAufze.Jahr NO-ERROR.
  1075. END.
  1076. ASSIGN ArtUms.Me_Mon[VPer] = ArtUms.Me_Mon[VPer] + BAufze.MGeli
  1077. ArtUms.Me_Kum = ArtUms.Me_Kum + BAufze.MGeli
  1078. ArtUms.Ep_Mon[VPer] = ArtUms.Ep_Mon[VPer] + VEp
  1079. ArtUms.Ep_Kum = ArtUms.Ep_Kum + VEp
  1080. ArtUms.Li_Mon[VPer] = ArtUms.Li_Mon[VPer] + VLiter
  1081. ArtUms.Li_Kum = ArtUms.Li_Kum + VLiter
  1082. ArtUms.Vp_Mon[VPer] = ArtUms.Vp_Mon[VPer] + VNetto
  1083. ArtUms.Vp_Kum = ArtUms.Vp_Kum + VNetto.
  1084. FIND DeArUms USE-INDEX DeArUms-k1
  1085. WHERE DeArUms.Firma = GVFirma
  1086. AND DeArUms.Jahr = VJahr
  1087. AND DeArUms.Knr = XVKnr
  1088. AND DeArUms.Artnr = BAufze.Artnr
  1089. AND DeArUms.Inhalt = BAufze.Inhalt
  1090. AND DeArUms.Jahrg = BAufze.Jahr NO-ERROR.
  1091. IF NOT AVAILABLE DeArUms THEN DO:
  1092. CREATE DeArUms.
  1093. ASSIGN DeArUms.Firma = GVFirma
  1094. DeArUms.Jahr = VJahr
  1095. DeArUms.Knr = XVKnr
  1096. DeArUms.Artnr = BAufze.Artnr
  1097. DeArUms.Inhalt = BAufze.Inhalt
  1098. DeArUms.Jahrg = BAufze.Jahr NO-ERROR.
  1099. END.
  1100. ASSIGN DeArUms.Me_Mon[VPer] = DeArUms.Me_Mon[VPer] + BAufze.MGeli
  1101. DeArUms.Me_Kum = DeArUms.Me_Kum + BAufze.MGeli
  1102. DeArUms.Ep_Mon[VPer] = DeArUms.Ep_Mon[VPer] + VEp
  1103. DeArUms.Ep_Kum = DeArUms.Ep_Kum + VEp
  1104. DeArUms.Li_Mon[VPer] = DeArUms.Li_Mon[VPer] + VLiter
  1105. DeArUms.Li_Kum = DeArUms.Li_Kum + VLiter
  1106. DeArUms.Vp_Mon[VPer] = DeArUms.Vp_Mon[VPer] + VNetto
  1107. DeArUms.Vp_Kum = DeArUms.Vp_Kum + VNetto.
  1108. LEAVE.
  1109. END.
  1110. RoutFehler = FALSE.
  1111. END PROCEDURE.
  1112. /* _UIB-CODE-BLOCK-END */
  1113. &ANALYZE-RESUME
  1114. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI V-table-Win _DEFAULT-DISABLE
  1115. PROCEDURE disable_UI :
  1116. /*------------------------------------------------------------------------------
  1117. Purpose: DISABLE the User Interface
  1118. Parameters: <none>
  1119. Notes: Here we clean-up the user-interface by deleting
  1120. dynamic widgets we have created and/or hide
  1121. frames. This procedure is usually called when
  1122. we are ready to "clean-up" after running.
  1123. ------------------------------------------------------------------------------*/
  1124. /* Hide all frames. */
  1125. HIDE FRAME F-Main.
  1126. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  1127. END PROCEDURE.
  1128. /* _UIB-CODE-BLOCK-END */
  1129. &ANALYZE-RESUME
  1130. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_IN_TFILE V-table-Win
  1131. PROCEDURE GEBINDE_IN_TFILE :
  1132. /*------------------------------------------------------------------------------
  1133. Purpose:
  1134. Parameters: <none>
  1135. Notes:
  1136. ------------------------------------------------------------------------------*/
  1137. DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1138. FIND Aufko WHERE RECID(Aufko) = ipRecid NO-LOCK.
  1139. FOR EACH AufGKon USE-INDEX AufGKon-k1
  1140. WHERE AufGKon.Firma = Aufko.Firma
  1141. AND AufGKon.Aufnr = Aufko.Aufnr NO-LOCK:
  1142. FIND FIRST TFile WHERE TFile.Kto1 = VKto_De
  1143. AND TFile.Kto2 = VKto_Ge
  1144. AND TFile.MWSt_Cd = AufGKon.MWSt_Cd NO-ERROR.
  1145. IF NOT AVAILABLE TFile THEN DO:
  1146. CREATE TFile.
  1147. ASSIGN TFile.Kto1 = VKto_De
  1148. TFile.Kto2 = VKto_Ge
  1149. TFile.MWSt_Cd = AufGKon.MWSt_Cd.
  1150. END.
  1151. ASSIGN TFile.Betrag = TFile.Betrag + AufGKon.Betrag.
  1152. END.
  1153. END PROCEDURE.
  1154. /* _UIB-CODE-BLOCK-END */
  1155. &ANALYZE-RESUME
  1156. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INTERFACE V-table-Win
  1157. PROCEDURE INTERFACE :
  1158. /*------------------------------------------------------------------------------
  1159. Purpose:
  1160. Parameters: <none>
  1161. Notes:
  1162. ------------------------------------------------------------------------------*/
  1163. DEF VAR Diff AS DEC NO-UNDO.
  1164. DEF VAR Betrag AS DEC NO-UNDO.
  1165. DEF VAR IfFirma AS CHAR NO-UNDO.
  1166. Diff = Debop.Fakbetr.
  1167. FOR EACH TFile BY TFile.Kto1
  1168. BY TFile.Kto2
  1169. BY TFile.MWSt_Cd:
  1170. IF TFile.Betrag = 0 THEN DO:
  1171. DELETE TFile.
  1172. NEXT.
  1173. END.
  1174. IF TFile.Kto1 = VKto_De THEN Diff = Diff - TFile.Betrag.
  1175. IF BSteuer.Fwc09 = '' THEN DO:
  1176. ASSIGN TFile.MWSt_Cd = 0
  1177. TFile.fMWSt = FALSE.
  1178. END.
  1179. END.
  1180. IF Diff <> 0 THEN DO:
  1181. FIND FIRST TFile WHERE TFile.Kto1 = VKto_Soll
  1182. AND TFile.Kto2 = VKto_Haben NO-ERROR.
  1183. IF AVAILABLE TFile THEN DO:
  1184. TFile.Betrag = TFile.Betrag + Diff.
  1185. Diff = 0.
  1186. END.
  1187. END.
  1188. IF BSteuer.Fwc09 = '' THEN IfFirma = BSteuer.FBFirma.
  1189. ELSE IfFirma = BSteuer.Fwc09.
  1190. FOR EACH TFile BREAK BY TFile.Kto1
  1191. BY TFile.Kto2
  1192. BY TFile.MWSt_Cd:
  1193. IF FIRST-OF ( TFile.MWSt_Cd ) THEN Betrag = 0.
  1194. Betrag = Betrag + TFile.Betrag.
  1195. IF NOT LAST-OF ( TFile.MWSt_Cd ) THEN NEXT.
  1196. FIND LAST Interf USE-INDEX Interf-k1
  1197. WHERE Interf.Firma = IfFirma
  1198. AND Interf.TrNr1 = VTrNr1
  1199. AND Interf.TrNr2 = VTrNr2 NO-LOCK NO-ERROR.
  1200. IF AVAILABLE Interf THEN ix = Interf.Trnr + 1.
  1201. ELSE ix = 1.
  1202. CREATE Interf.
  1203. ASSIGN Interf.Firma = IfFirma
  1204. Interf.TrNr1 = VTrNr1
  1205. Interf.TrNr2 = VTrNr2
  1206. Interf.TrNr = ix
  1207. Interf.Kto1 = TFile.Kto1
  1208. Interf.Kto2 = TFile.Kto2
  1209. Interf.Herk = TransNr.Herk
  1210. Interf.Datum = FDatum
  1211. Interf.Buchtxt1 = VBuchtxt1
  1212. Interf.Buchtxt2 = VBuchtxt2
  1213. Interf.Betrag = Betrag
  1214. Interf.Betrag_Frw = Betrag
  1215. Interf.FRW = Debop.FRW
  1216. Interf.Faktor = Debop.Faktor
  1217. Interf.Kurs = Debop.Kurs
  1218. Interf.Verbucht = FALSE
  1219. Interf.Faknr = STRING(Debop.Faknr,"9999999")
  1220. Interf.Knr = Debop.Knr
  1221. Interf.MWST_Nr = ""
  1222. Interf.MWST_Cd = TFile.MWST_Cd
  1223. Interf.HKFirma = Debop.Firma
  1224. Interf.MWST_Art = (IF TFile.fMWSt THEN 1 ELSE 0).
  1225. DELETE TFile.
  1226. END.
  1227. IF Diff <> 0 THEN DO:
  1228. FIND LAST Interf USE-INDEX Interf-k1
  1229. WHERE Interf.Firma = IfFirma
  1230. AND Interf.TrNr1 = VTrNr1
  1231. AND Interf.TrNr2 = VTrNr2 NO-LOCK NO-ERROR.
  1232. IF AVAILABLE Interf THEN ix = Interf.Trnr + 1.
  1233. ELSE ix = 1.
  1234. CREATE Interf.
  1235. ASSIGN Interf.Firma = iFFirma
  1236. Interf.TrNr1 = VTrNr1
  1237. Interf.TrNr2 = VTrNr2
  1238. Interf.TrNr = ix
  1239. Interf.Kto1 = VKto_De
  1240. Interf.Kto2 = VKto_Ar
  1241. Interf.Herk = TransNr.Herk
  1242. Interf.Datum = FDatum
  1243. Interf.Buchtxt1 = VBuchtxt1
  1244. Interf.Buchtxt2 = 'Rundungsdifferenzen'
  1245. Interf.Betrag = Diff
  1246. Interf.Betrag_Frw = Diff
  1247. Interf.FRW = Debop.FRW
  1248. Interf.Faktor = Debop.Faktor
  1249. Interf.Kurs = Debop.Kurs
  1250. Interf.Verbucht = FALSE
  1251. Interf.Faknr = STRING(Debop.Faknr,"9999999")
  1252. Interf.Knr = Debop.Knr
  1253. Interf.MWST_Nr = ""
  1254. Interf.MWST_Cd = 0
  1255. Interf.HKFirma = Debop.Firma
  1256. Interf.MWST_Art = 0.
  1257. END.
  1258. END PROCEDURE.
  1259. /* _UIB-CODE-BLOCK-END */
  1260. &ANALYZE-RESUME
  1261. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view V-table-Win
  1262. PROCEDURE local-view :
  1263. /*------------------------------------------------------------------------------
  1264. Purpose: Override standard ADM method
  1265. Notes:
  1266. ------------------------------------------------------------------------------*/
  1267. DEF VAR ok AS LOG NO-UNDO.
  1268. DEF VAR xx AS INT NO-UNDO.
  1269. IF Linknr = 9 THEN FBatch = TRUE.
  1270. ELSE FBatch = FALSE.
  1271. FBatch = TRUE.
  1272. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  1273. DO WITH FRAME {&FRAME-NAME}:
  1274. CB-Fak_Art:DELIMITER = "|".
  1275. CB-Auf_Sta:DELIMITER = "|".
  1276. XFak_Art = ''.
  1277. ok = TRUE.
  1278. xx = 0.
  1279. DO WHILE ok:
  1280. ok = CB-Fak_Art:DELETE(1).
  1281. END.
  1282. FOR EACH Tabel USE-INDEX Tabel-k1
  1283. WHERE Tabel.Firma = GVFirma
  1284. AND Tabel.RecArt = 'FAKART'
  1285. AND Tabel.CodeC = ''
  1286. AND Tabel.Sprcd = 1
  1287. AND Tabel.Int_3 >= 3 NO-LOCK: /* Faktura */
  1288. ok = CB-Fak_Art:ADD-LAST(Tabel.Bez1).
  1289. XFak_Art = XFak_Art + STRING(Tabel.CodeI,"999|").
  1290. END.
  1291. ix = 1.
  1292. CB-Fak_Art:SCREEN-VALUE = CB-Fak_Art:ENTRY(ix) NO-ERROR.
  1293. XAuf_Sta = ''.
  1294. ok = TRUE.
  1295. xx = 0.
  1296. DO WHILE ok:
  1297. ok = CB-Auf_Sta:DELETE(1).
  1298. END.
  1299. FOR EACH Tabel USE-INDEX Tabel-k1
  1300. WHERE Tabel.Firma = GVFirma
  1301. AND Tabel.RecArt = 'AUFSTATUS'
  1302. AND Tabel.CodeC = ''
  1303. AND Tabel.Sprcd = 1 NO-LOCK:
  1304. ok = CB-Auf_Sta:ADD-LAST(Tabel.Bez1).
  1305. XAuf_Sta = XAuf_Sta + STRING(Tabel.CodeI,"999|").
  1306. END.
  1307. ix = 1.
  1308. CB-Auf_Sta:SCREEN-VALUE = CB-Auf_Sta:ENTRY(ix) NO-ERROR.
  1309. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1310. FIND Aufko USE-INDEX Aufko-k1
  1311. WHERE Aufko.Firma = GVFirma
  1312. AND Aufko.Aufnr = XVAufnr NO-LOCK NO-ERROR.
  1313. IF NOT AVAILABLE Aufko THEN DO:
  1314. FBatch = FALSE.
  1315. LEAVE.
  1316. END.
  1317. F_VAufnr = Aufko.Faknr.
  1318. F_BAufnr = Aufko.Faknr.
  1319. F_VKnr = Aufko.Fak_Knr.
  1320. F_BKnr = Aufko.Fak_Knr.
  1321. F_VDatum = Aufko.Fak_Dat.
  1322. F_BDatum = Aufko.Fak_Dat.
  1323. F_Buchdat = ?.
  1324. FIND Tabel USE-INDEX Tabel-k1
  1325. WHERE Tabel.Firma = GVFirma
  1326. AND Tabel.RecArt = 'FAKART'
  1327. AND Tabel.CodeC = ''
  1328. AND Tabel.CodeI = Aufko.Fak_Art
  1329. AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
  1330. IF Tabel.Int_3 = 4 THEN DO:
  1331. F_Buchdat = Aufko.Fak_Dat.
  1332. DO ix = 1 TO 31:
  1333. IF MONTH(F_Buchdat) <> MONTH(F_Buchdat + 1) THEN LEAVE.
  1334. F_Buchdat = F_Buchdat + 1.
  1335. END.
  1336. F_VDatum = DATE(MONTH(F_Buchdat),01,YEAR(F_Buchdat)).
  1337. F_BDatum = DATE(MONTH(F_Buchdat),28,YEAR(F_Buchdat)).
  1338. DO ix = 1 TO 5:
  1339. IF MONTH(F_BDatum) <> MONTH(F_BDatum + 1) THEN LEAVE.
  1340. F_BDatum = F_BDatum + 1.
  1341. END.
  1342. END.
  1343. IF F_Buchdat <> ? AND
  1344. F_Buchdat <= SperrDat THEN F_Buchdat:BGCOLOR = 12.
  1345. ELSE F_Buchdat:BGCOLOR = ?.
  1346. XVKnr = Aufko.Knr.
  1347. LVDat = Aufko.Fak_Dat.
  1348. IF LVDat = ? THEN LVDat = TODAY.
  1349. ix = LOOKUP(STRING(Aufko.Fak_Art,"999"), XFak_Art, '|').
  1350. CB-Fak_Art:SCREEN-VALUE = CB-Fak_Art:ENTRY(ix) NO-ERROR.
  1351. ix = LOOKUP(STRING(Aufko.Auf_Sta,"999"), XAuf_Sta, '|').
  1352. CB-Auf_Sta:SCREEN-VALUE = CB-Auf_Sta:ENTRY(ix) NO-ERROR.
  1353. LEAVE.
  1354. END.
  1355. DO WITH FRAME {&FRAME-NAME}:
  1356. DISPLAY {&List-6}.
  1357. F_Adresse:VISIBLE = FALSE.
  1358. APPLY 'ENTRY' TO F_VAufnr.
  1359. END.
  1360. END. /* FRAME */
  1361. END PROCEDURE.
  1362. /* _UIB-CODE-BLOCK-END */
  1363. &ANALYZE-RESUME
  1364. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN_AUFTRAG V-table-Win
  1365. PROCEDURE LOESCHEN_AUFTRAG :
  1366. /*------------------------------------------------------------------------------
  1367. Purpose:
  1368. Parameters: <none>
  1369. Notes:
  1370. ------------------------------------------------------------------------------*/
  1371. F_Adresse = 'Löschen der verbuchten Aufträge ...'.
  1372. DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
  1373. DISABLE TRIGGERS FOR LOAD OF Aufko.
  1374. DISABLE TRIGGERS FOR LOAD OF AufZe.
  1375. FOR EACH Aufko USE-INDEX Aufko-k1
  1376. WHERE Aufko.Firma = GVFirma
  1377. AND Aufko.Verbucht = TRUE TRANSACTION:
  1378. FOR EACH Aufze OF Aufko:
  1379. CREATE Savze.
  1380. BUFFER-COPY Aufze TO Savze.
  1381. DELETE Aufze.
  1382. END.
  1383. FOR EACH AufGKon OF Aufko:
  1384. DO WHILE TRUE:
  1385. IF AufGKon.Depot = 0 THEN LEAVE.
  1386. FIND LAST GebKontr USE-INDEX GebKontr-k1
  1387. WHERE GebKontr.Firma = Aufko.Firma
  1388. AND GebKontr.Knr = Aufko.Knr NO-LOCK NO-ERROR.
  1389. IF AVAILABLE GebKontr THEN ix = GebKontr.Trnr + 1.
  1390. ELSE ix = 1.
  1391. FIND FIRST Wust USE-INDEX Wust-k2
  1392. WHERE Wust.Wucd = AufGKon.MWST_Cd
  1393. AND Wust.CodeA < 13
  1394. AND Wust.CodeK < 13 NO-LOCK NO-ERROR.
  1395. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  1396. WHERE MWSTAns.MWST_Cd = AufGKon.MWST_Cd
  1397. AND MWSTAns.Datum <= Aufko.Kond_Datum
  1398. NO-LOCK NO-ERROR.
  1399. CREATE GebKontr.
  1400. ASSIGN GebKontr.Firma = Aufko.Firma
  1401. GebKontr.Knr = Aufko.Knr
  1402. GebKontr.Trnr = ix
  1403. GebKontr.Geb_Cd = AufGKon.Geb_Cd
  1404. GebKontr.Datum = Aufko.Fak_Datum
  1405. GebKontr.Doknr = Aufko.Faknr
  1406. GebKontr.Preis = AufGKon.Depot
  1407. GebKontr.Eingang = AufGKon.Eingang
  1408. GebKontr.Ausgang = AufGKon.Ausgang
  1409. GebKontr.MWST_Cd = AufGKon.MWST_Cd.
  1410. IF AVAILABLE MWSTAns THEN GebKontr.MWST_% = MWSTAns.Ansatz.
  1411. IF AVAILABLE Wust THEN GebKontr.MWST_Inkl = Wust.Incl.
  1412. LEAVE.
  1413. END.
  1414. IF AufGKon.Eingang <> 0 OR
  1415. AufGKon.Ausgang <> 0 OR
  1416. AufGKon.Betrag <> 0 THEN DO:
  1417. CREATE SavGKon.
  1418. BUFFER-COPY AufGKon TO SavGKon.
  1419. END.
  1420. DELETE AufGKon.
  1421. END.
  1422. FOR EACH AufRabSu OF Aufko:
  1423. CREATE SavRabSu.
  1424. BUFFER-COPY AufRabSu TO SavRabSu.
  1425. DELETE AufRabSu.
  1426. END.
  1427. FOR EACH AufGebKo OF Aufko:
  1428. IF AufGebKo.Menge <> 0 THEN DO:
  1429. CREATE SavGebKo.
  1430. BUFFER-COPY AufGebKo TO SavGebKo.
  1431. END.
  1432. DELETE AufGebKo.
  1433. END.
  1434. FOR EACH AufSpRab USE-INDEX AufSpRab-k1
  1435. WHERE AufSpRab.Firma = Aufko.Firma
  1436. AND AufSpRab.Aufnr = Aufko.Aufnr:
  1437. CREATE SavSpRab.
  1438. BUFFER-COPY AufSpRab TO SavSpRab.
  1439. DELETE AufSpRab.
  1440. END.
  1441. CREATE Savko.
  1442. BUFFER-COPY Aufko TO Savko.
  1443. DELETE Aufko.
  1444. END.
  1445. END PROCEDURE.
  1446. /* _UIB-CODE-BLOCK-END */
  1447. &ANALYZE-RESUME
  1448. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER V-table-Win
  1449. PROCEDURE MEHRWERTSTEUER :
  1450. /*------------------------------------------------------------------------------
  1451. Purpose:
  1452. Parameters: <none>
  1453. Notes:
  1454. ------------------------------------------------------------------------------*/
  1455. XTot = 0.
  1456. VZah = 0.
  1457. VSko = 0.
  1458. VMax = 0.
  1459. VZRes = VZaBetr.
  1460. VSRes = VSkBetr.
  1461. VAntZ = VZaBetr * 100 / BDebop.FakBetr.
  1462. VAntS = VSkBetr * 100 / BDebop.FakBetr.
  1463. DO zz = 1 TO 11:
  1464. XTot[zz] = BDebop.FakWpfl[zz] + BDebop.FakWust[zz].
  1465. IF BDebop.FakWpfl[zz] <> 0 THEN VMax = zz.
  1466. END.
  1467. DO zz = 1 TO 11:
  1468. IF XTot[zz] = 0 THEN NEXT.
  1469. IF zz = VMax THEN DO:
  1470. VZah[zz] = VZRes.
  1471. VSko[zz] = VSRes.
  1472. LEAVE.
  1473. END.
  1474. Rundbetr = XTot[zz] * VAntZ / 100.
  1475. Rundcode = 1.
  1476. RUN "v8/runden.p".
  1477. VZah[zz] = Rundbetr.
  1478. VZRes = VZRes - Rundbetr.
  1479. Rundbetr = XTot[zz] * VAntS / 100.
  1480. Rundcode = 1.
  1481. RUN "v8/runden.p".
  1482. VSko[zz] = Rundbetr.
  1483. VSRes = VSRes - Rundbetr.
  1484. END.
  1485. DO zz = 1 TO 11:
  1486. IF XTot[zz] = 0 THEN NEXT.
  1487. Rundbetr = 0.
  1488. IF NOT BDebop.FakIncl[zz] THEN DO:
  1489. Rundbetr = VZah[zz] * BDebop.Fakwpro[zz]
  1490. / (100 + BDebop.Fakwpro[zz]).
  1491. Rundcode = 1.
  1492. RUN "v8/runden.p".
  1493. END.
  1494. ASSIGN BDebza.ZahWpfl[zz] = VZah[zz] - Rundbetr
  1495. BDebza.ZahWust[zz] = Rundbetr
  1496. BDebza.ZahSkon[zz] = VSko[zz]
  1497. BDebop.ZahWpfl[zz] = BDebop.ZahWpfl[zz] + BDebza.ZahWpfl[zz]
  1498. BDebop.ZahWust[zz] = BDebop.ZahWust[zz] + BDebza.ZahWust[zz]
  1499. BDebop.ZahSkon[zz] = BDebop.ZahSkon[zz] + BDebza.ZahSkon[zz].
  1500. END.
  1501. END PROCEDURE.
  1502. /* _UIB-CODE-BLOCK-END */
  1503. &ANALYZE-RESUME
  1504. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PASSANT V-table-Win
  1505. PROCEDURE PASSANT :
  1506. /*------------------------------------------------------------------------------
  1507. Purpose:
  1508. Parameters: <none>
  1509. Notes:
  1510. ------------------------------------------------------------------------------*/
  1511. CREATE Passant.
  1512. ASSIGN Passant.Firma = Debop.Firma
  1513. Passant.Knr = Debop.Knr
  1514. Passant.Faknr = Debop.Faknr
  1515. Passant.Adr[01] = Aufko.Adresse[01]
  1516. Passant.Adr[02] = Aufko.Adresse[02]
  1517. Passant.Adr[03] = Aufko.Adresse[03]
  1518. Passant.Adr[04] = Aufko.Adresse[04]
  1519. Passant.Adr[05] = Aufko.Adresse[05].
  1520. END PROCEDURE.
  1521. /* _UIB-CODE-BLOCK-END */
  1522. &ANALYZE-RESUME
  1523. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records V-table-Win _ADM-SEND-RECORDS
  1524. PROCEDURE send-records :
  1525. /*------------------------------------------------------------------------------
  1526. Purpose: Send record ROWID's for all tables used by
  1527. this file.
  1528. Parameters: see template/snd-head.i
  1529. ------------------------------------------------------------------------------*/
  1530. /* SEND-RECORDS does nothing because there are no External
  1531. Tables specified for this SmartViewer, and there are no
  1532. tables specified in any contained Browse, Query, or Frame. */
  1533. END PROCEDURE.
  1534. /* _UIB-CODE-BLOCK-END */
  1535. &ANALYZE-RESUME
  1536. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed V-table-Win
  1537. PROCEDURE state-changed :
  1538. /* -----------------------------------------------------------
  1539. Purpose:
  1540. Parameters: <none>
  1541. Notes:
  1542. -------------------------------------------------------------*/
  1543. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  1544. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  1545. CASE p-state:
  1546. /* Object instance CASEs can go here to replace standard behavior
  1547. or add new cases. */
  1548. {src/adm/template/vstates.i}
  1549. END CASE.
  1550. END PROCEDURE.
  1551. /* _UIB-CODE-BLOCK-END */
  1552. &ANALYZE-RESUME
  1553. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WERTE_EINLESEN V-table-Win
  1554. PROCEDURE WERTE_EINLESEN :
  1555. /*------------------------------------------------------------------------------
  1556. Purpose:
  1557. Parameters: <none>
  1558. Notes:
  1559. ------------------------------------------------------------------------------*/
  1560. DO WITH FRAME {&FRAME-NAME}:
  1561. ASSIGN {&List-6}.
  1562. IF F_VAufnr = 0 AND F_BAufnr = 0 THEN F_BAufnr = 999999.
  1563. IF F_VAufnr > F_BAufnr THEN F_BAufnr = F_VAufnr.
  1564. IF F_VKnr = 0 AND F_BKnr = 0 THEN F_BKnr = 999999.
  1565. IF F_VKnr > F_BKnr THEN F_BKnr = F_VKnr .
  1566. IF F_VDatum = ? AND F_BDatum = ? THEN DO:
  1567. F_VDatum = 01/01/1901.
  1568. F_BDatum = TODAY.
  1569. END.
  1570. IF F_VDatum > F_BDatum THEN F_BDatum = F_VDatum.
  1571. DO WHILE TRUE:
  1572. IF F_Buchdat = ? THEN LEAVE.
  1573. IF F_Buchdat <= SperrDat THEN DO:
  1574. MESSAGE 'Das Buchungsdatum ist älter als das SperrDatum '
  1575. SperrDat
  1576. VIEW-AS ALERT-BOX.
  1577. RETURN 'ERROR'.
  1578. END.
  1579. IF F_Buchdat >= (TODAY - 60) AND
  1580. F_Buchdat <= (TODAY + 30) THEN LEAVE.
  1581. F_Buchdat:BGCOLOR = 12.
  1582. ja = FALSE.
  1583. MESSAGE 'das Buchungsdatum sollte überprüft werden!' SKIP
  1584. 'wenn es richtig ist, dann OK'
  1585. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  1586. UPDATE ja.
  1587. IF ja THEN LEAVE.
  1588. APPLY 'ENTRY' TO F_Buchdat.
  1589. RETURN 'ERROR'.
  1590. END.
  1591. DISPLAY {&List-6}.
  1592. F_Adresse:VISIBLE = TRUE.
  1593. F_Adresse:SCREEN-VALUE = ''.
  1594. ix = LOOKUP(CB-Fak_Art:SCREEN-VALUE, CB-Fak_Art:LIST-ITEMS, '|').
  1595. VFak_Art = INTEGER(ENTRY(ix, XFak_Art, "|")).
  1596. ix = LOOKUP(CB-Auf_Sta:SCREEN-VALUE, CB-Auf_Sta:LIST-ITEMS, '|').
  1597. VAuf_Sta = INTEGER(ENTRY(ix, XAuf_Sta, "|")).
  1598. DISABLE Btn_Start.
  1599. END.
  1600. RETURN ''.
  1601. END PROCEDURE.
  1602. /* _UIB-CODE-BLOCK-END */
  1603. &ANALYZE-RESUME