SET TERM ^ ;

CREATE OR ALTER trigger ttbcoletor_comparativo_b02u for tbcoletor_comparativo
active before update position 2
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE USUARIO VARCHAR(20);
BEGIN

   HISTORICO = '';

   IF (OLD.descricao <> NEW.descricao) THEN
   BEGIN
        HISTORICO = HISTORICO||' DESC:'||OLD.descricao||'->'||NEW.descricao;
   END

   IF (OLD.executado <> NEW.executado) THEN
   BEGIN
        if(NEW.executado = 1)then
        begin
            HISTORICO = HISTORICO||'AJUSTE EXECUTADO';
        end else
        begin
            HISTORICO = HISTORICO||'AJUSTE EXCLUIDO';
        end
   END

   IF(NEW.COMPARATIVO = '[]') THEN
   BEGIN
    HISTORICO = HISTORICO||' COMPARATIVO EXCLUÍDO: '||FORMATDATETIME(OLD.DATA_COMPARATIVO)||', EST: '||OLD.ESTABELECIMENTO_ID||', LOC: '||OLD.LOCALIZACAO_ID||', FAM: '||COALESCE(OLD.FAMILIA_ID, '');
   END

   IF(NEW.COMPARATIVO <> OLD.COMPARATIVO) THEN
   BEGIN
    HISTORICO = HISTORICO||' COMPARATIVO GERADO: '||FORMATDATETIME(NEW.DATA_COMPARATIVO)||', EST: '||NEW.ESTABELECIMENTO_ID||', LOC: '||NEW.LOCALIZACAO_ID||', FAM: '||COALESCE(NEW.FAMILIA_ID, '');
   END
 
   IF (HISTORICO <> '') THEN
   BEGIN
       USUARIO = (SELECT FIRST 1 MON$USER FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION);

       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
       'TBCOLETOR_COMPARATIVO', OLD.id, :USUARIO,
       (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
       :HISTORICO);
  end
end
^

SET TERM ; ^


ALTER TABLE TBCOLETOR_COMPARATIVO
    ADD MARCADO INTEGER;


