You are on page 1of 2

CREATE OR REPLACE TRIGGER XXSW_OE_ITEM_ORDER_ITM_TRI

BEFORE DELETE OR INSERT OR UPDATE


ON ont.oe_item_orderability_rules
FOR EACH ROW
DECLARE
v_old_rule_level VARCHAR2 (250);
v_new_rule_level VARCHAR2 (250);
BEGIN

Select COALESCE(
to_char(:NEW.CUSTOMER_ID),
to_char(:NEW.CUSTOMER_CLASS_ID),
to_char(:NEW.CUSTOMER_CATEGORY_CODE),
to_char(:NEW.REGION_ID),
to_char(:NEW.ORDER_TYPE_ID),
to_char(:NEW.SHIP_TO_LOCATION_ID),
to_char(:NEW.SALES_CHANNEL_CODE),
to_char(:NEW.SALES_PERSON_ID),
to_char(:NEW.END_CUSTOMER_ID),
to_char(:NEW.BILL_TO_LOCATION_ID),
to_char(:NEW.DELIVER_TO_LOCATION_ID)
),
COALESCE(
to_char(:OLD.CUSTOMER_ID),
to_char(:OLD.CUSTOMER_CLASS_ID),
to_char(:OLD.CUSTOMER_CATEGORY_CODE),
to_char(:OLD.REGION_ID),
to_char(:OLD.ORDER_TYPE_ID),
to_char(:OLD.SHIP_TO_LOCATION_ID),
to_char(:OLD.SALES_CHANNEL_CODE),
to_char(:OLD.SALES_PERSON_ID),
to_char(:OLD.END_CUSTOMER_ID),
to_char(:OLD.BILL_TO_LOCATION_ID),
to_char(:OLD.DELIVER_TO_LOCATION_ID)
)
INTO v_new_rule_level,v_old_rule_level
FROM DUAL;

IF INSERTING
THEN
INSERT INTO xxsw.xxsw_oe_item_order_rules
( orderability_id,
dml_operation,
new_rule_level,
new_rule_level_value,
new_enabled,
created_by,
creation_date
)
VALUES (:NEW.orderability_id,
'INSERT',
:NEW.rule_level,
v_new_rule_level,
:NEW.enable_flag,
fnd_global.user_id,
SYSDATE
);
ELSIF DELETING
THEN
INSERT INTO xxsw.xxsw_oe_item_order_rules
( orderability_id,
dml_operation,
old_rule_level,
old_rule_level_value,
old_enabled,
created_by,
creation_date
)
VALUES (:old.orderability_id,
'DELETE',
:OLD.rule_level,
v_old_rule_level,
:OLD.enable_flag,
fnd_global.user_id,
SYSDATE
);
ELSE
INSERT INTO xxsw.xxsw_oe_item_order_rules
( orderability_id,
dml_operation,
old_rule_level,
new_rule_level,
old_rule_level_value,
new_rule_level_value,
old_enabled,
new_enabled,
created_by,
creation_date
)
VALUES (:NEW.orderability_id,
'UPDATE',
:old.rule_level,
:new.rule_level,
v_old_rule_level,
v_new_rule_level,
:old.enable_flag,
:new.enable_flag,
fnd_global.user_id,
SYSDATE
);
END IF;
EXCEPTION WHEN OTHERS THEN
NULL;
END XXSW_OE_ITEM_ORDER_ITM_TRI;
/

You might also like