&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gBestellPreise {adecomm/appserv.i} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gBestellPreise /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* 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 --- */ DEFINE INPUT-OUTPUT PARAMETER iohtBesko AS HANDLE. /* Local Variable Definitions --- */ DEFINE VARIABLE VBestand AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE nDEP AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE nEpCHF AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE WBestand AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE WEingang AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE TBestand AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE VJJ AS INTEGER NO-UNDO. DEFINE VARIABLE VMM AS INTEGER NO-UNDO. DEFINE VARIABLE nKorrektur AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE iFaknr AS INTEGER NO-UNDO. DEFINE VARIABLE cFaknr AS CHARACTER NO-UNDO. DEFINE VARIABLE nRundbetr AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE rBesko AS RECID NO-UNDO. { incl/dlgdefinition.i } { src/adm2/widgetprto.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDialog &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER DIALOG-BOX &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME gBestellPreise /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-2 E_Text F_Bestell_Nr F_FRW F_Kurs ~ F_Faktor F_Bestellung F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am ~ F_Korrektur Btn_OK Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS E_Text F_Bestell_Nr F_FRW F_Kurs F_Faktor ~ F_Bestellung F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am F_Korrektur /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Bestell_Nr F_FRW F_Kurs F_Faktor &Scoped-define List-5 F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am ~ F_Korrektur /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "abbrechen" SIZE 15 BY 1. DEFINE BUTTON Btn_OK AUTO-GO LABEL "OK" SIZE 15 BY 1. DEFINE VARIABLE E_Text AS CHARACTER VIEW-AS EDITOR MAX-CHARS 1000 SIZE 108 BY 2.52 BGCOLOR 15 FGCOLOR 12 NO-UNDO. DEFINE VARIABLE F_Artikel AS CHARACTER FORMAT "X(256)":U LABEL "Artikel" VIEW-AS FILL-IN NATIVE SIZE 68 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bestand AS CHARACTER FORMAT "X(256)":U LABEL "Bestand heute" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bestand_Am AS CHARACTER FORMAT "X(256)":U LABEL "Bestand am" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bestellung AS CHARACTER FORMAT "X(256)":U LABEL "Bestellung" VIEW-AS FILL-IN NATIVE SIZE 68 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bestell_Nr AS CHARACTER FORMAT "x(20)":U LABEL "Dokumentnummer Lieferant" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_DEP AS CHARACTER FORMAT "X(256)":U LABEL "Durschnittlicher EP heute" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_DEP_Am AS CHARACTER FORMAT "X(256)":U LABEL "Durchschnittlicher EP am" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Faktor AS INTEGER FORMAT "zzzz9":U INITIAL 0 LABEL "Faktor" VIEW-AS FILL-IN NATIVE SIZE 9 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_FRW AS CHARACTER FORMAT "X(256)":U LABEL "Währung" VIEW-AS FILL-IN NATIVE SIZE 28 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Korrektur AS CHARACTER FORMAT "x(16)":U LABEL "Korrektur der Einstandskosten" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Kurs AS DECIMAL FORMAT "zz,zz9.999999":U INITIAL 0 LABEL "Kurs" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-2 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 112 BY 14.29. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gBestellPreise E_Text AT ROW 1.95 COL 5 NO-LABEL WIDGET-ID 4 NO-TAB-STOP F_Bestell_Nr AT ROW 5 COL 41 COLON-ALIGNED WIDGET-ID 14 F_FRW AT ROW 5 COL 81 COLON-ALIGNED WIDGET-ID 22 NO-TAB-STOP F_Kurs AT ROW 6 COL 89 COLON-ALIGNED WIDGET-ID 26 F_Faktor AT ROW 7 COL 100 COLON-ALIGNED WIDGET-ID 20 NO-TAB-STOP F_Bestellung AT ROW 8 COL 41 COLON-ALIGNED WIDGET-ID 12 NO-TAB-STOP F_Artikel AT ROW 9 COL 41 COLON-ALIGNED WIDGET-ID 6 NO-TAB-STOP F_Bestand AT ROW 10 COL 41 COLON-ALIGNED WIDGET-ID 8 NO-TAB-STOP F_Bestand_Am AT ROW 11 COL 41 COLON-ALIGNED WIDGET-ID 10 NO-TAB-STOP F_DEP AT ROW 12 COL 41 COLON-ALIGNED WIDGET-ID 16 NO-TAB-STOP F_DEP_Am AT ROW 13 COL 41 COLON-ALIGNED WIDGET-ID 18 NO-TAB-STOP F_Korrektur AT ROW 14 COL 41 COLON-ALIGNED WIDGET-ID 24 NO-TAB-STOP Btn_OK AT ROW 16.24 COL 41.4 Btn_Cancel AT ROW 16.24 COL 62.6 RECT-2 AT ROW 1.48 COL 3 WIDGET-ID 2 SPACE(1.99) SKIP(2.36) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Preise/Rechnung der Bestellung einbuchen" CANCEL-BUTTON Btn_Cancel WIDGET-ID 100. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDialog Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Design Page: 1 Other Settings: COMPILE APPSERVER */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gBestellPreise /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR DIALOG-BOX gBestellPreise FRAME-NAME */ ASSIGN FRAME gBestellPreise:SCROLLABLE = FALSE FRAME gBestellPreise:HIDDEN = TRUE. ASSIGN E_Text:RETURN-INSERTED IN FRAME gBestellPreise = TRUE E_Text:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_Artikel IN FRAME gBestellPreise 5 */ ASSIGN F_Artikel:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_Bestand IN FRAME gBestellPreise 5 */ ASSIGN F_Bestand:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_Bestand_Am IN FRAME gBestellPreise 5 */ ASSIGN F_Bestand_Am:READ-ONLY IN FRAME gBestellPreise = TRUE. ASSIGN F_Bestellung:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_Bestell_Nr IN FRAME gBestellPreise 1 */ /* SETTINGS FOR FILL-IN F_DEP IN FRAME gBestellPreise 5 */ ASSIGN F_DEP:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_DEP_Am IN FRAME gBestellPreise 5 */ ASSIGN F_DEP_Am:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_Faktor IN FRAME gBestellPreise 1 */ ASSIGN F_Faktor:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_FRW IN FRAME gBestellPreise 1 */ ASSIGN F_FRW:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_Korrektur IN FRAME gBestellPreise 5 */ ASSIGN F_Korrektur:READ-ONLY IN FRAME gBestellPreise = TRUE. /* SETTINGS FOR FILL-IN F_Kurs IN FRAME gBestellPreise 1 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gBestellPreise /* Query rebuild information for DIALOG-BOX gBestellPreise _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gBestellPreise */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gBestellPreise &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gBestellPreise gBestellPreise ON END-ERROR OF FRAME gBestellPreise /* Preise/Rechnung der Bestellung einbuchen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gBestellPreise gBestellPreise ON WINDOW-CLOSE OF FRAME gBestellPreise /* Preise/Rechnung der Bestellung einbuchen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gBestellPreise ON CHOOSE OF Btn_Cancel IN FRAME gBestellPreise /* abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gBestellPreise ON CHOOSE OF Btn_OK IN FRAME gBestellPreise /* OK */ DO: RUN VERBUCHEN. IF RETURN-VALUE = '' THEN btnOK = TRUE. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME E_Text &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL E_Text gBestellPreise ON ENTRY OF E_Text IN FRAME gBestellPreise DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gBestellPreise /* *************************** Main Block *************************** */ { incl/dlgmainblock.i } {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gBestellPreise _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gBestellPreise _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 gBestellPreise. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gBestellPreise PROCEDURE enableObject : /*------------------------------------------------------------------------------*/ /* Purpose: Super Override */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ FIND FIRST Waehrung NO-LOCK WHERE Waehrung.Firma = iohtBesko::Firma AND Waehrung.Frw = iohtBesko::Frw NO-ERROR. F_Frw = Waehrung.Bez. F_Kurs = Waehrung.Kurs. F_Faktor = Waehrung.Faktor. F_Bestell_Nr = STRING(iohtBesko::Besnr). FIND Adresse NO-LOCK WHERE Adresse.FIrma = AdFirma AND Adresse.Knr = iohtBesko::Knr NO-ERROR. F_Bestellung = STRING(Adresse.Knr,'999999 ') + Adresse.Anzeig_Br. E_Text = 'Achtung! Haben Sie alle Preise kontrolliert/mutiert ?' + CHR(10) + 'Anschliessend können keine Mutationen mehr gemacht werden!'. { incl/dlgenableobject.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gBestellPreise _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY E_Text F_Bestell_Nr F_FRW F_Kurs F_Faktor F_Bestellung F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am F_Korrektur WITH FRAME gBestellPreise. ENABLE RECT-2 E_Text F_Bestell_Nr F_FRW F_Kurs F_Faktor F_Bestellung F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am F_Korrektur Btn_OK Btn_Cancel WITH FRAME gBestellPreise. VIEW FRAME gBestellPreise. {&OPEN-BROWSERS-IN-QUERY-gBestellPreise} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gBestellPreise PROCEDURE ENDE : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ IF btnOK THEN DO: iohtBesko::lOK = TRUE. END. { incl/dlgende.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN gBestellPreise PROCEDURE VERBUCHEN : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE lOK AS LOGICAL NO-UNDO INIT FALSE. REPEAT TRANSACTION ON ERROR UNDO, LEAVE WITH FRAME {&FRAME-NAME}: Btn_OK :SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. ASSIGN {&List-6}. ASSIGN {&List-1}. IF F_Kurs = 0 THEN F_Kurs = 1.0. IF F_Faktor = 0 THEN F_Faktor = 1. FIND Steuer NO-LOCK WHERE Steuer.Firma = Firma NO-ERROR. FIND Besko NO-LOCK WHERE Besko.Firma = iohtBesko::Firma AND Besko.Besnr = iohtBesko::Besnr. nKorrektur = 0. FOR EACH Besze OF Besko: IF Besze.Artnr = 0 THEN NEXT. IF Besze.MGeli < 1 THEN NEXT. IF Besze.Verbucht = TRUE THEN NEXT. FIND Artst OF Besze. VBestand = Artst.Bestand. nDEP = 0. IF nDEP = 0 THEN nDEP = Artst.DEP. IF nDEP = 0 THEN nDEP = Artst.LEP. IF nDEP = 0 THEN nDEP = Artst.Listen_EP. IF Besko.FRW <> Steuer.Fwc03 THEN DO: IF F_Kurs <> Besze.Kurs THEN DO: Besze.Kurs = F_Kurs. Besze.Faktor = F_Faktor. nRundbetr = Besze.S_Preis_FRW * Besze.Kurs / Besze.Faktor. Besze.S_Preis = nRundbetr. nRundbetr = nRundbetr * ((100 - Besze.Rabatt) / 100) * ((100 - Besze.ZusRab) / 100) * (1 + (Besze.Spesen / 100)). Besze.Preis = nRundbetr. END. END. FIND ArtLief USE-INDEX ArtLief-k2 WHERE ArtLief.Firma = Besze.Firma AND ArtLief.Knr = Besko.Knr AND ArtLief.Artnr = Besze.Artnr AND ArtLief.Inhalt = Besze.Inhalt AND ArtLief.Jahr = Besze.Jahr NO-ERROR. IF Besze.Preis > 0 THEN DO: IF nDEP = 0 THEN nDEP = Besze.Preis * F_Kurs / F_Faktor. nEpCHF = Besze.Preis * F_Kurs / F_Faktor. END. ELSE DO: IF nDEP = 0 THEN nDEP = ArtLief.S_Preis. nEpCHF = ArtLief.S_Preis. END. FIND Liefst USE-INDEX Liefst-k1 WHERE Liefst.Firma = Besze.Firma AND Liefst.Knr = Besko.Knr NO-ERROR. F_Artikel = STRING(Besze.Artnr ,"999999/") + STRING(Besze.Inhalt ,"9999/") + STRING(Besze.Jahr ,"9999 ") + Artst.Bez. F_Bestand = STRING(VBestand ,"->>>,>>>,>>>,>>9"). F_DEP = STRING(nDEP ,"zzz,zzz,zz9.9999"). F_Bestand_Am = ''. F_DEP_Am = ''. DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}. FOR EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = Besze.Firma AND Artbw.Artnr = Besze.Artnr AND Artbw.Inhalt = Besze.Inhalt AND Artbw.Jahr = Besze.Jahr AND Artbw.Datum > Besko.Buch_Datum AND Artbw.Trnr <> Besze.Trnr AND Artbw.Lager = Besze.Lager NO-LOCK: IF Artbw.Tr_Art > 0 AND Artbw.Tr_Art < 11 THEN VBestand = VBestand + Artbw.Menge. IF Artbw.Tr_Art > 10 AND Artbw.Tr_Art < 21 THEN VBestand = VBestand - Artbw.Menge. END. F_Bestand_Am = STRING(VBestand ,"->>>,>>>,>>>,>>9"). WBestand = 0. WEingang = 0. TBestand = 0. TBestand = VBestand + Besze.MGeli. IF VBestand < 0 THEN VBestand = 0. WBestand = VBestand * nDEP. WEingang = Besze.MGeli * nEpCHF. DO WHILE TRUE: IF TBestand < 0 THEN DO: nDEP = nEpCHF. LEAVE. END. IF VBestand = 0 THEN DO: nDEP = nEpCHF. LEAVE. END. nRundbetr = (WBestand + WEingang) / TBestand. nDEP = nRundbetr. LEAVE. END. F_DEP_Am = STRING(nDEP,"zzz,zzz,zz9.9999"). FOR EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = Besze.Firma AND Artbw.Artnr = Besze.Artnr AND Artbw.Inhalt = Besze.Inhalt AND Artbw.Jahr = Besze.Jahr AND Artbw.Datum > Besko.Buch_Datum AND Artbw.Tr_Art > 0 AND Artbw.Tr_Art < 11 AND Artbw.Trnr <> Besze.Trnr AND Artbw.Menge <> 0 AND Artbw.Lager = Besze.Lager: IF Artbw.EP = nDEP THEN NEXT. IF Artbw.Faknr = 0 THEN DO: Artbw.EP = nDEP. NEXT. END. VJJ = YEAR (Artbw.Fak_Dat). VMM = MONTH(Artbw.Fak_Dat). nRundbetr = (Artbw.Menge * nDEP) - (Artbw.Menge * Artbw.Ep). nKorrektur = nKorrektur + nRundbetr. FIND DeArUms USE-INDEX DeArUms-k1 WHERE DeArUms.Firma = Firma AND DeArUms.Jahr = VJJ AND DeArUms.Knr = Besko.Knr AND DeArUms.Artnr = Besze.Artnr AND DeArUms.Inhalt = Besze.Inhalt AND DeArUms.Jahrg = Besze.Jahr NO-ERROR. IF AVAILABLE DeArUms THEN DO: DeArUms.Ep_Kum = DeArUms.Ep_Kum + nRundbetr. DeArUms.Ep_Mon[VMM] = DeArUms.Ep_Mon[VMM] + nRundbetr. END. FIND ArtUms USE-INDEX ArtUms-k1 WHERE ArtUms.Firma = Firma AND ArtUms.Jahr = VJJ AND ArtUms.Artnr = Besze.Artnr AND ArtUms.Inhalt = Besze.Inhalt AND ArtUms.Jahrg = Besze.Jahr NO-ERROR. IF AVAILABLE ArtUms THEN DO: ArtUms.Ep_Kum = ArtUms.Ep_Kum + nRundbetr. ArtUms.Ep_Mon[VMM] = ArtUms.Ep_Mon[VMM] + nRundbetr. END. FIND DebUms USE-INDEX DebUms-k1 WHERE DebUms.Firma = Firma AND DebUms.Jahr = VJJ AND DebUms.Knr = Besko.Knr AND DebUms.Ums_Grp = 999 NO-ERROR. IF AVAILABLE DebUms THEN DO: DebUms.Ep_Kum = DebUms.Ep_Kum + nRundbetr. DebUms.Ep_Mon[VMM] = DebUms.Ep_Mon[VMM] + nRundbetr. END. Artbw.Ep = nDEP. END. F_Korrektur = STRING(nKorrektur,"->>>,>>>,>>>,>>9"). DISPLAY {&List-5} WITH FRAME {&FRAME-NAME}. FOR EACH Aufze USE-INDEX Aufze-k2 WHERE Aufze.Firma = Besze.Firma AND Aufze.Artnr = Besze.Artnr AND Aufze.Inhalt = Besze.Inhalt AND Aufze.Jahr = Besze.Jahr , FIRST Aufko USE-INDEX Aufko-k1 WHERE Aufko.Firma = Aufze.Firma AND Aufko.Aufnr = Aufze.Aufnr AND Aufko.Lief_Datum > Besko.Buch_Datum NO-LOCK : IF Aufze.EP = nDEP THEN NEXT. Aufze.EP = nDEP. END. IF Besze.Trnr = 0 THEN DO: FIND FIRST Artbw USE-INDEX Artbw-k4 WHERE Artbw.Firma = Besze.Firma AND Artbw.Aufnr = Besze.Besnr AND Artbw.Artnr = Besze.Artnr AND Artbw.Inhalt = Besze.Inhalt AND Artbw.Jahr = Besze.Jahr AND Artbw.Knr = Besko.Knr AND Artbw.Tr_Art = 11 AND Artbw.Menge = Besze.MGeli AND Artbw.Lager = Besze.Lager NO-ERROR. IF AVAILABLE Artbw THEN Besze.Trnr = Artbw.Trnr. END. IF Besze.Trnr > 0 THEN DO: F_Bestell_Nr = TRIM(REPLACE(F_Bestell_Nr, ' ', '')). cFaknr = ''. DO ii = 1 TO LENGTH(F_Bestell_Nr): IF SUBSTRING(F_Bestell_Nr, ii,01) < '0' THEN NEXT. IF SUBSTRING(F_Bestell_Nr, ii,01) > '9' THEN NEXT. cFaknr = cFaknr + SUBSTRING(F_Bestell_Nr,ii,01). END. IF LENGTH(cFaknr) > 6 THEN DO: ii = LENGTH(cFaknr) - 6 + 1. cFaknr = SUBSTRING(cFaknr,ii). END. iFaknr = INTEGER(cFaknr) NO-ERROR. FIND Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = Besze.Firma AND Artbw.Trnr = Besze.Trnr. ASSIGN Artbw.Bez1 = Besze.Bez1 Artbw.Bez2 = Besze.Bez2 Artbw.Knr = Besko.Knr Artbw.Menge = Besze.MGel Artbw.Alk_Gehalt = Artst.Alk_Gehalt Artbw.Aktion = Besze.Aktion Artbw.Lager = Besze.Lager Artbw.Preis = Besze.Preis Artbw.Bru_Betr = Besze.Preis * Besze.MGeli Artbw.Net_Betr = Besze.Preis * Besze.MGeli Artbw.FRW = Besze.FRW Artbw.Faktor = F_Faktor Artbw.Kurs = F_Kurs Artbw.Ep = nDEP Artbw.Lag_Buch = TRUE Artbw.Faknr = iFaknr Artbw.Fak_Dat = (IF Besko.Buch_Datum <> ? THEN Besko.Buch_Datum ELSE Artbw.Datum). END. Besze.L_EP = Artst.LEP. Besze.Verbucht = TRUE. IF NOT Besze.Aktion THEN DO: IF AVAILABLE ArtLief THEN DO: ASSIGN ArtLief.S_Preis_FRW = Besze.S_Preis_FRW ArtLief.S_Preis = Besze.S_Preis ArtLief.L_EP_FRW = Besze.Preis ArtLief.L_EP = Besze.Preis / Besze.Faktor * Besze.Kurs ArtLief.L_Rabatt = 100 - ((100 * (100 - Besze.Rabatt) / 100) * ((100 - Besze.ZusRab) / 100)) ArtLief.Rabatt = Besze.Rabatt ArtLief.ZusRab = Besze.ZusRab. IF Besze.S_Artnr <> '' THEN ArtLief.S_Artnr = Besze.S_Artnr. END. ASSIGN Artst.LEP = nEpCHF. END. ASSIGN Artst.DEP = nDEP. END. Btn_OK :SENSITIVE = TRUE. Btn_Cancel:SENSITIVE = TRUE. lOK = TRUE. LEAVE. END. IF lOK THEN DO: REPEAT TRANSACTION ON ERROR UNDO, LEAVE: rBesko = RECID(Besko). FIND Besko WHERE RECID(Besko) = rBesko. Besko.Verbucht = TRUE. Besko.Bestell_Nr = F_Bestell_Nr. Besko.Kurs = F_Kurs. RELEASE Besko. iohtBesko::lOK = lOK. LEAVE. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME