-- Start of DDL Script for Procedure SD_HOSPITAL.SP_SF_CFPSXX_INSERT -- Generated 2016-01-29 11:50:21 from SD_HOSPITAL@dytest CREATE OR REPLACE PROCEDURE sp_sf_cfpsxx_insert ( ad_LSH000 in number, --配送地址流水号 as_GHH000 in char, --挂号号 as_CFLSH0 in char, --处方流水号 as_FLAG00 in char, -- 1-新增(设置代煎费或配送),0-删除(取消煎药费或配送),2-线上支付并补填配送地址(处方已代煎或已配送),3-窗口缴费补填配送地址(处方已配送) as_SFDJ00 in char, --是否代煎 as_DJFS00 in char, --代煎方式 0 瓶装 1 包装 as_SFPS00 in char, --1 配送 0 不配送 ad_CZY000 in number, --操作员 as_SYSMSG out varchar2, as_USEMSG out varchar2, as_SF0000 in varchar2 default '', as_CS0000 in varchar2 default '', as_XQ0000 in varchar2 default '', as_SHRXM0 in varchar2 default '', as_MOBILE in varchar2 default '', as_XXDZ00 in varchar2 default '', as_TEL000 in varchar2 default '', as_YB0000 in varchar2 default '', as_JD0000 in varchar2 default '', as_CFSFLY in char default '0', -- 处方收费来源 0 院内 1 支付宝 2 微信 3 代煎系统 as_SFFSKM in char default 'Y' -- 是否发送康美 Y 发送 N 不发送 ) as ls_count0 number(3); lv_FSBZ00 char(1); R_SF_BRPSDZ BM_BRPSDZ%rowtype; ls_CZRQ00 char(8); ls_CZSJ00 char(8); lv_YPDLBH YF_MZCF00.YPDLBH%type; lv_ZYTS00 YF_MZCF00.ZYTS00%type; lv_DJFS00_OLD SF_CFPSXX.DJFS00%type; lv_YYID00 XT_YYXX00.YYID00%type; lv_CFSRBZ YF_MZCF00.CFSRBZ%type; lv_JDGZ_RESULT varchar2(400); lv_SF_CFPSSYYY XT_XTCS00.VALUE0%TYPE; lv_YFBM_YYID00 XT_YYXX00.YYID00%TYPE; lv_SFPS00_OLD SF_CFPSXX.SFPS00%TYPE; lv_SFDJ00_OLD SF_CFPSXX.SFDJ00%TYPE; lv_SF0000 SF_CFPSXX.SF0000%TYPE; lv_CS0000 SF_CFPSXX.CS0000%TYPE; lv_XQ0000 SF_CFPSXX.XQ0000%TYPE; lv_SHRXM0 SF_CFPSXX.SHRXM0%TYPE; lv_MOBILE SF_CFPSXX.MOBILE%TYPE; lv_TEL000 SF_CFPSXX.TEL000%TYPE; lv_YB0000 SF_CFPSXX.YB0000%TYPE; lv_JD0000 SF_CFPSXX.JD0000%TYPE; lv_SFFSKM SF_CFPSXX.SFFSKM%TYPE; lv_SF_XYZCYCFPSSYYY XT_XTCS00.VALUE0%type; lv_SFGF00 CHAR(1); --增加膏方处方标志 20151113 Fengcx lv_CFSFLY CHAR(1); --处方收费来源:0-院内,1-支付宝,2-微信,3-代煎系统 -- MODIFICATION HISTORY -- Person Date Comments -- linzy 2015.05.18 create by MZSF-20150429-002 -- linzy 2015.06.04 增加配送改代煎,代煎改配送时代煎费的处理 by MZSF-20150604-001 -- linzy 2015.06.19 增加as_CFSFLY,as_SFFSKM 删除时判断是否已配送 -- 院内代煎默认不发送康美由药房进行确认是否发送 by -- linzy 2015.06.25 取药房的所在的分院ID by -- gaoyj 2015.08.27 增加西药配送 -- qks 2015.08.31 增加西成药配送功能,新增参数SF_CFPSYPDLBH控制 by MZSF-20150828-001 -- qks 2015.09.07 西成药处方重复生成 by MZSF-20150828-001 -- daihq 2015.09.22 删除操作增加读取处方大类编号的值 by MZSF-20150923-001 -- daihq 2015.09.25 增加参数控制分院是否启用西成药配送功能 by MZSF-20150928-001 -- Fengcx 2015.11.13 增加处理膏方处方标志的康美配送 YF-20151026-002 Fengcx -- Fengcx 2015.12.02 增加根据过程as_FLAG00入参传值为2,处理线上设置代煎/配送后补填配送地址 -- Fengcx 2016.01.20 处理所有线上设置代煎/配送并支付的处方均不需要审核(移动支付接口中as_CFSFLY统一入参为1) -- Fengcx 2016.01.27 增加窗口缴费并选择了康美配送的处方允许线上补填该处方的康美配送地址,as_FLAG00入参为3 -- --------- ------------ ------------------------------------------------------------------------ begin select to_char(sysdate,'HH24:MI:SS'),to_char(sysdate,'YYYYMMDD') into ls_CZSJ00,ls_CZRQ00 from dual; --获取分院参数地址 select nvl(max(VALUE0),'N') into lv_SF_CFPSSYYY from XT_XTCS00 where NAME00='SF_CFPSSYYY'; --获取药房所在分院 select B.YYID00 into lv_YFBM_YYID00 from YF_MZCF00 A,BM_BMBM00 B where A.YFBMBH=B.BMBH00 and A.CFLSH0=as_CFLSH0; --西药中成药处方配送使用医院。配置医院ID,多个以逗号隔开。 N 不限制 select nvl(trim(max(value0)),'N') into lv_SF_XYZCYCFPSSYYY from xt_xtcs00 where name00='SF_XYZCYCFPSSYYY'; --判断是否配送功能 if instr(','||trim(lv_SF_CFPSSYYY)||',',','||trim(lv_YFBM_YYID00)||',')<=0 and lv_SF_CFPSSYYY<>'N' then as_USEMSG:='配送(代煎)处方发送虚拟药房出错!'; as_SYSMSG:='该分院未启用配送功能!'; rollback; return; end if; --发送标志FSBZ00: 0-未发送,1-发送成功,2-发送失败,3-未发送(支付宝、微信) lv_FSBZ00:='0'; lv_SFFSKM:=as_SFFSKM; lv_CFSFLY:=as_CFSFLY; if as_FLAG00='1' then select nvl(max(FSBZ00),'0') into lv_FSBZ00 from SF_CFPSXX where CFLSH0=as_CFLSH0; if lv_FSBZ00='1' then as_USEMSG:='该处方已配送,不允许修改!'; as_SYSMSG:=sqlerrm; return; end if; --增加处理膏方处方标志的康美配送 YF-20151026-002 Fengcx --修正开单方式(医生开单或护士代录)20151113 Fengcx --处方输入标志CFSRBZ:0医生,2收费处 select ZYTS00,YPDLBH,B.YYID00,DECODE(A.YSGZH0,A.CZY000,'0','2') CFSRBZ,TO_CHAR(NVL(A.SFGF00,'0')) into lv_ZYTS00,lv_YPDLBH,lv_YYID00,lv_CFSRBZ,lv_SFGF00 from YF_MZCF00 A,BM_BMBM00 B where CFLSH0=as_CFLSH0 and A.YFBMBH=B.BMBH00; /* --修正开单方式(医生开单或护士代录)注释掉 select ZYTS00,YPDLBH,B.YYID00,CFSRBZ into lv_ZYTS00,lv_YPDLBH,lv_YYID00,lv_CFSRBZ from YF_MZCF00 A,BM_BMBM00 B where CFLSH0=as_CFLSH0 and A.YFBMBH=B.BMBH00; */ if lv_YPDLBH='2' then --如果是院内的代煎不发送康美等药房审核通过后再发送 if as_CFSFLY='0' and as_SFDJ00='1' then lv_FSBZ00:='3'; lv_SFFSKM:='N'; --lv_ZYTS00:=1; end if; elsif lv_YPDLBH in ('0','1') then --判断分院是否启用西药中成药配送功能 if (lv_SF_XYZCYCFPSSYYY='N') or ((instr(','||trim(lv_SF_XYZCYCFPSSYYY)||',',','||trim(lv_YFBM_YYID00)||',')<=0) and (lv_SF_XYZCYCFPSSYYY<>'N')) then as_USEMSG:='配送(代煎)处方发送虚拟药房出错!'; as_SYSMSG:='该分院未启用西药中成药配送功能!'; rollback; return; end if; end if; if lv_YPDLBH<>'2' and as_SFDJ00='1' then as_USEMSG:='不是中药不能代煎!'; as_SYSMSG:='请确认药品类型再进行代煎操作!'; return; end if; --处理所有膏方处方的发送康美配送标志均默认为'N' YF-20151026-002 Fengcx IF lv_SFGF00='1' THEN lv_SFFSKM:='N'; END IF; --********************************************* --处理所有线上设置代煎/配送并支付的处方均不需要审核 2016.01.20 --处方收费来源CFSFLY:0-院内,1-支付宝,2-微信,3-代煎系统(移动支付接口中as_CFSFLY统一入参为1) --测试库的操作员ad_CZY000:62449-微信;62453-支付宝; --正式库的操作员ad_CZY000:63336-微信;63377-支付宝; IF as_CFSFLY='1' AND ad_CZY000 in (63336,63377) AND lv_FSBZ00<>'1' THEN lv_FSBZ00:='3'; IF ad_CZY000=63336 THEN --微信 lv_CFSFLY:='2'; ELSIF ad_CZY000=63377 THEN ---支付宝 lv_CFSFLY:='1'; END IF; END IF; --********************************************* --if lv_YPDLBH<>'2' then -- as_USEMSG:='操作确认!'; -- as_SYSMSG:='该处方不是中药处方!'; -- rollback; -- return; -- end if; if lv_YPDLBH='2' and as_SFDJ00='1' then lv_JDGZ_RESULT := SF_SF_CFDJGZ(as_CFLSH0); if nvl(lv_JDGZ_RESULT,' ')<>' ' then as_USEMSG:='有药品不符合代煎规则!'; as_SYSMSG:=lv_JDGZ_RESULT; rollback; return; end if; end if; select count(*) into ls_count0 from SF_CFPSXX where CFLSH0=as_CFLSH0; --if ls_count0>0 and lv_YPDLBH='2' then --中药处理,西药不处理 --2015.09.07 西成药也处理 if ls_count0>0 and lv_YPDLBH in ('0','1','2') then if lv_YPDLBH = '2' then select DJFS00,SFPS00,SFDJ00 into lv_DJFS00_OLD,lv_SFPS00_OLD,lv_SFDJ00_OLD from SF_CFPSXX where CFLSH0=as_CFLSH0; --改代煎方式 if lv_DJFS00_OLD<>as_DJFS00 and as_SFDJ00='1' and lv_SFDJ00_OLD='1' then --删除旧的代煎费用 SP_SF_CFSZDJ(as_CFLSH0,'1',ad_CZY000,'N',lv_DJFS00_OLD,'门诊代煎|'||trim(as_CFLSH0),as_SYSMSG,as_USEMSG); --增加新的代煎费用 SP_SF_CFSZDJ(as_CFLSH0,'0',ad_CZY000,'N',as_DJFS00,'门诊代煎|'||trim(as_CFLSH0),as_SYSMSG,as_USEMSG); end if; --配送改为代煎 if lv_SFDJ00_OLD='0' and as_SFDJ00='1' then --增加新的代煎费用 SP_SF_CFSZDJ(as_CFLSH0,'0',ad_CZY000,'N',as_DJFS00,'门诊代煎|'||trim(as_CFLSH0),as_SYSMSG,as_USEMSG); end if; if lv_SFDJ00_OLD='1' and as_SFDJ00='0' then --删除旧的代煎费用 SP_SF_CFSZDJ(as_CFLSH0,'1',ad_CZY000,'N',lv_DJFS00_OLD,'门诊代煎|'||trim(as_CFLSH0),as_SYSMSG,as_USEMSG); end if; end if; if ad_LSH000<>0 then select * into R_SF_BRPSDZ from BM_BRPSDZ where LSH000=ad_LSH000; update SF_CFPSXX set SF0000=R_SF_BRPSDZ.SF0000, CS0000=R_SF_BRPSDZ.CS0000, XQ0000=R_SF_BRPSDZ.XQ0000, SHRXM0=R_SF_BRPSDZ.SHRXM0, JD0000=R_SF_BRPSDZ.JD0000, XXDZ00=R_SF_BRPSDZ.XXDZ00, MOBILE=R_SF_BRPSDZ.MOBILE, TEL000=R_SF_BRPSDZ.TEL000, YB0000=R_SF_BRPSDZ.YB0000, SFDJ00=as_SFDJ00, DJFS00=as_DJFS00, FJ0000='N', NS0000='N', SFPS00=as_SFPS00, ZYTS00=lv_ZYTS00, YPDLBH=lv_YPDLBH, YYID00=lv_YYID00, SHZT00=decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),decode(lv_CFSRBZ,'0',decode(lv_CFSFLY,'1','0','2','0','2'),'2')), --SHZT00=decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),'2'), CZRQ00=ls_CZRQ00, CZSJ00=ls_CZSJ00, CFSFLY=lv_CFSFLY, --CFSFLY=as_CFSFLY, CXBZ00='Z', SJDJSL=decode(lv_YPDLBH,'2',lv_ZYTS00,0), SFFSKM=lv_SFFSKM, CFFSZD=nvl(CFFSZD,'0'), BCLSH0=0, FSBZ00=lv_FSBZ00, SFGF00=lv_SFGF00 where CFLSH0=as_CFLSH0; else update SF_CFPSXX set SF0000=decode(as_SF0000,null,SF0000,as_SF0000), CS0000=decode(as_CS0000,null,CS0000,as_CS0000), XQ0000=decode(as_XQ0000,null,XQ0000,as_XQ0000), SHRXM0=decode(as_SHRXM0,null,SHRXM0,as_SHRXM0), JD0000=decode(as_JD0000,null,JD0000,as_JD0000), XXDZ00=decode(as_XXDZ00,null,XXDZ00,as_XXDZ00), MOBILE=decode(as_MOBILE,null,MOBILE,as_MOBILE), TEL000=decode(as_TEL000,null,TEL000,as_TEL000), YB0000=decode(as_YB0000,null,YB0000,as_YB0000), SFDJ00=as_SFDJ00, DJFS00=as_DJFS00, FJ0000='N', NS0000='N', SFPS00=as_SFPS00, ZYTS00=lv_ZYTS00, YPDLBH=lv_YPDLBH, YYID00=lv_YYID00, SHZT00=decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),decode(lv_CFSRBZ,'0',decode(lv_CFSFLY,'1','0','2','0','2'),'2')), --SHZT00=decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),'2'), CZRQ00=ls_CZRQ00, CZSJ00=ls_CZSJ00, CFSFLY=lv_CFSFLY, --CFSFLY=as_CFSFLY, CXBZ00='Z', SJDJSL=decode(lv_YPDLBH,'2',lv_ZYTS00,0), SFFSKM=lv_SFFSKM, CFFSZD=nvl(CFFSZD,'0'), BCLSH0=0, FSBZ00=lv_FSBZ00, SFGF00=lv_SFGF00 where CFLSH0=as_CFLSH0; end if; else if ad_LSH000<>0 then insert into SF_CFPSXX( PSLSH0, GHH000, CFLSH0, SF0000, CS0000, XQ0000, JD0000, XXDZ00, SHRXM0, MOBILE, TEL000, YB0000, CZRQ00, CZSJ00, CZY000, SFDJ00, SFPS00, DJFS00, ZYTS00, YPDLBH, YYID00, SHZT00, CFSFLY, CXBZ00, SJDJSL, SFFSKM, CFFSZD, BCLSH0,FSBZ00,SFGF00,FJ0000,NS0000) select SQ_SF_CFPSXX_PSLSH0.NextVal,as_GHH000,as_CFLSH0, SF0000, CS0000, XQ0000, JD0000, XXDZ00, SHRXM0, MOBILE, TEL000, YB0000, ls_CZRQ00, ls_CZSJ00,ad_CZY000, as_SFDJ00,decode(as_SFDJ00,'1',decode(as_DJFS00,'0','0','1'),as_SFPS00),as_DJFS00, lv_ZYTS00,lv_YPDLBH,lv_YYID00,decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),decode(lv_CFSRBZ,'0',decode(lv_CFSFLY,'1','0','2','0','2'),'2')), lv_CFSFLY,'Z',decode(lv_YPDLBH,'2',lv_ZYTS00,0),lv_SFFSKM,'0',0,lv_FSBZ00,lv_SFGF00,'N','N' from BM_BRPSDZ where LSH000=ad_LSH000; --原SHZT00为:decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),'2') --更改为:decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),decode(lv_CFSRBZ,'0',decode(lv_CFSFLY,'1','0','2','0','2'),'2')) else insert into SF_CFPSXX( PSLSH0, GHH000, CFLSH0, CZRQ00, CZSJ00, CZY000, SFDJ00, DJFS00, SFPS00, ZYTS00, YPDLBH, YYID00, SHZT00, SF0000, CS0000, XQ0000, JD0000, XXDZ00, SHRXM0, MOBILE, TEL000, YB0000, CFSFLY, CXBZ00, SJDJSL, SFFSKM,CFFSZD, BCLSH0,FSBZ00,SFGF00,FJ0000,NS0000) values(SQ_SF_CFPSXX_PSLSH0.NextVal,as_GHH000,as_CFLSH0, ls_CZRQ00, ls_CZSJ00,ad_CZY000, as_SFDJ00, as_DJFS00, as_SFPS00, lv_ZYTS00, lv_YPDLBH, lv_YYID00,decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),decode(lv_CFSRBZ,'0',decode(lv_CFSFLY,'1','0','2','0','2'),'2')), as_SF0000,as_CS0000,as_XQ0000,as_JD0000,as_XXDZ00,as_SHRXM0,as_MOBILE,as_TEL000,as_YB0000, lv_CFSFLY,'Z',decode(lv_YPDLBH,'2',lv_ZYTS00,0),lv_SFFSKM,'0',0,lv_FSBZ00,lv_SFGF00,'N','N'); --原SHZT00为:decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),'2') --更改为:decode(lv_YPDLBH,'2',decode(lv_CFSRBZ,'0',decode(lv_SFGF00,'1','2','0'),'2'),decode(lv_CFSRBZ,'0',decode(lv_CFSFLY,'1','0','2','0','2'),'2')) end if; if lv_YPDLBH='2' and as_SFDJ00='1' then SP_SF_CFSZDJ(as_CFLSH0,'0',ad_CZY000,'N',as_DJFS00,'门诊代煎|'||trim(as_CFLSH0),as_SYSMSG,as_USEMSG); if nvl(as_USEMSG,' ')<>' ' then rollback; return; end if; end if; end if; elsif as_FLAG00='0' then select count(1) into ls_count0 from SF_CFPSXX where CFLSH0=as_CFLSH0 and FSBZ00='1'; if ls_count0>0 then as_USEMSG:='设置处方出错!'; as_SYSMSG:='该处方已配送,不允许修改!'; rollback; return; end if; select YPDLBH into lv_YPDLBH from YF_MZCF00 A where CFLSH0=as_CFLSH0; --移动支付与院内判断条件进行区分 方便移动支付进行代煎与配送进行切换 by linzy 2015.06.11 if nvl(as_CFSFLY,'0')='0' or nvl(as_CFSFLY,'0')='3' then select count(1) into ls_count0 from SF_CFPSXX where CFLSH0=as_CFLSH0 and FSBZ00 in ('0','2','3') and SFDJ00=as_SFDJ00 and SFPS00=as_SFPS00; else select count(1) into ls_count0 from SF_CFPSXX where CFLSH0=as_CFLSH0 and FSBZ00 in ('0','2','3'); end if; if lv_YPDLBH='2' then if ls_count0>0 then SP_SF_CFSZDJ(as_CFLSH0,'1',ad_CZY000,'N',as_DJFS00,'门诊代煎|'||trim(as_CFLSH0),as_SYSMSG,as_USEMSG); if nvl(as_USEMSG,' ')<>' ' then rollback; return; end if; delete from SF_CFPSXX where CFLSH0=as_CFLSH0; end if; else if ls_count0>0 then delete from SF_CFPSXX where CFLSH0=as_CFLSH0; else as_USEMSG:='没有对应处方流水号的配送信息,删除失败!'; as_SYSMSG:='请核对输入的处方流水号是否正确!'; return; end if; end if; ---增加根据过程as_FLAG00入参传值为2,处理线上设置代煎/配送后补填配送地址 2015.12.02 elsif as_FLAG00='2' then select count(1) into ls_count0 from SF_CFPSXX where CFLSH0=as_CFLSH0 and FSBZ00 in ('0','2','3') and CXBZ00='Z'; if ls_count0=0 then as_USEMSG:='该处方:'||as_CFLSH0||' 未设置代煎或配送,不允许补填配送地址!'; as_SYSMSG:=sqlerrm; rollback; return; end if; select nvl(max(FSBZ00),'0') into lv_FSBZ00 from SF_CFPSXX where CFLSH0=as_CFLSH0 and CXBZ00='Z'; if lv_FSBZ00='1' then as_USEMSG:='该处方:'||as_CFLSH0||' 康美配送已发送成功,不允许补填配送地址!'; as_SYSMSG:=sqlerrm; rollback; return; end if; --判断配送地址是否为空 if as_SF0000='' then as_USEMSG:='该处方配送地址入参为空,不允许补填配送地址!'; as_SYSMSG:=sqlerrm; rollback; return; end if; if lv_SFFSKM='N' then lv_SFFSKM:='Y'; end if; --********************************************* --处理所有线上设置代煎/配送并支付的处方均不需要审核 2016.01.20 --处方收费来源CFSFLY:0-院内,1-支付宝,2-微信,3-代煎系统(移动支付接口中as_CFSFLY统一入参为1) --测试库的操作员ad_CZY000:62449-微信;62453-支付宝; --正式库的操作员ad_CZY000:63336-微信;63377-支付宝; IF as_CFSFLY='1' AND ad_CZY000 in (63336,63377) AND lv_FSBZ00<>'1' THEN lv_FSBZ00:='3'; IF ad_CZY000=63336 THEN --微信 lv_CFSFLY:='2'; ELSIF ad_CZY000=63377 THEN ---支付宝 lv_CFSFLY:='1'; END IF; END IF; --********************************************* --处方审核状态: 0 不需审核,1审核通过,2未审核,3审核不通过 if ad_LSH000<>0 then select * into R_SF_BRPSDZ from BM_BRPSDZ where LSH000=ad_LSH000; update SF_CFPSXX set SF0000=R_SF_BRPSDZ.SF0000, CS0000=R_SF_BRPSDZ.CS0000, XQ0000=R_SF_BRPSDZ.XQ0000, SHRXM0=R_SF_BRPSDZ.SHRXM0, JD0000=R_SF_BRPSDZ.JD0000, XXDZ00=R_SF_BRPSDZ.XXDZ00, MOBILE=R_SF_BRPSDZ.MOBILE, TEL000=R_SF_BRPSDZ.TEL000, YB0000=R_SF_BRPSDZ.YB0000, SHZT00=decode(SHZT00,'1','1',decode(lv_CFSFLY,'1','0','2','0','2')), SFPS00=as_SFPS00, CZRQ00=ls_CZRQ00, CZSJ00=ls_CZSJ00, CZY000=ad_CZY000, CFSFLY=lv_CFSFLY, SFFSKM=lv_SFFSKM, CFFSZD=nvl(CFFSZD,'0'), BCLSH0=0, FSBZ00=lv_FSBZ00 where CFLSH0=as_CFLSH0 and CXBZ00='Z' and FSBZ00<>'1'; else update SF_CFPSXX set SF0000=decode(as_SF0000,null,SF0000,as_SF0000), CS0000=decode(as_CS0000,null,CS0000,as_CS0000), XQ0000=decode(as_XQ0000,null,XQ0000,as_XQ0000), SHRXM0=decode(as_SHRXM0,null,SHRXM0,as_SHRXM0), JD0000=decode(as_JD0000,null,JD0000,as_JD0000), XXDZ00=decode(as_XXDZ00,null,XXDZ00,as_XXDZ00), MOBILE=decode(as_MOBILE,null,MOBILE,as_MOBILE), TEL000=decode(as_TEL000,null,TEL000,as_TEL000), YB0000=decode(as_YB0000,null,YB0000,as_YB0000), SHZT00=decode(SHZT00,'1','1',decode(lv_CFSFLY,'1','0','2','0','2')), SFPS00=as_SFPS00, CZRQ00=ls_CZRQ00, CZSJ00=ls_CZSJ00, CZY000=ad_CZY000, CFSFLY=lv_CFSFLY, SFFSKM=lv_SFFSKM, CFFSZD=nvl(CFFSZD,'0'), BCLSH0=0, FSBZ00=lv_FSBZ00 where CFLSH0=as_CFLSH0 and CXBZ00='Z' and FSBZ00<>'1'; end if; --增加窗口缴费并选择了康美配送的处方允许线上补填该处方的康美配送地址,as_FLAG00入参为3 2016.01.27 elsif as_FLAG00='3' then select count(1) into ls_count0 from SF_CFPSXX where CFLSH0=as_CFLSH0 and FSBZ00 in ('0','2','3') and CXBZ00='Z' and SFPS00='1'; if ls_count0=0 then as_USEMSG:='该处方:'||as_CFLSH0||' 未设置代煎或配送,不允许补填配送地址!'; as_SYSMSG:=sqlerrm; rollback; return; end if; select nvl(max(FSBZ00),'0') into lv_FSBZ00 from SF_CFPSXX where CFLSH0=as_CFLSH0 and CXBZ00='Z' and SFPS00='1'; if lv_FSBZ00='1' then as_USEMSG:='该处方:'||as_CFLSH0||' 康美配送已发送成功,不允许补填配送地址!'; as_SYSMSG:=sqlerrm; rollback; return; end if; --判断配送地址是否为空 if as_SF0000='' then as_USEMSG:='该处方配送地址入参为空,不允许补填配送地址!'; as_SYSMSG:=sqlerrm; rollback; return; end if; if lv_SFFSKM='N' then lv_SFFSKM:='Y'; end if; /* --********************************************* --处理所有线上设置代煎/配送并支付的处方均不需要审核 2016.01.20 --处方收费来源CFSFLY:0-院内,1-支付宝,2-微信,3-代煎系统(移动支付接口中as_CFSFLY统一入参为1) --测试库的操作员ad_CZY000:62449-微信;62453-支付宝; --正式库的操作员ad_CZY000:63336-微信;63377-支付宝; IF as_CFSFLY='1' AND ad_CZY000 in (63336,63377) AND lv_FSBZ00<>'1' THEN lv_FSBZ00:='3'; IF ad_CZY000=63336 THEN --微信 lv_CFSFLY:='2'; ELSIF ad_CZY000=63377 THEN ---支付宝 lv_CFSFLY:='1'; END IF; END IF; */ --********************************************* --处方审核状态: 0 不需审核,1审核通过,2未审核,3审核不通过 if ad_LSH000<>0 then select * into R_SF_BRPSDZ from BM_BRPSDZ where LSH000=ad_LSH000; update SF_CFPSXX set SF0000=R_SF_BRPSDZ.SF0000, CS0000=R_SF_BRPSDZ.CS0000, XQ0000=R_SF_BRPSDZ.XQ0000, SHRXM0=R_SF_BRPSDZ.SHRXM0, JD0000=R_SF_BRPSDZ.JD0000, XXDZ00=R_SF_BRPSDZ.XXDZ00, MOBILE=R_SF_BRPSDZ.MOBILE, TEL000=R_SF_BRPSDZ.TEL000, YB0000=R_SF_BRPSDZ.YB0000, SHZT00=decode(SHZT00,'1','1',decode(lv_CFSFLY,'1','0','2','0','2')), --SFPS00=as_SFPS00, CZRQ00=ls_CZRQ00, CZSJ00=ls_CZSJ00, CZY000=ad_CZY000, CFSFLY=lv_CFSFLY, SFFSKM=lv_SFFSKM, CFFSZD=nvl(CFFSZD,'0'), BCLSH0=0, FSBZ00=lv_FSBZ00 where CFLSH0=as_CFLSH0 and CXBZ00='Z' and FSBZ00<>'1'; else update SF_CFPSXX set SF0000=decode(as_SF0000,null,SF0000,as_SF0000), CS0000=decode(as_CS0000,null,CS0000,as_CS0000), XQ0000=decode(as_XQ0000,null,XQ0000,as_XQ0000), SHRXM0=decode(as_SHRXM0,null,SHRXM0,as_SHRXM0), JD0000=decode(as_JD0000,null,JD0000,as_JD0000), XXDZ00=decode(as_XXDZ00,null,XXDZ00,as_XXDZ00), MOBILE=decode(as_MOBILE,null,MOBILE,as_MOBILE), TEL000=decode(as_TEL000,null,TEL000,as_TEL000), YB0000=decode(as_YB0000,null,YB0000,as_YB0000), SHZT00=decode(SHZT00,'1','1',decode(lv_CFSFLY,'1','0','2','0','2')), --SFPS00=as_SFPS00, CZRQ00=ls_CZRQ00, CZSJ00=ls_CZSJ00, CZY000=ad_CZY000, CFSFLY=lv_CFSFLY, SFFSKM=lv_SFFSKM, CFFSZD=nvl(CFFSZD,'0'), BCLSH0=0, FSBZ00=lv_FSBZ00 where CFLSH0=as_CFLSH0 and CXBZ00='Z' and FSBZ00<>'1'; end if; end if; exception when others then as_USEMSG:='设置处方配送出现异常!'; as_SYSMSG:=sqlerrm; return; end; / -- End of DDL Script for Procedure SD_HOSPITAL.SP_SF_CFPSXX_INSERT