ALTER TRIGGER TTBOPERACAO_FRETE_B1I INACTIVE;

ALTER TRIGGER TTBOPERACAO_FRETE_B0U INACTIVE;


CREATE trigger ttboperacao_frete_b02i for tboperacao_frete
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' REGISTRO INCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBOPERACAO_FRETE',NEW.ID, HISTORICO);
    END
END;


CREATE trigger ttboperacao_frete_b01u for tboperacao_frete
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

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

    IF ( NEW.ESTABELECIMENTO_ID IS DISTINCT FROM OLD.ESTABELECIMENTO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' ESTAB:'||COALESCE(OLD.ESTABELECIMENTO_ID, 0)||'->'||COALESCE(NEW.ESTABELECIMENTO_ID, 0);
    END

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

    IF ( NEW.CFOP_DOC_ORIGEM <> OLD.CFOP_DOC_ORIGEM) THEN
    BEGIN
        HISTORICO = HISTORICO||' CFOP DOC.ORIG:'||OLD.CFOP_DOC_ORIGEM||'->'||NEW.CFOP_DOC_ORIGEM;
    END

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

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

    IF ( NEW.CST_ICMS <> OLD.CST_ICMS) THEN
    BEGIN
        HISTORICO = HISTORICO||' CST ICMS:'||OLD.CST_ICMS||'->'||NEW.CST_ICMS;
    END

    IF ( NEW.CST_ICMS_SIMPLES <> OLD.CST_ICMS_SIMPLES) THEN
    BEGIN
        HISTORICO = HISTORICO||' CST ICMS SIMPLES:'||OLD.CST_ICMS_SIMPLES||'->'||NEW.CST_ICMS_SIMPLES;
    END
    
    IF ( NEW.CST_PIS <> OLD.CST_PIS) THEN
    BEGIN
        HISTORICO = HISTORICO||' CST PIS:'||OLD.CST_PIS||'->'||NEW.CST_PIS;
    END

    IF ( NEW.CST_COFINS <> OLD.CST_COFINS) THEN
    BEGIN
        HISTORICO = HISTORICO||' CST COFINS:'||OLD.CST_COFINS||'->'||NEW.CST_COFINS;
    END

    IF ( NEW.SPED_PISCOF <> OLD.SPED_PISCOF) THEN
    BEGIN
        HISTORICO = HISTORICO||' SPED PIS/COF:'||OLD.SPED_PISCOF||'->'||NEW.SPED_PISCOF;
    END

    IF ( NEW.IND_NAT_FRETE <> OLD.IND_NAT_FRETE) THEN
    BEGIN
        HISTORICO = HISTORICO||' IND.NAT.FRETE:'||OLD.IND_NAT_FRETE||'->'||NEW.IND_NAT_FRETE;
    END

    IF ( NEW.TIPO_DOC <> OLD.TIPO_DOC) THEN
    BEGIN
        HISTORICO = HISTORICO||' TIPO DOC:'||OLD.TIPO_DOC||'->'||NEW.TIPO_DOC;
    END

    IF ( NEW.CONTA_PAGAR_OPERACAO <> OLD.CONTA_PAGAR_OPERACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OPERACAO CPA:'||OLD.CONTA_PAGAR_OPERACAO||'->'||NEW.CONTA_PAGAR_OPERACAO;
    END

    IF ( NEW.PAGAMENTO_FORMA <> OLD.PAGAMENTO_FORMA) THEN
    BEGIN
        HISTORICO = HISTORICO||'FORMA PAG:'||OLD.PAGAMENTO_FORMA||'->'||NEW.PAGAMENTO_FORMA;
    END

    IF ( NEW.DIAS_VENCIMENTO <> OLD.DIAS_VENCIMENTO) THEN
    BEGIN
        HISTORICO = HISTORICO||'DIAS VENC:'||OLD.DIAS_VENCIMENTO||'->'||NEW.DIAS_VENCIMENTO;
    END

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



