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.CONSUMIDOR_FINAL_ID: Identificação do ID (não é o "código" da pessoa) da pessoa CONSUMIDOR FINAL. P.ex.: 18989.
- ERP.CONSUMIDOR_FINAL: Identificação da pessoa ("código"). Não é o mesmo que o seu ID de registro. P.ex. CONSUMIDOR FINAL.
- CONSUMIDOR.EVENT_LISTENER: Event listener que executa a rotina customizada (ver abaixo) para bloqueio da alteração do cadastro da pessoa do CONSUMIDOR FINAL. Valor da preferência:
PESSOA.PESSOAS.PRE_UPDATE: RESTRINGIR_ATERACAO_CONSUMIDOR
Rotina customizada:
Cadastrar em Operações customizadas uma rotina conforme informações abaixo:
- Operação: RESTRINGIR_ATERACAO_CONSUMIDOR
- Título: Restringir alterações no CONSUMIDOR FINAL
- Descrição: Através dessa rotina, será restrita toda alteração no cadastro da pessoa do CONSUMIDOR FINAL. Para saber se está sendo alterado o consumidor final, é utilizada a preferência PESSOA.CONSUMIDOR_FINAL_ID para comparação entre os IDs.
- Tipo de implementação: Groovy Scripting Engine
- Implementação:
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>!");
}
}
}
}
- Política de acesso: Restrito