private void buttonCalcTax_Click(object sender, EventArgs e) { try { decimal start = numericUpDownTaxStartPoint.Value; decimal amount = numericUpDownTaxAmount.Value; numericUpDownTax.Value = IndividualIncomeTax.GetTax(start, amount); } catch (System.Exception ex) { QMessageBox.ShowError(ex.ToString()); } }
//智诺计薪方法: //扣掉社保和公积金 //按公司规定增加和扣除, 例如奖金, 迟到, 缺勤, 以及其他, 如损坏公物的赔偿 //计算个税(账内收入), 但这个月的个税留到下个月再扣除 //扣掉上个月个税, 注意这里是先计算个税, 然后再扣除上个月的个税, 有点不合理 //得到实发金额 public void Calc(int workdayCount) { //计算迟到扣款 m_lateCut = m_args.m_late * DataCenter.Instance.LateCutUnit; //缺勤扣款 m_absentCut = m_employee.GetTotalSalary() * (decimal)m_args.m_absent / workdayCount; //计算应纳税收入 m_incomeToTax = m_employee.m_internalSalary - m_employee.m_socialInsuranceCut - m_employee.m_houseFundCut + m_args.m_allowance - m_lateCut - m_absentCut - m_args.m_otherCut; m_taxToCut = IndividualIncomeTax.GetTax(DataCenter.Instance.IndividualIncomeTaxStart, m_incomeToTax);//计算个税, 但这个月不扣 //总计数据 m_internalIncome = m_incomeToTax - m_args.m_previousTaxCut;//扣上个月的税 m_externalIncome = m_employee.m_externalSalary; m_totalIncome = m_internalIncome + m_externalIncome; }