1 CREATE OR REPLACE TRIGGER trgregisterpregroup
2 BEFORE UPDATE
3 ON tblregisterusers
4 FOR EACH ROW
5
6 DECLARE
7 sort_id varchar2(2000);
8 e_code VARCHAR2(1000);
9 BEGIN
10 IF :NEW.fldleftmoney <> :OLD.fldleftmoney THEN
11 select to_char(systimestamp(3),'YYYYMMDDHH24MISSFF') into sort_id from dual;
12 e_code := NULL;
13 for R in (select a.fldusergroupid,
14 a.fldx,
15 a.fldy,
16 a.fldz,
17 a.fldserviceaid,
18 a.fldservicebid,
19 a.fldservicecid,
20 a.flag
21 from usergroupautoconfig a
22 where a.fldusergroupid = :NEW.fldusergroupid and a.flag=1)
23 loop
24 if :NEW.fldleftmoney > R.fldz then
25 if R.fldservicecid is not null then
26 e_code := PK_INTERFACE.user_pregroup(:NEW.FLDUSERNAME,R.fldservicecid,sysdate,9000,sort_id);
27 end if;
28 elsif (:NEW.fldleftmoney <= R.fldz) and (:NEW.fldleftmoney > R.fldy) then
29 if R.fldservicebid is not null then
30 e_code := PK_INTERFACE.user_pregroup(:NEW.FLDUSERNAME,R.fldservicebid,sysdate,9000,sort_id);
31 end if;
32 else
33 if R.fldserviceaid is not null then
34 e_code := PK_INTERFACE.user_pregroup(:NEW.FLDUSERNAME,R.fldserviceaid,sysdate,9000,sort_id);
35 end if;
36 end if;
37 end loop;
38 end if;
39 if e_code <> pk_common.E00 then
40 PK_PUBLIC.error_log('trgregisterpregroup: ' || :NEW.flduserid || '-' || e_code);
41 end if;
42 EXCEPTION
43 WHEN OTHERS THEN
44 NULL;
45 END trgregisterpregroup;