Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi, pessoal... estou com um problema em asp... e não consigo resolver....
É um swf que faz reservas de um hotel... quando se clica em um feriado, tem qu eaparcer a frase para a pessoa ligar... até aí esta tudo ok.. o problema.. é que se a pessoa clica no feriado de 7 de setembro a 10 de setembro dá problema... e isto acontece em alguns outros números... mas não entendo porque..pois o código é o mesmo.... a única coisa que tenho quase certeza é que o erro esta no asp...
Se alguém puder me ajudar vou ficar muito grata mesmo... obrigada desde já..
Dani
Quote: AH.. é que eu esqueci de falar que eu coloquei que para os meses de fevereiro, Julho e dezembro inteiros não darem para fazer reservas.. feriado tb não pode... esta certa até aí.. mas eu vi agora.. que não dá para fazer reservas em nenhum mês.. quando clica no dia 9 ao 10 de qualquer mês.... ou 8 ao 10....
Por que isto acontece?
<%@ Language="VBScript" LCID=1046%><% OPTION EXPLICIT response.buffer = True response.Expires = 0 Server.ScriptTimeOut = 3600 Response.CacheControl = "Private" DIM con_Obj, dados 'Banco de dados DIM tipos_suite(2), data_entrada, data_saida, diaria, qtd_adultos, qtd_criancas 'Parametros de entrada diaria = 0 tipos_suite(0) = "DBL_LUX" tipos_suite(1) = "DBL_STD" data_entrada = Request.QueryString("data_entrada") data_saida = Request.QueryString("data_saida") qtd_criancas = Request.QueryString("qtd_criancas") qtd_adultos = Request.QueryString("qtd_adultos") - 2 IF qtd_adultos < 0 THEN qtd_adultos = 0 %> <!--#include file="DB_OpenReservas.inc" --> <% 'Verifica se as datas selecionados pelo usuário não estão interseccionadas com datas reservadas p/ pacotes DIM datas, data_temp, reservado_pacote, diferenca_datas, pacote_fechado reservado_pacote = False pacote_fechado = True diferenca_datas = DateDiff("d", data_entrada, data_saida ) SET datas = con_Obj.execute("SELECT data_inicio, data_termino FROM tb_Pacotes") IF NOT datas.EOF THEN DO WHILE NOT datas.EOF data_temp = datas("data_inicio") DO WHILE data_temp <= datas("data_termino") IF DateDiff("d", Day( data_entrada ) & "/" & Month( data_entrada ) & "/2006", data_temp ) <= diferenca_datas AND DateDiff("d", Day( data_entrada ) & "/" & Month( data_entrada ) & "/2006", data_temp ) >=0 THEN reservado_pacote = True EXIT DO END IF data_temp = DateAdd("d", 1, data_temp ) LOOP IF reservado_pacote = true THEN EXIT DO ELSE datas.MoveNext END IF LOOP SET datas = Nothing data_temp = Empty diferenca_datas = Empty END IF 'Busca os valores das diarias (correspondentes aos parametros) no banco de dados e soma os resultados SUB calcula_diarias (query, dias) SET dados = con_Obj.execute( query ) IF NOT dados.EOF THEN diaria = diaria + ( ( dados( tipos_suite( Request.QueryString("tipo_suite") ) ) + ( qtd_adultos dados("CE_ADL") ) + ( qtd_criancas dados("CE_CHD") ) ) * dias ) END IF SET dados = Nothing END SUB 'Verifica se as datas escolhidas "fecham" algum pacote IF reservado_pacote = True THEN' calcula_diarias "SELECT tb1.descricao_pacote, tb1.diarias, tb2.DBL_LUX, tb2.DBL_STD, tb2.CE_ADL, tb2.CE_CHD FROM TB_Pacotes tb1 LEFT JOIN TB_Diarias tb2 ON tb1.id_pacote = tb2.id_pacote WHERE tb1.data_inicio = #" & Month( data_entrada ) & "/" & Day ( data_entrada ) & "/2005" & "# AND tb1.data_termino = #" & Month( data_saida ) & "/" & Day ( data_saida ) & "/2005" & "# AND tb2.codigo_pensao = " & Request.QueryString("tipo_pensao"), 1' IF Int( diaria ) >= 1 THEN ' pacote_fechado = True' ELSE pacote_fechado = False' END IF ELSE DIM i, temporada, final_semana, alta_temporada, soma 'Calculo das diarias alta_temporada = 0 'Calculo dos valoes das diárias "simples" ( todas menos os pacotes especiais ) FOR i = 0 TO DateDiff("d", data_entrada, data_saida ) - 1 'Checa se o dia é FINAL DE SEMANA SELECT CASE WeekDay( DateAdd("d", i, data_entrada ) ) CASE 6, 7 final_semana = 2 CASE ELSE final_semana = 1 END SELECT 'Checa em qual temporada a data se encaixa ( Baixa, Média ou Alta ) SELECT CASE Month( DateAdd("d", i, data_entrada ) ) CASE 1, 2, 3, 4, 8, 9, 10, 11, 12 soma = True temporada = 1 CASE 5, 6 soma = True temporada = 2 CASE 7 'Esta variavel sera usada na query de soma das diarias equivalentes a alta temporada alta_temporada = alta_temporada + 1 END SELECT 'Condição usada p/ separar a soma de baixa e media temporada da alta temporada. IF soma = True THEN calcula_diarias "SELECT DBL_LUX, DBL_STD, CE_ADL, CE_CHD FROM TB_Diarias WHERE id_pacote = 0 AND codigo_pensao= " & Request.QueryString("tipo_pensao") & " AND codigo_temporada = " & temporada & " AND final_semana = " & final_semana , 1 END IF soma = False NEXT 'Calculo dos valoes das diárias em ALTA TEMPORADA calcula_diarias "SELECT TOP 1 DBL_LUX, DBL_STD, CE_ADL, CE_CHD FROM TB_Diarias WHERE codigo_pensao= " & Request.QueryString("tipo_pensao") & " AND final_semana = 0 AND diarias_alta_temporada <=" & alta_temporada & " ORDER BY diarias_alta_temporada DESC " , alta_temporada END IF 'Caso a data de entrada e de saída contenham APENAS 1 dia de Alta Temporada IF alta_temporada = 1 THEN response.Write("aviso=A data selecionada contém somente 1 dia de alta temporada") ' Caso as datas preenchidas não "fechem" um pacote completo ELSEIF pacote_fechado = False OR ( Month(data_entrada) = "6" AND Month(data_saida) = "7") OR ( Month(data_entrada) = "7" AND Month(data_saida) = "8") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") 'pacote de fevereiro ELSEIF pacote_fechado = False OR ( Month(data_entrada) = "2" AND Month(data_saida) = "2") THEN response.Write("aviso=julho") 'pacote de julho ELSEIF pacote_fechado = False OR ( Month(data_entrada) = "7" AND Month(data_saida) = "7") THEN response.Write("aviso=julho") 'pacote de dezembro ELSEIF pacote_fechado = False OR ( Month(data_entrada) = "12" AND Month(data_saida) = "12") THEN response.Write("aviso=julho") 'pacote de abril ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "13" AND Month(data_entrada) = "4") OR ( Day(data_saida) = "13" AND Month(data_saida) = "4") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "14" AND Month(data_entrada) = "4") OR ( Day(data_saida) = "14" AND Month(data_saida) = "4") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "15" AND Month(data_entrada) = "4") OR ( Day(data_saida) = "15" AND Month(data_saida) = "4") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "16" AND Month(data_entrada) = "4") OR ( Day(data_saida) = "16" AND Month(data_saida) = "6") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "20" AND Month(data_entrada) = "4") OR ( Day(data_saida) = "20" AND Month(data_saida) = "4") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "21" AND Month(data_entrada) = "4") OR ( Day(data_saida) = "21" AND Month(data_saida) = "4") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "22" AND Month(data_entrada) = "4") OR ( Day(data_saida) = "22" AND Month(data_saida) = "4") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "23" AND Month(data_entrada) = "4") OR ( Day(data_saida) = "23" AND Month(data_saida) = "4") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") 'pacote de junho ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "14" AND Month(data_entrada) = "6") OR ( Day(data_saida) = "14" AND Month(data_saida) = "6") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "15" AND Month(data_entrada) = "6") OR ( Day(data_saida) = "15" AND Month(data_saida) = "6") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "16" AND Month(data_entrada) = "6") OR ( Day(data_saida) = "16" AND Month(data_saida) = "6") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "17" AND Month(data_entrada) = "6") OR ( Day(data_saida) = "17" AND Month(data_saida) = "6") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "18" AND Month(data_entrada) = "6") OR ( Day(data_saida) = "18" AND Month(data_saida) = "6") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") 'pacote de setembro ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "6" AND Month(data_entrada) = "9") OR ( Day(data_saida) = "6" AND Month(data_saida) = "9") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "7" AND Month(data_entrada) = "9") OR ( Day(data_saida) = "7" AND Month(data_saida) = "9") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "8" AND Month(data_entrada) = "9") OR ( Day(data_saida) = "8" AND Month(data_saida) = "9") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "9" AND Month(data_entrada) = "9") OR ( Day(data_saida) = "9" AND Month(data_saida) = "9") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "10" AND Month(data_entrada) = "9") OR ( Day(data_saida) = "10" AND Month(data_saida) = "9") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.")'pacote de outubro ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "11" AND Month(data_entrada) = "10") OR ( Day(data_saida) = "11" AND Month(data_saida) = "10") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "12" AND Month(data_entrada) = "10") OR ( Day(data_saida) = "12" AND Month(data_saida) = "10") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "13" AND Month(data_entrada) = "10") OR ( Day(data_saida) = "13" AND Month(data_saida) = "10") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "14" AND Month(data_entrada) = "10") OR ( Day(data_saida) = "14" AND Month(data_saida) = "10") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "15" AND Month(data_entrada) = "10") OR ( Day(data_saida) = "15" AND Month(data_saida) = "10") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") 'pacote de novembro ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "1" AND Month(data_entrada) = "11") OR ( Day(data_saida) = "1" AND Month(data_saida) = "11") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "2" AND Month(data_entrada) = "11") OR ( Day(data_saida) = "2" AND Month(data_saida) = "11") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "3" AND Month(data_entrada) = "11") OR ( Day(data_saida) = "3" AND Month(data_saida) = "11") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "4" AND Month(data_entrada) = "11") OR ( Day(data_saida) = "4" AND Month(data_saida) = "11") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") ELSEIF pacote_fechado = False OR ( Day(data_entrada) = "5" AND Month(data_entrada) = "11") OR ( Day(data_saida) = "5" AND Month(data_saida) = "11") THEN response.Write("aviso=A data selecionada esta em intersecção com um pacote.") 'Mostra o valor das diárias ao usuário ELSE response.Write("resultado=" & FormatNumber(diaria,2)) END IF con_Obj.Close%>
Carregando comentários...