CREATE OR REPLACE FUNCTION SF_YJ_YWCX_CXDJH ( Pyjdjh0 in number , --医技单据号 Psfcxfy in number , --是否直接退费 0:否,1:是 Perrmsg out varchar2 , --错误信息 Pczy000 in number , --操作员 Pczyks0 in number , --操作员科室 Pcxsl00 in number default null --冲销数量 ) -- MODIFICATION HISTORY -- Person Date Comments -- lintj 2013.07.20 写YSZID0 -- lintj 2012.08.08 modify -- yangy 2013.03.30 冲销时负的yj_yw0000表要写入kdbq00 -- zhangwz 2013.08.07 冲销时负的yj_yw0000表要写入DQKS00 -- qks 2013.08.21 增加高值耗材冲销计价 -- qks 2013.09.12 SP_YJ_GZHCJJ->SP_KS_GZHCJJ -- zhangwz 2014.06.10 YJ_YW0000表增加YYID01数据,冲销的时候也要处理这个数据 -- qks 2014.08.25 写YYID00值 -- qks 2017.06.25 YJ_YW0000.XMZK00,TCID00,TCNWBZ三个字段值写入; for YJ9-20170214-001 -- qks 2017.06.28 当参数SF_SFYXWJSFYZKCL=Y,如果YJ_YWJJ00.JMJE00有值,退费时要减去这个金额后再计算出新单价; for MZSF9-20170627-004 -- qks 2017.07.13 处理当Pcxsl00入参值为空值,退费会报错问题; for YJ9-20170713-001 -- qks 2018.06.05 整单冲销时需要考虑子项目已进行部分退费申请; for SSMZ9-20180529-001 -- qks 2018.06.06 当总单退费申请时(实际已分几个子单完成退费申请),不产生为0的记录; for SSMZ9-20180606-002 -- qks 2018.06.11 修正写入YJ_YWJJ00表数据错误问题,还原处理; for SSMZ9-20180606-002 -- qks 2018.06.28 取最大ZY_BRXXB0.ZYID00值,即MAX(ZYID00),取消入院病人不参与判断; for YJ9-20180628-001 -- jlg 2019.04.30 调用SP_YJ_ZLDCCF_TF0000时增加入参Pczyks0 YJ9-20190429-001 -- liwm 2019.06.23 老年旧医技项目退费异常问题 YJ9-20190623-001 -- qks 2019.08.08 负单也需要写入YJ_YWJJ00.CKMXID值,解决:当参数YJ_XMCXZJTF启用,耗材的收费项目退费后,对应的耗材科室库存没有退还问题。for KCWZ9-20190808-003 -- linzetao 2020.04.22 优化医技单项目收费次数为0的提示信息 YJ9-20200417-001 -- linzetao 2020.06.01 处理医技单分次退费时带出的药品被多次退费的问题,修正为医技单全部退完后才会对带出的药品进行退费 YJ9-20200527-001 -- linzetao 2021.10.10 处理医技单子单部分退费后无法对剩余部分进行整单退费问题 YJ9-20210905-001 -- linzetao 2021.11.05 处理公费病人退费问题 YJ9-20211105-001 -- dongxb 2022.05.09 负单插入业务开始日期,业务结束日期 for ZYHS11-20220425-002 -- jlg 2023.03.27 增加对于XT_ZLSFGX.SFCS00=0的零收费项目的退费处理 YJ9-20230315-001 -- chenHeyi 2023.04.06 当Pcxsl00为null时,冲销处方单判断条件YW_ROW.CXSL00+Pcxsl00 >= YW_ROW.SL0000无效,调整此处为YW_ROW.CXSL00+nvl(Pcxsl00,YW_ROW.SL0000) >= YW_ROW.SL0000 YJ9-20230330-002 return number --1:成功 ,0:失败 as YW_ROW YJ_YW0000%rowtype; JJ_ROW YJ_YWJJ00%rowtype; MX_ROW YJ_YWMX00%rowtype; Ecustom exception; Verrmsg char(255); --错误描述 Vyjdjh0 number; VYWMXID number; VYWJJID number; Vdjh000 number; --收费单据号 LS_CZYXM0 BM_YGBM00.ZWXM00%type; --操作员姓名 Vcounter number; LS_CXBZ00 char; --冲销标志 VJZDH00 number; --结帐单号 Vparams varchar2(500); LS_NODATA char(255); LS_ZWXM00 BM_YGBM00.ZWXM00%type; ld_fbbh00 BM_BRFBB0.FBBH00%type; ld_jflbid BM_BRJFLB.JFLBID%type; Vzldccf YJ_YW0000.ZLDCCF%type; Vcflsh2 YF_MZCF00.CFLSH0%type; ls_FSJMJE char(1); --是否向医保发送减免金额 Vmxid00 SF_FYMX00.MXID00%type; Vzxcgbz number; Vtsxx00 varchar2(200); Vxxxx00 varchar2(200); Vsfqyzk number(1); --参数SF_SFYXWJSFYZKCL:是否启用折扣处理 VCBID00 YJ_YWJJ00.ID0000%type; ldCXSL00 YJ_YWJJ00.CXSL00%type; begin Vparams:='参数:Pyjdjh0='||Pyjdjh0||',Psfcxfy='||Psfcxfy||',Perrmsg OUT,Pczy000='||Pczy000||',Pczyks0='||Pczyks0; select ZWXM00 into LS_ZWXM00 from BM_YGBM00 where YGBH00=Pczy000; select * into YW_ROW from YJ_YW0000 where YJDJH0=Pyjdjh0; select count(1) into Vsfqyzk from XT_XTCS00 where NAME00='SF_SFYXWJSFYZKCL' and value0='Y'; if nvl(YW_ROW.CXSL00,0)+nvl(Pcxsl00,YW_ROW.SL0000)>YW_ROW.SL0000 then Perrmsg:='本次冲消数量+已冲消数量不能超过原数量,请刷新后再试!'; return 0; end if; if YW_ROW.XMZT00='6' then Perrmsg:='该项目已经作废*'; return 0; elsif YW_ROW.XMZT00='7' then Perrmsg:='该项目已经退费*'; return 0; end if; if YW_ROW.MZZYBZ='1' then select max(ZYID00) into Vcounter from ZY_BRXXB0 where ZYH000=YW_ROW.ZYHGHH and substrb(BRZT00,1,1)<>'9'; if YW_ROW.ZYGHID<>Vcounter then Perrmsg:='不能冲销病人上次住院的诊疗项目*'; return 0; end if; end if; --新的YJDJH0 select SQ_YJ_YW0000_YJDJH0.NEXTVAL into Vyjdjh0 from DUAL; if YW_ROW.ZLDCCF is not null and YW_ROW.CXSL00+nvl(Pcxsl00,YW_ROW.SL0000) >= YW_ROW.SL0000 and YW_ROW.FJDJBZ <> '7' then --冲销处方单 Vzldccf :=SF_YJ_ZLDCYP(YW_ROW.ZLXMID,YW_ROW.ZYGHID,YW_ROW.MZZYBZ,YW_ROW.YJKSBH,YW_ROW.KDYS00,YW_ROW.SL0000,YW_ROW.ZLDCCF,4,YW_ROW.SL0000); end if; --冲销YJ_YW0000 insert into YJ_YW0000 (YJDJH0, YJFZH0, YJKSBH, BRID00, ZYGHID, BRXM00, YEXM00, ZLXMJC, KDYS00, KDKSBH, KDRQ00, KDSJ00, LRXM00, JZBZ00, FBZXBZ, BWMC00, APRXM0, APRQ00, APSJ00, ZXR000, ZXRXM0, ZXRQ00, ZXSJ00, JGLR00, ZDMC00, JGBGRQ, JGBGYS, BGYSXM, XMZT00, MZZYBZ, CXDJH0, BZ0000, XB0000, CSRQ00, ZDID00, ZLXMID, SL0000, ZXSL00, DW0000, YZCFID, YPNM00, DCBZ00, ZYHGHH, ZJE000, TQPC00, YJLRBZ, ZLDCCF, BH0000, KDYSXM, YSSZKS, FJDJBZ, KDBQ00, DQKS00, YSZID0, YYID01, YYID00, XMZK00, TCID00, TCNWBZ, YWKSRQ, YWJSRQ) values (Vyjdjh0, YW_ROW.YJFZH0, YW_ROW.YJKSBH, YW_ROW.BRID00, YW_ROW.ZYGHID, YW_ROW.BRXM00, YW_ROW.YEXM00, YW_ROW.ZLXMJC, YW_ROW.KDYS00, YW_ROW.KDKSBH, to_char(sysdate,'YYYYMMDD'),to_char(sysdate,'HH24:MI:SS'), LS_ZWXM00, YW_ROW.JZBZ00, YW_ROW.FBZXBZ, YW_ROW.BWMC00, YW_ROW.APRXM0, YW_ROW.APRQ00, YW_ROW.APSJ00, YW_ROW.ZXR000, YW_ROW.ZXRXM0, YW_ROW.ZXRQ00, YW_ROW.ZXSJ00, YW_ROW.JGLR00, YW_ROW.ZDMC00, YW_ROW.JGBGRQ, YW_ROW.JGBGYS, YW_ROW.BGYSXM, '1', YW_ROW.MZZYBZ, Pyjdjh0, YW_ROW.BZ0000, YW_ROW.XB0000, YW_ROW.CSRQ00, YW_ROW.ZDID00, YW_ROW.ZLXMID, -nvl(Pcxsl00,YW_ROW.SL0000), -nvl(Pcxsl00,YW_ROW.ZXSL00), YW_ROW.DW0000, YW_ROW.YZCFID, YW_ROW.YPNM00, YW_ROW.DCBZ00, YW_ROW.ZYHGHH, -nvl(YW_ROW.ZJE000*Pcxsl00/YW_ROW.SL0000, YW_ROW.ZJE000), YW_ROW.TQPC00, YW_ROW.YJLRBZ, Vzldccf, YW_ROW.BH0000, YW_ROW.KDYSXM, YW_ROW.YSSZKS, YW_ROW.FJDJBZ, YW_ROW.KDBQ00, YW_ROW.DQKS00, YW_ROW.YSZID0, YW_ROW.YYID01, YW_ROW.YYID00, YW_ROW.XMZK00, YW_ROW.TCID00, YW_ROW.TCNWBZ, YW_ROW.YWKSRQ, YW_ROW.YWJSRQ); --执行记录增加负记录 if YW_ROW.ZXRQ00<>null or YW_ROW.ZXSJ00<>null then insert into YJ_YWZXJL(YJDJH0,ZXRQ00,ZXSJ00,ZXCS00,ZXR000) values(Vyjdjh0,YW_ROW.ZXRQ00,YW_ROW.ZXSJ00,-nvl(Pcxsl00, YW_ROW.ZXSL00),YW_ROW.ZXR000); end if; --冲销YJ_YWMX00 insert into YJ_YWMX00 (ID0000,YJDJH0,XMMC00,JGDW00,CKZ000,JGMS00,BZ0000,ZXRXM0,ZXRQ00,ZXSJ00,ZLXMID,SL0000,DW0000) select SQ_YJ_YWMX00_ID0000.NEXTVAL,Vyjdjh0,XMMC00,JGDW00,CKZ000,JGMS00,BZ0000,ZXRXM0,ZXRQ00,ZXSJ00,ZLXMID,nvl(SL0000*Pcxsl00/YW_ROW.SL0000, SL0000),DW0000 from YJ_YWMX00 where YJDJH0=Pyjdjh0 ; --select count(*) into Vcounter from YJ_YWJJ00 where YJDJH0=Pyjdjh0 and SL0000-CXSL00>0 and SFCS00=0; --if Vcounter>0 then -- Perrmsg := '医技单('||Pyjdjh0||')存在收费次数为0的收费项目, 冲销失败'; -- return 0; --end if; --2021.10.10 --insert into YJ_YWJJ00 (ID0000,YJDJH0,YJFZH0,SFXMID,SFXX00,JJJE00,GFJE00,ZFJE00,QZFJE0,SFSX00,YBBZ00, -- JZJE00,CXBZ00,SL0000,SFCS00,GDBZ00,FJFYBZ,ZFBL00,SFLB00,GJBM00,JMJE00,CXID00,CKMXID) -- select SQ_YJ_YWJJ00_ID0000.NEXTVAL,Vyjdjh0,YJFZH0,SFXMID,SFXX00, -- JJJE00-round(Vsfqyzk*nvl(JMJE00,0)*nvl(Pcxsl00/YW_ROW.SL0000,1)/(SL0000*SFCS00),4), -- -GFJE00*nvl(Pcxsl00/YW_ROW.SL0000,1), -- -(ZFJE00-Vsfqyzk*nvl(JMJE00,0))*nvl(Pcxsl00/YW_ROW.SL0000,1), -- -QZFJE0*nvl(Pcxsl00/YW_ROW.SL0000,1), -- SFSX00,YBBZ00, -- -JZJE00*nvl(Pcxsl00/YW_ROW.SL0000,1), -- '-', -- -SL0000*nvl(Pcxsl00/YW_ROW.SL0000,1), -- SFCS00,GDBZ00,FJFYBZ, -- ZFBL00,SFLB00,GJBM00,-JMJE00*nvl(Pcxsl00/YW_ROW.SL0000,1),ID0000,CKMXID -- from YJ_YWJJ00 where YJDJH0=Pyjdjh0 and SL0000-CXSL00>0; --update YJ_YWJJ00 SET CXBZ00='+', CXSL00=nvl(CXSL00,0)+nvl(SL0000*Pcxsl00/YW_ROW.SL0000, SL0000) where YJDJH0=Pyjdjh0; for ywjj in (select * from YJ_YWJJ00 where YJDJH0=Pyjdjh0 and SL0000-CXSL00>0) loop ldCXSL00 := ywjj.SL0000*nvl(Pcxsl00/YW_ROW.SL0000,1); if ldCXSL00 > ywjj.SL0000 - ywjj.CXSL00 then ldCXSL00 := ywjj.SL0000 - ywjj.CXSL00; end if; insert into YJ_YWJJ00(ID0000, YJDJH0, YJFZH0, SFXMID, SFXX00, JJJE00, GFJE00, ZFJE00, QZFJE0, SFSX00, YBBZ00, JZJE00, CXBZ00, SL0000, SFCS00, GDBZ00, FJFYBZ, ZFBL00, SFLB00, GJBM00, JMJE00, CXID00) values(SQ_YJ_YWJJ00_ID0000.nextval, Vyjdjh0, ywjj.YJFZH0, ywjj.SFXMID, ywjj.SFXX00, ywjj.JJJE00-decode(ywjj.SL0000*ywjj.SFCS00,0,0,round(Vsfqyzk*nvl(ywjj.JMJE00,0)*nvl(Pcxsl00/YW_ROW.SL0000,1)/(ywjj.SL0000*ywjj.SFCS00),4)), -ywjj.GFJE00*((ldCXSL00)/ywjj.SL0000), -(ywjj.ZFJE00*((ldCXSL00)/ywjj.SL0000)-Vsfqyzk*nvl(ywjj.JMJE00,0)), -ywjj.QZFJE0*((ldCXSL00)/ywjj.SL0000), ywjj.SFSX00, ywjj.YBBZ00, -ywjj.JZJE00*((ldCXSL00)/ywjj.SL0000), '-', -ldCXSL00, ywjj.SFCS00, ywjj.GDBZ00, ywjj.FJFYBZ, ywjj.ZFBL00, ywjj.SFLB00, ywjj.GJBM00, -ywjj.JMJE00*((ldCXSL00)/ywjj.SL0000), ywjj.ID0000 ); update YJ_YWJJ00 SET CXBZ00='+', CXSL00=nvl(CXSL00,0)+nvl(ldCXSL00, SL0000) where YJDJH0=Pyjdjh0 and ID0000=ywjj.ID0000; end loop; --2018.06.05 整单冲销时需要考虑子项目已进行部分退费申请 --insert into YJ_YWJJ00 (ID0000,YJDJH0,YJFZH0,SFXMID,SFXX00,JJJE00,GFJE00,ZFJE00,QZFJE0,SFSX00,YBBZ00, -- JZJE00,CXBZ00,SL0000,SFCS00,GDBZ00,FJFYBZ,ZFBL00,SFLB00,GJBM00,JMJE00,CXID00) -- select SQ_YJ_YWJJ00_ID0000.NEXTVAL,Vyjdjh0,YJFZH0,SFXMID,SFXX00,JJJE00-round(Vsfqyzk*nvl(JMJE00,0)*nvl(Pcxsl00/YW_ROW.SL0000,1)/(SL0000*SFCS00),4),-GFJE00*((SL0000-CXSL00)/SL0000)*nvl(Pcxsl00/YW_ROW.SL0000,1), -- -(ZFJE00*((SL0000-CXSL00)/SL0000)-Vsfqyzk*nvl(JMJE00,0))*nvl(Pcxsl00/YW_ROW.SL0000,1),-QZFJE0*((SL0000-CXSL00)/SL0000)*nvl(Pcxsl00/YW_ROW.SL0000,1),SFSX00,YBBZ00, -- -JZJE00*((SL0000-CXSL00)/SL0000)*nvl(Pcxsl00/YW_ROW.SL0000,1),'-',-(SL0000-CXSL00)*nvl(Pcxsl00/YW_ROW.SL0000,1),SFCS00,GDBZ00,FJFYBZ, -- ZFBL00,SFLB00,GJBM00,-JMJE00*((SL0000-CXSL00)/SL0000)*nvl(Pcxsl00/YW_ROW.SL0000,1),ID0000 -- from YJ_YWJJ00 where YJDJH0=Pyjdjh0 and SL0000-CXSL00>0; --update YJ_YWJJ00 SET CXBZ00='+', CXSL00=nvl(CXSL00,0)+nvl((SL0000-CXSL00)*Pcxsl00/YW_ROW.SL0000, SL0000) where YJDJH0=Pyjdjh0; select nvl(max(ID0000),0) into VCBID00 from YJ_YWJJ00 where YJDJH0=Pyjdjh0 and CXSL00>SL0000; if VCBID00>0 then select '项目:'||substrb(a.XMMC00,1,100)||',退费合计数量'||to_char(b.CXSL00)||' 超过原数量'||to_char(b.SL0000)||',请选择子项目进行退费申请!' into Perrmsg from BM_YYSFXM a,YJ_YWJJ00 b where a.SFXMID=b.SFXMID and B.ID0000=VCBID00; return 0; end if; select count(1) into Vcounter from YJ_YWJJ00 where YJDJH0=Vyjdjh0; if Vcounter=0 then Perrmsg := '“'||YW_ROW.ZLXMJC||'”项目已经全部申请退费过,请重新确认!'; return 0; end if; update YJ_YW0000 set CXSL00=nvl(CXSL00,0) + nvl(Pcxsl00, SL0000) where YJDJH0 = Pyjdjh0; update YJ_YW0000 a set ZJE000=(select nvl(round(sum(JJJE00*SL0000*SFCS00),2),0) from YJ_YWJJ00 where YJDJH0=a.YJDJH0) where YJDJH0=Vyjdjh0; --高值耗材 select count(1) into Vcounter from yj_ywjj00 a,WZ_GZHCJJ b where a.YJDJH0=Pyjdjh0 and a.ID0000=b.JJID00 and nvl(b.JZRQ00,'20991231')<>'20991231'; if Vcounter>0 then SP_KS_GZHCJJ( 2, --操作内容 1修改 2增加 3删除 2, --收费退费标志: 1收费 2退费 null, --YJ_YWJJ00.ID0000 Vyjdjh0, --医技单据号 null, --数量 null, --药品入库批次(高值耗材预入库) null, --耗材内码(高值耗材,无预入库单) null, --批次条形码(高值耗材,无预入库单) Pczy000, --操作员编码 Pczyks0, --操作员科室 'N', --是否提交 Vzxcgbz, --执行成功标志 1成功 0失败 Vtsxx00, --执行结果提示信息,成功的情况下也可能有警告信息 Vxxxx00 --执行结果详细信息,成功的情况下也可能有警告信息,一般用来显示参数等指标 ); if Vzxcgbz = 0 then return 0; end if; end if; --return 1;--不冲销费用表,全部由收费处退费 --if YW_ROW.MZZYBZ='0' then return 1; end if; --门诊病人费用,不能直接冲掉 if Psfcxfy=0 then return 1; end if; --不直接冲销退费 if YW_ROW.BRID00=0 then return 1; end if; if YW_ROW.SFDJH0 is null then Perrmsg:='没有相关连的收费单据号'; return 0; end if; if YW_ROW.MZZYBZ<>'1' then--门诊 select count(*) into Vcounter from SF_BRFY00 where DJH000=YW_ROW.SFDJH0; else--住院 select count(*) into Vcounter from ZY_BRFY00 where DJH000=YW_ROW.SFDJH0; end if; if Vcounter <1 then Perrmsg:='病人费用表中没有相关连的收费单据号'; return 0; end if; if YW_ROW.MZZYBZ<>'1' then select JZDH00 into VJZDH00 from SF_BRFY00 where DJH000=YW_ROW.SFDJH0 ; else select JZDH00 into VJZDH00 from ZY_BRFY00 where DJH000=YW_ROW.SFDJH0; end if; if VJZDH00>0 then Perrmsg:='已经结帐'; return 1; end if; if YW_ROW.MZZYBZ<>'1' then --门诊 select count(*) into Vcounter from SF_FYMX00 where DJH000=YW_ROW.SFDJH0 and SFYDJ0='1'; else select count(*) into Vcounter from ZY_FYMX00 where DJH000=YW_ROW.SFDJH0 and SFYDJ0='1'; end if; if Vcounter >0 then Perrmsg:='该项目由收费处收费,不能冲销费用表'; return 1; end if; --操作员姓名 select ZWXM00 into LS_CZYXM0 from BM_YGBM00 where YGBH00=Pczy000; if YW_ROW.MZZYBZ<>'1' then--门诊 select SQ_SF_BRJFB0_DJH000.nextval into Vdjh000 from dual; SP_SF_YJDJ00( Vyjdjh0, --医技单据号(YJDJH1,YJDJH2,YJDJH3...) Vdjh000, --单据号 YW_ROW.YJKSBH, --执行科室 nvl(YW_ROW.ZXR000, pczy000), --执行医生 to_char(sysdate,'YYYYMMDD'), --操作日期 to_char(sysdate,'HH24:MI:SS'), --操作时间 Perrmsg, --存储过程提示的错误信息 Perrmsg, --系统提示的错误信息 '0', --收费员登记 1是 0否 '-' --操作标志 Z记账插入 -冲销插入 ); update YJ_YW0000 set SFDJH0=Vdjh000,XMZT00=yw_row.xmzt00 where YJDJH0=Vyjdjh0; update SF_FYMX00 set ZXRQ00=to_char(sysdate,'YYYYMMDD'),ZXSJ00=to_char(sysdate,'HH24:MI:SS'),ZXYS00=nvl(YW_ROW.ZXR000,pczy000) where DJH000=Vdjh000; else--住院 select SQ_ZY_BRJFB0_DJH000.NEXTVAL into Vdjh000 from dual; SP_ZY_YJDJ00( Vyjdjh0, --医技单据号(YJDJH1,YJDJH2,YJDJH3...) Vdjh000, --单据号 YW_ROW.YJKSBH, --执行科室 nvl(YW_ROW.ZXR000, Pczy000), --执行医生 to_char(sysdate,'YYYYMMDD'), --操作日期 to_char(sysdate,'HH24:MI:SS'), --操作时间 Perrmsg, --存储过程提示的错误信息 Perrmsg, --系统提示的错误信息 '0', --收费员登记 1是 0否 '-' --操作标志 Z记账插入 -冲销插入 ); update YJ_YW0000 set SFDJH0=Vdjh000,XMZT00=yw_row.xmzt00 where YJDJH0=Vyjdjh0; update ZY_FYMX00 set ZXRQ00=TO_CHAR(SYSDATE,'YYYYMMDD'),ZXSJ00=TO_CHAR(SYSDATE,'HH24:MI:SS'),ZXYS00=nvl(YW_ROW.ZXR000, Pczy000) where DJH000=Vdjh000; end if; --自动退诊疗费的同时,也自动退诊疗项目带出的处方 if YW_ROW.ZLDCCF is not null then --累计冲销数量达到项目数量时,才退诊疗项目带出的处方 ---Pcxsl00 if YW_ROW.CXSL00 + Pcxsl00 >= YW_ROW.SL0000 then --nvl(Pcxsl00,YW_ROW.SL0000) select ZLDCCF into Vzldccf from YJ_YW0000 where YJDJH0=Vyjdjh0; for i in 0..1 loop if (instrb(Vzldccf,',')<>0) then if i=0 then Vcflsh2:=substrb(trim(Vzldccf),1,instrb(trim(Vzldccf),',')-1); end if; if i=1 then Vcflsh2:=substrb(trim(Vzldccf),instrb(trim(Vzldccf),',')+1); end if; else if i=0 then Vcflsh2:=trim(Vzldccf); end if; if i=1 then Vcflsh2:='0'; end if; end if; if nvl(Vcflsh2,'0')<>'0' then SP_YJ_ZLDCCF_TF0000(Vcflsh2,YW_ROW.MZZYBZ,Pczy000,Pczyks0); end if; end loop; end if; end if; return 1; exception when Ecustom then raise; when no_data_found then raise; when others then raise; rollback; end;