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

    HISTORICO = '';

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

    IF ( OLD.CAIXABANCO_ID IS DISTINCT FROM NEW.CAIXABANCO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' CAIXA/BANCO: '|| COALESCE(OLD.CAIXABANCO_ID, 0)||' -> '||COALESCE(NEW.CAIXABANCO_ID, 0);
    END

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