ALTER TABLE TBFOLHAPAGAMENTO_VERBAS ADD ID2 BIGINT;

UPDATE TBFOLHAPAGAMENTO_VERBAS SET ID2 = ID;

/************************************************/
/************************************************/

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS ALTER ID2 SET NOT NULL;

/* Operação manual - Alteração da chave primária */
ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
    DROP CONSTRAINT PK_TBFOLHAPAGAMENTO_VERBAS;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
    ADD CONSTRAINT PK_TBFOLHAPAGAMENTO_VERBAS PRIMARY KEY (ID2);

/************************************************/
/************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbfolhapagamento_verbas_b01d for tbfolhapagamento_verbas
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE TBFOLHAPAGAMENTO_ID INTEGER;
DECLARE VARIABLE COLABORADOR varchar(500);

DECLARE VARIABLE OLD_VERBA VARCHAR(500);
BEGIN

    HISTORICO = '';
    TBFOLHAPAGAMENTO_ID = COALESCE((SELECT FIRST 1 A.TBFOLHAPAGAMENTO_ID FROM TBFOLHAPAGAMENTO_COLABORADOR A WHERE A.ID = OLD.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);
    COLABORADOR = COALESCE((SELECT FIRST 1 FN_LPAD(B.CODIGO, 5, '0')||' - '||B.PESSOAL_NOME FROM TBFOLHAPAGAMENTO_COLABORADOR A INNER JOIN TBCOLABORADOR B ON B.CODIGO = A.COLABORADOR_ID WHERE A.ID = OLD.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);

    IF (OLD.INC_PADRAO = 0) THEN
    BEGIN

        OLD_VERBA = COALESCE((SELECT FIRST 1 FN_LPAD(C.ID, 6, '0')||' - '||C.DESCRICAO_ABREVIADA FROM TBFOLPAG_VERBA C WHERE C.ID = OLD.VERBA_ID), '');

        IF (OLD.ID2 > 0) THEN
        BEGIN
            HISTORICO = HISTORICO||'VERBA:'||OLD_VERBA||' EXCLUIDA NO COLABORADOR:'||COLABORADOR;
        END

    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFOLHAPAGAMENTO', TBFOLHAPAGAMENTO_ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbfolhapagamento_verbas_b01i for tbfolhapagamento_verbas
active before insert position 0
AS
BEGIN
    IF (NEW.ID2 IS NULL) THEN
        NEW.ID2 = GEN_ID(GTBFOLHAPAGAMENTO_VERBAS, 1);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbfolhapagamento_verbas_b02i for tbfolhapagamento_verbas
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE TBFOLHAPAGAMENTO_ID INTEGER;
DECLARE VARIABLE COLABORADOR varchar(500);

DECLARE VARIABLE NEW_VERBA VARCHAR(500);
BEGIN

    HISTORICO = '';
    TBFOLHAPAGAMENTO_ID = COALESCE((SELECT FIRST 1 A.TBFOLHAPAGAMENTO_ID FROM TBFOLHAPAGAMENTO_COLABORADOR A WHERE A.ID = NEW.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);
    COLABORADOR = COALESCE((SELECT FIRST 1 FN_LPAD(B.CODIGO, 5, '0')||' - '||B.PESSOAL_NOME FROM TBFOLHAPAGAMENTO_COLABORADOR A INNER JOIN TBCOLABORADOR B ON B.CODIGO = A.COLABORADOR_ID WHERE A.ID = NEW.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);

    IF (NEW.INC_PADRAO = 0) THEN
    BEGIN

        NEW_VERBA = COALESCE((SELECT FIRST 1 FN_LPAD(C.ID, 6, '0')||' - '||C.DESCRICAO_ABREVIADA FROM TBFOLPAG_VERBA C WHERE C.ID = NEW.VERBA_ID), '');

        IF (NEW.ID2 > 0) THEN
        BEGIN
            HISTORICO = HISTORICO||'VERBA:'||NEW_VERBA||' INCLUIDA NO COLABORADOR:'||COLABORADOR;
        END

    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFOLHAPAGAMENTO', TBFOLHAPAGAMENTO_ID, HISTORICO);
    END
END
^

SET TERM ; ^

/************************************************/

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS DROP ID;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS ADD ID BIGINT;

