verficar se CPF já existe

verficar se CPF já existe

por Heitor Temp -
Número de respostas: 21

Boa tarde. Preciso implementar uma solução que, quando o aluno for se cadastrar, o Moodle verifique na base se há registros daquele CPF. Já foi implementado (pelo programador que trabalhava antes)  a verificação se o CPF é válido. O Moodle faz a verificação se o usuário e o e-mail já existem, gostaria de fazer o mesmo para o CPF. Aguardo retorno e agradeço pela antenção

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Heitor Temp -

já descobri como faz, se alguém precisar, só perguntar.

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Thiago Mendes -

Comportilha a informação então aí.

Contagem das avaliações:  -
Em resposta à Thiago Mendes

Re: verficar se CPF já existe

por Heitor Temp -

Eu apenas aproveitei um trecho de código do próprio Moodle.

Essa alteração foi feita com o intuito de o aluno não criar mais de um usuário com o mesmo CPF. Essa alteração foi feita no formulário de inscrição do aluno.

No arquivo signup_form.php, adicionei o seguinte código, que peguei da regra de não se ter o mesmo nome de usuário:

if (record_exists('user_info_data', 'data', $data['profile_field_cpf'])) {
$errors['profile_field_cpf'] = 'CPF já consta no sistema';
}

E é isso, simples e funcional. O que acontece é o mesmo de se já existe o usuário, aparece um texto em vermelho avisando que já existe.

[]s,

Heitor

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Gilvan Marques -
Imagem de Translators

Não seria mais fácil utilizar o CPF como nome de usuário?

Contagem das avaliações:  -
Em resposta à Gilvan Marques

Re: verficar se CPF já existe

por Heitor Temp -

Seria mais fácil sim, porém a plataforma é de um cliente da empresa onde trabalho e foi solicitação deles não utilizar CPF como usuário, e, como sabem, cliente tem razão né.

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Gilvan Marques -
Imagem de Translators

Com certeza, e pagando bem, que mal tem?

Eu só fiz a observação porque quando algum cliente vem com uma demanda mirabolante, eu penso em todas as formas que ela vai dar errado. Nessa caso do cpf, como você disse, é para evitar que o cara faça dois registros, porém, o maldito usuário pode colocar um cpf falso e pronto, está feito o cadastro.

Contagem das avaliações:  -
Em resposta à Gilvan Marques

Re: verficar se CPF já existe

por Heitor Temp -

Sim, usuário é complicado. Mas ao se inscrever na plataforma ele faz um contrato com a empresa gerente da plataforma (nosso cliente) no qual o aluno confirma a veracidade dos dados ali descritos, e no caso de utilização de dados fictícios para o registro ela é punida e responde a processo de falcidade ideológica. Esse contrato força o usuário a utilizar seus dados verídicos, mas, como antes não havia um tratamento de excessão como este do CPF, eles utilizavam várias vezes o mesmo, somente mudando o nome de usuário. Agora, para criar mais de um usuário só utilizando CPF falso, mas isso pode acarretar em processo. Lidar com isso é bem complicado.

Contagem das avaliações:  -
Em resposta à Gilvan Marques

Re: verficar se CPF já existe

por Roberto Faria -
Será que não existe um plugin para verificar a veracidade das informações junto à Receita Federal? Certificados podem sair com o número do CPF incompatível com o nome do usuário como bem foi exposto aqui.
Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Thiago Mendes -

e a alteração no formulario como ficou? em relação a inserção do campo CPF.

Contagem das avaliações:  -
Em resposta à Thiago Mendes

Re: verficar se CPF já existe

por Heitor Temp -

Ficou exatamente como antes, um formulário de entrada de dados,pois campo CPF foi adicionado pelo próprio Moodle. O que mudou foi que, quando o aluno digita um número de CPF já existente no banco de dados, exibe uma mensagem semelhante a de "Nome de usuário já existe" em vermelho, só que neste caso ficou "CPF já existe", não exatamente nessas palavras sorriso

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Leonardo Stevanato -

Olá Heitor,

Você disse que no seu moodle o programador antigo implementou uma forma de verificar se o CPF é válido. Essa verificação é feita no formulário de cadastro de usuário mesmo?

Você poderia compartilhar essa implementação? Se não puder, pode pelo menos dar uma idéia de como o programador aplicou a função de validação no formulário de cadastro?

Obrigado!

Contagem das avaliações:  -
Em resposta à Leonardo Stevanato

