CREATE OR REPLACE FUNCTION SF_ZY_HQZFBL_NEW ( Pzyid00 number, --住院id Psfxmid number, --收费项目id Psfyp00 varchar2, --是否药品, Y药品N非药品 Pzfbl00 number, --自付比例 Pzffsbz varchar2, --自费发送标志 Pjzdh00 number default 0 --结账单号 ) -- MODIFICATION HISTORY -- Person Date Comments -- linzetao 2023.02.21 Create 住院获取清单的自付比例 ZYSF9-20230221-003 return number is Vzfbl00 number(3,2); Vmrzfbl number(3,2); Vybzfbl number(5,2); Vjzdh00 ZY_JZB000.JZDH00%type; Vcxjzdh ZY_JZB000.JZDH00%type; Vhjje00 ZY_JZB000.HJJE00%type; Vmxlistsave BM_TYZD00.MC0000%type; begin Vzfbl00:=Pzfbl00; --默认按原自付比例 if nvl(Pzffsbz,'N') = 'Y' then Vzfbl00 := 1; --自费发送时自付比例为100% else Vybzfbl := null; Vjzdh00 := nvl(Pjzdh00,0); if Vjzdh00 > 0 then --取医保结算返回的自付比例 Vmxlistsave := nvl(SF_XT_RETURNINDEXEH(SF_XT_TYZD00('医保新接口参数设置','mxlistsave'),',',2),'N'); if Vmxlistsave is not null and Vmxlistsave = 'Y' then --启用保存医保返回费用明细字典才取医保自付比例 --取消结算取原单结算单号 select max(CXJZDH),max(HJJE00) into Vcxjzdh,Vhjje00 from ZY_JZB000 where JZDH00=Vjzdh00; if nvl(Vhjje00,0) < 0 and nvl(Vcxjzdh,0) > 0 then Vjzdh00 := Vcxjzdh; end if; begin select selfpay_prop into Vybzfbl from ZY_YBSFMX where ZYID00=Pzyid00 and JZDH00=Vjzdh00 and SFXMID=Psfxmid and FLAG00=decode(Psfyp00,'Y','2','0') and decode(BKA001,'Y','N','N','Y','N') = Pzffsbz and rownum=1; exception when others then Vybzfbl := null; end; end if; if Vybzfbl is not null then Vzfbl00 := Vybzfbl; --返回医保自付比例 end if; end if; end if; return Vzfbl00; exception when others then Vzfbl00:=Pzfbl00; return Vzfbl00; end;