/* Tabela RECEFILI: Receita Local */
/* Descrição: A trigger insere registros na tabela LOGOPERA a partir de alterações na tabela RECEFILI */
/* Objetivo: Gerar um log que vai registrar as alterações na tabela Receita Local,
             utilizando a tabela Geral de Logs de Operações */

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

CREATE TRIGGER LOG_PLA_RECEFILI
ON RECEFILI
AFTER DELETE, INSERT, UPDATE
AS
BEGIN

   DECLARE @V_USUARIO         VARCHAR(40);
   DECLARE @V_TIPO            VARCHAR(1);
   DECLARE @V_ITPESQ          VARCHAR(40);
   DECLARE @V_DESC            VARCHAR(500);
   DECLARE @V_DTOPER          DATETIME;

   DECLARE @V_DSREMOTEADDR     VARCHAR(15);
   DECLARE @V_DSREMOTEHOST     VARCHAR(15);
   DECLARE @V_DSSERVERRDM      VARCHAR(20);
   DECLARE @V_DSSERVMETHOD     VARCHAR(30);
   DECLARE @V_DSREMOTEOPER     VARCHAR(12);

   DECLARE @V_CDARVPROD VARCHAR(20);
   DECLARE @V_CDFILIAL VARCHAR(04);

/* Variáveis do cursor */

   DECLARE @V_IDCOMANDO         VARCHAR(01);
   DECLARE @V_OLD_CDPRATO       VARCHAR(10);
   DECLARE @V_OLD_CDFILAUXPRAT  VARCHAR(04);
   DECLARE @V_OLD_CDFILIAL      VARCHAR(04);
   DECLARE @V_OLD_CDPRODUTO     VARCHAR(10);
   DECLARE @V_OLD_QTPRODRECLOC  DOUBLE PRECISION;
   DECLARE @V_OLD_CDAPRERECE    VARCHAR(10);
   DECLARE @V_OLD_SGUNIDADE     VARCHAR(05);
   DECLARE @V_OLD_HRTEMPPREPLO  VARCHAR(05);
   DECLARE @V_OLD_IDPRODBASELO  VARCHAR(01);
   DECLARE @V_OLD_VRPEFATCOCLO  DOUBLE PRECISION;
   DECLARE @V_OLD_VRPEFATCORLO  DOUBLE PRECISION;
   DECLARE @V_OLD_QTBRUTALOUNR  DOUBLE PRECISION;
   DECLARE @V_OLD_QTBRUTALO     DOUBLE PRECISION;
   DECLARE @V_OLD_VRPEFATNUTLO  DOUBLE PRECISION;
   DECLARE @V_OLD_QTCALCNUTRLO  DOUBLE PRECISION;

   DECLARE @V_NEW_CDPRATO       VARCHAR(10);
   DECLARE @V_NEW_CDFILAUXPRAT  VARCHAR(04);
   DECLARE @V_NEW_CDFILIAL      VARCHAR(04);
   DECLARE @V_NEW_CDPRODUTO     VARCHAR(10);
   DECLARE @V_NEW_QTPRODRECLOC  DOUBLE PRECISION;
   DECLARE @V_NEW_CDAPRERECE    VARCHAR(10);
   DECLARE @V_NEW_SGUNIDADE     VARCHAR(05);
   DECLARE @V_NEW_HRTEMPPREPLO  VARCHAR(05);
   DECLARE @V_NEW_IDPRODBASELO  VARCHAR(01);
   DECLARE @V_NEW_VRPEFATCOCLO  DOUBLE PRECISION;
   DECLARE @V_NEW_VRPEFATCORLO  DOUBLE PRECISION;
   DECLARE @V_NEW_QTBRUTALOUNR  DOUBLE PRECISION;
   DECLARE @V_NEW_QTBRUTALO     DOUBLE PRECISION;
   DECLARE @V_NEW_VRPEFATNUTLO  DOUBLE PRECISION;
   DECLARE @V_NEW_QTCALCNUTRLO  DOUBLE PRECISION;

   SET @V_IDCOMANDO         = NULL;
   SET @V_OLD_CDPRATO       = NULL;
   SET @V_OLD_CDFILAUXPRAT  = NULL;
   SET @V_OLD_CDFILIAL      = NULL;
   SET @V_OLD_CDPRODUTO     = NULL;
   SET @V_OLD_QTPRODRECLOC  = NULL;
   SET @V_OLD_CDAPRERECE    = NULL;
   SET @V_OLD_SGUNIDADE     = NULL;
   SET @V_OLD_HRTEMPPREPLO  = NULL;
   SET @V_OLD_IDPRODBASELO  = NULL;
   SET @V_OLD_VRPEFATCOCLO  = NULL;
   SET @V_OLD_VRPEFATCORLO  = NULL;
   SET @V_OLD_QTBRUTALOUNR  = NULL;
   SET @V_OLD_QTBRUTALO     = NULL;
   SET @V_OLD_VRPEFATNUTLO  = NULL;
   SET @V_OLD_QTCALCNUTRLO  = NULL;
   SET @V_NEW_CDPRATO       = NULL;
   SET @V_NEW_CDFILAUXPRAT  = NULL;
   SET @V_NEW_CDFILIAL      = NULL;
   SET @V_NEW_CDPRODUTO     = NULL;
   SET @V_NEW_QTPRODRECLOC  = NULL;
   SET @V_NEW_CDAPRERECE    = NULL;
   SET @V_NEW_SGUNIDADE     = NULL;
   SET @V_NEW_HRTEMPPREPLO  = NULL;
   SET @V_NEW_IDPRODBASELO  = NULL;
   SET @V_NEW_VRPEFATCOCLO  = NULL;
   SET @V_NEW_VRPEFATCORLO  = NULL;
   SET @V_NEW_QTBRUTALOUNR  = NULL;
   SET @V_NEW_QTBRUTALO     = NULL;
   SET @V_NEW_VRPEFATNUTLO  = NULL;
   SET @V_NEW_QTCALCNUTRLO  = NULL;

   SET @V_TIPO = '0';
   SET @V_DESC = '';

   EXEC NMUSUARIO @V_USUARIO;
   EXEC WEBTUNNING @V_DSREMOTEADDR,
                   @V_DSREMOTEHOST,
                   @V_DSSERVERRDM,
                   @V_DSSERVMETHOD,
                   @V_DSREMOTEOPER;
  
   SET @V_USUARIO = ISNULL(@V_USUARIO, '');

   DECLARE C_DADOS CURSOR FOR
      SELECT
         'D' IDCOMANDO,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          CDPRATO,
          CDFILAUXPRAT,
          CDFILIAL,
          CDPRODUTO, 
          QTPRODRECLOC,
          CDAPRERECE,
          SGUNIDADE, 
          HRTEMPPREPLO,
          IDPRODBASELO, 
          VRPEFATCOCLO, 
          VRPEFATCORLO, 
          QTBRUTALOUNR,
          QTBRUTALO,
          VRPEFATNUTLO,
          QTCALCNUTRLO 
      FROM
         DELETED
      WHERE
         0 = (SELECT COUNT(*) FROM INSERTED)

      UNION ALL

      SELECT
         'U' IDCOMANDO,
          INSERTED.CDPRATO,
          INSERTED.CDFILAUXPRAT,
          INSERTED.CDFILIAL,
          INSERTED.CDPRODUTO, 
          INSERTED.QTPRODRECLOC,
          INSERTED.CDAPRERECE,
          INSERTED.SGUNIDADE, 
          INSERTED.HRTEMPPREPLO,
          INSERTED.IDPRODBASELO, 
          INSERTED.VRPEFATCOCLO, 
          INSERTED.VRPEFATCORLO, 
          INSERTED.QTBRUTALOUNR,
          INSERTED.QTBRUTALO,    
          INSERTED.VRPEFATNUTLO, 
          INSERTED.QTCALCNUTRLO, 

          DELETED.CDPRATO,
          DELETED.CDFILAUXPRAT,
          DELETED.CDFILIAL,
          DELETED.CDPRODUTO, 
          DELETED.QTPRODRECLOC,
          DELETED.CDAPRERECE,
          DELETED.SGUNIDADE,
          DELETED.HRTEMPPREPLO,
          DELETED.IDPRODBASELO,
          DELETED.VRPEFATCOCLO,
          DELETED.VRPEFATCORLO,
          DELETED.QTBRUTALOUNR,
          DELETED.QTBRUTALO,
          DELETED.VRPEFATNUTLO,
          DELETED.QTCALCNUTRLO 
      FROM
         INSERTED,
         DELETED
      WHERE
         INSERTED.CDFILIAL     = DELETED.CDFILIAL     AND
         INSERTED.CDPRATO      = DELETED.CDPRATO      AND
         INSERTED.CDFILAUXPRAT = DELETED.CDFILAUXPRAT AND
         INSERTED.CDPRODUTO    = DELETED.CDPRODUTO

      UNION ALL

      SELECT
         'I' IDCOMANDO,
          CDPRATO,
          CDFILAUXPRAT,
          CDFILIAL,
          CDPRODUTO,
          QTPRODRECLOC,
          CDAPRERECE,
          SGUNIDADE, 
          HRTEMPPREPLO,
          IDPRODBASELO, 
          VRPEFATCOCLO, 
          VRPEFATCORLO, 
          QTBRUTALOUNR,
          QTBRUTALO,    
          VRPEFATNUTLO, 
          QTCALCNUTRLO,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL,
          NULL
      FROM
         INSERTED
      WHERE
         0 = (SELECT COUNT(*) FROM DELETED);

   OPEN C_DADOS;
   FETCH NEXT FROM C_DADOS INTO @V_IDCOMANDO,
                                @V_NEW_CDPRATO,     
                                @V_NEW_CDFILAUXPRAT,
                                @V_NEW_CDFILIAL,    
                                @V_NEW_CDPRODUTO,   
                                @V_NEW_QTPRODRECLOC,
                                @V_NEW_CDAPRERECE,  
                                @V_NEW_SGUNIDADE,
                                @V_NEW_HRTEMPPREPLO,
                                @V_NEW_IDPRODBASELO,
                                @V_NEW_VRPEFATCOCLO,
                                @V_NEW_VRPEFATCORLO,
                                @V_NEW_QTBRUTALOUNR,
                                @V_NEW_QTBRUTALO,   
                                @V_NEW_VRPEFATNUTLO,
                                @V_NEW_QTCALCNUTRLO,
                                @V_OLD_CDPRATO,
                                @V_OLD_CDFILAUXPRAT,
                                @V_OLD_CDFILIAL,
                                @V_OLD_CDPRODUTO,
                                @V_OLD_QTPRODRECLOC,
                                @V_OLD_CDAPRERECE, 
                                @V_OLD_SGUNIDADE,
                                @V_OLD_HRTEMPPREPLO,
                                @V_OLD_IDPRODBASELO,
                                @V_OLD_VRPEFATCOCLO,
                                @V_OLD_VRPEFATCORLO,
                                @V_OLD_QTBRUTALOUNR,
                                @V_OLD_QTBRUTALO,
                                @V_OLD_VRPEFATNUTLO,
                                @V_OLD_QTCALCNUTRLO
      
   WHILE (@@FETCH_STATUS = 0) BEGIN
      IF @V_IDCOMANDO = 'D' /* Deleting */ BEGIN
     
         SET @V_DESC = @V_DESC + 'Prato=' + @V_OLD_CDPRATO + ' - ' + @V_OLD_CDFILAUXPRAT;
         SET @V_DESC = @V_DESC + ' Fili=' + @V_OLD_CDFILIAL;

         SELECT @V_CDARVPROD = CDARVPROD
         FROM PRODUTO
         WHERE CDPRODUTO = @V_OLD_CDPRODUTO;

         SET @V_DESC = @V_DESC + ' Prod=' + @V_CDARVPROD;

         IF (ISNULL(@V_OLD_CDAPRERECE, '¿') <> '¿') BEGIN
            SET @V_DESC = @V_DESC + ' Apres=' + @V_OLD_CDAPRERECE;
         END;

         IF (ISNULL(@V_OLD_QTPRODRECLOC, -1) <> -1) BEGIN
            SET @V_DESC = @V_DESC + ' Qtde=' + CONVERT(VARCHAR, @V_OLD_QTPRODRECLOC);
         END;

         IF NOT (@V_OLD_SGUNIDADE IS NULL) BEGIN
            SET @V_DESC = @V_DESC + ' Un=' + CONVERT(VARCHAR, @V_OLD_SGUNIDADE);
         END;

         IF (ISNULL(@V_OLD_VRPEFATCOCLO, -1) <> -1) BEGIN
            SET @V_DESC = @V_DESC + ' GanhoCoc=' + CONVERT(VARCHAR, @V_OLD_VRPEFATCOCLO);
         END;

         IF (ISNULL(@V_OLD_VRPEFATCORLO, -1) <> -1) BEGIN
            SET @V_DESC = @V_DESC + ' PerdLimp=' + CONVERT(VARCHAR, @V_OLD_VRPEFATCORLO);
         END;

         IF (ISNULL(@V_OLD_HRTEMPPREPLO, '¿') <> '¿') BEGIN
            SET @V_DESC = @V_DESC + ' Temp=' + SUBSTRING(@V_OLD_HRTEMPPREPLO, 1, 2) + ':' + SUBSTRING(@V_OLD_HRTEMPPREPLO, 4, 2);
         END;

         IF (ISNULL(@V_OLD_QTBRUTALOUNR, -1) <> -1) BEGIN
             SET @V_DESC = @V_DESC + ' QtBruta=' + CONVERT(VARCHAR, @V_OLD_QTBRUTALOUNR);
         END;

         IF (ISNULL(@V_OLD_QTBRUTALO, -1) <> -1) BEGIN
            SET @V_DESC = @V_DESC + ' QtReq=' + CONVERT(VARCHAR, @V_OLD_QTBRUTALO);
         END;

         IF NOT (@V_OLD_IDPRODBASELO IS NULL) BEGIN
            SET @V_DESC = @V_DESC + ' PrBase=' + CONVERT(VARCHAR, @V_OLD_IDPRODBASELO);
         END;

         IF (ISNULL(@V_OLD_VRPEFATNUTLO, -1) <> -1) BEGIN
            SET @V_DESC = @V_DESC + ' AprovNutr=' + CONVERT(VARCHAR, @V_OLD_VRPEFATNUTLO);
         END;

         IF (ISNULL(@V_OLD_QTCALCNUTRLO, -1) <> -1) BEGIN
            SET @V_DESC = @V_DESC + ' QtNutr=' + CONVERT(VARCHAR, @V_OLD_QTCALCNUTRLO);
         END;

         SET @V_TIPO = '3';

         SET @V_ITPESQ = @V_OLD_CDPRATO+@V_OLD_CDFILAUXPRAT+@V_OLD_CDFILIAL+@V_CDARVPROD;

         SET @V_DTOPER =  GETDATE();
         SELECT
            @V_DSSERVERRDM  = DSSERVERRDM,
            @V_DSREMOTEADDR = DSREMOTEADDR,
            @V_DSREMOTEHOST = DSREMOTEHOST,
            @V_DSSERVMETHOD = DSSERVMETHOD,
            @V_DSREMOTEOPER = DSREMOTEOPER
           FROM
            SQLWEBTUNNING
           WHERE NRAUDSID = @@SPID;
           SELECT @V_USUARIO = MAX(NMOPERADOR)
           FROM OPERADOR
           WHERE  @V_DSREMOTEOPER = CDOPERADOR;

         INSERT INTO LOGOPERA
            (NMTABELA,   DTOPERACAO, NMRESPOPER, IDTIPOOPER, CDPESQITEM, DSOPERACAO,
             DSRDMUSUOPER, DSENDUSUOPER, DSNMUSUOPER, DSMETUSUOPER, CDORESPOPER, CDFILLOGOPER)
         VALUES
            ('RECEFILI',  @V_DTOPER, @V_USUARIO, @V_TIPO,  @V_ITPESQ, @V_DESC,
             @V_DSSERVERRDM, @V_DSREMOTEADDR,  @V_DSREMOTEHOST, @V_DSSERVMETHOD, @V_DSREMOTEOPER, @V_OLD_CDFILIAL);

      END;
      ELSE BEGIN
         IF @V_IDCOMANDO = 'U' /* Updating */ BEGIN

            IF (@V_OLD_CDPRATO      <> @V_NEW_CDPRATO     ) OR
               (@V_OLD_CDFILAUXPRAT <> @V_NEW_CDFILAUXPRAT) OR
               (@V_OLD_CDFILIAL     <> @V_NEW_CDFILIAL    ) OR
               (@V_OLD_CDPRODUTO    <> @V_NEW_CDPRODUTO   ) OR
               (@V_OLD_QTPRODRECLOC <> @V_NEW_QTPRODRECLOC) OR
               (ISNULL(@V_OLD_CDAPRERECE,   '¿') <> ISNULL(@V_NEW_CDAPRERECE,   '¿')) OR
               (ISNULL(@V_OLD_SGUNIDADE,    '¿') <> ISNULL(@V_NEW_SGUNIDADE,    '¿')) OR
               (ISNULL(@V_OLD_HRTEMPPREPLO, '¿') <> ISNULL(@V_NEW_HRTEMPPREPLO, '¿')) OR
               (ISNULL(@V_OLD_IDPRODBASELO, '¿') <> ISNULL(@V_NEW_IDPRODBASELO, '¿')) OR
               (ISNULL(@V_OLD_VRPEFATCOCLO,  -1) <> ISNULL(@V_NEW_VRPEFATCOCLO,  -1)) OR
               (ISNULL(@V_OLD_VRPEFATCORLO,  -1) <> ISNULL(@V_NEW_VRPEFATCORLO,  -1)) OR
               (ISNULL(@V_OLD_QTBRUTALOUNR,  -1) <> ISNULL(@V_NEW_QTBRUTALOUNR,  -1)) OR
               (ISNULL(@V_OLD_QTBRUTALO,     -1) <> ISNULL(@V_NEW_QTBRUTALO,     -1)) OR
               (ISNULL(@V_OLD_VRPEFATNUTLO,  -1) <> ISNULL(@V_NEW_VRPEFATNUTLO,  -1)) OR
               (ISNULL(@V_OLD_QTCALCNUTRLO,  -1) <> ISNULL(@V_NEW_QTCALCNUTRLO,  -1)) BEGIN

               SELECT @V_CDARVPROD = CDARVPROD
               FROM PRODUTO
               WHERE CDPRODUTO = @V_OLD_CDPRODUTO;

               SET @V_TIPO  = '2';
               SET @V_ITPESQ = @V_OLD_CDPRATO+@V_OLD_CDFILAUXPRAT+@V_OLD_CDFILIAL+@V_CDARVPROD;
               SET @V_CDFILIAL = @V_OLD_CDFILIAL;
            END;
         END;
         ELSE BEGIN
            SELECT @V_CDARVPROD = CDARVPROD
            FROM PRODUTO
            WHERE CDPRODUTO = @V_NEW_CDPRODUTO;

            SET @V_TIPO   = '1';
            SET @V_ITPESQ = @V_NEW_CDPRATO+@V_NEW_CDFILAUXPRAT+@V_NEW_CDFILIAL+@V_CDARVPROD;
            SET @V_CDFILIAL = @V_NEW_CDFILIAL;
         END;
      END;

      IF (@V_OLD_CDPRATO <> @V_NEW_CDPRATO) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + 'Prato=' + @V_OLD_CDPRATO + '|' + @V_NEW_CDPRATO + ' - ';
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + 'Prato=' + @V_NEW_CDPRATO + ' - ';
         END;
      END;

      IF (@V_OLD_CDFILAUXPRAT <> @V_NEW_CDFILAUXPRAT) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + '-' + + @V_OLD_CDFILAUXPRAT + '|' + @V_NEW_CDFILAUXPRAT;
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + '-' + @V_NEW_CDFILAUXPRAT;
         END;
      END;

      IF (@V_OLD_CDFILIAL <> @V_NEW_CDFILIAL) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + 'Fili=' + @V_OLD_CDFILIAL + '|' + @V_NEW_CDFILIAL + ' - ';
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + 'Fili=' + @V_NEW_CDFILIAL + ' - ';
         END;
      END;

      IF (@V_OLD_CDPRODUTO <> @V_NEW_CDPRODUTO) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SELECT @V_CDARVPROD = CDARVPROD
            FROM PRODUTO
            WHERE CDPRODUTO = @V_OLD_CDPRODUTO;
            SET @V_DESC = @V_DESC + ' Prod=' + @V_CDARVPROD;

            SELECT @V_CDARVPROD = CDARVPROD
            FROM PRODUTO
            WHERE CDPRODUTO = @V_NEW_CDPRODUTO;
            SET @V_DESC = @V_DESC + '|' + @V_CDARVPROD;
         END;
         ELSE BEGIN
            SELECT @V_CDARVPROD = CDARVPROD
            FROM PRODUTO
            WHERE CDPRODUTO = @V_NEW_CDPRODUTO;
            SET @V_DESC = @V_DESC + ' Prod=' + @V_CDARVPROD;
         END;
      END;

      IF (ISNULL(@V_OLD_CDAPRERECE, '¿') <> ISNULL(@V_NEW_CDAPRERECE, '¿')) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' Apres=' + @V_OLD_CDAPRERECE + '|' + @V_NEW_CDAPRERECE;
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' Apres=' + @V_NEW_CDAPRERECE;
         END;
      END;

      IF (ISNULL(@V_OLD_QTPRODRECLOC, -1) <> ISNULL(@V_NEW_QTPRODRECLOC, -1)) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' Qtde.=' + CONVERT(VARCHAR, @V_OLD_QTPRODRECLOC) + '|' + CONVERT(VARCHAR, @V_NEW_QTPRODRECLOC);
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' Qtde=' + CONVERT(VARCHAR, @V_NEW_QTPRODRECLOC);
         END;
      END;

      IF (ISNULL(@V_OLD_SGUNIDADE, '¿') <> ISNULL(@V_NEW_SGUNIDADE, '¿')) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' Un=' + @V_OLD_SGUNIDADE + '|' + @V_NEW_SGUNIDADE;
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' Un=' + @V_NEW_SGUNIDADE;
         END;
      END;

      IF (ISNULL(@V_NEW_VRPEFATCOCLO, -1) <> ISNULL(@V_NEW_VRPEFATCOCLO, -1)) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' GanhoCoc=' + CONVERT(VARCHAR, @V_OLD_VRPEFATCOCLO) + '|' + CONVERT(VARCHAR, @V_NEW_VRPEFATCOCLO);
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' GanhoCoc=' + CONVERT(VARCHAR, @V_NEW_VRPEFATCOCLO);
         END;
      END;

      IF (ISNULL(@V_OLD_VRPEFATCORLO, -1) <> ISNULL(@V_NEW_VRPEFATCORLO, -1)) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' PerdLimp=' + CONVERT(VARCHAR, @V_OLD_VRPEFATCORLO) + '|' + CONVERT(VARCHAR, @V_NEW_VRPEFATCORLO);
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' PerdLimp=' + CONVERT(VARCHAR, @V_NEW_VRPEFATCORLO);
         END;
      END;

      IF (ISNULL(@V_OLD_HRTEMPPREPLO, '¿') <> ISNULL(@V_NEW_HRTEMPPREPLO, '¿')) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' Temp=' + SUBSTRING(@V_OLD_HRTEMPPREPLO, 1, 2) + ':' + SUBSTRING(@V_OLD_HRTEMPPREPLO, 4, 2) + '|' + SUBSTRING(@V_NEW_HRTEMPPREPLO, 1, 2) + ':' + SUBSTRING(@V_NEW_HRTEMPPREPLO, 4, 2);
         END
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' Temp=' + SUBSTRING(@V_NEW_HRTEMPPREPLO, 1, 2) + ':' + SUBSTRING(@V_NEW_HRTEMPPREPLO, 4, 2);
         END
      END;

      IF (ISNULL(@V_OLD_QTBRUTALOUNR, -1) <> ISNULL(@V_NEW_QTBRUTALOUNR, -1)) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' QtBruta=' + CONVERT(VARCHAR, @V_OLD_QTBRUTALOUNR) + '|' + CONVERT(VARCHAR, @V_NEW_QTBRUTALOUNR);
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' QtBruta=' + CONVERT(VARCHAR, @V_NEW_QTBRUTALOUNR);
         END;
      END;

      IF (ISNULL(@V_OLD_QTBRUTALO, -1) <> ISNULL(@V_NEW_QTBRUTALO, -1)) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' QtReq=' + CONVERT(VARCHAR, @V_OLD_QTBRUTALO) + '|' + CONVERT(VARCHAR, @V_NEW_QTBRUTALO);
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' QtReq=' + CONVERT(VARCHAR, @V_NEW_QTBRUTALO);
         END;
      END;

      IF (ISNULL(@V_OLD_IDPRODBASELO, '¿') <>ISNULL(@V_NEW_IDPRODBASELO, '¿')) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' PrBase=' + @V_OLD_IDPRODBASELO + '|' + @V_NEW_IDPRODBASELO;
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' PrBase=' + @V_NEW_IDPRODBASELO;
         END;
      END;

      IF (ISNULL(@V_OLD_VRPEFATNUTLO, -1) <> ISNULL(@V_NEW_VRPEFATNUTLO, -1)) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' AprovNutr=' + CONVERT(VARCHAR, @V_OLD_VRPEFATNUTLO) + '|' + CONVERT(VARCHAR, @V_NEW_VRPEFATNUTLO);
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' AprovNutr=' + CONVERT(VARCHAR, @V_NEW_VRPEFATNUTLO);
         END;
      END;

      IF (ISNULL(@V_OLD_QTCALCNUTRLO, -1) <> ISNULL(@V_NEW_QTCALCNUTRLO, -1)) BEGIN
         IF @V_IDCOMANDO = 'U' BEGIN
            SET @V_DESC = @V_DESC + ' QtNutr=' + CONVERT(VARCHAR, @V_OLD_QTCALCNUTRLO) + '|' + CONVERT(VARCHAR, @V_NEW_QTCALCNUTRLO);
         END;
         ELSE BEGIN
            SET @V_DESC = @V_DESC + ' QtNutr=' + CONVERT(VARCHAR, @V_NEW_QTCALCNUTRLO);
         END;
      END;

      IF ((@V_TIPO = '1') OR (@V_TIPO = '2'))BEGIN
         IF NOT @V_DESC IS NULL BEGIN
            SET @V_USUARIO = '  ';
            IF NOT @V_USUARIO IS NULL BEGIN
               SET @V_DTOPER =  GETDATE();
  	            SELECT
                  @V_DSSERVERRDM  = DSSERVERRDM,
                  @V_DSREMOTEADDR = DSREMOTEADDR,
                  @V_DSREMOTEHOST = DSREMOTEHOST,
		            @V_DSSERVMETHOD = DSSERVMETHOD,
                  @V_DSREMOTEOPER = DSREMOTEOPER
   	           FROM
                  SQLWEBTUNNING
                 WHERE NRAUDSID = @@SPID;
                 SELECT @V_USUARIO = MAX(NMOPERADOR)
                 FROM OPERADOR
                 WHERE  @V_DSREMOTEOPER = CDOPERADOR;

               INSERT INTO LOGOPERA
                  (NMTABELA,   DTOPERACAO, NMRESPOPER, IDTIPOOPER, CDPESQITEM, DSOPERACAO,
                   DSRDMUSUOPER, DSENDUSUOPER, DSNMUSUOPER, DSMETUSUOPER, CDORESPOPER, CDFILLOGOPER)
               VALUES
                  ('RECEFILI',  @V_DTOPER, @V_USUARIO, @V_TIPO,  @V_ITPESQ, @V_DESC,
                   @V_DSSERVERRDM, @V_DSREMOTEADDR,  @V_DSREMOTEHOST, @V_DSSERVMETHOD, @V_DSREMOTEOPER, @V_CDFILIAL);
            END;  
         END;
      END;

      FETCH NEXT FROM C_DADOS INTO @V_IDCOMANDO,
                                @V_NEW_CDPRATO,     
                                @V_NEW_CDFILAUXPRAT,
                                @V_NEW_CDFILIAL,    
                                @V_NEW_CDPRODUTO,   
                                @V_NEW_QTPRODRECLOC,
                                @V_NEW_CDAPRERECE,  
                                @V_NEW_SGUNIDADE,  
                                @V_NEW_HRTEMPPREPLO,
                                @V_NEW_IDPRODBASELO,
                                @V_NEW_VRPEFATCOCLO,
                                @V_NEW_VRPEFATCORLO,
                                @V_NEW_QTBRUTALOUNR,
                                @V_NEW_QTBRUTALO,   
                                @V_NEW_VRPEFATNUTLO,
                                @V_NEW_QTCALCNUTRLO,
                                @V_OLD_CDPRATO,
                                @V_OLD_CDFILAUXPRAT,
                                @V_OLD_CDFILIAL,
                                @V_OLD_CDPRODUTO,
                                @V_OLD_QTPRODRECLOC,
                                @V_OLD_CDAPRERECE, 
                                @V_OLD_SGUNIDADE,
                                @V_OLD_HRTEMPPREPLO,
                                @V_OLD_IDPRODBASELO,
                                @V_OLD_VRPEFATCOCLO,
                                @V_OLD_VRPEFATCORLO,
                                @V_OLD_QTBRUTALOUNR,
                                @V_OLD_QTBRUTALO,
                                @V_OLD_VRPEFATNUTLO,
                                @V_OLD_QTCALCNUTRLO
   END;
   CLOSE      C_DADOS;
   DEALLOCATE C_DADOS;

END;
GO

-- VERSAO --
EXEC ATUVEROBJ 'LOG_PLA_RECEFILI','5.85.000';
GO

