Autor Tópico: como reservar um registro ?  (Lida 851 vezes)

adriano.nogueira

  • Iniciante
  • **
  • Mensagens: 92
    • Email
como reservar um registro ?
« Online: Junho 13, 2013, 11:15:42 pm »
Pessoal, bom dia a todos.
    Gostaria de saber como faço para reservar um registro e desbloquear novamente. Situação é:
    Tenho um agenda, e quando entro no dia e hora, faço um update como reservado (onload), para que assim outra pessoa entrar na tela já irá identificar que está sendo visualizado por alguem, só que qdo saio da tela não consigo tirar a reserva caso não tenha alterado nada... ele não volta... mesmo setando os valores a força ou dando o comando de update....
    Outra informação: consigo colocar algum evento quando o usuario clica no botão sair ?

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:como reservar um registro ?
« Responder #1 Online: Junho 13, 2013, 11:36:02 pm »
Cara ao meu ponto de vista vai ser muito difícil fazer esse controle, pois o usuário poderá não clicar no botão sair, e sim direto no menu ou  direto no close da página.

O que você poderia fazer para ter um controle quando o usuário clicar em sair é:
1o - Tirar o botão sair padrão do scriptcase.
2o - Criar um botão sair em php.
3o - Fazer seu update nesse botão PHP e redirecionar para a aplicação desejada.

Agora para tentar contornar parcialmente o usuário que não clicar em sair, seria uma tempo para expirar o acesso do usuário ao modulo, fazendo um refresh no modulo após determinados minutos e gravando no banco a datahoraminuto que o usuário reservou, e quando um próximo usuário entrar na agenda verificaria se o tempo do usuário anterior expirou e o reservaria para si mesmo.

Espero ter ajudado.

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:como reservar um registro ?
« Responder #2 Online: Junho 14, 2013, 08:14:26 am »
Como eu faço:

No menu criar uma função javascript que a cada n segundos executa um script php via ajax, esse script marca a data e hora no usuário logado.

No seu caso o mesmo script executa a liberação dos registros reservados pelos usuários que estão a mais de n segundos sem acesso (usuário deslogado).

Esse é um exemplo antigo que eu já tinha postado aqui:

execute em guias do browser diferentes:

http://iw.servehttp.com:85/sc/iw/app/Publico/useronline_menu/useronline_menu.php?user_=MARIA

http://iw.servehttp.com:85/sc/iw/app/Publico/useronline_menu/useronline_menu.php?user_=JOAO

http://iw.servehttp.com:85/sc/iw/app/Publico/useronline_menu/useronline_menu.php?user_=PEDRO


Feche uma das guias pelo fechar do browser não pelo sair do menu e observe a outra guia aberta.

Função na onload do menu:

Código: [Selecionar]
$tempo=90000;  //9 segundos

if (!empty($_GET['user_'])) {

$_path_prod=$_SESSION['scriptcase']['useronline_menu']['glo_nm_path_prod'];
$_user=$_GET['user_'];

echo "
<script type='text/javascript' src='$_path_prod/third/jquery/js/jquery.js'></script>

<script>
$(document).ready(function(){
 
 setInterval(ajaxConsulta, $tempo);
 
})
function ajaxConsulta(){
  $.ajax({
 
   url:\"../useronline/useronline.php?user_=$_user\",
   
   success:function(data){}
 
  })
 }
 ajaxConsulta();
</script>";
}

Código da app blank :  useronline

Código: [Selecionar]
$_user=urldecode([user_]);
sc_exec_sql("replace into useronline set user='".$_user."'");

Tabela useronlie:

Código: [Selecionar]
delimiter $$

CREATE TABLE `useronline` (
  `User` varchar(15) NOT NULL DEFAULT '',
  `DataHora` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `Flag` char(1) DEFAULT NULL,
  PRIMARY KEY (`User`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1$$

« Última modificação: Junho 14, 2013, 09:19:39 am por Haroldo »

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:como reservar um registro ?
« Responder #3 Online: Junho 14, 2013, 08:17:01 am »
O ajax é uma boa ideia, havia pensado nela, mais já se trata de um nível mais avançado, mais é ótima ideia, Haroldo...


Abraco.

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência