
create table materialusuario (
       fil_codigo           integer not null,
       mat_codigo           integer not null,
       usr_codigo           varchar(20) not null,
       mus_tipo             varchar(1) not null
);

create unique index xpkmaterialusuario on materialusuario
(
       fil_codigo,
       mat_codigo,
       usr_codigo,
       mus_tipo
);

create index xif1materialusuario on materialusuario
(
       fil_codigo,
       mat_codigo
);

create index xif2materialusuario on materialusuario
(
       usr_codigo
);


alter table materialusuario
       add primary key (fil_codigo, mat_codigo, usr_codigo, mus_tipo);



drop function fn_td_material() cascade;

create function fn_td_material() returns opaque as '
declare
	numrows integer;										 
begin
    delete from materialusuario
      where
        materialusuario.fil_codigo = old.fil_codigo and
        materialusuario.mat_codigo = old.mat_codigo;

    select count(*) into numrows
      from materialalternativo
      where
        materialalternativo.fil_codigo = old.fil_codigo and
        materialalternativo.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialalternativo.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.fil_codigo = old.fil_codigo and
        materiallote.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from materialenviadomaterial
      where
        materialenviadomaterial.fil_codigo = old.fil_codigo and
        materialenviadomaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialenviadomaterial.'';
    end if;

    select count(*) into numrows
      from materialidentificado
      where
        materialidentificado.fil_codigo = old.fil_codigo and
        materialidentificado.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialidentificado.'';
    end if;

    select count(*) into numrows
      from montagemkitconsumido
      where
        montagemkitconsumido.fil_codigo = old.fil_codigo and
        montagemkitconsumido.mat_codconsumido = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela montagemkitconsumido.'';
    end if;

    select count(*) into numrows
      from montagemkitmaterial
      where
        montagemkitmaterial.fil_codigo = old.fil_codigo and
        montagemkitmaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela montagemkitmaterial.'';
    end if;

    select count(*) into numrows
      from transfestoquematerial
      where
        transfestoquematerial.fil_codigo = old.fil_codigo and
        transfestoquematerial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela transfestoquematerial.'';
    end if;

    select count(*) into numrows
      from estoquemanualmaterial
      where
        estoquemanualmaterial.fil_codigo = old.fil_codigo and
        estoquemanualmaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela estoquemanualmaterial.'';
    end if;

    select count(*) into numrows
      from requisicaoestoquematerial
      where
        requisicaoestoquematerial.fil_codigo = old.fil_codigo and
        requisicaoestoquematerial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoestoquematerial.'';
    end if;

    select count(*) into numrows
      from lanctoestoque
      where
        lanctoestoque.fil_codigo = old.fil_codigo and
        lanctoestoque.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctoestoque.'';
    end if;

    select count(*) into numrows
      from conferenciaestoquematerial
      where
        conferenciaestoquematerial.fil_codigo = old.fil_codigo and
        conferenciaestoquematerial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conferenciaestoquematerial.'';
    end if;

    select count(*) into numrows
      from conferenciaentradamaterial
      where
        conferenciaentradamaterial.fil_codigo = old.fil_codigo and
        conferenciaentradamaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conferenciaentradamaterial.'';
    end if;

    select count(*) into numrows
      from notafiscalmaterial
      where
        notafiscalmaterial.fil_codigo = old.fil_codigo and
        notafiscalmaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscalmaterial.'';
    end if;

    select count(*) into numrows
      from pedidomaterial
      where
        pedidomaterial.fil_codigo = old.fil_codigo and
        pedidomaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pedidomaterial.'';
    end if;

    select count(*) into numrows
      from fichatecnicamaterial
      where
        fichatecnicamaterial.fil_codigo = old.fil_codigo and
        fichatecnicamaterial.mat_codigofilho = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fichatecnicamaterial.'';
    end if;

    select count(*) into numrows
      from fichatecnicamaterial
      where
        fichatecnicamaterial.fil_codigo = old.fil_codigo and
        fichatecnicamaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fichatecnicamaterial.'';
    end if;

    select count(*) into numrows
      from cotacaomaterial
      where
        cotacaomaterial.fil_codigo = old.fil_codigo and
        cotacaomaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela cotacaomaterial.'';
    end if;

    select count(*) into numrows
      from saldoestoquecelula
      where
        saldoestoquecelula.fil_codigo = old.fil_codigo and
        saldoestoquecelula.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela saldoestoquecelula.'';
    end if;

    select count(*) into numrows
      from saldoestoque
      where
        saldoestoque.fil_codigo = old.fil_codigo and
        saldoestoque.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela saldoestoque.'';
    end if;

    select count(*) into numrows
      from materialpatrimonio
      where
        materialpatrimonio.fil_codigo = old.fil_codigo and
        materialpatrimonio.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialpatrimonio.'';
    end if;

    select count(*) into numrows
      from recipmaterial
      where
        recipmaterial.fil_codigo = old.fil_codigo and
        recipmaterial.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela recipmaterial.'';
    end if;

    select count(*) into numrows
      from materialexamerequis
      where
        materialexamerequis.fil_codigo = old.fil_codigo and
        materialexamerequis.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialexamerequis.'';
    end if;

    select count(*) into numrows
      from materialexame
      where
        materialexame.fil_codigo = old.fil_codigo and
        materialexame.mat_codigo = old.mat_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialexame.'';
    end if;


return old;
end;'
language 'plpgsql';
					
create trigger td_material
after delete on material
for each row execute procedure fn_td_material();


