ALTER TABLE TBFOLHAPAGAMENTO
    ADD QTD_HORAS INTEGER DEFAULT 220;

COMMENT ON COLUMN TBFOLHAPAGAMENTO.QTD_HORAS IS
'Qtd. em Horas do mês para desconto de faltas por horas';


UPDATE TBFOLHAPAGAMENTO
	SET QTD_HORAS = 220
	WHERE QTD_HORAS IS NULL;
	

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

SET TERM ^ ;

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

DECLARE VARIABLE OLD_ESTABELECIMENTO VARCHAR(500);
DECLARE VARIABLE NEW_ESTABELECIMENTO VARCHAR(500);
DECLARE VARIABLE OLD_FOLPAG_CONTABIL VARCHAR(500);  
DECLARE VARIABLE NEW_FOLPAG_CONTABIL VARCHAR(500);
BEGIN
    
    HISTORICO = '';

    OLD_ESTABELECIMENTO = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO, 4, '0')||' - '||A.NOMEFANTASIA FROM TBESTABELECIMENTO A WHERE A.CODIGO = OLD.ESTABELECIMENTO_ID), '');
    NEW_ESTABELECIMENTO = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO, 4, '0')||' - '||A.NOMEFANTASIA FROM TBESTABELECIMENTO A WHERE A.CODIGO = NEW.ESTABELECIMENTO_ID), '');
    OLD_FOLPAG_CONTABIL = COALESCE((SELECT FIRST 1 FN_LPAD(B.ID, 6, '0')||' - '||B.DESCRICAO_ABREVIADA FROM TBFOLPAG_VERBA B WHERE B.ID = OLD.FOLPAG_CONTABIL_ID), '');
    NEW_FOLPAG_CONTABIL = COALESCE((SELECT FIRST 1 FN_LPAD(B.ID, 6, '0')||' - '||B.DESCRICAO_ABREVIADA FROM TBFOLPAG_VERBA B WHERE B.ID = NEW.FOLPAG_CONTABIL_ID), '');

    IF (OLD.ESTABELECIMENTO_ID <> NEW.ESTABELECIMENTO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' ESTAB:'||OLD_ESTABELECIMENTO||'->'||NEW_ESTABELECIMENTO;
    END

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

    IF (OLD.FOLPAG_CONTABIL_ID <> NEW.FOLPAG_CONTABIL_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' FOLHA PAG:'||OLD_FOLPAG_CONTABIL||'->'||NEW_FOLPAG_CONTABIL;
    END

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

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

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

SET TERM ; ^

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

CREATE INDEX ITBFOLHAPAGAMENTO_04
ON TBFOLHAPAGAMENTO (QTD_HORAS);

