public OperationResult Insert(TaxBaseEveryMonthVM model)
        {
            try
            {
                TaxBaseEveryMonth taxBaseEveryMonth = _TaxBaseEveryMonthRepository.Entities.FirstOrDefault(c => c.CertificateID.ToLower() == model.CertificateID.Trim().ToLower());
                if (taxBaseEveryMonth != null)
                {
                    return(new OperationResult(OperationResultType.Warning, "数据库中已经存在相同的基本工资信息,请修改后重新提交!"));
                }
                if (model.Name == null || model.Name.Trim() == "")
                {
                    return(new OperationResult(OperationResultType.Warning, "姓名不能为空,请修改后重新提交!"));
                }
                var entity = new TaxBaseEveryMonth
                {
                    Period              = model.Period,
                    Name                = model.Name,
                    CertificateType     = model.CertificateType,
                    CertificateID       = model.CertificateID,
                    InitialEaring       = model.InitialEaring,
                    TaxFreeIncome       = model.TaxFreeIncome,
                    EndowmentInsurance  = model.EndowmentInsurance,
                    UnemployedInsurance = model.UnemployedInsurance,
                    MedicalInsurance    = model.MedicalInsurance,
                    OccupationalAnnuity = model.OccupationalAnnuity,
                    HousingFund         = model.HousingFund,
                    //TaxFree = model.TaxFree,
                    AmountDeducted    = model.AmountDeducted,
                    InitialTaxPayable = model.InitialTaxPayable,
                    //InitialTax = model.InitialTax,
                    SpecialDeduction = model.SpecialDeduction,
                    CutTax           = model.CutTax,
                    //TotalIncome = model.TotalIncome,
                    TotalSalaryIncomeBeforeTax = model.TotalSalaryIncomeBeforeTax,
                    TotalLaborIncomeBeforeTax  = model.TotalLaborIncomeBeforeTax,
                    TotalTax   = model.TotalTax,
                    TotalTemp  = model.TotalTemp,
                    LastMonths = model.LastMonths,

                    //PersonType = model.PersonType,
                    //Title = model.Title,
                    UpdateDate = DateTime.Now
                };
                _TaxBaseEveryMonthRepository.Insert(entity);

                return(new OperationResult(OperationResultType.Success, "新增数据成功!"));
            }
            catch
            {
                return(new OperationResult(OperationResultType.Error, "新增数据失败,数据库插入数据时发生了错误!"));
            }
        }
 public OperationResult Delete(TaxBaseEveryMonth model)
 {
     try
     {
         model.UpdateDate = DateTime.Now;
         _TaxBaseEveryMonthRepository.Delete(model);
         return(new OperationResult(OperationResultType.Success, "更新数据成功!"));
     }
     catch
     {
         return(new OperationResult(OperationResultType.Error, "更新数据失败!"));
     }
 }
 public OperationResult Update(TaxBaseEveryMonthVM model)
 {
     try
     {
         TaxBaseEveryMonth taxBaseEveryMonth = _TaxBaseEveryMonthRepository.Entities.FirstOrDefault(c => c.CertificateID.ToLower() == model.CertificateID.Trim().ToLower());
         if (taxBaseEveryMonth == null)
         {
             throw new Exception();
         }
         taxBaseEveryMonth.Period              = model.Period;
         taxBaseEveryMonth.Name                = model.Name;
         taxBaseEveryMonth.CertificateType     = model.CertificateType;
         taxBaseEveryMonth.CertificateID       = model.CertificateID;
         taxBaseEveryMonth.InitialEaring       = model.InitialEaring;
         taxBaseEveryMonth.TaxFreeIncome       = model.TaxFreeIncome;
         taxBaseEveryMonth.EndowmentInsurance  = model.EndowmentInsurance;
         taxBaseEveryMonth.MedicalInsurance    = model.MedicalInsurance;
         taxBaseEveryMonth.UnemployedInsurance = model.UnemployedInsurance;
         taxBaseEveryMonth.HousingFund         = model.HousingFund;
         taxBaseEveryMonth.OccupationalAnnuity = model.OccupationalAnnuity;
         //taxBaseEveryMonth.InitialTax = model.InitialTax;
         taxBaseEveryMonth.InitialTaxPayable = model.InitialTaxPayable;
         taxBaseEveryMonth.AmountDeducted    = model.AmountDeducted;
         //taxBaseByMonth.PersonType = model.PersonType;
         // taxBaseEveryMonth.TaxFree = model.TaxFree;
         taxBaseEveryMonth.SpecialDeduction = model.SpecialDeduction;
         taxBaseEveryMonth.CutTax           = model.CutTax;
         // taxBaseEveryMonth.TotalIncome = model.TotalIncome;
         taxBaseEveryMonth.TotalTax = model.TotalTax;
         taxBaseEveryMonth.TotalSalaryIncomeBeforeTax = model.TotalSalaryIncomeBeforeTax;
         taxBaseEveryMonth.TotalLaborIncomeBeforeTax  = model.TotalLaborIncomeBeforeTax;
         taxBaseEveryMonth.TotalTemp  = model.TotalTemp;
         taxBaseEveryMonth.LastMonths = model.LastMonths;
         //taxBaseByMonth.Title = model.Title;
         taxBaseEveryMonth.UpdateDate = DateTime.Now;
         _TaxBaseEveryMonthRepository.Update(taxBaseEveryMonth);
         return(new OperationResult(OperationResultType.Success, "更新数据成功!"));
     }
     catch
     {
         return(new OperationResult(OperationResultType.Error, "更新数据失败!"));
     }
 }
        public OperationResult Import(String fileName, Service.Excel.ImportData importData)
        {
            try
            {
                var columns = importData == null ? null : importData.Columns;
                var maps    = ImportUtil.GetColumns(columns, new TaxBaseEveryMonth());
                var items   = ExcelService.GetObjects(fileName, columns);
                if (importData != null)
                {
                    int num = 1;
                    foreach (var item in items)
                    {
                        TaxBaseEveryMonth     record = new TaxBaseEveryMonth();
                        List <ImportFeedBack> errors = ImportUtil.ValidateImportRecord(item, num++, maps, ref record);
                        if (errors.Count > 0)
                        {
                            return(new OperationResult(OperationResultType.Error, "导入数据失败", ImportUtil.ParseToHtml(errors)));
                        }

                        //插入或更新数据
                        _TaxBaseEveryMonthRepository.InsertOrUpdate(record);
                    }
                }

                return(new OperationResult(OperationResultType.Success, "导入数据成功!"));
            }
            catch (Exception ex)
            {
                _log.Error(ex);
                ImportFeedBack feedBack = new ImportFeedBack();
                feedBack.ExceptionType = "未知错误";
                feedBack.ExceptionContent.Add(ex.Message);
                List <ImportFeedBack> erros = new List <ImportFeedBack>();
                return(new OperationResult(OperationResultType.Error, "导入数据失败!", ImportUtil.ParseToHtml(new List <ImportFeedBack>()
                {
                    feedBack
                })));
            }
        }
 public void InsertOrUpdate(TaxBaseEveryMonth record)
 {
     this._TaxBaseEveryMonthRepository.InsertOrUpdate(record);
 }
        public TaxBaseEveryMonth GetExistRecord(String period_year, String certificateID)
        {
            TaxBaseEveryMonth taxBaseEveryMonth = _TaxBaseEveryMonthRepository.GetExistRecord(period_year, certificateID);

            return(taxBaseEveryMonth);
        }
