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

CREATE TRIGGER ATU_ITEMAUTF_COMPRA
ON ITEMAUTF
FOR DELETE
AS
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_CDCENTITMAP    VARCHAR(4);
DECLARE @V_CDFORNECED     VARCHAR(21);
DECLARE @V_NRCOMPRA       VARCHAR(10);
DECLARE @V_CDFILSOLI      VARCHAR(4);
BEGIN
   DECLARE C_CURSOR CURSOR FOR
      SELECT DELETED.CDFILDEST,
             DELETED.CDFILLANC,
             DELETED.NRAUTOFORN,
             DELETED.CDMARCA,
             DELETED.CDPRODUTO,
             DELETED.DTPROGENTAF,
             DELETED.DTENTRITMSOL
        FROM DELETED
   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_CDCENTITMAP = MAX(ITMAPURPREC.CDCENTITMAP),
             @V_NRCOMPRA      = MAX(ITMAPURPREC.NRCOMPRA)
        FROM APURPRECO, ITMAPURPREC
       WHERE APURPRECO.NRAPURPREC    = ITMAPURPREC.NRSEQITMAP
         AND APURPRECO.CDFILCENTCMP  = ITMAPURPREC.CDCENTITMAP
         AND ITMAPURPREC.DTENTRAPUT  = @V_DTPROGENTAF
         AND ITMAPURPREC.CDFILIAP    = @V_CDFILDEST
         AND ITMAPURPREC.CDPRODITMAP = @V_CDPRODUTO
         AND ITMAPURPREC.CDMARCITMAP = @V_CDMARCA
         AND ITMAPURPREC.NRCOMPRA    IS NOT NULL;

      IF @V_NRCOMPRA IS NOT NULL BEGIN
         UPDATE ITMAPURPREC
            SET NRCOMPRA     = NULL
          WHERE CDCENTITMAP  = @V_CDCENTITMAP
            AND DTENTRAPUT   = @V_DTPROGENTAF
            AND CDFILIAP     = @V_CDFILDEST
            AND CDPRODITMAP  = @V_CDPRODUTO
            AND NRCOMPRA     = @V_NRCOMPRA;
         DELETE
           FROM PRODCOMPRA
          WHERE NRCOMPRA   = @V_NRCOMPRA
            AND CDFILSOLI  = @V_CDFILDEST
            AND CDPRODUTO  = @V_CDPRODUTO
            AND DTPROGENTR = @V_DTENTRITMSOL;
         SELECT @V_CDFILSOLI = MAX(CDFILSOLI)
           FROM PRODCOMPRA
          WHERE NRCOMPRA   = @V_NRCOMPRA;
         IF @V_CDFILSOLI IS NULL BEGIN
            UPDATE COMPRA
               SET IDSITUCOMPRA = '1'
             WHERE NRCOMPRA = @V_NRCOMPRA;
         END;
      END;
      FETCH NEXT FROM C_CURSOR INTO @V_CDFILDEST,
                                    @V_CDFILLANC,
                                    @V_NRAUTOFORN,
                                    @V_CDMARCA,
                                    @V_CDPRODUTO,
                                    @V_DTPROGENTAF,
                                    @V_DTENTRITMSOL;
   END;
   CLOSE      C_CURSOR;
   DEALLOCATE C_CURSOR;
END;
GO

-- VERSAO --
EXEC ATUVEROBJ 'ATU_ITEMAUTF_COMPRA','5.45.000';
GO
