Tabela de Preços
Preciso fazer uma tabela de preços. ex:
Segunda feira das 12:00:00 até 14:00:00 com o serviço Intenet o Preço é 2,00 a hora
---------------------------------------------------------------------------------------------------
Segunda feira das 12:00:00 até 14:00:00 com o serviço Trabalho o preço é 1,00 a hora
---------------------------------------------------------------------------------------------------
Segunda feira das 12:00:00 até 14:00:00 com o serviço Música o preço é 2,00 a hora
---------------------------------------------------------------------------------------------------
E assim vai...
Eu não estou sabendo como fazer isso, como ficaria a tabela, como vou verificar se já existe na hora de inserir aquela hora do dia do servico com aquele preco.
entende??
É como uma tabela de um sistema de lan house.
Alguem pode me ajudar??
Segunda feira das 12:00:00 até 14:00:00 com o serviço Intenet o Preço é 2,00 a hora
---------------------------------------------------------------------------------------------------
Segunda feira das 12:00:00 até 14:00:00 com o serviço Trabalho o preço é 1,00 a hora
---------------------------------------------------------------------------------------------------
Segunda feira das 12:00:00 até 14:00:00 com o serviço Música o preço é 2,00 a hora
---------------------------------------------------------------------------------------------------
E assim vai...
Eu não estou sabendo como fazer isso, como ficaria a tabela, como vou verificar se já existe na hora de inserir aquela hora do dia do servico com aquele preco.
entende??
É como uma tabela de um sistema de lan house.
Alguem pode me ajudar??
Rudá
Curtidas 0
Respostas
Thomaz_prg
23/01/2006
Sua dúvida é quanto a construção da tabela ou da implementação?
Da tabela:
ID ------> Chave Primária
HORA_INI
HORA_FIM
ID_SERVICO
VALOR
Para verificar a existência, você teria que fazer o seguinte:
Isso verificaria se já existe preco lançado nesse intervalo de tempo. Se existir, será retornado o registro, então, você decide, se pode ou não inserir (mesmo havendo choque de horários para um mesmo serviço).
Da tabela:
ID ------> Chave Primária
HORA_INI
HORA_FIM
ID_SERVICO
VALOR
Para verificar a existência, você teria que fazer o seguinte:
select * from tabela where id_servico = :id_servico and ( (hora_ini <= :hora_ini and hora_fim >= :hora_ini) or (hora_ini <= :hora_fim and hora_fim >= :hora_fim) )
Isso verificaria se já existe preco lançado nesse intervalo de tempo. Se existir, será retornado o registro, então, você decide, se pode ou não inserir (mesmo havendo choque de horários para um mesmo serviço).
GOSTEI 0
Rudá
23/01/2006
A tabela fiz assim:
id
valor
horainicial
horafinal
dia
servico
ai coloquei esses registros como exemplo
[b:c694163d3f]1[/b:c694163d3f] | 1.0 | 12:00:00 | 14:00:00 | 1 | 1
[b:c694163d3f]2[/b:c694163d3f] | 1.5 | 14:00:01 | 16:00:00 | 1 | 1
[b:c694163d3f]3[/b:c694163d3f] | 2.0 | 12:00:00 | 14:00:00 | 1 | 2
[b:c694163d3f]4[/b:c694163d3f] | 2.5 | 14:00:01 | 16:00:00 | 1 | 2
[b:c694163d3f]5[/b:c694163d3f] | 1.0 | 12:00:00 | 14:00:00 | 2 | 1
[b:c694163d3f]6[/b:c694163d3f] | 1.5 | 14:00:01 | 16:00:00 | 2 | 1
[b:c694163d3f]7[/b:c694163d3f] | 2.0 | 12:00:00 | 14:00:00 | 2 | 2
[b:c694163d3f]8[/b:c694163d3f] | 2.5 | 14:00:01 | 16:00:00 | 2 | 2
Coloquei o seu select assim
[b:c694163d3f]SELECT * FROM precos WHERE servico=1 and dia=1 and
((horainicial <= ´13:00:00´ and horafinal >= ´13:00:00´) or (horainicial <= ´14:00:00´ and horafinal >= ´14:00:00´))[/b:c694163d3f]
Ai mostrou o id [b:c694163d3f]1[/b:c694163d3f]
Deu certo o select, muito obrigado pela ajuda.
Agora queria saber como faço para saber as horas que estão disponíveis no dia.
Ainda usando os registros acima, ele teria que ser mostrado assim
[b:c694163d3f]Dia | Serviço | HoraInicial | HoraFinal[/b:c694163d3f]
1 | 1 | 00:00:00 | 11:59:59
1 | 1 | 16:00:01 | 11:59:59
1 | 2 | 00:00:00 | 11:59:59
1 | 2 | 16:00:01 | 11:59:59
2 | 1 | 00:00:00 | 11:59:59
2 | 1 | 16:00:01 | 11:59:59
2 | 2 | 00:00:00 | 11:59:59
2 | 2 | 16:00:01 | 11:59:59
Entendeu o que quiz dizer ai com as horas livres??
id
valor
horainicial
horafinal
dia
servico
ai coloquei esses registros como exemplo
[b:c694163d3f]1[/b:c694163d3f] | 1.0 | 12:00:00 | 14:00:00 | 1 | 1
[b:c694163d3f]2[/b:c694163d3f] | 1.5 | 14:00:01 | 16:00:00 | 1 | 1
[b:c694163d3f]3[/b:c694163d3f] | 2.0 | 12:00:00 | 14:00:00 | 1 | 2
[b:c694163d3f]4[/b:c694163d3f] | 2.5 | 14:00:01 | 16:00:00 | 1 | 2
[b:c694163d3f]5[/b:c694163d3f] | 1.0 | 12:00:00 | 14:00:00 | 2 | 1
[b:c694163d3f]6[/b:c694163d3f] | 1.5 | 14:00:01 | 16:00:00 | 2 | 1
[b:c694163d3f]7[/b:c694163d3f] | 2.0 | 12:00:00 | 14:00:00 | 2 | 2
[b:c694163d3f]8[/b:c694163d3f] | 2.5 | 14:00:01 | 16:00:00 | 2 | 2
Coloquei o seu select assim
[b:c694163d3f]SELECT * FROM precos WHERE servico=1 and dia=1 and
((horainicial <= ´13:00:00´ and horafinal >= ´13:00:00´) or (horainicial <= ´14:00:00´ and horafinal >= ´14:00:00´))[/b:c694163d3f]
Ai mostrou o id [b:c694163d3f]1[/b:c694163d3f]
Deu certo o select, muito obrigado pela ajuda.
Agora queria saber como faço para saber as horas que estão disponíveis no dia.
Ainda usando os registros acima, ele teria que ser mostrado assim
[b:c694163d3f]Dia | Serviço | HoraInicial | HoraFinal[/b:c694163d3f]
1 | 1 | 00:00:00 | 11:59:59
1 | 1 | 16:00:01 | 11:59:59
1 | 2 | 00:00:00 | 11:59:59
1 | 2 | 16:00:01 | 11:59:59
2 | 1 | 00:00:00 | 11:59:59
2 | 1 | 16:00:01 | 11:59:59
2 | 2 | 00:00:00 | 11:59:59
2 | 2 | 16:00:01 | 11:59:59
Entendeu o que quiz dizer ai com as horas livres??
GOSTEI 0
Thomaz_prg
23/01/2006
Entendi. O problema é que apenas com um comando SQL creio não ser possível. Porém com uma SP é sim. Qual o banco está usando??
GOSTEI 0
Rudá
23/01/2006
[b:5499258f95]Mysql[/b:5499258f95]
GOSTEI 0