Olá pessoal, gente me deram um tarefa aqui na empresa bem diferente do que eu to acontumado, por isso estou recorrendo aos universitarios, para ver se alguém já fez algo parecido para me ajudar.
Vamos ver s eocnsigo explicar.
o bando de cadastro de clientes tewra que ter algumas informações específicas e é isto que esta me confundindo.
teremos
IDCliente
IDIndicador (quem indicou o cliente, só pode ser alguém que já seja cliente da empresa)
IDAscendente (aqui eu to me perdendo)
a montagem do banco fui eu quem fiz seguindo as informações que foram solicitadas aqui na empresa.
Bom é assim:
O sistema tem que dividir os clientes em 2 grupos, que estou chamando de GRUPO ESQUERDO e GRUPO DIREITO, isto porque a empresa quer que eu coloque os cliente em um sistema de Árvore, tipo Binário, um abaixo do outro.
Um cliente vai se cadastrar no site da empresa, para ele se cadastrar ele tem que ter um outro cliente que esta indicando ele, e tem que escolher em que grupo ele quer se cadastrar, ESQUERDO OU DIREITO, até aqui tudo beleza, o problema meu esta em que vamos imaginar algumas situações que estou pegando na hora de montar as regras.
Se montarmos esta sequencia em uma forma gráfica em 2 grupos esquerdo e direito veremos uma arvore em um sistema binário, vejam, até onde chegue.
IdIndicador = Session("IdIndicador")
Grupo = Session("Grupo")
'PRIMEIRO PRECISO VERIFICAR QUL O UTIMO ID CADASTRADO NA PERNA ESCOLHIDA
'DO PATROCINADOR PARA TER O ID DO ASCENDENTE
Set RsAs = Server.CreateObject("adodb.recordset")
SQL = "select max(IdCliente) as IdCliente from cad_cliente where IdIndicador = '" & IdIndicador & "' and Grupo = '"&Grupo&"'"
RsAs.Open SQL,Conn,3,3
If IsNull(RsAs("IdCliente")) then
IdAscendente = IdIndicador
else
IdAscendente = RsAs("IdCliente")
RsAs.Close
Set RsAs = Nothing
End If
Bom primeiro ey gravo as variaveis de quem esta indicando e em que grupo este novo cadastro deve ser colocado (Direito ou Esquerdo)
Depois verifico no BD o utimo cadastro efetuado dentro daquele grupo o INDICADOR seja igual ao Indicador escolhido pelo novo cliente e que este utimo registro esteja dentro do mesmo Grupo (esquerdo ou Direito)
Depois vejo se caso seja o primeiro cadastro deste Indicador ele vai defenir o IdAscendente sendo o prórpio IdIndicador
Se o Indicador já tiver algum indicado no respectivo grupo, então eu devo pegar como IdAscendente o Utimo IDAscendente cadastrado neste grupo
Bom tudo estava funcionando certinho até que eu fiz o seguinte teste.
Peguei um Indicador que já possuia 3 cadastros um abaixo do outro dentro do mesmo grupo, quando fiz o teste de cadastro em vez dele pegar o IdAscendente sendo o utimo Di cadastrado dentro do grupo, ele colocou como IDAscendente o Próprio IdIndicador, porque este Indicador ainda não tinha ninguém cadastrado diretamente.
esta situação pelo que entendi, eles chama de DERRAMAMENTO, que é quando o cliente esta cadastrado, e já tem abaixo dele seja no grupo dirieto ou esquerdo varios outros cadastros que não foram efetuados por ele mesmo, sendo assim qu8ando ele ou outra cliente efetuar um novo cadastro este deve sempre entrar na utima posição do grupo, tendo como IDAscendete o ID do grupo cadastrado.
Sei que é muito complicado de entender, mas será que alguém consegue em auxiliar?
Pergunta
kania
Olá pessoal, gente me deram um tarefa aqui na empresa bem diferente do que eu to acontumado, por isso estou recorrendo aos universitarios, para ver se alguém já fez algo parecido para me ajudar.
Vamos ver s eocnsigo explicar.
o bando de cadastro de clientes tewra que ter algumas informações específicas e é isto que esta me confundindo.
teremos
IDCliente
IDIndicador (quem indicou o cliente, só pode ser alguém que já seja cliente da empresa)
IDAscendente (aqui eu to me perdendo)
a montagem do banco fui eu quem fiz seguindo as informações que foram solicitadas aqui na empresa.
Bom é assim:
O sistema tem que dividir os clientes em 2 grupos, que estou chamando de GRUPO ESQUERDO e GRUPO DIREITO, isto porque a empresa quer que eu coloque os cliente em um sistema de Árvore, tipo Binário, um abaixo do outro.
Um cliente vai se cadastrar no site da empresa, para ele se cadastrar ele tem que ter um outro cliente que esta indicando ele, e tem que escolher em que grupo ele quer se cadastrar, ESQUERDO OU DIREITO, até aqui tudo beleza, o problema meu esta em que vamos imaginar algumas situações que estou pegando na hora de montar as regras.
vamos imaginar uma relação de clientes:
IDCLIENTE | IDINDICADOR | IDASCENDENTE | GRUPO
------------------------------------------------------------------------
1 1 1 D (este cliente será a própria empresa que por ela iniciará toda a rede)
2 1 1 E
3 1 1 D
4 2 2 D
5 4 4 D
6 2 5 D (aqui eu tenho um problema, pois não consigo pegar qual é o ascendente na rede)
7 3 3 E
-------------------------------------------------------------------------
Se montarmos esta sequencia em uma forma gráfica em 2 grupos esquerdo e direito veremos uma arvore em um sistema binário, vejam, até onde chegue.
Bom tudo estava funcionando certinho até que eu fiz o seguinte teste.
Peguei um Indicador que já possuia 3 cadastros um abaixo do outro dentro do mesmo grupo, quando fiz o teste de cadastro em vez dele pegar o IdAscendente sendo o utimo Di cadastrado dentro do grupo, ele colocou como IDAscendente o Próprio IdIndicador, porque este Indicador ainda não tinha ninguém cadastrado diretamente.
esta situação pelo que entendi, eles chama de DERRAMAMENTO, que é quando o cliente esta cadastrado, e já tem abaixo dele seja no grupo dirieto ou esquerdo varios outros cadastros que não foram efetuados por ele mesmo, sendo assim qu8ando ele ou outra cliente efetuar um novo cadastro este deve sempre entrar na utima posição do grupo, tendo como IDAscendete o ID do grupo cadastrado.
Sei que é muito complicado de entender, mas será que alguém consegue em auxiliar?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados