UPDATE TBMENU A SET A.GRUPO = 'FOLP', A.SUBGRUPO = 'FOLP' WHERE A.CONTROLE = 23390;
UPDATE TBMENU A SET A.GRUPO = 'FOLP', A.SUBGRUPO = 'FOLP' WHERE A.CONTROLE = 23430;
UPDATE TBMENU A SET A.GRUPO = 'FOLP', A.SUBGRUPO = 'FOLP' WHERE A.CONTROLE = 23440;

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

ALTER TABLE TBFOLPAG_VERBA_PADRAO
    ADD HABILITA_SALARIO_BASE CHAR(1) CHARACTER SET UTF8 COLLATE UTF8,
    ADD HABILITA_BASE_CALCULO CHAR(1) CHARACTER SET UTF8 COLLATE UTF8;

COMMENT ON COLUMN TBFOLPAG_VERBA_PADRAO.HABILITA_SALARIO_BASE IS
'Idientifica a verba como o Salário Base na folha';

COMMENT ON COLUMN TBFOLPAG_VERBA_PADRAO.HABILITA_BASE_CALCULO IS
'Utiliza a verba na base de cálculo';

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

SET TERM ^ ;

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

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbfolpag_verba_padrao_b01u for tbfolpag_verba_padrao
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);

DECLARE VARIABLE OLD_VERBA VARCHAR(500);
DECLARE VARIABLE NEW_VERBA VARCHAR(500);
DECLARE VARIABLE OLD_FOLHA_PAGAMENTO VARCHAR(500);
DECLARE VARIABLE NEW_FOLHA_PAGAMENTO VARCHAR(500);
BEGIN
    
    HISTORICO = '';

    OLD_VERBA = COALESCE((SELECT FIRST 1 FN_LPAD(V.ID, 6, '0')||' - '||V.DESCRICAO_ABREVIADA FROM TBFOLPAG_VERBA V WHERE V.ID = OLD.VERBA_ID), '');
    NEW_VERBA = COALESCE((SELECT FIRST 1 FN_LPAD(V.ID, 6, '0')||' - '||V.DESCRICAO_ABREVIADA FROM TBFOLPAG_VERBA V WHERE V.ID = NEW.VERBA_ID), '');
    OLD_FOLHA_PAGAMENTO = COALESCE((SELECT FIRST 1 FN_LPAD(F.ID, 4, '0')||' - '||F.DESCRICAO FROM TBFOLPAG_CONTABIL F WHERE F.ID = OLD.FOLHA_PAGAMENTO_ID), '');
    NEW_FOLHA_PAGAMENTO = COALESCE((SELECT FIRST 1 FN_LPAD(F.ID, 4, '0')||' - '||F.DESCRICAO FROM TBFOLPAG_CONTABIL F WHERE F.ID = NEW.FOLHA_PAGAMENTO_ID), '');

    IF (OLD.VERBA_ID <> NEW.VERBA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' VERBA:'||OLD_VERBA||'->'||NEW_VERBA;
    END

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

    IF (OLD.DATA_REG <> NEW.DATA_REG) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.REGISTRO:'||FORMATDATE(OLD.DATA_REG)||'->'||FORMATDATE(NEW.DATA_REG);
    END

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

    IF (OLD.VALOR <> NEW.VALOR) THEN
    BEGIN
        HISTORICO = HISTORICO||' VALOR:R$'||FN_FORMAT_NUMBER2(OLD.VALOR, 2)||'->R$'||FN_FORMAT_NUMBER2(NEW.VALOR, 2);
    END

    IF (OLD.FOLHA_PAGAMENTO_ID <> NEW.FOLHA_PAGAMENTO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' FOLHA PAG:'||OLD_FOLHA_PAGAMENTO||'->'||NEW_FOLHA_PAGAMENTO;
    END

    IF (OLD.HABILITA_SALARIO_BASE <> NEW.HABILITA_SALARIO_BASE) THEN
    BEGIN
        HISTORICO = HISTORICO||' SALARIO BASE:'||OLD.HABILITA_SALARIO_BASE||'->'||NEW.HABILITA_SALARIO_BASE;
    END

    IF (OLD.HABILITA_BASE_CALCULO <> NEW.HABILITA_BASE_CALCULO) THEN
    BEGIN
        HISTORICO = HISTORICO||' BASE CALC:'||OLD.HABILITA_BASE_CALCULO||'->'||NEW.HABILITA_BASE_CALCULO;
    END

    IF (OLD.FORMULA <> NEW.FORMULA) THEN
    BEGIN
        HISTORICO = HISTORICO||' FORMULA ALTERADA!';
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OBSERVACAO ALTERADA!';
    END

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

SET TERM ; ^