1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace CY.Config
{
    /// <summary>
    /// 税率计算器
    /// </summary>
    public class TaxCalculator
    {
        /// <summary>
        /// 根据工资金额获取税后工资
        /// </summary>
        /// <param name="StaffMoney"></param>
        /// <returns></returns>
        public static decimal GetAfterTaxByMoney(decimal StaffMoney)
        {
            decimal AfterTax = 0;
 
            if ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) > WebInfo.Instance.TaxLV7Over)
            {
                AfterTax = StaffMoney - ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) * decimal.Parse(WebInfo.Instance.TaxLV7Rate.ToString()) / 100) + WebInfo.Instance.TaxLV7Deduction;
            }
            else if ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) > WebInfo.Instance.TaxLV6Over)
            {
                AfterTax = StaffMoney - ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) * decimal.Parse(WebInfo.Instance.TaxLV6Rate.ToString()) / 100) + WebInfo.Instance.TaxLV6Deduction;
            }
            else if ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) > WebInfo.Instance.TaxLV5Over)
            {
                AfterTax = StaffMoney - ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) * decimal.Parse(WebInfo.Instance.TaxLV5Rate.ToString()) / 100) + WebInfo.Instance.TaxLV5Deduction;
            }
            else if ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) > WebInfo.Instance.TaxLV4Over)
            {
                AfterTax = StaffMoney - ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) * decimal.Parse(WebInfo.Instance.TaxLV4Rate.ToString()) / 100) + WebInfo.Instance.TaxLV4Deduction;
            }
            else if ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) > WebInfo.Instance.TaxLV3Over)
            {
                AfterTax = StaffMoney - ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) * decimal.Parse(WebInfo.Instance.TaxLV3Rate.ToString()) / 100) + WebInfo.Instance.TaxLV3Deduction;
            }
            else if ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) > WebInfo.Instance.TaxLV2Over)
            {
                AfterTax = StaffMoney - ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) * decimal.Parse(WebInfo.Instance.TaxLV2Rate.ToString()) / 100) + WebInfo.Instance.TaxLV2Deduction;
            }
            else if ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) > WebInfo.Instance.TaxLV1Over)
            {
                AfterTax = StaffMoney - ((StaffMoney - decimal.Parse(WebInfo.Instance.TaxBasic.ToString())) * decimal.Parse(WebInfo.Instance.TaxLV1Rate.ToString()) / 100) + WebInfo.Instance.TaxLV1Deduction;
            }
            else
            {
                AfterTax = StaffMoney;
            }
 
            return AfterTax;
        }
    }
}