-- TRIGGERS 
-- INSERTS
CREATE OR ALTER trigger tbconta_receber_modalidade_b01i for tbconta_receber_modalidade
active before insert position 0
AS
BEGIN
  IF(NEW.CODIGO IS NULL) THEN
    NEW.CODIGO = GEN_ID(GTBCONTA_RECEBER_MODALIDADE,1);
END;

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

    HISTORICO = '';

    HISTORICO = HISTORICO||' Reg. Incluido';


    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCONTA_RECEBER_MODALIDADE',NEW.CODIGO, HISTORICO);
    END
end;

-- UPDATES
CREATE OR ALTER trigger ttbconta_receber_mod_b01u for tbconta_receber_modalidade
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.descricao <> NEW.descricao) THEN
    BEGIN
        HISTORICO = HISTORICO||'Desc.'|| OLD.descricao||'->'||NEW.descricao;
    END
    
    IF ( OLD.status <> NEW.status) THEN
    BEGIN
        HISTORICO = HISTORICO||' Status:'|| OLD.status||'->'||NEW.status;
    END
    
    IF ( OLD.TIPO <> NEW.TIPO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Tipo:'|| OLD.TIPO||'->'||NEW.TIPO;
    END
    
    IF ( OLD.STATUSEXCLUSAO <> NEW.STATUSEXCLUSAO and new.STATUSEXCLUSAO = 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Reg. excluido.';
    END
    
    IF ( OLD.STATUSEXCLUSAO <> NEW.STATUSEXCLUSAO and new.STATUSEXCLUSAO = 1) THEN
    BEGIN
        HISTORICO = HISTORICO||'Exc. desfeita.';
    END
    
    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCONTA_RECEBER_MODALIDADE', NEW.CODIGO, HISTORICO);
    END
end;


-- DELETE
CREATE OR ALTER trigger ttbconta_receber_mod_b01d for tbconta_receber_modalidade
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    HISTORICO = HISTORICO||'Reg. Excluido';

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCONTA_RECEBER_MODALIDADE', OLD.CODIGO, HISTORICO);
    END
end;