public void RecalcAndRound() { PAY_TAXED = KlonsData.RoundA(PAY_TAXED, 2); PAY_NOSAI = KlonsData.RoundA(PAY_NOSAI, 2); PAY_NOTTAXED = KlonsData.RoundA(PAY_NOTTAXED, 2); NOTPAID_TAXED = KlonsData.RoundA(NOTPAID_TAXED, 2); NOTPAID_NOSAI = KlonsData.RoundA(NOTPAID_NOSAI, 2); NOTPAID_NOTTAXED = KlonsData.RoundA(NOTPAID_NOTTAXED, 2); PFNT = KlonsData.RoundA(PFNT, 2); LIT = KlonsData.RoundA(LIT, 2); HIT = KlonsData.RoundA(HIT, 2); PFT = KlonsData.RoundA(PFT, 2); LINT = KlonsData.RoundA(LINT, 2); HINT = KlonsData.RoundA(HINT, 2); var pfx = new PayFx(); SetTo(pfx); pfx.CalcAllAndRound(); SetFrom(pfx); if (pfx.IinEx > 0.0M) { UNTAXED_MINIMUM = KlonsData.RoundA(UNTAXED_MINIMUM, 2); IINEX_DEPENDANTS = KlonsData.RoundA(IINEX_DEPENDANTS, 2); IINEX2 = KlonsData.RoundA(IINEX2, 2); IINEX_EXP = KlonsData.RoundA(IINEX_EXP, 2); var dd = new decimal[] { UNTAXED_MINIMUM, IINEX_DEPENDANTS, IINEX2, IINEX_EXP }; PayFxA.MakeExactSum(pfx.UsedIinEx, dd); UNTAXED_MINIMUM = dd[0]; IINEX_DEPENDANTS = dd[1]; IINEX2 = dd[2]; IINEX_EXP = dd[3]; } CASH_NOTPAID = 0.0M; if (NOTPAID_TAXED == 0.0M && NOTPAID_NOSAI == 0.0M && NOTPAID_NOTTAXED == 0.0M) { return; } pfx.Pay = Math.Min(PAY_TAXED, NOTPAID_TAXED); pfx.PayNs = Math.Min(PAY_NOSAI, NOTPAID_NOSAI); pfx.PayNt = Math.Min(PAY_NOTTAXED, NOTPAID_NOTTAXED); pfx.CalcAllAndRound(); CASH_NOTPAID = pfx.Cash; }
public PayFx CalcAll(SalarySheetRowInfo sr, VacationCalcRow v, int calcver) { var cri = new CalcRInfo(false, calcver); cri.CalcR(sr, v.DateStart, v.DateEnd); var pfx = new PayFx(cri); if (cri.UseProgresiveIINRate) { pfx.IinEx = 0.0M; } else { pfx.IinEx = cri.ExMax2.SumIINExempts(); } pfx.Pay = v.Pay; pfx.CalcAllAndRound(); v.DNS = pfx.DNS; v.IINEX = pfx.UsedIinEx; v.IIN = pfx.IIN; v.Cash = pfx.Cash; return(pfx); }