CREATE TABLE TBPERFIL_CONDICAO_PAGAMENTO (
    ID INTEGER NOT NULL,
    PERFIL VARCHAR(10),
    CONDICAO_PAGAMENTO_ID INTEGER);

ALTER TABLE TBPERFIL_CONDICAO_PAGAMENTO
ADD CONSTRAINT PK_TBPERFIL_CONDICAO_PAGAMENTO
PRIMARY KEY (ID);


CREATE SEQUENCE GTBPERFIL_CONDICAO_PAGAMENTO;

SET TERM ^ ;

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

SET TERM ; ^





SET TERM ^ ;

CREATE OR ALTER trigger tbperfil_condicao_pag_b02i for tbperfil_condicao_pagamento
active before insert position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.CONDICAO_PAGAMENTO_ID > 0 AND NEW.ID > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||' COND.PAG. INCLUIDA: '||NEW.CONDICAO_PAGAMENTO_ID||' - '||COALESCE((SELECT FIRST 1 C.DESCRICAO FROM TBPAGAMENTO_CONDICAO C WHERE C.CODIGO = NEW.CONDICAO_PAGAMENTO_ID), '');
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBPERFIL',(SELECT FIRST 1 P.CONTROLE FROM TBPERFIL P WHERE P.ID = NEW.PERFIL AND P.TABELA = 'PED'), HISTORICO);
    END
END
^

SET TERM ; ^







SET TERM ^ ;

CREATE OR ALTER trigger ttbperfil_condicao_pag_b01d for tbperfil_condicao_pagamento
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.CONDICAO_PAGAMENTO_ID > 0 AND OLD.ID > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||' COND.PAG. EXCLUIDA: '||OLD.CONDICAO_PAGAMENTO_ID||' - '||COALESCE((SELECT FIRST 1 C.DESCRICAO FROM TBPAGAMENTO_CONDICAO C WHERE C.CODIGO = OLD.CONDICAO_PAGAMENTO_ID), '');
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBPERFIL',(SELECT FIRST 1 P.CONTROLE FROM TBPERFIL P WHERE P.ID = OLD.PERFIL AND P.TABELA = 'PED'), HISTORICO);
    END
END
^

SET TERM ; ^


SET TERM ^ ;

CREATE OR ALTER trigger tbperfil_b04d for tbperfil
active before delete position 0
AS
BEGIN
   IF(OLD.ID <> '' AND OLD.ID IS NOT NULL) THEN
   BEGIN
      DELETE FROM TBPERFIL_CONDICAO_PAGAMENTO WHERE PERFIL = OLD.ID AND OLD.TABELA = 'PED';
   END
END
^

SET TERM ; ^









--ALTER TABLE TBPERFIL_CONDICAO_PAGAMENTO DROP PERFIL_ID;
--ALTER TABLE TBPERFIL_CONDICAO_PAGAMENTO
    --ADD PERFIL_ VARCHAR(10);



