IF EXISTS (SELECT * FROM SYSOBJECTS O, SYSUSERS U
            WHERE O.NAME = 'HOMOLOGA_POSESTATU'
              AND TYPE   = 'TR'
              AND U.UID  = O.UID
              AND U.NAME = USER)
   DROP TRIGGER HOMOLOGA_POSESTATU
   GO

CREATE TRIGGER HOMOLOGA_POSESTATU
ON POSESTATU
FOR INSERT, DELETE, UPDATE
AS

DECLARE @V_QTTOTALESTOQ_NEW    DOUBLE PRECISION;
DECLARE @V_DTULTMOVIMEN_NEW    DATETIME;
DECLARE @V_DTHOMOLOGAFOS_NEW   DATETIME;
DECLARE @V_QTTOTALESTOQ_OLD    DOUBLE PRECISION;
DECLARE @V_DTULTMOVIMEN_OLD    DATETIME;
DECLARE @V_DTHOMOLOGAFOS_OLD   DATETIME;
DECLARE @V_CDFILIAL_OLD        VARCHAR(4);
DECLARE @V_CDPRODUTO_OLD       VARCHAR(10);

BEGIN
   IF (0 = (SELECT COUNT(*) FROM INSERTED)) BEGIN
      DELETE FROM NOVOCODIGO
       WHERE CDCONTADOR = 'HFOS'+'POSESTATU'+'CDPRODUTO'+'**********';

      INSERT INTO NOVOCODIGO
         (CDCONTADOR, NRSEQUENCIAL)
      VALUES
         ('HFOS'+'POSESTATU'+'CDPRODUTO'+'**********', 'CDPRODUTO');
   END
   ELSE IF (0 = (SELECT COUNT(*) FROM DELETED)) BEGIN
      DELETE FROM NOVOCODIGO
       WHERE CDCONTADOR = 'HFOS'+'POSESTATU'+'CDPRODUTO'+'**********';

      INSERT INTO NOVOCODIGO
         (CDCONTADOR, NRSEQUENCIAL)
      VALUES
         ('HFOS'+'POSESTATU'+'CDPRODUTO'+'**********', 'CDPRODUTO');
   END
   ELSE BEGIN
      SELECT
         @V_QTTOTALESTOQ_NEW  = INSERTED.QTTOTALESTOQ,
         @V_DTULTMOVIMEN_NEW  = INSERTED.DTULTMOVIMEN,
         @V_DTHOMOLOGAFOS_NEW = INSERTED.DTHOMOLOGAFOS,
         @V_QTTOTALESTOQ_OLD  = DELETED.QTTOTALESTOQ,
         @V_DTULTMOVIMEN_OLD  = DELETED.DTULTMOVIMEN,
         @V_DTHOMOLOGAFOS_OLD = DELETED.DTHOMOLOGAFOS,
         @V_CDFILIAL_OLD      = DELETED.CDFILIAL,
         @V_CDPRODUTO_OLD     = DELETED.CDPRODUTO
      FROM
         INSERTED, DELETED
      WHERE
         (INSERTED.CDFILIAL     = DELETED.CDFILIAL    ) AND
         (INSERTED.CDPRODUTO    = DELETED.CDPRODUTO   ) AND
         (INSERTED.CDALMOXARIFE = DELETED.CDALMOXARIFE) AND
         (INSERTED.CDLOCALESTOQ = DELETED.CDLOCALESTOQ) AND
         (INSERTED.NRLOTEESTQ   = DELETED.NRLOTEESTQ  ) AND
         (INSERTED.NRSUBLOTE    = DELETED.NRSUBLOTE   )

      IF (ISNULL(@V_QTTOTALESTOQ_OLD,0) <> ISNULL(@V_QTTOTALESTOQ_NEW,0)) BEGIN
         DELETE FROM NOVOCODIGO
          WHERE CDCONTADOR = 'HFOS'+'POSESTATU'+'QTTOTALESTOQ' + @V_CDFILIAL_OLD + @V_CDPRODUTO_OLD;

         INSERT INTO NOVOCODIGO
            (CDCONTADOR, NRSEQUENCIAL)
         VALUES
            ('HFOS'+'POSESTATU'+'QTTOTALESTOQ' + @V_CDFILIAL_OLD + @V_CDPRODUTO_OLD, 'QTTOTALESTOQ');
      END;
   
      IF (@V_DTULTMOVIMEN_OLD <> @V_DTULTMOVIMEN_NEW) BEGIN
         DELETE FROM NOVOCODIGO
          WHERE CDCONTADOR = 'HFOS'+'POSESTATU'+'DTULTMOVIMEN' + @V_CDFILIAL_OLD + @V_CDPRODUTO_OLD;

         INSERT INTO NOVOCODIGO
            (CDCONTADOR, NRSEQUENCIAL)
         VALUES
            ('HFOS'+'POSESTATU'+'DTULTMOVIMEN' + @V_CDFILIAL_OLD + @V_CDPRODUTO_OLD, 'DTULTMOVIMEN');
      END;
   
      IF (@V_DTHOMOLOGAFOS_OLD <> @V_DTHOMOLOGAFOS_NEW) BEGIN
         DELETE FROM NOVOCODIGO
          WHERE CDCONTADOR LIKE 'HFOS'+'POSESTATU'+'DTHOMOLOGAFOS' + @V_CDFILIAL_OLD + '%';

         INSERT INTO NOVOCODIGO
            (CDCONTADOR, NRSEQUENCIAL)
         VALUES
            ('HFOS'+'POSESTATU'+'DTHOMOLOGAFOS' + @V_CDFILIAL_OLD + CONVERT(VARCHAR(8), @V_DTHOMOLOGAFOS_NEW, 112) + REPLACE(CONVERT(VARCHAR(8), @V_DTHOMOLOGAFOS_NEW, 108), ':', ''), 'DTHOMOLOGAFOS');
      END;
   END;
END;
GO

-- VERSAO --
EXEC ATUVEROBJ 'HOMOLOGA_POSESTATU','5.50.000';
GO
