Ir para conteúdo
Fórum Script Brasil
  • 0

agendamento online


marvi

Pergunta

Olá pessoal!

Obs: Olha eu aqui com outro problema Rafael... espero que esse seja mais simples heheheeh

Estou criando um agendamento on-line. Onde a pessoa marca uma consulta online, recebe a confirmação da clinica por telefone e a pessoa só vai para clinica fazer o exame, diminuindo a burocracia de agendar tudo, de saber que exames vão fazer e etc.

Mas tem uma questão que pega. Não posso marcar mais de duas pessoas no mesmo horário e no mesmo dia / data. Sendo assim só poderá ser marcado a próxima pessoa depois de 10 minutos da última pessoa que marcou.

Por exemplo. Se Paulo e João marcou a consulta as 6:00hs do dia 17/12/2008 e aparecer Maria querendo marcar neste mesmo horário, o sistema não permite ou o sistema nem exibe esta hora marcada neste dia, pois já foi marcado até por duas pessoas (Paulo e João ). Sendo assim, esse sistema irá liberar todas as horas a partir das 6:10hs do mesmo dia, pois as 6:00 horas, como vimos, já tem gente marcado e só pode marcar agora depois de 10 minutos da ultima marcação.

Ai o sistema mostrará 6:10 até 17:00hs... sabendo que se outra 2 pessoas marcaram 8:00 por exemplo, o sistema só vai deixar marcar de 6:10 (pois as 6:00hs também já marcou por Paulo e João acima) até 7:50 (pois as 8:00 2 pessoas já marcaram) e depois das 8:10 em diante...

Ficaria assim: 6:10 as 7:50 e das 8:10 até as 17:00 hs isso se ninguém marca outros horários.

Enfim, no geral, ficará das 6:00 hs da manhã até as 17:00 hs o sistema para agendamento e se duas pessoas marcou uma certa hora entre 6:00 às 17:00hs, essa hora agendada não poderá está mais disponível, só as horas anteriores e as horas posteriores contando 10 minutos da hora marcada.

Alguém sabe como fazer isso? Fazer o sistema liberar só as horas que não foram marcadas por 2 pessoas? Sendo que seria 10 minutos antes ou depois dessa hora marcada que poderão marcar uma nova consulta?

Obrigado!

Editado por marvi
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Obs: Olha eu aqui com outro problema Rafael... espero que esse seja mais simples heheheeh

Hahaha boa!

E não é que é mais fácil mesmo!

Eu faria assim... criaria um select para seleção dos horários...

Esse select imprimiria os horários diposníveis através de uma busca ao bd...

Então essa query ficaria mais ou menos assim:

select * from tab where horai >= 09:00 e horaf <= 18:00

até aqui foi? tipo 09:00 e 18:00 são as horas comerciais... tipo horas limite de funcionamento...

Daí vem as condicionais...

Se esse rs for vazio (eof) aparecem todas as horas disponíveis nesse intervalo sendo que de 10 em 10 minutos... só somar apartir da horai mais 10min até hora...

se não for vazio pegar todos os intervalos de 10 em 10 minutos pulando os já existentes... sacou?

Pra facilitar eu ainda criaria uma tabela no bd com horas prefixadas... daria um trabalhinho pra digitar tudo mas ficaria bem mais fácil depois... tipo digitaria todo intervalo na mão... ex.: 09:00 09:10 09:20 ... 17:50 18:00

Mias ou menos assim...

Agora é contigo...

Link para o comentário
Compartilhar em outros sites

  • 0

select * from tab where horai >= 09:00 e horaf <= 18:00

Daí vem as condicionais...

Se esse rs for vazio (eof) aparecem todas as horas disponíveis nesse intervalo sendo que de 10 em 10 minutos... só somar apartir da horai mais 10min até hora...

se não for vazio pegar todos os intervalos de 10 em 10 minutos pulando os já existentes... sacou?

Esse comando select * from tab where horai >= 09:00 e horaf <= 18:00 vai listar as horas 09:00 até 18:00 em sequência?

Ai você falou: Se esse rs for vazio (eof) aparecem todas as horas disponíveis nesse intervalo? Mas o campo hora vai está vazio?

Não entendi... porque o campo hora vai está vazio se ele está listando as horas do banco, imprimindo?

Me atrapalhei todo agora! :)

Link para o comentário
Compartilhar em outros sites

  • 0

Pra listar em ordem basta um order by hora asc...

O que quise dizer é que você terá que ter duas tabelas...

uma onde terão as horas cadastradas e disponíveis para agendamente: 09:00, 09:10, 09:20

Outra tabela que será das horas agendadas... basta fazer um select utilizando subconsultas do tipo not in...

Segue:

http://www.criarweb.com/artigos/subconsultas-em-sql.html

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...