 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
leo_bruno Profissional

Registrado: Sexta-Feira, 16 de Abril de 2010 Mensagens: 666
|
Enviada: Qua Mai 05, 2010 12:01 pm Assunto: (Resolvido}Ajuda com criacao de agendamento de horarios |
|
|
Olá pessoal.
Estou com um problema que julgo ser dificil de resolver.
Trata-se de agendamento de horarios de atendimentos.
Preciso criar parametros customizaveis para agendamento de horarios, por funcionario.
Exemplo ....
O funcionario x inicia o atendimento da parte da manha as 08:00 e termina as 12:00, a duracao para cada atendimento é de 30 minutos.
na parte da tarde ele inicia o atendimento as 14:00 e termina as 17:00, porem a duracao é de 20 minutos.
Ja o funcionario y na parte da manha comeca as 10:00 e termina as 13:00, porem a duracao é de 15 minutos.
Tendo configurado estes parametros, deverei montar um grid pra cada funcionario, contendo todos os horarios. Ao agendar um horario, ele devera ficar marcado no grid com o nome do cliente agendado, e o tipo de servico a ser executado. O grid devera conter tanto os marcados , quanto os disponiveis, pra facilitar a marcacao de horarios pela telefonista.
Eu imaginei 2 maneiras pra isso, 1 delas envolveria o insert na tabela de agendamentos, no momento da configuracao da agenda, contendo 1 linha pra cada atendimento possivel, pra cada atendente possivel.
Apesar deste modelo ser facil, pois apenas envolve um insert e um DBGrid, nao é um modelo muito bom, pela grande quantidade de linhas geradas no banco.
Do outro modo que imaginei, eu pegaria da tabela de configuracao da agenda, 3 campos em time, sendo primeiro campo inicio do periodo, o segundo campo o fim do periodo e o terceiro campo, o intervalo entre um atendimento e outro. Os outros campos, sao a data inicial e final e o cod_atendente. Com estes dados, eu faria um while somando a duracao à hora inicial ate que a soma chegue a hora final menos a duracao.
Assim, apenas irei gravar no banco as linhas contendo atendimentos agendados, apesar de o grid tb mostrar os vagos, visto que os horarios disponiveis foram populados em tempo de execucao.
Ate aqui é facil e ja esta implementado.
O que preciso agora, é conseguir que o valor hora do atendimento (primeira coluna) que foi gerado em tempo de execucao, seja passado pra ADOQuery q grava no banco, junto com o restante dos dados que estao no dataset. (data, atendente, cliente, etc) e tambem o inverso,
ou seja, eu conseguir relacionar que o atendimento gravado no banco por exemplo com o horario '09:00:00' corresponde à linha que contem a primeira coluna com o mesmo valor.
Alguem pode ajudar ?
Editado pela última vez por leo_bruno em Dom Set 26, 2010 10:30 am, num total de 2 vezes |
|
| Voltar ao Topo |
|
 |
fitlbanger Aprendiz


Registrado: Quarta-Feira, 6 de Junho de 2007 Mensagens: 232 Localização: Cuiabá-MT
|
Enviada: Qua Mai 05, 2010 1:03 pm Assunto: |
|
|
Tente usar um StringGrid, ai você deixa fixada quantas colunas e linhas necessitar.
Só que você vai ter que alimentar manualmente as linhas, pois o StringGrid não é um componente DB.
Você terá mais informações sobre o StringGrid em:
http://www.edudelphipage.com.br/dicas_titulos.php?categoria=24
Espero ter ajudado.
Att.
Carlos Fitl. _________________ Acredite em você, pois podemos conquistar tudo desde que tenha interesse e dedicação. |
|
| Voltar ao Topo |
|
 |
leo_bruno Profissional

Registrado: Sexta-Feira, 16 de Abril de 2010 Mensagens: 666
|
Enviada: Sáb Mai 08, 2010 7:24 pm Assunto: |
|
|
| fitlbanger escreveu: | Tente usar um StringGrid, ai você deixa fixada quantas colunas e linhas necessitar.
Só que você vai ter que alimentar manualmente as linhas, pois o StringGrid não é um componente DB.
Você terá mais informações sobre o StringGrid em:
http://www.edudelphipage.com.br/dicas_titulos.php?categoria=24
Espero ter ajudado.
Att.
Carlos Fitl. |
Olá amigo, me desculpe a demora pra agradecer, mas estava em viagem esta semana.
Bom, cheguei e estou tentando implementar a agenda.
Estou fazendo como string grid.
Vou tentar detalhar ao maximo o funcionamento.
Seguinte:
Pra este formulario eu estou usando principalmente, 2 tabelas, 1 delas contem as regras dos horarios que estao disponiveis pra ser agendados pra cada atendente.
a outra, é onde eu gravo os agendamentos, contendo a hora, data , codigo do cliente e do atendente.
na tabela onde eu parametrizo a agenda, os dados sao :
codigo do atendente, sequencia da agenda, horario inicial, horario final, duracao do atendimento.
No formulario de atendimentos, eu coloquei um combo pra selecionar o atendente e um month calendar pra selecionar a data.
Coloquei o string grid, e pus no evento onchange do combo, o adoquery pra ele buscar os dados no cadastro de agenda, amarrando pelo codigo do atendente.
Os horarios, ele esta colocando na primeira coluna do grid. O numero de linhas, ele esta contando o intervalo de atendimentos, e atribuindo a quantidade correta de linhas a serem montadas.
Esta parte esta funcionando beleza.
Agora eu preciso ligar a tabela que conterá os agendamentos, com o grid.
A data, irei passar pra ADOQueryAtendimento, o valor que está no calendar.
Como o atendente ja foi selecionado pra gerar os horarios, este dado ja está no dataset, entao é so passar pra ADOQueryAtendimento.
O que eu preciso fazer agora e não sei como :
1 - Ligar o resultado da ADOQueryAtendimento, com a coluna que tem o horario, usando os horarios que estao na query para alinhar as ROWS.
2 - Quando isso tiver pronto, aí que eu vou implementar a parte de gravar o agendamento no banco, outra coisa que também nao sei como fazer.
Visto que o código que tenho pronto, é só o calculo dos horarios sendo buscados em outra tabela, nao vejo necessidade de coloca-lo aqui. Mas se voce achar necessário eu coloco.
Eu fui no link que vc me mandou, mas a informacao que eu preciso, nao tem la.
Vc por acaso nao teria mais algum material ?
Desde já agradeço a sua colaboração. |
|
| Voltar ao Topo |
|
 |
fitlbanger Aprendiz


Registrado: Quarta-Feira, 6 de Junho de 2007 Mensagens: 232 Localização: Cuiabá-MT
|
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|