Autor Tópico: ** RESOLVIDO ** Codigo de Autorizacao  (Lida 1217 vezes)

thiago_itp

  • Novato
  • *
  • Mensagens: 7
    • Email
** RESOLVIDO ** Codigo de Autorizacao
« Online: Outubro 16, 2009, 03:52:26 pm »
Boa tarde, minha duvida é a seguinte
Tenho um formulario de autorizacao de procedimento
nesse preciso d um codigo q sera gerado de acordo com formato abaixo

x x x x               -  x x x / x x x x  -        x x x x x
numero aleatorio  -     mes / ano    -  codigo do cliente

como faço isso, scriptcase tem alguma funcionalidade.
ou preciso programar (php/java?) ?
« Última modificação: Novembro 06, 2009, 10:26:57 am por Rodrigo Lins »

robsonsilva

  • Visitante
Re: Codigo de Autorizacao
« Responder #1 Online: Outubro 16, 2009, 08:07:26 pm »
Olá Thiago!

Acho que vc terá que programar isso em php mesmo... dá pra fazer algo parecido com isso:

Código: [Selecionar]
// 1ª parte - gerar o número aleatório
$num_min = 1;            // menor número que poderá ser gerado
$num_max = 9999;         // maior número que poderá ser gerado
$num_qtde = 4;          // quantidade de dígitos desejados no campo gerado

$num_rand = rand($num_min, $num_max);  // será gerado um número entre o mínimo e o máximo definido
$parte1 = str_pad($num_rand, $num_qtde, "0", STR_PAD_LEFT);  // completa com zeros à esquerda, de acordo com qtde de digitos definida


// 2ª parte - Pegar mês/ano
$parte2 = date('m/Y');

// 3ª parte - código do cliente
$parte3 = {cli_id};

{codigo} = $parte1."-".$parte2."-".$parte3;

Supondo que o código do cliente seja "1", isso irá resultar em algo como:
5437-10/2009-1
0029-10/2009-1
9188-10/2009-1

Espero ter ajudado.

Att.
Robson


Rodrigo Lins

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 504
    • Overalt I.T
Re: Codigo de Autorizacao
« Responder #2 Online: Outubro 19, 2009, 09:05:57 am »
Bom dia,

De fato terá que fazer em PHP como o nosso companheiro Robson lhe explicou... Agora seria um número aleatório ou sequencial?

Sendo sequencial poderia utilizar algo como o SELECT MAX para pegar o último código inserido no banco de dados e incrementar...

Exemplo:

sc_lookup(ds_sequencia, "SELECT max(nomecampoCodigo) FROM minhatabela");

$incremento = {ds_sequencia[0][0]} + 1;

{meu_campo_do_form} = $incremento;


OBS: Se o código em questão, será de fato todo criado no evento (não vai ser pego de outro local) teriamos que utilizar a função substr  do PHP para pegar somente parte da string. Algo como tem embaixo:

$valor_que_preciso = substr('abcdef', 0, 4);


Rodrigo Lins.

thiago_itp

  • Novato
  • *
  • Mensagens: 7
    • Email
Re: Codigo de Autorizacao - Resolvido
« Responder #3 Online: Outubro 21, 2009, 02:36:23 pm »
Resolvido - Obrigado!

Ajuda de grande valia. Sim, codigo aleatório mesmo...

robsonsilva

  • Visitante
Re: Codigo de Autorizacao
« Responder #4 Online: Outubro 21, 2009, 03:49:42 pm »
Olá Thiago!

Que bom que deu certo! acho que a idéia do Rodrigo foi prevenir que sejam gerado códigos idênticos, o que (hipoteticamente) pode ocorrer neste exemplo (mesmo cliente durante o mesmo mês)...

É meio dificil, mas dependendo do volume de códigos gerados e da qtde de digitos ($parte1), pode acontecer.. Se quiser evitar isso talvez seja preciso armazenar este código no banco e conferir a cada geração, ou adicionar minutos e segundos na geração do código..

Att.
Robson