/*
*房产税抽取
*创建时间: 2009-11-20
*创建人:李超
*/
create or replace procedure P_CS_FCS(SSSQ_Q_SK number default 20070101,
SSSQ_Z_SK number default 20070201)
as
cursor cur_ysbnsr is
select /*+index(ft_dj_fcdj IDX_FT_DJ_FCDJ_NSBM)*/
a.nsbm, a.nsrsbh, a.FCYZ, a.YNSEHJ,a.fcdjxh,a.NSR_ZGSWJG_DM
from ft_dj_fcdj a
where yxbz = 'Y'
and zxbz = 'N'; --所有应纳税人记录
v_nsbm number(20);
v_nsrsbh number(20);
v_fcyz number(20,2);
v_ynsehj number(20,2);
v_fcdjxh number(20);
v_nsrswjgdm varchar(11);
v_sysl number(20,2); --适用税率
v_sjlx varchar2(5); --数据类型(季度预缴数据:JD;年度合计数据:ND)
s_yjnse number(20,2);
s_pzjmse number(20,2);
s_sjjnse number(20,2);
s_yxz number(20,2);
s_yjnze_lastyear number(20,2);
begin
open cur_ysbnsr;
loop
fetch cur_ysbnsr into v_nsbm,v_nsrsbh,v_fcyz,v_ynsehj,v_fcdjxh,v_nsrswjgdm ;
--exit when cur_ysbnsr%notfound;
--计算指定属期内应纳税总额,批准减免税额,计算余值
select sum(YJNSE) ,sum(PZJMSE) ,
sum(SJJNSE) e,sum(YXZ)
into s_yjnse,s_pzjmse,s_sjjnse,s_yxz
from ft_sb_fcs t
where t.nsrsbh = v_nsrsbh
and t.cqzh=v_fcdjxh
and t.sssq_q_sk > =SSSQ_Q_SK
and t.sssq_z_sk < =SSSQ_Z_SK;
--查找适用税率
select distinct nvl(sysl,0)
into v_sysl
from ft_sb_fcs
where nsrsbh=v_nsrsbh
and cqzh=v_fcdjxh
and yxbz='Y'
and sssq_q_sk>=SSSQ_Q_SK
and sssq_z_sk<=SSSQ_Z_SK;
--查找上半年应纳税总额:判断当前属期所在年度是否有记录,如果有记录,则直接查找原有记录,
--如果没有记录,则计算
select SNYNSE into s_yjnze_lastyear from PG_CQ_FCS t
where SSSQ_Q_SK - t.SSSQ_Q_SK <=1100 --是否是同一年度
and NSRDZXH=v_nsrsbh;
if(s_yjnze_lastyear<0) then
--计算上一年度应缴纳金额
--1.求上一年度时间
--2.计算
end if;
--向表中出入数据
insert into pg_cq_fcs(fcsbxh,
nsrdzxh,
nsr_swjg_dm,
sssq_q_sk,
sssq_z_sk,
fcyz,
jsyz,
sysl,
nynse,
bqyj,
bqjm,
bqsj,
snynse,
sjlx)
values
(
1,
1,
1,
20090901,
20091201,
12.22,
1.22,
0.12,
1111,
22,
11,
22,
33,
22
)
--dbms_output.put_line('postype:'||v_nsbm||',v_fcyz:'||v_ynsehj);
end loop;
close cur_ysbnsr;
dbms_output.put_line('---loop end---');
end;