create table tiponaoconformidade (
       fil_codigo           integer not null,
       tcf_codigo           integer not null,
       tcf_descricao        varchar(100)
); --[lode]

create unique index xpktiponaoconformidade on tiponaoconformidade
(
       fil_codigo,
       tcf_codigo
); --[lode]

create index xif1tiponaoconformidade on tiponaoconformidade
(
       fil_codigo
); --[lode]


alter table tiponaoconformidade
       add primary key (fil_codigo, tcf_codigo); --[lode]

alter table naoconformidade add tcf_codigo integer; --[lode]

create index xif13naoconformidade on naoconformidade
(
       fil_codigo,
       tcf_codigo
); --[lode]


drop function fn_td_filiais_postocoleta() cascade; --[lode]

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

    delete from filialwhatsappresumo
      where
        filialwhatsappresumo.fil_codigo = old.fil_codigo;

    delete from filialwhatsappagendamento
      where
        filialwhatsappagendamento.fil_codigo = old.fil_codigo;

    delete from filialwhatsappaniversario
      where
        filialwhatsappaniversario.fil_codigo = old.fil_codigo;

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

    delete from fraseagendamentowhatsapp
      where
        fraseagendamentowhatsapp.fil_codigo = old.fil_codigo;

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

    delete from filialpushaniversario
      where
        filialpushaniversario.fil_codigo = old.fil_codigo;

    delete from filialpushagendamento
      where
        filialpushagendamento.fil_codigo = old.fil_codigo;

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

    delete from filialsmsagendamento
      where
        filialsmsagendamento.fil_codigo = old.fil_codigo;

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

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

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

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

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

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

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

    delete from logvalidalote
      where
        logvalidalote.fil_codigo = old.fil_codigo;

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

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

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

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

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

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

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

    delete from filialsmsresumo
      where
        filialsmsresumo.fil_codigo = old.fil_codigo;

    select count(*) into numrows
      from lanctocaixa
      where
        lanctocaixa.fil_codentrefilial = old.fil_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 lotefilial
      where
        lotefilial.fil_codigo = old.fil_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 taxa
      where
        taxa.fil_codigo = old.fil_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela taxa.'';
    end if;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    select count(*) into numrows
      from geladeiras
      where
        geladeiras.fil_codigo = old.fil_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.fil_codigo = old.fil_codigo;

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

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

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

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

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

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

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

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

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

    delete from filiaisweb
      where
        filiaisweb.fil_kodigo = old.fil_codigo;

    delete from filiaisweb
      where
        filiaisweb.fil_codigo = old.fil_codigo;

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

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

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

    select count(*) into numrows
      from requisicao
      where
        requisicao.fil_codcopia = old.fil_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 filiaisexamesexportar
      where
        filiaisexamesexportar.fil_coddestino = old.fil_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela filiaisexamesexportar.'';
    end if;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    delete from exames
      where
        exames.fil_codigo = old.fil_codigo;

    select count(*) into numrows
      from fatura
      where
        fatura.fil_codigo = old.fil_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 setores
      where
        setores.fil_codigo = old.fil_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.fil_codigo = old.fil_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'; --[lode]
					
create trigger td_filiais_postocoleta
after delete on filiais_postocoleta
for each row execute procedure fn_td_filiais_postocoleta(); --[lode]


drop function fn_ti_filiais_postocoleta() cascade; --[lode]

create function fn_ti_filiais_postocoleta() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    select count(*) into numrows
      from labexterno
      where
        new.fil_codigo = labexterno.fil_codigo and
        new.lae_codigo = labexterno.lae_codigo;
    tmp:=''labexterno|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''lae_codigo='' || new.lae_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

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

    select count(*) into numrows
      from usuario
      where
        new.usr_codcompras = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codcompras || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.usr_codcompras 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_codestoque = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codestoque || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.usr_codestoque 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 bairro
      where
        new.fil_codigo = bairro.fil_codigo and
        new.bai_codigo = bairro.bai_codigo;
    tmp:=''bairro|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''bai_codigo='' || new.bai_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

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

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

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


