Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Argos

Calendário - Coisa estranha...

Recommended Posts

Boa tarde!

 

Coloquei um calendário em asp em um site que desenvolvi, e hoje o cliente me informou que há um problema estranho:

Há uma administração por trás do site. Lá meu cliente coloca um dia, mês e ano e o nome do cliente dele que quer reservar um espaço que ele disponibiliza.

No site, o calendário aparece com o nome da pessoa que reservou o espaço no dia cadastrado. Acontece que todos os dias do ano, até onde vi, estão cadastrando normalmente..menos o intervalo de 20 a 31 de julho!

Tudo cadastrado nesse intervalo não aparece no site, apesar de constar na administração normalmente.

Segue o código:

<%
Session.LCID = 1046
'Option Explicit

set my_conn= Server.CreateObject("ADODB.Connection")
my_Conn.Open MM_conexao_STRING

Dim dtToday 
dtToday = Date()

Dim dtCurViewMonth ' First day of the currently viewed month
Dim dtCurViewDay ' Current day of the currently viewed month
Dim frmDate ' Date submitted by form

' if the GO button was used, build the date from the month and year

If InStr(1, Request.Form, "subGO", 1) > 0  then
	if Request.Form("CURDATE_month") = "" then
		tmpMonth = month(now())
	else
		tmpMonth = Request.Form("CURDATE_month")
	End If
	
	if Request.Form("CURDATE_year") = "" then
		tmpyear = year(now())
	else
		tmpyear = Request.Form("CURDATE_year")
	End If
		
	tmpDate = "1 " & tmpMonth & " 1999"
	
	mnth = Month(tmpDate)
	frmDate = DateSerial(tmpyear, mnth, 1)
Else

	frmDate = Request.Form("CURDATE")
	
end if

if Request("view_date") <> "" then 
	frmDate= DateSerial(year(Request("view_date")), month(Request("view_date")), 1)
end if

%>


<% REM This section defines functions to be used later on. %>
<% REM This sets the Previous Sunday and the Current Month %>
<% 

'--------------------------------------------------
   Function DtPrevSunday(ByVal dt)
      Do While WeekDay(dt) > vbSunday
         dt = DateAdd("d", -1, dt)
      Loop
   DtPrevSunday = dt
   End Function
'--------------------------------------------------
%>

<%REM Set current view month from posted CURDATE,  or
' the current date as appropriate.

' if posted from the form
' if prev button was hit on the form
   If InStr(1, Request.Form, "subPrev", 1) > 0 Then
      dtCurViewMonth = DateAdd("m", -1, frmDate)
' if next button was hit on the form
   ElseIf InStr(1, Request.Form, "subNext", 1) > 0 Then
      dtCurViewMonth = DateAdd("m", 1, frmDate)
' anyother time
      Else
' date add in text box
         If InStr(1, Request.Form, "subGO", 1) > 0 then
			dtCurViewMonth = frmDate
		 Else
			if Request("view_date") <> "" then 
				dtCurviewMonth = frmDate
			else
            dtCurViewMonth = DateSerial(Year(dtToday), Month(dtToday), 1)
            End If
         End If
   End If
%>

<% REM --------BEGINNING OF DRAW CALENDAR SECTION-------- %>
<% REM This section executes the event query and draws a matching calendar. %>
<%
   Dim iDay, iWeek, sFontColor, dictDte(31,2), intCount
   strSql = "SELECT * FROM calendario WHERE month(dte)= " & month(dtCurViewMonth) & " and year(dte) = " & year(dtCurViewMonth) & " order by dte"
   
   set rs = my_conn.Execute (StrSql)
   
   intCount= 0
   
   ' populate array with days of month
   on Error resume next
   
  
   do until rs.EOF
  
   if intCount > 31 then exit do
   if Day(rs("dte")) = intCount + 1 then 
		dictDte(intCount, 1) = rs("Cliente")
		rs.Movenext
	Else 
		dictDte(intCount, 1) = " "
	End If
	dictDte(intCount, 2) = intCount + 1
	intCount = intCount + 1
   loop
  
%>
<html>
   <form NAME="fmNextPrev" ACTION="calendario.asp" METHOD="POST">
       <table CELLPADDING="0" CELLSPACING="0" WIDTH="95%" BORDER="2" BGCOLOR="#ffffff" BORDERCOLORDARK="#ffffff" BORDERCOLORLIGHT="#FFFFFF">
          <tr VALIGN="MIDDLE" ALIGN="CENTER">
             <td COLSPAN="7">
             <table WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" bgcolor="#000000">
                <tr VALIGN="MIDDLE" ALIGN="CENTER">
                   <td WIDTH="30%" ALIGN="RIGHT">
                      <input TYPE="IMAGE" NAME="subPrev" SRC="imagens/Left.gif" BORDER="0" WIDTH="18" HEIGHT="20" HSPACE="0" VSPACE="0">
                   </td>
                   <td WIDTH="40%">
                      <font FACE="Arial" COLOR="#ffffff">
                      <b><%=MonthName(Month(dtCurViewMonth)) & " de " & Year(dtCurViewMonth)%></b>
                     </font>
                   </td>
                   <td WIDTH="30%" ALIGN="LEFT">
                      <input TYPE="IMAGE" NAME="subNext" SRC="imagens/Right.gif" BORDER="0" WIDTH="18" HEIGHT="20" HSPACE="0" VSPACE="0">
                   </td>
                </tr>
             </table>
             </td>
          </tr>

          <tr VALIGN="TOP" ALIGN="CENTER" BGCOLOR="#ffffff">

          <% For iDay = vbSunday To vbSaturday %>
             <th WIDTH="14%" bgcolor="#F7CB00"><font FACE="Arial" SIZE="-2" COLOR="#000000"><%=WeekDayName(iDay)%></font></th>
          <%Next %>

         </tr>

