SET TERM ^ ;

ALTER TABLE TBREPRESENTANTE_VENDEDOR
ADD STATUS INTEGER
DEFAULT 1^

UPDATE TBREPRESENTANTE_VENDEDOR SET STATUS = 1 WHERE STATUS IS NULL^

CREATE OR ALTER trigger ttbrepresentante_vendedor_b03u for tbrepresentante_vendedor
active before update position 3
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

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

    IF (OLD.COMISSAO <> NEW.COMISSAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' COMISSÃO:'||OLD.COMISSAO||'->'||NEW.COMISSAO;
    END
    
    IF (OLD.REPRESENTANTE_CODIGO <> NEW.REPRESENTANTE_CODIGO) THEN
    BEGIN
        HISTORICO = HISTORICO||' REP:'||OLD.REPRESENTANTE_CODIGO||'->'||NEW.REPRESENTANTE_CODIGO;
    END  
    
    IF (OLD.GERAR_COMISSAO <> NEW.GERAR_COMISSAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' GERAR COMISSAO:'||OLD.GERAR_COMISSAO||'->'||NEW.GERAR_COMISSAO;
    END  
    
    IF (OLD.STATUS IS DISTINCT FROM NEW.STATUS) THEN
    BEGIN
        HISTORICO = HISTORICO||' STATUS:'||COALESCE(OLD.STATUS,0)||'->'||COALESCE(NEW.STATUS,0);
    END

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

END^

^ SET TERM ; ^