return new;
end;'
language 'plpgsql'; --[lode]
					
create trigger ti_filiais_postocoleta
after insert on filiais_postocoleta
for each row execute procedure fn_ti_filiais_postocoleta(); --[lode]


drop function fn_tu_filiais_postocoleta() cascade; --[lode]

create function fn_tu_filiais_postocoleta() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from tiponaoconformidade
      where
        tiponaoconformidade.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela tiponaoconformidade.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialwhatsappresumo
      where
        filialwhatsappresumo.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialwhatsappresumo.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialwhatsappagendamento
      where
        filialwhatsappagendamento.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialwhatsappagendamento.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialwhatsappaniversario
      where
        filialwhatsappaniversario.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialwhatsappaniversario.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from logwhatsapp
      where
        logwhatsapp.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logwhatsapp.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from fraseagendamentowhatsapp
      where
        fraseagendamentowhatsapp.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fraseagendamentowhatsapp.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from fraseagendamentopush
      where
        fraseagendamentopush.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fraseagendamentopush.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialpushaniversario
      where
        filialpushaniversario.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialpushaniversario.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialpushagendamento
      where
        filialpushagendamento.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialpushagendamento.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from fraseagendamentosms
      where
        fraseagendamentosms.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fraseagendamentosms.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialsmsagendamento
      where
        filialsmsagendamento.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialsmsagendamento.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from historicoregistrocontato
      where
        historicoregistrocontato.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela historicoregistrocontato.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from motivocontato
      where
        motivocontato.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela motivocontato.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from termoconsentimento
      where
        termoconsentimento.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela termoconsentimento.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from lotefilial
      where
        lotefilial.fil_coddestino = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from preagendamento
      where
        preagendamento.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela preagendamento.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from integracaosave
      where
        integracaosave.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela integracaosave.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from paciente
      where
        paciente.fil_codorigem = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from logpushapp
      where
        logpushapp.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logpushapp.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from motivorecoleta
      where
        motivorecoleta.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela motivorecoleta.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from logvalidalote
      where
        logvalidalote.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logvalidalote.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from ambbpa
      where
        ambbpa.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela ambbpa.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from categoriaprodutoalimentos
      where
        categoriaprodutoalimentos.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela categoriaprodutoalimentos.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from responsavelcertificado
      where
        responsavelcertificado.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from origemnaoconformidade
      where
        origemnaoconformidade.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela origemnaoconformidade.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialemailaniversario
      where
        filialemailaniversario.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialemailaniversario.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialsmsaniversario
      where
        filialsmsaniversario.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialsmsaniversario.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from logemail
      where
        logemail.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logemail.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialsmsresumo
      where
        filialsmsresumo.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialsmsresumo.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from lanctocaixa
      where
        lanctocaixa.fil_codentrefilial = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from lotefilial
      where
        lotefilial.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from taxa
      where
        taxa.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela taxa.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from logoffline
      where
        logoffline.fil_coddestino = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from logoffline
      where
        logoffline.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from pais
      where
        pais.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pais.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from logsms
      where
        logsms.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logsms.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from acaonaoconformidade
      where
        acaonaoconformidade.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela acaonaoconformidade.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from procedencianaoconformidade
      where
        procedencianaoconformidade.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela procedencianaoconformidade.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from banhomaria
      where
        banhomaria.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from identificadorlamina
      where
        identificadorlamina.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela identificadorlamina.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.fil_codigo = old.fil_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) then
    select count(*)
      from examerequisicaohash
      where
        examerequisicaohash.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from motivoalteracao
      where
        motivoalteracao.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela motivoalteracao.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from tipomaterialcoleta
      where
        tipomaterialcoleta.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela tipomaterialcoleta.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from salaatendimento
      where
        salaatendimento.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela salaatendimento.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from requisicaoweb
      where
        requisicaoweb.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoweb.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from lanctoestoquecmc
      where
        lanctoestoquecmc.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoquecmc.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from lanctoestoqueueps
      where
        lanctoestoqueueps.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoqueueps.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from lanctoestoquepeps
      where
        lanctoestoquepeps.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoquepeps.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from contrassenharequisicao
      where
        contrassenharequisicao.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from solicitarsoroteca
      where
        solicitarsoroteca.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from exportaintegracaohospital
      where
        exportaintegracaohospital.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exportaintegracaohospital.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from examerequisicaosetor
      where
        examerequisicaosetor.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from materialenviado
      where
        materialenviado.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from rota
      where
        rota.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela rota.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from montagemkit
      where
        montagemkit.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from transfestoque
      where
        transfestoque.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from orcamento
      where
        orcamento.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from estoquemanual
      where
        estoquemanual.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from requisicaoestoque
      where
        requisicaoestoque.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from conferenciaestoque
      where
        conferenciaestoque.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from lanctoestoque
      where
        lanctoestoque.fil_codigo = old.fil_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) then
    select count(*)
      from conferenciaentrada
      where
        conferenciaentrada.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from pedido
      where
        pedido.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from cotacao
      where
        cotacao.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from cfop
      where
        cfop.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela cfop.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from celulaestoque
      where
        celulaestoque.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela celulaestoque.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from unidadesaude
      where
        unidadesaude.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela unidadesaude.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from estantes
      where
        estantes.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela estantes.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from geladeiras
      where
        geladeiras.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from origemplanocusto
      where
        origemplanocusto.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela origemplanocusto.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filialimposto
      where
        filialimposto.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filialimposto.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from embalagemproduto
      where
        embalagemproduto.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela embalagemproduto.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from servico
      where
        servico.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela servico.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from baixa
      where
        baixa.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from entidade
      where
        entidade.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela entidade.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from motivoscancelamentos
      where
        motivoscancelamentos.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela motivoscancelamentos.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from formapagto
      where
        formapagto.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela formapagto.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from especie
      where
        especie.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela especie.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from series
      where
        series.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela series.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filiaisweb
      where
        filiaisweb.fil_kodigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filiaisweb.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filiaisweb
      where
        filiaisweb.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filiaisweb.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from labexterno
      where
        labexterno.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from loteexterno
      where
        loteexterno.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from log
      where
        log.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from alahospital
      where
        alahospital.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela alahospital.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from loteapoio
      where
        loteapoio.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from exportaapoio
      where
        exportaapoio.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exportaapoio.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from exportafiliais
      where
        exportafiliais.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exportafiliais.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.fil_codcopia = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from filiaisexamesexportar
      where
        filiaisexamesexportar.fil_coddestino = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filiaisexamesexportar.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from contrasenha
      where
        contrasenha.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from exportaweb
      where
        exportaweb.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exportaweb.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from interface
      where
        interface.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela interface.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from banco
      where
        banco.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela banco.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from agencia
      where
        agencia.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agencia.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from historicopadrao
      where
        historicopadrao.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela historicopadrao.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from prioridade
      where
        prioridade.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela prioridade.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from destino
      where
        destino.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela destino.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from grupo
      where
        grupo.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela grupo.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from feriados
      where
        feriados.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela feriados.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from especialidades
      where
        especialidades.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela especialidades.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from coletas
      where
        coletas.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela coletas.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from tabelaprecoexames
      where
        tabelaprecoexames.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela tabelaprecoexames.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from tipomaterial
      where
        tipomaterial.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela tipomaterial.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from unidademedida
      where
        unidademedida.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela unidademedida.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from situacao
      where
        situacao.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela situacao.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from principios
      where
        principios.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela principios.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from medicamentos
      where
        medicamentos.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela medicamentos.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from layout
      where
        layout.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela layout.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from metodologia
      where
        metodologia.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela metodologia.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from recipientes
      where
        recipientes.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela recipientes.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from cidades
      where
        cidades.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela cidades.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from bairro
      where
        bairro.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela bairro.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from materialcoleta
      where
        materialcoleta.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialcoleta.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from prazoentrega
      where
        prazoentrega.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela prazoentrega.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from historicos
      where
        historicos.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela historicos.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from lanctocaixa
      where
        lanctocaixa.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from centrocusto
      where
        centrocusto.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela centrocusto.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from planoconta
      where
        planoconta.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela planoconta.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from contacorrente
      where
        contacorrente.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela contacorrente.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from material
      where
        material.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from medico
      where
        medico.fil_codigo = old.fil_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela medico.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo) then
    select count(*)
      from convenios
      where
        convenios.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from exames
      where
        exames.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from fatura
      where
        fatura.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from setores
      where
        setores.fil_codigo = old.fil_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.fil_codigo <> new.fil_codigo) then
    select count(*)
      from paciente
      where
        paciente.fil_codigo = old.fil_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 labexterno
    where
      new.fil_codigo = labexterno.fil_codigo and
      new.lae_codigo = labexterno.lae_codigo;
    tmp:=''labexterno|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''lae_codigo='' || new.lae_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.fil_codigo is not null and
    new.lae_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela labexterno. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

  select count(*) into numrows
    from usuario
    where
      new.usr_codcompras = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codcompras || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.usr_codcompras 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_codestoque = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codestoque || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.usr_codestoque 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 bairro
    where
      new.fil_codigo = bairro.fil_codigo and
      new.bai_codigo = bairro.bai_codigo;
    tmp:=''bairro|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''bai_codigo='' || new.bai_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.fil_codigo is not null and
    new.bai_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela bairro. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

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


