IF EXISTS(SELECT * FROM sysobjects O, sysusers U
          WHERE
            O.name = 'INSERE_GRUPO_CONTABIL'  AND
            type = 'TR'                       AND
            U.uid = o.uid                     AND
            U.name = USER)
   DROP TRIGGER INSERE_GRUPO_CONTABIL
GO

CREATE TRIGGER INSERE_GRUPO_CONTABIL ON PRODFILI
FOR INSERT
AS

  DECLARE @V_NEW_CDFILIAL    VARCHAR(04);
  DECLARE @V_CDFILIAL        VARCHAR(04);
  DECLARE @V_NEW_CDPRODUTO   VARCHAR(20);
  DECLARE @V_CDARVPROD       VARCHAR(20);
  DECLARE @V_CDCONTCTBL      VARCHAR(20);
  DECLARE @V_CDMAXARVPR      VARCHAR(20);
  DECLARE @V_CDCTBLENTRPROGF VARCHAR(20);
  DECLARE @V_CDCTBLSAIDPROGF VARCHAR(20);
  DECLARE @V_CDCTBLCUSPRODGF VARCHAR(20);
  DECLARE @V_CDCTBLCPROVGF   VARCHAR(20);
  DECLARE @V_CDCTBLCMVGF     VARCHAR(20);
  DECLARE @V_CDCTBLAJUSPROGF VARCHAR(20);
  DECLARE @V_CDCTBLIMPLPROGF VARCHAR(20);
BEGIN
 
  DECLARE C_CURSOR1 CURSOR FOR
    SELECT CDFILIAL, CDPRODUTO
      FROM INSERTED
     WHERE CDFILIAL  NOT IN (SELECT CDFILIAL  FROM DELETED) AND
           CDPRODUTO NOT IN (SELECT CDPRODUTO FROM DELETED);
  OPEN C_CURSOR1;
                          
  FETCH NEXT FROM C_CURSOR1 INTO @V_NEW_CDFILIAL, @V_NEW_CDPRODUTO;
                                                                                         
  WHILE (@@FETCH_STATUS = 0) BEGIN
                                                                                               
      SELECT @V_CDFILIAL = MAX(CDFILIAL)
        FROM CCTGRUPPRODFIL
       WHERE CDFILIAL = @V_NEW_CDFILIAL;
                                                                                         
      IF @V_CDFILIAL IS NOT NULL BEGIN
         SELECT @V_CDARVPROD =  MAX(P.CDARVPROD)
           FROM PRODUTO P
          WHERE P.CDPRODUTO = @V_NEW_CDPRODUTO;
                                                                                            
         SELECT @V_CDMAXARVPR = MAX(P.CDARVPROD)
           FROM CCTGRUPPRODFIL G, PRODUTO P
          WHERE G.CDFILIAL  = @V_NEW_CDFILIAL
            AND G.CDPRODUTO = P.CDPRODUTO
            AND @V_CDARVPROD LIKE P.CDARVPROD + '%';
                                                                                            
         SELECT @V_CDCTBLENTRPROGF = MAX(G.CDCTBLENTRPROGF)
           FROM CCTGRUPPRODFIL G, PRODUTO P
          WHERE G.CDFILIAL  = @V_NEW_CDFILIAL
            AND G.CDPRODUTO = P.CDPRODUTO
            AND P.CDARVPROD = @V_CDMAXARVPR;
                                                                                            
         SELECT @V_CDCTBLSAIDPROGF = MAX(G.CDCTBLSAIDPROGF)
           FROM CCTGRUPPRODFIL G, PRODUTO P
          WHERE G.CDFILIAL  = @V_NEW_CDFILIAL
            AND G.CDPRODUTO = P.CDPRODUTO
            AND P.CDARVPROD = @V_CDMAXARVPR; 
                                                                                             
         SELECT @V_CDCTBLCUSPRODGF = MAX(G.CDCTBLCUSPRODGF)
           FROM CCTGRUPPRODFIL G, PRODUTO P
          WHERE G.CDFILIAL  = @V_NEW_CDFILIAL
            AND G.CDPRODUTO = P.CDPRODUTO
            AND P.CDARVPROD = @V_CDMAXARVPR;
                                                                                            
         SELECT @V_CDCTBLCPROVGF = MAX(CDCTBLCPROVGF)
           FROM CCTGRUPPRODFIL G, PRODUTO P
          WHERE G.CDFILIAL  = @V_NEW_CDFILIAL
            AND G.CDPRODUTO = P.CDPRODUTO
            AND P.CDARVPROD = @V_CDMAXARVPR;
                                                                                            
         SELECT @V_CDCTBLCMVGF = MAX(G.CDCTBLCMVGF)
           FROM CCTGRUPPRODFIL G, PRODUTO P
          WHERE G.CDFILIAL  = @V_NEW_CDFILIAL
            AND G.CDPRODUTO = P.CDPRODUTO
            AND P.CDARVPROD = @V_CDMAXARVPR;
                                                                                            
         SELECT @V_CDCTBLAJUSPROGF = MAX(G.CDCTBLAJUSPROGF)
           FROM CCTGRUPPRODFIL G, PRODUTO P
          WHERE G.CDFILIAL  = @V_NEW_CDFILIAL
            AND G.CDPRODUTO = P.CDPRODUTO
            AND P.CDARVPROD = @V_CDMAXARVPR;
                                                                                            
         SELECT @V_CDCTBLIMPLPROGF =  MAX(G.CDCTBLIMPLPROGF)
           FROM CCTGRUPPRODFIL G, PRODUTO P
          WHERE G.CDFILIAL  = @V_NEW_CDFILIAL
            AND G.CDPRODUTO = P.CDPRODUTO
            AND P.CDARVPROD = @V_CDMAXARVPR;
                                                                                         
         UPDATE PRODFILI
            SET CDCTBLENTRPF = @V_CDCTBLENTRPROGF, 
                CDCTBLSAIDPF = @V_CDCTBLSAIDPROGF, 
                CDCTBLPRODPF = @V_CDCTBLCUSPRODGF,
                CDCTBLCPROPF = @V_CDCTBLCPROVGF, 
                CDCTBLPRACPF = @V_CDCTBLCMVGF,
                CDCTBLAJUSPF = @V_CDCTBLAJUSPROGF,
                CDCTBLIMPLPF = @V_CDCTBLIMPLPROGF  
           FROM INSERTED
          WHERE PRODFILI.CDFILIAL  = @V_NEW_CDFILIAL AND
                PRODFILI.CDPRODUTO = @V_NEW_CDPRODUTO;
      END;
                 
      FETCH NEXT FROM C_CURSOR1 INTO @V_NEW_CDFILIAL,@V_NEW_CDPRODUTO;
   END;
   CLOSE      C_CURSOR1;
   DEALLOCATE C_CURSOR1;
END;
GO
-- VERSAO --
EXEC ATUVEROBJ 'INSERE_GRUPO_CONTABIL','5.05.100';
GO