&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: Output Parameters: ------------------------------------------------------------------------*/ /* 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 THIS-PROCEDURE ************************** * Set attributes related to FOREIGN KEYS */ RUN set-attribute-list ( 'Keys-Accepted = "", Keys-Supplied = ""':U). /************************** */ /* _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: ------------------------------------------------------------------------------*/ /* 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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