drop function fn_ti_material() cascade;

create function fn_ti_material() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    select count(*) into numrows
      from usuario
      where
        new.usr_codavisolote = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codavisolote || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.usr_codavisolote 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 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 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;

    select count(*) into numrows
      from unidademedida
      where
        new.fil_codigo = unidademedida.fil_codigo and
        new.unm_codigo = unidademedida.unm_codigo;
    tmp:=''unidademedida|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''unm_codigo='' || new.unm_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.fil_codigo is not null and
      new.unm_codigo is not null and
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela unidademedida. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;

    select count(*) into numrows
      from tipomaterial
      where
        new.fil_codigo = tipomaterial.fil_codigo and
        new.tpm_codigo = tipomaterial.tpm_codigo;
    tmp:=''tipomaterial|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''tpm_codigo='' || new.tpm_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.fil_codigo is not null and
      new.tpm_codigo is not null and
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela tipomaterial. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;


return new;
end;'
language 'plpgsql';
					
create trigger ti_material
after insert on material
for each row execute procedure fn_ti_material();


drop function fn_tu_material() cascade;

create function fn_tu_material() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from materialusuario
      where
        materialusuario.fil_codigo = old.fil_codigo and
        materialusuario.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialusuario.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from materialalternativo
      where
        materialalternativo.fil_codigo = old.fil_codigo and
        materialalternativo.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialalternativo.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.fil_codigo = old.fil_codigo and
        materiallote.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from materialenviadomaterial
      where
        materialenviadomaterial.fil_codigo = old.fil_codigo and
        materialenviadomaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialenviadomaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from materialidentificado
      where
        materialidentificado.fil_codigo = old.fil_codigo and
        materialidentificado.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialidentificado.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from montagemkitconsumido
      where
        montagemkitconsumido.fil_codigo = old.fil_codigo and
        montagemkitconsumido.mat_codconsumido = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela montagemkitconsumido.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from montagemkitmaterial
      where
        montagemkitmaterial.fil_codigo = old.fil_codigo and
        montagemkitmaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela montagemkitmaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from transfestoquematerial
      where
        transfestoquematerial.fil_codigo = old.fil_codigo and
        transfestoquematerial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela transfestoquematerial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from estoquemanualmaterial
      where
        estoquemanualmaterial.fil_codigo = old.fil_codigo and
        estoquemanualmaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela estoquemanualmaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from requisicaoestoquematerial
      where
        requisicaoestoquematerial.fil_codigo = old.fil_codigo and
        requisicaoestoquematerial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoestoquematerial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from lanctoestoque
      where
        lanctoestoque.fil_codigo = old.fil_codigo and
        lanctoestoque.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoque.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from conferenciaestoquematerial
      where
        conferenciaestoquematerial.fil_codigo = old.fil_codigo and
        conferenciaestoquematerial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conferenciaestoquematerial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from conferenciaentradamaterial
      where
        conferenciaentradamaterial.fil_codigo = old.fil_codigo and
        conferenciaentradamaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conferenciaentradamaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from notafiscalmaterial
      where
        notafiscalmaterial.fil_codigo = old.fil_codigo and
        notafiscalmaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscalmaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from pedidomaterial
      where
        pedidomaterial.fil_codigo = old.fil_codigo and
        pedidomaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pedidomaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from fichatecnicamaterial
      where
        fichatecnicamaterial.fil_codigo = old.fil_codigo and
        fichatecnicamaterial.mat_codigofilho = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fichatecnicamaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from fichatecnicamaterial
      where
        fichatecnicamaterial.fil_codigo = old.fil_codigo and
        fichatecnicamaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fichatecnicamaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from cotacaomaterial
      where
        cotacaomaterial.fil_codigo = old.fil_codigo and
        cotacaomaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela cotacaomaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from saldoestoquecelula
      where
        saldoestoquecelula.fil_codigo = old.fil_codigo and
        saldoestoquecelula.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela saldoestoquecelula.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from saldoestoque
      where
        saldoestoque.fil_codigo = old.fil_codigo and
        saldoestoque.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela saldoestoque.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from materialpatrimonio
      where
        materialpatrimonio.fil_codigo = old.fil_codigo and
        materialpatrimonio.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialpatrimonio.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from recipmaterial
      where
        recipmaterial.fil_codigo = old.fil_codigo and
        recipmaterial.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela recipmaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from materialexamerequis
      where
        materialexamerequis.fil_codigo = old.fil_codigo and
        materialexamerequis.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialexamerequis.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.mat_codigo <> new.mat_codigo) then
    select count(*)
      from materialexame
      where
        materialexame.fil_codigo = old.fil_codigo and
        materialexame.mat_codigo = old.mat_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialexame.'';
    end if;
  end if;
  select count(*) into numrows
    from usuario
    where
      new.usr_codavisolote = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codavisolote || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.usr_codavisolote 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 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 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;

  select count(*) into numrows
    from unidademedida
    where
      new.fil_codigo = unidademedida.fil_codigo and
      new.unm_codigo = unidademedida.unm_codigo;
    tmp:=''unidademedida|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''unm_codigo='' || new.unm_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.fil_codigo is not null and
    new.unm_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela unidademedida. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

  select count(*) into numrows
    from tipomaterial
    where
      new.fil_codigo = tipomaterial.fil_codigo and
      new.tpm_codigo = tipomaterial.tpm_codigo;
    tmp:=''tipomaterial|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''tpm_codigo='' || new.tpm_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.fil_codigo is not null and
    new.tpm_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela tipomaterial. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;


