ALTER SEQUENCE GTBAGRUPAMENTO_GP RESTART WITH 21 INCREMENT BY 1;

SET TERM ^ ;

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

SET TERM ; ^

SET TERM ^ ;

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

SET TERM ; ^

SET TERM ^ ;

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

    HISTORICO = '';

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

    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('TBAGRUPAMENTO_GP', OLD.ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

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

SET TERM ; ^

SET TERM ^ ;

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

   HISTORICO = 'GP INCLUIDO:'||NEW.GP_ID||' - '||COALESCE((SELECT T.DESCRICAO FROM TBGP T WHERE T.ID = NEW.GP_ID), '');

   IF (HISTORICO <> '') THEN
       BEGIN

       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBAGRUPAMENTO_GP', NEW.AGRUPAMENTO_GP_ID,
      (SELECT FIRST 1 MON$USER FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
      (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
       :HISTORICO);
       END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbagrupamento_gp_b02d for tbagrupamento_gp
active before delete position 0
AS
BEGIN
 DELETE FROM tbagrupamento_gp_detalhe T WHERE T.agrupamento_gp_id = OLD.id;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbagrupamento_gp_detalhe_b01d for tbagrupamento_gp_detalhe
active before delete position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

   HISTORICO = 'GP EXCLUIDO:'||OLD.GP_ID||' - '||COALESCE((SELECT T.DESCRICAO FROM TBGP T WHERE T.ID = OLD.GP_ID), '');

   IF (HISTORICO <> '') THEN
       BEGIN

       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBAGRUPAMENTO_GP', OLD.AGRUPAMENTO_GP_ID,
      (SELECT FIRST 1 MON$USER FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
      (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
       :HISTORICO);
       END
END
^

SET TERM ; ^