UPDATE TBFOLHAPAGAMENTO_VERBAS SET ID = ID2;

/************************************************/
/************************************************/

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS ALTER ID SET NOT NULL;

/* Operação manual - Alteração da chave primária */
ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
    DROP CONSTRAINT PK_TBFOLHAPAGAMENTO_VERBAS;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
    ADD CONSTRAINT PK_TBFOLHAPAGAMENTO_VERBAS PRIMARY KEY (ID);
	
/************************************************/
/************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbfolhapagamento_verbas_b01d for tbfolhapagamento_verbas
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE TBFOLHAPAGAMENTO_ID INTEGER;
DECLARE VARIABLE COLABORADOR varchar(500);

DECLARE VARIABLE OLD_VERBA VARCHAR(500);
BEGIN

    HISTORICO = '';
    TBFOLHAPAGAMENTO_ID = COALESCE((SELECT FIRST 1 A.TBFOLHAPAGAMENTO_ID FROM TBFOLHAPAGAMENTO_COLABORADOR A WHERE A.ID = OLD.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);
    COLABORADOR = COALESCE((SELECT FIRST 1 FN_LPAD(B.CODIGO, 5, '0')||' - '||B.PESSOAL_NOME FROM TBFOLHAPAGAMENTO_COLABORADOR A INNER JOIN TBCOLABORADOR B ON B.CODIGO = A.COLABORADOR_ID WHERE A.ID = OLD.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);

    IF (OLD.INC_PADRAO = 0) THEN
    BEGIN

        OLD_VERBA = COALESCE((SELECT FIRST 1 FN_LPAD(C.ID, 6, '0')||' - '||C.DESCRICAO_ABREVIADA FROM TBFOLPAG_VERBA C WHERE C.ID = OLD.VERBA_ID), '');

        IF (OLD.ID > 0) THEN
        BEGIN
            HISTORICO = HISTORICO||'VERBA:'||OLD_VERBA||' EXCLUIDA NO COLABORADOR:'||COLABORADOR;
        END

    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFOLHAPAGAMENTO', TBFOLHAPAGAMENTO_ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

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

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbfolhapagamento_verbas_b02i for tbfolhapagamento_verbas
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE TBFOLHAPAGAMENTO_ID INTEGER;
DECLARE VARIABLE COLABORADOR varchar(500);

DECLARE VARIABLE NEW_VERBA VARCHAR(500);
BEGIN

    HISTORICO = '';
    TBFOLHAPAGAMENTO_ID = COALESCE((SELECT FIRST 1 A.TBFOLHAPAGAMENTO_ID FROM TBFOLHAPAGAMENTO_COLABORADOR A WHERE A.ID = NEW.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);
    COLABORADOR = COALESCE((SELECT FIRST 1 FN_LPAD(B.CODIGO, 5, '0')||' - '||B.PESSOAL_NOME FROM TBFOLHAPAGAMENTO_COLABORADOR A INNER JOIN TBCOLABORADOR B ON B.CODIGO = A.COLABORADOR_ID WHERE A.ID = NEW.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);

    IF (NEW.INC_PADRAO = 0) THEN
    BEGIN

        NEW_VERBA = COALESCE((SELECT FIRST 1 FN_LPAD(C.ID, 6, '0')||' - '||C.DESCRICAO_ABREVIADA FROM TBFOLPAG_VERBA C WHERE C.ID = NEW.VERBA_ID), '');

        IF (NEW.ID > 0) THEN
        BEGIN
            HISTORICO = HISTORICO||'VERBA:'||NEW_VERBA||' INCLUIDA NO COLABORADOR:'||COLABORADOR;
        END

    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFOLHAPAGAMENTO', TBFOLHAPAGAMENTO_ID, HISTORICO);
    END
END
^

SET TERM ; ^

/************************************************/

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS DROP ID2;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
ALTER ID POSITION 1;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
ALTER TBFOLHAPAGAMENTO_COLABORADOR_ID POSITION 2;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
ALTER VERBA_ID POSITION 3;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
ALTER NATUREZA POSITION 4;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
ALTER VALOR POSITION 5;

ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
ALTER INC_PADRAO POSITION 6;