/*( INPUT TABLE FOR tMwstParam, OUTPUT TABLE FOR tMwstCalc, OUTPUT opcMessage AS CHARACTER ) :*/ /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ { incl/tmwstcalc.i} DEFINE INPUT PARAMETER TABLE FOR tMwstParam. DEFINE OUTPUT PARAMETER TABLE FOR tMwstZahl. DEFINE OUTPUT PARAMETER opcMessage AS CHARACTER. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. DEFINE VARIABLE nProzZahlung AS DECIMAL NO-UNDO. DEFINE VARIABLE nProzSkonto AS DECIMAL NO-UNDO. DEFINE VARIABLE nRundbetr AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE iRundcode AS INTEGER NO-UNDO INIT 1. DEFINE BUFFER bDebop FOR Debop. EMPTY TEMP-TABLE tMwstZahl. FIND FIRST tMwstParam. iRundcode = (IF tMwstParam.Frw = 'CHF' THEN 1 ELSE 0). opcMessage = ''. FIND bDebop NO-LOCK WHERE bDebop.Firma = tMwstParam.Firma AND bDebop.Knr = tMwstParam.Knr AND bDebop.Faknr = tMwstParam.Faknr. IF tMwstParam.Zahlung <> 0 THEN nProzZahlung = tMwstParam.Zahlung * 100 / bDebop.Fakbetr_FRW. ELSE nProzZahlung = 0.00. IF tMwstParam.Skonto <> 0 THEN nProzSkonto = tMwstParam.Skonto * 100 / bDebop.Fakbetr_FRW. ELSE nProzSkonto = 0.00. DO i1 = 1 TO 11: IF bDebop.Fakwpfl[i1] = 0 THEN NEXT. CREATE tMwstZahl. ASSIGN tMwstZahl.Mwst_Cd = i1 tMwstZahl.Ansatz = bDebop.Fakwpro[i1] tMwstZahl.lInklusive = bDebop.Fakincl[i1] tMwstZahl.ZahlBetrag = (bDebop.Fakwpfl[i1] + bDebop.Fakwust[i1]) * nProzZahlung / 100 tMwstZahl.SkonBetrag = (bDebop.Fakwpfl[i1] + bDebop.Fakwust[i1]) * nProzSkonto / 100 . IF tMwstZahl.lInklusive THEN DO: ASSIGN tMwstZahl.Brutto = tMwstZahl.ZahlBetrag tMwstZahl.Mwst = 0.00 tMwstZahl.Netto = tMwstZahl.Brutto. END. ELSE DO: ASSIGN tMwstZahl.Brutto = tMwstZahl.ZahlBetrag tMwstZahl.Mwst = tMwstZahl.ZahlBetrag * tMwstZahl.Ansatz / (100 + tMwstZahl.Ansatz) tMwstZahl.Netto = tMwstZahl.Brutto - tMwstZahl.Mwst. END. END.