CREATE OR ALTER trigger ttbsetor_b9u for tbsetor
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

   HISTORICO = '';

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

   IF (OLD.DESCRICAO_RESUMIDA <> NEW.DESCRICAO_RESUMIDA) THEN
       BEGIN
       HISTORICO = HISTORICO||' DESC.RESUMIDA:'||coalesce(OLD.DESCRICAO_RESUMIDA,'')||' -> '||coalesce(NEW.DESCRICAO_RESUMIDA,'');
       END

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

   IF (OLD.CODIGO1 <> NEW.CODIGO1) THEN
       BEGIN
       HISTORICO = HISTORICO||' COD.BARRAS:'||OLD.CODIGO1||'->'||NEW.CODIGO1;
       END

--   IF (OLD.PLANO_MESTRE <> NEW.PLANO_MESTRE) THEN
--       BEGIN
--       HISTORICO = HISTORICO||' PL.MESTRE:'||OLD.PLANO_MESTRE||'->'||NEW.PLANO_MESTRE;
--       END

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

   IF (OLD.CCUSTO <> NEW.CCUSTO) THEN
       BEGIN
       HISTORICO = HISTORICO||' C.CUSTO:'||OLD.CCUSTO||'->'||NEW.CCUSTO;
       END

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

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

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

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

   IF (OLD.VER_PAINEL_PROD <> NEW.VER_PAINEL_PROD) THEN
       BEGIN
       HISTORICO = HISTORICO||' VER PAINEL PROD:'||OLD.VER_PAINEL_PROD||'->'||NEW.VER_PAINEL_PROD;
       END

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

   IF (OLD.SETOR_RESPONSAVEL <> NEW.SETOR_RESPONSAVEL) THEN
       BEGIN
       HISTORICO = HISTORICO||' SETOR RESP:'||OLD.SETOR_RESPONSAVEL||'->'||NEW.SETOR_RESPONSAVEL;
       END

    IF (FN_IS_EMPTY(OLD.HABILITA_COMPOSICAO_CUSTO, 0) <> FN_IS_EMPTY(NEW.HABILITA_COMPOSICAO_CUSTO, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' COMP.CUSTO:'||FN_IS_EMPTY(OLD.HABILITA_COMPOSICAO_CUSTO, 0)||'->'||FN_IS_EMPTY(NEW.HABILITA_COMPOSICAO_CUSTO, 0);
       END

    IF (FN_IS_EMPTY(OLD.EXIGIR_REG_SEQUENCIA, 0) <> FN_IS_EMPTY(NEW.EXIGIR_REG_SEQUENCIA, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' EXIG.REG.SEQ:'||FN_IS_EMPTY(OLD.EXIGIR_REG_SEQUENCIA, 0)||'->'||FN_IS_EMPTY(NEW.EXIGIR_REG_SEQUENCIA, 0);
       END

    IF (FN_IS_EMPTY(OLD.VER_PROD_HORARIA, 0) <> FN_IS_EMPTY(NEW.VER_PROD_HORARIA, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' VER PROD.HORA:'||FN_IS_EMPTY(OLD.VER_PROD_HORARIA, 0)||'->'||FN_IS_EMPTY(NEW.VER_PROD_HORARIA, 0);
       END  

    IF (FN_IS_EMPTY(OLD.PERMITE_ALT_QTD, 0) <> FN_IS_EMPTY(NEW.PERMITE_ALT_QTD, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' PERM.ALT.QTD:'||FN_IS_EMPTY(OLD.PERMITE_ALT_QTD, 0)||'->'||FN_IS_EMPTY(NEW.PERMITE_ALT_QTD, 0);
       END

    IF (FN_IS_EMPTY(OLD.EXIGE_OPERADOR, 0) <> FN_IS_EMPTY(NEW.EXIGE_OPERADOR, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' EXIG.OPERADOR:'||FN_IS_EMPTY(OLD.EXIGE_OPERADOR, 0)||'->'||FN_IS_EMPTY(NEW.EXIGE_OPERADOR, 0);
       END

    IF (FN_IS_EMPTY(OLD.EXIGE_CONF_PECAS, 0) <> FN_IS_EMPTY(NEW.EXIGE_CONF_PECAS, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' EXIG.CONF.PECAS:'||FN_IS_EMPTY(OLD.EXIGE_CONF_PECAS, 0)||'->'||FN_IS_EMPTY(NEW.EXIGE_CONF_PECAS, 0);
       END

    IF (FN_IS_EMPTY(OLD.HABILITA_QTD_RESTANTE, 0) <> FN_IS_EMPTY(NEW.HABILITA_QTD_RESTANTE, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' HAB.QTD.RESTANTE:'||FN_IS_EMPTY(OLD.HABILITA_QTD_RESTANTE, 0)||'->'||FN_IS_EMPTY(NEW.HABILITA_QTD_RESTANTE, 0);
       END

    IF (FN_IS_EMPTY(OLD.HABILITA_QTD_REALIZADA, 0) <> FN_IS_EMPTY(NEW.HABILITA_QTD_REALIZADA, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' HAB.QTD.REALIZADA:'||FN_IS_EMPTY(OLD.HABILITA_QTD_REALIZADA, 0)||'->'||FN_IS_EMPTY(NEW.HABILITA_QTD_REALIZADA, 0);
       END

    IF (FN_IS_EMPTY(OLD.HABILITA_TEMPO, 0) <> FN_IS_EMPTY(NEW.HABILITA_TEMPO, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' HAB.TEMPO:'||FN_IS_EMPTY(OLD.HABILITA_TEMPO, 0)||'->'||FN_IS_EMPTY(NEW.HABILITA_TEMPO, 0);
       END

    IF (FN_IS_EMPTY(OLD.DIAS_PRODUZIR, 0) <> FN_IS_EMPTY(NEW.DIAS_PRODUZIR, 0)) THEN
       BEGIN
       HISTORICO = HISTORICO||' PRAZO CONCLUSAO:'||FN_IS_EMPTY(OLD.DIAS_PRODUZIR, 0)||'->'||FN_IS_EMPTY(NEW.DIAS_PRODUZIR, 0);
       END

   IF (HISTORICO <> '') THEN
       BEGIN
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBSETOR', OLD.CODIGO,
      (SELECT FIRST 1 MON$USER FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
      (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
       'REGISTRO ALTERADO: '||:HISTORICO);
       END
END;

