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

CREATE TRIGGER COMPL_PROD_ITEMAUTF
ON ITEMAUTF
FOR INSERT
AS
DECLARE @V_TXOBSITMSOL     VARCHAR(2000);
DECLARE @V_CDFILDEST       VARCHAR(4);
DECLARE @V_CDFILLANC       VARCHAR(4);
DECLARE @V_NRAUTOFORN      VARCHAR(10);
DECLARE @V_CDMARCA         VARCHAR(5);
DECLARE @V_CDPRODUTO       VARCHAR(10);
DECLARE @V_DTPROGENTAF     DATETIME;
DECLARE @V_DTENTRITMSOL    DATETIME;
DECLARE @V_IDAPROVITMSOLGR VARCHAR(1);
DECLARE @V_NRCOMPRAF       VARCHAR(2);

BEGIN
   SELECT @V_IDAPROVITMSOLGR = ISNULL(IDAPROVITMSOLGR, 'N')
     FROM PARASUPRI, FILIAL, INSERTED
    WHERE PARASUPRI.CDFILIAL = ISNULL(FILIAL.CDFILCENTCMP, FILIAL.CDFILIAL)
      AND FILIAL.CDFILIAL    = INSERTED.CDFILDEST;

   SET @V_TXOBSITMSOL = NULL;
   SET @V_NRCOMPRAF   = NULL;

   IF @V_IDAPROVITMSOLGR = 'S' BEGIN
      DECLARE C_CURSOR
       CURSOR FOR
       SELECT INSERTED.CDFILDEST,
              INSERTED.CDFILLANC,
              INSERTED.NRAUTOFORN,
              INSERTED.CDMARCA,
              INSERTED.CDPRODUTO,
              INSERTED.DTPROGENTAF,
              INSERTED.DTENTRITMSOL
         FROM INSERTED
      OPEN C_CURSOR;
      FETCH NEXT FROM C_CURSOR INTO @V_CDFILDEST,
                                    @V_CDFILLANC,
                                    @V_NRAUTOFORN,
                                    @V_CDMARCA,
                                    @V_CDPRODUTO,
                                    @V_DTPROGENTAF,
                                    @V_DTENTRITMSOL;
      WHILE (@@FETCH_STATUS = 0) BEGIN
         SELECT V_NRCOMPRAF = MAX(NRCOMPRAF)
           FROM AUTOFORNE
          WHERE CDFILLANC  = @V_CDFILLANC
            AND CDFILDEST  = @V_CDFILDEST
            AND NRAUTOFORN = @V_NRAUTOFORN;

         IF @V_NRCOMPRAF IS NOT NULL BEGIN

            SELECT @V_TXOBSITMSOL = MAX(CONVERT(VARCHAR, TXOBSITMSOL))
              FROM ITEMSOLI, PRODCOMPRA, PRODUTO
             WHERE ITEMSOLI.CDFILSOLI            = PRODCOMPRA.CDFILSOLI
               AND ITEMSOLI.CDFILLAN             = PRODCOMPRA.CDFILLAN
               AND ITEMSOLI.NRSOLICMP            = PRODCOMPRA.NRSOLICMP
               AND ITEMSOLI.CDPRODUTO            = PRODCOMPRA.CDPRODUTO
               AND ITEMSOLI.DTPROGENTR           = PRODCOMPRA.DTPROGENTR
               AND PRODUTO.CDPRODESTO            = ITEMSOLI.CDPRODUTO
               AND PRODUTO.CDPRODUTO             = @V_CDPRODUTO
               AND ITEMSOLI.CDFILSOLI            = @V_CDFILDEST
               AND ITEMSOLI.DTPROGENTR           = @V_DTENTRITMSOL
               AND ISNULL(PRODCOMPRA.NRCOMPRA, '1') = @V_NRCOMPRAF
               AND ITEMSOLI.TXOBSITMSOL IS NOT NULL;

            IF @V_TXOBSITMSOL IS NOT NULL BEGIN
               UPDATE ITEMAUTF
                  SET ITEMAUTF.TXOBSITMAF = @V_TXOBSITMSOL
                 FROM INSERTED
                WHERE (ITEMAUTF.CDFILDEST  = @V_CDFILDEST)
                  AND (ITEMAUTF.CDFILLANC  = @V_CDFILLANC)
                  AND (ITEMAUTF.NRAUTOFORN = @V_NRAUTOFORN)
                  AND (ITEMAUTF.CDPRODUTO  = @V_CDPRODUTO)
                  AND (ITEMAUTF.CDMARCA    = @V_CDMARCA)
                  AND (ITEMAUTF.DTPROGENTAF= @V_DTPROGENTAF);
            END;
            FETCH NEXT FROM C_CURSOR INTO @V_CDFILDEST,
                                         @V_CDFILLANC,
                                         @V_NRAUTOFORN,
                                         @V_CDMARCA,
                                         @V_CDPRODUTO,
                                         @V_DTPROGENTAF,
                                         @V_DTENTRITMSOL;
         END;
      END;
      CLOSE      C_CURSOR;
      DEALLOCATE C_CURSOR;
   END;
END;
GO

-- VERSAO --
EXEC ATUVEROBJ 'COMPL_PROD_ITEMAUTF','5.40.001';
GO

