Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Sistema de agendamento de Consulta

Saudações, pessoal!

Estou querendo fazer um sistema de agendamento de atendimento e tenho uma noção geral de como seria o código em PHP.

Cada atendimento tem um tempo pré determinado, então provavelmente eu teria que ter uma tabela pra cada serviço com os intervalos de horário específicos.

Além de uma tabela com todas as datas.

Existe outra forma de fazer isso ? Ou existem uma outra linguagem que seria mais fácil fazer isso ?

6 respostas

Cara a linguagem não importa, pois tudo vai depender da sua lógica.

Tenho uma sugestão.

Seu agendamento teria que ter inicio e fim.

você vai criar um array com todos os horários ex:) horariosDisponiveis = [08:00,08:05,08:10......11:25,11:30.....07:55]

o intervalo eu coloquei de 5 mais pode ser o quanto vc achar necessario.

Ae eu guardo o agendamento para a data e horario. O proximo agendamento que for criado eu verifico se existe agendamento com a mesma data, pego os horarios dos mesmo e comparo com o intervalo do array de horariosDisponiveis., os agendamento que tiver dentro do intervalo de horários eu removo desse array, ae oque sobrar é os horarios disponiveis.

Eu gosto muito de usar Nodejs/MongoDB.

Lembrando que tudo isso é só uma sugestão.

Eu acho que isso não é algo relacionado a linguagem. Na minha opinião você deve desenvolver numa linguagem em que você se sinta confortável. Eu já fiz algo assim a muito tempo atrás usando PHP + MySQL.

Pela descrição do seu problema, você poderia ter uma tabela única para guardar qualquer tipo de agendamento. Uma estrutura poderia ser a seguinte:

ID do agendamento - data - horario inicial - horario final - servico - profissional - id do cliente - status (pendente - agendado - cancelado - concluido - ausente)

Você também pode ter uma tabela única para cada serviço,uma estruura seria

ID da tabela - Serviço - Dia da Semana - Horario Inicial - Horário Final (1 registro para cada intervalo de atendimento)

Você pode por exemplo pré-carregar esta tabela com "x" dias de antecedência, para já deixar uma lista pronta para os seus usuários agendarem o serviço.

Algo que eu acho que valeria a pena dar uma olhada seria isto:


https://fullcalendar.io/

Gostei das ideias.Mas como não tenho muito prática com array vou fazer da forma que o Daniel sugeriu.

Surgiu uma outra dúvida, haveria uma forma de só mostrar os horários disponíveis nesse cenário citado pelo Daniel ?

Se você pré-carregar os períodos de agendamento, pode criar na tabela uma coluna de status e marcar todos como pendente. Estes seriam os que você mostraria na tela para selecionar. Uma vez selecionado, este registro mudaria para agendado.

Daniel, como você sugere ?

Uma tabela com datas e outra com os horários ou uma tabela com as datas e horários juntas ?

solução!

Me parece melhor uma tabela com datas e horários juntos.