{ super/funktionen.i } DEF VAR cParam AS CHAR NO-UNDO. DEF VAR iRetVal AS INT NO-UNDO. DEF VAR iPreisArt AS INT NO-UNDO. DEF VAR nNormPreis AS DEC NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR htAufze AS HANDLE NO-UNDO. DEF TEMP-TABLE tAufze LIKE Aufze FIELD Knr AS INT FIELD Datum AS DATE . htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. DEF TEMP-TABLE tDebst FIELD Knr AS INT FIELD Anzeig_Br AS CHAR FIELD Rab_Grp AS INT FIELD cRab_Grp AS CHAR INDEX tDebst-k1 IS PRIMARY Knr . DEF TEMP-TABLE tArtst FIELD Knr AS INT FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD cBez AS CHAR FIELD Art_Grp AS INT FIELD cArt_Grp AS CHAR FIELD Rab_Grp AS INT FIELD cRab_Grp AS CHAR FIELD iMenge AS INT FIELD NormPreis AS DEC FIELD SpezPreis AS DEC INDEX tArtst-k1 IS PRIMARY Knr Artnr Inhalt Jahr . cParam = SUBSTITUTE('&1&4&2&4&3', 'wari', '', '1000', CHR(01)). RUN ANMELDUNG(cParam). FOR EACH Debst NO-LOCK WHERE Debst.Firma = '1000' AND Debst.Aktiv = TRUE: /* EACH SpezPrei NO-LOCK */ /* WHERE SpezPrei.Firma = Debst.Firma */ /* AND SpezPrei.Knr = Debst.Knr, */ /* FIRST Artst NO-LOCK */ /* WHERE Artst.Firma = SpezPrei.Firma */ /* AND Artst.Artnr = SpezPrei.Artnr */ /* AND Artst.Inhalt = SpezPrei.Inhalt */ /* */ /* BREAK BY Debst.Knr */ /* BY Artst.Artnr */ /* BY Artst.Inhalt */ /* BY Artst.Jahr */ FOR EACH Artst NO-LOCK WHERE Artst.Firma = Debst.Firma AND Artst.Aktiv = TRUE: FIND LAST ArtPreis NO-LOCK WHERE ArtPreis.Firma = Artst.Firma AND ArtPreis.Artnr = Artst.Artnr AND ArtPreis.Inhalt = Artst.Inhalt AND ArtPreis.Jahr = Artst.Jahr AND ArtPreis.Preis_Grp = Debst.Preis_Grp AND ArtPreis.Aktion = FALSE AND ArtPreis.Ab_Datum <= TODAY NO-ERROR. IF NOT AVAILABLE ArtPreis THEN DO: FIND LAST ArtPreis NO-LOCK WHERE ArtPreis.Firma = Artst.Firma AND ArtPreis.Artnr = Artst.Artnr AND ArtPreis.Inhalt = Artst.Inhalt AND ArtPreis.Jahr = Artst.Jahr AND ArtPreis.Preis_Grp = 01 AND ArtPreis.Aktion = FALSE AND ArtPreis.Ab_Datum <= TODAY NO-ERROR. END. IF NOT AVAILABLE ArtPreis THEN DO: FIND LAST ArtPreis NO-LOCK WHERE ArtPreis.Firma = Artst.Firma AND ArtPreis.Artnr = Artst.Artnr AND ArtPreis.Inhalt = Artst.Inhalt AND ArtPreis.Jahr = Artst.Jahr AND ArtPreis.Preis_Grp = 03 AND ArtPreis.Aktion = FALSE AND ArtPreis.Ab_Datum <= TODAY NO-ERROR. END. IF NOT AVAILABLE ArtPreis THEN NEXT. IF ArtPreis.VK_Netto = 0 THEN NEXT. EMPTY TEMP-TABLE tAufze. CREATE tAufze. ASSIGN tAufze.Firma = Debst.Firma tAufze.Knr = Debst.Knr tAufze.Artnr = Artst.Artnr tAufze.Inhalt = Artst.Inhalt tAufze.Jahr = Artst.Jahr. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. IF iRetVal > 0 THEN DO: MESSAGE 'Fehler fillAufze' VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. NEXT. END. IF tAufze.Mwst_Inkl THEN nNormPreis = ArtPreis.VK_Brutto. ELSE nNormPreis = ArtPreis.VK_Netto. ASSIGN tAufze.MGel = 1 tAufze.KGeb_Be = 1 tAufze.VGeb_Be = 0 tAufze.GGeb_Be = 0 tAufze.KGeb_Me = 1 tAufze.VGeb_Me = 0 tAufze.GGeb_Me = 0 tAufze.KGeb_Ru = 0 tAufze.VGeb_Ru = 0 tAufze.GGeb_Ru = 0 . iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze) NO-ERROR. IF iPreisArt < 0 THEN NEXT. IF tAufze.Net_Betr = nNormPreis THEN NEXT. FIND FIRST tDebst WHERE tDebst.Knr = Debst.Knr NO-ERROR. IF NOT AVAILABLE tDebst THEN DO: FIND FIRST Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = Debst.Firma AND Adresse.Knr = Debst.Knr. CREATE tDebst. ASSIGN tDebst.Knr = Debst.Knr tDebst.Rab_Grp = Debst.Rab_Grp tDebst.Anzeig_Br = Adresse.Anzeig_Br. RUN FIND_RABATTGRP ( Debst.Rab_Grp, OUTPUT cString ). tDebst.cRab_Grp = (IF cString BEGINS '?' THEN cString ELSE ENTRY(2, cString, CHR(01))). END. FIND FIRST ArtBez NO-LOCK OF Artst. CREATE tArtst. ASSIGN tArtst.Knr = Debst.Knr tArtst.Artnr = Artst.Artnr tArtst.Inhalt = Artst.Inhalt tArtst.Jahr = Artst.Jahr tArtst.cBez = TRIM(Artbez.Bez1 + ' ' + ArtBez.Bez2) tArtst.Rab_Grp = Artst.Rab_Grp tArtst.Art_Grp = Artst.Art_Grp tArtst.NormPreis = nNormPreis tArtst.SpezPreis = tAufze.Net_Betr. RUN FIND_RABATTGRUPPE ( Artst.Rab_Grp, OUTPUT cString ). tArtst.cRab_Grp = (IF cString BEGINS '?' THEN cString ELSE ENTRY(2, cString, CHR(01))). RUN FIND_ARTIKGRP ( Artst.Wg_Grp, Artst.Prod_Grp, Artst.Art_Grp, OUTPUT cString ). tArtst.cRab_Grp = (IF cString BEGINS '?' THEN cString ELSE ENTRY(2, cString, CHR(01))). END. END. OUTPUT TO 'P:\TEMP\KundenRabatte.csv' NO-MAP NO-CONVERT. FOR EACH tDebst, EACH tArtst WHERE tArtst.Knr = tDebst.Knr: EXPORT DELIMITER ';' tDebst.Knr tDebst.Anzeig_Br tDebst.Rab_Grp tDebst.cRab_Grp tArtst.Artnr tArtst.Inhalt tArtst.Jahr tArtst.cBez tArtst.Art_Grp tArtst.cArt_Grp tArtst.Rab_Grp tArtst.cRab_Grp tArtst.NormPreis tArtst.SpezPreis . END. OUTPUT CLOSE.