| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830 |
- &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
- &ANALYZE-RESUME
- /* Connected Databases
- anadat PROGRESS
- */
- &Scoped-define WINDOW-NAME CURRENT-WINDOW
- /* Temp-Table and Buffer definitions */
- DEFINE TEMP-TABLE XTabel NO-UNDO LIKE Tabel.
- &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 VSko_Max AS DEC.
- DEF VAR VSko_Fak AS DEC.
- DEF VAR VZaBetr AS DEC.
- DEF VAR VSkBetr AS DEC.
- DEF VAR VDatum AS DATE.
- DEF VAR VTrNr1 AS INT.
- DEF VAR VTrNr2 AS INT.
- DEF VAR VHerk AS INT.
- DEF VAR VBankKto AS CHAR.
- DEF VAR VSkoKto AS CHAR.
- DEF VAR VDebKto AS CHAR.
- DEF VAR VBuchtxt1 AS CHAR.
- DEF VAR VBuchtxt2 AS CHAR.
- DEF VAR VZahFl AS LOG.
- DEF VAR FFehler AS LOG.
- DEF VAR VKte AS CHAR.
- DEF VAR zz AS INT.
- DEF VAR FErst AS LOG INIT TRUE.
- DEF VAR DebopRECID AS RECID NO-UNDO.
- DEF VAR SperrDat AS DATE NO-UNDO INIT 01/01/0001.
- DEF VAR iLager AS INT NO-UNDO.
- DEF BUFFER BDebop FOR Debop.
- DEF BUFFER BDebza FOR Debza.
- DEF BUFFER BDebfa FOR Debfa.
- DEF BUFFER BDebst FOR Debst.
- DEF BUFFER SDebst FOR Debst.
- DEF BUFFER BSteuer FOR Steuer.
- DEF VAR VAntZ AS DEC DECIMALS 4.
- DEF VAR VAntS AS DEC DECIMALS 4.
- DEF VAR nAntWpfl AS DEC DECIMALS 4 EXTENT 12.
- DEF VAR VTot 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 TEMP-TABLE WFile FIELD Kto1 AS CHAR
- FIELD Kto2 AS CHAR
- FIELD MWST_Cd AS INT
- FIELD Betrag AS DEC.
-
- DEF TEMP-TABLE tDebop LIKE Debop.
- DEF TEMP-TABLE tDebza LIKE Debza.
- /* ---------- 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 CB_Konto F_Konto_Tot F_Total F_Zah_Datum ~
- F_Faknr F_FakDat F_Faellig F_FakBetr F_Knr F_Saldo_T F_Saldo F_Skonto_Ber ~
- F_Sko_Max F_Zah_Betr F_Skonto RECT-21 RECT-22
- &Scoped-Define DISPLAYED-OBJECTS CB_Konto F_Konto_Tot F_Total F_Zah_Datum ~
- F_Faknr F_FakDat F_Faellig F_FakBetr F_Knr F_Saldo_T F_Saldo F_Skonto_Ber ~
- F_Sko_Max F_Zah_Betr F_Skonto
- /* Custom List Definitions */
- /* ADM-CREATE-FIELDS,ADM-ASSIGN-FIELDS,List-3,List-4,List-5,List-6 */
- &Scoped-define ADM-ASSIGN-FIELDS F_Konto_Tot F_Total F_Zah_Datum F_Faknr ~
- F_FakDat F_Faellig F_FakBetr F_Knr F_Saldo_T F_Saldo F_Skonto_Ber F_Sko_Max ~
- F_Zah_Betr F_Skonto
- &Scoped-define List-4 F_Saldo F_Skonto_Ber F_Sko_Max F_Zah_Betr F_Skonto
- &Scoped-define List-5 F_Faknr F_FakDat F_Faellig F_FakBetr F_Knr F_Saldo_T
- &Scoped-define List-6 F_Konto_Tot F_Total F_Zah_Datum
- /* _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 VARIABLE CB_Konto AS CHARACTER FORMAT "X(256)":U
- LABEL "Konto"
- VIEW-AS COMBO-BOX INNER-LINES 5
- LIST-ITEM-PAIRS "Item 1","Item 1"
- DROP-DOWN-LIST
- SIZE 21.4 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Faellig AS DATE FORMAT "99.99.9999":U
- LABEL "/"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_FakBetr AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
- LABEL "Betrag"
- VIEW-AS FILL-IN NATIVE
- SIZE 20 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_FakDat AS DATE FORMAT "99.99.9999":U
- LABEL "Datum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "9999999":U INITIAL 0
- LABEL "Fak-Nr."
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0
- LABEL "Kde-Nr."
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Konto AS CHARACTER FORMAT "x(12)":U
- LABEL "Konto"
- VIEW-AS FILL-IN NATIVE
- SIZE 18 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Konto_Tot AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0
- LABEL "Konto-Total"
- VIEW-AS FILL-IN NATIVE
- SIZE 18 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Saldo AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
- VIEW-AS FILL-IN NATIVE
- SIZE 19 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Saldo_T AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
- LABEL "Saldo"
- VIEW-AS FILL-IN NATIVE
- SIZE 20 BY 1.05
- BGCOLOR 14 NO-UNDO.
- DEFINE VARIABLE F_Skonto AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0
- VIEW-AS FILL-IN NATIVE
- SIZE 17 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Skonto_Ber AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
- VIEW-AS FILL-IN NATIVE
- SIZE 19 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Sko_Max AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0
- VIEW-AS FILL-IN NATIVE
- SIZE 17 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Total AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
- LABEL "G-Total"
- VIEW-AS FILL-IN NATIVE
- SIZE 19 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Zah_Betr AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
- VIEW-AS FILL-IN NATIVE
- SIZE 19 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Zah_Datum AS DATE FORMAT "99.99.9999":U
- LABEL "Datum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1.05
- BGCOLOR 15 NO-UNDO.
- DEFINE RECTANGLE RECT-21
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 131 BY 9.52.
- DEFINE RECTANGLE RECT-22
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 94.2 BY 3.14.
- DEFINE VARIABLE F_Anschrift AS CHARACTER
- VIEW-AS SELECTION-LIST SINGLE
- SIZE 35.2 BY 8
- BGCOLOR 15 FONT 6 NO-UNDO.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME F-Main
- CB_Konto AT ROW 1.62 COL 9 COLON-ALIGNED
- F_Konto_Tot AT ROW 1.62 COL 45 COLON-ALIGNED
- F_Total AT ROW 1.62 COL 73 COLON-ALIGNED
- F_Zah_Datum AT ROW 2.62 COL 9 COLON-ALIGNED
- F_Faknr AT ROW 4.71 COL 9 COLON-ALIGNED
- F_FakDat AT ROW 4.71 COL 29 COLON-ALIGNED
- F_Faellig AT ROW 4.71 COL 47.4 COLON-ALIGNED
- F_FakBetr AT ROW 4.71 COL 73 COLON-ALIGNED
- F_Knr AT ROW 5.71 COL 9 COLON-ALIGNED
- F_Saldo_T AT ROW 5.71 COL 73 COLON-ALIGNED NO-TAB-STOP
- F_Saldo AT ROW 9.05 COL 3 NO-LABEL
- F_Skonto_Ber AT ROW 9.05 COL 20 COLON-ALIGNED NO-LABEL
- F_Sko_Max AT ROW 9.05 COL 39 COLON-ALIGNED NO-LABEL
- F_Zah_Betr AT ROW 9.05 COL 56 COLON-ALIGNED NO-LABEL
- F_Skonto AT ROW 9.05 COL 75 COLON-ALIGNED NO-LABEL
- F_Anschrift AT ROW 2 COL 97 NO-LABEL NO-TAB-STOP
- F_Konto AT ROW 2.62 COL 45 COLON-ALIGNED NO-TAB-STOP
- "Saldo" VIEW-AS TEXT
- SIZE 8.4 BY 1.05 AT ROW 7.67 COL 15
- "Bez. Betrag" VIEW-AS TEXT
- SIZE 13 BY 1.05 AT ROW 7.67 COL 28.4
- "Bez. Skonto" VIEW-AS TEXT
- SIZE 14.2 BY 1.05 AT ROW 7.67 COL 43.8
- "Zahl-Betrag" VIEW-AS TEXT
- SIZE 12 BY 1.05 AT ROW 7.67 COL 64.4
- "Skonto" VIEW-AS TEXT
- SIZE 9 BY 1.05 AT ROW 7.67 COL 84.8
- RECT-21 AT ROW 1.24 COL 2
- RECT-22 AT ROW 4.33 COL 2
- WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
- SIDE-LABELS NO-UNDERLINE THREE-D
- AT COL 1 ROW 1 SCROLLABLE .
- /* *********************** 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
- Temp-Tables and Buffers:
- TABLE: XTabel T "?" NO-UNDO Anadat Tabel
- END-TABLES.
- */
- /* 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 = 9.95
- WIDTH = 133.
- /* 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 Size-to-Fit Custom */
- ASSIGN
- FRAME F-Main:SCROLLABLE = FALSE
- FRAME F-Main:HIDDEN = TRUE.
- /* SETTINGS FOR SELECTION-LIST F_Anschrift IN FRAME F-Main
- NO-DISPLAY NO-ENABLE */
- /* SETTINGS FOR FILL-IN F_Faellig IN FRAME F-Main
- 2 5 */
- /* SETTINGS FOR FILL-IN F_FakBetr IN FRAME F-Main
- 2 5 */
- /* SETTINGS FOR FILL-IN F_FakDat IN FRAME F-Main
- 2 5 */
- /* SETTINGS FOR FILL-IN F_Faknr IN FRAME F-Main
- 2 5 */
- /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main
- 2 5 */
- /* SETTINGS FOR FILL-IN F_Konto IN FRAME F-Main
- NO-DISPLAY NO-ENABLE */
- ASSIGN
- F_Konto:HIDDEN IN FRAME F-Main = TRUE
- F_Konto:READ-ONLY IN FRAME F-Main = TRUE.
- /* SETTINGS FOR FILL-IN F_Konto_Tot IN FRAME F-Main
- 2 6 */
- /* SETTINGS FOR FILL-IN F_Saldo IN FRAME F-Main
- ALIGN-L 2 4 */
- /* SETTINGS FOR FILL-IN F_Saldo_T IN FRAME F-Main
- 2 5 */
- ASSIGN
- F_Saldo_T:READ-ONLY IN FRAME F-Main = TRUE.
- /* SETTINGS FOR FILL-IN F_Skonto IN FRAME F-Main
- 2 4 */
- /* SETTINGS FOR FILL-IN F_Skonto_Ber IN FRAME F-Main
- 2 4 */
- /* SETTINGS FOR FILL-IN F_Sko_Max IN FRAME F-Main
- 2 4 */
- /* SETTINGS FOR FILL-IN F_Total IN FRAME F-Main
- 2 6 */
- /* SETTINGS FOR FILL-IN F_Zah_Betr IN FRAME F-Main
- 2 4 */
- /* SETTINGS FOR FILL-IN F_Zah_Datum IN FRAME F-Main
- 2 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 CB_Konto
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Konto V-table-Win
- ON VALUE-CHANGED OF CB_Konto IN FRAME F-Main /* Konto */
- DO:
- DEF VAR cKey AS CHAR NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- F_Konto = CB_Konto:SCREEN-VALUE.
- cKey = 'Konto' + STRING(iLager,'99').
- PUT-KEY-VALUE SECTION 'DebitorZahlungen'
- KEY cKey
- VALUE F_Konto NO-ERROR.
- F_Konto:SCREEN-VALUE = F_Konto.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Konto
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto V-table-Win
- ON ENTRY OF F_Konto IN FRAME F-Main /* Konto */
- DO:
- APPLY 'TAB' TO SELF.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Konto_Tot
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto_Tot V-table-Win
- ON LEFT-MOUSE-DBLCLICK OF F_Konto_Tot IN FRAME F-Main /* Konto-Total */
- DO:
- DEF VAR AWert AS DEC.
- DEF VAR NWert AS DEC.
-
- AWert = DECIMAL(SELF:SCREEN-VALUE).
-
- RUN "v8/d-neuer_wert.w" (INPUT AWert, OUTPUT NWert).
-
- F_Konto_Tot = NWert.
- DISPLAY F_Konto_Tot WITH FRAME {&FRAME-NAME}.
- FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
- AND XTabel.RecArt = 'KTotal'
- AND XTabel.Sprcd = 1
- AND XTabel.CodeC = F_Konto NO-ERROR.
- IF NOT AVAILABLE XTabel THEN DO:
- CREATE XTabel.
- ASSIGN XTabel.Firma = GVFirma
- XTabel.RecArt = 'KTotal'
- XTabel.Sprcd = 1
- XTabel.CodeC = F_Konto.
- END.
- XTabel.Dec_1 = F_Konto_Tot.
- APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Total
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Total V-table-Win
- ON LEFT-MOUSE-DBLCLICK OF F_Total IN FRAME F-Main /* G-Total */
- DO:
- DEF VAR AWert AS DEC.
- DEF VAR NWert AS DEC.
-
- AWert = DECIMAL(SELF:SCREEN-VALUE).
-
- RUN "v8/d-neuer_wert.w" (INPUT AWert, OUTPUT NWert).
-
- F_Total = NWert.
- DISPLAY F_Total WITH FRAME {&FRAME-NAME}.
- FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
- AND XTabel.RecArt = 'GTotal'
- AND XTabel.Sprcd = 1
- AND XTabel.CodeC = '' NO-ERROR.
- IF NOT AVAILABLE XTabel THEN DO:
- CREATE XTabel.
- ASSIGN XTabel.Firma = GVFirma
- XTabel.RecArt = 'GTotal'
- XTabel.Sprcd = 1
- XTabel.CodeC = ''.
- END.
- XTabel.Dec_1 = F_Total.
- APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- 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.
- &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
- RUN dispatch IN THIS-PROCEDURE ('initialize':U).
- &ENDIF
-
- /************************ INTERNAL PROCEDURES ********************/
- ON RETURN OF F_Konto IN FRAME {&FRAME-NAME}
- OR RETURN OF F_Zah_Datum IN FRAME {&FRAME-NAME}
- OR RETURN OF F_Faknr IN FRAME {&FRAME-NAME}
- OR RETURN OF F_Knr IN FRAME {&FRAME-NAME}
- OR RETURN OF CB_Konto IN FRAME {&FRAME-NAME}
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- ON ENTRY OF F_Konto_Tot IN FRAME {&FRAME-NAME}
- DO:
- APPLY 'ENTRY' TO F_Zah_Datum IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- ON ENTRY OF F_Total IN FRAME {&FRAME-NAME}
- DO:
- IF LASTKEY = KEYCODE('BACK-TAB') THEN APPLY 'ENTRY' TO F_Zah_Datum IN FRAME {&FRAME-NAME}.
- APPLY 'ENTRY' TO F_Zah_Datum IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- ON ENTRY OF F_FakDat IN FRAME {&FRAME-NAME}
- OR ENTRY OF F_Faellig IN FRAME {&FRAME-NAME}
- OR ENTRY OF F_FakBetr IN FRAME {&FRAME-NAME}
- OR ENTRY OF F_Saldo_T IN FRAME {&FRAME-NAME}
- OR ENTRY OF F_Saldo IN FRAME {&FRAME-NAME}
- OR ENTRY OF F_Skonto_Ber IN FRAME {&FRAME-NAME}
- OR ENTRY OF F_Sko_Max IN FRAME {&FRAME-NAME}
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- ON ENTRY OF F_Knr IN FRAME {&FRAME-NAME}
- DO:
- F_Knr = INTEGER(SELF:SCREEN-VALUE).
- IF F_Faknr > 0 AND
- F_Faknr < 999999 THEN DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- END.
- ON ENTRY OF F_Zah_Betr IN FRAME {&FRAME-NAME}
- OR ENTRY OF F_Skonto IN FRAME {&FRAME-NAME}
- DO:
- IF F_Faknr = 0 THEN DO:
- APPLY 'ENTRY' TO F_Faknr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- END.
- ON LEAVE OF CB_Konto IN FRAME {&FRAME-NAME}
- DO:
- F_Konto = CB_Konto:SCREEN-VALUE.
- F_Konto:SCREEN-VALUE = F_Konto.
- IF F_Konto = '' AND
- FErst = FALSE THEN DO:
- { v8/fehler.i "0401" }
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
- AND XTabel.RecArt = 'KTotal'
- AND XTabel.Sprcd = 1
- AND XTabel.CodeC = F_Konto NO-ERROR.
- IF NOT AVAILABLE XTabel THEN F_Konto_Tot = 0.
- ELSE F_Konto_Tot = XTabel.Dec_1.
- DISPLAY F_Konto_Tot WITH FRAME {&FRAME-NAME}.
- FErst = FALSE.
- END.
- ON LEAVE OF F_Zah_Datum IN FRAME {&FRAME-NAME}
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- ASSIGN {&List-6}.
- IF F_Zah_Datum = ? THEN DO:
- { v8/fehler.i "0096" }
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- IF F_Zah_Datum <= SperrDat THEN DO:
- { v8/fehler.i "0096" }
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- END.
- END.
- ON LEAVE OF F_Faknr IN FRAME {&FRAME-NAME}
- DO:
- F_Faknr = INTEGER(SELF:SCREEN-VALUE).
- LKY = LASTKEY.
- IF KEYFUNCTION(LKY) = 'END-ERROR' THEN RETURN.
-
- IF F_Faknr = 0 OR
- F_Faknr = 999999 THEN DO WITH FRAME {&FRAME-NAME}:
- F_FakDat = ?.
- F_Faellig = ?.
- F_FakBetr = 0.
- F_Saldo_T = 0.
- DISPLAY {&List-5}.
- DVFaknr = F_Faknr.
- APPLY 'ENTRY' TO F_Knr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- FIND Debop USE-INDEX Debop-k2
- WHERE Debop.Firma = GVFirma
- AND Debop.Faknr = F_Faknr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debop THEN DO:
- { v8/fehler.i "0402" }
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- DVKnr = Debop.Knr.
- DVFaknr = Debop.Faknr.
- RUN new-state ('Seite_1_selectfnr, MAIN':U).
- RUN ANSCHRIFT.
-
- ASSIGN F_Faknr = Debop.Faknr
- F_Knr = Debop.Knr
- F_Fakbetr = Debop.FakBetr
- F_FakDat = Debop.FakDat
- F_Faellig = Debop.Faellig
- F_Saldo = Debop.Saldo
- F_Skonto_Ber = Debop.ZahBetr
- F_Sko_Max = Debop.Skonto.
-
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = GVFirma
- AND Debst.Knr = F_Knr NO-LOCK NO-ERROR.
- F_Saldo_T = Debst.Saldo.
-
- RUN "v8/skonto.p" ( INPUT F_Knr, INPUT F_Faknr, INPUT F_Zah_Datum,
- OUTPUT VSko_Max, OUTPUT VSko_Fak ).
-
- F_Zah_Betr = 0.
- F_Skonto = 0.
-
- DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}.
- DISPLAY {&List-4} WITH FRAME {&FRAME-NAME}.
- END.
- ON LEAVE OF F_Knr IN FRAME {&FRAME-NAME}
- DO:
- IF F_Faknr > 0 AND
- F_Faknr < 999999 THEN RETURN.
- LKY = LASTKEY.
- IF KEYFUNCTION(LKY) = 'END-ERROR' THEN RETURN.
- IF KEYFUNCTION(LKY) = 'BACK-TAB' THEN RETURN.
-
- F_Knr = INTEGER(SELF:SCREEN-VALUE).
-
- IF F_Knr = 0 THEN DO:
- RUN new-state ('Seite_4, MAIN':U).
- RETURN NO-APPLY.
- END.
-
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = GVFirma
- AND Debst.Knr = F_Knr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- { v8/fehler.i "0421" }
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- DVKnr = Debst.Knr.
- RUN ANSCHRIFT.
- IF F_Faknr = 999999 THEN DO:
- RUN FAKNR_FUELLEN.
- RETURN NO-APPLY.
- END.
-
- IF F_Faknr = 0 THEN RUN new-state ('Seite_2, MAIN':U).
- RETURN NO-APPLY.
- END.
- ON RETURN OF F_Zah_Betr IN FRAME {&FRAME-NAME}
- OR RETURN OF F_Skonto IN FRAME {&FRAME-NAME}
- DO:
- APPLY 'U1' TO THIS-PROCEDURE.
- IF FFehler THEN RETURN NO-APPLY.
- RETURN NO-APPLY.
- END.
- ON LEAVE OF F_Skonto IN FRAME {&FRAME-NAME}
- DO:
- IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
- IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
- IF KEYFUNCTION(LASTKEY) = '' THEN RETURN.
- APPLY 'U1' TO THIS-PROCEDURE.
- IF FFehler THEN RETURN NO-APPLY.
- RETURN NO-APPLY.
- END.
- ON U1 OF THIS-PROCEDURE
- DO:
- FFehler = FALSE.
- DO WITH FRAME {&FRAME-NAME}:
- ASSIGN {&List-4}.
- ASSIGN {&List-5}.
- ASSIGN {&List-6}.
- IF F_Konto = '' THEN DO:
- { v8/fehler.i "0401" }
- FFehler = TRUE.
- APPLY 'ENTRY' TO CB_Konto.
- RETURN NO-APPLY.
- END.
-
- FIND Debop USE-INDEX Debop-k1
- WHERE Debop.Firma = GVFirma
- AND Debop.Knr = F_Knr
- AND Debop.Faknr = F_Faknr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debop THEN DO:
- { v8/fehler.i "0402" }
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- DVKnr = Debop.Knr.
- DVFaknr = Debop.Faknr.
- DebopRECID = RECID(Debop).
-
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = GVFirma
- AND Debst.Knr = F_Knr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- { v8/fehler.i "0421" }
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- IF F_Zah_Betr = 0 AND
- F_Skonto = 0 THEN DO:
- F_Zah_Betr = Debop.Saldo.
- F_Skonto = 0.
- DISPLAY {&List-4}.
- FFehler = TRUE.
- APPLY 'ENTRY' TO F_Zah_Betr.
- RETURN NO-APPLY.
- END.
-
- Rundbetr = F_Zah_Betr + F_Skonto.
- IF Rundbetr = 0 THEN DO:
- DISPLAY {&List-4}.
- FFehler = TRUE.
- APPLY 'ENTRY' TO F_Zah_Betr.
- RETURN NO-APPLY.
- END.
- DO WHILE Rundbetr <> Debop.Saldo:
- IF Debop.Saldo >= 0 AND
- Rundbetr > 0 THEN DO:
- IF (F_Skonto + Rundbetr) <= VSko_Max THEN F_Skonto = F_Skonto + Rundbetr.
- END.
- IF Debop.Saldo < 0 AND
- Rundbetr < 0 THEN DO:
- IF (F_Skonto + Rundbetr) >= VSko_Max THEN F_Skonto = F_Skonto + Rundbetr.
- END.
- LEAVE.
- END.
- Ja = TRUE.
- /*
- IF (F_Sko_Max >= 0 AND
- F_Skonto >= 0 AND
- F_Skonto > F_Sko_Max) OR
- (F_Sko_Max < 0 AND
- F_Skonto < 0 AND
- F_Skonto < F_Sko_Max) THEN DO:
- Ja = TRUE.
- { v8/antwort.i "0405" }
- END.
- */
- IF NOT Ja THEN DO:
- FFehler = TRUE.
- APPLY 'ENTRY' TO F_Skonto.
- RETURN NO-APPLY.
- END.
-
- RUN ZAHLUNG.
- END.
- FFehler = FALSE.
- APPLY 'ENTRY' TO F_Knr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- ON END-ERROR OF F_Knr IN FRAME {&FRAME-NAME}
- DO:
- F_Knr = 0.
- APPLY 'ENTRY' TO F_Faknr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- ON END-ERROR OF F_Faknr IN FRAME {&FRAME-NAME}
- DO:
- APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- ON END-ERROR OF F_Zah_Betr IN FRAME {&FRAME-NAME}
- OR END-ERROR OF F_Skonto IN FRAME {&FRAME-NAME}
- DO:
- APPLY 'ENTRY' TO F_Faknr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLOESCHEN V-table-Win
- PROCEDURE ABLOESCHEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- FRAME {&FRAME-NAME}:HIDDEN = TRUE.
- FRAME {&FRAME-NAME}:SENSITIVE = FALSE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &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 ANSCHRIFT V-table-Win
- PROCEDURE ANSCHRIFT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = DVKnr NO-LOCK NO-ERROR.
- DO WITH FRAME {&FRAME-NAME}:
- F_Anschrift:DELIMITER = "}".
- F_Anschrift:DELETE(9).
- F_Anschrift:DELETE(8).
- F_Anschrift:DELETE(7).
- F_Anschrift:DELETE(6).
- F_Anschrift:DELETE(5).
- F_Anschrift:DELETE(4).
- F_Anschrift:DELETE(3).
- F_Anschrift:DELETE(2).
- F_Anschrift:DELETE(1).
-
- IF AVAILABLE Adresse THEN DO:
- F_Anschrift:ADD-LAST(Adresse.Anschrift[3]).
- F_Anschrift:ADD-LAST(Adresse.Anschrift[4]).
- F_Anschrift:ADD-LAST(Adresse.Anschrift[5]).
- F_Anschrift:ADD-LAST(Adresse.Anschrift[6]).
- F_Anschrift:ADD-LAST(Adresse.Anschrift[7]).
- F_Anschrift:ADD-LAST(Adresse.Anschrift[8]).
- F_Anschrift:ADD-LAST(Adresse.Anschrift[9]).
- F_Anschrift:ADD-LAST(Adresse.Anschrift[10]).
- F_Anschrift:ADD-LAST(Adresse.Anschrift[11]).
- END.
-
- DISPLAY F_Anschrift.
-
- FIND SDebst USE-INDEX Debst-k1
- WHERE SDebst.Firma = GVFirma
- AND SDebst.Knr = Adresse.Knr NO-LOCK NO-ERROR.
- IF AVAILABLE SDebst THEN F_Saldo_T = SDebst.Saldo.
- ELSE F_Saldo_T = 0.
- DISPLAY F_Saldo_T.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZUENDEN V-table-Win
- PROCEDURE ANZUENDEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- FRAME {&FRAME-NAME}:HIDDEN = FALSE.
- FRAME {&FRAME-NAME}:SENSITIVE = TRUE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DEBWECHSEL V-table-Win
- PROCEDURE DEBWECHSEL :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- RUN ANSCHRIFT.
-
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = GVFirma
- AND Debst.Knr = DVKnr NO-LOCK NO-ERROR.
- IF Available DEBST THEN F_Saldo_T = Debst.Saldo.
- ELSE F_Saldo_T = 0.
- DISPLAY F_Saldo_T WITH FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- 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 ENTRY_KONTO V-table-Win
- PROCEDURE ENTRY_KONTO :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKNR_FUELLEN V-table-Win
- PROCEDURE FAKNR_FUELLEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- F_Faknr = DVFaknr.
- FIND Debop USE-INDEX Debop-k2
- WHERE Debop.Firma = GVFirma
- AND Debop.Faknr = F_Faknr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debop THEN DO:
- { v8/fehler.i "0402" }
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- DVKnr = Debop.Knr.
- DVFaknr = Debop.Faknr.
- RUN ANSCHRIFT.
-
- ASSIGN F_Faknr = Debop.Faknr
- F_Knr = Debop.Knr
- F_Fakbetr = Debop.FakBetr
- F_FakDat = Debop.FakDat
- F_Faellig = Debop.Faellig
- F_Saldo = Debop.Saldo
- F_Skonto_Ber = Debop.ZahBetr
- F_Sko_Max = Debop.Skonto.
-
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = GVFirma
- AND Debst.Knr = F_Knr NO-LOCK NO-ERROR.
- F_Saldo_T = Debst.Saldo.
-
- RUN "v8/skonto.p" ( INPUT F_Knr, INPUT F_Faknr, INPUT F_Zah_Datum,
- OUTPUT VSko_Max, OUTPUT VSko_Fak ).
-
- F_Zah_Betr = 0.
- F_Skonto = 0.
-
- DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}.
- DISPLAY {&List-4} WITH FRAME {&FRAME-NAME}.
-
- APPLY 'ENTRY' TO F_Zah_Betr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INTERFACE V-table-Win
- PROCEDURE INTERFACE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- FOR EACH WFile WHERE WFile.Betrag <> 0
- BY WFile.Kto1:
- FIND LAST Interf USE-INDEX Interf-k1
- WHERE Interf.Firma = BSteuer.FBFirma
- 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 = BSteuer.FBFirma
- Interf.TrNr1 = VTrNr1
- Interf.TrNr2 = VTrNr2
- Interf.TrNr = ix
- Interf.Kto1 = WFile.Kto1
- Interf.Kto2 = WFile.Kto2
- Interf.Herk = TransNr.Herk
- Interf.Datum = BDebza.ZahDat
- Interf.Buchtxt1 = VBuchtxt1
- Interf.Buchtxt2 = VBuchtxt2
- Interf.Betrag = WFile.Betrag
- Interf.Betrag_Frw = WFile.Betrag
- Interf.FRW = BDebop.FRW
- Interf.Faktor = BDebop.Faktor
- Interf.Kurs = BDebop.Kurs
- Interf.Verbucht = FALSE
- Interf.Faknr = STRING(BDebop.Faknr,"9999999")
- Interf.Knr = BDebop.Knr
- Interf.MWST_Nr = ""
- Interf.MWST_Cd = WFile.MWST_Cd
- Interf.HKFirma = BDebop.Firma.
- DELETE WFile.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KUNDE_FUELLEN V-table-Win
- PROCEDURE KUNDE_FUELLEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- F_FakDat = ?.
- F_Faellig = ?.
- F_FakBetr = 0.
- F_Saldo_T = 0.
- F_Knr = DVKnr.
- DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}.
- RUN ANSCHRIFT.
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-disable-fields V-table-Win
- PROCEDURE local-disable-fields :
- /*------------------------------------------------------------------------------
- Purpose: Override standard ADM method
- Notes:
- ------------------------------------------------------------------------------*/
- RUN dispatch IN THIS-PROCEDURE ( INPUT 'disable-fields':U ) .
-
- DO WITH FRAME {&FRAME-NAME}:
- DISABLE {&ADM-ASSIGN-FIELDS}.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-display-fields V-table-Win
- PROCEDURE local-display-fields :
- /*------------------------------------------------------------------------------
- Purpose: Override standard ADM method
- Notes:
- ------------------------------------------------------------------------------*/
- RUN dispatch IN THIS-PROCEDURE ( INPUT 'display-fields':U ) .
- DISPLAY {&ADM-ASSIGN-FIELDS} WITH FRAME {&FRAME-NAME}.
-
- F_Konto = CB_Konto:SCREEN-VALUE.
- F_Konto:SCREEN-VALUE = F_Konto.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-enable-fields V-table-Win
- PROCEDURE local-enable-fields :
- /*------------------------------------------------------------------------------
- Purpose: Override standard ADM method
- Notes:
- ------------------------------------------------------------------------------*/
- RUN dispatch IN THIS-PROCEDURE ( INPUT 'enable-fields':U ) .
- DO WITH FRAME {&FRAME-NAME}:
- ENABLE {&ADM-ASSIGN-FIELDS}.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize V-table-Win
- PROCEDURE local-initialize :
- /*------------------------------------------------------------------------------
- Purpose: Override standard ADM method
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cString AS CHAR NO-UNDO.
- DEF VAR cKey AS CHAR NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR.
- CB_Konto:DELIMITER = ";".
- RUN COMBO_ZAHLUNGSART ( INPUT CB_Konto:HANDLE ) NO-ERROR.
-
- cKey = 'Konto' + STRING(iLager,'99').
- GET-KEY-VALUE SECTION 'DebitorZahlungen'
- KEY cKey
- VALUE cString.
- IF cString = ? THEN cString = ''.
- IF cString = '' THEN DO:
- cKey = 'Konto'.
- GET-KEY-VALUE SECTION 'DebitorZahlungen'
- KEY cKey
- VALUE cString.
- END.
- IF cString = ? THEN cString = ''.
- IF cString = '' THEN cString = ENTRY(2, CB_Konto:LIST-ITEM-PAIRS, ';').
- F_Konto = cString.
- F_Konto :SCREEN-VALUE = cString NO-ERROR.
- CB_Konto:SCREEN-VALUE = cString NO-ERROR.
- END.
- RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
- FOR EACH XTabel:
- DELETE XTabel.
- END.
-
- F_Konto_Tot = 0.
- F_Total = 0.
- F_Konto = CB_Konto:SCREEN-VALUE.
- F_Zah_Datum = TODAY.
- F_FakDat = ?.
- F_Faellig = ?.
- F_Saldo_T = 0.
- F_Faknr = 0.
- F_Fakbetr = 0.
- F_Knr = 0.
- F_Saldo = 0.
- F_Skonto_Ber = 0.
- F_Sko_Max = 0.
- F_Zah_Betr = 0.
- FIND Steuer NO-LOCK USE-INDEX Steuer-k1
- WHERE Steuer.Firma = GVFirma NO-ERROR.
- IF AVAILABLE Steuer THEN DO:
- SperrDat = DATE(Steuer.Fwc08) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN SperrDat = 01/01/0001.
- END.
-
- RUN dispatch IN THIS-PROCEDURE ('display-fields':U).
- Helptext = ''.
- FOR EACH LiBild WHERE LiBild.Sprcd = GVSprcd
- AND LiBild.Prog = 'ZAHLUNG' NO-LOCK:
- Helptext[LiBild.Tenr] = LiBild.Litext.
- 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:
- ------------------------------------------------------------------------------*/
- Helptext = ''.
- i5 = 0.
- FOR EACH LiBild USE-INDEX LiBild-k1
- WHERE LiBild.Sprcd = GVSprcd
- AND LiBild.Prog = 'ZAHLUNG' NO-LOCK:
- i5 = i5 + 1.
- Helptext[i5] = LiBild.Litext.
- END.
- SperrDat = DYNAMIC-FUNCTION('getSperrDatum':U) NO-ERROR.
- RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
- RUN dispatch IN THIS-PROCEDURE ('apply-entry':U).
- APPLY 'ENTRY' TO CB_Konto IN FRAME {&FRAME-NAME}.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER V-table-Win
- PROCEDURE MEHRWERTSTEUER :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR nDiff AS DEC NO-UNDO.
- DEF VAR nTotProz AS DEC NO-UNDO.
- DEF VAR nSaldo AS DEC NO-UNDO.
- DEF VAR nBetrag AS DEC NO-UNDO.
- DEF VAR nZahBetr AS DEC NO-UNDO.
- DEF VAR nFakBetr AS DEC NO-UNDO.
- DEF VAR nSkoBetr AS DEC NO-UNDO.
- DEF VAR lStorno AS LOG NO-UNDO.
- DEF VAR iFaktor AS INT NO-UNDO.
- DEF VAR lNochmals AS LOG NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
-
- IF VZaBetr = 0 AND
- VSkBetr = 0 THEN RETURN.
- VMax = 0.
- DO zz = 1 TO 11:
- IF bDebop.FakWpfl[zz] = 0 THEN NEXT.
- VMax = zz.
- END.
- EMPTY TEMP-TABLE tDebop.
- EMPTY TEMP-TABLE tDebza.
-
- CREATE tDebop.
- BUFFER-COPY bDebop TO tDebop.
- DO zz = 1 TO 11:
- ASSIGN tDebop.ZahWpfl[zz] = 0
- tDebop.ZahWust[zz] = 0
- tDebop.ZahSkon[zz] = 0
- tDebop.FakWpfl[zz] = tDebop.FakWpfl[zz] + tDebop.FakWust[zz].
- END.
- ASSIGN tDebop.ZahBetr = tDebop.Zahbetr + VZaBetr
- tDebop.Skonto = tDebop.Skonto + VSkBetr.
-
- CREATE tDebza.
- BUFFER-COPY bDebza TO tDebza.
- DO zz = 1 TO 11:
- ASSIGN tDebza.ZahWpfl[zz] = 0
- tDebza.ZahWust[zz] = 0
- tDebza.ZahSkon[zz] = 0.
- END.
- IF tDebop.Zahbetr <> 0 THEN DO:
- IF tDebop.FakBetr <> 0 THEN nTotProz = tDebop.ZahBetr * 100 / tDebop.FakBetr.
- ELSE nTotProz = VZaBetr * 100 / tDebop.Fakbetr.
- END.
- ELSE DO:
- nTotProz = 0.
- END.
- DO zz = 1 TO 11:
- tDebop.ZahWpfl[zz] = tDebop.FakWpfl[zz] * nTotProz / 100.
- END.
- IF tDebop.Skonto <> 0 THEN DO:
- IF tDebop.FakBetr <> 0 THEN nTotProz = tDebop.Skonto * 100 / tDebop.FakBetr.
- ELSE nTotProz = VSkBetr * 100 / tDebop.FakBetr.
- END.
- ELSE DO:
- nTotProz = 0.
- END.
- DO zz = 1 TO 11:
- tDebop.ZahSkon[zz] = tDebop.FakWpfl[zz] * nTotProz / 100.
- END.
-
- ASSIGN nZahBetr = 0
- nSkoBetr = 0.
- /* ZAHLBETRAG */
- DO zz = 1 TO 11:
- IF tDebop.FakWpfl[zz] < 0 AND
- tDebop.ZahWpfl[zz] <= 0 THEN DO:
- IF tDebop.ZahWpfl[zz] >= tDebop.FakWpfl[zz] THEN NEXT.
- nDiff = tDebop.ZahWpfl[zz] - tDebop.FakWpfl[zz].
- tDebop.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - nDiff.
- nZahBetr = nZahBetr + nDiff.
- NEXT.
- END.
- IF tDebop.FakWpfl[zz] >= 0 AND
- tDebop.ZahWpfl[zz] >= 0 THEN DO:
- IF tDebop.ZahWpfl[zz] <= tDebop.FakWpfl[zz] THEN NEXT.
- nDiff = tDebop.ZahWpfl[zz] - tDebop.FakWpfl[zz].
- tDebop.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - nDiff.
- nZahBetr = nZahBetr + nDiff.
- NEXT.
- END.
- IF tDebop.FakWpfl[zz] < 0 AND
- tDebop.ZahWpfl[zz] >= 0 THEN DO:
- nDiff = tDebop.ZahWpfl[zz].
- tDebop.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - nDiff.
- nZahBetr = nZahBetr + nDiff.
- NEXT.
- END.
- IF tDebop.FakWpfl[zz] >= 0 AND
- tDebop.ZahWpfl[zz] <= 0 THEN DO:
- nDiff = tDebop.ZahWpfl[zz].
- tDebop.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - nDiff.
- nZahBetr = nZahBetr + nDiff.
- NEXT.
- END.
- END.
- tDebop.ZahWpfl[11] = tDebop.ZahWpfl[11] + nZahBetr.
-
- /* SKONTO */
- DO zz = 1 TO 11:
- IF tDebop.FakWpfl[zz] < 0 AND
- tDebop.ZahSkon[zz] <= 0 THEN DO:
- IF (tDebop.ZahWpfl[zz] + tDebop.ZahSkon[zz]) >= tDebop.FakWpfl[zz] THEN NEXT.
- nDiff = (tDebop.ZahWpfl[zz] + tDebop.ZahSkon[zz]) - tDebop.FakWpfl[zz].
- tDebop.ZahSkon[zz] = tDebop.ZahSkon[zz] - nDiff.
- nSkoBetr = nSkoBetr + nDiff.
- NEXT.
- END.
- IF tDebop.FakWpfl[zz] >= 0 AND
- tDebop.ZahSkon[zz] >= 0 THEN DO:
- IF (tDebop.ZahWpfl[zz] + tDebop.ZahSkon[zz]) <= tDebop.FakWpfl[zz] THEN NEXT.
- nDiff = (tDebop.ZahWpfl[zz] + tDebop.ZahSkon[zz]) - tDebop.FakWpfl[zz].
- tDebop.ZahSkon[zz] = tDebop.ZahSkon[zz] - nDiff.
- nSkoBetr = nSkoBetr + nDiff.
- NEXT.
- END.
- IF tDebop.FakWpfl[zz] < 0 AND
- tDebop.ZahSkon[zz] >= 0 THEN DO:
- nDiff = tDebop.ZahSkon[zz].
- tDebop.ZahSkon[zz] = tDebop.ZahSkon[zz] - nDiff.
- nSkoBetr = nSkoBetr + nDiff.
- NEXT.
- END.
- IF tDebop.FakWpfl[zz] >= 0 AND
- tDebop.ZahSkon[zz] <= 0 THEN DO:
- nDiff = tDebop.ZahSkon[zz].
- tDebop.ZahSkon[zz] = tDebop.ZahSkon[zz] - nDiff.
- nSkoBetr = nSkoBetr + nDiff.
- NEXT.
- END.
- END.
- tDebop.ZahSkon[11] = tDebop.ZahSkon[11] + nSkoBetr.
-
- nZahBetr = 0.
- nSkoBetr = 0.
- DO zz = 1 TO 11:
- ASSIGN tDebza.ZahWpfl[zz] = tDebop.ZahWpfl[zz] - bDebop.ZahWpfl[zz] - bDebop.ZahWust[zz]
- tDebza.ZahSkon[zz] = tDebop.ZahSkon[zz] - bDebop.ZahSkon[zz].
- IF tDebza.ZahWpfl[zz] <> 0 THEN DO:
- tDebza.ZahWust[zz] = tDebza.ZahWpfl[zz] * tDebop.FakWPro[zz] / (100 + tDebop.FakWPro[zz]).
- tDebza.ZahWpfl[zz] = tDebza.ZahWpfl[zz] - tDebza.ZahWust[zz].
- END.
- nZahBetr = nZahBetr + tDebza.ZahWpfl[zz] + tDebza.ZahWust[zz].
- nSkoBetr = nSkoBetr + tDebza.ZahSkon[zz].
- ASSIGN bDebza.ZahWpfl[zz] = tDebza.ZahWpfl[zz]
- bDebza.ZahWust[zz] = tDebza.ZahWust[zz]
- bDebza.ZahSkon[zz] = tDebza.ZahSkon[zz].
- END.
-
- nDiff = VZaBetr - nZahBetr.
- IF nZahBetr + nDiff = VZaBetr THEN bDebza.ZahWpfl[11] = bDebza.ZahWpfl[11] + nDiff.
- ELSE bDebza.ZahWpfl[11] = bDebza.ZahWpfl[11] - nDiff.
- nDiff = VSkBetr - nSkoBetr.
- IF nSkoBetr + nDiff = VSkBetr THEN bDebza.ZahSkon[11] = bDebza.ZahSkon[11] + nDiff.
- ELSE bDebza.ZahSkon[11] = bDebza.ZahSkon[11] - nDiff.
-
- DO zz = 1 TO 11:
- ASSIGN bDebop.ZahWpfl[zz] = bDebop.ZahWpfl[zz] + tDebza.ZahWpfl[zz]
- bDebop.ZahWust[zz] = bDebop.ZahWust[zz] + tDebza.ZahWust[zz]
- bDebop.ZahSkon[zz] = bDebop.ZahSkon[zz] + tDebza.ZahSkon[zz].
- END.
- 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:
-
- WHEN 'Aktivieren' THEN DO:
- RUN dispatch IN THIS-PROCEDURE ('enable-fields':U).
- RETURN NO-APPLY.
- END.
-
- WHEN 'Deaktivieren' THEN DO:
- RUN dispatch IN THIS-PROCEDURE ('disable-fields':U).
- RETURN NO-APPLY.
- END.
-
- {src/adm/template/vstates.i}
- END CASE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZAHLUNG V-table-Win
- PROCEDURE ZAHLUNG :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- VZaBetr = F_Zah_Betr.
- VSkBetr = F_Skonto.
- VDatum = F_Zah_Datum.
- VBankKto = F_Konto.
- VHerk = 61.
-
- FIND Debop WHERE RECID(Debop) = DebopRECID NO-LOCK.
-
- DO TRANSACTION:
- 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.
- DVKnr = Debop.Knr.
- DVFaknr = Debop.Faknr.
- FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK.
- FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK.
- IF VDatum > BDebop.Faellig THEN VZahFl = FALSE.
- ELSE VZahFl = TRUE.
- IF VZahFl THEN VKte = TRIM(SUBSTRING(Helptext[02],01,10)).
- ELSE VKte = TRIM(SUBSTRING(Helptext[02],11,10)).
-
- 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 = Steuer.Fwc03 NO-ERROR.
- IF AVAILABLE Waehrung THEN VSkoKto = Waehrung.DebSammKto.
- END.
- END.
- VDebKto = BDebop.Konto.
- FBFirma = Steuer.FBFirma.
-
- 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").
- FOR EACH WFile:
- DELETE WFile.
- END.
- /* ---- 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 = VDatum
- 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 = VDatum.
- 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 ------------------------------------- */
- FIND FIRST WFile WHERE WFile.Kto1 = bDebza.Konto
- AND WFile.Kto2 = BDebop.Konto NO-ERROR.
- IF NOT AVAILABLE WFile THEN DO:
- CREATE WFile.
- ASSIGN WFile.Kto1 = bDebza.Konto
- WFile.Kto2 = BDebop.Konto
- WFile.MWST_Cd = 0.
- END.
- ASSIGN WFile.Betrag = WFile.Betrag + VZaBetr.
- FIND FIRST WFile WHERE WFile.Kto1 = VSkoKto
- AND WFile.Kto2 = BDebop.Konto NO-ERROR.
- IF NOT AVAILABLE WFile THEN DO:
- CREATE WFile.
- ASSIGN WFile.Kto1 = VSkoKto
- WFile.Kto2 = BDebop.Konto
- WFile.MWST_Cd = 0.
- END.
- ASSIGN WFile.Betrag = WFile.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 NO-LOCK USE-INDEX Wust-k2
- WHERE Wust.WuCd = ix NO-ERROR.
- 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 WFile WHERE WFile.Kto1 = SteuNr.Konto_Wust_H
- AND WFile.Kto2 = Wust.Konto NO-ERROR.
- IF NOT AVAILABLE WFile THEN DO:
- CREATE WFile.
- ASSIGN WFile.Kto1 = SteuNr.Konto_Wust_H
- WFile.Kto2 = Wust.Konto
- WFile.MWST_Cd = 0.
- END.
- ASSIGN WFile.Betrag = WFile.Betrag + Rundbetr.
- END.
- IF NOT BDebop.WustAbr AND
- 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 WFile WHERE WFile.Kto1 = LVKto1
- AND WFile.Kto2 = LVKto2 NO-ERROR.
- IF NOT AVAILABLE WFile THEN DO:
- CREATE WFile.
- ASSIGN WFile.Kto1 = LVKto1
- WFile.Kto2 = LVKto2
- WFile.MWST_Cd = 0.
- END.
- ASSIGN WFile.Betrag = WFile.Betrag + Rundbetr.
- END.
- END.
- RUN INTERFACE.
- DVFaknr = BDebop.Faknr.
- DVKnr = BDebop.Knr.
-
- RELEASE bDebop.
- RELEASE Debwu.
- RELEASE Debhi.
- RELEASE bDebza.
-
- RUN new-state ('zahlung_verbucht, MAIN':U).
-
- LEAVE.
- END. /* Zahlung Normal */
-
- FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
- AND XTabel.RecArt = 'KTotal'
- AND XTabel.Sprcd = 1
- AND XTabel.CodeC = F_Konto NO-ERROR.
- IF NOT AVAILABLE XTabel THEN DO:
- CREATE XTabel.
- ASSIGN XTabel.Firma = GVFirma
- XTabel.RecArt = 'KTotal'
- XTabel.Sprcd = 1
- XTabel.CodeC = F_Konto.
- END.
- XTabel.Dec_1 = XTabel.Dec_1 + F_Zah_Betr.
- F_Konto_Tot = XTabel.Dec_1.
-
- FIND FIRST XTabel WHERE XTabel.Firma = GVFirma
- AND XTabel.RecArt = 'GTotal'
- AND XTabel.Sprcd = 1
- AND XTabel.CodeC = '' NO-ERROR.
- IF NOT AVAILABLE XTabel THEN DO:
- CREATE XTabel.
- ASSIGN XTabel.Firma = GVFirma
- XTabel.RecArt = 'GTotal'
- XTabel.Sprcd = 1
- XTabel.CodeC = ''.
- END.
- XTabel.Dec_1 = XTabel.Dec_1 + F_Zah_Betr.
- F_Total = XTabel.Dec_1.
-
- DO WITH FRAME {&FRAME-NAME}:
- DISPLAY F_Konto_Tot F_Total.
- END.
- F_Faknr = 0.
- F_FakDat = ?.
- F_Faellig = ?.
- F_FakBetr = 0.
- F_Saldo_T = 0.
- DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}.
-
- F_Saldo = 0.
- F_Skonto_Ber = 0.
- F_Sko_Max = 0.
- F_Zah_Betr = 0.
- F_Skonto = 0.
- DISPLAY {&List-4} WITH FRAME {&FRAME-NAME}.
- RUN ANSCHRIFT.
-
- RETURN NO-APPLY.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|