create or replace TRIGGER DTULTATU_PRODFILI 
BEFORE INSERT OR UPDATE OR DELETE 
ON PRODFILI FOR EACH ROW 
 
BEGIN 
   IF INSERTING THEN 
      IF (NVL(:NEW.IDPRODATIV,'A') = 'I') THEN 
         :NEW.DTULTATUPRFIL := SYSDATE; 
      END IF; 
   END IF; 
   IF UPDATING THEN 
      UPDATE ROTFABLOCAL
         SET DTULTATURTFL = SYSDATE
       WHERE CDSUBPRODLOC = :OLD.CDPRODUTO
         AND CDFILIAL = :OLD.CDFILIAL;
    
      UPDATE ROTFABRICA
         SET DTULTATURTFA = SYSDATE
       WHERE CDSUBPRODUTO = :OLD.CDPRODUTO;
      IF (NVL(:OLD.IDPRODATIV,'A') <> NVL(:NEW.IDPRODATIV,'A')) THEN 
         IF (NVL(:NEW.IDPRODATIV,'A') = 'I') THEN 
            :NEW.DTULTATUPRFIL := SYSDATE; 
         END IF; 
         IF (NVL(:NEW.IDPRODATIV,'A') = 'A') THEN 
			UPDATE PRODUTO 
			   SET DTULTATUPROD = SYSDATE 
			 WHERE CDPRODUTO = :OLD.CDPRODUTO; 
             
			INSERT INTO DELETECACHE (NMTABLECACHE, CDFILICACHE, DSKEYCACHE, DTULTATUCACH) 
                             VALUES ('PRODFILI', :OLD.CDFILIAL, 'CDPRODUTO='||:OLD.CDPRODUTO||';CDFILIAL='||:OLD.CDFILIAL||';', SYSDATE); 
         END IF; 
      END IF; 
   END IF; 
   IF DELETING THEN 
      INSERT INTO DELETECACHE (NMTABLECACHE, CDFILICACHE, DSKEYCACHE, DTULTATUCACH) 
                       VALUES ('PRODFILI', :OLD.CDFILIAL, 'CDPRODUTO='||:OLD.CDPRODUTO||';CDFILIAL='||:OLD.CDFILIAL||';', SYSDATE); 
   END IF; 
END;