return old;
end;'
language 'plpgsql';
					
create trigger tu_material
after update on material
for each row execute procedure fn_tu_material();


--drop function fn_ti_materialusuario() cascade;

create function fn_ti_materialusuario() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    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 (
      
      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 material
      where
        new.fil_codigo = material.fil_codigo and
        new.mat_codigo = material.mat_codigo;
    tmp:=''material|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''mat_codigo='' || new.mat_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 material. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;


return new;
end;'
language 'plpgsql';
					
create trigger ti_materialusuario
after insert on materialusuario
for each row execute procedure fn_ti_materialusuario();


--drop function fn_tu_materialusuario() cascade;

create function fn_tu_materialusuario() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  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 (
    
    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 material
    where
      new.fil_codigo = material.fil_codigo and
      new.mat_codigo = material.mat_codigo;
    tmp:=''material|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''mat_codigo='' || new.mat_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 material. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;


return old;
end;'
language 'plpgsql';
					
create trigger tu_materialusuario
after update on materialusuario
for each row execute procedure fn_tu_materialusuario();


drop function fn_td_usuario() cascade;

create function fn_td_usuario() returns opaque as '
declare
	numrows integer;										 
begin
    select count(*) into numrows
      from materialusuario
      where
        materialusuario.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialusuario.'';
    end if;

    select count(*) into numrows
      from logids
      where
        logids.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela logids.'';
    end if;

    select count(*) into numrows
      from logvalidalotematerial
      where
        logvalidalotematerial.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela logvalidalotematerial.'';
    end if;

    select count(*) into numrows
      from material
      where
        material.usr_codavisolote = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela material.'';
    end if;

    delete from usuariosenhas
      where
        usuariosenhas.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from pacienteimagens
      where
        pacienteimagens.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pacienteimagens.'';
    end if;

    select count(*) into numrows
      from requisicaoimagens
      where
        requisicaoimagens.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoimagens.'';
    end if;

    select count(*) into numrows
      from orcamentoconvenio
      where
        orcamentoconvenio.usr_coddesconto = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamentoconvenio.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_coddesconto = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicaoetiquetas
      where
        examerequisicaoetiquetas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaoetiquetas.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codduplaconferencia = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from loteexternorequisicao
      where
        loteexternorequisicao.usr_codestorno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexternorequisicao.'';
    end if;

    select count(*) into numrows
      from loteexterno
      where
        loteexterno.usr_codestorno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexterno.'';
    end if;

    select count(*) into numrows
      from materiallotehistorico
      where
        materiallotehistorico.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallotehistorico.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codaberturainicial = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codfechado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codaberto = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    delete from responsavelcertificado
      where
        responsavelcertificado.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codelegibilidade = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codsolicitadotiss = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codcoletar = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from transfestoquematerial
      where
        transfestoquematerial.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela transfestoquematerial.'';
    end if;

    select count(*) into numrows
      from transfestoque
      where
        transfestoque.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela transfestoque.'';
    end if;

    select count(*) into numrows
      from examerequisicaodadosbrutos
      where
        examerequisicaodadosbrutos.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaodadosbrutos.'';
    end if;

    select count(*) into numrows
      from examerequisicaoincerteza
      where
        examerequisicaoincerteza.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaoincerteza.'';
    end if;

    select count(*) into numrows
      from setoresnaoconformidadeusuario
      where
        setoresnaoconformidadeusuario.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela setoresnaoconformidadeusuario.'';
    end if;

    select count(*) into numrows
      from setoresnaoconformidade
      where
        setoresnaoconformidade.usr_codresponsavelsetor = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela setoresnaoconformidade.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codtransportechegada = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codtransportesaida = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from lotefilial
      where
        lotefilial.usr_codrecebeu = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lotefilial.'';
    end if;

    select count(*) into numrows
      from lotefilial
      where
        lotefilial.usr_codenviou = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lotefilial.'';
    end if;

    select count(*) into numrows
      from logoffline
      where
        logoffline.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela logoffline.'';
    end if;

    select count(*) into numrows
      from usuariologin
      where
        usuariologin.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela usuariologin.'';
    end if;

    select count(*) into numrows
      from acoesnaoconformidade
      where
        acoesnaoconformidade.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela acoesnaoconformidade.'';
    end if;

    select count(*) into numrows
      from orcamentolog
      where
        orcamentolog.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamentolog.'';
    end if;

    select count(*) into numrows
      from orcamento
      where
        orcamento.usr_codaprovado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamento.'';
    end if;

    select count(*) into numrows
      from naoconformidade
      where
        naoconformidade.usr_codconclusao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela naoconformidade.'';
    end if;

    select count(*) into numrows
      from naoconformidade
      where
        naoconformidade.usr_codanalise = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela naoconformidade.'';
    end if;

    select count(*) into numrows
      from naoconformidade
      where
        naoconformidade.usr_codregistro = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela naoconformidade.'';
    end if;

    select count(*) into numrows
      from naoconformidade
      where
        naoconformidade.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela naoconformidade.'';
    end if;

    select count(*) into numrows
      from labexterno
      where
        labexterno.usr_codconferir = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela labexterno.'';
    end if;

    select count(*) into numrows
      from banhomariatemperatura
      where
        banhomariatemperatura.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela banhomariatemperatura.'';
    end if;

    select count(*) into numrows
      from banhomaria
      where
        banhomaria.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela banhomaria.'';
    end if;

    select count(*) into numrows
      from filiais_postocoleta
      where
        filiais_postocoleta.usr_codcompras = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela filiais_postocoleta.'';
    end if;

    select count(*) into numrows
      from filiais_postocoleta
      where
        filiais_postocoleta.usr_codestoque = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela filiais_postocoleta.'';
    end if;

    select count(*) into numrows
      from examerequisicaolaminas
      where
        examerequisicaolaminas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaolaminas.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codhorarioanexado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codbloqueado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codremovido = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from examerequisicaohash
      where
        examerequisicaohash.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaohash.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codfinalizado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codemcoleta = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codremarcado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from requisicaolog
      where
        requisicaolog.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaolog.'';
    end if;

    select count(*) into numrows
      from convenioshistoricocota
      where
        convenioshistoricocota.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela convenioshistoricocota.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from examerequisicaotrocas
      where
        examerequisicaotrocas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaotrocas.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codtrocalayout = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codalteracaopreco = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    delete from usuariocompromisso
      where
        usuariocompromisso.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.usr_codsituacao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaohistoricolaudo.'';
    end if;

    select count(*) into numrows
      from contrassenharequisicao
      where
        contrassenharequisicao.usr_codgerada = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela contrassenharequisicao.'';
    end if;

    select count(*) into numrows
      from contrassenharequisicao
      where
        contrassenharequisicao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela contrassenharequisicao.'';
    end if;

    select count(*) into numrows
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codentrega = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela solicitarsoroteca.'';
    end if;

    select count(*) into numrows
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela solicitarsoroteca.'';
    end if;

    select count(*) into numrows
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela solicitarsoroteca.'';
    end if;

    select count(*) into numrows
      from convenioignorarecebimento
      where
        convenioignorarecebimento.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela convenioignorarecebimento.'';
    end if;

    select count(*) into numrows
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaohistoricolaudo.'';
    end if;

    select count(*) into numrows
      from examerequisicaosetor
      where
        examerequisicaosetor.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaosetor.'';
    end if;

    select count(*) into numrows
      from paciente
      where
        paciente.usr_codimpressaocarteira = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela paciente.'';
    end if;

    select count(*) into numrows
      from materialenviado
      where
        materialenviado.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialenviado.'';
    end if;

    select count(*) into numrows
      from materialidentificado
      where
        materialidentificado.usr_codretorno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialidentificado.'';
    end if;

    select count(*) into numrows
      from materialidentificado
      where
        materialidentificado.usr_codenvio = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialidentificado.'';
    end if;

    select count(*) into numrows
      from loteapoio
      where
        loteapoio.usr_codrecebeucaixa = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteapoio.'';
    end if;

    select count(*) into numrows
      from examerequisicaosoroteca
      where
        examerequisicaosoroteca.usr_coddescarte = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaosoroteca.'';
    end if;

    select count(*) into numrows
      from examerequisicaosoroteca
      where
        examerequisicaosoroteca.usr_codsoroteca = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaosoroteca.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codguiarepasse = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codrecoleta = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codfaturarepasse = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codcomissao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from montagemkit
      where
        montagemkit.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela montagemkit.'';
    end if;

    select count(*) into numrows
      from transfestoque
      where
        transfestoque.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela transfestoque.'';
    end if;

    select count(*) into numrows
      from orcamento
      where
        orcamento.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamento.'';
    end if;

    select count(*) into numrows
      from estoquemanual
      where
        estoquemanual.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela estoquemanual.'';
    end if;

    select count(*) into numrows
      from requisicaoestoque
      where
        requisicaoestoque.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoestoque.'';
    end if;

    select count(*) into numrows
      from requisicaoestoque
      where
        requisicaoestoque.usr_codalmoxarife = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoestoque.'';
    end if;

    select count(*) into numrows
      from requisicaoestoque
      where
        requisicaoestoque.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoestoque.'';
    end if;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codautorizafinanceira = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from conferenciaestoque
      where
        conferenciaestoque.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conferenciaestoque.'';
    end if;

    select count(*) into numrows
      from lanctoestoque
      where
        lanctoestoque.usr_codconciliacao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctoestoque.'';
    end if;

    select count(*) into numrows
      from lanctoestoque
      where
        lanctoestoque.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctoestoque.'';
    end if;

    select count(*) into numrows
      from lanctoestoque
      where
        lanctoestoque.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctoestoque.'';
    end if;

    select count(*) into numrows
      from conferenciaentrada
      where
        conferenciaentrada.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conferenciaentrada.'';
    end if;

    select count(*) into numrows
      from conferenciaentrada
      where
        conferenciaentrada.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conferenciaentrada.'';
    end if;

    select count(*) into numrows
      from pedido
      where
        pedido.usr_codexclusao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pedido.'';
    end if;

    select count(*) into numrows
      from fatura
      where
        fatura.usr_codcomissao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fatura.'';
    end if;

    select count(*) into numrows
      from pedido
      where
        pedido.usr_codautorizacao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pedido.'';
    end if;

    select count(*) into numrows
      from pedido
      where
        pedido.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pedido.'';
    end if;

    select count(*) into numrows
      from cotacao
      where
        cotacao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela cotacao.'';
    end if;

    select count(*) into numrows
      from material
      where
        material.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela material.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codprotestocobranca = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codcartoriocobranca = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codavisocobranca = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codrepeticao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from paciente
      where
        paciente.usr_codalteracao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela paciente.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codguia = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicaosituacoes
      where
        examerequisicaosituacoes.usr_codigo = old.usr_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 exames
      where
        exames.usr_codassinaweb = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela exames.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codexcluido = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codexcluida = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from fatura
      where
        fatura.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fatura.'';
    end if;

    select count(*) into numrows
      from convenios
      where
        convenios.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela convenios.'';
    end if;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codreimpressao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from geladeirastemperaturas
      where
        geladeirastemperaturas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela geladeirastemperaturas.'';
    end if;

    select count(*) into numrows
      from geladeiras
      where
        geladeiras.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela geladeiras.'';
    end if;

    delete from usuariofilial
      where
        usuariofilial.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codimpressao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codcancelada = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from baixa
      where
        baixa.usr_codcancelado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela baixa.'';
    end if;

    select count(*) into numrows
      from baixa
      where
        baixa.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela baixa.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codcancelado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from lanctocaixa
      where
        lanctocaixa.usr_codcancelado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctocaixa.'';
    end if;

    select count(*) into numrows
      from requisicaocid10
      where
        requisicaocid10.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaocid10.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codmaterialsetor = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codloteexterno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from loteexterno
      where
        loteexterno.usr_codenvio = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexterno.'';
    end if;

    select count(*) into numrows
      from loteexterno
      where
        loteexterno.usr_codcriacao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexterno.'';
    end if;

    select count(*) into numrows
      from log
      where
        log.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela log.'';
    end if;

    select count(*) into numrows
      from usuariomensagem
      where
        usuariomensagem.usr_codorigem = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela usuariomensagem.'';
    end if;

    delete from usuariomensagem
      where
        usuariomensagem.usr_coddestino = old.usr_codigo;

    select count(*) into numrows
      from conveniomensagem
      where
        conveniomensagem.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conveniomensagem.'';
    end if;

    select count(*) into numrows
      from examerequisicaorecipiente
      where
        examerequisicaorecipiente.usr_codtriagem = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaorecipiente.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codetqtriagem = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codetqcoleta = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from loteapoio
      where
        loteapoio.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteapoio.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codtriagem = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from fatura
      where
        fatura.usr_codconferencia = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fatura.'';
    end if;

    select count(*) into numrows
      from fatura
      where
        fatura.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fatura.'';
    end if;

    select count(*) into numrows
      from contrasenha
      where
        contrasenha.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela contrasenha.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codnaofaturar = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from requisicaousuario
      where
        requisicaousuario.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaousuario.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codabertura = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codcortesia = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codmapa = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from interfaceexamerequisicao
      where
        interfaceexamerequisicao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela interfaceexamerequisicao.'';
    end if;

    select count(*) into numrows
      from usuarioparametro
      where
        usuarioparametro.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela usuarioparametro.'';
    end if;

    select count(*) into numrows
      from lanctocaixa
      where
        lanctocaixa.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctocaixa.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codimpressao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codentrega = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codfatura = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codmaterial = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_coddigitador = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codassina = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    delete from usuarioacesso
      where
        usuarioacesso.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from setores
      where
        setores.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela setores.'';
    end if;

    select count(*) into numrows
      from paciente
      where
        paciente.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela paciente.'';
    end if;


return old;
end;'
language 'plpgsql';
					
create trigger td_usuario
after delete on usuario
for each row execute procedure fn_td_usuario();


drop function fn_ti_usuario() cascade;

create function fn_ti_usuario() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    select count(*) into numrows
      from tipousuario
      where
        new.tpu_codigo = tipousuario.tpu_codigo;
    tmp:=''tipousuario|'';
    
      tmp:=tmp || ''tpu_codigo='' || new.tpu_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.tpu_codigo is not null and
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela tipousuario. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;


return new;
end;'
language 'plpgsql';
					
create trigger ti_usuario
after insert on usuario
for each row execute procedure fn_ti_usuario();


drop function fn_tu_usuario() cascade;

create function fn_tu_usuario() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materialusuario
      where
        materialusuario.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialusuario.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from logids
      where
        logids.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logids.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from logvalidalotematerial
      where
        logvalidalotematerial.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logvalidalotematerial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from material
      where
        material.usr_codavisolote = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela material.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariosenhas
      where
        usuariosenhas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariosenhas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from pacienteimagens
      where
        pacienteimagens.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pacienteimagens.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaoimagens
      where
        requisicaoimagens.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoimagens.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from orcamentoconvenio
      where
        orcamentoconvenio.usr_coddesconto = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamentoconvenio.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_coddesconto = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaoetiquetas
      where
        examerequisicaoetiquetas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaoetiquetas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codduplaconferencia = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexternorequisicao
      where
        loteexternorequisicao.usr_codestorno = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexternorequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexterno
      where
        loteexterno.usr_codestorno = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexterno.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallotehistorico
      where
        materiallotehistorico.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallotehistorico.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codaberturainicial = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codfechado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codaberto = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from responsavelcertificado
      where
        responsavelcertificado.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela responsavelcertificado.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codelegibilidade = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codsolicitadotiss = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codcoletar = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from transfestoquematerial
      where
        transfestoquematerial.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela transfestoquematerial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from transfestoque
      where
        transfestoque.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela transfestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaodadosbrutos
      where
        examerequisicaodadosbrutos.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaodadosbrutos.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaoincerteza
      where
        examerequisicaoincerteza.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaoincerteza.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from setoresnaoconformidadeusuario
      where
        setoresnaoconformidadeusuario.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela setoresnaoconformidadeusuario.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from setoresnaoconformidade
      where
        setoresnaoconformidade.usr_codresponsavelsetor = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela setoresnaoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codtransportechegada = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codtransportesaida = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lotefilial
      where
        lotefilial.usr_codrecebeu = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lotefilial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lotefilial
      where
        lotefilial.usr_codenviou = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lotefilial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from logoffline
      where
        logoffline.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logoffline.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariologin
      where
        usuariologin.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariologin.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from acoesnaoconformidade
      where
        acoesnaoconformidade.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela acoesnaoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from orcamentolog
      where
        orcamentolog.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamentolog.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from orcamento
      where
        orcamento.usr_codaprovado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.usr_codconclusao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.usr_codanalise = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.usr_codregistro = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from labexterno
      where
        labexterno.usr_codconferir = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela labexterno.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from banhomariatemperatura
      where
        banhomariatemperatura.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela banhomariatemperatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from banhomaria
      where
        banhomaria.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela banhomaria.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from filiais_postocoleta
      where
        filiais_postocoleta.usr_codcompras = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filiais_postocoleta.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from filiais_postocoleta
      where
        filiais_postocoleta.usr_codestoque = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filiais_postocoleta.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaolaminas
      where
        examerequisicaolaminas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaolaminas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codhorarioanexado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codbloqueado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codremovido = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaohash
      where
        examerequisicaohash.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaohash.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codfinalizado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codemcoleta = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codremarcado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaolog
      where
        requisicaolog.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaolog.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from convenioshistoricocota
      where
        convenioshistoricocota.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela convenioshistoricocota.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaotrocas
      where
        examerequisicaotrocas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaotrocas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codtrocalayout = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codalteracaopreco = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariocompromisso
      where
        usuariocompromisso.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariocompromisso.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.usr_codsituacao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaohistoricolaudo.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from contrassenharequisicao
      where
        contrassenharequisicao.usr_codgerada = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela contrassenharequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from contrassenharequisicao
      where
        contrassenharequisicao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela contrassenharequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codentrega = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela solicitarsoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela solicitarsoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela solicitarsoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from convenioignorarecebimento
      where
        convenioignorarecebimento.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela convenioignorarecebimento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaohistoricolaudo.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaosetor
      where
        examerequisicaosetor.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaosetor.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from paciente
      where
        paciente.usr_codimpressaocarteira = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela paciente.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materialenviado
      where
        materialenviado.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialenviado.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materialidentificado
      where
        materialidentificado.usr_codretorno = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialidentificado.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materialidentificado
      where
        materialidentificado.usr_codenvio = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialidentificado.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteapoio
      where
        loteapoio.usr_codrecebeucaixa = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteapoio.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaosoroteca
      where
        examerequisicaosoroteca.usr_coddescarte = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaosoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaosoroteca
      where
        examerequisicaosoroteca.usr_codsoroteca = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaosoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codguiarepasse = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codrecoleta = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codfaturarepasse = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codcomissao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from montagemkit
      where
        montagemkit.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela montagemkit.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from transfestoque
      where
        transfestoque.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela transfestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from orcamento
      where
        orcamento.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from estoquemanual
      where
        estoquemanual.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela estoquemanual.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaoestoque
      where
        requisicaoestoque.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaoestoque
      where
        requisicaoestoque.usr_codalmoxarife = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaoestoque
      where
        requisicaoestoque.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codautorizafinanceira = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from conferenciaestoque
      where
        conferenciaestoque.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conferenciaestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctoestoque
      where
        lanctoestoque.usr_codconciliacao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctoestoque
      where
        lanctoestoque.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctoestoque
      where
        lanctoestoque.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from conferenciaentrada
      where
        conferenciaentrada.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conferenciaentrada.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from conferenciaentrada
      where
        conferenciaentrada.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conferenciaentrada.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from pedido
      where
        pedido.usr_codexclusao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pedido.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from fatura
      where
        fatura.usr_codcomissao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from pedido
      where
        pedido.usr_codautorizacao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pedido.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from pedido
      where
        pedido.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pedido.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from cotacao
      where
        cotacao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela cotacao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from material
      where
        material.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela material.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codprotestocobranca = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codcartoriocobranca = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codavisocobranca = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codrepeticao = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from paciente
      where
        paciente.usr_codalteracao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela paciente.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codguia = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaosituacoes
      where
        examerequisicaosituacoes.usr_codigo = old.usr_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.usr_codigo <> new.usr_codigo) then
    select count(*)
      from exames
      where
        exames.usr_codassinaweb = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exames.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codexcluido = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codexcluida = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from fatura
      where
        fatura.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from convenios
      where
        convenios.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela convenios.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codreimpressao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from geladeirastemperaturas
      where
        geladeirastemperaturas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela geladeirastemperaturas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from geladeiras
      where
        geladeiras.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela geladeiras.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariofilial
      where
        usuariofilial.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariofilial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codimpressao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codcancelada = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from baixa
      where
        baixa.usr_codcancelado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela baixa.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from baixa
      where
        baixa.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela baixa.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codcancelado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctocaixa
      where
        lanctocaixa.usr_codcancelado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctocaixa.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaocid10
      where
        requisicaocid10.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaocid10.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codmaterialsetor = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codloteexterno = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexterno
      where
        loteexterno.usr_codenvio = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexterno.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexterno
      where
        loteexterno.usr_codcriacao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexterno.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from log
      where
        log.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela log.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariomensagem
      where
        usuariomensagem.usr_codorigem = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariomensagem.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariomensagem
      where
        usuariomensagem.usr_coddestino = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariomensagem.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from conveniomensagem
      where
        conveniomensagem.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conveniomensagem.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaorecipiente
      where
        examerequisicaorecipiente.usr_codtriagem = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaorecipiente.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codetqtriagem = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codetqcoleta = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteapoio
      where
        loteapoio.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteapoio.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codtriagem = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from fatura
      where
        fatura.usr_codconferencia = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from fatura
      where
        fatura.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from contrasenha
      where
        contrasenha.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela contrasenha.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codnaofaturar = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaousuario
      where
        requisicaousuario.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaousuario.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codabertura = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codcortesia = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codmapa = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from interfaceexamerequisicao
      where
        interfaceexamerequisicao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela interfaceexamerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuarioparametro
      where
        usuarioparametro.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuarioparametro.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctocaixa
      where
        lanctocaixa.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctocaixa.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codigo = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codimpressao = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codentrega = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codfatura = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codmaterial = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_coddigitador = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codassina = old.usr_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;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuarioacesso
      where
        usuarioacesso.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuarioacesso.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from setores
      where
        setores.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela setores.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from paciente
      where
        paciente.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela paciente.'';
    end if;
  end if;
  select count(*) into numrows
    from tipousuario
    where
      new.tpu_codigo = tipousuario.tpu_codigo;
    tmp:=''tipousuario|'';
    
      tmp:=tmp || ''tpu_codigo='' || new.tpu_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.tpu_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela tipousuario. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;


return old;
end;'
language 'plpgsql';
					
create trigger tu_usuario
after update on usuario
for each row execute procedure fn_tu_usuario();


insert into materialusuario(fil_codigo, mat_codigo, usr_codigo, mus_tipo) (select fil_codigo, mat_codigo, usr_codigo, 'R' from material where usr_codigo is not null);

insert into atualizacoes(atu_nome) values ('v18010001_201217.sql');


insert into relatoriosistema values (0700501900,'<relatorio><alturaPagina>29.7</alturaPagina><larguraPagina>21.0</larguraPagina><margens><esquerda>1.5</esquerda><direita>1.5</direita><superior>1.5</superior><inferior>1.5</inferior></margens><forcarRetrato>Nao</forcarRetrato><linhasGuias></linhasGuias><bandas><banda><tipoBanda>0</tipoBanda><nome>Banda1</nome><altura>76.0</altura><campoChave></campoChave><nomeBandaFilha></nomeBandaFilha><nomeBandaRodapeGrupo></nomeBandaRodapeGrupo><quebrarPagina>false</quebrarPagina><itens><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo1</nome><retangulo><x>1</x><y>1</y><largura>136.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Relatório de exames com recoleta</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.CampoBanco</tipoItem><nome>CampoBanco1</nome><retangulo><x>1</x><y>13</y><largura>194.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><nomeCampo>descricaoFilial</nomeCampo><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo17</nome><retangulo><x>155</x><y>25</y><largura>40.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Data final:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo21</nome><retangulo><x>1</x><y>37</y><largura>40.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Convênio:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao16</nome><retangulo><x>39</x><y>37</y><largura>111.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroConvenio</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao1</nome><retangulo><x>382</x><y>1</y><largura>128.0</largura><altura>9.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>data(dataHoraCorrente; "dd/MM/aaaa hh:mm")</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao2</nome><retangulo><x>440</x><y>13</y><largura>70.0</largura><altura>9.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>"Página: " + paginaCorrente + "/" + quantidadePaginas</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo2</nome><retangulo><x>286</x><y>37</y><largura>33.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Coleta:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo5</nome><retangulo><x>1</x><y>25</y><largura>46.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Data inicial:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao10</nome><retangulo><x>195</x><y>25</y><largura>71.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroDataFinal</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo6</nome><retangulo><x>286</x><y>25</y><largura>47.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Hora inicial:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao11</nome><retangulo><x>331</x><y>25</y><largura>51.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroHoraInicial</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Forma</tipoItem><nome>Forma1</nome><retangulo><x>0</x><y>59</y><largura>511.0</largura><altura>17.0</altura></retangulo><fonte><nome>Bitstream Charter</nome><estilo>0</estilo><tamanho>12</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>0</alinhamentoHorizontal><tipo>2</tipo><corLinha>-16777216</corLinha><corPreenchimento>-1</corPreenchimento><alinhamentoVertical>0</alinhamentoVertical><espessura>1</espessura></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo10</nome><retangulo><x>155</x><y>37</y><largura>35.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Destino:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao12</nome><retangulo><x>189</x><y>37</y><largura>87.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroDestino</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao13</nome><retangulo><x>317</x><y>37</y><largura>150.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroColeta</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo11</nome><retangulo><x>1</x><y>47</y><largura>36.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Médico:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao14</nome><retangulo><x>46</x><y>25</y><largura>65.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroDataInicial</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao9</nome><retangulo><x>33</x><y>47</y><largura>117.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroMedico</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo12</nome><retangulo><x>155</x><y>47</y><largura>35.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Exame:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao15</nome><retangulo><x>188</x><y>47</y><largura>89.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroExame</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo13</nome><retangulo><x>286</x><y>47</y><largura>36.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Material:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao17</nome><retangulo><x>319</x><y>47</y><largura>66.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroMaterial</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo14</nome><retangulo><x>390</x><y>47</y><largura>26.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Setor:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao18</nome><retangulo><x>417</x><y>47</y><largura>85.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroSetor</expressao><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo15</nome><retangulo><x>398</x><y>25</y><largura>41.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><texto>Hora final:</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao19</nome><retangulo><x>436</x><y>25</y><largura>47.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>2</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>filtroHoraFinal</expressao><mascara></mascara></itemBanda></itens></banda><banda><tipoBanda>1</tipoBanda><nome>Banda5</nome><altura>12.0</altura><campoChave>estacao</campoChave><nomeBandaFilha>Banda2</nomeBandaFilha><nomeBandaRodapeGrupo>Banda4</nomeBandaRodapeGrupo><quebrarPagina>false</quebrarPagina><itens><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo7</nome><retangulo><x>130</x><y>0</y><largura>113.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>1</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><texto>Qtde. recoletas marcadas</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo3</nome><retangulo><x>90</x><y>0</y><largura>29.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>1</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><texto>Data</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo8</nome><retangulo><x>260</x><y>0</y><largura>78.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>1</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><texto>Qtde. Requisições</texto></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao8</nome><retangulo><x>347</x><y>1</y><largura>113.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>1</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>se(filtroMostrarRecoletasRealizadas = true; "Qtde. recoletas realizadas"; "")</expressao><mascara>#####</mascara></itemBanda></itens></banda><banda><tipoBanda>2</tipoBanda><nome>Banda2</nome><altura>12.0</altura><colunas>0</colunas><entreColunas>0</entreColunas><campoChave></campoChave><nomeBandaFilha></nomeBandaFilha><nomeBandaRodapeGrupo></nomeBandaRodapeGrupo><quebrarPagina>false</quebrarPagina><itens><itemBanda><tipoItem>jalis.relatorio.gerador.item.CampoBanco</tipoItem><nome>CampoBanco7</nome><retangulo><x>159</x><y>1</y><largura>84.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><nomeCampo>qtdeExamesMarcadosRecoleta</nomeCampo><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.CampoBanco</tipoItem><nome>CampoBanco4</nome><retangulo><x>66</x><y>1</y><largura>53.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><nomeCampo>dataExameSituacao</nomeCampo><mascara>dd/MM/aaaa</mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.CampoBanco</tipoItem><nome>CampoBanco3</nome><retangulo><x>264</x><y>1</y><largura>74.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><nomeCampo>qtdeRequisicoes</nomeCampo><mascara></mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao5</nome><retangulo><x>366</x><y>1</y><largura>94.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>8</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>se(filtroMostrarRecoletasRealizadas = true; qtdeExamesRecoletados; "")</expressao><mascara>#####</mascara></itemBanda></itens></banda><banda><tipoBanda>3</tipoBanda><nome>Banda4</nome><altura>18.0</altura><campoChave></campoChave><nomeBandaFilha></nomeBandaFilha><nomeBandaRodapeGrupo></nomeBandaRodapeGrupo><quebrarPagina>false</quebrarPagina><itens><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao4</nome><retangulo><x>366</x><y>6</y><largura>94.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>1</estilo><tamanho>9</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>se(filtroMostrarRecoletasRealizadas = true; somatorio(qtdeExamesRecoletados); "")</expressao><mascara>#####</mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao6</nome><retangulo><x>159</x><y>6</y><largura>84.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>1</estilo><tamanho>9</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>somatorio(qtdeExamesMarcadosRecoleta)</expressao><mascara>#####</mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Expressao</tipoItem><nome>Expressao7</nome><retangulo><x>265</x><y>6</y><largura>73.0</largura><altura>10.0</altura></retangulo><fonte><nome>Arial</nome><estilo>1</estilo><tamanho>9</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><quebrarLinhas>false</quebrarLinhas><quebrarPalavras>false</quebrarPalavras><expressao>somatorio(qtdeRequisicoes)</expressao><mascara>#####</mascara></itemBanda><itemBanda><tipoItem>jalis.relatorio.gerador.item.Rotulo</tipoItem><nome>Rotulo4</nome><retangulo><x>91</x><y>6</y><largura>31.0</largura><altura>12.0</altura></retangulo><fonte><nome>Arial</nome><estilo>1</estilo><tamanho>9</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>4</alinhamentoHorizontal><texto>Total:</texto></itemBanda></itens></banda><banda><tipoBanda>4</tipoBanda><nome>Banda3</nome><altura>480.0</altura><campoChave></campoChave><nomeBandaFilha></nomeBandaFilha><nomeBandaRodapeGrupo></nomeBandaRodapeGrupo><quebrarPagina>false</quebrarPagina><itens><itemBanda><tipoItem>jalis.relatorio.gerador.item.Imagem</tipoItem><nome>Imagem1</nome><retangulo><x>4</x><y>45</y><largura>503.0</largura><altura>409.0</altura></retangulo><fonte><nome>Arial</nome><estilo>0</estilo><tamanho>12</tamanho></fonte><bordas><esquerda>false</esquerda><direita>false</direita><superior>false</superior><inferior>false</inferior></bordas><corDaFonte>-16777216</corDaFonte><alinhamentoHorizontal>0</alinhamentoHorizontal><estender>true</estender><imagem></imagem><nomeCampo></nomeCampo><expressao>imagemGrafico</expressao><alinhamentoVertical>0</alinhamentoVertical></itemBanda></itens></banda></bandas></relatorio>');

insert into atualizacoes(atu_nome) values ('v18010002_230118.sql');

