ALTER TABLE TBINVENTARIO_MATERIA_PRIMA
    ADD ENCERRADO INTEGER;

UPDATE TBINVENTARIO_MATERIA_PRIMA T SET T.ENCERRADO = 0 WHERE T.ID > 0

SET TERM ^ ;

CREATE OR ALTER trigger ttbinventario_mat_prima_b01u for tbinventario_materia_prima
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

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

    IF ( NEW.BLOQUEIA_ESTOQUE IS DISTINCT FROM OLD.BLOQUEIA_ESTOQUE) THEN
    BEGIN
        HISTORICO = HISTORICO||' BLQ.ESTOQUE:'||COALESCE(OLD.BLOQUEIA_ESTOQUE, 0)||'->'||COALESCE(NEW.BLOQUEIA_ESTOQUE, 0);
    END

    IF ( NEW.ENCERRADO IS DISTINCT FROM OLD.ENCERRADO AND NEW.ENCERRADO = 1) THEN
    BEGIN
        HISTORICO = HISTORICO||' INVENTÁRIO ENCERRADO';
    END

    IF ( NEW.ENCERRADO IS DISTINCT FROM OLD.ENCERRADO AND NEW.ENCERRADO = 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' INVENTÁRIO REABILITADO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = ' REGISTRO ALTERADO: '||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBINVENTARIO_MATERIA_PRIMA',NEW.ID, HISTORICO);
    END
END
^

SET TERM ; ^

