
CREATE OR ALTER trigger ttbficha_custo_b01i for tbficha_custo
active before insert position 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GTBFICHA_CUSTO,1);
END;


CREATE OR ALTER trigger ttbficha_custo_calendario_b01i for tbficha_custo_calendario
active before insert position 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GTBFICHA_CUSTO_CALENDARIO,1);
END;

CREATE OR ALTER trigger ttbficha_custo_consumo_b01i for tbficha_custo_consumo
active before insert position 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GTBFICHA_CUSTO_CONSUMO,1);
END;


CREATE OR ALTER trigger ttbficha_custo_mp_b01i for tbficha_custo_mp
active before insert position 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GTBFICHA_CUSTO_MP,1);
END;

CREATE OR ALTER trigger ttbficha_custo_tempo_b01i for tbficha_custo_tempo
active before insert position 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GTBFICHA_CUSTO_TEMPO,1);
END;


CREATE OR ALTER trigger ttbficha_custo_tributacoes_b01i for tbficha_custo_tributacoes
active before insert position 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GTBFICHA_CUSTO_TRIBUTACOES,1);
END;

CREATE trigger ttbficha_custo_b09i for tbficha_custo
active before insert position 9
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('TBFICHA_CUSTO', NEW.ID, HISTORICO);
    END
END;

CREATE trigger ttbficha_custo_b09u for tbficha_custo
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF(OLD.CENTRO_NEGOCIO_ID <> NEW.CENTRO_NEGOCIO_ID) THEN
    BEGIN
       HISTORICO = HISTORICO||' CENTRO NEG.'||OLD.CENTRO_NEGOCIO_ID||'->'||NEW.CENTRO_NEGOCIO_ID;
    END

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

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

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

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

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

    IF(OLD.TAMANHO_DESCRICAO <> NEW.TAMANHO_DESCRICAO) THEN
    BEGIN
       HISTORICO = HISTORICO||' TAM:'||OLD.COR_ID||'->'||NEW.TAMANHO_DESCRICAO;
    END

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

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

    IF(OLD.VALOR_VENDA <> NEW.VALOR_VENDA) THEN
    BEGIN
       HISTORICO = HISTORICO||' VR.VENDA:'||OLD.VALOR_VENDA||'->'||NEW.VALOR_VENDA;
    END

    IF(OLD.PERCENTUAL_MARGEM <> NEW.PERCENTUAL_MARGEM) THEN
    BEGIN
       HISTORICO = HISTORICO||' % MARGEM:'||OLD.PERCENTUAL_MARGEM||'->'||NEW.PERCENTUAL_MARGEM;
    END

    IF(OLD.PERCENTUAL_IR <> NEW.PERCENTUAL_IR) THEN
    BEGIN
       HISTORICO = HISTORICO||' % IR:'||OLD.PERCENTUAL_IR||'->'||NEW.PERCENTUAL_IR;
    END

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

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

