CREATE TABLE TBCONCORRENTE (
    ID INTEGER NOT NULL,
    NOME VARCHAR(50),
    CIDADE VARCHAR(40),
    UF VARCHAR(2),
    SITE VARCHAR(60),
    INSTAGRAM VARCHAR(20),
    PORTE VARCHAR(20),
    ANOS_ATUACAO INTEGER,
    QTD_FUNCIONARIOS INTEGER,
    OBSERVACAO BLOB SUB_TYPE 1 SEGMENT SIZE 80);

ALTER TABLE TBCONCORRENTE
ADD CONSTRAINT PK_TBCONCORRENTE
PRIMARY KEY (ID);

CREATE SEQUENCE GTBCONCORRENTE;

SET TERM ^ ;

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

SET TERM ; ^

UPDATE OR INSERT INTO TBMENU (CONTROLE, GRUPO, SUBGRUPO, TIPO, URL, DESCRICAO, DATAHORA)
                      VALUES (12490, 'VEN', 'VEN', '1   ', '', 'CADASTRO DE CONCORRENTES', '2022-05-20 09:48:01')
                    MATCHING (CONTROLE);

COMMIT WORK;

--

SET TERM ^ ;

CREATE trigger ttbconcorrente_b02i for tbconcorrente
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('TBCONCORRENTE',NEW.ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

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

    IF ( OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' REGISTRO EXCLUÍDO';
    END

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

SET TERM ; ^

SET TERM ^ ;

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

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

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

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

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

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

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

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

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

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

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

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbconcorrente_b02d for tbconcorrente
active before delete position 0
AS
BEGIN
   IF(OLD.ID > 0) THEN
   BEGIN
      DELETE FROM TBCONCORRENTE_PRODUTO WHERE CONCORRENTE_ID  = OLD.ID;

   END
END
^

SET TERM ; ^





