| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906 |
- &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
- &ANALYZE-RESUME
- &Scoped-define WINDOW-NAME CURRENT-WINDOW
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS V-table-Win
- /*------------------------------------------------------------------------
- File:
- Description: from VIEWER.W - Template for SmartViewer Objects
- Input Parameters:
- <none>
- Output Parameters:
- <none>
- ------------------------------------------------------------------------*/
- /* This .W file was created with the Progress UIB. */
- /*----------------------------------------------------------------------*/
- /* Create an unnamed pool to store all the widgets created
- by this procedure. This is a good default which assures
- that this procedure's triggers and internal procedures
- will execute in this procedure's storage, and that proper
- cleanup will occur on deletion of the procedure. */
- CREATE WIDGET-POOL.
- /* *************************** Definitions ************************** */
- /* Parameters Definitions --- */
- /* Local Variable Definitions --- */
- DEF VAR KRecid AS RECID.
- DEF VAR DRecid AS RECID.
- DEF VAR ZRecid AS RECID.
- DEF VAR SRecid AS RECID.
- DEF VAR XFak_Art AS CHAR NO-UNDO.
- DEF VAR XAuf_Sta AS CHAR NO-UNDO.
- DEF VAR VFak_Art AS INT NO-UNDO.
- DEF VAR VAuf_Sta AS INT NO-UNDO.
- DEF VAR GWpfl AS DEC DECIMALS 4 EXTENT 12 NO-UNDO.
- DEF VAR GWust AS DEC DECIMALS 4 EXTENT 12 NO-UNDO.
- DEF VAR GWW AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GSkBer AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GFakBetr AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GBarBetr AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GBarSkon AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GZusBetr AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GTrans AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GVerpa AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR GPorto AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR VKto_De AS CHAR FORMAT "x(12)" NO-UNDO.
- DEF VAR VKto_Ar AS CHAR FORMAT "x(12)" NO-UNDO.
- DEF VAR VKto_Wu AS CHAR FORMAT "x(12)" NO-UNDO.
- DEF VAR VKto_Dv AS CHAR FORMAT "x(12)" NO-UNDO.
- DEF VAR VKto_Ge AS CHAR FORMAT "x(12)" NO-UNDO.
- DEF VAR VKto_Soll AS CHAR FORMAT "x(12)" NO-UNDO.
- DEF VAR VKto_Haben AS CHAR FORMAT "x(12)" NO-UNDO.
- DEF VAR FwFrw AS CHAR NO-UNDO.
- DEF VAR VEp AS DEC.
- DEF VAR VUms_Grp LIKE Debums.Ums_Grp.
- DEF VAR VArt_Grp AS INT.
- DEF VAR XAnzPos AS INT.
- DEF VAR VAufnr AS INT.
- DEF VAR VKnr AS INT.
- DEF VAR VSpezTrnr AS INT NO-UNDO.
- DEF VAR FBatch AS LOG NO-UNDO.
- DEF VAR VPer AS INT.
- DEF VAR VJahr AS INT.
- DEF VAR VVertr AS INT.
- DEF VAR FDatum AS DATE.
- DEF VAR VTrNr1 LIKE TransNr.TrNr1.
- DEF VAR VTrNr2 LIKE TransNr.TrNr2.
- DEF VAR VBuchtxt1 LIKE Interf.Buchtxt1.
- DEF VAR VBuchtxt2 LIKE Interf.Buchtxt2.
- DEF VAR VZeile AS CHAR FORMAT "x(70)".
- DEF VAR VRand AS INT.
- DEF VAR VLine AS INT.
- DEF VAR FFehler AS LOG.
- DEF VAR SperrDat AS DATE.
- DEF VAR RoutFehler AS LOG.
- DEF BUFFER BAufko FOR Aufko.
- DEF BUFFER XAufko FOR Aufko.
- DEF BUFFER BAufze FOR Aufze.
- DEF BUFFER BDebst FOR Debst.
- DEF BUFFER BArtst FOR Artst.
- DEF BUFFER BArtbw FOR Artbw.
- DEF BUFFER BAdresse FOR Adresse.
- DEF BUFFER BTabel FOR Tabel .
- DEF BUFFER CSteuer FOR Steuer .
- DEF BUFFER BSteuer FOR Steuer .
- DEF TEMP-TABLE TFile NO-UNDO
- FIELD Kto1 AS CHAR FORMAT "x(12)"
- FIELD Kto2 AS CHAR FORMAT "x(12)"
- FIELD Betrag AS DEC
- FIELD MWST_Cd AS INT
- FIELD fMWSt AS LOG INIT FALSE.
- { v8/aufkototv.i "NEW" "SHARED" }
- DEF VAR VZaBetr AS DEC.
- DEF VAR VSkBetr AS DEC.
- DEF VAR XDatum AS DATE.
- DEF VAR VHerk AS INT.
- DEF VAR VBankKto AS CHAR.
- DEF VAR VSkoKto AS CHAR.
- DEF VAR VDebKto AS CHAR.
- DEF VAR VZahFl AS LOG.
- DEF VAR VKte AS CHAR.
- DEF VAR zz AS INT.
- DEF BUFFER BDebop FOR Debop.
- DEF BUFFER BDebza FOR Debza.
- DEF BUFFER BDebfa FOR Debfa.
- DEF VAR VAntZ AS DEC DECIMALS 4.
- DEF VAR VAntS AS DEC DECIMALS 4.
- DEF VAR XTot AS DEC EXTENT 12.
- DEF VAR VZah AS DEC EXTENT 12.
- DEF VAR VSko AS DEC EXTENT 12.
- DEF VAR VZRes AS DEC.
- DEF VAR VSRes AS DEC.
- DEF VAR VMax AS INT.
- DEF NEW SHARED TEMP-TABLE TVerbucht FIELD Datum AS DATE
- FIELD Konto AS CHAR
- FIELD FakBetr AS DEC
- FIELD ZahBetr AS DEC
- FIELD Skonto AS DEC.
-
- /* ---------- Globale Variablen ---------------------------------- */
- { v8/globvar.i" " " " "SHARED" }
- { v8/debivar.i " " " " "SHARED" }
- { v8/artivar.i " " " " "SHARED" }
- { v8/contvar.i " " " " "SHARED" }
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE SmartViewer
- &Scoped-define DB-AWARE no
- &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
- /* Name of designated FRAME-NAME and/or first browse and/or first query */
- &Scoped-define FRAME-NAME F-Main
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS F_VAufnr F_BAufnr F_VKnr F_BKnr F_VDatum ~
- F_BDatum F_BuchDat CB-Fak_Art CB-Auf_Sta Btn_Start F_Adresse
- &Scoped-Define DISPLAYED-OBJECTS F_VAufnr F_BAufnr F_VKnr F_BKnr F_VDatum ~
- F_BDatum F_BuchDat CB-Fak_Art CB-Auf_Sta
- /* Custom List Definitions */
- /* ADM-CREATE-FIELDS,ADM-ASSIGN-FIELDS,List-3,List-4,List-5,List-6 */
- &Scoped-define List-6 F_VAufnr F_BAufnr F_VKnr F_BKnr F_VDatum F_BDatum ~
- F_BuchDat
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" V-table-Win _INLINE
- /* Actions: ? adm/support/keyedit.w ? ? ? */
- /* STRUCTURED-DATA
- <KEY-OBJECT>
- THIS-PROCEDURE
- </KEY-OBJECT>
- <FOREIGN-KEYS>
- </FOREIGN-KEYS>
- <EXECUTING-CODE>
- **************************
- * Set attributes related to FOREIGN KEYS
- */
- RUN set-attribute-list (
- 'Keys-Accepted = "",
- Keys-Supplied = ""':U).
- /**************************
- </EXECUTING-CODE> */
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Definitions of the field level widgets */
- DEFINE BUTTON Btn_Start
- LABEL "Starten"
- SIZE 21 BY 1.
- DEFINE VARIABLE CB-Auf_Sta AS CHARACTER FORMAT "X(256)":U
- LABEL "Auftragstatus"
- VIEW-AS COMBO-BOX INNER-LINES 5
- DROP-DOWN-LIST
- SIZE 43.2 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE CB-Fak_Art AS CHARACTER FORMAT "X(256)":U
- LABEL "Faktura-Art"
- VIEW-AS COMBO-BOX INNER-LINES 5
- DROP-DOWN-LIST
- SIZE 43.2 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Adresse AS CHARACTER FORMAT "X(256)":U INITIAL "Hallo"
- VIEW-AS FILL-IN NATIVE
- SIZE 80.4 BY 1.05
- BGCOLOR 14 NO-UNDO.
- DEFINE VARIABLE F_BAufnr AS INTEGER FORMAT "9999999":U INITIAL 999999
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_BDatum AS DATE FORMAT "99.99.9999":U
- VIEW-AS FILL-IN NATIVE
- SIZE 18.2 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_BKnr AS INTEGER FORMAT "999999":U INITIAL 999999
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_BuchDat AS DATE FORMAT "99.99.9999":U
- LABEL "Verbuchungsdatum"
- VIEW-AS FILL-IN NATIVE
- SIZE 18.2 BY 1 TOOLTIP "Wenn kein Datum eingegeben wird, wird das Rechnungsdatum übernommen"
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_VAufnr AS INTEGER FORMAT "9999999":U INITIAL 0
- LABEL "von - bis Fakturanummer"
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_VDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/1901
- LABEL "von - bis Fakturadatum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_VKnr AS INTEGER FORMAT "999999":U INITIAL 0
- LABEL "von - bis Faktura-Kundennummer"
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME F-Main
- F_VAufnr AT ROW 2 COL 35 COLON-ALIGNED
- F_BAufnr AT ROW 2 COL 58 COLON-ALIGNED NO-LABEL
- F_VKnr AT ROW 3 COL 35 COLON-ALIGNED
- F_BKnr AT ROW 3 COL 58 COLON-ALIGNED NO-LABEL
- F_VDatum AT ROW 4 COL 35 COLON-ALIGNED
- F_BDatum AT ROW 4 COL 58 COLON-ALIGNED NO-LABEL
- F_BuchDat AT ROW 5 COL 35 COLON-ALIGNED
- CB-Fak_Art AT ROW 7 COL 35 COLON-ALIGNED
- CB-Auf_Sta AT ROW 8 COL 35 COLON-ALIGNED
- Btn_Start AT ROW 9.52 COL 37
- F_Adresse AT ROW 11.38 COL 3.4 COLON-ALIGNED NO-LABEL
- "--" VIEW-AS TEXT
- SIZE 2.8 BY 1.05 AT ROW 2 COL 55
- "--" VIEW-AS TEXT
- SIZE 2.8 BY 1.05 AT ROW 3 COL 55
- "--" VIEW-AS TEXT
- SIZE 2.8 BY 1.05 AT ROW 4 COL 55
- WITH 1 DOWN KEEP-TAB-ORDER OVERLAY
- SIDE-LABELS NO-UNDERLINE THREE-D
- AT COL 1 ROW 1
- SIZE 90.8 BY 13
- TITLE "Verbuchen der gedruckten Rechnungen"
- DEFAULT-BUTTON Btn_Start.
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: SmartViewer
- Allow: Basic,DB-Fields
- Frames: 1
- Add Fields to: EXTERNAL-TABLES
- Other Settings: PERSISTENT-ONLY COMPILE
- */
- /* This procedure should always be RUN PERSISTENT. Report the error, */
- /* then cleanup and return. */
- IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
- MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
- VIEW-AS ALERT-BOX ERROR BUTTONS OK.
- RETURN.
- END.
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- /* DESIGN Window definition (used by the UIB)
- CREATE WINDOW V-table-Win ASSIGN
- HEIGHT = 13
- WIDTH = 90.8.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB V-table-Win
- /* ************************* Included-Libraries *********************** */
- {src/adm/method/viewer.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********** Runtime Attributes and AppBuilder Settings *********** */
- &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
- /* SETTINGS FOR WINDOW V-table-Win
- VISIBLE,,RUN-PERSISTENT */
- /* SETTINGS FOR FRAME F-Main
- NOT-VISIBLE FRAME-NAME */
- ASSIGN
- FRAME F-Main:HIDDEN = TRUE.
- /* SETTINGS FOR FILL-IN F_Adresse IN FRAME F-Main
- NO-DISPLAY */
- /* SETTINGS FOR FILL-IN F_BAufnr IN FRAME F-Main
- 6 */
- /* SETTINGS FOR FILL-IN F_BDatum IN FRAME F-Main
- 6 */
- /* SETTINGS FOR FILL-IN F_BKnr IN FRAME F-Main
- 6 */
- /* SETTINGS FOR FILL-IN F_BuchDat IN FRAME F-Main
- 6 */
- /* SETTINGS FOR FILL-IN F_VAufnr IN FRAME F-Main
- 6 */
- /* SETTINGS FOR FILL-IN F_VDatum IN FRAME F-Main
- 6 */
- /* SETTINGS FOR FILL-IN F_VKnr IN FRAME F-Main
- 6 */
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
- /* Setting information for Queries and Browse Widgets fields */
- &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
- /* Query rebuild information for FRAME F-Main
- _Options = "NO-LOCK"
- _Query is NOT OPENED
- */ /* FRAME F-Main */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME Btn_Start
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start V-table-Win
- ON CHOOSE OF Btn_Start IN FRAME F-Main /* Starten */
- DO:
- DEF VAR AnzFak AS INT NO-UNDO.
- RUN WERTE_EINLESEN.
- IF RETURN-VALUE <> '' THEN RETURN NO-APPLY.
- F_Adresse = 'Aufträge werden verbucht ...'.
- DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
- /* ------------------------------------------------------------------------ */
- /* Verbuchen der Aufträge */
- /* ------------------------------------------------------------------------ */
- FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK.
- FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK.
- FOR EACH TVerbucht:
- DELETE TVerbucht.
- END.
- AnzFak = 0.
- FOR EACH BAufko USE-INDEX Aufko-k7 NO-LOCK
- WHERE BAufko.Firma = GVFirma
- AND BAufko.Fak_Art = VFak_Art
- AND BAufko.Auf_Sta = VAuf_Sta
- AND BAufko.Faknr >= F_VAufnr
- AND BAufko.Faknr <= F_BAufnr
- AND BAufko.Fak_Knr >= F_VKnr
- AND BAufko.Fak_Knr <= F_BKnr
- AND BAufko.Fak_Dat >= F_VDatum
- AND BAufko.Fak_Dat <= F_BDatum
- AND BAufko.Faknr <> 0
- AND BAufko.Gedruckt = TRUE
- AND BAufko.Verbucht = FALSE
- AND ((BAufko.Samm_Nr = 0) OR
- (BAufko.Samm_Nr > 0 AND
- BAufko.Auf_Sta > 3)) TRANSACTION
-
- BREAK BY BAufko.Fak_Knr
- BY BAufko.Faknr
- BY BAufko.Aufnr :
- IF FIRST-OF ( BAufko.Faknr ) THEN DO:
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK.
- F_Adresse = Adresse.Anzeig_Br.
- DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
-
- EMPTY TEMP-TABLE TFile.
- FDatum = F_BuchDat.
- IF FDatum = ? THEN FDatum = BAufko.Fak_Dat.
- IF FDatum < SperrDat THEN FDatum = SperrDat + 1.
- VPer = MONTH(FDatum).
- VJahr = YEAR (FDatum).
- FFehler = FALSE.
- VAufnr = XVAufnr.
- VKnr = XVKnr.
- GWpfl = 0.
- GWust = 0.
- GWW = 0.
- GSkBer = 0.
- GFakBetr = 0.
- GBarBetr = 0.
- GZusBetr = 0.
- GBarSkon = 0.
- GTrans = 0.
- GVerpa = 0.
- GPorto = 0.
- AnzFak = AnzFak + 1.
- END.
- KRecid = RECID(BAufko).
- XVAufnr = BAufko.Aufnr.
- XVKnr = BAufko.Fak_Knr.
- FIND BDebst USE-INDEX Debst-k1
- WHERE BDebst.Firma = GVFirma
- AND BDebst.Knr = XVKnr NO-LOCK NO-ERROR.
- DRecid = RECID(BDebst).
- VKto_De = SteuNr.Konto_Debit.
- VKto_Ge = SteuNr.Konto_Gebinde.
- FOR EACH BAufze USE-INDEX Aufze-k1
- WHERE BAufze.Firma = BAufko.Firma
- AND BAufze.Aufnr = BAufko.Aufnr
- AND BAufze.Artnr > 0:
- FIND BArtst OF BAufze NO-ERROR.
- IF NOT AVAILABLE BArtst THEN DO:
- BAufze.Verbucht = TRUE.
- NEXT.
- END.
- FIND BArtbw OF BAufze NO-ERROR.
- IF NOT AVAILABLE BArtbw THEN DO:
- BAufze.Verbucht = TRUE.
- NEXT.
- END.
- VKto_Ar = SteuNr.Konto_Ertrag.
- VKto_Soll = VKto_De.
- VKto_Haben = VKto_Ar.
- DO WHILE NOT BAufze.Verbucht:
- RoutFehler = TRUE.
- RUN BUCHEN_ARTIKEL.
- LEAVE.
- END.
- IF RoutFehler = TRUE THEN DO:
- FFehler = TRUE.
- NEXT.
- END.
- IF BAufko.Fak_Art <> 99 THEN DO:
- FIND FIRST TFile WHERE TFile.Kto1 = VKto_De
- AND TFile.Kto2 = VKto_Ar
- AND TFile.MWST_Cd = BAufze.WuCd NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = VKto_De
- TFile.Kto2 = VKto_Ar
- TFile.MWSt_Cd = BAufze.WuCd
- TFile.fMWSt = FALSE.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + BAufze.Net_Betr
- - BAufze.Auf_Rab - BAufze.Abh_Rab
- - BAufze.Auf_Sp_Rab.
- END.
-
- GZusBetr = GZusBetr + BAufze.Zus_Betr.
- BAufze.Verbucht = TRUE.
- END.
- DO ix = 1 TO 12:
- GWpfl[ix] = GWpfl[ix] + BAufko.Wpfl[ix].
- GWust[ix] = GWust[ix] + BAufko.Wust[ix].
- GWW = GWW + BAufko.WW [ix].
- END.
- GSkBer = GSkBer + BAufko.Sk_Ber.
- GFakBetr = GFakBetr + BAufko.Auf_Tot.
- GBarBetr = GBarBetr + BAufko.Bar_Betr.
- GBarSkon = GBarSkon + BAufko.Bar_Skonto.
- GTrans = GTrans + BAufko.Transp.
- GVerpa = GVerpa + BAufko.Verpack.
- GPorto = GPorto + BAufko.Porto.
-
- RUN GEBINDE_IN_TFILE ( INPUT KRecid ).
- IF NOT LAST-OF ( BAufko.Faknr ) THEN DO:
- FIND Aufko WHERE RECID(Aufko) = KRecid.
- Aufko.Verbucht = TRUE.
- NEXT.
- END.
-
- GFakBetr = 0.
- Rundbetr = 0.
- DO ix = 1 TO 12:
- Rundbetr = Rundbetr + GWpfl[ix] + GWust[ix].
- END.
- Rundcode = 1.
- RUN "v8/runden.p".
- GFakBetr = Rundbetr.
-
- REPEAT ON ERROR UNDO, LEAVE:
- IF FFehler = TRUE THEN LEAVE.
- FIND Aufko WHERE RECID(Aufko) = KRecid.
- FIND Debst WHERE RECID(Debst) = DRecid.
- IF BAufko.Fak_Art = 99 THEN DO.
- Aufko.Verbucht = TRUE.
- LEAVE.
- END.
-
- VBuchtxt1 = 'Debitorrechnung:'
- + STRING(BAufko.Faknr," 999999").
- VBuchtxt2 = F_Adresse.
- FIND Kondi USE-INDEX Kondi-k1
- WHERE Kondi.Sprcd = GVSprcd
- AND Kondi.Kond = BAufko.Kond NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Kondi THEN DO:
- FIND Kondi USE-INDEX Kondi-k1
- WHERE Kondi.Sprcd = GVSprcd
- AND Kondi.Kond = Debst.Kond NO-LOCK NO-ERROR.
- END.
- IF NOT AVAILABLE Kondi THEN DO:
- FIND Kondi USE-INDEX Kondi-k1
- WHERE Kondi.Sprcd = GVSprcd
- AND Kondi.Kond = 1 NO-LOCK NO-ERROR.
- END.
- FIND LAST TransNr USE-INDEX TransNr-k1
- WHERE TransNr.Firma = StFirma NO-LOCK NO-ERROR.
- IF AVAILABLE TransNr THEN DO:
- VTrNr1 = TransNr.TrNr1 + 1.
- VTrNr2 = 1.
- END.
- ELSE DO:
- VTrNr1 = 1.
- VTrNr2 = 1.
- END.
- CREATE TransNr.
- ASSIGN TransNr.Firma = StFirma
- TransNr.TrNr1 = VTrNr1
- TransNr.TrNr2 = VTrNr2
- TransNr.Herk = 51.
- CREATE Debop.
- ASSIGN Debop.Firma = BAufko.Firma
- Debop.Knr = BAufko.Fak_Knr
- Debop.Faknr = BAufko.Faknr
- Debop.Fakdat = FDatum
- Debop.Faellig = FDatum + Kondi.Faellig
- Debop.Skber = GSkBer
- Debop.WW = GWW
- Debop.Fakbetr = GFakBetr
- Debop.Saldo = GFakBetr
- Debop.Kond = BAufko.Kond
- Debop.Transp = 0
- Debop.Porto = 0
- Debop.Verpack = 0
- Debop.Konto = VKto_De
- Debop.Vertr = Debst.Vertr
- Debop.Kte = 'DEF':U
- Debop.TrNr1 = VTrNr1
- Debop.TrNr2 = VTrNr2
- Debop.FRW = FwFRW
- Debop.Kurs = 1.0
- Debop.Faktor = 1.
- IF Steuer.MWST = 0 THEN Debop.WustAbr = TRUE. /* vereinbahrt */
- ELSE Debop.WustAbr = FALSE. /* vereinnahmt */
- DO ix = 1 TO 12:
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.WuCd = ix NO-LOCK NO-ERROR.
- FIND LAST MWSTAns USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = ix
- AND MWSTAns.Datum <= BAufko.Kond_Datum
- NO-LOCK NO-ERROR.
- ASSIGN Debop.FakWpfl[ix] = GWpfl[ix]
- Debop.FakWust[ix] = GWust[ix].
- IF AVAILABLE Wust THEN ASSIGN Debop.FakIncl[ix] = Wust.Incl
- Debop.FakWPro[ix] = Wust.Proz.
- IF AVAILABLE MWSTAns THEN Debop.FakWPro[ix] = MWSTAns.Ansatz.
- END.
- CREATE Debfa.
- ASSIGN Debfa.Firma = Debop.Firma
- Debfa.Knr = Debop.Knr
- Debfa.Faknr = Debop.Faknr
- Debfa.Fakdat = Debop.Fakdat
- Debfa.Faellig = Debop.Faellig
- Debfa.Fakbetr = Debop.Fakbetr
- Debfa.Skber = Debop.Skber
- Debfa.WW = Debop.WW
- Debfa.Transp = Debop.Transp
- Debfa.Porto = Debop.Porto
- Debfa.Verpack = Debop.Verpack
- Debfa.Konto = Debop.Konto
- Debfa.Vertr = Debop.Vertr
- Debfa.Kte = Debop.Kte
- Debfa.TrNr1 = Debop.TrNr1
- Debfa.TrNr2 = Debop.TrNr2
- Debfa.FRW = Debop.FRW
- Debfa.Kurs = Debop.Kurs
- Debfa.Faktor = 1.
- DO ix = 1 TO 12:
- ASSIGN Debfa.FakWpfl[ix] = Debop.FakWpfl[ix]
- Debfa.FakWust[ix] = Debop.FakWust[ix].
- END.
- FIND LAST Debhi USE-INDEX Debhi-k1
- WHERE Debhi.Firma = Debop.Firma
- AND Debhi.Knr = Debop.Knr NO-LOCK NO-ERROR.
- IF AVAILABLE Debhi THEN ix = Debhi.Trnr + 1.
- ELSE ix = 1.
- CREATE Debhi.
- ASSIGN Debhi.Firma = Debop.Firma
- Debhi.Knr = Debop.Knr
- Debhi.Trnr = ix
- Debhi.Datum = Debop.Fakdat
- Debhi.Faknr = Debop.Faknr
- Debhi.Kte = Debop.Kte
- Debhi.Soll = Debop.Fakbetr
- Debhi.Transp = Debop.Transp
- Debhi.Porto = Debop.Porto
- Debhi.Verpack = Debop.Verpack
- Debhi.Konto = Debop.Konto
- Debhi.TrNr1 = Debop.TrNr1
- Debhi.TrNr2 = Debop.TrNr2
- Debhi.FRW = Debop.FRW
- Debhi.Kurs = 1.0
- Debhi.Faktor = 1
- Debhi.Saldo = Debst.Saldo + Debop.Fakbetr.
- IF Steuer.MWST = 0 THEN DO: /* Mehrwertsteuer vereinbart */
- CREATE Debwu.
- ASSIGN Debwu.Firma = Debop.Firma
- Debwu.Knr = Debop.Knr
- Debwu.Faknr = Debop.Faknr
- Debwu.Trnr = 1
- Debwu.Datum = Debop.Fakdat
- Debwu.Betrag = Debop.Fakbetr
- Debwu.Konto = Debop.Konto
- Debwu.Kte = Debop.Kte
- Debwu.TrNr1 = Debop.TrNr1
- Debwu.TrNr2 = Debop.TrNr2
- Debwu.FRW = Debop.FRW
- Debwu.Kurs = 1.0
- Debwu.Faktor = 1.
- DO ix = 1 TO 12:
- IF Debop.FakWpfl[ix] = 0 THEN NEXT.
- ASSIGN Debwu.Wustpfl[ix] = Debop.FakWpfl[ix]
- Debwu.Wust [ix] = Debop.FakWust[ix].
- END.
- END.
- /* ---- Interface fuer Mehrwertsteuer -------------------------------------- */
- DO ix = 1 TO 10:
- IF GWpfl[ix] = 0 THEN NEXT.
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.WuCd = ix NO-LOCK NO-ERROR.
- FIND LAST MWSTAns USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = ix
- AND MWSTAns.Datum <= BAufko.Kond_Datum
- NO-LOCK NO-ERROR.
- IF Steuer.MWST = 0 THEN VKto_Wu = Wust.Konto.
- ELSE VKto_Wu = SteuNr.Konto_Wust_H.
- IF Wust.incl THEN DO:
- IF VKto_Ar <> VKto_Wu THEN DO:
- RundBetr = GWpfl[ix] / (100 + MWSTAns.Ansatz) * MWSTAns.Ansatz.
- FIND FIRST TFile WHERE TFile.Kto1 = VKto_Ar
- AND TFile.Kto2 = VKto_Wu
- AND TFile.MWST_Cd = ix NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = VKto_Ar
- TFile.Kto2 = VKto_Wu
- TFile.MWST_Cd = ix
- TFile.fMWSt = TRUE.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + Rundbetr.
- END.
- END.
- ELSE DO:
- FIND FIRST TFile WHERE TFile.Kto1 = VKto_De
- AND TFile.Kto2 = VKto_Wu
- AND TFile.MWSt_Cd = ix NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = VKto_De
- TFile.Kto2 = VKto_Wu
- TFile.MWST_Cd = ix
- TFile.fMWSt = TRUE.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + GWust[ix].
- END.
- END.
- /* ---- Interface fuer Transport, Porto, Verpackung ------------------------ */
- DO ix = 1 TO 3:
- CASE ix:
- WHEN 1 THEN Rundbetr = GTrans.
- WHEN 2 THEN Rundbetr = GPorto.
- WHEN 3 THEN Rundbetr = GVerpa.
- END CASE.
-
- IF VTotal[ix] = 0 THEN NEXT.
- IF ix = 4 THEN VKto_Dv = SteuNr.Konto_Transp.
- IF ix = 5 THEN VKto_Dv = SteuNr.Konto_Porto.
- IF ix = 6 THEN VKto_Dv = SteuNr.Konto_Verpack.
- FIND FIRST TFile WHERE TFile.Kto1 = VKto_De
- AND TFile.Kto2 = VKto_Dv
- AND TFile.MWSt_Cd = 12 NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = VKto_De
- TFile.Kto2 = VKto_Dv
- TFile.MWST_Cd = 12
- TFile.fMWSt = FALSE.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + Rundbetr.
- END.
- RUN INTERFACE.
- Debst.Saldo = Debst.Saldo + Debop.Fakbetr.
- Debst.Zuschl_Verr = Debst.Zuschl_Verr + GZusBetr.
- Debst.LetztVK = FDatum.
- Aufko.Verbucht = TRUE.
-
- FIND FIRST TVerbucht WHERE TVerbucht.Datum = Debop.FakDat
- AND TVerbucht.Konto = Debop.Konto NO-ERROR.
- IF NOT AVAILABLE TVerbucht THEN DO:
- CREATE TVerbucht.
- ASSIGN TVerbucht.Datum = Debop.FakDat
- TVerbucht.Konto = Debop.Konto.
- END.
- TVerbucht.FakBetr = TVerbucht.Fakbetr + Debop.Fakbetr.
- IF Debst.Passant THEN RUN PASSANT.
-
- IF GBarBetr <> 0 OR
- GBarSkon <> 0 THEN DO:
- FIND LAST Zahlung USE-INDEX Zahlung-k1
- WHERE Zahlung.Firma = GVFirma NO-LOCK NO-ERROR.
- IF AVAILABLE Zahlung THEN i4 = Zahlung.Trnr + 1.
- ELSE i4 = 1.
- CREATE Zahlung.
- ASSIGN Zahlung.Firma = Debop.Firma
- Zahlung.Trnr = i4
- Zahlung.Knr = Debop.Knr
- Zahlung.Faknr = STRING(Debop.Faknr,"9999999")
- Zahlung.Datum_1 = Debop.FakDat
- Zahlung.Konto_S = Aufko.Bar_Konto
- Zahlung.Konto_H = Debop.Konto
- Zahlung.Betrag = GBarBetr
- Zahlung.Skonto = GBarSkon
- Zahlung.Zahl_Art = 90.
- FIND FIRST TVerbucht WHERE TVerbucht.Datum = Zahlung.Datum_1
- AND TVerbucht.Konto = Zahlung.Konto_S
- NO-ERROR.
- IF NOT AVAILABLE TVerbucht THEN DO:
- CREATE TVerbucht.
- ASSIGN TVerbucht.Datum = Zahlung.Datum_1
- TVerbucht.Konto = Zahlung.Konto_S.
- END.
- TVerbucht.ZahBetr = TVerbucht.ZahBetr + Zahlung.Betrag.
- TVerbucht.Skonto = TVerbucht.Skonto + Zahlung.Skonto.
- END.
- LEAVE.
- END.
- IF BAufko.Samm_Nr <> 0 THEN DO:
- FOR EACH XAufko USE-INDEX Aufko-k2
- WHERE XAufko.Firma = BAufko.Firma
- AND XAufko.Knr = BAufko.Knr
- AND XAufko.Samm_Nr <> 0
- AND XAufko.Auf_Sta < 4:
- XAufko.Faknr = 0.
- XAufko.Gedruckt = FALSE.
- END.
- END.
- END.
- RUN LOESCHEN_AUFTRAG.
- RUN BARZAHLUNGEN.
- DEF VAR htVerbucht AS HANDLE NO-UNDO.
-
- htVerbucht = TEMP-TABLE tVerbucht:DEFAULT-BUFFER-HANDLE.
- IF AnzFak > 1 THEN RUN 'g-verbuchjour.w':U ( htVerbucht ) NO-ERROR.
- ENABLE Btn_Start WITH FRAME {&FRAME-NAME}.
- IF FBatch THEN DO:
- XVKnr = 0.
- XVAufnr = 0.
- APPLY 'GO' TO FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME CB-Auf_Sta
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB-Auf_Sta V-table-Win
- ON VALUE-CHANGED OF CB-Auf_Sta IN FRAME F-Main /* Auftragstatus */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- ix = LOOKUP(SELF:SCREEN-VALUE, SELF:LIST-ITEMS, '|').
- VFak_Art = INTEGER(ENTRY(ix, XFak_Art, "|")).
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME CB-Fak_Art
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB-Fak_Art V-table-Win
- ON VALUE-CHANGED OF CB-Fak_Art IN FRAME F-Main /* Faktura-Art */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- ix = LOOKUP(SELF:SCREEN-VALUE, SELF:LIST-ITEMS, '|').
- VFak_Art = INTEGER(ENTRY(ix, XFak_Art, "|")).
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK V-table-Win
- /* *************************** Main Block *************************** */
- FIND BSteuer USE-INDEX Steuer-k1
- WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR.
- SperrDat = DYNAMIC-FUNCTION('getSperrDatum':U) NO-ERROR.
- CB-Fak_Art:DELIMITER = "|".
- GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE FwFRW.
- IF FwFRW = ? THEN FwFRW = 'CHF'.
- &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
- RUN dispatch IN THIS-PROCEDURE ('initialize':U).
- &ENDIF
-
- /************************ INTERNAL PROCEDURES ********************/
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available V-table-Win _ADM-ROW-AVAILABLE
- PROCEDURE adm-row-available :
- /*------------------------------------------------------------------------------
- Purpose: Dispatched to this procedure when the Record-
- Source has a new row available. This procedure
- tries to get the new row (or foriegn keys) from
- the Record-Source and process it.
- Parameters: <none>
- ------------------------------------------------------------------------------*/
- /* Define variables needed by this internal procedure. */
- {src/adm/template/row-head.i}
- /* Process the newly available records (i.e. display fields,
- open queries, and/or pass records on to any RECORD-TARGETS). */
- {src/adm/template/row-end.i}
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BARZAHLUNGEN V-table-Win
- PROCEDURE BARZAHLUNGEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- F_Adresse = 'Zahlungen werden verbucht ...'.
- DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
-
- DEF VAR VKnr AS INT.
- DEF VAR VFaknr AS INT.
-
- Helptext = ''.
- FOR EACH LiBild USE-INDEX LiBild-k1
- WHERE LiBild.Sprcd = GVSprcd
- AND LiBild.Prog = 'ZAHLUNG' NO-LOCK:
- Helptext[LiBild.Tenr] = LiBild.Litext.
- END.
-
- FOR EACH Zahlung USE-INDEX Zahlung-k1
- WHERE Zahlung.Firma = GVFirma
- AND Zahlung.Zahl_Art = 90
- AND Zahlung.Verbucht = FALSE TRANSACTION:
- VZaBetr = Zahlung.Betrag.
- VSkBetr = Zahlung.Skonto.
- XDatum = Zahlung.Datum_1.
- VBankKto = Zahlung.Konto_S.
- VHerk = 62.
- DVKnr = Zahlung.Knr.
- DVFaknr = INTEGER(Zahlung.Faknr).
-
- FIND Debop USE-INDEX Debop-k1
- WHERE Debop.Firma = Zahlung.Firma
- AND Debop.Knr = DVKnr
- AND Debop.Faknr = DVFaknr NO-LOCK.
-
- FIND BDebop USE-INDEX Debop-k1
- WHERE BDebop.Firma = Debop.Firma
- AND BDebop.Knr = Debop.Knr
- AND BDebop.Faknr = Debop.Faknr.
- FIND BDebst USE-INDEX Debst-k1
- WHERE BDebst.Firma = Debop.Firma
- AND BDebst.Knr = Debop.Knr.
-
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Debop.Knr NO-LOCK NO-ERROR.
- FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK.
- FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK.
- IF XDatum > BDebop.Faellig THEN VZahFl = FALSE.
- ELSE VZahFl = TRUE.
- VKte = TRIM(SUBSTRING(Helptext[02],41,04)).
-
- IF VSkoKto = '' THEN DO:
- VSkoKto = SteuNr.Konto_Skonto.
- IF VSkoKto = '' THEN DO:
- FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1
- WHERE Waehrung.Firma = GVFirma
- AND Waehrung.FRW = FwFRW NO-ERROR.
- IF AVAILABLE Waehrung THEN VSkoKto = Waehrung.DebSammKto.
- END.
- END.
- VDebKto = BDebop.Konto.
-
- FIND LAST TransNr USE-INDEX TransNr-k1
- WHERE TransNr.Firma = StFirma
- AND TransNr.TrNr1 = BDebop.TrNr1 NO-LOCK NO-ERROR.
- VTrNr1 = TransNr.TrNr1.
- VTrNr2 = TransNr.TrNr2 + 1.
- CREATE TransNr.
- ASSIGN TransNr.Firma = StFirma
- TransNr.TrNr1 = VTrNr1
- TransNr.TrNr2 = VTrNr2
- TransNr.Herk = VHerk.
- VBuchtxt1 = Adresse.Anzeig_Br.
- VBuchtxt2 = Helptext[01]
- + " "
- + STRING(BDebop.Faknr,"9999999").
- EMPTY TEMP-TABLE TFile.
- /* ---- Zahlung verarbeiten (Normal) --------------------------------------- */
- DO WHILE VZaBetr <> 0 OR VSkBetr <> 0:
- FIND LAST BDebza USE-INDEX Debza-k1
- WHERE BDebza.Firma = GVFirma
- AND BDebza.Knr = DVKnr
- AND BDebza.Faknr = DVFaknr NO-LOCK NO-ERROR.
- IF AVAILABLE BDebza THEN VTrnr = BDebza.Trnr + 1.
- ELSE VTrnr = 1.
- CREATE BDebza.
- ASSIGN BDebza.Firma = GVFirma
- BDebza.Knr = DVKnr
- BDebza.Faknr = DVFaknr
- BDebza.Trnr = VTrnr
- BDebza.Zahdat = XDatum
- BDebza.Zahbetr = VZaBetr
- BDebza.Skonto = VSkBetr
- BDebza.Konto = VBankKto
- BDebza.TrNr1 = VTrNr1
- BDebza.TrNr2 = VTrNr2
- BDebza.FRW = BDebop.Frw
- BDebza.Kurs = BDebop.Kurs
- BDebza.Faktor = BDebop.Faktor
- BDebza.Kte = VKte.
- RUN MEHRWERTSTEUER. /* MWSTBERECHNUNG */
- BDebop.Saldo = BDebop.Saldo - VZaBetr - VSkBetr.
- BDebop.Skonto = BDebop.Skonto + VSkBetr.
- BDebop.Zahbetr = BDebop.Zahbetr + VZaBetr.
- BDebop.Zahdat = XDatum.
- BDebst.Saldo = BDebst.Saldo - VZaBetr - VSkBetr.
- FIND LAST Debhi USE-INDEX Debhi-k1
- WHERE Debhi.Firma = GVFirma
- AND Debhi.Knr = DVKnr NO-LOCK NO-ERROR.
- IF AVAILABLE Debhi THEN VTrnr = Debhi.Trnr + 1.
- ELSE VTrnr = 1.
- CREATE Debhi.
- ASSIGN Debhi.Firma = BDebza.Firma
- Debhi.Knr = BDebza.Knr
- Debhi.Trnr = VTrnr
- Debhi.TrNr1 = VTrNr1
- Debhi.TrNr2 = VTrNr2
- Debhi.Datum = BDebza.Zahdat
- Debhi.Faknr = BDebza.Faknr
- Debhi.Haben = BDebza.Zahbetr
- Debhi.Kte = BDebza.Kte
- Debhi.Konto = BDebza.Konto
- Debhi.Skonto = BDebza.Skonto
- Debhi.Saldo = BDebst.Saldo
- Debhi.FRW = BDebop.Frw
- Debhi.Kurs = BDebop.Kurs
- Debhi.Faktor = BDebop.Faktor.
- IF NOT BDebop.Wustabr THEN DO:
- FIND LAST Debwu USE-INDEX Debwu-k1
- WHERE Debwu.Firma = GVFirma
- AND Debwu.Knr = BDebza.Knr
- AND Debwu.Faknr = BDebza.Faknr NO-LOCK NO-ERROR.
- IF AVAILABLE Debwu THEN VTrnr = Debwu.Trnr + 1.
- ELSE VTrnr = 1.
- CREATE Debwu.
- ASSIGN Debwu.Firma = BDebza.Firma
- Debwu.Knr = BDebza.Knr
- Debwu.Faknr = BDebza.Faknr
- Debwu.Trnr = VTrnr
- Debwu.TrNr1 = VTrNr1
- Debwu.TrNr2 = VTrNr2
- Debwu.Datum = BDebza.Zahdat
- Debwu.Betrag = BDebza.Zahbetr
- Debwu.Konto = BDebza.Konto
- Debwu.Kte = BDebza.Kte
- Debwu.FRW = BDebop.Frw
- Debwu.Kurs = BDebop.Kurs
- Debwu.Faktor = BDebop.Faktor.
- DO ix = 1 TO 11:
- ASSIGN Debwu.Wustpfl[ix] = BDebza.Zahwpfl[ix]
- Debwu.Wust [ix] = BDebza.Zahwust[ix]
- Debwu.Skonto [ix] = BDebza.ZahSkon[ix].
- END.
- END.
- /* ---- Interface fuer Zahlung, Skonto ------------------------------------- */
- VKto_Soll = BDebza.Konto.
- VKto_Haben = BDebop.Konto.
- FIND FIRST TFile WHERE TFile.Kto1 = BDebza.Konto
- AND TFile.Kto2 = BDebop.Konto NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = BDebza.Konto
- TFile.Kto2 = BDebop.Konto
- TFile.MWST_Cd = 0.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + VZaBetr.
- FIND FIRST TFile WHERE TFile.Kto1 = VSkoKto
- AND TFile.Kto2 = BDebop.Konto NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = VSkoKto
- TFile.Kto2 = BDebop.Konto
- TFile.MWST_Cd = 0.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + VSkBetr.
- /* ---- Interface fuer Mehrwertsteuer (Vereinnahmt und Skonto) ------------- */
- DO ix = 1 TO 10:
- IF BDebza.ZahWpfl[ix] = 0 AND
- BDebza.ZahSkon[ix] = 0 THEN NEXT.
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.WuCd = ix NO-LOCK.
- IF NOT BDebop.WustAbr AND
- BDebza.ZahWpfl[ix] <> 0 THEN DO:
- IF BDebop.Fakincl[ix] THEN DO:
- RundBetr = BDebza.ZahWpfl[ix]
- / (100 + BDebop.FakWPro[ix])
- * BDebop.FakWPro[ix].
- Rundcode = 1.
- RUN "v8/runden.p".
- END.
- ELSE DO:
- Rundbetr = BDebza.ZahWust[ix].
- END.
- FIND FIRST TFile WHERE TFile.Kto1 = SteuNr.Konto_Wust_H
- AND TFile.Kto2 = Wust.Konto NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = SteuNr.Konto_Wust_H
- TFile.Kto2 = Wust.Konto
- TFile.MWST_Cd = 0.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + Rundbetr.
- END.
- IF BDebza.ZahSkon[ix] <> 0 THEN DO:
- IF NOT BDebop.WustAbr THEN LVKto1 = SteuNr.Konto_Wust_H.
- ELSE LVKto1 = Wust.Konto.
- LVKto2 = VSkoKto.
- RundBetr = BDebza.ZahSkon[ix] * BDebop.FakWPro[ix]
- / (100 + BDebop.FakWPro[ix]).
- Rundcode = 1.
- RUN "v8/runden.p".
- FIND FIRST TFile WHERE TFile.Kto1 = LVKto1
- AND TFile.Kto2 = LVKto2 NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = LVKto1
- TFile.Kto2 = LVKto2
- TFile.MWST_Cd = 0.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + Rundbetr.
- END.
- END.
- RUN INTERFACE.
- DVFaknr = BDebop.Faknr.
- DVKnr = BDebop.Knr.
-
- LEAVE.
- END. /* Zahlung Normal */
-
- Zahlung.Verbucht = TRUE.
- END.
- DVKnr = VKnr.
- DVFaknr = VFaknr.
-
- F_Adresse = 'Zahlungen sind verbucht'.
- DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
-
- FOR EACH Zahlung WHERE Zahlung.Firma = GVFirma
- AND Zahlung.Verbucht = TRUE TRANSACTION:
- DELETE Zahlung.
- END.
- RETURN.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUCHEN_ARTIKEL V-table-Win
- PROCEDURE BUCHEN_ARTIKEL :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR KRecid AS RECID NO-UNDO.
- DEF VAR ZRecid AS RECID NO-UNDO.
- DEF VAR VNetto AS DEC NO-UNDO.
- DEF VAR VEp AS DEC NO-UNDO.
- DEF VAR VLiter AS DEC NO-UNDO.
-
- KRecid = RECID(BAufko).
- ZRecid = RECID(BAufze).
- REPEAT ON ERROR UNDO, RETURN:
- FIND Aufko WHERE RECID(Aufko) = KRecid NO-LOCK.
- FIND Aufze WHERE RECID(Aufze) = ZRecid NO-LOCK.
-
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.WuCd = BAufze.WuCd NO-LOCK NO-ERROR.
- FIND LAST MWSTAns USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = BAufze.WuCd
- AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK NO-ERROR.
- VNetto = BAufze.Net_Betr - BAufze.Auf_Rab - BAufze.Abh_Rab - BAufze.Auf_Sp_Rab.
- IF Wust.Incl THEN VNetto = VNetto * 100 / (100 + MWSTAns.Ansatz).
- VLiter = BAufze.Liter.
- VEp = BAufze.Ep * BAufze.MGeli.
- { v8/artbw_aufze.I "BArtbw" }
- FIND DebUms USE-INDEX DebUms-k1
- WHERE DebUms.Firma = GVFirma
- AND DebUms.Jahr = VJahr
- AND DebUms.Knr = XVKnr
- AND DebUms.Ums_Grp = 999 NO-ERROR.
- IF NOT AVAILABLE DebUms THEN DO:
- CREATE DebUms.
- ASSIGN DebUms.Firma = GVFirma
- DebUms.Jahr = VJahr
- DebUms.Knr = XVKnr
- DebUms.Ums_Grp = 999.
- END.
- ASSIGN DebUms.Me_Mon[VPer] = DebUms.Me_Mon[VPer] + BAufze.MGeli
- DebUms.Me_Kum = DebUms.Me_Kum + BAufze.MGeli
- DebUms.Ep_Mon[VPer] = DebUms.Ep_Mon[VPer] + VEp
- DebUms.Ep_Kum = DebUms.Ep_Kum + VEp
- DebUms.Vp_Mon[VPer] = DebUms.Vp_Mon[VPer] + VNetto
- DebUms.Vp_Kum = DebUms.Vp_Kum + VNetto.
- FIND ArtUms USE-INDEX ArtUms-k1
- WHERE ArtUms.Firma = GVFirma
- AND ArtUms.Jahr = VJahr
- AND ArtUms.Artnr = BAufze.Artnr
- AND ArtUms.Inhalt = BAufze.Inhalt
- AND ArtUms.Jahrg = BAufze.Jahr NO-ERROR.
- IF NOT AVAILABLE ArtUms THEN DO:
- CREATE ArtUms.
- ASSIGN ArtUms.Firma = GVFirma
- ArtUms.Jahr = VJahr
- ArtUms.Artnr = BAufze.Artnr
- ArtUms.Inhalt = BAufze.Inhalt
- ArtUms.Jahrg = BAufze.Jahr NO-ERROR.
- END.
- ASSIGN ArtUms.Me_Mon[VPer] = ArtUms.Me_Mon[VPer] + BAufze.MGeli
- ArtUms.Me_Kum = ArtUms.Me_Kum + BAufze.MGeli
- ArtUms.Ep_Mon[VPer] = ArtUms.Ep_Mon[VPer] + VEp
- ArtUms.Ep_Kum = ArtUms.Ep_Kum + VEp
- ArtUms.Li_Mon[VPer] = ArtUms.Li_Mon[VPer] + VLiter
- ArtUms.Li_Kum = ArtUms.Li_Kum + VLiter
- ArtUms.Vp_Mon[VPer] = ArtUms.Vp_Mon[VPer] + VNetto
- ArtUms.Vp_Kum = ArtUms.Vp_Kum + VNetto.
-
- FIND DeArUms USE-INDEX DeArUms-k1
- WHERE DeArUms.Firma = GVFirma
- AND DeArUms.Jahr = VJahr
- AND DeArUms.Knr = XVKnr
- AND DeArUms.Artnr = BAufze.Artnr
- AND DeArUms.Inhalt = BAufze.Inhalt
- AND DeArUms.Jahrg = BAufze.Jahr NO-ERROR.
- IF NOT AVAILABLE DeArUms THEN DO:
- CREATE DeArUms.
- ASSIGN DeArUms.Firma = GVFirma
- DeArUms.Jahr = VJahr
- DeArUms.Knr = XVKnr
- DeArUms.Artnr = BAufze.Artnr
- DeArUms.Inhalt = BAufze.Inhalt
- DeArUms.Jahrg = BAufze.Jahr NO-ERROR.
- END.
- ASSIGN DeArUms.Me_Mon[VPer] = DeArUms.Me_Mon[VPer] + BAufze.MGeli
- DeArUms.Me_Kum = DeArUms.Me_Kum + BAufze.MGeli
- DeArUms.Ep_Mon[VPer] = DeArUms.Ep_Mon[VPer] + VEp
- DeArUms.Ep_Kum = DeArUms.Ep_Kum + VEp
- DeArUms.Li_Mon[VPer] = DeArUms.Li_Mon[VPer] + VLiter
- DeArUms.Li_Kum = DeArUms.Li_Kum + VLiter
- DeArUms.Vp_Mon[VPer] = DeArUms.Vp_Mon[VPer] + VNetto
- DeArUms.Vp_Kum = DeArUms.Vp_Kum + VNetto.
-
- LEAVE.
- END.
-
- RoutFehler = FALSE.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI V-table-Win _DEFAULT-DISABLE
- PROCEDURE disable_UI :
- /*------------------------------------------------------------------------------
- Purpose: DISABLE the User Interface
- Parameters: <none>
- Notes: Here we clean-up the user-interface by deleting
- dynamic widgets we have created and/or hide
- frames. This procedure is usually called when
- we are ready to "clean-up" after running.
- ------------------------------------------------------------------------------*/
- /* Hide all frames. */
- HIDE FRAME F-Main.
- IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_IN_TFILE V-table-Win
- PROCEDURE GEBINDE_IN_TFILE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO.
- FIND Aufko WHERE RECID(Aufko) = ipRecid NO-LOCK.
- FOR EACH AufGKon USE-INDEX AufGKon-k1
- WHERE AufGKon.Firma = Aufko.Firma
- AND AufGKon.Aufnr = Aufko.Aufnr NO-LOCK:
- FIND FIRST TFile WHERE TFile.Kto1 = VKto_De
- AND TFile.Kto2 = VKto_Ge
- AND TFile.MWSt_Cd = AufGKon.MWSt_Cd NO-ERROR.
- IF NOT AVAILABLE TFile THEN DO:
- CREATE TFile.
- ASSIGN TFile.Kto1 = VKto_De
- TFile.Kto2 = VKto_Ge
- TFile.MWSt_Cd = AufGKon.MWSt_Cd.
- END.
- ASSIGN TFile.Betrag = TFile.Betrag + AufGKon.Betrag.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INTERFACE V-table-Win
- PROCEDURE INTERFACE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR Diff AS DEC NO-UNDO.
- DEF VAR Betrag AS DEC NO-UNDO.
- DEF VAR IfFirma AS CHAR NO-UNDO.
- Diff = Debop.Fakbetr.
- FOR EACH TFile BY TFile.Kto1
- BY TFile.Kto2
- BY TFile.MWSt_Cd:
- IF TFile.Betrag = 0 THEN DO:
- DELETE TFile.
- NEXT.
- END.
- IF TFile.Kto1 = VKto_De THEN Diff = Diff - TFile.Betrag.
- IF BSteuer.Fwc09 = '' THEN DO:
- ASSIGN TFile.MWSt_Cd = 0
- TFile.fMWSt = FALSE.
- END.
- END.
- IF Diff <> 0 THEN DO:
- FIND FIRST TFile WHERE TFile.Kto1 = VKto_Soll
- AND TFile.Kto2 = VKto_Haben NO-ERROR.
- IF AVAILABLE TFile THEN DO:
- TFile.Betrag = TFile.Betrag + Diff.
- Diff = 0.
- END.
- END.
- IF BSteuer.Fwc09 = '' THEN IfFirma = BSteuer.FBFirma.
- ELSE IfFirma = BSteuer.Fwc09.
- FOR EACH TFile BREAK BY TFile.Kto1
- BY TFile.Kto2
- BY TFile.MWSt_Cd:
- IF FIRST-OF ( TFile.MWSt_Cd ) THEN Betrag = 0.
- Betrag = Betrag + TFile.Betrag.
- IF NOT LAST-OF ( TFile.MWSt_Cd ) THEN NEXT.
- FIND LAST Interf USE-INDEX Interf-k1
- WHERE Interf.Firma = IfFirma
- AND Interf.TrNr1 = VTrNr1
- AND Interf.TrNr2 = VTrNr2 NO-LOCK NO-ERROR.
- IF AVAILABLE Interf THEN ix = Interf.Trnr + 1.
- ELSE ix = 1.
- CREATE Interf.
- ASSIGN Interf.Firma = IfFirma
- Interf.TrNr1 = VTrNr1
- Interf.TrNr2 = VTrNr2
- Interf.TrNr = ix
- Interf.Kto1 = TFile.Kto1
- Interf.Kto2 = TFile.Kto2
- Interf.Herk = TransNr.Herk
- Interf.Datum = FDatum
- Interf.Buchtxt1 = VBuchtxt1
- Interf.Buchtxt2 = VBuchtxt2
- Interf.Betrag = Betrag
- Interf.Betrag_Frw = Betrag
- Interf.FRW = Debop.FRW
- Interf.Faktor = Debop.Faktor
- Interf.Kurs = Debop.Kurs
- Interf.Verbucht = FALSE
- Interf.Faknr = STRING(Debop.Faknr,"9999999")
- Interf.Knr = Debop.Knr
- Interf.MWST_Nr = ""
- Interf.MWST_Cd = TFile.MWST_Cd
- Interf.HKFirma = Debop.Firma
- Interf.MWST_Art = (IF TFile.fMWSt THEN 1 ELSE 0).
- DELETE TFile.
- END.
- IF Diff <> 0 THEN DO:
- FIND LAST Interf USE-INDEX Interf-k1
- WHERE Interf.Firma = IfFirma
- AND Interf.TrNr1 = VTrNr1
- AND Interf.TrNr2 = VTrNr2 NO-LOCK NO-ERROR.
- IF AVAILABLE Interf THEN ix = Interf.Trnr + 1.
- ELSE ix = 1.
- CREATE Interf.
- ASSIGN Interf.Firma = iFFirma
- Interf.TrNr1 = VTrNr1
- Interf.TrNr2 = VTrNr2
- Interf.TrNr = ix
- Interf.Kto1 = VKto_De
- Interf.Kto2 = VKto_Ar
- Interf.Herk = TransNr.Herk
- Interf.Datum = FDatum
- Interf.Buchtxt1 = VBuchtxt1
- Interf.Buchtxt2 = 'Rundungsdifferenzen'
- Interf.Betrag = Diff
- Interf.Betrag_Frw = Diff
- Interf.FRW = Debop.FRW
- Interf.Faktor = Debop.Faktor
- Interf.Kurs = Debop.Kurs
- Interf.Verbucht = FALSE
- Interf.Faknr = STRING(Debop.Faknr,"9999999")
- Interf.Knr = Debop.Knr
- Interf.MWST_Nr = ""
- Interf.MWST_Cd = 0
- Interf.HKFirma = Debop.Firma
- Interf.MWST_Art = 0.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view V-table-Win
- PROCEDURE local-view :
- /*------------------------------------------------------------------------------
- Purpose: Override standard ADM method
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR ok AS LOG NO-UNDO.
- DEF VAR xx AS INT NO-UNDO.
- IF Linknr = 9 THEN FBatch = TRUE.
- ELSE FBatch = FALSE.
- FBatch = TRUE.
-
- RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
- DO WITH FRAME {&FRAME-NAME}:
- CB-Fak_Art:DELIMITER = "|".
- CB-Auf_Sta:DELIMITER = "|".
- XFak_Art = ''.
- ok = TRUE.
- xx = 0.
- DO WHILE ok:
- ok = CB-Fak_Art:DELETE(1).
- END.
- FOR EACH Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.Sprcd = 1
- AND Tabel.Int_3 >= 3 NO-LOCK: /* Faktura */
- ok = CB-Fak_Art:ADD-LAST(Tabel.Bez1).
- XFak_Art = XFak_Art + STRING(Tabel.CodeI,"999|").
- END.
- ix = 1.
- CB-Fak_Art:SCREEN-VALUE = CB-Fak_Art:ENTRY(ix) NO-ERROR.
- XAuf_Sta = ''.
- ok = TRUE.
- xx = 0.
- DO WHILE ok:
- ok = CB-Auf_Sta:DELETE(1).
- END.
- FOR EACH Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'AUFSTATUS'
- AND Tabel.CodeC = ''
- AND Tabel.Sprcd = 1 NO-LOCK:
- ok = CB-Auf_Sta:ADD-LAST(Tabel.Bez1).
- XAuf_Sta = XAuf_Sta + STRING(Tabel.CodeI,"999|").
- END.
- ix = 1.
- CB-Auf_Sta:SCREEN-VALUE = CB-Auf_Sta:ENTRY(ix) NO-ERROR.
- DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
- FIND Aufko USE-INDEX Aufko-k1
- WHERE Aufko.Firma = GVFirma
- AND Aufko.Aufnr = XVAufnr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Aufko THEN DO:
- FBatch = FALSE.
- LEAVE.
- END.
- F_VAufnr = Aufko.Faknr.
- F_BAufnr = Aufko.Faknr.
- F_VKnr = Aufko.Fak_Knr.
- F_BKnr = Aufko.Fak_Knr.
- F_VDatum = Aufko.Fak_Dat.
- F_BDatum = Aufko.Fak_Dat.
- F_Buchdat = ?.
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = GVFirma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
- IF Tabel.Int_3 = 4 THEN DO:
- F_Buchdat = Aufko.Fak_Dat.
- DO ix = 1 TO 31:
- IF MONTH(F_Buchdat) <> MONTH(F_Buchdat + 1) THEN LEAVE.
- F_Buchdat = F_Buchdat + 1.
- END.
- F_VDatum = DATE(MONTH(F_Buchdat),01,YEAR(F_Buchdat)).
- F_BDatum = DATE(MONTH(F_Buchdat),28,YEAR(F_Buchdat)).
- DO ix = 1 TO 5:
- IF MONTH(F_BDatum) <> MONTH(F_BDatum + 1) THEN LEAVE.
- F_BDatum = F_BDatum + 1.
- END.
- END.
- IF F_Buchdat <> ? AND
- F_Buchdat <= SperrDat THEN F_Buchdat:BGCOLOR = 12.
- ELSE F_Buchdat:BGCOLOR = ?.
-
- XVKnr = Aufko.Knr.
- LVDat = Aufko.Fak_Dat.
- IF LVDat = ? THEN LVDat = TODAY.
-
- ix = LOOKUP(STRING(Aufko.Fak_Art,"999"), XFak_Art, '|').
- CB-Fak_Art:SCREEN-VALUE = CB-Fak_Art:ENTRY(ix) NO-ERROR.
- ix = LOOKUP(STRING(Aufko.Auf_Sta,"999"), XAuf_Sta, '|').
- CB-Auf_Sta:SCREEN-VALUE = CB-Auf_Sta:ENTRY(ix) NO-ERROR.
- LEAVE.
- END.
-
- DO WITH FRAME {&FRAME-NAME}:
-
- DISPLAY {&List-6}.
-
- F_Adresse:VISIBLE = FALSE.
-
- APPLY 'ENTRY' TO F_VAufnr.
- END.
-
- END. /* FRAME */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN_AUFTRAG V-table-Win
- PROCEDURE LOESCHEN_AUFTRAG :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- F_Adresse = 'Löschen der verbuchten Aufträge ...'.
- DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
-
- DISABLE TRIGGERS FOR LOAD OF Aufko.
- DISABLE TRIGGERS FOR LOAD OF AufZe.
-
- FOR EACH Aufko USE-INDEX Aufko-k1
- WHERE Aufko.Firma = GVFirma
- AND Aufko.Verbucht = TRUE TRANSACTION:
- FOR EACH Aufze OF Aufko:
- CREATE Savze.
- BUFFER-COPY Aufze TO Savze.
- DELETE Aufze.
- END.
-
- FOR EACH AufGKon OF Aufko:
-
- DO WHILE TRUE:
- IF AufGKon.Depot = 0 THEN LEAVE.
-
- FIND LAST GebKontr USE-INDEX GebKontr-k1
- WHERE GebKontr.Firma = Aufko.Firma
- AND GebKontr.Knr = Aufko.Knr NO-LOCK NO-ERROR.
- IF AVAILABLE GebKontr THEN ix = GebKontr.Trnr + 1.
- ELSE ix = 1.
-
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.Wucd = AufGKon.MWST_Cd
- AND Wust.CodeA < 13
- AND Wust.CodeK < 13 NO-LOCK NO-ERROR.
- FIND LAST MWSTAns USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = AufGKon.MWST_Cd
- AND MWSTAns.Datum <= Aufko.Kond_Datum
- NO-LOCK NO-ERROR.
-
- CREATE GebKontr.
- ASSIGN GebKontr.Firma = Aufko.Firma
- GebKontr.Knr = Aufko.Knr
- GebKontr.Trnr = ix
- GebKontr.Geb_Cd = AufGKon.Geb_Cd
- GebKontr.Datum = Aufko.Fak_Datum
- GebKontr.Doknr = Aufko.Faknr
- GebKontr.Preis = AufGKon.Depot
- GebKontr.Eingang = AufGKon.Eingang
- GebKontr.Ausgang = AufGKon.Ausgang
- GebKontr.MWST_Cd = AufGKon.MWST_Cd.
- IF AVAILABLE MWSTAns THEN GebKontr.MWST_% = MWSTAns.Ansatz.
- IF AVAILABLE Wust THEN GebKontr.MWST_Inkl = Wust.Incl.
- LEAVE.
- END.
- IF AufGKon.Eingang <> 0 OR
- AufGKon.Ausgang <> 0 OR
- AufGKon.Betrag <> 0 THEN DO:
- CREATE SavGKon.
- BUFFER-COPY AufGKon TO SavGKon.
- END.
- DELETE AufGKon.
- END.
- FOR EACH AufRabSu OF Aufko:
- CREATE SavRabSu.
- BUFFER-COPY AufRabSu TO SavRabSu.
- DELETE AufRabSu.
- END.
- FOR EACH AufGebKo OF Aufko:
- IF AufGebKo.Menge <> 0 THEN DO:
- CREATE SavGebKo.
- BUFFER-COPY AufGebKo TO SavGebKo.
- END.
- DELETE AufGebKo.
- END.
-
- FOR EACH AufSpRab USE-INDEX AufSpRab-k1
- WHERE AufSpRab.Firma = Aufko.Firma
- AND AufSpRab.Aufnr = Aufko.Aufnr:
- CREATE SavSpRab.
- BUFFER-COPY AufSpRab TO SavSpRab.
- DELETE AufSpRab.
- END.
- CREATE Savko.
- BUFFER-COPY Aufko TO Savko.
- DELETE Aufko.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER V-table-Win
- PROCEDURE MEHRWERTSTEUER :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- XTot = 0.
- VZah = 0.
- VSko = 0.
- VMax = 0.
- VZRes = VZaBetr.
- VSRes = VSkBetr.
- VAntZ = VZaBetr * 100 / BDebop.FakBetr.
- VAntS = VSkBetr * 100 / BDebop.FakBetr.
- DO zz = 1 TO 11:
- XTot[zz] = BDebop.FakWpfl[zz] + BDebop.FakWust[zz].
- IF BDebop.FakWpfl[zz] <> 0 THEN VMax = zz.
- END.
- DO zz = 1 TO 11:
- IF XTot[zz] = 0 THEN NEXT.
- IF zz = VMax THEN DO:
- VZah[zz] = VZRes.
- VSko[zz] = VSRes.
- LEAVE.
- END.
- Rundbetr = XTot[zz] * VAntZ / 100.
- Rundcode = 1.
- RUN "v8/runden.p".
- VZah[zz] = Rundbetr.
- VZRes = VZRes - Rundbetr.
- Rundbetr = XTot[zz] * VAntS / 100.
- Rundcode = 1.
- RUN "v8/runden.p".
- VSko[zz] = Rundbetr.
- VSRes = VSRes - Rundbetr.
- END.
- DO zz = 1 TO 11:
- IF XTot[zz] = 0 THEN NEXT.
- Rundbetr = 0.
- IF NOT BDebop.FakIncl[zz] THEN DO:
- Rundbetr = VZah[zz] * BDebop.Fakwpro[zz]
- / (100 + BDebop.Fakwpro[zz]).
- Rundcode = 1.
- RUN "v8/runden.p".
- END.
- ASSIGN BDebza.ZahWpfl[zz] = VZah[zz] - Rundbetr
- BDebza.ZahWust[zz] = Rundbetr
- BDebza.ZahSkon[zz] = VSko[zz]
- BDebop.ZahWpfl[zz] = BDebop.ZahWpfl[zz] + BDebza.ZahWpfl[zz]
- BDebop.ZahWust[zz] = BDebop.ZahWust[zz] + BDebza.ZahWust[zz]
- BDebop.ZahSkon[zz] = BDebop.ZahSkon[zz] + BDebza.ZahSkon[zz].
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PASSANT V-table-Win
- PROCEDURE PASSANT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- CREATE Passant.
- ASSIGN Passant.Firma = Debop.Firma
- Passant.Knr = Debop.Knr
- Passant.Faknr = Debop.Faknr
- Passant.Adr[01] = Aufko.Adresse[01]
- Passant.Adr[02] = Aufko.Adresse[02]
- Passant.Adr[03] = Aufko.Adresse[03]
- Passant.Adr[04] = Aufko.Adresse[04]
- Passant.Adr[05] = Aufko.Adresse[05].
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records V-table-Win _ADM-SEND-RECORDS
- PROCEDURE send-records :
- /*------------------------------------------------------------------------------
- Purpose: Send record ROWID's for all tables used by
- this file.
- Parameters: see template/snd-head.i
- ------------------------------------------------------------------------------*/
- /* SEND-RECORDS does nothing because there are no External
- Tables specified for this SmartViewer, and there are no
- tables specified in any contained Browse, Query, or Frame. */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed V-table-Win
- PROCEDURE state-changed :
- /* -----------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- -------------------------------------------------------------*/
- DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
- DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
- CASE p-state:
- /* Object instance CASEs can go here to replace standard behavior
- or add new cases. */
- {src/adm/template/vstates.i}
- END CASE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WERTE_EINLESEN V-table-Win
- PROCEDURE WERTE_EINLESEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DO WITH FRAME {&FRAME-NAME}:
- ASSIGN {&List-6}.
- IF F_VAufnr = 0 AND F_BAufnr = 0 THEN F_BAufnr = 999999.
- IF F_VAufnr > F_BAufnr THEN F_BAufnr = F_VAufnr.
- IF F_VKnr = 0 AND F_BKnr = 0 THEN F_BKnr = 999999.
- IF F_VKnr > F_BKnr THEN F_BKnr = F_VKnr .
- IF F_VDatum = ? AND F_BDatum = ? THEN DO:
- F_VDatum = 01/01/1901.
- F_BDatum = TODAY.
- END.
- IF F_VDatum > F_BDatum THEN F_BDatum = F_VDatum.
- DO WHILE TRUE:
- IF F_Buchdat = ? THEN LEAVE.
- IF F_Buchdat <= SperrDat THEN DO:
- MESSAGE 'Das Buchungsdatum ist älter als das SperrDatum '
- SperrDat
- VIEW-AS ALERT-BOX.
- RETURN 'ERROR'.
- END.
- IF F_Buchdat >= (TODAY - 60) AND
- F_Buchdat <= (TODAY + 30) THEN LEAVE.
- F_Buchdat:BGCOLOR = 12.
- ja = FALSE.
- MESSAGE 'das Buchungsdatum sollte überprüft werden!' SKIP
- 'wenn es richtig ist, dann OK'
- VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
- UPDATE ja.
- IF ja THEN LEAVE.
- APPLY 'ENTRY' TO F_Buchdat.
- RETURN 'ERROR'.
- END.
- DISPLAY {&List-6}.
-
- F_Adresse:VISIBLE = TRUE.
- F_Adresse:SCREEN-VALUE = ''.
-
- ix = LOOKUP(CB-Fak_Art:SCREEN-VALUE, CB-Fak_Art:LIST-ITEMS, '|').
- VFak_Art = INTEGER(ENTRY(ix, XFak_Art, "|")).
- ix = LOOKUP(CB-Auf_Sta:SCREEN-VALUE, CB-Auf_Sta:LIST-ITEMS, '|').
- VAuf_Sta = INTEGER(ENTRY(ix, XAuf_Sta, "|")).
- DISABLE Btn_Start.
- END.
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|