CREATE SEQUENCE GTBPONTO_FERIADO START WITH 169 INCREMENT BY 1;

SET TERM ^ ;

CREATE OR ALTER trigger tbponto_feriado_b01i for tbponto_feriado
active before insert position 0
AS
BEGIN
    IF(NEW.ID IS NULL) THEN
        NEW.ID = GEN_ID(GTBPONTO_FERIADO, 1);
END^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger tbponto_feriado_b02i for tbponto_feriado
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('TBPONTO_FERIADO',NEW.ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger tbponto_feriado_b01u for tbponto_feriado
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

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

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

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger tbponto_feriado_b01d for tbponto_feriado
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('TBPONTO_FERIADO',OLD.ID, HISTORICO);
    END
END
^

SET TERM ; ^

