CREATE TABLE TBVISITA_OCORRENCIA (
    ID INTEGER NOT NULL,
    DATA TIMESTAMP,
    TIPO INTEGER,
    USUARIO_ID INTEGER,
    ASSUNTO VARCHAR(100),
    DESCRICAO BLOB SUB_TYPE 1 SEGMENT SIZE 80);

ALTER TABLE TBVISITA_OCORRENCIA
ADD CONSTRAINT PK_TBVISITA_OCORRENCIA
PRIMARY KEY (ID);

CREATE SEQUENCE GTBVISITA_OCORRENCIA;

create trigger ttbvisita_ocorrencia_b01i for tbvisita_ocorrencia
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbvisita_ocorrencia,1);
end;

CREATE TABLE TBVISITA_OCORRENCIA_TIPO (
    ID INTEGER NOT NULL,
    DESCRICAO VARCHAR(100),
    STATUS INTEGER);

ALTER TABLE TBVISITA_OCORRENCIA_TIPO
ADD CONSTRAINT PK_TBVISITA_OCORRENCIA_TIPO
PRIMARY KEY (ID);

CREATE SEQUENCE GTBVISITA_OCORRENCIA_TIPO;

create trigger ttbvisita_ocorrencia_tipo_b01i for tbvisita_ocorrencia_tipo
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbvisita_ocorrencia_tipo,1);
end;

CREATE trigger ttbvisita_ocorrencia_tipo_b02i for tbvisita_ocorrencia_tipo
active before insert position 2
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = 'Registro Incluido';

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBVISITA_OCORRENCIA_TIPO',new.id, HISTORICO);
    END

END;

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

    HISTORICO = '';

    IF ( old.descricao <> new.descricao) THEN
    BEGIN
        HISTORICO = HISTORICO||' Descrição: '|| old.descricao||' -> '||new.descricao;
    END

    IF ( old.status <> new.status) THEN
    BEGIN
        HISTORICO = HISTORICO||' Status: '|| old.status||' -> '||new.status;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBVISITA_OCORRENCIA_TIPO',new.id, HISTORICO);
    END

END;


CREATE trigger ttbvisita_ocorrencia_tipo_b01d for tbvisita_ocorrencia_tipo
active before delete position 0
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('TBVISITA_OCORRENCIA_TIPO',old.id, HISTORICO);
    END
end;


