SET TERM ^ ;

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

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

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

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

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

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

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

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

    IF(OLD.OBSERVACAO IS DISTINCT FROM NEW.OBSERVACAO) THEN
    BEGIN
       HISTORICO = HISTORICO||' OBS.'||FN_IS_EMPTY(OLD.OBSERVACAO)||'->'||FN_IS_EMPTY(NEW.OBSERVACAO);
    END

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

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

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

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

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

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

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

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBPDV_CONFERENCIA', NEW.ID, FN_ELIPSE(HISTORICO, 500));
    END
END
^

SET TERM ; ^

