Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Alberto Vieira

[Resolvido] Pontos acumulados

Recommended Posts

Olá a todos;

Estou montando uma rede de níveis tipo marketing multinível e cheguei em um ponto que não estou conseguindo avançar, é o seguinte: A pessoa entra no site faz o cadastro dela, e vai fazendo compras durante aquele mês, e dessas compras vai acumulando os seus pontos, e vou gravando esses pontos no banco de dados com datas e tudo. Se a pessoa quiser trocar os seus pontos por produto, ela tem que ter um x de pontos para poder trocar, até aí beleza. Só que ela tem que trocar os seus pontos durante aquele período ou mês, e se ela não trocar durante aquele período e virar o mês, os seus pontos devem ir para uma tabela de pontos acumulados pois não pode passar para o próximo período ou mês e juntar com os pontos daquele período ou mês, é aí que estou parado. Não consigo pensar em uma logica para transferir esses pontos que ela não trocou naquele período ou mês para uma outra tabela de pontos acumulados quando estiver acabando aquele período, alguém poderia me auxiliar nessa lógica? 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

tabela_acumulados, contem 2 campos: mes_ano e pontos, fica assim:

 

janeiro_2017 = 10 pontos

fevereiro_2017 = 15 pontos

março_2017 = 20 pontos

etc....

 

mas estes pontos acumulados vai poder usar quando??

 

não seria melhor descomplicar e deixar usar sempre que acumulou os pontos?? Fica ai dificultando as coisas, a pessoa se aborrece e vai comprar em outra loja....

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vejo duas formas de fazer, ou pelo banco ou pelo PHP:
 

No banco você pode criar uma rotina que vai executar sempre no dia 01 às 00:00:00. No SQL Server essa rotina se chama JOB, no Mysql se chama Evento. E essa rotina vai chamar uma procedure que verifica se existem pontos não trocados e copiar para a tabela de pontos acumulados etc...

A outra forma é você criar uma rotina no windows ou um crontab no linux que vai executar sempre no dia 01 às 00:00:00, e essa rotina ou crontab vai executar um arquivo .php que faz esse esquema: Verifica se existem pontos não trocados e copia para a tabela de pontos acumulados etc...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

halfar, bom dia.

Pois é, não é exigência minha não é para um cliente que estou tentando pegar esse serviço dele.

Ele quer que todos os pontos que a pessoa acumulou naquele período vai para essa tabela, e lá pode ir acumulando para ser usado para fazer compras depois. Ele quer de certa forma, forçar a pessoa a comprar dentro daquele periodo para ganhar mais pontos ou trocar por mercadorias. Também acho que pode aborrecer a pessoa e ela ir comprar em outra loja, más fazer o que, ele quer. Aí minha dúvida é justamente aí, pois tenho que pegar quem tem pontos naquele mês ou periodo e jogar para essa tabela. O problema EdCesar, como eu vou fazer isso para cada cliente pelo evento, pois cada cliente tem um id especifico e como esse evento faria isso. Pois o evento tem que saber se aquele cliente daquele id fez ou não compra durante aquele periodo e se ele tem pontos acumulados o suficiente para ir para a outra tabela caso ele não opte por trocar naquele periodo. Minha cabeça já esta doendo, más agradeço a todos.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro que você não precisaria ter 2 tabelas para isto, se você tem os pontos e sabe em que mês eles foram criados você pode determinar se é o mês corrente ou não.

 

Agora, se você deseja realizar esse processo, crie um arquivo que faça isto (leia a tabela e faça o processo do modo que você deseje, seja lá como for isto) e agende no cron para rodar no primeiro segundo do primeiro dia de cada mês, pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o seu servidor for cpanel, existe uma interface gráfica para fazer o agendamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixa eu entender uma coisa:

 

o cliente acumula pontos num determinado mes, mas se não conseguir um númeo mínimo de mes vai para uma outra tabela de pontos acumulados.

 

Então vamos supor que a pontuacao mínima é de 100 pontos.

No mes de janeiro fez 70 pontos (não pode trocar os pontos, pois não atingiu o minimo de 100 pontos)

No mes de fevereiro fez 30 pontos (não pode trocar os pontos, pois não atingiu o minimo de 100 pontos)

No mes de março fez 60 pontos (não pode trocar os pontos, pois não atingiu o minimo de 100 pontos)

etc....

 

Então estes pontos que não pode trocar vai para uma tabela de acumulados, que no caso estará com 160 pontos.

 

