CREATE OR REPLACE TRIGGER INSERE_GRUPO_CONTABIL BEFORE INSERT ON PRODFILI
FOR EACH ROW
DECLARE
   V_CDFILIAL        VARCHAR2(04);
   V_CDARVPROD       VARCHAR2(20);
   V_CDCONTCTBL      VARCHAR2(20);
   V_CDMAXARVPR      VARCHAR2(20);
   V_CDCTBLENTRPROGF VARCHAR2(20);
   V_CDCTBLSAIDPROGF VARCHAR2(20);
   V_CDCTBLCUSPRODGF VARCHAR2(20);
   V_CDCTBLCPROVGF   VARCHAR2(20);
   V_CDCTBLCMVGF     VARCHAR2(20);
   V_CDCTBLAJUSPROGF VARCHAR2(20);
   V_CDCTBLIMPLPROGF VARCHAR2(20);
BEGIN
   SELECT MAX(CDFILIAL)
     INTO V_CDFILIAL
     FROM CCTGRUPPRODFIL
    WHERE CDFILIAL = :NEW.CDFILIAL;

   IF V_CDFILIAL IS NOT NULL THEN
      SELECT MAX(P.CDARVPROD)
        INTO V_CDARVPROD
        FROM PRODUTO P
       WHERE P.CDPRODUTO = :NEW.CDPRODUTO;

      SELECT MAX(P.CDARVPROD)
        INTO V_CDMAXARVPR
        FROM CCTGRUPPRODFIL G, PRODUTO P
       WHERE G.CDFILIAL = V_CDFILIAL
         AND G.CDPRODUTO = P.CDPRODUTO
         AND V_CDARVPROD LIKE P.CDARVPROD||'%';

      SELECT MAX(G.CDCTBLENTRPROGF), MAX(G.CDCTBLSAIDPROGF), MAX(G.CDCTBLCUSPRODGF),
             MAX(CDCTBLCPROVGF),MAX(G.CDCTBLCMVGF), MAX(G.CDCTBLAJUSPROGF), MAX(G.CDCTBLIMPLPROGF)
        INTO V_CDCTBLENTRPROGF, V_CDCTBLSAIDPROGF, V_CDCTBLCUSPRODGF, V_CDCTBLCPROVGF, V_CDCTBLCMVGF,
             V_CDCTBLAJUSPROGF, V_CDCTBLIMPLPROGF
        FROM CCTGRUPPRODFIL G, PRODUTO P
       WHERE G.CDFILIAL = V_CDFILIAL
         AND G.CDPRODUTO = P.CDPRODUTO
         AND P.CDARVPROD = V_CDMAXARVPR;

      :NEW.CDCTBLENTRPF := V_CDCTBLENTRPROGF;
      :NEW.CDCTBLSAIDPF := V_CDCTBLSAIDPROGF;
      :NEW.CDCTBLPRODPF := V_CDCTBLCUSPRODGF;
      :NEW.CDCTBLCPROPF := V_CDCTBLCPROVGF;
      :NEW.CDCTBLPRACPF := V_CDCTBLCMVGF;
      :NEW.CDCTBLAJUSPF := V_CDCTBLAJUSPROGF;
      :NEW.CDCTBLIMPLPF := V_CDCTBLIMPLPROGF;
   END IF;
END;
/
-- VERSAO --
BEGIN ATUVEROBJ('INSERE_GRUPO_CONTABIL','5.05.100'); END;
/

