CREATE OR REPLACE TRIGGER EFT_NOM.cg$BUR_CONTRACTS BEFORE UPDATE ON CONTRACTS FOR EACH ROW DECLARE cg$rec cg$CONTRACTS.cg$row_type; cg$ind cg$CONTRACTS.cg$ind_type; cg$old_rec cg$CONTRACTS.cg$row_type; BEGIN -- Application_logic Pre-Before-Update-row <> -- Application_logic Pre-Before-Update-row << End >> -- Load cg$rec/cg$ind values from new cg$rec.CREATED_BY := :new.CREATED_BY; cg$ind.CREATED_BY := (:new.CREATED_BY IS NULL AND :old.CREATED_BY IS NOT NULL ) OR (:new.CREATED_BY IS NOT NULL AND :old.CREATED_BY IS NULL) OR NOT(:new.CREATED_BY = :old.CREATED_BY) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).CREATED_BY := :old.CREATED_BY; cg$rec.CONT_ID := :new.CONT_ID; cg$ind.CONT_ID := (:new.CONT_ID IS NULL AND :old.CONT_ID IS NOT NULL ) OR (:new.CONT_ID IS NOT NULL AND :old.CONT_ID IS NULL) OR NOT(:new.CONT_ID = :old.CONT_ID) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).CONT_ID := :old.CONT_ID; cg$rec.CONTRACT_NUMBER := :new.CONTRACT_NUMBER; cg$ind.CONTRACT_NUMBER := (:new.CONTRACT_NUMBER IS NULL AND :old.CONTRACT_NUMBER IS NOT NULL ) OR (:new.CONTRACT_NUMBER IS NOT NULL AND :old.CONTRACT_NUMBER IS NULL) OR NOT(:new.CONTRACT_NUMBER = :old.CONTRACT_NUMBER) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).CONTRACT_NUMBER := :old.CONTRACT_NUMBER; cg$rec.OPERATIONS_CONTACT := :new.OPERATIONS_CONTACT; cg$ind.OPERATIONS_CONTACT := (:new.OPERATIONS_CONTACT IS NULL AND :old.OPERATIONS_CONTACT IS NOT NULL ) OR (:new.OPERATIONS_CONTACT IS NOT NULL AND :old.OPERATIONS_CONTACT IS NULL) OR NOT(:new.OPERATIONS_CONTACT = :old.OPERATIONS_CONTACT) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).OPERATIONS_CONTACT := :old.OPERATIONS_CONTACT; cg$rec.BUSINESS_CONTACT := :new.BUSINESS_CONTACT; cg$ind.BUSINESS_CONTACT := (:new.BUSINESS_CONTACT IS NULL AND :old.BUSINESS_CONTACT IS NOT NULL ) OR (:new.BUSINESS_CONTACT IS NOT NULL AND :old.BUSINESS_CONTACT IS NULL) OR NOT(:new.BUSINESS_CONTACT = :old.BUSINESS_CONTACT) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).BUSINESS_CONTACT := :old.BUSINESS_CONTACT; cg$rec.RECEIVE_BEFORE_START := :new.RECEIVE_BEFORE_START; cg$ind.RECEIVE_BEFORE_START := (:new.RECEIVE_BEFORE_START IS NULL AND :old.RECEIVE_BEFORE_START IS NOT NULL ) OR (:new.RECEIVE_BEFORE_START IS NOT NULL AND :old.RECEIVE_BEFORE_START IS NULL) OR NOT(:new.RECEIVE_BEFORE_START = :old.RECEIVE_BEFORE_START) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).RECEIVE_BEFORE_START := :old.RECEIVE_BEFORE_START; cg$rec.VALIDATION_WINDOW := :new.VALIDATION_WINDOW; cg$ind.VALIDATION_WINDOW := (:new.VALIDATION_WINDOW IS NULL AND :old.VALIDATION_WINDOW IS NOT NULL ) OR (:new.VALIDATION_WINDOW IS NOT NULL AND :old.VALIDATION_WINDOW IS NULL) OR NOT(:new.VALIDATION_WINDOW = :old.VALIDATION_WINDOW) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).VALIDATION_WINDOW := :old.VALIDATION_WINDOW; cg$rec.VALIDATION_ACTION := :new.VALIDATION_ACTION; cg$ind.VALIDATION_ACTION := (:new.VALIDATION_ACTION IS NULL AND :old.VALIDATION_ACTION IS NOT NULL ) OR (:new.VALIDATION_ACTION IS NOT NULL AND :old.VALIDATION_ACTION IS NULL) OR NOT(:new.VALIDATION_ACTION = :old.VALIDATION_ACTION) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).VALIDATION_ACTION := :old.VALIDATION_ACTION; cg$rec.VALIDATION_EXCEPTION := :new.VALIDATION_EXCEPTION; cg$ind.VALIDATION_EXCEPTION := (:new.VALIDATION_EXCEPTION IS NULL AND :old.VALIDATION_EXCEPTION IS NOT NULL ) OR (:new.VALIDATION_EXCEPTION IS NOT NULL AND :old.VALIDATION_EXCEPTION IS NULL) OR NOT(:new.VALIDATION_EXCEPTION = :old.VALIDATION_EXCEPTION) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).VALIDATION_EXCEPTION := :old.VALIDATION_EXCEPTION; cg$rec.VALID_FROM := :new.VALID_FROM; cg$ind.VALID_FROM := (:new.VALID_FROM IS NULL AND :old.VALID_FROM IS NOT NULL ) OR (:new.VALID_FROM IS NOT NULL AND :old.VALID_FROM IS NULL) OR NOT(:new.VALID_FROM = :old.VALID_FROM) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).VALID_FROM := :old.VALID_FROM; cg$rec.VALID_UNTIL := :new.VALID_UNTIL; cg$ind.VALID_UNTIL := (:new.VALID_UNTIL IS NULL AND :old.VALID_UNTIL IS NOT NULL ) OR (:new.VALID_UNTIL IS NOT NULL AND :old.VALID_UNTIL IS NULL) OR NOT(:new.VALID_UNTIL = :old.VALID_UNTIL) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).VALID_UNTIL := :old.VALID_UNTIL; cg$rec.STATUS := :new.STATUS; cg$ind.STATUS := (:new.STATUS IS NULL AND :old.STATUS IS NOT NULL ) OR (:new.STATUS IS NOT NULL AND :old.STATUS IS NULL) OR NOT(:new.STATUS = :old.STATUS) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).STATUS := :old.STATUS; cg$rec.COTE_ID := :new.COTE_ID; cg$ind.COTE_ID := (:new.COTE_ID IS NULL AND :old.COTE_ID IS NOT NULL ) OR (:new.COTE_ID IS NOT NULL AND :old.COTE_ID IS NULL) OR NOT(:new.COTE_ID = :old.COTE_ID) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).COTE_ID := :old.COTE_ID; cg$rec.CUST_ID := :new.CUST_ID; cg$ind.CUST_ID := (:new.CUST_ID IS NULL AND :old.CUST_ID IS NOT NULL ) OR (:new.CUST_ID IS NOT NULL AND :old.CUST_ID IS NULL) OR NOT(:new.CUST_ID = :old.CUST_ID) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).CUST_ID := :old.CUST_ID; cg$rec.CREATED_ON := :new.CREATED_ON; cg$ind.CREATED_ON := (:new.CREATED_ON IS NULL AND :old.CREATED_ON IS NOT NULL ) OR (:new.CREATED_ON IS NOT NULL AND :old.CREATED_ON IS NULL) OR NOT(:new.CREATED_ON = :old.CREATED_ON) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).CREATED_ON := :old.CREATED_ON; cg$rec.SPTE_ID := :new.SPTE_ID; cg$ind.SPTE_ID := (:new.SPTE_ID IS NULL AND :old.SPTE_ID IS NOT NULL ) OR (:new.SPTE_ID IS NOT NULL AND :old.SPTE_ID IS NULL) OR NOT(:new.SPTE_ID = :old.SPTE_ID) ; cg$CONTRACTS.cg$table(cg$CONTRACTS.idx).SPTE_ID := :old.SPTE_ID; cg$CONTRACTS.idx := cg$CONTRACTS.idx + 1; if not (cg$CONTRACTS.called_from_package) then cg$CONTRACTS.validate_arc(cg$rec); cg$CONTRACTS.validate_domain(cg$rec, cg$ind); cg$CONTRACTS.validate_domain_cascade_update(cg$old_rec); cg$CONTRACTS.upd(cg$rec, cg$ind, FALSE); cg$CONTRACTS.called_from_package := FALSE; end if; :new.CREATED_BY := cg$rec.CREATED_BY; :new.CONTRACT_NUMBER := cg$rec.CONTRACT_NUMBER; :new.OPERATIONS_CONTACT := cg$rec.OPERATIONS_CONTACT; :new.BUSINESS_CONTACT := cg$rec.BUSINESS_CONTACT; :new.RECEIVE_BEFORE_START := cg$rec.RECEIVE_BEFORE_START; :new.VALIDATION_WINDOW := cg$rec.VALIDATION_WINDOW; :new.VALIDATION_ACTION := cg$rec.VALIDATION_ACTION; :new.VALIDATION_EXCEPTION := cg$rec.VALIDATION_EXCEPTION; :new.VALID_FROM := cg$rec.VALID_FROM; :new.VALID_UNTIL := cg$rec.VALID_UNTIL; :new.STATUS := cg$rec.STATUS; :new.COTE_ID := cg$rec.COTE_ID; :new.CUST_ID := cg$rec.CUST_ID; :new.CREATED_ON := cg$rec.CREATED_ON; :new.SPTE_ID := cg$rec.SPTE_ID; -- Application_logic Post-Before-Update-row <> -- Application_logic Post-Before-Update-row << End >> END; /