ALTER TABLE TBCATALOGO_PRODUTO_IMPORT
    ADD QTD_IMAGENS INTEGER DEFAULT 0;


SET TERM ^ ;

CREATE OR ALTER trigger ttbcatalogo_produto_import_b01u for tbcatalogo_produto_import
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
BEGIN
    
    :HISTORICO = '';

    IF (OLD.CATALOGO_PRODUTO_ID IS DISTINCT FROM NEW.CATALOGO_PRODUTO_ID) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' CAT.PROD:'||OLD.CATALOGO_PRODUTO_ID||'->'||NEW.CATALOGO_PRODUTO_ID;
    END

    IF (OLD.STATUS IS DISTINCT FROM NEW.STATUS) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' STATUS:'||OLD.STATUS||'->'||NEW.STATUS;
    END

    IF (OLD.MODELO_ID IS DISTINCT FROM NEW.MODELO_ID) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' MODELO:'||OLD.MODELO_ID||'->'||NEW.MODELO_ID;
    END

    IF (OLD.COR_ID IS DISTINCT FROM NEW.COR_ID) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' COR:'||OLD.COR_ID||'->'||NEW.COR_ID;
    END

    IF (OLD.PRODUTO_ID IS DISTINCT FROM NEW.PRODUTO_ID) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' PRODUTO:'||OLD.PRODUTO_ID||'->'||NEW.PRODUTO_ID;
    END

    IF (OLD.TAMANHO_ID IS DISTINCT FROM NEW.TAMANHO_ID) THEN 
    BEGIN
        :HISTORICO = :HISTORICO||' TAM:'||OLD.TAMANHO_ID||'->'||NEW.TAMANHO_ID;
    END

    IF (OLD.PRECO_VENDA IS DISTINCT FROM NEW.PRECO_VENDA) THEN 
    BEGIN
        :HISTORICO = :HISTORICO||' PR.VENDA:R$'||FN_FORMAT_NUMBER2(OLD.PRECO_VENDA, 2)||'->R$'||FN_FORMAT_NUMBER2(NEW.PRECO_VENDA, 2);
    END

    IF (OLD.PRECO_RECOMENDADO IS DISTINCT FROM NEW.PRECO_RECOMENDADO) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' PR.RECOMEND:R$'||FN_FORMAT_NUMBER2(OLD.PRECO_RECOMENDADO, 2)||'->R$'||FN_FORMAT_NUMBER2(NEW.PRECO_RECOMENDADO, 2);
    END

    IF (OLD.QTD_IMAGENS IS DISTINCT FROM NEW.QTD_IMAGENS) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' QTD.IMAGENS:'||OLD.QTD_IMAGENS||'->'||NEW.QTD_IMAGENS;
    END

    IF (:HISTORICO <> '') THEN
    BEGIN
        :HISTORICO = ' MODELO/COR/TAMANHO: '||NEW.MODELO_ID||'/'||NEW.COR_ID||'/'||NEW.TAMANHO_ID||' ALTERADO:'||:HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBCATALOGO_PRODUTO', NEW.CATALOGO_PRODUTO_ID, :HISTORICO);
    END
END
^

SET TERM ; ^

