//1 根据税前换是税后进行计算
if(newValue =='PI9701'){//税前
taxPreAmount = expenseAmount;
if(taxType=='PI9601'){//劳务
/** 应纳税额 = 应纳税所得额 * 适用税率 - 速算扣除数
* 应纳税所得额= 合同金额 - 800 (每次收入<= 4000)
* 应纳税所得额= 合同金额 * 20% - 0 (每次收入<= 20000)
* 应纳税所得额= 合同金额 * 30% - 2000 (20000 < 每次收入<= 50000)
* 应纳税所得额= 合同金额 * 40% - 7000 (每次收入 > 50000)
*/
if(expenseAmount < 4000){
taxAmount = (expenseAmount-800)>0?(expenseAmount-800)*taxRate:0;;
}else if(expenseAmount <= 20000){
taxAmount = expenseAmount*0.8*taxRate;
}else if(expenseAmount <= 50000){
taxRate = Number(0.3);
taxAmount = expenseAmount*0.8*taxRate-2000;
}else{
taxRate = Number(0.4);
taxAmount = expenseAmount*0.8*taxRate-7000;
}
}else if(taxType=='PI9602'){//稿酬
/** 应纳税额 = 应纳税所得额 * 20% * 70%
* 应纳税所得额= 合同金额 - 800 (每次收入<= 4000)
* 应纳税所得额= 合同金额 * (1-20%) (每次收入> 4000)
*/
if(expenseAmount < 4000){
taxAmount = (((expenseAmount-800)>0?(expenseAmount-800):0)*0.2)*0.7;
}else{
taxAmount = (expenseAmount*0.8)*0.2*0.7;
}
}
taxEndAmount = expenseAmount - taxAmount;
}else{//税后
taxEndAmount = expenseAmount;
if(taxType=='PI9601'){//劳务
taxRate = Number(0.2);
if(expenseAmount <= 3360){
taxPreAmount = (expenseAmount - taxRate*800)/(1-taxRate);
}else if(expenseAmount <= 16800){
taxPreAmount = expenseAmount/(1-taxRate*(1-taxRate));
}else if(expenseAmount <= 40000){
taxRate = Number(0.3);
taxPreAmount = (expenseAmount-2000)/(1-taxRate*(1-taxRate));
}else{
taxRate = Number(0.4);
taxPreAmount = (expenseAmount-7000)/(1-taxRate*(1-taxRate));
}
}else if(taxType=='PI9602'){//稿酬
if(expenseAmount <= 800){
taxPreAmount = expenseAmount;
}else if(expenseAmount <= 3552){
taxPreAmount = (expenseAmount-800*0.2*0.7)/(1-0.2*0.7);
}else{
taxPreAmount = expenseAmount/(1-0.2*0.7*0.8);
}
}
taxAmount = taxPreAmount - expenseAmount;
}
转载于:https://my.oschina.net/marlon520/blog/1800180