create or replace function SF_YS_JYCXFYSC_LY( ad_GHID00 in number, ad_YJDJH0 in number, as_Commit in char default 'N', ad_YJKSBH in number default 0 --医技科室 ) return number is LS_LBBH00 BM_ZLZD00.LBBH00%type; ls_BRNL00 number(10,2); LS_ZLXMID BM_ZLZD00.ZLXMID%type; LS_MC0000 BM_TYZD00.MC0000%type; LS_ZJE000 YJ_YW0000.ZJE000%type; pyjdjh0 YJ_YW0000.YJDJH0%type; VYJROW YJ_YW0000%rowtype; LS_BBMC00 BM_BBZD00.BBMC00%type; -- MODIFICATION HISTORY -- Person Date Comments -- dsm 2019.10.23 create for MZYS-20191018-005 -- dsm 2019.10.30 标本是末梢血的不带出采血费 for MZYS-20191030-002 begin select b.LBBH00,SF_YS_CSRQTONL(CSRQ00),(select BBMC00 from BM_BBZD00 where BBID00=b.BBID00) BBMC00 into LS_LBBH00,ls_BRNL00,LS_BBMC00 from YJ_YW0000 a,BM_ZLZD00 b where YJDJH0=ad_YJDJH0 and a.ZLXMID=b.ZLXMID ; if LS_LBBH00<>4 then return 0; elsif instr(LS_BBMC00,'血')=0 or LS_BBMC00 in('末梢血') or LS_BBMC00 is null then return 0; else begin select MC0000 into LS_MC0000 from BM_TYZD00 where ZDMC00='采血费诊疗项目' and YXBZ00='1' and rownum=1; exception when others then LS_MC0000:=' '; end; if ls_BRNL00<7 then select nvl(max(ZLXMID),0) into LS_ZLXMID from BM_ZLZD00 where instr(','||LS_MC0000||',',','||ZLXMID||',')>0 and (nvl(XEJSXM,'0')='2' or nvl(XEJSXM,'0')='0') and rownum=1; else select nvl(max(ZLXMID),0) into LS_ZLXMID from BM_ZLZD00 where instr(','||LS_MC0000||',',','||ZLXMID||',')>0 and (nvl(XEJSXM,'0')='1' or nvl(XEJSXM,'0')='0') and rownum=1; end if; if LS_ZLXMID>0 then select nvl(sum(ZJE000),0) into LS_ZJE000 from YJ_YW0000 where ZYGHID=ad_GHID00 and ZLXMID=LS_ZLXMID and XMZT00 not in('0','6'); if LS_ZJE000>0 then return 0; end if; select SQ_YJ_YW0000_YJDJH0.NEXTVAL into pyjdjh0 from dual where rownum=1; select * into VYJROW from YJ_YW0000 where YJDJH0=ad_YJDJH0; insert into yj_yw0000 (yjdjh0 , yjksbh, mzzybz, zyghid, zlxmid, kdys00, kdksbh, lrxm00, jzbz00, zdid00 , zdmc00, xmzt00, bz0000, sl0000, aprq00, yjfzh0, bbid00,BH0000,mc0000,yjlrbz,brxm00,JCHRBZ) values (pyjdjh0,VYJROW.yjksbh,VYJROW.mzzybz,VYJROW.ZYGHID,LS_ZLXMID,VYJROW.kdys00,VYJROW.kdksbh,VYJROW.LRXM00,VYJROW.jzbz00, null,null,'0' ,'',1, null,pyjdjh0,null,VYJROW.BH0000,VYJROW.mc0000,VYJROW.YJLRBZ,VYJROW.brxm00,VYJROW.JCHRBZ); SP_EXECUTE_SQL('insert into yj_ywmx00 (id0000,yjdjh0,zlxmid)'|| ' select SQ_YJ_YWMX00_ID0000.NEXTVAL,'||to_char(pyjdjh0)||',ZLXMID'|| ' from bm_zlzd00 where zlxmid in ('||LS_ZLXMID||')'); SF_YJ_YWJJ_NOCOMMIT(pyjdjh0,1);--计价 return 1; else return 0; end if; end if; exception when others then return 0; end;