ALTER TABLE TBCOLABORADOR
    ADD APELIDO VARCHAR(40);

SET TERM ^ ;

CREATE OR ALTER trigger ttbcolaborador_b04u for tbcolaborador
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
DECLARE VARIABLE HIST_TEC VARCHAR(1000);
DECLARE VARIABLE HIST_EXTRA VARCHAR(1000);
BEGIN

    HISTORICO   = '';
    HIST_TEC    = '';
    HIST_EXTRA  = '';

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

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

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

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

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

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

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

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

    IF (OLD.CURSOS_TECNICOS <> NEW.CURSOS_TECNICOS) THEN
    BEGIN
        HIST_TEC = HIST_TEC||' CURSO TEC: '||FN_ELIPSES(OLD.CURSOS_TECNICOS,100)||' -> '||FN_ELIPSES(NEW.CURSOS_TECNICOS,100);
    END

    IF (OLD.CURSOS_EXTRACURRICULARES <> NEW.CURSOS_EXTRACURRICULARES) THEN
    BEGIN
        HIST_EXTRA = HIST_EXTRA||' CURSO EXT: '||FN_ELIPSES(OLD.CURSOS_EXTRACURRICULARES,100)||' -> '||FN_ELIPSES(NEW.CURSOS_EXTRACURRICULARES,100);
    END

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

    IF (OLD.BANCO_CONTA_DV <> NEW.BANCO_CONTA_DV) THEN
    BEGIN
        HISTORICO = HISTORICO||' BCO.CONTA DV: '||OLD.BANCO_CONTA_DV||' -> '||NEW.BANCO_CONTA_DV;
    END  

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

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

    IF (OLD.BANCO_AGENCIA_DV <> NEW.BANCO_AGENCIA_DV) THEN
    BEGIN
        HISTORICO = HISTORICO||' BCO.AG.DV: '||OLD.BANCO_AGENCIA_DV||' -> '||NEW.BANCO_AGENCIA_DV;
    END  

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

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

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

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

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

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

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

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

    IF (OLD.DOCUMENTO_RG_EMISSAO <> NEW.DOCUMENTO_RG_EMISSAO) THEN
    BEGIN
         HISTORICO = HISTORICO||' DT.EMISSAO(RG): '||OLD.DOCUMENTO_RG_EMISSAO||' -> '||NEW.DOCUMENTO_RG_EMISSAO;
    END

    IF (OLD.DOCUMENTO_RG_EMISSOR <> NEW.DOCUMENTO_RG_EMISSOR) THEN
    BEGIN
         HISTORICO = HISTORICO||' ORG.EMISSOR(RG):'||OLD.DOCUMENTO_RG_EMISSOR||' -> '||NEW.DOCUMENTO_RG_EMISSOR;
    END

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

    IF (OLD.DOCUMENTO_CPF_EMISSAO <> NEW.DOCUMENTO_CPF_EMISSAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.EMISSAO(CPF): '||OLD.DOCUMENTO_CPF_EMISSAO||' -> '||NEW.DOCUMENTO_CPF_EMISSAO;
    END

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

    IF (OLD.DOCUMENTO_CTPS_EMISSAO <> NEW.DOCUMENTO_CTPS_EMISSAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.EMISSAO(CTPS): '||OLD.DOCUMENTO_CTPS_EMISSAO||' -> '||NEW.DOCUMENTO_CTPS_EMISSAO;
    END

    IF (OLD.DOCUMENTO_CTPS_EMISSOR <> NEW.DOCUMENTO_CTPS_EMISSOR) THEN
    BEGIN
        HISTORICO = HISTORICO||' ORG.EMISSOR(CTPS): '||OLD.DOCUMENTO_CTPS_EMISSOR||' -> '||NEW.DOCUMENTO_CTPS_EMISSOR;
    END

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

    IF (OLD.DOCUMENTO_CTPS_EMISSOR <> NEW.DOCUMENTO_CTPS_EMISSOR) THEN
    BEGIN
        HISTORICO = HISTORICO||' ORG.EMISSOR(CTPS): '||OLD.DOCUMENTO_CTPS_EMISSOR||' -> '||NEW.DOCUMENTO_CTPS_EMISSOR;
    END

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

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

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

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

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

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

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

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

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

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

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

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

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = FN_ELIPSES(HISTORICO,500);
        EXECUTE PROCEDURE SPI_HISTORICO('TBCOLABORADOR',OLD.CODIGO, HISTORICO);
    END
    
    IF (HIST_EXTRA <> '') THEN
    BEGIN
        HIST_EXTRA = FN_ELIPSES(HIST_EXTRA,500);
        EXECUTE PROCEDURE SPI_HISTORICO('TBCOLABORADOR',OLD.CODIGO, HIST_EXTRA);
    END
    
    IF (HIST_TEC <> '') THEN
    BEGIN
        HIST_TEC = FN_ELIPSES(HIST_TEC,500);
        EXECUTE PROCEDURE SPI_HISTORICO('TBCOLABORADOR',OLD.CODIGO, HIST_TEC);
    END
END
^

SET TERM ; ^