CREATE trigger ttbficha_custo_b09d for tbficha_custo
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';

    IF(OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REGISTRO EXCLUIDO';
    END
    
    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFICHA_CUSTO', OLD.ID, HISTORICO);
    END
END;


CREATE trigger ttbficha_custo_calendario_b09u for tbficha_custo_calendario
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';
    
    IF(OLD.SEQUENCIA <> NEW.SEQUENCIA) THEN
    BEGIN
       HISTORICO = HISTORICO||' SEQ.'||OLD.SEQUENCIA||'->'||NEW.SEQUENCIA;
    END

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

    IF(OLD.COLABORADORES <> NEW.COLABORADORES) THEN
    BEGIN
       HISTORICO = HISTORICO||' COLAB.'||OLD.COLABORADORES||'->'||NEW.COLABORADORES;
    END

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

    IF(OLD.TEMPO_TOTAL_DISPONIVEL <> NEW.TEMPO_TOTAL_DISPONIVEL) THEN
    BEGIN
       HISTORICO = HISTORICO||' TEMP DISP.'||OLD.TEMPO_TOTAL_DISPONIVEL||'->'||NEW.TEMPO_TOTAL_DISPONIVEL;
    END

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

END;

CREATE trigger ttbficha_custo_calendario_b09d for tbficha_custo_calendario
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';
    
    IF(OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'CALENDARIO '||OLD.UP_ID||' EXCLUIDO';
    END
    
    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFICHA_CUSTO', OLD.FICHA_CUSTO_ID, HISTORICO);
    END
END;

CREATE trigger ttbficha_custo_consumo_b09u for tbficha_custo_consumo
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';

    IF(OLD.SEQUENCIA <> NEW.SEQUENCIA) THEN
    BEGIN
       HISTORICO = HISTORICO||' SEQ.'||OLD.SEQUENCIA||'->'||NEW.SEQUENCIA;
    END

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

    IF(OLD.CLASSIFICACAO_CODIGO <> NEW.CLASSIFICACAO_CODIGO) THEN
    BEGIN
       HISTORICO = HISTORICO||' CLASS.FINAN.'||OLD.CLASSIFICACAO_CODIGO||'->'||NEW.CLASSIFICACAO_CODIGO;
    END

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

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

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

END;


CREATE trigger ttbficha_custo_consumo_b09d for tbficha_custo_consumo
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';

    IF(OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'CONSUMO '||OLD.CLASSIFICACAO_CODIGO||' EXCLUIDO';
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFICHA_CUSTO', OLD.FICHA_CUSTO_ID, HISTORICO);
    END
END;


CREATE trigger ttbficha_custo_mp_b09u for tbficha_custo_mp
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';

    IF(OLD.SEQUENCIA <> NEW.SEQUENCIA) THEN
    BEGIN
       HISTORICO = HISTORICO||' SEQ.'||OLD.SEQUENCIA||'->'||NEW.SEQUENCIA;
    END

    IF(OLD.FAMILIA_ID <> NEW.FAMILIA_ID) THEN
    BEGIN
       HISTORICO = HISTORICO||' FAM.'||OLD.FAMILIA_ID||'->'||NEW.FAMILIA_ID;
    END

    IF(OLD.PRODUTO_ID <> NEW.PRODUTO_ID) THEN
    BEGIN
       HISTORICO = HISTORICO||' PROD.'||OLD.PRODUTO_ID||'->'||NEW.PRODUTO_ID;
    END

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

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

    IF(OLD.CUSTO_MEDIO_PRODUTO <> NEW.CUSTO_MEDIO_PRODUTO) THEN
    BEGIN
       HISTORICO = HISTORICO||' CUSTO PRODUTO:'||OLD.CUSTO_MEDIO_PRODUTO||'->'||NEW.CUSTO_MEDIO_PRODUTO;
    END

    IF(OLD.CUSTO_UNITARIO_NF <> NEW.CUSTO_UNITARIO_NF) THEN
    BEGIN
       HISTORICO = HISTORICO||' CUSTO NF:'||OLD.CUSTO_UNITARIO_NF||'->'||NEW.CUSTO_UNITARIO_NF;
    END

    IF(OLD.CUSTO_UNITARIO_PONDERADO <> NEW.CUSTO_UNITARIO_PONDERADO) THEN
    BEGIN
       HISTORICO = HISTORICO||' CUSTO PONDERADO:'||OLD.CUSTO_UNITARIO_PONDERADO||'->'||NEW.CUSTO_UNITARIO_PONDERADO;
    END

    IF(OLD.CUSTO_UNITARIO <> NEW.CUSTO_UNITARIO) THEN
    BEGIN
       HISTORICO = HISTORICO||' CUSTO UNITARIO:'||OLD.CUSTO_UNITARIO||'->'||NEW.CUSTO_UNITARIO;
    END

    IF(OLD.CUSTO_CONSUMO <> NEW.CUSTO_CONSUMO) THEN
    BEGIN
       HISTORICO = HISTORICO||' CUSTO TOTAL:'||OLD.CUSTO_CONSUMO||'->'||NEW.CUSTO_CONSUMO;
    END

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

END;

CREATE trigger ttbficha_custo_mp_b09d for tbficha_custo_mp
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';

    IF(OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'MP '||OLD.SEQUENCIA||' EXCLUIDA';
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFICHA_CUSTO', OLD.FICHA_CUSTO_ID, HISTORICO);
    END
END;

CREATE trigger ttbficha_custo_tempo_b09u for tbficha_custo_tempo
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN

	HISTORICO = '';
    
	IF(OLD.SEQUENCIA <> NEW.SEQUENCIA) THEN
    BEGIN
       HISTORICO = HISTORICO||' SEQ.'||OLD.SEQUENCIA||'->'||NEW.SEQUENCIA;
    END

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

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

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

    IF(OLD.TEMPO_CALCULADO <> NEW.TEMPO_CALCULADO) THEN
    BEGIN
       HISTORICO = HISTORICO||' TEMPO TOTAL:'||OLD.TEMPO_CALCULADO||'->'||NEW.TEMPO_CALCULADO;
    END

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

CREATE trigger ttbficha_custo_tempo_b09d for tbficha_custo_tempo
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';

    IF(OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'TEMPO '||OLD.FLUXO_ID||' EXCLUIDO';
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFICHA_CUSTO', OLD.FICHA_CUSTO_ID, HISTORICO);
    END
END;

CREATE trigger ttbficha_custo_tributacoes_b09u for tbficha_custo_tributacoes
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';

    IF(OLD.TRIBUTACAO_ID <> NEW.TRIBUTACAO_ID) THEN
    BEGIN
       HISTORICO = HISTORICO||' TRIB.'||OLD.TRIBUTACAO_ID||'->'||NEW.TRIBUTACAO_ID;
    END

    IF(OLD.PERCENTUAL <> NEW.PERCENTUAL) THEN
    BEGIN
       HISTORICO = HISTORICO||' % TRIB.'||OLD.PERCENTUAL||'->'||NEW.PERCENTUAL;
    END

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

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

CREATE trigger ttbficha_custo_tributacoes_b09d for tbficha_custo_tributacoes
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);

BEGIN
    HISTORICO = '';

    IF(OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'TRIBUTACAO '||OLD.TRIBUTACAO_ID||' EXCLUIDA';
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFICHA_CUSTO', OLD.FICHA_CUSTO_ID, HISTORICO);
    END
END;