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.
public function desativarLicenca(Request $request, $idLicenca) {
$licenca = Licenca::findOrFail($idLicenca); // pega o id da licenca
$input ['operando'] = false; // valida como false
$input['status'] = 'Pendente'; //status pendente
$licenca->update($input); // salva as alterações
return response()->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.
Com desativar o sistema, você quer dizer impedir o usuário de fazer login?
Eu perguntei pro cara, lucas SIOADHUIHASUID
kkkkk putz, nem reparei quem fez a pergunta kkkkk
É 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…
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 Datas
if(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.';
}
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 ?