CREATE TABLE TBCONCORRENTE_PRODUTO (
    ID INTEGER NOT NULL,
    TIPO VARCHAR(30),
    COMPOSICAO VARCHAR(30),
    PRODUTO VARCHAR(60),
    LINK VARCHAR(100),
    OBSERVACAO BLOB SUB_TYPE 1 SEGMENT SIZE 80,
    PRECO NUMERIC(15,2),
    MODELO_ID INTEGER,
	CONCORRENTE_ID INTEGER);

ALTER TABLE TBCONCORRENTE_PRODUTO
ADD CONSTRAINT PK_TBCONCORRENTE_PRODUTO
PRIMARY KEY (ID);

CREATE SEQUENCE GTBCONCORRENTE_PRODUTO;

SET TERM ^ ;

create trigger ttbconcorrente_produto_bi for tbconcorrente_produto
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbconcorrente_produto,1);
end
^

SET TERM ; ^

--

SET TERM ^ ;

CREATE trigger ttbconcorrente_produto_b01i for tbconcorrente_produto
active before insert position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( NEW.ID > 0 AND NEW.CONCORRENTE_ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' PRODUTO INCLUIDO:'|| NEW.PRODUTO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCONCORRENTE',NEW.CONCORRENTE_ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE trigger ttbconcorrente_produto_b01d for tbconcorrente_produto
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( OLD.ID > 0 AND OLD.CONCORRENTE_ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' PRODUTO EXCLUIDO:'|| OLD.PRODUTO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCONCORRENTE',OLD.CONCORRENTE_ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE trigger ttbconcorrente_produto_b01u for tbconcorrente_produto
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

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

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

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

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

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

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

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


    IF (HISTORICO <> '') THEN
    BEGIN

        HISTORICO = ' PRODUTO: '||OLD.PRODUTO||' ALTERADO: '||HISTORICO;


        EXECUTE PROCEDURE SPI_HISTORICO('TBCONCORRENTE', NEW.CONCORRENTE_ID, HISTORICO);
    END

END
^

SET TERM ; ^

SET TERM ^ ;

CREATE trigger ttbconcorrente_produto_b02d for tbconcorrente_produto
active before delete position 0
AS
BEGIN
   IF(OLD.ID > 0) THEN
   BEGIN
      DELETE FROM TBCONCORRENTE_CLIENTE WHERE CONCORRENTE_PRODUTO_ID  = OLD.ID;

   END
END
^

SET TERM ; ^





