CREATE OR REPLACE
TRIGGER USR_ATU_FILGRUPFILI BEFORE INSERT OR DELETE ON FILIALROTA
FOR EACH ROW
BEGIN
  IF DELETING THEN
    DELETE FILGRUPFILI
     WHERE CDFILIAL = :OLD.CDFILIAL
       AND EXISTS (SELECT 1
                     FROM ROTATRANS, GRUPFILI
                    WHERE ROTATRANS.CDROTATRANS = :OLD.CDROTATRANS
                      AND ROTATRANS.NMROTATRANS = GRUPFILI.NMGRUPFILI
                      AND GRUPFILI.CDGRUPFILI = FILGRUPFILI.CDGRUPFILI);
  ELSE
    IF INSERTING THEN
      INSERT INTO FILGRUPFILI (CDGRUPFILI, CDFILIAL)
        (SELECT GRUPFILI.CDGRUPFILI, :NEW.CDFILIAL
           FROM ROTATRANS, GRUPFILI
          WHERE ROTATRANS.CDROTATRANS = :NEW.CDROTATRANS
            AND ROTATRANS.NMROTATRANS = GRUPFILI.NMGRUPFILI);
    END IF;
  END IF;
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('USR_ATU_FILGRUPFILI','6.19.XXX'); END;
/