Quando, como ela irá trocar estes 160 pontos??? Pois voce disse que  "  não pode passar para o próximo período ou mês e juntar com os pontos daquele período ou mês"  (desculpa, mas os negritos não estão funcionando, era para grifar a frase toda).

 

Só quero entender bem para poder ajudar.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Halfar,

É isso mesmo, se ela não conseguiu dentro do período a pontuação minima, os pontos que ela conseguiu dentro desse período deve ir para a tabela de pontos acumulados e lá quando ela conseguir os 100 pontos ela já pode utilizar eles fazendo novas compras com esses pontos, pois ela estará acumulando eles em outra tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, acho que agora esclareceu, ela pode comprar com pontos do mes somente se tiver atingido o mínimo, ou poderá usar os acumulados, MAS NA TABELA DE ACUMULADOS TEM QUE TER  O MÍNIMO ACUMULADO TAMBÉM (EM NOSSO EXEMPLO 100 PONTOS).  O que não pode é ter 30 no mes vigente, e mais 70 na tabela acumulada, que totaliza 100 pontos, mas não pode usar, pois é necessário que na tabela de acumulado seja 100 pontos tambem...

 

Acho que é esta sua ideia.

Seu comentário abaixo:

 

Citar

O problema EdCesar, como eu vou fazer isso para cada cliente pelo evento, pois cada cliente tem um id especifico e como esse evento faria isso. Pois o evento tem que saber se aquele cliente daquele id fez ou não compra durante aquele periodo e se ele tem pontos acumulados o suficiente para ir para a outra tabela caso ele não opte por trocar naquele periodo

 

Creio que voce se expressou por engano na seguinte frase:

"e se ele tem pontos acumulados o suficiente para ir para a outra tabela"

 

O SUFICIENTE PARA IR PARA TABELA DE ACUMULADOS??? TEM QUE TER UM MÍNIMO DE PONTOS SUFICIENTES PARA IR PARA OUTRA TABELA?? OU VAI PARA OUTRA TABELA DE QUALQUER FORMA QUANDO NÃO ATINGE OS 100 PONTOS??

 

Mas partindo do princípio que vai para tabela de acumulados todos os pontos não utilizados:

De acordo com o que voce disse tambem, "Pois o evento tem que saber se aquele cliente daquele id fez ou não compra durante aquele periodo ".

 

Pelo o que percebo, estas tabelas de pontuações são independentes, apenas informa o id do cliente e a quantidade de pontos, sem dar para saber se usou ou não estes pontos, pois conforme voce disse: "tem que saber se aquele cliente daquele id fez ou não compras...".

 

Partindo deste principio, é claro que voce deve ter no seu sistema alguma tabela que informe estas compras realizadas. 

 

Como é que funciona aí no seu sistema quando o cliente faz a compra e utiliza os pontos? Automaticamente o sistema grava essa informação onde?

 

Eu estou achando que voce deve trabalhar com tres tabelas:

 1 - tabela_pontos_mes_vigente

 

 2 - tabela_pontos_utilizados

 

3 - tabela_pontos_acumulados

 

Quando for fechar o mes, para transferir os pontos acumulados é só executar uma rotina que que some a quantidade de pontos do mes vigente, subtraia os pontos da tabela de pontos utilizados, e transfira o saldo para

a tabela de pontos acumulados. Isso é fácil, é só executar uma instrucao sql com um SUM  para cada uma das tabelas e fazer uma continha básica depois...

 

Conforme disse os demais colegas, é uma rotina que pode ficar de pontidão lá no servidor para ser executada no último dia do mes a meia noite, ou coisa parecida.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Halfar boa tarde, o sistema funciona assim;

O cliente cadastra no site como todos os outros, e a partir daí eu gero para ele um link de indicação no painel dele para ele indicar quantas pessoas ele quiser através desse link. Ou seja; todas as pessoas que cadastrarem através desse link dele, vai fazer parte da rede dele. Eu gravo o id dele no cadastro das pessoas que cadastraram nesse link, formando a rede dele. A partir desse momento, quando as pessoas da rede dele compra na loja, eu pego um percentual dessa compra  e transfiro para o cliente e vai acumulando dentro do limite do mês, podendo ele o cliente solicitar a troca por produtos. Só que ele o cliente para solicitar aquele percentual que eu gravei na base de dados, e que ele ganhou pelas compras dos seus clientes indicados por ele, através daquele link, ele tem que ter um minimo de pontos dentro daquele período. Para isso ele precisa ter feito uma compra que contenha a quantidade de pontos equivalente ou varias compras, para ele receber as porcentagens dos clientes. Só que ele não pode perder esses percentuais que ele ganhou dos seus clientes, é onde entra a tabela de pontos acumulados que estou tendo a dificuldade de transferir. Dentro do mês ele só pode retirar esses percentuais se ele atingiu os pontos necessários, aí ele pode trocar por produtos, más se ele não tirar esses percentuais e mudar o período, esses percentuais deve passar para essa tabela para ele e ir acumulando e trocando por produtos. Esse que é o x da questão, pois quando estiver acabando o período eu devo transferir esses percentuais para a tabela acumulados automaticamente, pegando assim cada cliente que estiver nessa condição. Não sei se deu para entender direito como funciona. Mas te agradeço pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu entendi a logica da coisa sim...

 

