-- Start of DDL Script for Trigger SD_HOSPITAL.TR_YF_ZYCF00_BDEL -- Generated 2021-05-31 16:45:19 from SD_HOSPITAL@ESTAR-HRP -- Drop the old instance of TR_YF_ZYCF00_BDEL DROP TRIGGER sd_hospital.tr_yf_zycf00_bdel / CREATE OR REPLACE TRIGGER sd_hospital.tr_yf_zycf00_bdel BEFORE DELETE ON sd_hospital.yf_zycf00 REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE V_YKKCSL YF_YPKCXX.YKKCSL%TYPE; V_PDXH00 YF_YPKCXX.PDXH00%TYPE; V_SFZRYZ XT_XTCS00.VALUE0%TYPE; V_DLSJGL XT_XTCS00.VALUE0%TYPE; --多零售价管理 V_PCYKZL YF_PCKCMX.YKKCSL%TYPE; --批次预扣总数量 V_DQLSDJ YF_YPKCXX.LSDJ00%TYPE; --当前零售价 V_K2J000 BM_YD0000.K2J000%TYPE; V_JCJE00 YF_YPMXZ0.JCJE00%TYPE; V_SFZBYP BM_YD0000.SFZBYP%TYPE; v_KHHCS0 XT_XTCS00.VALUE0%TYPE; V_ZY0000 YF_YPMXZ0.ZY0000%TYPE; V_errmsg varchar2(255); --错误提示变量 E_custom exception; --错误变量 -- MODIFICATION HISTORY 3.1 -- Person Date Comments -- JETHUA 2003.01.02 增加排序功能:为避免冲销处方因库存不足而无法发药,让负的先发 -- JETHUA 2003.12.08 增加扣除批次库存,病人领药已经预扣过,这里不在扣 -- JETHUA 2003.12.11 零散处方对预扣库存的影响用触发器实现 -- JETHUA 2003.12.22 修改同一处方有多条相同药品无法退药BUG -- JETHUA 2004.02.16 增加参数判断毒麻处方记帐是否转入医嘱药品 -- JETHUA 2004.03.24 增加是否数量预扣 -- JETHUA 2004.03.25 增加药房零售价单独管理处理:记帐时扣除批次预扣库存 -- JETHUA 2004.03.23 数量增加小数位数 -- JETHUA 2004.05.07 置已记账标志后,重新计算总金额 -- JETHUA 2004.05.14 现金病人单独计算零售价 -- JETHUA 2004.06.25 修改无法发存在相同药品的处方的BUG -- JETHUA 2004.07.08 规范错误提示 -- JETHUA 2004.07.09 科室领要记帐更新库存信息表的零售单价;修改科室领药无法退药问题 -- JETHUA 2004.10.10 增加判断是否中标药品 -- JETHUA 2004.10.21 BUG:病区零散处方记账提示数值错误,奖游标'*',改为具体字段 -- JETHUA 2004.11.05 如药品隶属被删除,明确错误提示 -- JETHUA 2004.11.08 作废处方允许修改住院号 -- JETHUA 2005.04.28 考虑到科室领药退药,允许1-》2进行退药 -- JETHUA 2005.08.02 BUG:发药插入明细账,SFZBYP为付值 -- JETHUA 2005.09.29 德化医院要求摘要显示病人姓名 -- dsm 2020.11.20 去掉SPACK_YF_BRXX00 BQ-20201119-001 -- --------- ---------- -------------------------------------------------- begin V_errmsg:=''; --取出是否多零售价管理 JETHUA 2004.03.24 begin SELECT Trim(VALUE0) INTO V_DLSJGL FROM XT_XTCS00 WHERE NAME00='YF_SFDLSJGL'; EXCEPTION WHEN OTHERS THEN V_DLSJGL:='N'; END; --取出客户化参数:0默认;1莆二;2泉二;3省二;4南安;5七院;6铁路医院 JETHUA 2005.09.29 --6铁路;7建阳;8广州大院;9泉三;10福清;11泉州人民;12闽侯县二院;13德化中医院 begin SELECT Trim(VALUE0) INTO v_KHHCS0 FROM XT_XTCS00 WHERE NAME00='YF_ZJKFDDDYGS'; EXCEPTION WHEN OTHERS THEN v_KHHCS0:='0'; END; IF DELETING THEN IF (:OLD.CFZT00='0' AND :OLD.CFZJE0<0) THEN UPDATE yf_zycfmx SET CXBZ00='Z' where cflsh0=:OLD.BCCFH0 ; END IF; IF ((:OLD.CFZT00='1') OR (:OLD.CFZT00='2')) THEN --已经确认的数据被删除 V_errmsg:='该记录已经被确认,不能再删除'; RAISE E_custom; END IF; END IF; EXCEPTION WHEN no_data_found THEN RAISE_APPLICATION_ERROR(-20001,substrb('数据没有找到!*'||SQLERRM||',',1,120)); WHEN E_custom THEN RAISE_APPLICATION_ERROR(-20010,substrb(V_errmsg||'!*',1,120)); WHEN OTHERS THEN --SPACK_YF_BRXX00.PACK_ZYID00:=0; RAISE_APPLICATION_ERROR(-20266,substrb(nvl(SQLERRM, '原因不明出错')||'!*',1,120)); END; / -- End of DDL Script for Trigger SD_HOSPITAL.TR_YF_ZYCF00_BDEL