DBA Data[Home] [Help]

TRIGGER: APPS.CN_RT_QUOTA_ASGNS_T1

Source

Description
"APPS"."CN_RT_QUOTA_ASGNS_T1" 
  AFTER DELETE OR INSERT OR UPDATE
 
 ON  "CN"."CN_RT_QUOTA_ASGNS_ALL#"    FOR EACH ROW
Type
AFTER EACH ROW
Event
INSERT OR UPDATE OR DELETE
Column
When
Referencing
REFERENCING NEW AS NEW OLD AS OLD
Body
DECLARE
  l_name   cn_quotas_all.NAME%TYPE;
  l_org_id cn_quotas_all.org_id%TYPE;
BEGIN
  IF INSERTING THEN
    BEGIN
      SELECT q.NAME, q.org_id INTO l_name, l_org_id
        FROM cn_quotas_all q
       WHERE q.quota_id = :NEW.quota_id;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        NULL;
    END;

    cn_mark_events_pkg.mark_event_rt_quota(
      p_event_name                 => 'CHANGE_QUOTA_CALC'
    , p_object_name                => l_name
    , p_object_id                  => :NEW.quota_id
    , p_start_date                 => NULL
    , p_start_date_old             => :NEW.start_date
    , p_end_date                   => NULL
    , p_end_date_old               => :NEW.end_date
    , p_org_id                     => l_org_id
    );
  ELSIF DELETING THEN
    BEGIN
      SELECT q.NAME, q.org_id INTO l_name, l_org_id
        FROM cn_quotas_all q
       WHERE q.quota_id = :OLD.quota_id;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        NULL;
    END;

    cn_mark_events_pkg.mark_event_rt_quota(
      p_event_name                 => 'CHANGE_QUOTA_CALC'
    , p_object_name                => l_name
    , p_object_id                  => :OLD.quota_id
    , p_start_date                 => NULL
    , p_start_date_old             => :OLD.start_date
    , p_end_date                   => NULL
    , p_end_date_old               => :OLD.end_date
    , p_org_id                     => l_org_id
    );
  ELSIF UPDATING THEN
    IF    TRUNC(:OLD.start_date) <> TRUNC(:NEW.start_date)
       OR TRUNC(NVL(:OLD.end_date, fnd_api.g_miss_date)) <>
                                                      TRUNC(NVL(:NEW.end_date, fnd_api.g_miss_date)) THEN
      BEGIN
        SELECT q.NAME, q.org_id INTO l_name, l_org_id
          FROM cn_quotas_all q
         WHERE q.quota_id = :OLD.quota_id;
      EXCEPTION
        WHEN NO_DATA_FOUND THEN
          NULL;
      END;

      cn_mark_events_pkg.mark_event_rt_quota(
        p_event_name                 => 'CHANGE_QUOTA_RT_DATE'
      , p_object_name                => l_name
      , p_object_id                  => :OLD.quota_id
      , p_start_date                 => :NEW.start_date
      , p_start_date_old             => :OLD.start_date
      , p_end_date                   => :NEW.end_date
      , p_end_date_old               => :OLD.end_date
      , p_org_id                     => l_org_id
      );
    END IF;

    IF :OLD.rate_schedule_id <> :NEW.rate_schedule_id THEN
      cn_mark_events_pkg.mark_event_rt_quota(
        p_event_name                 => 'CHANGE_QUOTA_CALC'
      , p_object_name                => l_name
      , p_object_id                  => :OLD.quota_id
      , p_start_date                 => NULL
      , p_start_date_old             => :OLD.start_date
      , p_end_date                   => NULL
      , p_end_date_old               => :OLD.end_date
      , p_org_id                     => :OLD.org_id
      );
    END IF;
  END IF;
END cn_rt_quota_asgns_t1;