CREATE OR REPLACE FUNCTION SF_BQ_YXQF00 --返回病人的允许欠费金额 ( PZYID00 IN NUMBER, --住院流水号 PBRID00 IN NUMBER --病人ID ) RETURN NUMBER IS COUNTER NUMBER(3); VBRID00 BM_BRXXB0.BRID00%TYPE; VJFLBID BM_BRJFLB.JFLBID%TYPE; VYBYXQF ZY_BRZHXX.WJSJE0%TYPE;--医保允许欠费金额 VWJSJE0 ZY_BRZHXX.WJSJE0%TYPE;--未结算金额 VZYE000 ZY_BRZHXX.ZYE000%TYPE;--总余额 VYKZYE0 ZY_BRZHXX.YKZYE0%TYPE;--预扣后总余额 VTYJE00 ZY_BRZHXX.TYJE00%TYPE;--停用金额 VYXQFJE ZY_BRZHXX.YXQFJE%TYPE;--允许欠费金额 VYBZHYE ZY_BRZHXX.YBZHYE%TYPE;--医保账户余额 VYBYJS0 ZY_BRZHXX.YBYJS0%TYPE;--医保预结算金额 VYBYZF0 ZY_BRZHXX.YBYZF0%TYPE;--医保预支付金额 BEGIN IF PBRID00>0 THEN VBRID00:=PBRID00; ELSE SELECT BRID00 INTO VBRID00 FROM ZY_BRXXB0 WHERE ZYID00=PZYID00; END IF; BEGIN SELECT JFLBID INTO VJFLBID FROM BM_BRJFLB WHERE SYBZ00='1' and SFYX00='Y'; EXCEPTION WHEN OTHERS THEN RETURN 0; END; --重新计算担保金额,担保可能过期,反映到YXQFJE字段 BEGIN SELECT NVL(SUM(DBJE00),0) INTO VYXQFJE FROM ZY_BRDB00 WHERE BRID00=VBRID00 and JFLBID=VJFLBID and SFYX00='Y' and ZYID00=PZYID00 and NVL(DBJSRQ,TO_CHAR(SYSDATE,'YYYYMMDD'))||NVL(DBJSSJ,TO_CHAR(SYSDATE,'HH24:MI:SS'))>=TO_CHAR(SYSDATE,'YYYYMMDD')||TO_CHAR(SYSDATE,'HH24:MI:SS'); EXCEPTION WHEN OTHERS THEN VYXQFJE:=0; END; IF VYXQFJE<0 THEN VYXQFJE:=0; END IF; RETURN VYXQFJE; EXCEPTION WHEN OTHERS THEN RETURN 0; END SF_BQ_YXQF00;