
Geração De Matrícula
#1
Posted 28/12/2007, 10:29
Estou precisando de uma ajuda muito grande.
O caso é o seguinte.
Preciso que o sistema gere uma matrícula do seguinte tipo:
AABBBCCCCC
Código
Onde,
AA é o ano(ex: 2007 é 07)
BBB é o código da unidade (ex: 001).
CCCCC é o código da pessoa.
Sendo,
Que o código da pessoa(CCCCC) é sequêncial referente ao código da unidade e ao ano. Exemplo:
0700100001 - Pessoa 1
0700200001 - Pessoa 2
0800100001 - Pessoa 3
0800200001 - Pessoa 4
Eu poderia estar criando 3 colunas no banco e utilizar um auto_increment para tal assim como utilizar a coluna ID para o CCCCC, só que não ficaria legal, muito menos do jeito que ficaria acima. Mas infelizmente tenho que resumir isso tudo numa única coluna.
Abraços,
#2
Posted 28/12/2007, 12:58
depois cria uma nova id com o ano (pega o ano corrente usando funcao de data) e incrementa a unidade e/ou o sequencial.
na hora de cadastrar a nova id no banco verifica se ela ja foi criada nesse meio tempo, se ja, refaz o processo de consulta e criacao usando a ultima id disponivel, senao insere no banco de dados e pronto!

simples assim

vlw

"Living to learn... learning to live!"
Useful links: Rules | Search
#3
Posted 29/12/2007, 00:45
na hora de criar um user faz uma consulta no banco de dados para pegar a ultima id, usa uma funcao para explodir a id e pegar o numero da unidade e o ultimo numero da sequencia.
depois cria uma nova id com o ano (pega o ano corrente usando funcao de data) e incrementa a unidade e/ou o sequencial.
na hora de cadastrar a nova id no banco verifica se ela ja foi criada nesse meio tempo, se ja, refaz o processo de consulta e criacao usando a ultima id disponivel, senao insere no banco de dados e pronto!![]()
simples assim![]()
vlw
Desculpe, mas essa simplicidade ficaria complicada O.o
Na verdade, essa sua questão está mais pra banco de dados, poderia ser postada na seção específica (banco de dados no caso).
Mas aqui iria minha lógica nisso.
- Uma tabela de unidades
- Uma tabela com o usuario
e uma tabela de relação entre unidade, usuario e ano (tabela de matricula no caso).
Na hora do registro, eucriaria uma trigger pro banco dar o insert de acordo como você passou. Ou criaria a query via php.
Na consulta ficaria algo como:
SELECT usuario FROM tb_usuario u INNER JOIN tb_matricula m ON (SUBSTR(m.id_matricula, -5) = u.id_usuario) AND u.id_usuario = 00001
Algo assim, tentei explicar da melhor maneira possivel

[]'s
#4
Posted 22/01/2008, 14:23
desculpe o retorno... irei testar esta solução... estou meio preso no trabalho...
abraços,
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)