Ir para conteúdo
unset

Lógica para desenvolver um sistema de agendamento

Recommended Posts

Olá, estou elaborando a lógica para desenvolver um sistema de agendamento em PHP, ele consiste em salvar no banco os horários disponíveis que uma empresa pode funcionar,

 

Por exemplo, certos dias de semana pode ou não ter horários liberados, assim como certos dias, nesses períodos em cada faixa de horário pode ter diferentes quantidades de clientes que podem fazer um agendamento de acordo com a quantidade do horário.

 

Por exemplo na empresa 1 = de Segunda a Sexta das 07:00h até as 22:00h tem horário, Sábado e Domingo Fechado

Por exemplo na empresa 2 = Só atende Sábado e Domingo das 13:00 as 00:00h e é fechado nos outros dias

Em cada um desses horários tenho que salvar a quantidade de pessoas que podem ser atendidas por exemplo

 

Empresa 1 =  Segunda 7:00h = 4 vagas

Empresa 1 = Terça 18:00h = 2 vagas

Empresa 1 = Sexta 19:00h = 0 vagas - indisponível

 

Empresa 2 =  Sábado 17:00h = 0 vagas - indisponível

Empresa 2 = Sábado18:00h = 5 vagas

Empresa 2 = Domingo 20:00h = 6 vagas

 

Pensando em uma forma que acho pouco convencional e pouco lógica, criaria um formulário com vários e vários campos de todos os dias da semana com todos os horários disponíveis e quantidades pra ser colocada como na imagem em anexo, e salvaria no formato json no banco assim por exemplo 

 

Coluna: agendamentoDiasSemanaHorarios

 

{"1":{"ativo":"0","horarios":{"07:00":7,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"2":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"3":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"4":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"5":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"6":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"7":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}}}

 

Então no caso se 1 ativo quer dizer que segunda pode ter horários agendados, aí vem a lista gigante de horários exemplo 07:00 e em seguida a quantidade de pessoas no caso 7

 

Estou com dificuldade para elaborar uma logica mais simples que funcione, 

 

Se alguém tiver uma ideia e possa ajudar, uma opinião de como faria, agradeço muito.

 

 

AGENDAMENTO.JPG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
Não consegui entender muito bem...
Mostre-nos como o sr. começou e onde está encontrando alguma dificuldade
Assim é possível marcar horários de funcionamento para qualquer dia, qualquer hora, qualquer estabelecimento
 

--
-- AGENDAMENTOS
--

create table agendamentos(
    id int auto_increment primary key,
    fk_estabelecimento int,
    horario_atendimento datetime,
    fk_created_by int,
    created_at timestamp default current_timestamp
)

Mas não entendi como se dá a limitação da quantidade de clientes atendidos.
É baseado na quantidade de horas diárias de funcionamento?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 18/08/2021 at 16:15, washalbano disse:

Olá!
Não consegui entender muito bem...
Mostre-nos como o sr. começou e onde está encontrando alguma dificuldade
Assim é possível marcar horários de funcionamento para qualquer dia, qualquer hora, qualquer estabelecimento
 


--
-- AGENDAMENTOS
--

create table agendamentos(
    id int auto_increment primary key,
    fk_estabelecimento int,
    horario_atendimento datetime,
    fk_created_by int,
    created_at timestamp default current_timestamp
)

Mas não entendi como se dá a limitação da quantidade de clientes atendidos.
É baseado na quantidade de horas diárias de funcionamento?

Obg por responder reformulei a pergunta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por credson
      Elabore um algoritmo que possa descobrir, através de perguntas e respostas, qual meio de transporte o usuário está pensando.
      O usuário deverá escolher uma das seguintes opções:
      - Trator
      - Moto
      - Bicicleta
      - Trem
      - Carro
      - Caminhão
      - Ônibus
      - Paraquedas
      - Balão
      - Avião
      - Helicóptero
      - Submarino
      - Barco
      - Navio
      - Lancha
      Para chegar ao resultado, só devem ser usadas perguntas que retornem "Sim" ou "Não".
      Exemplo:
      É terrestre? Sim.
      Cabe apenas uma pessoa? Sim.
      É pesado? Não.
      Tem pedal? Sim.
       
       
       
      alguem sabveria pode ser  qualquer linguagem
    • Por andersonseifert
      boa tarde, podem me ajudar em uma logica ?
      tenho um numero exemplo 300 , quero aumentar ele sempre +1 , tipo usuario digitou que precisa de 50 numeros depois dos 300 exemplo : 301,302,303... ate 305.
       O que me recomendam fazer ? um array ou for somando +1 ?
       
       
       

    • Por Rafael da Silveira
      Bom dia Pessoal, tudo bem?
      O problema aqui está mais para matematica do que para programação. Mas como sei que aqui só tem fera e pode ser que alguem tenha passado por algo semelhante...

      Tenho um cliente que precisa de uma página, onde ele coloca o valor do produto a vista, e ele joga o valor com as taxas da maquinha de cartão dele...
      A principio é tranquilo, pega o valor, soma taxa, multiplica taxa e pronto...
       
      O problema é que essas taxas são cobradas em cima do valor final, o que depois dos descontos acaba saindo abaixo do valor a vista.
      E ele que receber o valor á vista, deixando para o cliente pagar essa diferença...

      Como resolver essa questão? Alguém poderia me ajudar?
       
    • Por cesaroet
      <?php $variavel = 'teste, teste2, teste 3'; $indice = explode(',', $variavel); foreach ($indice as $indice) { ?> <span>Capítulo</span> <input type="text" name="indice[]" value="<?php echo $indice; ?>" required> <?php } ?> A duvida é o seguinte, como faço para que em "Capitulo" mostre uma sequencia de numeros de acordo com $variavel, exemplo...
      capitulo 1, capitulo 2, capitulo 3...
      Cada 1 com seu valor, ja tentei varias coisas, mas nao estou conseguindo, ajuda por favor
    • Por martemsal
      Boa tarde, 
       
      Como faço para mostrar os eventos do dia cadastrados no banco de dados para uma tabela, segue o que fiz até o momento:
      (ele já retorna todas os meus registros com o código abaixo conforme imagem anexa, mas gostaria que ele mostrasse somente o do dia)
       
      $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
        
          $pesquisar = $_POST['pesquisar'];
          $result_eventos = "SELECT * FROM salas WHERE titlecurso LIKE '%$pesquisar%' LIMIT 50";
         
          $resultado_eventos = mysqli_query($conn, $result_eventos);
         
           echo '<table align="center">';
           echo "<tr> <th colspan='5'>Data</th> </tr>";
           echo "<tr><td class='h2' colspan='5' align='center'>";
           echo date("d/m/Y");
            echo "</td></tr>";
           echo "<tr> <th>Curso</th> <th>Turma</th> <th>Professor</th><th>Sala</th><th>Hora</th></tr>";
           while($rows_eventos = mysqli_fetch_array($resultado_eventos)){   
              echo "<tr><td align='center'>"; 
          echo $rows_eventos['titlecurso'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titleturma'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titleprofessor'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titlesala'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['hora_de'];
          echo "</td></tr>";

           
      echo "</table>";
      ?>
       
      alguém pode me ajudar.
      Grato

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.