
CREATE OR ALTER trigger ttbsac_defeito_b01u for tbsac_defeito
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

end;


ALTER TABLE TBSAC_DEFEITO ADD OLD_PERFIL VARCHAR(10) DEFAULT '';
update TBSAC_DEFEITO set OLD_PERFIL = CLASSIFICACAO;
ALTER TABLE TBSAC_DEFEITO DROP CLASSIFICACAO;
ALTER TABLE TBSAC_DEFEITO ADD CLASSIFICACAO VARCHAR(10) DEFAULT '';
update TBSAC_DEFEITO set CLASSIFICACAO = OLD_PERFIL;
ALTER TABLE TBSAC_DEFEITO DROP OLD_PERFIL;


CREATE OR ALTER trigger ttbsac_defeito_b01u for tbsac_defeito
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

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

    IF ( OLD.STATUS <> NEW.STATUS) THEN
    BEGIN
        HISTORICO = HISTORICO||' Status do Defeito: '||OLD.CODIGO||', Alterado: '|| OLD.STATUS||'->'||NEW.STATUS;
    END

    IF ( OLD.SETOR <> NEW.SETOR) THEN
    BEGIN
        HISTORICO = HISTORICO||' Setor do Defeito: '||OLD.CODIGO||', Alterado: '|| OLD.SETOR||'->'||NEW.SETOR;
    END

    IF ( OLD.FAMILIA_ID <> NEW.FAMILIA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' Familia do Defeito: '||OLD.CODIGO||', Alterada: '|| OLD.FAMILIA_ID||'->'||NEW.FAMILIA_ID;
    END

    IF ( OLD.QUALIDADE <> NEW.QUALIDADE) THEN
    BEGIN
        HISTORICO = HISTORICO||' Defeito de Qualidade no: '||OLD.CODIGO||', Alterado: '|| OLD.QUALIDADE||'->'||NEW.QUALIDADE;
    END

    IF ( OLD.ESTOQUE <> NEW.ESTOQUE) THEN
    BEGIN
        HISTORICO = HISTORICO||' Estoque de Estragado no: '||OLD.CODIGO||', Alterado: '|| OLD.ESTOQUE||'->'||NEW.ESTOQUE;
    END

    IF ( OLD.CONFORMACAO <> NEW.CONFORMACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Conformacao no Defeito: '||OLD.CODIGO||', Alterado: '|| OLD.CONFORMACAO||'->'||NEW.CONFORMACAO;
    END

    IF ( OLD.CLASSIFICACAO <> NEW.CLASSIFICACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Classificacao no Defeito: '||OLD.CODIGO||', Alterada: '|| OLD.CLASSIFICACAO||'->'||NEW.CLASSIFICACAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBSAC_DEFEITO', NEW.CODIGO, HISTORICO);
    END
end;
