CREATE trigger ttbprontuario_b02i for tbprontuario
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' REGISTRO INCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBPRONTUARIO',NEW.ID, HISTORICO);
    END
END;


CREATE trigger ttbprontuario_b01u for tbprontuario
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

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

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

    IF ( NEW.CLIENTE_ID IS DISTINCT FROM OLD.CLIENTE_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLIENTE:'||COALESCE(OLD.CLIENTE_ID, 0)||'->'||COALESCE(NEW.CLIENTE_ID, 0);
    END

    IF ( NEW.COLABORADOR_ID IS DISTINCT FROM OLD.COLABORADOR_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' COLAB:'||COALESCE(OLD.COLABORADOR_ID, 0)||'->'||COALESCE(NEW.COLABORADOR_ID, 0);
    END

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

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

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

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

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

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

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

    IF ( NEW.PACIENTE_EMAIL <> OLD.PACIENTE_EMAIL) THEN
    BEGIN
        HISTORICO = HISTORICO||' EMAIL:'||OLD.PACIENTE_EMAIL||'->'||NEW.PACIENTE_EMAIL;
    END
    
    IF ( NEW.PACIENTE_TELEFONE <> OLD.PACIENTE_TELEFONE) THEN
    BEGIN
        HISTORICO = HISTORICO||' FONE:'||OLD.PACIENTE_TELEFONE||'->'||NEW.PACIENTE_TELEFONE;
    END

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

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


    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = ' REG.ALTERADO: '||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBPRONTUARIO',NEW.ID, HISTORICO);
    END
END;


CREATE trigger ttbprontuario_b01d for tbprontuario
active before delete position 1
AS
BEGIN
   IF(OLD.ID > 0) THEN
   BEGIN
      DELETE FROM TBPRONTUARIO_ATENDIMENTO WHERE PRONTUARIO_ID = OLD.ID;
   END
END;


CREATE OR ALTER trigger ttbprontuario_b02d for tbprontuario
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' REGISTRO EXCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBPRONTUARIO',OLD.ID, HISTORICO);
    END
END;




