SET TERM ^ ;

CREATE OR ALTER TRIGGER TTBPDV_MOVIMENTO_ANTEC_B02U FOR TBPDV_MOVIMENTO_ANTECIPACAO
ACTIVE BEFORE UPDATE POSITION 4
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
BEGIN
    HISTORICO = '';
    
    IF(OLD.ESTABELECIMENTO_ID <> NEW.ESTABELECIMENTO_ID)THEN
    BEGIN
       HISTORICO = HISTORICO||' ESTAB:'||OLD.ESTABELECIMENTO_ID||'->'||NEW.ESTABELECIMENTO_ID;
    END
    
    IF(OLD.CAIXABANCO_ID <> NEW.CAIXABANCO_ID)THEN
    BEGIN
       HISTORICO = HISTORICO||' BANCO:'||OLD.CAIXABANCO_ID||'->'||NEW.CAIXABANCO_ID;
    END
    
    IF(OLD.FORMA_PAGAMENTO_ID <> NEW.FORMA_PAGAMENTO_ID)THEN
    BEGIN
       HISTORICO = HISTORICO||' FORMA PAG:'||OLD.FORMA_PAGAMENTO_ID||'->'||NEW.FORMA_PAGAMENTO_ID;
    END
    
    IF(OLD.CLIENTE_ID <> NEW.CLIENTE_ID)THEN
    BEGIN
       HISTORICO = HISTORICO||' CLIENTE:'||OLD.CLIENTE_ID||'->'||NEW.CLIENTE_ID;
    END

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

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

SET TERM ; ^