<%
   dtCurViewDay = DtPrevSunday(dtCurViewMonth)
  
   For iWeek = 0 To 5
      Response.Write "<TR VALIGN=center>" & vbCrLf

Dim sBGCOLOR 
sBGCOLOR = "#000000"


For iDay = 0 To 6
sBGCOLOR = "#000000"

If Month(dtCurViewDay) = Month(dtCurViewMonth) Then
 If dtCurViewDay = dtToday Then sBGCOLOR = "#777777"
else
 sBGCOLOR = "#ffffff"

End If
Response.Write "<TD HEIGHT=50 bgcolor='" & sBGCOLOR & "' >"
         
  	
   If Month(dtCurViewDay) = Month(dtCurViewMonth) Then
		If dtCurViewDay = dtToday Then
               sFontColor = "#ffffff"

            Else
               sFontColor = "#ffffff"
            End If
      
         '---- Write day of month
            Response.Write "<FONT FACE=""Arial"" SIZE=""-1"" COLOR=""" & sFontColor & """ ><B>"
            Response.Write ""  & Day(dtCurViewDay) & "</B><br>" & dictDte(Day(dtCurViewDay)- 1, 1) & "</FONT><BR>"
         '---Else
            '---Response.Write " "
         End If

         Response.Write "</TD>" & vbCrLf
         dtCurViewDay = DateAdd("d", 1, dtCurViewDay)
      Next
      Response.Write "</TR>" & vbCrLf
   Next
%>
<%REM --------END OF DRAW CALENDAR SECTION-------- 

my_conn.Close
set my_conn = nothing
%>
</table>
<select name="CURDATE_month">
  <option value="<%=monthName(month(dtCurViewMonth))%>" selected><%=monthName(month(dtCurViewMonth))%>
  <option value="Janeiro">Janeiro
  <option value="Fevereiro">Fevereiro
  <option value="Março">Março
  <option value="Abril">Abril
  <option value="Maio">Maio
  <option value="Junho">Junho
  <option value="Julho">Julho
  <option value="Agosto">Agosto
  <option value="Setembro">Setembro
  <option value="Outubro">Outubro
  <option value="Novembro">Novembro
  <option value="Dezembro">Dezembro
</select>

<input TYPE="text" NAME="CURDATE_YEAR" VALUE="<%=year(dtCurViewMonth)%>" size="6">
<br />
<br>
<input type="hidden" Name="CURDATE" Value="<%=dtCurViewMonth%>">
<input type="submit" value="Procurar" name="subGO">
</form>

Desde já mto obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, se kiser , tenho um calendario, onde você faz agendamentos etc, muito bom, sempre disponibilizo para os users, se kiser me manda uma MP...

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou no aguardo, esse código é ótimo para fins didático e sempre coloco ele nos clientes...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpem minha ignorância...mas há outra forma de mandar MP que não clicando no "Enviar Mensagem" no envelope debaixo da imagem, ou clicando em Email lá no perfil? Eu já mandei alguns mas não obtive resposta...

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já fez testes com outros meses que possuem 31 dias?

 

Sobre enviar a MP, é só ir no painel de controles, criar um nova mensagem, informar o nome do membro e enviar.

 

Obs. aqui no Laboratório de Scripts tem vários exemplos de calendários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mês de agosto está com reservas normais... dias 22, 23, 29 e 30 reservados...incluí mais alguns e está ok. Já o mês de setembro ocorre a msm coisa..do dia 21 pra frente não reserva. O resto dos meses está td normal...

Q particularidade tem os meses (os n°s) 7 e 9?

Compartilhar este post


Link para o post
Compartilhar em outros sites

porfavor confirme via MP, se ecebeu o arquivo, e existe até uma classe para calendario, muito boa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A principio são impares. Verifique se há outro número impar com o mesmo erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ambos os meses tem 31, você reparou se aconte com os k tem 31 dias...

aconselho você a pegar akele code e dar uma olhada, verifique no seu code, se esta com alguma

reserva/evento ja agendado...

Compartilhar este post


Link para o post
Compartilhar em outros sites
xan, só corrigindo, mês 9 (setembro), tem 30 dias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então..o hargon já havia levantado essa questão dos meses com 31 dias...mas fiz testes nos outros meses e estão ok.. Vou olhar pela milézima primeira vez o código...hahahaha Já procurei também duas reservas na mesma data, mas não é esse o problema..

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, correto meu amigo hargon, vi outro mesm hehehe

porem, analise se você nao tem eventos ,talvez pré-agendado, isso é estranho mesmo...

analise ele corretamente, sugiro até você fazer um teste de mesa, pois alguma coisa tem...

faça alguns testes com o k lhe passei, irá ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, kker coisa dá um alô...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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