<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[VALIDAÇÃO PARA NÃO PERMITIR CADASTRAR PESSOA COM AFASTAMENTO POR BLOQUEIO DEFINITIVO]]></title><description><![CDATA[<p dir="auto"><img src="http://insoft-docker1:4567/assets/plugins/nodebb-plugin-emoji/emoji/android/2728.png?v=an5iprggue4" class="not-responsive emoji emoji-android emoji--sparkles" title=":sparkles:" alt="✨" /> <strong>Solicitação 23861 | OS10802</strong></p>
<p dir="auto"><strong>VALIDAÇÃO DE INCLUSÃO OU ATIVAÇÃO DE PESSOA PARA NÃO PERMITIR EM CASO DE EXISTÊNCIA DE AFASTAMENTO POR BLOQUEIO DEFINITIVO</strong></p>
<p dir="auto">Esta customização foi solicitada pelo cliente Randon e consiste em não permitir incluir um novo histórico de pessoa (ou reativar um histórico já desligado da pessoa removendo a data de desligamento) quando a mesma possuir em algum momento de sua história na empresa um afastamento que tenha sido realizado pelo motivo de BLOQUEIO DEFINITIVO.</p>
<p dir="auto">Para que a validação seja ativada são necessários dois passos:</p>
<ol>
<li>Criação de um parâmetro customizado chamado <code>MOTIVOS_AFAST_BLOQ_DEFINITIVO</code> que deverá conter o código do motivo de afastamento que deve ser validado como bloqueio definitivo. Caso tenha mais de um código de motivo de afastamento eles devem ser informados separados por vírgula. Inicialmente o código informado pelo cliente para utilização é o código 23.</li>
</ol>
<pre><code>insert into parametros_customizados_pontos ( nome_parametro, valor_parametro, descr_parametro )
values ( 'MOTIVOS_AFAST_BLOQ_DEFINITIVO', '23','LISTA DE CÓDIGOS DE MOTIVO DE AFASTAMENTO QUE INDICAM BLOQUEIO DEFINITIVO')
/
</code></pre>
<ol start="2">
<li>Criação de uma trigger customizada sobre a tabela <code>TIPOS_CONTROLES_PESSOAS</code> que irá realizar a validação e impedir a criação ou reativação de histórico de pessoa que possuir o afastamento.</li>
</ol>
<pre><code>CREATE OR REPLACE TRIGGER TRIG_BF_RW_TCP_BLOQ_DEFINITIVO
BEFORE INSERT OR UPDATE OF DATA_DESLIGAMENTO, TIPO_PESSOA, COD_EMPRESA_PESSOA, COD_CARTAO
ON TIPOS_CONTROLES_PESSOAS
FOR EACH ROW
DECLARE
-------------------- VERSAO CUSTOMIZADA ESPECÍFICA --------------------
-- OS10802, 24/04/2024, Jonathan.
--
cursor c_afastamento is
  select ma.descr_motivo
  from   afastamentos_pessoas         ap,
         motivos_afastamentos_acessos ma
  where  ap.cod_pessoa = :new.cod_pessoa
  and    pack_util.consta_lista(pack_util.valor_param_customizado('MOTIVOS_AFAST_BLOQ_DEFINITIVO'),ap.cod_motivo) = 'S'
  and    ma.cod_motivo = ap.cod_motivo
  and rownum = 1;
--
vmotivo_afastamento motivos_afastamentos_acessos.descr_motivo%type;
--
BEGIN
  --
  -- Deve validar ao incluir uma pessoa ou ao reativar uma pessoa removendo a data de desligamento
  --
  if ( (inserting) 
     or (updating and :new.data_desligamento is null and :old.data_desligamento is not null)
     or (updating and :new.tipo_pessoa &lt;&gt; :old.tipo_pessoa)
     or (updating and nvl(:new.cod_empresa_pessoa,-1) &lt;&gt; nvl(:old.cod_empresa_pessoa,-1))
     or (updating and nvl(:new.cod_cartao,-1) &lt;&gt; nvl(:old.cod_cartao,-1)) ) then
    --
    open c_afastamento;
      fetch c_afastamento into vmotivo_afastamento;
    close c_afastamento;
    --
    if vmotivo_afastamento is not null then
      --
      raise_application_error(-20750, 'Não é possível cadastrar/ativar esta pessoa pois ela possui um registro de afastamento com o motivo '||vmotivo_afastamento||'.');
      --
    end if;
    --
  end if;
  --
END TRIG_BF_RW_TCP_BLOQ_DEFINITIVO;
</code></pre>
<p dir="auto">Scripts disponibilizados na pasta:<br />
<em>O:\PONTO\Clientes\32.Randon\CustomizacoesEspecificas\PATCHS\OS10802</em></p>
]]></description><link>http://insoft-docker1:4567/topic/290/validação-para-não-permitir-cadastrar-pessoa-com-afastamento-por-bloqueio-definitivo</link><generator>RSS for Node</generator><lastBuildDate>Fri, 23 Oct 2026 05:37:06 GMT</lastBuildDate><atom:link href="http://insoft-docker1:4567/topic/290.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 24 Apr 2024 16:51:01 GMT</pubDate><ttl>60</ttl></channel></rss>