示例#7
0
        // POST: /BasicDataManagement/WageBaseTable/AddToYearBaseTable/
        public ActionResult AddToYearBaseTable()
        {
            var               result            = this._taxBaseByMonthService.TaxBaseByMonths.ToList();
            String            period            = _taxBaseByMonthService.TaxBaseByMonths.First().Period;
            String            period_year       = period.Split('-')[0]; //get year
            String            period_month      = period.Split('-')[1]; //get month
            TaxBaseEveryMonth taxBaseEveryMonth = new TaxBaseEveryMonth();

            foreach (var model in result)
            {
                double monthIncome      = _taxPerOrderService.GetPayTaxAmount(model.CertificateID, "含税");
                double monthIncomeAfter = _taxPerOrderService.GetPayTaxAmount(model.CertificateID, "不含税");
                double monthTax         = _taxPerOrderService.GetDeductTaxSum(model.CertificateID);
                ;
                //检查年度累计底表中是否已存在该人员在该年度的记录,若存在,则进行数据累计,若不存在,则新增
                var taxBaseEveryMonth_exsit = _taxBaseEveryMonthService.GetExistRecord(period_year, model.CertificateID);
                if (taxBaseEveryMonth_exsit != null)
                {
                    /*
                     * taxBaseEveryMonth.CertificateID = model.CertificateID;
                     * taxBaseEveryMonth.CertificateType = model.CertificateType;
                     * taxBaseEveryMonth.Name = model.Name;
                     * taxBaseEveryMonth.Period = period_year;
                     * taxBaseEveryMonth.InitialEaring = model.InitialEaring + taxBaseEveryMonth_exsit.InitialEaring;
                     * taxBaseEveryMonth.TaxFreeIncome = model.TaxFreeIncome + taxBaseEveryMonth_exsit.TaxFreeIncome;
                     * taxBaseEveryMonth.EndowmentInsurance = model.EndowmentInsurance + taxBaseEveryMonth_exsit.EndowmentInsurance;
                     * taxBaseEveryMonth.UnemployedInsurance = model.UnemployedInsurance + taxBaseEveryMonth_exsit.UnemployedInsurance;
                     * taxBaseEveryMonth.MedicalInsurance = model.MedicalInsurance + taxBaseEveryMonth_exsit.MedicalInsurance;
                     * taxBaseEveryMonth.OccupationalAnnuity = model.OccupationalAnnuity + taxBaseEveryMonth_exsit.OccupationalAnnuity;
                     * taxBaseEveryMonth.HousingFund = model.HousingFund + taxBaseEveryMonth_exsit.HousingFund;
                     * taxBaseEveryMonth.AmountDeducted = model.AmountDeducted + taxBaseEveryMonth_exsit.AmountDeducted;
                     * taxBaseEveryMonth.SpecialDeduction = model.SpecialDeduction + taxBaseEveryMonth_exsit.SpecialDeduction;
                     * taxBaseEveryMonth.TotalTax = model.InitialTax + monthTax + taxBaseEveryMonth_exsit.TotalTax;
                     * taxBaseEveryMonth.TotalSalaryIncomeBeforeTax = model.InitialEaring + taxBaseEveryMonth_exsit.TotalSalaryIncomeBeforeTax;
                     * taxBaseEveryMonth.TotalLaborIncomeBeforeTax = monthIncome + taxBaseEveryMonth_exsit.TotalLaborIncomeBeforeTax;
                     * taxBaseEveryMonth.InitialTaxPayable = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TaxFreeIncome - taxBaseEveryMonth.EndowmentInsurance - taxBaseEveryMonth.UnemployedInsurance - taxBaseEveryMonth.MedicalInsurance - taxBaseEveryMonth.OccupationalAnnuity - taxBaseEveryMonth.HousingFund - taxBaseEveryMonth.AmountDeducted - taxBaseEveryMonth.SpecialDeduction;
                     * taxBaseEveryMonth.TotalTemp = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TotalTax;
                     * taxBaseEveryMonth.LastMonths = period_month;
                     */
                    taxBaseEveryMonth.CertificateID   = model.CertificateID;   //保存证件号码
                    taxBaseEveryMonth.CertificateType = model.CertificateType; //保存证件类型
                    taxBaseEveryMonth.Name            = model.Name;            //保存人员姓名
                    taxBaseEveryMonth.Period          = period_year;           //保存年度,如2019
                    //新的年度累计表中的“年度累计税前收入”= 该用户  当月底表中的 “本期初始税前收入额“ + 系统中已存在的年度累计表中的“年度累计税前收入” + 当月下发的劳务费含税总和
                    taxBaseEveryMonth.InitialEaring = model.InitialEaring + taxBaseEveryMonth_exsit.InitialEaring + monthIncome;
                    //新的年度累计表中的“年度累计免税收入”= 该用户 当月底表中的 “本期免税收入“ + 系统中已存在的年度累计表中的“年度累计免税收入”
                    taxBaseEveryMonth.TaxFreeIncome = model.TaxFreeIncome + taxBaseEveryMonth_exsit.TaxFreeIncome;
                    //新的年度累计表中的“年度累计养老保险”= 该用户 当月底表中的 “本期养老保险“ + 系统中已存在的年度累计表中的“年度累计养老保险”
                    taxBaseEveryMonth.EndowmentInsurance = model.EndowmentInsurance + taxBaseEveryMonth_exsit.EndowmentInsurance;
                    //新的年度累计表中的“年度累计失业保险”= 该用户 当月底表中的 “本期失业保险“ + 系统中已存在的年度累计表中的“年度累计失业保险”
                    taxBaseEveryMonth.UnemployedInsurance = model.UnemployedInsurance + taxBaseEveryMonth_exsit.UnemployedInsurance;
                    //新的年度累计表中的“年度累计医疗保险”= 该用户 当月底表中的 “本期医疗保险“ + 系统中已存在的年度累计表中的“年度累计医疗保险”
                    taxBaseEveryMonth.MedicalInsurance = model.MedicalInsurance + taxBaseEveryMonth_exsit.MedicalInsurance;
                    //新的年度累计表中的“年度累计职业年金”= 该用户 当月底表中的 “本期职业年金“ + 系统中已存在的年度累计表中的“年度累计职业年金”
                    taxBaseEveryMonth.OccupationalAnnuity = model.OccupationalAnnuity + taxBaseEveryMonth_exsit.OccupationalAnnuity;
                    //新的年度累计表中的“年度累计住房公积金”= 该用户 当月底表中的 “本期住房公积金“ + 系统中已存在的年度累计表中的“年度累计住房公积金”
                    taxBaseEveryMonth.HousingFund = model.HousingFund + taxBaseEveryMonth_exsit.HousingFund;
                    //新的年度累计表中的“年度累计基本扣除”= 该用户 当月底表中的 “本期基本扣除“ + 系统中已存在的年度累计表中的“年度累计基本扣除”
                    taxBaseEveryMonth.AmountDeducted = model.AmountDeducted + taxBaseEveryMonth_exsit.AmountDeducted;
                    //新的年度累计表中的“年度累计专项附加扣除”= 该用户 当月底表中的 “本期专项附加扣除“ + 系统中已存在的年度累计表中的“年度累计专项附加扣除”
                    taxBaseEveryMonth.SpecialDeduction = model.SpecialDeduction + taxBaseEveryMonth_exsit.SpecialDeduction;
                    //新的年度累计表中的“年度累计已扣缴税额”= 该用户 当月底表中的 “本期初始已扣缴税额“+ 当月下发的劳务费税总和+ 系统中已存在的年度累计表中的“年度累计已扣缴税额”
                    taxBaseEveryMonth.TotalTax = model.InitialTax + monthTax + taxBaseEveryMonth_exsit.TotalTax;
                    //新的年度累计表中的“年度累计工资税前收入额”= 该用户 当月底表中的 “本期初始税前收入额“ + 系统中已存在的年度累计表中的“年度累计工资税前收入额”
                    taxBaseEveryMonth.TotalSalaryIncomeBeforeTax = model.InitialEaring + taxBaseEveryMonth_exsit.TotalSalaryIncomeBeforeTax;
                    //新的年度累计表中的“年度累计劳务费税前收入额”= 该用户 当月下发的劳务费含税总和 + 系统中已存在的年度累计表中的“年度累计劳务费税前收入额”
                    taxBaseEveryMonth.TotalLaborIncomeBeforeTax = monthIncome + taxBaseEveryMonth_exsit.TotalLaborIncomeBeforeTax;
                    //新的年度累计表中的“年度累计应纳税所得额”= 更新后的年度累计表中的“年度累计税前收入”-  更新后的年度累计表中的“年度累计免税收入”- 更新后的年度累计表中的“年度累计养老保险”- 更新后的年度累计表中的“年度累计失业保险”- 更新后的年度累计表中的“年度累计医疗保险”- 更新后的年度累计表中的“年度累计职业年金”-  更新后的年度累计表中的“年度累计住房公积金”- 更新后的年度累计表中的“年度累计基本扣除”- 更新后的年度累计表中的“年度累计专项附加扣除”
                    taxBaseEveryMonth.InitialTaxPayable = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TaxFreeIncome - taxBaseEveryMonth.EndowmentInsurance - taxBaseEveryMonth.UnemployedInsurance - taxBaseEveryMonth.MedicalInsurance - taxBaseEveryMonth.OccupationalAnnuity - taxBaseEveryMonth.HousingFund - taxBaseEveryMonth.AmountDeducted - taxBaseEveryMonth.SpecialDeduction;
                    //年度累计减免税额
                    taxBaseEveryMonth.CutTax = model.CutTax + taxBaseEveryMonth_exsit.CutTax;
                    //新的年度累计表中的“年度累计税后收入”= 更新后的年度累计表中的“年度累计税前收入”- 更新后的年度累计表中的“年度累计已扣缴税额”
                    //new20200407 “年度累计税后收入” = 年度累计税前收入-年度累计已扣缴税额-年度累计减免税额
                    taxBaseEveryMonth.TotalTemp = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TotalTax - taxBaseEveryMonth.CutTax;
                    //更新“当前已累计月数”,如07
                    taxBaseEveryMonth.LastMonths = period_month;
                }
                else
                {
                    /*
                     * taxBaseEveryMonth.CertificateID = model.CertificateID;
                     * taxBaseEveryMonth.CertificateType = model.CertificateType;
                     * taxBaseEveryMonth.Name = model.Name;
                     * taxBaseEveryMonth.Period = period_year;
                     * taxBaseEveryMonth.InitialEaring = model.InitialEaring;
                     * taxBaseEveryMonth.TaxFreeIncome = model.TaxFreeIncome;
                     * taxBaseEveryMonth.EndowmentInsurance = model.EndowmentInsurance;
                     * taxBaseEveryMonth.UnemployedInsurance = model.UnemployedInsurance;
                     * taxBaseEveryMonth.MedicalInsurance = model.MedicalInsurance;
                     * taxBaseEveryMonth.OccupationalAnnuity = model.OccupationalAnnuity;
                     * taxBaseEveryMonth.HousingFund = model.HousingFund;
                     * taxBaseEveryMonth.AmountDeducted = model.AmountDeducted;
                     * taxBaseEveryMonth.SpecialDeduction = model.SpecialDeduction;
                     * taxBaseEveryMonth.TotalTax = model.InitialTax + monthTax;
                     * taxBaseEveryMonth.TotalSalaryIncomeBeforeTax = model.InitialEaring;
                     * taxBaseEveryMonth.TotalLaborIncomeBeforeTax = monthIncome;
                     * taxBaseEveryMonth.InitialTaxPayable = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TaxFreeIncome - taxBaseEveryMonth.EndowmentInsurance - taxBaseEveryMonth.UnemployedInsurance - taxBaseEveryMonth.MedicalInsurance - taxBaseEveryMonth.OccupationalAnnuity - taxBaseEveryMonth.HousingFund - taxBaseEveryMonth.AmountDeducted - taxBaseEveryMonth.SpecialDeduction;
                     * taxBaseEveryMonth.TotalTemp = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TotalTax;
                     * taxBaseEveryMonth.LastMonths = period_month;
                     */
                    //年度累计表中不存在该用户的情况(新人),将当月的数据累计到年度累计表中
                    taxBaseEveryMonth.CertificateID   = model.CertificateID;
                    taxBaseEveryMonth.CertificateType = model.CertificateType;
                    taxBaseEveryMonth.Name            = model.Name;
                    taxBaseEveryMonth.Period          = period_year;
                    //新的年度累计表中的“年度累计税前收入”= 该用户  当月底表中的 “本期初始税前收入额“ + 当月下发的劳务费含税总和
                    taxBaseEveryMonth.InitialEaring = model.InitialEaring + monthIncome;
                    //新的年度累计表中的“年度累计免税收入”= 该用户 当月底表中的 “本期免税收入“
                    taxBaseEveryMonth.TaxFreeIncome = model.TaxFreeIncome;
                    //新的年度累计表中的“年度累计养老保险”= 该用户 当月底表中的 “本期养老保险“
                    taxBaseEveryMonth.EndowmentInsurance = model.EndowmentInsurance;
                    //新的年度累计表中的“年度累计失业保险”= 该用户 当月底表中的 “本期失业保险“
                    taxBaseEveryMonth.UnemployedInsurance = model.UnemployedInsurance;
                    //新的年度累计表中的“年度累计医疗保险”= 该用户 当月底表中的 “本期医疗保险“
                    taxBaseEveryMonth.MedicalInsurance = model.MedicalInsurance;
                    //新的年度累计表中的“年度累计职业年金”= 该用户 当月底表中的 “本期职业年金“
                    taxBaseEveryMonth.OccupationalAnnuity = model.OccupationalAnnuity;
                    //新的年度累计表中的“年度累计住房公积金”= 该用户 当月底表中的 “本期住房公积金“
                    taxBaseEveryMonth.HousingFund = model.HousingFund;
                    //新的年度累计表中的“年度累计基本扣除”= 该用户 当月底表中的 “本期基本扣除“
                    taxBaseEveryMonth.AmountDeducted = model.AmountDeducted;
                    //新的年度累计表中的“年度累计专项附加扣除”= 该用户 当月底表中的 “本期专项附加扣除“
                    taxBaseEveryMonth.SpecialDeduction = model.SpecialDeduction;
                    //新的年度累计表中的“年度累计已扣缴税额”= 该用户 当月底表中的 “本期初始已扣缴税额“+ 当月下发的劳务费税总和
                    taxBaseEveryMonth.TotalTax = model.InitialTax + monthTax;
                    //新的年度累计表中的“年度累计工资税前收入额”= 该用户 当月底表中的 “本期初始税前收入额“
                    taxBaseEveryMonth.TotalSalaryIncomeBeforeTax = model.InitialEaring;
                    //新的年度累计表中的“年度累计劳务费税前收入额”= 该用户 当月下发的劳务费含税总和
                    taxBaseEveryMonth.TotalLaborIncomeBeforeTax = monthIncome;
                    //新的年度累计表中的“年度累计应纳税所得额”= 更新后的年度累计表中的“年度累计税前收入”-  更新后的年度累计表中的“年度累计免税收入”- 更新后的年度累计表中的“年度累计养老保险”- 更新后的年度累计表中的“年度累计失业保险”- 更新后的年度累计表中的“年度累计医疗保险”- 更新后的年度累计表中的“年度累计职业年金”-  更新后的年度累计表中的“年度累计住房公积金”- 更新后的年度累计表中的“年度累计基本扣除”- 更新后的年度累计表中的“年度累计专项附加扣除”
                    taxBaseEveryMonth.InitialTaxPayable = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TaxFreeIncome - taxBaseEveryMonth.EndowmentInsurance - taxBaseEveryMonth.UnemployedInsurance - taxBaseEveryMonth.MedicalInsurance - taxBaseEveryMonth.OccupationalAnnuity - taxBaseEveryMonth.HousingFund - taxBaseEveryMonth.AmountDeducted - taxBaseEveryMonth.SpecialDeduction;
                    //年度累计减免税额
                    taxBaseEveryMonth.CutTax = model.CutTax;
                    //新的年度累计表中的“年度累计税后收入”= 更新后的年度累计表中的“年度累计税前收入”- 更新后的年度累计表中的“年度累计已扣缴税额”
                    //new20200407 “年度累计税后收入” = 年度累计税前收入-年度累计已扣缴税额-年度累计减免税额
                    taxBaseEveryMonth.TotalTemp = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TotalTax - taxBaseEveryMonth.CutTax;
                    //更新“当前已累计月数”,如07
                    taxBaseEveryMonth.LastMonths = period_month;
                }
                try
                {
                    _taxBaseEveryMonthService.InsertOrUpdate(taxBaseEveryMonth);
                    //       _taxBaseByMonthService.Delete(model);
                }
                catch (Exception ex)
                {
                    return(null);
                }
            }
            return(Json(new { }));
        }
