ALTER TABLE TBPCM_SETOR
    ADD HORA_INICIO_EXP TIME,
    ADD HORA_FIM_EXP TIME;

COMMENT ON COLUMN TBPCM_SETOR.HORA_INICIO_EXP IS
'Hora de inicio do expediente do setor';

COMMENT ON COLUMN TBPCM_SETOR.HORA_FIM_EXP IS
'Hora do fim do expediente do setor';

SET TERM ^ ;

CREATE OR ALTER trigger ttbpcm_setor_b01u for tbpcm_setor
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
DECLARE VARIABLE OLD_CCUSTO VARCHAR(500);   
DECLARE VARIABLE NEW_CCUSTO VARCHAR(500);
BEGIN

    HISTORICO = '';
    OLD_CCUSTO = COALESCE((SELECT FIRST 1 FN_MASK_V2(A.CODIGO, 'CC')||' - '||A.DESCRICAO FROM TBCENTRO_DE_CUSTO A WHERE A.CODIGO = OLD.CCUSTO), '');
    NEW_CCUSTO = COALESCE((SELECT FIRST 1 FN_MASK_V2(A.CODIGO, 'CC')||' - '||A.DESCRICAO FROM TBCENTRO_DE_CUSTO A WHERE A.CODIGO = NEW.CCUSTO), '');

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

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

    IF (OLD.HORA_INICIO_EXP <> NEW.HORA_INICIO_EXP) THEN
    BEGIN
        HISTORICO = HISTORICO||' INI.EXP:'||FORMATTIME(OLD.HORA_INICIO_EXP)||'->'||FORMATTIME(NEW.HORA_INICIO_EXP);
    END

    IF (OLD.HORA_FIM_EXP <> NEW.HORA_FIM_EXP) THEN
    BEGIN
        HISTORICO = HISTORICO||' FIN.EXP:'||FORMATTIME(OLD.HORA_FIM_EXP)||'->'||FORMATTIME(NEW.HORA_FIM_EXP);
    END

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

SET TERM ; ^

UPDATE TBMENU_GRUPO
SET DESCRICAO = 'PCM',
    STATUS = '1'
WHERE CODIGO = 'PCM';