个人所得税计算函数的编写(plpgsql)

简介: 个人所得税计算函数的编写(plpgsql)

在工资管理软件中,要计算个人所有税。一般是通过公式在后台完成计算,这是多年以前写的代码,后来也有小的修改,哪位这个内容比较熟悉,请忙优化一下。

一、税率表

个人所得税税率表四

级数 平均每月收入 税率(%) 速算扣除数

1 不超过3,000元的部分 3 0

2 超过3,000元至12,000元的部分 10 210

3 超过12,000元至25,000元的部分 20 1410

4 超过25,000元至35,000元的部分 25 2660

5 超过35,000元至55,000元的部分 30 4410

6 超过55,000元至80,000元的部分 35 7160

7 超过80,000元的部分 45 15160

二、代码

CREATE OR REPLACE FUNCTION public.x9_grsds(
  jsze numeric)
    RETURNS numeric
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE PARALLEL UNSAFE
AS $BODY$
-- Description: 计算个税
-- 2011年9月1日起调整后,也就是2012年实行的7级超额累进个人所得税税率表
-- 应纳个人所得税税额= 应纳税所得额× 适用税率- 速算扣除数
-- 扣除标准3500元/月(2011年9月1日起正式执行)(工资、薪金所得适用)
-- 个税免征额3500元  (工资薪金所得适用)
-- 2019年新改 起征点为5000
DECLARE
  jsce decimal(18,2);
    yjse decimal(18,2);
BEGIN
  jsce = $1-5000.00;
  IF jsce <= 0 THEN
    BEGIN
       yjse = 0;
      RETURN yjse;
    END;
    END IF ;
  IF jsce <= 3000 THEN
    BEGIN
       yjse = jsce * 0.03;
      RETURN yjse;
    END;
    END IF ;
  IF jsce <= 12000 THEN
    BEGIN
       yjse = jsce * 0.10-210;
      RETURN yjse;
    END;
  END IF ;
  IF jsce <= 25000 THEN
    BEGIN
       yjse = jsce * 0.20-1410;
      RETURN yjse;
    END;
  END IF ;
  IF jsce <= 35000 THEN
    BEGIN
       yjse = jsce * 0.25-2660;
      RETURN yjse;
    END;
  END IF ;
  IF jsce <= 55000 THEN
    BEGIN
       yjse = jsce * 0.30-4410;
      RETURN yjse;
    END;
  END IF ;
  IF jsce <= 80000 THEN
    BEGIN
       yjse = jsce * 0.35-7160;
      RETURN yjse;
    END;
  END IF ;
  -- 大于80000
  yjse = jsce * 0.45-15160;
  RETURN yjse;
END;
$BODY$;
ALTER FUNCTION public.x9_grsds(numeric)
    OWNER TO postgres;

三、总结

谁有更好的代码,帮忙改一下吧!

相关文章
|
7月前
|
监控 Serverless 测试技术
函数计算的开发
函数计算的开发
40 0
|
11天前
|
存储
中文助记符号生成函数的编写(plpgsql)
中文助记符号生成函数的编写(plpgsql)
|
10月前
成信大ENVI_IDL第一周实验测试:数组的简单运算+详细解析
成信大ENVI_IDL第一周实验测试:数组的简单运算+详细解析
55 0
|
11月前
|
C++
【C++】年月日计算器——操作符重载的应用(含完整代码,简洁)(一)
【C++】年月日计算器——操作符重载的应用(含完整代码,简洁)
|
11月前
|
C++
【C++】年月日计算器——操作符重载的应用(含完整代码,简洁)(二)
【C++】年月日计算器——操作符重载的应用(含完整代码,简洁)
VBA 2000年之后活期存款利息计算
VBA 2000年之后活期存款利息计算
53 0
|
JavaScript 前端开发 Serverless
最简单的用js模拟计算器进行计算(初级)
用js模拟计算器进行计算 今天我们来讲一下怎么使用js来模拟计算器的加减乘除基本运算。代码如下: HTML代码: &lt;h1&gt;计算器&lt;/h1&gt; &lt;input type=&quot;number&quot; name=&quot;&quot; id=&quot;num1&quot;&gt; &lt;br&gt; &lt;input type=&quot;number&quot; name=&quot;&quot; id=&quot;num2&quot;&gt; &lt;br&gt; &lt;button onclick=&quot;func(&#39;+&#39;)&quot;&gt;+&lt;/button&gt; &lt;button onclick=&quot;func(&#39;-&#39;)&quot;&gt;-&lt;/button&gt; &lt;button onclick=&quot;func(&#39;*&#39;)&quot;
|
决策智能
运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍
运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍
运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍
什么是通用SQL函数?
什么是通用SQL函数?
103 0
|
SQL 存储 关系型数据库
MySQL基础(SQL 字符串函数 数值函数 日期函数 流程函数)
1.Mysql下载安装启动 2.图形化界面工具 3.SQL 1.DDL 2.DML 3.DQL 4.DCL 1.管理用户 2.权限控制 4.函数 字符串函数 数值函数 日期函数 流程函数
MySQL基础(SQL 字符串函数 数值函数 日期函数 流程函数)