return old;
end;'
language 'plpgsql'; --[lode]
					
create trigger tu_filiais_postocoleta
after update on filiais_postocoleta
for each row execute procedure fn_tu_filiais_postocoleta(); --[lode]


drop function fn_td_naoconformidade() cascade; --[lode]

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

    select count(*) into numrows
      from acoesnaoconformidade
      where
        acoesnaoconformidade.fil_codigo = old.fil_codigo and
        acoesnaoconformidade.nac_codigo = old.nac_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 setoresnaoconformidade
      where
        setoresnaoconformidade.fil_codigo = old.fil_codigo and
        setoresnaoconformidade.nac_codigo = old.nac_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 requisicaonaoconformidade
      where
        requisicaonaoconformidade.fil_codigo = old.fil_codigo and
        requisicaonaoconformidade.nac_codigo = old.nac_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaonaoconformidade.'';
    end if;


return old;
end;'
language 'plpgsql'; --[lode]
					
create trigger td_naoconformidade
after delete on naoconformidade
for each row execute procedure fn_td_naoconformidade(); --[lode]


drop function fn_ti_naoconformidade() cascade; --[lode]

create function fn_ti_naoconformidade() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    select count(*) into numrows
      from tiponaoconformidade
      where
        new.fil_codigo = tiponaoconformidade.fil_codigo and
        new.tcf_codigo = tiponaoconformidade.tcf_codigo;
    tmp:=''tiponaoconformidade|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''tcf_codigo='' || new.tcf_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

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

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

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

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

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

    select count(*) into numrows
      from usuario
      where
        new.usr_codconclusao = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codconclusao || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.usr_codconclusao 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_codanalise = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codanalise || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.usr_codanalise 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_codregistro = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codregistro || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.usr_codregistro 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 entidade
      where
        new.fil_codigo = entidade.fil_codigo and
        new.ent_codigo = entidade.ent_codigo;
    tmp:=''entidade|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''ent_codigo='' || new.ent_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.fil_codigo is not null and
      new.ent_codigo is not null and
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela entidade. 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;


