ALTER TABLE TBFOLHAPAGAMENTO_VERBAS
    ADD COLABORADOR_DESCONTOS_ID INTEGER DEFAULT 0;

COMMENT ON COLUMN TBFOLHAPAGAMENTO_VERBAS.COLABORADOR_DESCONTOS_ID IS
'ID de vinculo com as verbas por colaborador - usado para bloqueio';


CREATE INDEX ITBFOLHAPAGAMENTO_VERBAS_04
ON TBFOLHAPAGAMENTO_VERBAS (COLABORADOR_DESCONTOS_ID);

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

SET TERM ^ ;

CREATE trigger ttbcolaborador_descontos_b01ud for tbcolaborador_descontos
active before update or delete position 0
AS
DECLARE VARIABLE FOLHA_ID INTEGER;
BEGIN

    :FOLHA_ID = COALESCE((SELECT FIRST 1 C.ID FROM TBFOLHAPAGAMENTO_VERBAS A, TBFOLHAPAGAMENTO_COLABORADOR B, TBFOLHAPAGAMENTO C WHERE A.TBFOLHAPAGAMENTO_COLABORADOR_ID = B.ID AND B.TBFOLHAPAGAMENTO_ID = C.ID AND A.COLABORADOR_DESCONTOS_ID = OLD.ID AND B.COLABORADOR_ID = OLD.COLABORADOR_MATRICULA AND C.FOLPAG_CONTABIL_ID = OLD.FOLHA_PAGAMENTO_ID), 0);

    IF (COALESCE(:FOLHA_ID, 0) > 0) THEN
    BEGIN
        
        EXCEPTION "..." 'REGISTRO VINCULADO A FOLHA DE PAGAMENTO '||FN_LPAD(:FOLHA_ID, 4, '0')||'. OPERACAO NAO AUTORIZADA!';

    END
END
^

SET TERM ; ^

