处理外包计税问题
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.setTaxRate(new BigDecimal("0.20"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE);
|
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) {
|
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 20000L && rzSalaryDetail.getTaxableIncome().doubleValue() <= 50000l) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.3"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.3"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("2000"));
|
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) {
|
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 50000l) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.40"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.40"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("7000"));
|
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("7000"));
|
||||||
// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
||||||
}
|
}
|
||||||
|
rzSalaryDetail.setTaxPayable(rzSalaryDetail.getTaxableIncome().multiply(rzSalaryDetail.getTaxRate()).setScale(2, BigDecimal.ROUND_HALF_UP).subtract(rzSalaryDetail.getSlowDownTheDeduction()));
|
||||||
|
if (rzSalaryDetail.getTaxPayable().doubleValue() < 0) {
|
||||||
// 判断应纳税所得额额度(额度不一样税率不一样)
|
|
||||||
// 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(new BigDecimal("0.00"));
|
rzSalaryDetail.setTaxPayable(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user