处理外包计税问题
This commit is contained in:
parent
f07b0b7e16
commit
45da1138bf
@ -45,77 +45,19 @@ public class LWTaxCalculationProcessor implements CalculationProcessor {
|
||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.20"));
|
||||
// 速算扣除数(速算扣除数跟税率同步)
|
||||
rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE);
|
||||
// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
|
||||
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 20000L && rzSalaryDetail.getTaxableIncome().doubleValue() <= 50000l) {
|
||||
// 此阶税率为百分之3,速减数为0
|
||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.3"));
|
||||
// 速算扣除数(速算扣除数跟税率同步)
|
||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("2000"));
|
||||
// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 50000l) {
|
||||
// 此阶税率为百分之3,速减数为0
|
||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.40"));
|
||||
// 速算扣除数(速算扣除数跟税率同步)
|
||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("7000"));
|
||||
// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
}
|
||||
|
||||
|
||||
// 判断应纳税所得额额度(额度不一样税率不一样)
|
||||
// if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() <= 800) {
|
||||
// // 此阶税率为百分之3,速减数为0
|
||||
// rzSalaryDetail.setTaxRate(DataUtils.DEFAULT_VALUE);
|
||||
// // 速算扣除数(速算扣除数跟税率同步)
|
||||
// rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE);
|
||||
//// rzSalaryDetail.setKjAmount(new BigDecimal("800"));
|
||||
// } else if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() > 800l && rzSalaryDetail.getSalaryBeforeTax().doubleValue() <= 4000L) {
|
||||
// // 此阶税率为百分之3,速减数为0
|
||||
// rzSalaryDetail.setTaxRate(new BigDecimal("0.20"));
|
||||
// // 速算扣除数(速算扣除数跟税率同步)
|
||||
// rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE);
|
||||
//// rzSalaryDetail.setKjAmount(new BigDecimal("800"));
|
||||
//// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
//
|
||||
// } else if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() > 4000l && rzSalaryDetail.getSalaryBeforeTax().doubleValue() <= 20000L) {
|
||||
// // 此阶税率为百分之3,速减数为0
|
||||
// rzSalaryDetail.setTaxRate(new BigDecimal("0.20"));
|
||||
// // 速算扣除数(速算扣除数跟税率同步)
|
||||
// rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE);
|
||||
//// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
//
|
||||
// } else if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() > 20000L && rzSalaryDetail.getSalaryBeforeTax().doubleValue() <= 50000l) {
|
||||
// // 此阶税率为百分之3,速减数为0
|
||||
// rzSalaryDetail.setTaxRate(new BigDecimal("0.3"));
|
||||
// // 速算扣除数(速算扣除数跟税率同步)
|
||||
// rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("2000"));
|
||||
//// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
// } else if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() > 50000l) {
|
||||
// // 此阶税率为百分之3,速减数为0
|
||||
// rzSalaryDetail.setTaxRate(new BigDecimal("0.40"));
|
||||
// // 速算扣除数(速算扣除数跟税率同步)
|
||||
// rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("7000"));
|
||||
//// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
// }
|
||||
|
||||
|
||||
// 判断税前工资是否大于5000,如果小于,则不在计算个税
|
||||
// if (rzSalaryDetail.getTaxableIncome().doubleValue() > 800.00){
|
||||
// // 本月应缴税额(本月应纳税所得额*税率-速减数-本年累计已预缴个税)
|
||||
// rzSalaryDetail.setTaxPayable(rzSalaryDetail.getTaxableIncome().multiply(rzSalaryDetail.getTaxRate()).setScale(2, BigDecimal.ROUND_HALF_UP).subtract(rzSalaryDetail.getSlowDownTheDeduction()).subtract(detail.getAggregatePersonalIncomeTax()));
|
||||
// if (rzSalaryDetail.getTaxPayable().doubleValue() <= 0) {
|
||||
// rzSalaryDetail.setTaxPayable(new BigDecimal("0.00"));
|
||||
// }
|
||||
//// rzSalaryDetail.setTaxableIncome(rzSalaryDetail.getTotalWages().subtract(rzSalaryDetail.getKjAmount()));
|
||||
//
|
||||
// } else {
|
||||
// // 应纳税所得额
|
||||
// rzSalaryDetail.setTaxableIncome(DataUtils.DEFAULT_VALUE);
|
||||
// rzSalaryDetail.setTaxPayable(DataUtils.DEFAULT_VALUE);
|
||||
// }
|
||||
|
||||
rzSalaryDetail.setTaxPayable(rzSalaryDetail.getTaxableIncome().multiply(rzSalaryDetail.getTaxRate()).setScale(2, BigDecimal.ROUND_HALF_UP).subtract(rzSalaryDetail.getSlowDownTheDeduction()).subtract(detail.getAggregatePersonalIncomeTax()));
|
||||
if (rzSalaryDetail.getTaxPayable().doubleValue() <= 0) {
|
||||
rzSalaryDetail.setTaxPayable(rzSalaryDetail.getTaxableIncome().multiply(rzSalaryDetail.getTaxRate()).setScale(2, BigDecimal.ROUND_HALF_UP).subtract(rzSalaryDetail.getSlowDownTheDeduction()));
|
||||
if (rzSalaryDetail.getTaxPayable().doubleValue() < 0) {
|
||||
rzSalaryDetail.setTaxPayable(new BigDecimal("0.00"));
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user