ALTER TABLE TBCOLABORADOR
    ADD ENDERECO_NUMERO VARCHAR(20);
	
ALTER TABLE TBCOLABORADOR
    ADD CARGO_ID INTEGER;
	
CREATE INDEX ITBCOLABORADOR_14
ON TBCOLABORADOR (CARGO_ID);

UPDATE TBCOLABORADOR T SET T.CARGO_ID = (SELECT FIRST 1
                        C.CARGO_CODIGO
                    FROM TBCOLABORADOR_CARGO C WHERE T.CODIGO = C.COLABORADOR_CODIGO
                    AND C.DATA_INICIAL <= CURRENT_DATE ORDER BY C.DATA_INICIAL DESC);
					
ALTER TABLE TBCOLABORADOR
    ADD CLIENTE_ID INTEGER DEFAULT 0 NOT NULL;

CREATE INDEX ITBCOLABORADOR_15
ON TBCOLABORADOR (CLIENTE_ID);

SET TERM ^ ;

CREATE trigger ttbcolaborador_b06u for tbcolaborador
active before update position 5
AS
DECLARE VARIABLE AGENDAMENTOS_VINCULADOS INTEGER;
BEGIN
    
    IF(NEW.CLIENTE_ID IS DISTINCT FROM OLD.CLIENTE_ID AND NEW.CLIENTE_ID = 0) THEN
    BEGIN

        :AGENDAMENTOS_VINCULADOS = COALESCE((SELECT COUNT(T.ID) FROM TBCALENDARIO_EVENTO T WHERE T.EMPRESA_ID = OLD.CLIENTE_ID), 0);

        IF(COALESCE(:AGENDAMENTOS_VINCULADOS, 0) > 0) THEN
        BEGIN
            EXCEPTION "..."'JA EXISTEM EVENTOS VINCULADOS A ESSE CLIENTE. OPERACAO CANCELADA';
        END
    END

END
^

SET TERM ; ^

CREATE INDEX ITBCALENDARIO_EVENTO_01
ON TBCALENDARIO_EVENTO (EMPRESA_ID);