return new;
end;'
language 'plpgsql'; --[lode]
					
create trigger ti_naoconformidade
after insert on naoconformidade
for each row execute procedure fn_ti_naoconformidade(); --[lode]


drop function fn_tu_naoconformidade() cascade; --[lode]

create function fn_tu_naoconformidade() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.nac_codigo <> new.nac_codigo) then
    select count(*)
      from naoconformidadelote
      where
        naoconformidadelote.fil_codigo = old.fil_codigo and
        naoconformidadelote.nac_codigo = old.nac_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidadelote.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.nac_codigo <> new.nac_codigo) then
    select count(*)
      from acoesnaoconformidade
      where
        acoesnaoconformidade.fil_codigo = old.fil_codigo and
        acoesnaoconformidade.nac_codigo = old.nac_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.fil_codigo <> new.fil_codigo or 
     old.nac_codigo <> new.nac_codigo) then
    select count(*)
      from setoresnaoconformidade
      where
        setoresnaoconformidade.fil_codigo = old.fil_codigo and
        setoresnaoconformidade.nac_codigo = old.nac_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.fil_codigo <> new.fil_codigo or 
     old.nac_codigo <> new.nac_codigo) then
    select count(*)
      from requisicaonaoconformidade
      where
        requisicaonaoconformidade.fil_codigo = old.fil_codigo and
        requisicaonaoconformidade.nac_codigo = old.nac_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaonaoconformidade.'';
    end if;
  end if;
  select count(*) into numrows
    from tiponaoconformidade
    where
      new.fil_codigo = tiponaoconformidade.fil_codigo and
      new.tcf_codigo = tiponaoconformidade.tcf_codigo;
    tmp:=''tiponaoconformidade|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''tcf_codigo='' || new.tcf_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.fil_codigo is not null and
    new.tcf_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela tiponaoconformidade. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

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

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

  select count(*) into numrows
    from usuario
    where
      new.usr_codconclusao = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codconclusao || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.usr_codconclusao 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_codanalise = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codanalise || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.usr_codanalise 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_codregistro = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codregistro || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.usr_codregistro 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 entidade
    where
      new.fil_codigo = entidade.fil_codigo and
      new.ent_codigo = entidade.ent_codigo;
    tmp:=''entidade|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''ent_codigo='' || new.ent_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.fil_codigo is not null and
    new.ent_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela entidade. 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;


