Salve,
avrei bisogno di modificare il mio file prenota_mensa.aspx.
La pagina permette ai vari utenti di prenotarsi la colazione,il pranzo e la cena. Tutto questo lo fanno attualmente anche fino alla stessa giornata pero', avrei bisogno di impostare per la data corrente un orario massimo di prenotazione che potrebbe essere le 9 o 9,30.
Qualcuno può aiutarmi grazie.
Vi posto lo script della pagina prenota_mensa.aspx:
Sub riempi_giorni()
Dim conn As New Data.OleDb.OleDbConnection(GetConnectionString("strConn"))
Dim query As String
Dim temp_mensa As Data.OleDb.OleDbDataReader
Dim pren_mensa As Data.OleDb.OleDbDataReader
Dim nr_record As Integer
'cancella i dati precedenti dalla tabella d'appoggio temp_mensa.
conn.Open()
query = "DELETE * FROM temp_mensa WHERE id_dipendente=" & Session.Item("id_dipendente")
Dim cmd As New Data.OleDb.OleDbCommand(query, conn)
temp_mensa = cmd.ExecuteReader
temp_mensa.Close()
Dim data_iniziale, data_finale, data_attiva As Date
Dim x As Short = 0
data_iniziale = CDate(Day(Now) & "/" & Month(Now) & "/" & Year(Now))
data_attiva = DateAdd(DateInterval.Day, 0, data_iniziale)
data_finale = DateAdd(DateInterval.Day, 20, data_attiva)
Label1.Text = "Prenotazione Mensa dal : " & data_attiva & " al : " & DateAdd(DateInterval.Day, 19, data_attiva)
For x = 1 To 20
'scrive nella tabella temp_mensa l'indicazione dei giorni nel campo data
query = "INSERT INTO temp_mensa (id_dipendente, ID, data) VALUES (" & Session.Item("id_dipendente") & "," & x & ", '" & data_attiva & "')"
Dim cmd1 As New Data.OleDb.OleDbCommand(query, conn)
temp_mensa = cmd1.ExecuteReader
data_attiva = DateAdd(DateInterval.Day, 1, data_attiva)
temp_mensa.Close()
Next x
'calcola il numero di prenotazioni esistenti nella tabella generale per l'id_dipendente
query = "SELECT COUNT(*) FROM pren_mensa WHERE id_dipendente=" & Session.Item("id_dipendente") & _
" AND data>=#" & Format(data_iniziale, "MM/dd/yyyy") & "# AND data<=#" & _
Format(data_finale, "MM/dd/yyyy") & "#"
Dim cmd2 As New Data.OleDb.OleDbCommand(query, conn)
nr_record = cmd2.ExecuteScalar
If nr_record > 0 Then
query = "SELECT * FROM pren_mensa WHERE id_dipendente=" & Session.Item("id_dipendente") & _
" AND data>=#" & Format(data_iniziale, "MM/dd/yyyy") & "# AND data<=#" & _
Format(data_finale, "MM/dd/yyyy") & "#"
Dim cmd3 As New Data.OleDb.OleDbCommand(query, conn)
pren_mensa = cmd3.ExecuteReader
'updata nella tabella temporanea le prenotazioni già esistenti
For x = 1 To nr_record
If pren_mensa.Read Then
query = "UPDATE temp_mensa SET colazione =" & pren_mensa("colazione") & ", pranzo=" & pren_mensa("pranzo") & ", cena=" & _
pren_mensa("cena") & " WHERE data=#" & Format(pren_mensa("data"), "MM/dd/yyyy") & "# and id_dipendente=" & Session.Item("id_dipendente")
Dim cmd4 As New Data.OleDb.OleDbCommand(query, conn)
temp_mensa = cmd4.ExecuteReader
temp_mensa.Close()
End If
Next x
pren_mensa.Close()
End If
If Not conn Is Nothing Then
conn.Close()
End If
End Sub
Function doppio_apostrofo(ByVal stringa As String) As String
Dim x As Integer
For x = 1 To Len(stringa$)
If Mid$(stringa$, x, 1) = "'" Then
Return Left$(stringa$, x - 1) & "''" & Right$(stringa$, Len(stringa$) - x)
End If
Next x
Return stringa$
End Function
Function NumToOra(ByVal numero As String) As String
Dim Ora As String
Dim minuti As String
Dim NumToOra2 As String
Ora = CStr(Val(numero) \ 60)
If Len(Ora) = 1 Then
Ora = "0" + Ora
End If
If Len(Ora) = 3 Then
If Left$(Ora, 1) = "0" Then
Ora = Right$(Ora, 2)
End If
End If
minuti = CStr(Val(numero) Mod 60)
NumToOra2 = Ora + ":" + Right$("0" + minuti, 2)
Return NumToOra2
End Function
Modificato da peppecastri il 22 agosto 2012 08.55 -