示例#8
0
        /*
         * public OperationResult Insert(TaxPerOrder model, bool isSave)
         * {
         *  try
         *  {
         *      //TaxPerOrder taxPerOrder = _TaxPerOrderRepository.Entities.FirstOrDefault(c => c.SerialNumber == model.SerialNumber && c.SerialNumber == model.CertificateID.Trim());
         *      //if (taxPerOrder != null)
         *      //{
         *      //    return new OperationResult(OperationResultType.Warning, "数据库中已经存在相同的税单纪录,请修改后重新提交!");
         *      //}
         *      //if (model.CertificateID == null || model.CertificateID.Trim() == "")
         *      //    return new OperationResult(OperationResultType.Warning, "证件号码不能为空,请修改后重新提交!");
         *      double tax = 0.0;          //最终税额
         *      double amountX = 0.0;     //最终税后数(不含税)
         *      double amountY = 0.0;       //最终税前数(含税)
         *      //计算税金,并存储
         *      if (model.PersonType.Equals("所内"))
         *      {
         *          //按照工资进行算税
         *          //1.查询已发放总金额,查询已计税总额【Tax和】
         *          //double amount = GetPayTaxAmount(model.CertificateID, model.TaxOrNot);
         *          //都按税前加和
         *          double amount = GetPayTaxAmount(model.CertificateID, model.TaxOrNot);
         *          //double amount = 0.0;
         *          double deductTaxSum = GetDeductTaxSum(model.CertificateID);
         *          //double deductTaxSum = 0.0;
         *          //2.从基本工资表TaxBaseByMonth中查询(初始应发工资-免税额-基本扣除)
         *          double baseSalary = _TaxBaseByMonthRepository.GetBaseSalary(model.CertificateID);
         *          //从基本工资表里读取税
         *          double baseTax = _TaxBaseByMonthRepository.GetBaseTax(model.CertificateID);
         *          //double baseSalary = 4000;
         *          //3.根据已发放总金额,判断算税公式
         *          //含税与不含税的税率区间不同,分开判断
         *          //含税公式:T=【Y+(初始应发工资-免税额-基本扣除数)】*税率-速算扣除数-初始表税-前几次税额总数
         *
         *
         *          //4.计算Tax(税额),AmountX(税后),AmountY(税前)
         *          if (model.TaxOrNot.Equals("含税"))
         *          {
         *              double interval = model.Amount + amount + baseSalary;
         *              if (interval <= 0)
         *              {
         *                  tax = 0.0;
         *              }
         *              //不超过3000元,税率3%,速算扣除数0
         *              else if (interval > 0 && interval <= 3000)
         *              {
         *                  tax = interval * 0.03 - deductTaxSum - baseTax;
         *              }
         *              //超过3000至12000元,税率10%,速算扣除数210
         *              else if (interval > 3000 && interval <= 12000)
         *              {
         *                  tax = interval * 0.1 - 210 - deductTaxSum - baseTax;
         *              }
         *              //超过12000至25000元,税率20%,速算扣除数1410
         *              else if (interval > 12000 && interval <= 25000)
         *              {
         *                  tax = interval * 0.2 - 1410 - deductTaxSum - baseTax;
         *              }
         *              //超过25000至35000元,税率25%,速算扣除数2660
         *              else if (interval > 25000 && interval <= 35000)
         *              {
         *                  tax = interval * 0.25 - 2660 - deductTaxSum - baseTax;
         *              }
         *              //超过35000至55000元,税率30%,速算扣除数4410
         *              else if (interval > 35000 && interval <= 55000)
         *              {
         *                  tax = interval * 0.3 - 4410 - deductTaxSum - baseTax;
         *              }
         *              //超过55000至80000元,税率35%,速算扣除数7160
         *              else if (interval > 55000 && interval <= 80000)
         *              {
         *                  tax = interval * 0.35 - 7160 - deductTaxSum - baseTax;
         *              }
         *              //超过80000元,税率45%,速算扣除数15160
         *              else if (interval > 80000)
         *              {
         *                  tax = interval * 0.45 - 15160 - deductTaxSum - baseTax;
         *              }
         *              amountX = model.Amount - tax;
         *              amountY = model.Amount;
         *          }
         *          else if (model.TaxOrNot.Equals("不含税"))
         *          {
         *              double interval_1 = model.Amount + amount + baseSalary - baseTax;
         *              double tax_1 = 0.0;
         *              //first step
         *              if (interval_1 <= 0)
         *              {
         *                  tax_1 = 0.0;
         *              }
         *
         *              //不超过2910元,税率3%,速算扣除数0
         *              else if (interval_1 > 0 && interval_1 <= 2910)
         *              {
         *
         *                  tax_1 = interval_1 / (1 - 0.03);
         *              }
         *
         *              //超过2910至11010元,税率10%,速算扣除数210
         *              else if (interval_1 > 2910 && interval_1 <= 11010)
         *              {
         *                  tax_1 = (interval_1 - 210) / (1 - 0.1);
         *
         *              }
         *
         *              //超过11010至21410元,税率20%,速算扣除数1410
         *              else if (interval_1 > 11010 && interval_1 <= 21410)
         *              {
         *                  tax_1 = (interval_1 - 1410) / (1 - 0.2);
         *
         *              }
         *
         *              //超过21410至28910元,税率25%,速算扣除数2660
         *              else if (interval_1 > 21410 && interval_1 <= 28910)
         *              {
         *                  tax_1 = (interval_1 - 2660) / (1 - 0.25);
         *
         *              }
         *
         *              //超过28910至42910元,税率30%,速算扣除数4410
         *              else if (interval_1 > 28910 && interval_1 <= 42910)
         *              {
         *                  tax_1 = (interval_1 - 4410) / (1 - 0.3);
         *
         *              }
         *
         *              //超过42910至59160元,税率35%,速算扣除数7160
         *              else if (interval_1 > 42910 && interval_1 <= 59160)
         *              {
         *                  tax_1 = (interval_1 - 7160) / (1 - 0.35);
         *
         *              }
         *
         *              //超过59160元,税率45%,速算扣除数15160
         *              else if (interval_1 > 59160)
         *              {
         *                  tax_1 = (interval_1 - 15160) / (1 - 0.45);
         *
         *              }
         *
         *
         *              //secend step
         *
         *              if (tax_1 <= 0)
         *              {
         *                  tax = 0.0;
         *              }
         *              //不超过3000元,税率3%,速算扣除数0
         *              else if (tax_1 > 0 && tax_1 <= 3000)
         *              {
         *                  tax = tax_1 * 0.03 - baseTax - deductTaxSum;
         *              }
         *              //超过3000至12000元,税率10%,速算扣除数210
         *              else if (tax_1 > 3000 && tax_1 <= 12000)
         *              {
         *                  tax = tax_1 * 0.1 - baseTax - 210 - deductTaxSum;
         *              }
         *              //超过12000至25000元,税率20%,速算扣除数1410
         *              else if (tax_1 > 12000 && tax_1 <= 25000)
         *              {
         *                  tax = tax_1 * 0.2 - baseTax - 1410 - deductTaxSum;
         *              }
         *              //超过25000至35000元,税率25%,速算扣除数2660
         *              else if (tax_1 > 25000 && tax_1 <= 35000)
         *              {
         *                  tax = tax_1 * 0.25 - baseTax - 2660 - deductTaxSum;
         *              }
         *              //超过35000至55000元,税率30%,速算扣除数4410
         *              else if (tax_1 > 35000 && tax_1 <= 55000)
         *              {
         *                  tax = tax_1 * 0.3 - baseTax - 4410 - deductTaxSum;
         *              }
         *              //超过55000至80000元,税率35%,速算扣除数7160
         *              else if (tax_1 > 55000 && tax_1 <= 80000)
         *              {
         *                  tax = tax_1 * 0.35 - baseTax - 7160 - deductTaxSum;
         *              }
         *              //超过80000元,税率45%,速算扣除数15160
         *              else if (tax_1 > 80000)
         *              {
         *                  tax = tax_1 * 0.45 - baseTax - 15160 - deductTaxSum;
         *              }
         *              amountX = model.Amount;
         *              amountY = model.Amount + tax;
         *          }
         *      }
         *      else if (model.PersonType.Equals("所外"))
         *      {
         *          //按照劳务进行算税
         *          //1.查询已发放总金额
         *          double amount = GetPayTaxAmount(model.CertificateID, model.TaxOrNot);
         *          // double amount = 0.0;
         *          double deductTaxSum = GetDeductTaxSum(model.CertificateID);
         *          // double deductTaxSum = 0.0;
         *          //2.根据已发放总金额,判断算税公式
         *          double baseSalary = 800;
         *          double interval = model.Amount + amount;
         *          //3.计算Tax(税额),AmountX(税后),AmountY(税前)
         *          if (model.TaxOrNot.Equals("含税"))
         *          {
         *              if (interval <= 800)
         *              {
         *                  tax = 0.0;
         *              }
         *              //超过800至4000元,税率20%,速算扣除数0
         *              else if (interval > 800 && interval <= 4000)
         *              {
         *                  tax = (interval - baseSalary) * 0.2 - deductTaxSum;
         *              }
         *              //超过4000至25000元,税率20%,速算扣除数0
         *              else if (interval > 4000 && interval <= 20000)
         *              {
         *                  tax = (interval - interval * 0.2) * 0.2 - deductTaxSum;
         *              }
         *              //超过25000至62500元,税率30%,速算扣除数2000
         *              else if (interval > 20000 && interval <= 50000)
         *              {
         *                  tax = (interval - interval * 0.2) * 0.3 - 2000 - deductTaxSum;
         *              }
         *              //超过62500元,税率40%,速算扣除数7000
         *              else if (interval > 50000)
         *              {
         *                  tax = (interval - interval * 0.2) * 0.4 - 7000 - deductTaxSum;
         *              }
         *              amountX = model.Amount - tax;
         *              amountY = model.Amount;
         *          }
         *          else if (model.TaxOrNot.Equals("不含税"))
         *          {
         *              if (interval <= 800)
         *              {
         *                  tax = 0.0;
         *              }
         *              //超过800至4000元,税率20%,速算扣除数0
         *              else if (interval > 800 && interval <= 3360)
         *              {
         *                  tax = ((interval - baseSalary) / (1 - 0.2)) * 0.2 - deductTaxSum;
         *              }
         *              //超过4000至25000元,税率20%,速算扣除数0
         *              else if (interval > 3360 && interval <= 21000)
         *              {
         *                  tax = (interval * (1 - 0.2) * 0.2) / (1 - (1 - 0.2) * 0.2) - deductTaxSum;
         *              }
         *              //超过25000至62500元,税率30%,速算扣除数2000
         *              else if (interval > 21000 && interval <= 49500)
         *              {
         *                  tax = (interval * (1 - 0.2) * 0.3 - 2000) / (1 - (1 - 0.2) * 0.3) - deductTaxSum;
         *              }
         *              //超过62500元,税率40%,速算扣除数7000
         *              else if (interval > 49500)
         *              {
         *                  tax = (interval * (1 - 0.2) * 0.4 - 7000) / (1 - (1 - 0.2) * 0.4) - deductTaxSum;
         *              }
         *              amountX = model.Amount;
         *              amountY = model.Amount + tax;
         *          }
         *
         *      }
         *
         *      //5.存储该纪录
         *      var entity = new TaxPerOrder
         *      {
         *          SerialNumber = model.SerialNumber,
         *          ProjectNumber = model.ProjectNumber,
         *          TaskName = model.TaskName,
         *          RefundType = model.RefundType,
         *          ProjectDirector = model.ProjectDirector,
         *          Name = model.Name,
         *          Agent = model.Agent,
         *          PersonType = model.PersonType,
         *          CertificateType = model.CertificateType,
         *          CertificateID = model.CertificateID,
         *          Amount = model.Amount,
         *          TaxOrNot = model.TaxOrNot,
         *          Tax = tax,
         *          Bank = model.Bank,
         *          BankDetailName = model.BankDetailName,
         *          AccountName = model.AccountName,
         *          AccountNumber = model.AccountNumber,
         *          PaymentType = model.PaymentType,
         *          AmountY = amountY,
         *          AmountX = amountX,
         *          UpdateDate = DateTime.Now
         *      };
         *      _TaxPerOrderRepository.Insert(entity, isSave);
         *
         *      return new OperationResult(OperationResultType.Success, "新增数据成功!");
         *  }
         *  catch (Exception ex)
         *  {
         *      return new OperationResult(OperationResultType.Error, "新增数据失败:" + ex.Message);
         *  }
         * }
         *
         */

        public OperationResult Insert(TaxPerOrder model, bool isSave)
        {
            try
            {
                //TaxPerOrder taxPerOrder = _TaxPerOrderRepository.Entities.FirstOrDefault(c => c.SerialNumber == model.SerialNumber && c.SerialNumber == model.CertificateID.Trim());
                //if (taxPerOrder != null)
                //{
                //    return new OperationResult(OperationResultType.Warning, "数据库中已经存在相同的税单纪录,请修改后重新提交!");
                //}
                //if (model.CertificateID == null || model.CertificateID.Trim() == "")
                //    return new OperationResult(OperationResultType.Warning, "证件号码不能为空,请修改后重新提交!");
                double tax     = 0.0;     //最终税额
                double amountX = 0.0;     //最终税后数(不含税)
                double amountY = 0.0;     //最终税前数(含税)
                //计算税金,并存储
                if (model.PersonType.Equals("所内"))
                {
                    //按照工资进行算税
                    //2019.4.12

                    String            period_year       = DateTime.Now.Year.ToString();
                    TaxBaseEveryMonth taxBaseEveryMonth = _TaxBaseEveryMonthRepository.GetExistRecord(period_year, model.CertificateID);
                    //含税
                    //本次劳务应纳税所得额taxableIncome=当次劳务税前收入额model.Amount
                    //+本期应纳税所得额TaxBaseByMonth.InitialTaxPayable
                    //+年度累计应纳税所得额TaxBaseEveryMonth.InitialTaxPayable
                    //+本期已计算劳务税前收入总额GetPayTaxAmount(model.CertificateID, model.TaxOrNot)//含税

                    //第一步:本次劳务应纳税所得额taxableIncome=当次劳务税前收入额model.Amount
                    //+本期已计算劳务税前收入总额GetPayTaxAmount(model.CertificateID, model.TaxOrNot)//含税
                    //+(本期初始税前收入额TaxBaseByMonth.InitialEaring—本期免税收入TaxFreeIncome
                    //—本期养老保险—本期失业保险—本期医疗保险—本期职业年金—本期住房公积金
                    //—本期基本扣除—本期专项附加扣除)part1
                    //+(年度累计税前收入InitalEaring—年度累计免税收入TaxFreeIncome
                    //—年度累计养老保险—年度累计失业保险—年度累计医疗保险—年度累计职业年金—年度累计住房公积金
                    //—年度累计基本扣除—年度累计专项附加扣除)part2
                    double part1 = _TaxBaseByMonthRepository.GetPart1(model.CertificateID);
                    double part2 = 0.0;
                    if (taxBaseEveryMonth != null)
                    {
                        part2 = taxBaseEveryMonth.InitialEaring - taxBaseEveryMonth.TaxFreeIncome - taxBaseEveryMonth.EndowmentInsurance - taxBaseEveryMonth.UnemployedInsurance - taxBaseEveryMonth.MedicalInsurance - taxBaseEveryMonth.OccupationalAnnuity - taxBaseEveryMonth.HousingFund - taxBaseEveryMonth.AmountDeducted - taxBaseEveryMonth.SpecialDeduction;
                    }
                    //1.查询本期已计算劳务含税/不含税收入总额
                    double amountTotal = GetPayTaxAmount(model.CertificateID, model.TaxOrNot);
                    //2.本期应纳税所得额
                    double InitialTaxPayable = _TaxBaseByMonthRepository.GetInitialTaxPayable(model.CertificateID);
                    //3.年度累计应纳税所得额
                    double InitialTaxPayableInYear = 0.0;
                    //4.年度累计已扣缴税额
                    double TotalTaxInYear = 0.0;
                    if (taxBaseEveryMonth != null)
                    {
                        InitialTaxPayableInYear = taxBaseEveryMonth.InitialTaxPayable;
                        TotalTaxInYear          = taxBaseEveryMonth.TotalTax;
                    }
                    //5.本期已计算劳务税额总额
                    double deductTaxSum = GetDeductTaxSum(model.CertificateID);
                    //6.本期初始已扣缴税额
                    double InitialTax = _TaxBaseByMonthRepository.GetInitialTax(model.CertificateID);
                    //7.本次劳务应纳税额tax=(本次应纳税所得额taxableIncome*税率
                    //-速算扣除数)-本期初始已扣缴税额TaxBaseByMonth.InitialTax
                    //—年度累计已扣缴税额TaxBaseEveryMonth.TotalTax
                    //—本期已计算劳务税额总额deductTaxSum

                    //8.获取本期减免税额
                    double cutTax     = _TaxBaseByMonthRepository.GetCutTax(model.CertificateID);
                    double cutTaxTemp = cutTax;
                    double yearCutTax = 0.0;
                    if (taxBaseEveryMonth != null)
                    {
                        cutTaxTemp = cutTaxTemp + taxBaseEveryMonth.CutTax;
                        yearCutTax = taxBaseEveryMonth.CutTax;
                    }

                    if (model.TaxOrNot.Equals("含税"))
                    {
                        double taxableIncome = model.Amount + part1 + part2 + amountTotal;
                        //比较税率
                        //不超过36000元,税率3%,速算扣除数0
                        if (taxableIncome <= 36000)
                        {
                            tax = taxableIncome * 0.03 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过36000至144000元,税率10%,速算扣除数2520
                        else if (taxableIncome > 36000 && taxableIncome <= 144000)
                        {
                            tax = taxableIncome * 0.1 - 2520 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过144000至300000元,税率20%,速算扣除数16920
                        else if (taxableIncome > 144000 && taxableIncome <= 300000)
                        {
                            tax = taxableIncome * 0.2 - 16920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过300000至420000元,税率25%,速算扣除数31920
                        else if (taxableIncome > 300000 && taxableIncome <= 420000)
                        {
                            tax = taxableIncome * 0.25 - 31920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过420000至660000元,税率30%,速算扣除数52920
                        else if (taxableIncome > 420000 && taxableIncome <= 660000)
                        {
                            tax = taxableIncome * 0.3 - 52920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过660000至960000元,税率35%,速算扣除数85920
                        else if (taxableIncome > 660000 && taxableIncome <= 960000)
                        {
                            tax = taxableIncome * 0.35 - 85920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过960000元,税率45%,速算扣除数181920
                        else if (taxableIncome > 960000)
                        {
                            tax = taxableIncome * 0.45 - 181920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }

                        if (tax < 0)
                        {
                            tax = 0.0;
                        }
                        amountX = model.Amount - tax;
                        amountY = model.Amount;
                    }
                    else if (model.TaxOrNot.Equals("不含税"))
                    {
                        //【当次劳务税后收入额model.Amount+本期已计算劳务税后收入总额amountTotal
                        //+(本期初始税后收入额—本期免税收入 —本期养老保险—本期失业保险
                        //—本期医疗保险—本期职业年金—本期住房公积金—本期基本扣除
                        //—本期专项附加扣除)
                        //+(年度累计税后收入—年度累计免税收入—年度累计养老保险
                        //—年度累计失业保险—年度累计医疗保险—年度累计职业年金
                        // —年度累计住房公积金—年度累计基本扣除—年度累计专项附加扣除)】

                        //1.(本期初始税后收入额—本期免税收入 —本期养老保险—本期失业保险
                        //—本期医疗保险—本期职业年金—本期住房公积金—本期基本扣除
                        //—本期专项附加扣除)
                        double withoutInsurance = _TaxBaseByMonthRepository.GetWithoutInsurance(model.CertificateID);
                        //2.(年度累计税后收入—年度累计免税收入—年度累计养老保险
                        //—年度累计失业保险—年度累计医疗保险—年度累计职业年金
                        // —年度累计住房公积金—年度累计基本扣除—年度累计专项附加扣除)
                        double withoutInsuranceInYear = 0.0;
                        if (taxBaseEveryMonth != null)
                        {
                            withoutInsuranceInYear = taxBaseEveryMonth.TotalTemp - taxBaseEveryMonth.TaxFreeIncome - taxBaseEveryMonth.EndowmentInsurance - taxBaseEveryMonth.UnemployedInsurance - taxBaseEveryMonth.OccupationalAnnuity - taxBaseEveryMonth.HousingFund - taxBaseEveryMonth.MedicalInsurance - taxBaseEveryMonth.AmountDeducted - taxBaseEveryMonth.SpecialDeduction;
                        }
                        //3.中间对比不含税级距值
                        double interval_1 = model.Amount + amountTotal + withoutInsurance + withoutInsuranceInYear;
                        //4.不含税级距值
                        //本次劳务应纳税所得额taxableIncome1={interval_1—累计速算扣除数}/(1-税率)

                        double taxableIncome1 = 0.0;

                        //不超过34920元,税率3%,速算扣除数0
                        if (interval_1 <= 34920)
                        {
                            taxableIncome1 = interval_1 / (1 - 0.03);
                        }

                        //超过34920至132120元,税率10%,速算扣除数2520
                        else if (interval_1 > 34920 && interval_1 <= 132120)
                        {
                            taxableIncome1 = (interval_1 - 2520) / (1 - 0.1);
                        }

                        //超过132120至256920元,税率20%,速算扣除数16920
                        else if (interval_1 > 132120 && interval_1 <= 256920)
                        {
                            taxableIncome1 = (interval_1 - 16920) / (1 - 0.2);
                        }

                        //超过21410至346920元,税率25%,速算扣除数31920
                        else if (interval_1 > 256920 && interval_1 <= 346920)
                        {
                            taxableIncome1 = (interval_1 - 31920) / (1 - 0.25);
                        }

                        //超过346920至514920元,税率30%,速算扣除数52920
                        else if (interval_1 > 346920 && interval_1 <= 514920)
                        {
                            taxableIncome1 = (interval_1 - 52920) / (1 - 0.3);
                        }

                        //超过514920至709920元,税率35%,速算扣除数85920
                        else if (interval_1 > 514920 && interval_1 <= 709920)
                        {
                            taxableIncome1 = (interval_1 - 85920) / (1 - 0.35);
                        }

                        //超过709920元,税率45%,速算扣除数181920
                        else if (interval_1 > 709920)
                        {
                            taxableIncome1 = (interval_1 - 181920) / (1 - 0.45);
                        }


                        //4.本次劳务应纳税额=(本次劳务应纳税所得额*税率—速算扣除数)
                        //—本期初始已扣缴税额—年度累计已扣缴税额—本期已计算劳务税额总额

                        //5.第二次税率级距判断
                        //不超过36000元,税率3%,速算扣除数0
                        if (taxableIncome1 <= 36000)
                        {
                            tax = taxableIncome1 * 0.03 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过36000至144000元,税率10%,速算扣除数2520
                        else if (taxableIncome1 > 36000 && taxableIncome1 <= 144000)
                        {
                            tax = taxableIncome1 * 0.1 - 2520 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过144000至300000元,税率20%,速算扣除数16920
                        else if (taxableIncome1 > 144000 && taxableIncome1 <= 300000)
                        {
                            tax = taxableIncome1 * 0.2 - 16920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过300000至420000元,税率25%,速算扣除数31920
                        else if (taxableIncome1 > 300000 && taxableIncome1 <= 420000)
                        {
                            tax = taxableIncome1 * 0.25 - 31920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过420000至660000元,税率30%,速算扣除数52920
                        else if (taxableIncome1 > 420000 && taxableIncome1 <= 660000)
                        {
                            tax = taxableIncome1 * 0.3 - 52920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过660000至960000元,税率35%,速算扣除数85920
                        else if (taxableIncome1 > 660000 && taxableIncome1 <= 960000)
                        {
                            tax = taxableIncome1 * 0.35 - 85920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }
                        //超过960000元,税率45%,速算扣除数181920
                        else if (taxableIncome1 > 960000)
                        {
                            tax = taxableIncome1 * 0.45 - 181920 - InitialTax - TotalTaxInYear - deductTaxSum - cutTaxTemp;
                        }

                        if (tax < 0)
                        {
                            tax = 0.0;
                        }
                        amountX = model.Amount;
                        amountY = model.Amount + tax;
                    }
                }
                else if (model.PersonType.Equals("所外"))
                {
                    //按照劳务进行算税
                    //1.查询已发放总金额
                    double amount = GetPayTaxAmount(model.CertificateID, model.TaxOrNot);
                    // double amount = 0.0;
                    double deductTaxSum = GetDeductTaxSum(model.CertificateID);
                    // double deductTaxSum = 0.0;
                    //2.根据已发放总金额,判断算税公式
                    double baseSalary = 800;
                    double interval   = model.Amount + amount;
                    //3.计算Tax(税额),AmountX(税后),AmountY(税前)
                    if (model.TaxOrNot.Equals("含税"))
                    {
                        if (interval <= 800)
                        {
                            tax = 0.0;
                        }
                        //超过800至4000元,税率20%,速算扣除数0
                        else if (interval > 800 && interval <= 4000)
                        {
                            tax = (interval - baseSalary) * 0.2 - deductTaxSum;
                        }
                        //超过4000至25000元,税率20%,速算扣除数0
                        else if (interval > 4000 && interval <= 25000)
                        {
                            tax = (interval - interval * 0.2) * 0.2 - deductTaxSum;
                        }
                        //超过25000至62500元,税率30%,速算扣除数2000
                        else if (interval > 25000 && interval <= 62500)
                        {
                            tax = (interval - interval * 0.2) * 0.3 - 2000 - deductTaxSum;
                        }
                        //超过62500元,税率40%,速算扣除数7000
                        else if (interval > 62500)
                        {
                            tax = (interval - interval * 0.2) * 0.4 - 7000 - deductTaxSum;
                        }
                        amountX = model.Amount - tax;
                        amountY = model.Amount;
                    }
                    else if (model.TaxOrNot.Equals("不含税"))
                    {
                        if (interval <= 800)
                        {
                            tax = 0.0;
                        }
                        //超过800至4000元,税率20%,速算扣除数0
                        else if (interval > 800 && interval <= 3360)
                        {
                            tax = ((interval - baseSalary) / (1 - 0.2)) * 0.2 - deductTaxSum;
                        }
                        //超过4000至25000元,税率20%,速算扣除数0
                        else if (interval > 3360 && interval <= 21000)
                        {
                            tax = (interval * (1 - 0.2) * 0.2) / (1 - (1 - 0.2) * 0.2) - deductTaxSum;
                        }
                        //超过25000至62500元,税率30%,速算扣除数2000
                        else if (interval > 21000 && interval <= 49500)
                        {
                            tax = (interval * (1 - 0.2) * 0.3 - 2000) / (1 - (1 - 0.2) * 0.3) - deductTaxSum;
                        }
                        //超过62500元,税率40%,速算扣除数7000
                        else if (interval > 49500)
                        {
                            tax = (interval * (1 - 0.2) * 0.4 - 7000) / (1 - (1 - 0.2) * 0.4) - deductTaxSum;
                        }
                        amountX = model.Amount;
                        amountY = model.Amount + tax;
                    }
                }

                //5.存储该纪录
                var entity = new TaxPerOrder
                {
                    SerialNumber    = model.SerialNumber,
                    ProjectNumber   = model.ProjectNumber,
                    TaskName        = model.TaskName,
                    RefundType      = model.RefundType,
                    ProjectDirector = model.ProjectDirector,
                    Name            = model.Name,
                    Agent           = model.Agent,
                    PersonType      = model.PersonType,
                    CertificateType = model.CertificateType,
                    CertificateID   = model.CertificateID,
                    Amount          = model.Amount,
                    TaxOrNot        = model.TaxOrNot,
                    Tax             = tax,
                    Bank            = model.Bank,
                    Tele            = model.Tele,
                    BankDetailName  = model.BankDetailName,
                    ProvinceCity    = model.ProvinceCity,
                    CityField       = model.CityField,
                    AccountName     = model.AccountName,
                    AccountNumber   = model.AccountNumber,
                    PaymentType     = model.PaymentType,
                    AmountY         = amountY,
                    AmountX         = amountX,
                    UpdateDate      = DateTime.Now
                };
                _TaxPerOrderRepository.Insert(entity, isSave);

                return(new OperationResult(OperationResultType.Success, "新增数据成功!"));
            }
            catch (Exception ex)
            {
                return(new OperationResult(OperationResultType.Error, "新增数据失败:" + ex.Message));
            }
        }