Autor Tópico: Como bloquear dados em duplicidade  (Lida 196 vezes)

noelreis

  • Novato
  • *
  • Mensagens: 35
  • CUIDADO APRENDIZ...
    • Email
Como bloquear dados em duplicidade
« Online: Maio 20, 2016, 12:57:22 pm »
Olá pessoal.

Fiz um formulário de cadastro de cliente onde nem todos tem CPF por isso esse campo não é obrigatório e também não é único.

Então para evitar cadastro em duplicidade gostaria de validar antes do insert pela data de nascimento, dessa forma o sistema não permitiria o cadastro de 2 (duas) Marias Silva e Souza nascidas 10/03/1981, entretanto não tenho ideia como fazer isso funcionar usando o SC 8.1.

Desde já agradeço imensamente a ajuda.
Programadores são ferramentas para converter cafeína em código.

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 886
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Como bloquear dados em duplicidade
« Responder #1 Online: Maio 20, 2016, 01:06:56 pm »
Hoje em dia acho que todas as pessoas tem CPF. Validar pela data de nascimento não vai funcionar pois acho que pode ter duas Marias Silva e Souza nascidas no mesmo dia. O certo mesmo é pelo CPF.
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

Haroldo

  • Expert
  • *****
  • Mensagens: 6274
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Como bloquear dados em duplicidade
« Responder #2 Online: Maio 20, 2016, 01:45:03 pm »
Evento Ajax onchange campo CPF.
Verificar se existe o CPF digitado com sc lookup
Se sim gerar error com sc message

Jailton

  • Expert
  • *****
  • Mensagens: 2032
Re:Como bloquear dados em duplicidade
« Responder #3 Online: Maio 20, 2016, 02:19:53 pm »
Cpf > EventoAjaxOnBlur, Seleciona os campos CPF e DataNascimento**

Código: [Selecionar]
if (sc_btn_new) {

/* Macro sc_lookup */

$cpf_pesquisa={CPF};

sc_lookup(ass,"
SELECT
   Plano,
   Codigo,
   Nome
FROM
   associados
WHERE
   CPF = '$cpf_pesquisa'
");

/* Erro no lookup */
if (FALSE === {ass}) {
sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({ass})) { /* EOF */
// Esta tudo Ok, pode continuar a Inclusão.
}
else {
   If ({CPF}>0) {
   sc_error_message('Associado CPF já Cadastrado no Plano: '.{ass[0][0]}.'-'.{ass[0][1]}.".<BR>");
   }
}

}
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

noelreis

  • Novato
  • *
  • Mensagens: 35
  • CUIDADO APRENDIZ...
    • Email
Re:Como bloquear dados em duplicidade
« Responder #4 Online: Maio 20, 2016, 03:52:11 pm »
Hoje em dia acho que todas as pessoas tem CPF. Validar pela data de nascimento não vai funcionar pois acho que pode ter duas Marias Silva e Souza nascidas no mesmo dia. O certo mesmo é pelo CPF.

Infelizmente nesse caso não tem CPF para todos usuários, é uma empresa pequena com vários cadastros em papel que o dono quer transcrever para o sistema, tenho duas datas que eu posso usar para validar (data de nascimento e data da primeira avaliação) pretendo usar as duas para verificar.
Nesse caso não vou ter duas ou mais Marias Silva e Souza nascidas em 21/09/1998 e avaliada 10/05/2013 acho que essa é a forma que me resta.

Falei com o contratante para criarmos um código único baseado em EAN8 para cada cliente mas ele não topou.
Programadores são ferramentas para converter cafeína em código.

noelreis

  • Novato
  • *
  • Mensagens: 35
  • CUIDADO APRENDIZ...
    • Email
Re:Como bloquear dados em duplicidade
« Responder #5 Online: Maio 20, 2016, 04:01:36 pm »
Cpf > EventoAjaxOnBlur, Seleciona os campos CPF e DataNascimento**

Código: [Selecionar]
if (sc_btn_new) {

/* Macro sc_lookup */

$cpf_pesquisa={CPF};

sc_lookup(ass,"
SELECT
   Plano,
   Codigo,
   Nome
FROM
   associados
WHERE
   CPF = '$cpf_pesquisa'
");

/* Erro no lookup */
if (FALSE === {ass}) {
sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({ass})) { /* EOF */
// Esta tudo Ok, pode continuar a Inclusão.
}
else {
   If ({CPF}>0) {
   sc_error_message('Associado CPF já Cadastrado no Plano: '.{ass[0][0]}.'-'.{ass[0][1]}.".<BR>");
   }
}

}

Valeu Jailton, creio que isso resolva, mas seria mesmo no evento AjaxOnBlur?
Programadores são ferramentas para converter cafeína em código.

Jailton

  • Expert
  • *****
  • Mensagens: 2032
Re:Como bloquear dados em duplicidade
« Responder #6 Online: Maio 20, 2016, 04:18:02 pm »
Cpf > EventoAjaxOnBlur, Seleciona os campos CPF e DataNascimento**

Código: [Selecionar]
if (sc_btn_new) {

/* Macro sc_lookup */

$cpf_pesquisa={CPF};

sc_lookup(ass,"
SELECT
   Plano,
   Codigo,
   Nome
FROM
   associados
WHERE
   CPF = '$cpf_pesquisa'
");

/* Erro no lookup */
if (FALSE === {ass}) {
sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({ass})) { /* EOF */
// Esta tudo Ok, pode continuar a Inclusão.
}
else {
   If ({CPF}>0) {
   sc_error_message('Associado CPF já Cadastrado no Plano: '.{ass[0][0]}.'-'.{ass[0][1]}.".<BR>");
   }
}

}

Valeu Jailton, creio que isso resolva, mas seria mesmo no evento AjaxOnBlur?

Sim no último campo que vai passar que ja´tenha todos os dados campos que vão ser usados na sua pesquisa, ai é um 'tapa' fazer.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.