Re: verficar se CPF já existe

por Heitor Temp -

OLá Leonardo, desculpe a demora, fazia tempo que não entrava no fórum e não vi a notificação por e-mail de sua postagem.

A verificação é feita sim no formulário de inscrição do aluno, e foi implementada da seguinte maneira:

* No arquivo /lib/weblib.php, foi adicionada a seguinte função:

function valida_cpf($cpf) {

if(!is_numeric($cpf)) {
return false;
}


if( ($cpf == '11111111111') || ($cpf == '22222222222') || ($cpf == '33333333333') || ($cpf == '44444444444') || ($cpf == '55555555555') || ($cpf == '66666666666') || ($cpf == '77777777777') || ($cpf == '88888888888') || ($cpf == '99999999999') || ($cpf == '00000000000') ) {
return false;
}


$dv_informado = substr($cpf, 9,2);

for($i=0; $i<=8; $i++) {
$digito[$i] = substr($cpf, $i,1);
}


$posicao = 10;
$soma = 0;

for($i=0; $i<=8; $i++) {
$soma = $soma + $digito[$i] * $posicao;
$posicao = $posicao - 1;
}

$digito[9] = $soma % 11;

if($digito[9] < 2) {
$digito[9] = 0;
} else {
$digito[9] = 11 - $digito[9];
}


$posicao = 11;
$soma = 0;

for ($i=0; $i<=9; $i++) {
$soma = $soma + $digito[$i] * $posicao;
$posicao = $posicao - 1;
}

$digito[10] = $soma % 11;

if ($digito[10] < 2) {
$digito[10] = 0;
}
else {
$digito[10] = 11 - $digito[10];
}


$dv = $digito[9] * 10 + $digito[10];
if ($dv != $dv_informado) {
return false;
}
return true;
}

*No arquivo /login/signup_form.php, abaixo da função validation($data, $files), ele adicionou o seguinte código:

$cpf = ereg_replace("[^0-9]", "", $data['profile_field_balaocpf']);

$valido = valida_cpf($cpf);


if ($valido != 1) {
$errors['profile_field_balaocpf'] = get_string('cpfinvalido');
}

e é isso, caso o CPF seja inválido, quando se clica em cadastrar usuário, se mantém na página e aparece sobre o campo CPF um contorno vermelho e o texto de O CPF inserido é inválido

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Amanda T -

Olá, tentei usar esse código, mas é detectado um erro, tem algum lugar específico para colocar o trecho de código na página singup_form.php ?

 

 

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Carlos Delfino -

Não seria mais adequado criar um novo plugin de campo (User Profile Field) com base em um existente?

http://docs.moodle.org/dev/User_profile_fields

Semana que vem posso dar uma olhada, se eu puder ajudar.

Abraços.

Contagem das avaliações:  -
Em resposta à Carlos Delfino

Re: verficar se CPF já existe

por Amanda T -

Na verdade, a outra forma que tentei foi criando um novo campo direto no código do formulário e mandando pra função de validar. Até aí funcionou, mas não há como editar o perfil pois provavelmente ele não foi armazenado no banco de dados, e se foi, não sei como buscá-lo. 

 

$mform->addElement('text', 'cpf', 'CPF', 'maxlength="14" size="25"');
$mform->setType('cpf', PARAM_NOTAGS);  //não sei se o parâmetro é o correto
$mform->addRule('cpf', 'Está faltando o CPF', null, 'server');

 

e mando pra função:


if (valida_cpf($data['cpf']) != 1) {
$errors['cpf'] = 'CPF inválido';
}

Gostaria de saber como posso guardar a info no banco de dados.

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Charles Rosa -
Boa tarde,

Uma duvida sobre essa validação..

Ela apenas verifica se o CPF ja esta cadastrado em sua base? ou 

A validação é se o CPF realmente existe?


Obrigado.

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Joao galvao -

Ola , eu sei que ja faz tempo que foi postado essa informação, em todo caso eu estou iniciando agora com o Moodle e gostaria de saber qual o caminho para acessar esse arquivo: /lib/weblib.php para inserir o código que o Heitor disponibilizou.

grato

Contagem das avaliações:  -
Em resposta à Heitor Temp

Re: verficar se CPF já existe

por Carlos Delfino -

Heitor uma outra opção mais adequada é criar um "custon field" e coloca-lo como obrigatório e único.

Contagem das avaliações:  -