SET TERM ^ ;

CREATE OR ALTER trigger ttbesteira_b9u for tbesteira
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
begin

   HISTORICO = '';

   if (OLD.DESCRICAO <> NEW.DESCRICAO) then
       BEGIN
       HISTORICO = HISTORICO||' Desc.: '||OLD.DESCRICAO||' -> '||NEW.DESCRICAO;
       END
   if (OLD.Perfil <> NEW.Perfil) then
       BEGIN
       HISTORICO = HISTORICO||' Perfil: '||OLD.Perfil||' -> '||NEW.Perfil;
       END
   if (OLD.Perfil_Ped <> NEW.Perfil_Ped) then
       BEGIN
       HISTORICO = HISTORICO||' Perf.Ped.: '||OLD.Perfil_Ped||' -> '||NEW.Perfil_Ped;
       END
   if (OLD.FAMILIA_CODIGO <> NEW.FAMILIA_CODIGO) then
       BEGIN
       HISTORICO = HISTORICO||' Fam.: '||OLD.FAMILIA_CODIGO||' -> '||NEW.FAMILIA_CODIGO;
       END
   if (OLD.CODIGO1 <> NEW.CODIGO1) then
       BEGIN
       HISTORICO = HISTORICO||' Cod.Bar.: '||OLD.CODIGO1||' -> '||NEW.CODIGO1;
       END
   if (OLD.Taloes <> NEW.Taloes) then
       BEGIN
       HISTORICO = HISTORICO||' Rem.Aber.: '||OLD.Taloes||' -> '||NEW.Taloes;
       END

   if (OLD.REG_ESTOQUE <> NEW.REG_ESTOQUE) then
       BEGIN
       HISTORICO = HISTORICO||' Reg.Est.: '||OLD.REG_ESTOQUE||' -> '||NEW.REG_ESTOQUE;
       END

   if (OLD.REG_QUANTIDADE <> NEW.REG_QUANTIDADE) then
       BEGIN
       HISTORICO = HISTORICO||' Reg.Qtd.: '||OLD.REG_QUANTIDADE||' -> '||NEW.REG_QUANTIDADE;
       END  

   if (OLD.REQUISITA_SOBRA <> NEW.REQUISITA_SOBRA) then
       BEGIN
       HISTORICO = HISTORICO||' Req.Sob.: '||OLD.REQUISITA_SOBRA||' -> '||NEW.REQUISITA_SOBRA;
       END

   if (OLD.VER_PECA_DISPONIVEL <> NEW.VER_PECA_DISPONIVEL) then
       BEGIN
       HISTORICO = HISTORICO||' Ver.PC.Disp.: '||OLD.VER_PECA_DISPONIVEL||' -> '||NEW.VER_PECA_DISPONIVEL;
       END

   if (OLD.VER_PARES <> NEW.VER_PARES) then
       BEGIN
       HISTORICO = HISTORICO||' Ver.Pares: '||OLD.VER_PARES||' -> '||NEW.VER_PARES;
       END

   if (OLD.HABILITA_QUEBRA_TALAO_SKU <> NEW.HABILITA_QUEBRA_TALAO_SKU) then
       BEGIN
       HISTORICO = HISTORICO||' Hab.Quebra: '||OLD.HABILITA_QUEBRA_TALAO_SKU||' -> '||NEW.HABILITA_QUEBRA_TALAO_SKU;
       END

   if (OLD.SUPERVISOR1 <> NEW.SUPERVISOR1) then
       BEGIN
       HISTORICO = HISTORICO||' Superv.1: '||OLD.SUPERVISOR1||' -> '||NEW.SUPERVISOR1;
       END
   if (OLD.SUPERVISOR2 <> NEW.SUPERVISOR2) then
       BEGIN
       HISTORICO = HISTORICO||' Superv.2: '||OLD.SUPERVISOR2||' -> '||NEW.SUPERVISOR2;
       END

   if (OLD.BSC_GRUPO <> NEW.BSC_GRUPO) then
       BEGIN
       HISTORICO = HISTORICO||' Grp.BSC: '||OLD.BSC_GRUPO||' -> '||NEW.BSC_GRUPO;
       END

   if (OLD.MENSAGEM <> NEW.MENSAGEM) then
       BEGIN
       HISTORICO = HISTORICO||' Msg.alterada.';
       END

   if (OLD.CCUSTO <> NEW.CCUSTO) then
       BEGIN
       HISTORICO = HISTORICO||' C.Custo: '||OLD.CCUSTO||' -> '||NEW.CCUSTO;
       END
   if (OLD.PRAZO_PRODUCAO <> NEW.PRAZO_PRODUCAO) then
       BEGIN
       HISTORICO = HISTORICO||' Pzo.Prod: '||OLD.PRAZO_PRODUCAO||' -> '||NEW.PRAZO_PRODUCAO;
       END

   if (OLD.COLABORADORES <> NEW.COLABORADORES) then
       BEGIN
       HISTORICO = HISTORICO||' Colaboradores: '||OLD.COLABORADORES||' -> '||NEW.COLABORADORES;
       END

   if (OLD.PERC_INEFICIENCIA <> NEW.PERC_INEFICIENCIA) then
       BEGIN
       HISTORICO = HISTORICO||' Perc. Inefic.: '||OLD.PERC_INEFICIENCIA||'%'||' -> '||NEW.PERC_INEFICIENCIA||'%';
       END

   if (OLD.PRODUCAO <> NEW.PRODUCAO) then
       BEGIN
       HISTORICO = HISTORICO||' Cap.Prod: '||OLD.PRODUCAO||' -> '||NEW.PRODUCAO;
       END

   if (OLD.SEG  <> NEW.SEG or OLD.H_SEG <> NEW.H_SEG) then
       BEGIN
       HISTORICO = HISTORICO||' Min.SEG. '||OLD.SEG||' -> '||NEW.SEG||' Hor. '||OLD.H_SEG||' -> '||NEW.H_SEG;
       END
   if (OLD.TER  <> NEW.TER or OLD.H_TER <> NEW.H_TER) then
       BEGIN
       HISTORICO = HISTORICO||' Min.TER. '||OLD.TER||' -> '||NEW.TER||' Hor. '||OLD.H_TER||' -> '||NEW.H_TER;
       END
   if (OLD.QUA  <> NEW.QUA or OLD.H_QUA <> NEW.H_QUA) then
       BEGIN
       HISTORICO = HISTORICO||' Min.QUA. '||OLD.QUA||' -> '||NEW.QUA||' Hor. '||OLD.H_QUA||' -> '||NEW.H_QUA;
       END
   if (OLD.QUI  <> NEW.QUI or OLD.H_QUI <> NEW.H_QUI) then
       BEGIN
       HISTORICO = HISTORICO||' Min.QUI. '||OLD.QUI||' -> '||NEW.QUI||' Hor. '||OLD.H_QUI||' -> '||NEW.H_QUI;
       END
   if (OLD.SEX  <> NEW.SEX or OLD.H_SEX <> NEW.H_SEX) then
       BEGIN
       HISTORICO = HISTORICO||' Min.SEX. '||OLD.SEX||' -> '||NEW.SEX||' Hor. '||OLD.H_SEX||' -> '||NEW.H_SEX;
       END
   if (OLD.SAB  <> NEW.SAB or OLD.H_SAB <> NEW.H_SAB) then
       BEGIN
       HISTORICO = HISTORICO||' Min.SAB. '||OLD.SAB||' -> '||NEW.SAB||' Hor. '||OLD.H_SAB||' -> '||NEW.H_SAB;
       END
   if (OLD.DOM  <> NEW.DOM or OLD.H_DOM <> NEW.H_DOM) then
       BEGIN
       HISTORICO = HISTORICO||' Min.DOM. '||OLD.DOM||' -> '||NEW.DOM||' Hor. '||OLD.H_DOM||' -> '||NEW.H_DOM;
       END

   if (OLD.STATUS <> NEW.STATUS) then
       BEGIN
       HISTORICO = HISTORICO||' Status '||OLD.STATUS||' -> '||NEW.STATUS;
       END

   if (OLD.TIPO_AGRUPAMENTO <> NEW.TIPO_AGRUPAMENTO) then
       BEGIN
       HISTORICO = HISTORICO||' TIPO AGRUP. '||OLD.TIPO_AGRUPAMENTO||' -> '||NEW.TIPO_AGRUPAMENTO;
       END

   if (char_length(:HISTORICO) > 500) then
       BEGIN
       :HISTORICO = SUBSTRING(:HISTORICO from 1 for 500);
       END

   if (HISTORICO <> '') Then
        HISTORICO = FN_ELIPSES(HISTORICO,500);
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBESTEIRA', 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),
       :HISTORICO);
       End
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbesteira_b06iu for tbesteira
active before insert or update position 0
AS
declare variable TIPO VARCHAR(10);
begin

    FOR
        SELECT
            T.TIPO_AGRUPAMENTO
        FROM TBESTEIRA T
    INTO
        :TIPO
    DO
    BEGIN
        IF(NEW.TIPO_AGRUPAMENTO = :TIPO) THEN
        BEGIN
            EXCEPTION "..." 'TIPO DE AGRUPAMENTO JÁ EXISTENTE EM GRUPO DE PRODUÇÃO! OPERAÇÃO CANCELADA.';
        END
    END
end
^

SET TERM ; ^