return old;
end;'
language 'plpgsql'; --[lode]
					
create trigger tu_naoconformidade
after update on naoconformidade
for each row execute procedure fn_tu_naoconformidade(); --[lode]


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


return old;
end;'
language 'plpgsql'; --[lode]
					
create trigger td_tiponaoconformidade
after delete on tiponaoconformidade
for each row execute procedure fn_td_tiponaoconformidade(); --[lode]



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

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


return new;
end;'
language 'plpgsql'; --[lode]
					
create trigger ti_tiponaoconformidade
after insert on tiponaoconformidade
for each row execute procedure fn_ti_tiponaoconformidade(); --[lode]



create function fn_tu_tiponaoconformidade() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.tcf_codigo <> new.tcf_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.fil_codigo = old.fil_codigo and
        naoconformidade.tcf_codigo = old.tcf_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;
  select count(*) into numrows
    from filiais_postocoleta
    where
      new.fil_codigo = filiais_postocoleta.fil_codigo;
    tmp:=''filiais_postocoleta|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela filiais_postocoleta. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;


return old;
end;'
language 'plpgsql'; --[lode]
					
create trigger tu_tiponaoconformidade
after update on tiponaoconformidade
for each row execute procedure fn_tu_tiponaoconformidade(); --[lode]


alter table parametros add par_copiatiponaoconformidade varchar(200); --[lode]

create sequence tiponaoconformidade_sequence; --[lode]

select criasequencia('tiponaoconformidade'); --[lode]

insert into atualizacoes(atu_nome) values ('v23050001_220923.sql'); --[lode]

alter table logids add ids_situacao varchar(1); --[lode]

insert into atualizacoes(atu_nome) values ('v23050002_220923.sql'); --[lode]

set session_replication_role=replica; --[lode]
alter table paciente alter pac_fatordu type varchar(7); --[lode]
set session_replication_role=origin; --[lode]

insert into atualizacoes(atu_nome) values ('v23050003_290923.sql'); --[lode]

alter table parametros add par_ocultarapenasfaturamento boolean default false; --[lode]

insert into atualizacoes(atu_nome) values ('v23050004_041023.sql'); --[lode]

