CREATE OR REPLACE TRIGGER ATUALIZA_PARTFILI
AFTER INSERT
ON PRSUBGRPROD FOR EACH ROW
BEGIN
   IF :NEW.CDFILISUBGR = 'P' THEN
      INSERT INTO PARTFILI
         (CDFILIAL, CDPRODUTO, CDTIPPART, NRSEQPART, CDFORNECED, CDFILCOTA, NRCOLEPRECO)
      SELECT 
         PARTFILI.CDFILIAL, :NEW.CDPRODUTO, '4', '1', PARTFILI.CDFORNECED, PARTFILI.CDFILCOTA, MAX(PARTFILI.NRCOLEPRECO)
      FROM
         PARTFILI,
         FILIAL,
         PARASUPRI
      WHERE
         PARTFILI.CDFILIAL   = FILIAL.CDFILIAL AND
         PARASUPRI.CDFILIAL = NVL(FILIAL.CDFILCENTCMP, FILIAL.CDFILIAL) AND
         PARASUPRI.CDGRUPPROD = :NEW.CDGRUPPROD AND
         PARTFILI.CDGRUPPROD = :NEW.CDGRUPPROD AND
         PARTFILI.CDSUBGRPROD = :NEW.CDSUBGRPROD AND
         PARTFILI.CDTIPPART = '4' AND
         NOT PARTFILI.NRCOLEPRECO IS NULL    AND
         NOT EXISTS(SELECT P.CDFILIAL
                    FROM PARTFILI P
                    WHERE
                       P.CDFILIAL = PARTFILI.CDFILIAL AND
                       P.CDPRODUTO = :NEW.CDPRODUTO AND
                       P.CDTIPPART = '4' AND
                       P.NRSEQPART = '1')
      GROUP BY PARTFILI.CDFILIAL, :NEW.CDPRODUTO, '4', '1', PARTFILI.CDFORNECED, PARTFILI.CDFILCOTA;
   END IF;
END;
/