CREATE TABLE TBTEF_PARAMETROS_AFILIACOES (
    ID INTEGER NOT NULL,
    ADQUIRENTE_ID INTEGER,
    ESTABELECIMENTO_ID VARCHAR(50),
    TEF_ID INTEGER);

ALTER TABLE TBTEF_PARAMETROS_AFILIACOES
ADD CONSTRAINT PK_TBTEF_PARAMETROS_AFILIACOES
PRIMARY KEY (ID);

CREATE SEQUENCE GTBTEF_PARAM_AFILIACOES;

SET TERM ^ ;

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

SET TERM ; ^

CREATE INDEX ITBTEF_PARAM_AFILIACOE_ID01
ON TBTEF_PARAMETROS_AFILIACOES (ADQUIRENTE_ID);

CREATE INDEX ITBTEF_PARAM_AFILIACOE_ID02
ON TBTEF_PARAMETROS_AFILIACOES (ESTABELECIMENTO_ID);

CREATE INDEX ITBTEF_PARAM_AFILIACOE_ID03
ON TBTEF_PARAMETROS_AFILIACOES (TEF_ID);

SET TERM ^ ;

CREATE OR ALTER trigger ttbtef_param_afiliacoes_b02i for tbtef_parametros_afiliacoes
active before insert position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF(NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' AFILIAÇÃO INCLUÍDA: '||FN_LPAD(NEW.ID, 4, '0');
    END

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

SET TERM ; ^

SET TERM ^ ;

CREATE trigger ttbtef_param_afiliacoes_b01u for tbtef_parametros_afiliacoes
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
begin
    HISTORICO = '';

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

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

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBTEF_PARAMETROS', NEW.TEF_ID, 'AFILIAÇÃO '||FN_LPAD(NEW.ID, 4, '0')||' | '||HISTORICO);
    END
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE trigger ttbtef_param_afiliacoes_b01d for tbtef_parametros_afiliacoes
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF(OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' AFILIAÇÃO EXCLUÍDA: '||FN_LPAD(OLD.ID, 4, '0');
    END

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

SET TERM ; ^

