ALTER TABLE TBCATALOGO_PRODUTO_ENTREGA
    ADD VALOR_FRETE NUMERIC(18,2) DEFAULT 0;


COMMENT ON COLUMN TBCATALOGO_PRODUTO_ENTREGA.VALOR_FRETE IS
'VALOR DE FRETE PARA USO QUANDO CAMPO TIPO_FRETE FOR 0 OU 3';

/**********************************************************************************************/

UPDATE TBCATALOGO_PRODUTO_ENTREGA
	SET VALOR_FRETE = 0
	WHERE VALOR_FRETE IS NULL;

/**********************************************************************************************/
/**********************************************************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbcatalogo_prod_entrega_b01u for tbcatalogo_produto_entrega
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
BEGIN

    :HISTORICO = '';

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

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

    IF (OLD.VALOR_FRETE IS DISTINCT FROM NEW.VALOR_FRETE) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' VL.FRETE:'||FN_FORMAT_NUMBER2(OLD.VALOR_FRETE, 2)||'->'||FN_FORMAT_NUMBER2(NEW.VALOR_FRETE, 2);
    END

    IF (:HISTORICO <> '') THEN
    BEGIN
        :HISTORICO = 'ENTREGA '||NEW.DESCRICAO||' ALTERADA:'||:HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBCATALOGO_PRODUTO', OLD.CATALOGO_PRODUTO_ID, FN_ELIPSE(:HISTORICO, 500));
    END
END
^

SET TERM ; ^

