Tenho uma funcionalidade onde defino o dia e validade de uma licença no sistema, qual seria a melhor forma do sistema desativar automaticamente? Alguém pode mandar um exemplo
Obs: Estou trabalhando com laravel como back-end
No front o admin pode aprovar, desativar e recusar a licença do usuário.
---- Parte do código que desativa a licença, “pedente” foi definido quando ele não foi aprovada e nem recusada esse status fica assim a cada nova licença cadastrada no sistema.
publicfunctiondesativarLicenca(Request$request,$idLicenca){$licenca=Licenca::findOrFail($idLicenca);//pegaoiddalicenca$input['operando']=false;//validacomofalse$input['status']='Pendente';//statuspendente$licenca->update($input);//salvaasalteraçõesreturnresponse()->json(['message'=>"Licença desaprovada com sucesso!"],201);}
Você pode fazer com que o usuário não consiga logar no sistema se a licença dele estiver expirada.
Niemand
Com desativar o sistema, você quer dizer impedir o usuário de fazer login?
Lucas_Camara
Sim
Niemand
Eu perguntei pro cara, lucas SIOADHUIHASUID
Lucas_Camara
kkkkk putz, nem reparei quem fez a pergunta kkkkk
Elyton_Silva
É quase isso, só que a licença do usuário ficaria como pendente ou seja ficaria desativada após a data de validade o status muda para pendente como mostra o trecho do código que mandei…
$input['status']='Pendente';
Exemplo: No dia 26/02/2019 uma licença passou da sua validade o sistema automaticamente a meia noite do dia 27 desativaria a licença do usuário…
Sobre sua dúvida, o usuário não seria impedido de acessar o sistema e sim sua licença não estaria ativa no sistema é o mesmo do alvará se alguém tem ela vencida ela é marcada como vencida só volta ao normal depois que o admin muda a data de validade, como sistema é de alto fluxo de dados fica chato ficar lá desativando manualmente quando passou da validade…
Niemand
Eu tenho uma lógica que pode ser uma boa.
Você está armazenando a data que o status expira, certo? Ok.
Vamos supor que 26/01/2019 eu comprei a licença, logo a data está armazenada no banco de dados, sendo assim já grava automaticamente uma data 1 mês a frente, quando ambos os campos são comparados e igualados, o status muda.
Falei besteira?
Veja um exemplo do que eu quis dizer:
<?php$data1='2013-05-21';$data2='2013-05-22';// Comparando as Datasif(strtotime($data1)!==strtotime($data2)){echo'A data 1 é diferente da data 2.';}elseif(strtotime($data1)==strtotime($data2)){echo'A data 1 é igual a data 2.';}
Elyton_Silva
Na hora do cadastro ele define a data inicio e a data de validade.
A lógica seria passando da validade a licença seja desativada automaticamente sem precisar clicar no botão. Tipo promoção em loja online, conseguiu entender ?