create or replace function SF_YF_ZYDJKFSJ ( PZYID00 in number, --住院ID PYPQLPC in varchar2, --处方流水号 PRETYPE in varchar2 default '0' --返回类型 0:YYYYMMDD hh24:mi:ss; 1:YYYYMMDD; 2:hh24:mi:ss ) return varchar2 is --代煎时间 vRETURN varchar2(20); vZLXMID number(8); vSFXMID XT_ZLSFGX.SFXMID%type; vZYDJS0 YF_MZCF00.ZYDJS0%type; vFJFJH0 YF_MZCF00.FJFDJH%type; vDJH000 YF_MZCF00.DJH000%type; -- modification history -- Person Date Comments -- linshu 2022.09.10 create: 获取住院病人中药代煎扣费时间; for YF9-20220805-001 -- --------- ---------- -------------------------------------------------- begin vRETURN := ''; begin select distinct nvl(A.ZYDJS0,0),nvl(A.FJFDJH,0),nvl(DJH000,0) into vZYDJS0,vFJFJH0,vDJH000 from YF_YZYPSQ A WHERE A.Yzid00 = PYPQLPC and A.ZYID00 = PZYID00; -- ypqlpc改为yzid00 lxl 2022.10.21 exception when others then vZYDJS0 := 0; vFJFJH0 := 0; vDJH000 := 0; end; if vZYDJS0 > 0 then begin if PRETYPE = '1' then select to_char(A.CZRQ00) into vRETURN from ZY_FYMX00 A where A.ZYID00 = PZYID00 and A.djh000= vFJFJH0 and rownum=1; elsif PRETYPE = '2' then select to_char(A.CZSJ00) into vRETURN from ZY_FYMX00 A where A.ZYID00 = PZYID00 and A.djh000= vFJFJH0 and rownum=1; else select to_char(A.CZRQ00)||' '||to_char(A.CZSJ00) into vRETURN from ZY_FYMX00 A where A.ZYID00 = PZYID00 and A.djh000= vFJFJH0 and rownum=1; end if; exception when others then begin select to_number(nvl(max(VALUE0),'0')) into vZLXMID FROM XT_XTCS00 where name00='YF_ZYJYFDM'; select SFXMID into vSFXMID from XT_ZLSFGX where ZLXMID = vZLXMID; if PRETYPE = '1' then select to_char(A.CZRQ00) into vRETURN from ZY_FYMX00 A where A.ZYID00 = PZYID00 and A.DJH000 = vDJH000 and XMBH00=vSFXMID and rownum=1; elsif PRETYPE = '2' then select to_char(A.CZSJ00) into vRETURN from ZY_FYMX00 A where A.ZYID00 = PZYID00 and A.DJH000 = vDJH000 and XMBH00=vSFXMID and rownum=1; else select to_char(A.CZRQ00)||' '||to_char(A.CZSJ00) into vRETURN from ZY_FYMX00 A where A.BRID00 = vDJH000 and A.DJH000 = vDJH000 and XMBH00=vSFXMID and rownum=1; end if; exception when others then vRETURN := ''; end; end; end if; return vRETURN; end;