/* --------------------------------------------------------------------- */ /* Skontoberechung */ /* --------------------------------------------------------------------- */ { v8/globvar.i " " " " "SHARED" } DEF INPUT PARAMETER VKnr LIKE Debop.Knr. DEF INPUT PARAMETER VFaknr LIKE Debop.Faknr. DEF INPUT PARAMETER VDatum LIKE Debop.ZahDat. DEF OUTPUT PARAMETER VSko_Max LIKE Debop.Skonto. DEF OUTPUT PARAMETER VSko_Fak LIKE Debop.Skonto. DEF VAR VToler AS DEC. FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK NO-ERROR. VSko_Max = 0. VSko_Fak = 0. FIND Debop USE-INDEX Debop-k1 WHERE Debop.Firma = GVFirma AND Debop.Knr = VKnr AND Debop.Faknr = VFaknr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debop THEN RETURN. FIND Kondi WHERE Kondi.Sprcd = GVSprcd AND Kondi.Kond = Debop.Kond NO-LOCK NO-ERROR. IF NOT AVAILABLE Kondi THEN RETURN. VToler = Debop.SkBer * SteuNr.SK_Tol_% / 100. IF Debop.FakBetr < 0 THEN VToler = - VToler. IF VToler = 0 THEN DO: VToler = SteuNr.SK_Tol_Max. END. ELSE DO: IF VToler > SteuNr.SK_Tol_Max THEN VToler = SteuNr.SK_Tol_Max. END. IF Debop.FakBetr < 0 THEN VToler = - VToler. IF (Debop.Fakdat + Kondi.Tage[02]) >= VDatum THEN DO: Rundbetr = Debop.SkBer * Kondi.Skonto[02] / 100. Rundcode = 1. RUN "v8/runden.p". VSko_Max = Rundbetr. END. IF (Debop.Fakdat + Kondi.Tage[01]) >= VDatum THEN DO: Rundbetr = Debop.SkBer * Kondi.Skonto[01] / 100. Rundcode = 1. RUN "v8/runden.p". VSko_Max = Rundbetr. END. VSko_Max = VSko_Max + VToler. VSko_Fak = VSko_Max - Debop.Skonto. RETURN.