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

Agenda Clínica


LuizHolambra

Pergunta

Bom dia, Pessoal.

Tenho um sistema que está funcionando perfeitamente (código abaixo). Mas tenho que fazer uma modificação e não estou conseguindo. Simples(rsrsrs) tem tratamento com tempo diferente, por exemplo: alguns de 20, 30 50 até 90 minutos, faço uma listagem das horas disponíveis e preciso informar que naquele período está ocupado. Já fiz várias tentativas mas não consegui. Será que alguém tem uma solução?

Segue o código atual:

<?php

///////////////////////////////////

$unidade = $_GET['unidade'] ;

$data_n = $_GET["data"];

$dia=substr($data_n,0,2);//$dia=01

$mes=substr($data_n,2,2);//$mes=05

$ano=substr($data_n,4,4);//$ano=2005

//////////////////////////////////////

?>

<div id=content">

<div id="navigation">

<div id="bloco"><img src="images/cadastro.jpg" alt="" width="480" hspace="10" vspace="10" border="0" align="left" />

<div class="texto"><br />

<span class="titulo"><?php echo $_SESSION['nome] ;?></span><br>

<hr color="#990066">

<span class="titulo2">Data: <?php echo $dia."/".$mes."/".$ano ;?><br>Unidade: <?php echo $unidade ;?>.</span>

<span class="titulo3"><center>Selecione o horário de sua preferência disponível para esse dia.</center></span><br />

<table width="450" align="center" border="0" cellspacing="2" cellpadding="0">

<tr style="color:#000;">

<td align="center" width="20%">Hor&aacute;rio</td>

<td align="center" width="50%">Posi&ccedil;&atilde;o</td>

<td align="center" width="30%">Agendar</td>

</tr>

<?php

//$sql = "SELECT horas.id, horas.hora calendario.horario FROM horas INNER JOIN calendario ON horas.hora = calendario.horario ORDER BY horas.id";

//$sql = "SELECT h.hora, c.horario, c.disp FROM horas AS h, calendario AS c WHERE c.horario='0' AND c.disp='0' ORDER BY h.hora";

$sql = "SELECT id,hora FROM horas WHERE disp='0' ORDER BY id";

$limite = mysql_query("$sql");

//////////////////////////////////////////////

while($r = mysql_fetch_array($limite)){

$hora1 = $r['hora'];

$id1 = $r['id'];

?>

<form action=pre_cal.php" method="POST">

<input name="dia" type="hidden" value="<?php echo $dia ?>">

<input name="mes" type="hidden" value="<?php echo $mes ?>">

<input name="ano" type="hidden" value="<?php echo $ano ?>">

<input name="nome" type="hidden" value="<?php echo $_SESSION['nome] ;?>">

<tr>

<td align="center"><?php echo $hora1;?></td>

<td align="center">

<input name="id_hora" type="hidden" value="<?php echo $r['id'] ?>">

<input name=horario" type="hidden" value="<?php echo $r['hora] ?>">

<input name="disp" type="hidden" value="1">

<input name="unidade" type="hidden" value="<?php echo $unidade ?>">

<?php

$sql2 = mysql_query("select dia,mes,ano,horario,id_hora,unidade,tempo from calendario WHERE id_hora LIKE '".$id1."' AND dia ='".$dia."' AND mes = '".$mes."' AND ano = '".$ano."' AND unidade = '".$unidade."'");

//$sql = mysql_query("select horario,dia,mes,ano from calendario");

$mostra0 = mysql_fetch_array($sql2);

if($mostra0['horario'] == $hora1 and $mostra0['unidade'] == $unidade){

echo"<img src=images/48.png width=16 height=16> Ocupado";

//}elseif($mostra0['horario'] <> $hora1){

echo"</td>";

echo"<td align=center></td>";

}else{

echo"<img src=images/02.png width=16 height=16> Livre";

?>

</td>

<td align=center">

<input name="tempo" type="hidden" value="<?php echo $mostra0['tempo] ?>">

<input name="submit" type="image" src="images/bot_ag2.png">

</td>

<?php

}

?>

</tr>

</form>

<?php }?>

</table>

<?php

echo "<center><br />";

echo "<a href=\"logout.php\">Sair do Sistema</a>";

echo "<br />";

echo "<a href=\"java script:history.go(-1)\"><img src=\"images/voltar.png\" width=\"88\" height=\"39\" border=0></a>";

echo "</center>";

?>

</div>

Agradeço antecipadamente.

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

O seu problema é que você não está conseguindo verificar se um horário está ocupado ou livre. Correto ?

Se for isso, da um var_dump nas seguintes variáveis:

$mostra0['horario']
$hora1
$mostra0['unidade']
$unidade

E coloca aqui o resultado.

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

  • 0
O seu problema é que você não está conseguindo verificar se um horário está ocupado ou livre. Correto ?

Se for isso, da um var_dump nas seguintes variáveis:

$mostra0['horario']
$hora1
$mostra0['unidade']
$unidade

E coloca aqui o resultado.

Olá Dedas

Fiz modificações no meu sistema e coloquei tb o que você pediu var_dump

O código ficou assim

<?php

//////////////////////////////////////

$unidade = 'Holambra' ;

$data_n = '11012013';

$dia=substr($data_n,0,2);//$dia=01

$mes=substr($data_n,2,2);//$mes=05

$ano=substr($data_n,4,4);//$ano=2005

//////////////////////////////////////

?>

<div id="content">

<div id="navigation">

<div id="bloco"><img src="images/cadastro.jpg" alt="" width="480" hspace="10" vspace="10" border="0" align="left" />

<div class="texto"><br />

<span class="titulo">&nbsp;</span><br>

<hr color="#990066">

<span class="titulo2">Data: <?php echo $dia."/".$mes."/".$ano ;?><br>Unidade: <?php echo $unidade ;?>.</span>

<span class="titulo3"><center>Selecione o horário de sua preferência disponível para esse dia.</center></span><br />

<table width="450" align="center" border="0" cellspacing="2" cellpadding="0">

<tr style="color:#000;">

<td align="center" width="20%">Hor&aacute;rio</td>

<td align="center" width="50%">Posi&ccedil;&atilde;o</td>

<td align="center" width="30%">Agendar</td>

</tr>

<?php

$sql = "SELECT id,hora FROM horas2 WHERE disp='0' ORDER BY hora";

$limite = mysql_query("$sql");

//////////////////////////////////////////////

$sql2 = mysql_query("select dia,mes,ano,horario,id_hora,unidade,tempo from calendario2 WHERE dia ='".$dia."' AND mes = '".$mes."' AND ano = '".$ano."' AND unidade = '".$unidade."'");

$mostra0 = mysql_fetch_array($sql2);

//////////////////////////////////////////////

while($r = mysql_fetch_array($limite)){

//////////////////////////////////////////////

$hora1 = date("H:i",strtotime("".$r['hora'].""));

$id1 = $r['id'];

$id2 = $mostra0['id_hora'];

//////////////////////////////////////////////

$minuto=$mostra0['tempo'];

$minuto_f=$minuto/30*10;

$hora_final = date("H:i",strtotime("".$hora1." + ".$minuto_f." minutes"));

$hora_lista = date("H:i",strtotime("".$mostra0['horario'].""));

//////////////////////////////////////////////

?>

<form action=pre_cal.php" method="POST">

<input name="dia" type="hidden" value="<?php echo $dia ?>">

<input name="mes" type="hidden" value="<?php echo $mes ?>">

<input name="ano" type="hidden" value="<?php echo $ano ?>">

<input name="nome" type="hidden" value="<?php echo $_SESSION['nome] ;?>">

<input name="id_hora" type="hidden" value="<?php echo $r['id'] ?>">

<input name=horario" type="hidden" value="<?php echo $r['hora] ?>">

<input name="disp" type="hidden" value="1">

<input name="unidade" type="hidden" value="<?php echo $unidade ?>">

<tr>

<td align="center">

<?php

echo $hora1;

var_dump ($hora1);

?>

</td>

<td align="center">

<?php

if($id1 = $id2 and $mostra0['unidade'] == $unidade){

if($hora1 >= $hora_lista){

//echo $minuto_f;

//echo $hora_lista;

var_dump ($mostra0['horario']);

var_dump ($mostra0['unidade']);

var_dump ($unidade);

?>

<img src="images/48.png" width="16" height="16" border="0"> Ocupado!

</td>

<td align=center></td>

<?php

}else{

?>

<img src="images/02.png" width="16" height="16" border="0"> Livre

</td>

<td align="center">

<input name="submit" type="image" src="images/bot_ag2.png">

</td>

<?php

}

}

?>

</tr>

</form>

<?php }?>

</table>

<?php

echo "<center><br />";

echo "<a href=\"logout.php\">Sair do Sistema</a>";

echo "<br />";

echo "<a href=\"java script:history.go(-1)\"><img src=\"images/voltar.png\" width=\"88\" height=\"39\" border=0></a>";

echo "</center>";

?>

</div>

</div>

</div>

</div>

</div>

As imagens dos resultados:

img_sis01.JPG

img_sis02.JPG

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Ok, agora me responde isso: O seu problema é que você não está conseguindo verificar se um horário está ocupado ou livre. Correto ?

Dedas,

Antes de tudo, obrigado por sua atenção, acredito que não tenha sido claro anteriormente, o problema é que aquela lista que aparece é mostrada para o cliente escolher um horário vago, ok, quando fiz o projeto considerei que seriam reservados horários de 30 em 30 minutos, mas não, vários tratamentos tem tempos diferentes de 30 minutos, ou seja, as vezes 40 minutos ou 60 até 90. Pois bem, preciso que quando o cliente escolha o tratamento de 90 minutos, às 15:00 o próximo horário livre seja 16:30, coloquei no bd dos tratamentos uma coluna "tempo" e quando o cliente escolhe um horário grava na tabela "calendario" inclusive o tempo deste tratamento, quando lista novamente(primeira imagem) ai consulta a tabela "calendario" e lista os horários livres de acordo com os cadastros feitos naquele dia (muito importante é diário).

Acho que agora você vai entender melhor o que quero ou preciso.

abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Você ta considerando que cada consulta vai durar 30 minutos, até ai eu entendi. O que eu não entendi é que como você vai saber quanto tempo vai durar a consulta de um determinado paciente ? Pois você precisa saber o tempo de duração da consulta da pessoa para pode atualizar a lista de horários.

Link para o comentário
Compartilhar em outros sites

  • 0
Você ta considerando que cada consulta vai durar 30 minutos, até ai eu entendi. O que eu não entendi é que como você vai saber quanto tempo vai durar a consulta de um determinado paciente ? Pois você precisa saber o tempo de duração da consulta da pessoa para pode atualizar a lista de horários.

Oi dedas.

A clínica é de tratamento estético, todos os tratamentos tem um tempo determinado, por exemplo, Pelling facial, 30 minutos e assim por vai.

abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
A clínica é de tratamento estético, todos os tratamentos tem um tempo determinado, por exemplo, Pelling facial, 30 minutos e assim por vai.

Isso eu entendi também, minha dúvida é onde a pessoa insere qual tratamento ela que fazer. Na minha opnião, o ideal seria a pessoa escolher o tratamento, depois de escolhido ela iria ser direcionado para a página de horários, onde lá ela poderia escolher os horários e como você tem uma média de tempo para cada tratamento, você faria um quadro de horários se baseando no tratamento escolhido.

Por exemplo, se o pelling facial dura em torno de 30 minutos a consulta, a pessoa iria vê um quadro de horários de 30 em 30 minutos, se a pessoa for fazer uma drenagem e o tempo médio de duração é de 60 minutos, ela iria vê um quadro de horário de 60 em 60 minutos. Mas para fazer isso, o ideal seria ter um tempo médio para cada tratamento.

Isso te ajuda ?

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

  • 0
A clínica é de tratamento estético, todos os tratamentos tem um tempo determinado, por exemplo, Pelling facial, 30 minutos e assim por vai.

Isso eu entendi também, minha dúvida é onde a pessoa insere qual tratamento ela que fazer. Na minha opnião, o ideal seria a pessoa escolher o tratamento, depois de escolhido ela iria ser direcionado para a página de horários, onde lá ela poderia escolher os horários e como você tem uma média de tempo para cada tratamento, você faria um quadro de horários se baseando no tratamento escolhido.

Por exemplo, se o pelling facial dura em torno de 30 minutos a consulta, a pessoa iria vê um quadro de horários de 30 em 30 minutos, se a pessoa for fazer uma drenagem e o tempo médio de duração é de 60 minutos, ela iria vê um quadro de horário de 60 em 60 minutos. Mas para fazer isso, o ideal seria ter um tempo médio para cada tratamento.

Isso te ajuda ?

Oi, dedas.

É o seguinte, a sequencia que fiz foi escolha da unidade(Holambra), escolha do dia em um calendário mensal e depois o tratamento, escolhidos esses dados eles são gravados na tabela calendario e quando outro cliente entra no sistema a tela de escolha dos horários será apresentada com os escolhidos anteriormente ocupados.

O que eu preciso saber acompanhando esse raciocínio, como eu somo por exemplo 15:00 mais 90 minutos e apresento na tela os horários: 15:00 15:30 16:00 ocupados.

é isso.

Link para o comentário
Compartilhar em outros sites

  • 0
A clínica é de tratamento estético, todos os tratamentos tem um tempo determinado, por exemplo, Pelling facial, 30 minutos e assim por vai.

Isso eu entendi também, minha dúvida é onde a pessoa insere qual tratamento ela que fazer. Na minha opnião, o ideal seria a pessoa escolher o tratamento, depois de escolhido ela iria ser direcionado para a página de horários, onde lá ela poderia escolher os horários e como você tem uma média de tempo para cada tratamento, você faria um quadro de horários se baseando no tratamento escolhido.

Por exemplo, se o pelling facial dura em torno de 30 minutos a consulta, a pessoa iria vê um quadro de horários de 30 em 30 minutos, se a pessoa for fazer uma drenagem e o tempo médio de duração é de 60 minutos, ela iria vê um quadro de horário de 60 em 60 minutos. Mas para fazer isso, o ideal seria ter um tempo médio para cada tratamento.

Isso te ajuda ?

Oi, dedas.

É o seguinte, a sequencia que fiz foi escolha da unidade(Holambra), escolha do dia em um calendário mensal e depois o tratamento, escolhidos esses dados eles são gravados na tabela calendario e quando outro cliente entra no sistema a tela de escolha dos horários será apresentada com os escolhidos anteriormente ocupados.

O que eu preciso saber acompanhando esse raciocínio, como eu somo por exemplo 15:00 mais 90 minutos e apresento na tela os horários: 15:00 15:30 16:00 ocupados.

é isso.

dedas.

você conseguiu ver se tem um jeito? Se você falar que não, tudo bem, vou tentar montar de outra forma.

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...