甲骨文滞纳金的计算

创建或替换函数GET_ZNJ (
JFJZRQ日期,
YJE人数,人数
ZNJBL,
在varchar2 ZT型,
SJJFRQ日期,
MIAN_ZNJ varchar2,
ZNJ_JMCS数量
)返回数是
V_ZNJ数(14日2);
V_DATE日期;
V_DAYS数量;

开始,V_ZNJ:=0;


,如果ZT型& lt;=' 4 '然后
,,,,V_DATE:=SYSDATE;
,如果结束,
,如果ZT型祝辞=' 5 '然后
,,,,V_DATE:=SJJFRQ;
,如果结束,

,V_DAYS:=trunc (V_DATE)——trunc (JFJZRQ);
,如果MIAN_ZNJ=' 1 '然后——不予减免1
,开始
,,,,V_ZNJ:=当V_DAYS & lt;=0 0
,,,,,,,,,,,,,,,其他NVL(圆(V_DAYS * YJE * ZNJBL, 2), 0)
,,,,,,,,,,,
结束;
结束;ELSIF MIAN_ZNJ=' 0 '然后——全部减免0
,开始
,,,,V_ZNJ:=0;
,
结束;ELSIF MIAN_ZNJ=' 2 ' THEN ——日期减免2
,开始
,,,,V_ZNJ:=当V_DAYS——ZNJ_JMCS & lt;=0 0
,,,,,,,,,,,,,,,其他NVL(圆((V_DAYS - ZNJ_JMCS) * YJE * ZNJBL, 2), 0)
,,,,,,,,,,,
结束;
结束;ELSIF MIAN_ZNJ=' 3 '然后——比例减免3
,开始
,,,,V_ZNJ:=当V_DAYS & lt;=0 0
,,,,,,,,,,,,,,,其他NVL(圆(圆(V_DAYS *,YJE * ZNJBL, 2) * (1 - ZNJ_JMCS), 2), 0)
,,,,,,,,,,,
结束;
结束;ELSIF MIAN_ZNJ=' 4 '然后——定额减免4
,开始
,,,,V_ZNJ:=当V_DAYS & lt;=0 0
,,,,,,,,,,,,,,,其他NVL(圆(V_DAYS * YJE * ZNJBL, 2), 0)——ZNJ_JMCS
,,,,,,,,,,,结束;
,,,,如果V_ZNJ & lt;0然后
,,,,,,,V_ZNJ:=0;
,,,,如果结束,
,
结束;ELSE ,——不予减免
,开始
,,,,V_ZNJ:=当V_DAYS & lt;=0 0
,,,,,,,,,,,,,,,其他NVL(圆(V_DAYS * YJE * ZNJBL, 2), 0)
,,,,,,,,,,,,,
结束;
结束;如果结束,
,——滞纳金大于应缴金额时,滞纳金=应缴金额
,如果V_ZNJ比;YJE然后
,,,,V_ZNJ:=YJE;
,如果结束,
,返回V_ZNJ;
结束GET_ZNJ;

甲骨文滞纳金的计算