reserva sala

Bom dia gente alguem pode me da uma diga.
tou fazendo uma aplicação de reserva de salas entao criei 8 tabelas
para representar esse sistema e uma tabela pricinpal para recever as chaves
das outras. ai vem minha duvida queria sabe de vcs que tipo de regra tenho que usa
para nao permitir que o usuario reserve uma sala no msm horario e na msm sala
alguem pode mim ajuda nisso

Regra basica:

Tabela de reservas, ao inserir um registro de reserva:

1)Trave a Tabela
2)Pesquise se a sala ja tem reserva para o horario solicitado
3) Se não insira a reserva
4)Destrave a tabela

A)Se hora inicial da janela for menor ou igual a hora inicial em tabela e hora final em janela forma maior que hora inicial em tabela negar reserva.
B)Se hora inicial em janela for maior ou igual a hora inicial em tabela e hora inicial janela form menor ou igual que hora final em tabela negar reserva.
C)Hora Final em janela não pode ser menor ou igual hora inicial em janela.

  • Quando falo em horas deve contemplar a data também.

Alguns trabalham com pré-reserva, mas não quero complicar o processo.

oi irmao vi seu post e agradeço ok, mais quando vc fala em trava a tabela oque vc quer dizer com isso vendo pelo meu codigo oque vc diria de tudo? tb desculpa pelos dois post

$buscar =“SELECT data_inicio, hora_inicio, hora_fim, tb_sala_auditorio_solicitada_codigo FROM reserva_de_sala.tb_reserva_sala r
INNER JOIN reserva_de_sala.tb_sala_auditorio_solicitada s ON
r.tb_sala_auditorio_solicitada_codigo = s.codigo
WHERE r.tb_sala_auditorio_solicitada_codigo = {tb_sala_auditorio_solicitada_codigo}”;//reserva_de_sala.tb_sala_auditorio_solicitada.codigo

sc_lookup(dataset, $buscar);
if({data_inicio} == {dataset[0][0]} && {hora_inicio} >= {dataset[0][2]} && {hora_fim} <= {dataset[0][1]}
&& {tb_sala_auditorio_solicitada_codigo} == {dataset[0][3]})
{
sc_erro_mensagem(“Escolha outro horario”);
}
else
{
sc_confirm(“Sala reservada com sucesso!!”);
}
//=======================================================================================================

http://dev.mysql.com/doc/refman/5.0/en/innodb-locks-set.html

Numa situação multi usuário se você não travar a tabela a reserva pode falhar e se duplicar.

Boa tarde,

Sou novo tbm no SC e gostari de uma ajuda.
Tenho 2 campos de horario ( inicio e final) e gostaria de exibir uma mensagem quando o campo “hora final” for igual ou menor que hora inicio.

Olá Gustavo.

Seu primeiro post aqui no forum. Seja bem vindo.

Você tem dois lugares para realizar essa checagem:

  1. O evento ajax onchange do campo, onde você compara as horas e envia mensagem de erro (Veja macro sc_error_message.)

  2. Ou no evento onvalidate, que é executado na submissão do formulário.

Faça isso no onValidade do formulário ou no envento ajax como enviado por Haroldo, abaixo um exemplo de código.

if({campoinicial} >= {campofinal}){
sc_error_message(“Sua mensagem aqui.”);
}

Bom dia Haroldo e Almeida…

Muito obrigado pelas boas vindas!

Obrigado pela ajuda deu certinho a informação repassada por v6, utilizei no evento OnValidade e deu certo.

Caro thiago000, deu certo a sua solicitação, estou com algo bem parecido e gostaria de saber se deu certo e ver como ficou sua configuração.

desde já agradeço a sua ajuda.

Amigos este é meu primeiro acesso aqui e tenho dúvidas de iniciante que sou , como seria as tabelas para representar a hora inicial e final? Também preciso criar agenda das salas de uma clínica de estética, trabalho de conclusão de curso. Alguém poderia me ajudar, eu uso o MySQL.

Desde já agradeço!

Amigo… Favor abrir um outro post com sua dúvida para podermos ajudar, mas o princípio básico é saber no mínimo o básico de programação, conhecimento em banco… depois te aconselho a ver os vídeos do Scriptcase no próprio site ensinando tarefas básicas, e estas questões que você perguntou serão facilmente respondidas de cara.

Seja bem vindo!