SET TERM ^ ;

CREATE OR ALTER trigger ttbfluxo_producao_b02u for tbfluxo_producao
inactive before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.DESCRICAO <> NEW.DESCRICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Descricao do Fluxo: '||OLD.ID||', Alterada: '|| OLD.DESCRICAO||'->'||NEW.DESCRICAO;
    END

    IF ( OLD.MAQUINA_ID <> NEW.MAQUINA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' ID Maquina do Fluxo: '||OLD.ID||', Alterada: '|| OLD.MAQUINA_ID||'->'||NEW.MAQUINA_ID;
    END

    IF ( OLD.STATUS <> NEW.STATUS) THEN
    BEGIN
        HISTORICO = HISTORICO||' Status do Fluxo: '||OLD.ID||', Alterada: '|| OLD.STATUS||'->'||NEW.STATUS;
    END

    IF ( OLD.TEMPO <> NEW.TEMPO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Tempo do Fluxo: '||OLD.ID||', Alterada: '|| OLD.TEMPO||'->'||NEW.TEMPO;
    END

    IF ( OLD.TIPO <> NEW.TIPO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Tipo do Fluxo: '||OLD.ID||', Alterada: '|| OLD.TIPO||'->'||NEW.TIPO;
    END

    IF ( OLD.BALANCEAMENTO <> NEW.BALANCEAMENTO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Balanceamento do Fluxo: '||OLD.ID||', Alterada: '|| OLD.BALANCEAMENTO||'->'||NEW.BALANCEAMENTO;
    END

    IF ( OLD.TEMPO_VAR_COR1 <> NEW.TEMPO_VAR_COR1) THEN
    BEGIN
        HISTORICO = HISTORICO||' Tempo Conf.1 Fluxo: '||OLD.ID||', Alterada: '|| OLD.TEMPO_VAR_COR1||'->'||NEW.TEMPO_VAR_COR1;
    END

    IF ( OLD.TEMPO_VAR_COR2 <> NEW.TEMPO_VAR_COR2) THEN
    BEGIN
        HISTORICO = HISTORICO||' Tempo Conf.2 Fluxo: '||OLD.ID||', Alterada: '|| OLD.TEMPO_VAR_COR2||'->'||NEW.TEMPO_VAR_COR2;
    END

    IF ( OLD.QUANTIDADE_INICIAL <> NEW.QUANTIDADE_INICIAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' Qtd. Inicial do Fluxo: '||OLD.ID||', Alterada: '|| OLD.QUANTIDADE_INICIAL||'->'||NEW.QUANTIDADE_INICIAL;
    END

    IF ( OLD.QUANTIDADE_FINAL <> NEW.QUANTIDADE_FINAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' Qtd. Final do Fluxo: '||OLD.ID||', Alterada: '|| OLD.QUANTIDADE_FINAL||'->'||NEW.QUANTIDADE_FINAL;
    END

    IF ( OLD.QUANTIDADE_OPERADOR <> NEW.QUANTIDADE_OPERADOR) THEN
    BEGIN
        HISTORICO = HISTORICO||'Qtd. Operador: '||OLD.ID||',  Alterada: '|| OLD.QUANTIDADE_OPERADOR||'->'||NEW.QUANTIDADE_OPERADOR;
    END

    IF ( OLD.FLUXO_PADRAO <> NEW.FLUXO_PADRAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'Fluxo Padrao: '||OLD.ID||', Alterado: '|| OLD.FLUXO_PADRAO||'->'||NEW.FLUXO_PADRAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFLUXO_PRODUCAO', NEW.ID, FN_ELIPSE2(HISTORICO,500));
    END
end^

CREATE OR ALTER trigger ttbmodelo_fluxo_producao_b03d for tbmodelo_fluxo_producao
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(8000);
DECLARE VARIABLE Grade Integer;
DECLARE VARIABLE G01 VarChar(10); DECLARE VARIABLE G02 VarChar(10);
DECLARE VARIABLE G03 VarChar(10); DECLARE VARIABLE G04 VarChar(10);
DECLARE VARIABLE G05 VarChar(10); DECLARE VARIABLE G06 VarChar(10);
DECLARE VARIABLE G07 VarChar(10); DECLARE VARIABLE G08 VarChar(10);
DECLARE VARIABLE G09 VarChar(10); DECLARE VARIABLE G10 VarChar(10);
DECLARE VARIABLE G11 VarChar(10); DECLARE VARIABLE G12 VarChar(10);
DECLARE VARIABLE G13 VarChar(10); DECLARE VARIABLE G14 VarChar(10);
DECLARE VARIABLE G15 VarChar(10); DECLARE VARIABLE G16 VarChar(10);
DECLARE VARIABLE G17 VarChar(10); DECLARE VARIABLE G18 VarChar(10);
DECLARE VARIABLE G19 VarChar(10); DECLARE VARIABLE G20 VarChar(10);
BEGIN

    HISTORICO = '';

    IF(OLD.MODELO_ID > 0) THEN
    BEGIN
        IF(OLD.TAMANHO =  0 AND OLD.TEMPO IS NOT NULL)THEN BEGIN HISTORICO = HISTORICO||' T00(min)'; END
        IF(OLD.TAMANHO =  0 AND OLD.TM IS NOT NULL)THEN BEGIN HISTORICO = HISTORICO||' T00(seg)'; END
        For
            SELECT FIRST 1 Coalesce(G.CODIGO,0),
                 Coalesce(G.T01,'T01'), Coalesce(G.T02,'T02'), Coalesce(G.T03,'T03'), Coalesce(G.T04,'T03'),
                 Coalesce(G.T05,'T05'), Coalesce(G.T06,'T06'), Coalesce(G.T07,'T07'), Coalesce(G.T08,'T07'),
                 Coalesce(G.T09,'T09'), Coalesce(G.T10,'T10'), Coalesce(G.T11,'T11'), Coalesce(G.T12,'T11'),
                 Coalesce(G.T13,'T13'), Coalesce(G.T14,'T14'), Coalesce(G.T15,'T15'), Coalesce(G.T16,'T15'),
                 Coalesce(G.T17,'T17'), Coalesce(G.T18,'T18'), Coalesce(G.T19,'T19'), Coalesce(G.T20,'T19')
        From TbGrade G WHERE G.Codigo = coalesce((select first 1 z.grade_codigo from tbmodelo z where z.codigo = old.MODELO_ID),0)
        Into :Grade,:G01,:G02,:G03,:G04,:G05,:G06,:G07,:G08,:G09,
         :G10,:G11,:G12,:G13,:G14,:G15,:G16,:G17,:G18,:G19,:G20
        DO
        BEGIN
        IF(OLD.TAMANHO = 1 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G01||'(min)'; END
        IF(OLD.TAMANHO = 2 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G02||'(min)'; END
        IF(OLD.TAMANHO = 3 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G03||'(min)'; END
        IF(OLD.TAMANHO = 4 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G04||'(min)'; END
        IF(OLD.TAMANHO = 5 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G05||'(min)'; END
        IF(OLD.TAMANHO = 6 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G06||'(min)'; END
        IF(OLD.TAMANHO = 7 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G07||'(min)'; END
        IF(OLD.TAMANHO = 8 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G08||'(min)'; END
        IF(OLD.TAMANHO = 9 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G09||'(min)'; END
        IF(OLD.TAMANHO = 10 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G10||'(min)'; END
        IF(OLD.TAMANHO = 11 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G11||'(min)'; END
        IF(OLD.TAMANHO = 12 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G12||'(min)'; END
        IF(OLD.TAMANHO = 13 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G13||'(min)'; END
        IF(OLD.TAMANHO = 14 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G14||'(min)'; END
        IF(OLD.TAMANHO = 15 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G15||'(min)'; END
        IF(OLD.TAMANHO = 16 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G16||'(min)'; END
        IF(OLD.TAMANHO = 17 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G17||'(min)'; END
        IF(OLD.TAMANHO = 18 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G18||'(min)'; END
        IF(OLD.TAMANHO = 19 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G19||'(min)'; END
        IF(OLD.TAMANHO = 20 AND OLD.TEMPO IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G20||'(min)'; END
        
        IF(OLD.TAMANHO = 1 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G01||'(seg)'; END
        IF(OLD.TAMANHO = 2 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G02||'(seg)'; END
        IF(OLD.TAMANHO = 3 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G03||'(seg)'; END
        IF(OLD.TAMANHO = 4 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G04||'(seg)'; END
        IF(OLD.TAMANHO = 5 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G05||'(seg)'; END
        IF(OLD.TAMANHO = 6 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G06||'(seg)'; END
        IF(OLD.TAMANHO = 7 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G07||'(seg)'; END
        IF(OLD.TAMANHO = 8 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G08||'(seg)'; END
        IF(OLD.TAMANHO = 9 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G09||'(seg)'; END
        IF(OLD.TAMANHO = 10 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G10||'(seg)'; END
        IF(OLD.TAMANHO = 11 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G11||'(seg)'; END
        IF(OLD.TAMANHO = 12 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G12||'(seg)'; END
        IF(OLD.TAMANHO = 13 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G13||'(seg)'; END
        IF(OLD.TAMANHO = 14 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G14||'(seg)'; END
        IF(OLD.TAMANHO = 15 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G15||'(seg)'; END
        IF(OLD.TAMANHO = 16 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G16||'(seg)'; END
        IF(OLD.TAMANHO = 17 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G17||'(seg)'; END
        IF(OLD.TAMANHO = 18 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G18||'(seg)'; END
        IF(OLD.TAMANHO = 19 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G19||'(seg)'; END
        IF(OLD.TAMANHO = 20 AND OLD.TM IS NOT NULL) THEN BEGIN HISTORICO = HISTORICO||' '||:G20||'(seg)'; END
        END
       HISTORICO = ' FLUXO DE PRODUCAO:'||IIF(old.FLUXO_ID > 0,(select first 1 old.fluxo_id||' - '||b.descricao from TBFLUXO_PRODUCAO b where b.ID = old.FLUXO_ID),old.FLUXO_ID)||', COR: '||IIF(old.COR_ID > 0,(select first 1 old.COR_ID||' - '||a.descricao from TBCOR a where a.CODIGO = old.COR_ID),'*** PADRÃO ***')||HISTORICO||' EXCLUIDO(S).';
    END
    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBMODELO', OLD.MODELO_ID, FN_ELIPSE2(:HISTORICO,500));
    END
END^

^ SET TERM ; ^