creio que a dificuldade é como montar a instrucao sql para retirar de uma tabela e transferir para outra.

 

eu imagino uma instrucao sql desta forma, considerando a hipotética existencia das seguintes duas tabelas:

 

tabela_mes_vigente

tabela_acumulados

 

imagino também que nesta tabela de acumulados deva existir os seguintes campos:

 id, pontos, mes_referencia (este campo se refere ao mes do qual está se extraindo os pontos acumulados).

 

Percebo também que possa haver uma dificuldade em montar uma instrucao sql para inserir os dados nesta tabela,

então para contornar esta dificuldade melhor realizar um update. Neste caso voce ja deve ter a tabela de acumulados já previamente com registros de todos os clientes com valores em branco. Aí é só dar um update que ficaria da seguinte forma:

$sql = "update tabela_acumulados set id = tabela_mes_vigente.id,

mes_referencia =  tabela_mes_vigente.mes_referencia,

pontos = tabela_acumulados.pontos + tabela_mes_vigente.pontos

where tabela_acumulados.id = tabela_mes_referencia.id";

 

a idéia, como deu para perceber, é um relacionamento entre tabelas , como se estivesse utilizando o inner join (o que talvez venha a ser necessário utilizar realmente o inner join,)

 

eu me lembro que há uns bons tempos atrás escrevi um codigo mais ou menos da maneira como fiz acima. Estou apenas te dando a ideia, tem que dar uma pesquisada e fuçada.

 

A tabela de mes vigente, os pontos deixa como está, não deve ser zerada. Isto facilita para aproveitar, caso o cliente questione quantos pontos ele tinha em determinado mes, desfazendo assim a necessidade de uma outra tabela para deixar gravado o que ele já tinha em todos os meses.

 

qualquer outra dúvida, estamos ai...

 

 

 

corrigindo o script, pois errei na ideia:

 

$sql = "update tabela_acumulados set id = tabela_mes_vigente.id,

mes_referencia =  tabela_mes_vigente.mes_referencia,

pontos =  tabela_mes_vigente.pontos

where tabela_acumulados.id = tabela_mes_referencia.id";

 

não é necessário somar como havia feito no script anterior, pois já existe um campo mes_referencia, então cada mes terá seu campo próprio...desculpe foi um lapso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Motta
      Prezados ,
       
      Recomendam alguma comunidade sobre markting digital mais voltada para a parte técnica da coisa ?
      Smpt , envio de emails , legislação , protocolos  etc.
      Procuro material disto mas só acho ofertas comerciais.
      []s
       
    • Por Wesley Alves barnosa
      Desenvolvi um site para vender palestras o https://palestraparaprofessores.com.br, já tenho algum trafego, mas esta muito abaixo do que espero. Álguem aqui pode me ajudar a entender melhor o que preciso fazer para vender minhas palestras.
       
      Se puderem me ajudar com dicas ficarei grato!
      Obrigado
    • Por Motta
      Google planeja novas ferramentas de privacidade e transparência em anúncios
    • Por Jefferson andre
      Olá, alguém poderia me indicar um curso on LINE de marketing digital com preço acessível por favor
       
      Agradeço sugestões
    • Por JulioClaudius
      Olá, boa tarde a todos!
       
      Sou novato em html/css e preciso desenvolver uma newsletter que será disparada para um cliente nosso.
       
      Desenvolvi o layout no photoshop primeiro, depois exportei o html com as imagens normalmente. Porém quando fui testar no browser, verifiquei que os textos ficaram correndo para fora do layout.
       
      Com certeza estou esquecendo algum comando que "trave" e/ou deixe o texto no seu devido lugar. 
       
      Seguem imagem (de como deveria ficar) e link do html de como está ficando:
       
      http://www.lipodobrasil.com.br/vantage/eldewps_esp/eldewps203_esp.html
       
      Desde já muito obrigado!
       
       
       

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.