ALTER TABLE TBREGRA_FAMILIA_CFOP
    ADD OPERACAO_DESTINO VARCHAR(3);

SET TERM ^ ;

CREATE OR ALTER trigger tbregra_familia_cfop_b01u for tbregra_familia_cfop
active before update position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF( OLD.CFOP_ORIGEM     <> NEW.CFOP_ORIGEM  OR
        OLD.CFOP_DESTINO    <> NEW.CFOP_DESTINO OR
        OLD.OPERACAO_CODIGO <> NEW.OPERACAO_CODIGO) THEN
    BEGIN
       HISTORICO = 'REGRA ALTERADA: ESTAB. '||OLD.ESTABELECIMENTO_ID||' DE '||OLD.CFOP_ORIGEM||' PARA '||OLD.CFOP_DESTINO||' OPER '||OLD.OPERACAO_CODIGO||' PARA '||OLD.OPERACAO_DESTINO||'->'||' ESTAB. '||NEW.ESTABELECIMENTO_ID||' DE '||NEW.CFOP_ORIGEM||' PARA '||NEW.CFOP_DESTINO||' OPER '||NEW.OPERACAO_CODIGO||' PARA '||NEW.OPERACAO_CODIGO;
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFAMILIA', NEW.FAMILIA_ID, FN_ELIPSES(HISTORICO,500));
    END

END
^

SET TERM ; ^

