Pessoas (básico)

Como definir o cliente "consumidor final"?

PESSOA.FAQ-2894
Clientes "consumidores finais", ou seja, pessoas físicas ou jurídicas não identificadas no processo de atendimento e vendas são identificados no sistema através de uma "pessoa" denominada CONSUMIDOR FINAL.
A pessoa CONSUMIDOR FINAL é identificada pelo sistema através da preferência PESSOA.CONSUMIDOR_FINAL_ID com a identificação da pessoa (Id) como valor padrão.


Bloqueio de alterações no cadastro da pessoa CONSUMIDOR FINAL:

Sugere-se que o cadastro de Pessoas para a pessoa CONSUMIDOR FINAL seja bloqueado para alterações a fim de evitar alterações indevidas neste cadastro "genérico". Estas configurações não bloqueiam o opção de [b:Alterar] no cadastro da pessoa, mas apresentará mensagem de erro ao [b:Salvar] o cadastro, informando que não é permitida a alteração no cadastro desta pessoa.

Configurações para bloqueio do cadastro:

Seguem as configurações necessárias para bloqueio do cadastro da pessoa CONSUMIDOR FINAL.

Preferências:

Configurar as seguintes Preferências:
PESSOA.PESSOAS.PRE_UPDATE: RESTRINGIR_ATERACAO_CONSUMIDOR

Rotina customizada:

Cadastrar em Operações customizadas uma rotina conforme informações abaixo:
import br.com.eligo.ent.EntPreferencias;
import br.com.eligo.ent.EntPessoas;
import br.com.telescope.adsrt.lib.AdsException;

entidade = ctx.getEvent().getObject();

String liberar = ctx.getPreference("RESTRINGIR_ATERACAO_CONSUMIDOR.ALTERAR_CONSUMIDOR");

if (liberar == null || liberar.trim().isEmpty() || "N".equals(liberar)) {  

   Long idConsumidor = Long.parseLong(ctx.getPreference("PESSOA.CONSUMIDOR_FINAL_ID"));
   
   EntPessoas pess = new EntPessoas(ctx);
   pess.filterBy().equal(pess.getId(), idConsumidor);
   
   while (pess.next()) {
       
       if (entidade instanceof EntPessoas) {
           if (entidade.valueOfId().equals(idConsumidor)) {
               throw new AdsException("RESTRINGIR_ATERACAO_CONSUMIDOR",
                                     AdsException.ERROR,
                                     "Não é permitida alteração no cadastro do <b>CONSUMIDOR FINAL</b>!");
           }
    } else {
           if (entidade.valueOfPessoaId().equals(idConsumidor)) {
               throw new AdsException("RESTRINGIR_ATERACAO_CONSUMIDOR",
                                     AdsException.ERROR,
                                     "Não é permitida alteração no cadastro do <b>CONSUMIDOR FINAL</b>!");
           }
       }
       
   }
}