Пример #1
0
        private void btnCalculate_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtTotalSalary.Text))
            {
                ShowMessage("请输入基本工资");
                return;
            }
            if (string.IsNullOrEmpty(txtQuotedSalary.Text))
            {
                ShowMessage("请输入社保基数");
                return;
            }
            double totalSalary;
            double.TryParse(txtTotalSalary.Text, out totalSalary);
            double quotedSalary;
            double.TryParse(txtQuotedSalary.Text, out quotedSalary);
            List<PayPercent> insurancesPayPercent = this.MyInsurancesPayPercent;
            if (insurancesPayPercent == null || insurancesPayPercent.Count < 1)
            {
                insurancesPayPercent = InsurancePolicy.YearsInsurancePolicies[0].ResidenceTypesPayPercent[0].InsurancesPayPercent;
            }
            SalaryInfo salaryInfo = new SalaryInfo(totalSalary, quotedSalary, insurancesPayPercent, this.RevenuePolicy);

            salaryInfo.Calculate();

            string[] salaryString = GetSalaryString(salaryInfo);
            txtSalaryMessage.Text = salaryString[5];
        }
Пример #2
0
        private string[] GetSalaryString(SalaryInfo salaryInfo)
        {
            StringBuilder sbCompany = new StringBuilder();
            StringBuilder sbPerson = new StringBuilder();
            StringBuilder sbBeforeSalaryChanged = new StringBuilder().AppendLine("税改前:");
            StringBuilder sbAfterSalaryChanged = new StringBuilder().AppendLine("税改后:");
            StringBuilder salaryMsg = new StringBuilder();
            int padCount = 17;

            string salaryBaseInfo = string.Format("总工资:{0}{2}社保基数:{1}{2}保险+公积金", salaryInfo.TotalSalary, salaryInfo.QuotedSalary, Environment.NewLine);
            salaryMsg.AppendLine(salaryBaseInfo).Append("公司部分".PadRight(padCount, ' ')).Append("个人部分").AppendLine();
            sbCompany.AppendLine("公司部分:");
            sbPerson.AppendLine("个人部分:");
            foreach (Insurance insurance in salaryInfo.Insurances)
            {
                string project = insurance.PayPercent.InsuranceType.GetDisplay().PadLeft(4, ' ');
                sbCompany.AppendFormat("{0}:{1}¥", project, insurance.CompanyPayMoney).AppendLine();
                sbPerson.AppendFormat("{0}:{1}¥", project, insurance.PersonPayMoney).AppendLine();
                salaryMsg.AppendFormat("{0}:¥{1}¥{2}", project, insurance.CompanyPayMoney.ToString().PadRight(10, ' '), insurance.PersonPayMoney).AppendLine();
            }
            salaryMsg.Append("税前".PadRight(padCount, ' ')).Append("税后").AppendLine();
            int shouldSalary1 = (int)(salaryInfo.RevenueSalary - salaryInfo.RevenueLeveles[0].RevenueBase);
            int shouldSalary2 = (int)(salaryInfo.RevenueSalary - salaryInfo.RevenueLeveles[1].RevenueBase);

            salaryMsg.AppendFormat("应税:{0}¥{1}¥", shouldSalary1.ToString().PadLeft(7, ' '), shouldSalary2.ToString().PadLeft(7, ' ')).AppendLine();
            sbBeforeSalaryChanged.AppendFormat("应税¥:{0}", shouldSalary1).AppendLine();
            sbAfterSalaryChanged.AppendFormat("应税¥:{0}", shouldSalary2).AppendLine();

            double p1 = salaryInfo.RevenueLeveles[0].Leveles[0].Percent;
            double p2 = salaryInfo.RevenueLeveles[1].Leveles[0].Percent;
            salaryMsg.AppendFormat("扣税比例:{0}%{1}%", p1.ToString().PadLeft(4, ' '), p2.ToString().PadLeft(7, ' ')).AppendLine();
            sbBeforeSalaryChanged.AppendFormat("扣税比例:{0}", p1).AppendLine();
            sbAfterSalaryChanged.AppendFormat("扣税比例:{0}", p2).AppendLine();

            int s1 = (int)salaryInfo.Revenue[0];
            int s2 = (int)salaryInfo.Revenue[1];
            salaryMsg.AppendFormat("扣税:{0}¥{1}¥", s1.ToString().PadLeft(7, ' '), s2.ToString().PadLeft(7, ' ')).AppendLine();
            sbBeforeSalaryChanged.AppendFormat("扣税¥:{0}", s1).AppendLine();
            sbAfterSalaryChanged.AppendFormat("扣税¥:{0}", s2).AppendLine();

            int f1 = (int)salaryInfo.FinalSalary[0];
            int f2 = (int)salaryInfo.FinalSalary[1];
            salaryMsg.AppendFormat("实发:{0}¥{1}¥", f1.ToString().PadLeft(7, ' '), f2.ToString().PadLeft(7, ' '));
            sbBeforeSalaryChanged.AppendFormat("实发¥:{0}", f1).AppendLine();
            sbAfterSalaryChanged.AppendFormat("实发¥:{0}", f2).AppendLine();

            string[] salaryString = new string[6];
            salaryString[0] = salaryBaseInfo;
            salaryString[1] = sbCompany.ToString();
            salaryString[2] = sbPerson.ToString();
            salaryString[3] = sbBeforeSalaryChanged.ToString();
            salaryString[4] = sbAfterSalaryChanged.ToString();
            salaryString[5] = salaryMsg.ToString();

            return salaryString;
        }