alter table parametros add par_listarpacientepornome boolean, add par_pesquisarnomerg boolean; update parametros set par_listarpacientepornome = false, par_pesquisarnomerg = false; alter table paciente add pac_rgnaoinformado boolean default false; insert into atualizacoes(atu_nome) values ('v18080001_190918.sql'); alter table convenios add con_percvalorminimo numeric(15,4), add con_exigirvalorminimo boolean; insert into atualizacoes(atu_nome) values ('v18080002_141118.sql'); alter table filiais_postocoleta add fil_xmlapoioweb text; alter table examerequisicaosituacoes add mrc_codigo integer, add ers_motivorecoleta varchar(200); create index xif3examerequisicaosituacoes on examerequisicaosituacoes ( fil_codigo, mrc_codigo ); drop function fn_ti_examerequisicaosituacoes() cascade; create function fn_ti_examerequisicaosituacoes() returns opaque as ' declare numrows integer; tmp varchar; begin select count(*) into numrows from motivorecoleta where new.fil_codigo = motivorecoleta.fil_codigo and new.mrc_codigo = motivorecoleta.mrc_codigo; tmp:=''motivorecoleta|''; tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|''; tmp:=tmp || ''mrc_codigo='' || new.mrc_codigo || ''|''; tmp:=substring(tmp,1,length(tmp)-1); if ( new.fil_codigo is not null and new.mrc_codigo is not null and numrows = 0 ) then raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela motivorecoleta. chave para consulta:[%]'',tmp using errcode=upper(''ifkne''); end if; select count(*) into numrows from usuario where new.usr_codigo = usuario.usr_codigo; tmp:=''usuario|''; tmp:=tmp || ''usr_codigo='' || new.usr_codigo || ''|''; tmp:=substring(tmp,1,length(tmp)-1); if ( new.usr_codigo is not null and numrows = 0 ) then raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela usuario. chave para consulta:[%]'',tmp using errcode=upper(''ifkne''); end if; select count(*) into numrows from examerequisicao where new.fil_codigo = examerequisicao.fil_codigo and new.exa_codigo = examerequisicao.exa_codigo and new.mco_codigo = examerequisicao.mco_codigo and new.req_codigo = examerequisicao.req_codigo; tmp:=''examerequisicao|''; tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|''; tmp:=tmp || ''exa_codigo='' || new.exa_codigo || ''|''; tmp:=tmp || ''mco_codigo='' || new.mco_codigo || ''|''; tmp:=tmp || ''req_codigo='' || new.req_codigo || ''|''; tmp:=substring(tmp,1,length(tmp)-1); if ( numrows = 0 ) then raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela examerequisicao. chave para consulta:[%]'',tmp using errcode=upper(''ifkne''); end if; return new; end;' language 'plpgsql'; create trigger ti_examerequisicaosituacoes after insert on examerequisicaosituacoes for each row execute procedure fn_ti_examerequisicaosituacoes(); drop function fn_tu_examerequisicaosituacoes() cascade; create function fn_tu_examerequisicaosituacoes() returns opaque as ' declare numrows integer; tmp varchar; begin select count(*) into numrows from motivorecoleta where new.fil_codigo = motivorecoleta.fil_codigo and new.mrc_codigo = motivorecoleta.mrc_codigo; tmp:=''motivorecoleta|''; tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|''; tmp:=tmp || ''mrc_codigo='' || new.mrc_codigo || ''|''; tmp:=substring(tmp,1,length(tmp)-1); if ( new.fil_codigo is not null and new.mrc_codigo is not null and numrows = 0 ) then raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela motivorecoleta. chave para consulta:[%]'',tmp using errcode=upper(''ufkne''); end if; select count(*) into numrows from usuario where new.usr_codigo = usuario.usr_codigo; tmp:=''usuario|''; tmp:=tmp || ''usr_codigo='' || new.usr_codigo || ''|''; tmp:=substring(tmp,1,length(tmp)-1); if ( new.usr_codigo is not null and numrows = 0 ) then raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela usuario. chave para consulta:[%]'',tmp using errcode=upper(''ufkne''); end if; select count(*) into numrows from examerequisicao where new.fil_codigo = examerequisicao.fil_codigo and new.exa_codigo = examerequisicao.exa_codigo and new.mco_codigo = examerequisicao.mco_codigo and new.req_codigo = examerequisicao.req_codigo; tmp:=''examerequisicao|''; tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|''; tmp:=tmp || ''exa_codigo='' || new.exa_codigo || ''|''; tmp:=tmp || ''mco_codigo='' || new.mco_codigo || ''|''; tmp:=tmp || ''req_codigo='' || new.req_codigo || ''|''; tmp:=substring(tmp,1,length(tmp)-1); if ( numrows = 0 ) then raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela examerequisicao. chave para consulta:[%]'',tmp using errcode=upper(''ufkne''); end if; return old; end;' language 'plpgsql'; create trigger tu_examerequisicaosituacoes after update on examerequisicaosituacoes for each row execute procedure fn_tu_examerequisicaosituacoes(); drop function fn_td_motivorecoleta() cascade; create function fn_td_motivorecoleta() returns opaque as ' declare numrows integer; begin select count(*) into numrows from examerequisicaosituacoes where examerequisicaosituacoes.fil_codigo = old.fil_codigo and examerequisicaosituacoes.mrc_codigo = old.mrc_codigo; if (numrows > 0) then raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaosituacoes.''; end if; select count(*) into numrows from examerequisicao where examerequisicao.fil_codigo = old.fil_codigo and examerequisicao.mrc_codigo = old.mrc_codigo; if (numrows > 0) then raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.''; end if; return old; end;' language 'plpgsql'; create trigger td_motivorecoleta after delete on motivorecoleta for each row execute procedure fn_td_motivorecoleta(); drop function fn_ti_motivorecoleta() cascade; create function fn_ti_motivorecoleta() returns opaque as ' declare numrows integer; tmp varchar; begin select count(*) into numrows from filiais_postocoleta where new.fil_codigo = filiais_postocoleta.fil_codigo; tmp:=''filiais_postocoleta|''; tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|''; tmp:=substring(tmp,1,length(tmp)-1); if ( numrows = 0 ) then raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela filiais_postocoleta. chave para consulta:[%]'',tmp using errcode=upper(''ifkne''); end if; return new; end;' language 'plpgsql'; create trigger ti_motivorecoleta after insert on motivorecoleta for each row execute procedure fn_ti_motivorecoleta(); drop function fn_tu_motivorecoleta() cascade; create function fn_tu_motivorecoleta() returns opaque as ' declare numrows integer; tmp varchar; begin if (old.fil_codigo <> new.fil_codigo or old.mrc_codigo <> new.mrc_codigo) then select count(*) from examerequisicaosituacoes where examerequisicaosituacoes.fil_codigo = old.fil_codigo and examerequisicaosituacoes.mrc_codigo = old.mrc_codigo into numrows; if (numrows > 0) then raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaosituacoes.''; end if; end if; if (old.fil_codigo <> new.fil_codigo or old.mrc_codigo <> new.mrc_codigo) then select count(*) from examerequisicao where examerequisicao.fil_codigo = old.fil_codigo and examerequisicao.mrc_codigo = old.mrc_codigo into numrows; if (numrows > 0) then raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.''; end if; end if; select count(*) into numrows from filiais_postocoleta where new.fil_codigo = filiais_postocoleta.fil_codigo; tmp:=''filiais_postocoleta|''; tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|''; tmp:=substring(tmp,1,length(tmp)-1); if ( numrows = 0 ) then raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela filiais_postocoleta. chave para consulta:[%]'',tmp using errcode=upper(''ufkne''); end if; return old; end;' language 'plpgsql'; create trigger tu_motivorecoleta after update on motivorecoleta for each row execute procedure fn_tu_motivorecoleta(); insert into atualizacoes(atu_nome) values ('v18080003_141118.sql'); alter table contrassenharequisicao add cse_tipo tipo default 'E', add cse_totalrequisicao numeric(15,2), add cse_valorpagorequisicao numeric(15,2); insert into atualizacoes(atu_nome) values ('v18080004_191118.sql');