Torna al Thread
Private Sub SaveRecordFile(ByVal str_server_path As String)
Dim codprov, codcom, codalb, codcat, codnaz, codprovMov, codgruppo, partito, camdisp, camocc, narrivi, npartenze As Integer
Dim dataArrivo, dataPartenza As Date
Dim nschedina As String
Dim contatore_righe As Integer = 1
Dim fromfile As Date = "1900-01-01"
Dim tofile As Date = "1900-01-01"
Dim oCon As SqlConnection = Nothing
Call clsConnessione.bConnessione(oCon)
Dim oDr As SqlDataReader
Dim oCom As New SqlCommand
oCom.CommandTimeout = 360
oCom.Connection = oCon
Dim Codice_ALB As Integer = 0
Dim Codice_Comune As Integer = 0
Dim Codice_Provincia As Integer = 0
Dim Codice_Nazione As Integer = 0
Dim Residenza_Ospite As Integer = 0
Dim Provincia_Ospite As Integer = 0
Dim Regione_Ospite As Integer = 0
Dim PROV_Ospite As String = ""
Dim REG_Ospite As String = ""
Dim Cod_PROV, Cod_COM, Cod_ALB As String
Dim nScheda As Integer = 0
Dim intCodici As Integer
If FileUpload1.HasFile Then
REM RICAVO IL VALORE MASSIMO DELLA COLONNA CODICE_SCHEDA DELLA TABELLA ALLOGGIATI
Try
Dim conString = ConfigurationManager.ConnectionStrings("DB_GESTIONE_ALBERGHI")
Dim strConnString As String = conString.ConnectionString
Using db As New SqlConnection(strConnString)
db.Open()
Using sqlcmd As New SqlCommand("Max_Codice_Scheda_Alloggiati", db)
sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.Parameters.AddWithValue("@codalbergo", SqlDbType.Int).Value = codice_albergo
contatore_righe = Convert.ToInt32(sqlcmd.ExecuteScalar())
End Using
End Using
Catch ex As SqlException
prompt = New ImpromptuPrompt
prompt.Options.Buttons.Add("Chiudi", "ok")
prompt.Options.Top = 350
prompt.Options.PromptSpeed = "slow"
prompt.Options.Show = "show"
prompt.Message = "Attenzione: " & Chr(10) & ex.Message
ImpromptuHelper.ShowPrompt(prompt)
Return
Catch ex As Exception
prompt = New ImpromptuPrompt
prompt.Options.Buttons.Add("Chiudi", "ok")
prompt.Options.Top = 350
prompt.Options.PromptSpeed = "slow"
prompt.Options.Show = "show"
prompt.Message = "Attenzione: " & Chr(10) & ex.Message
ImpromptuHelper.ShowPrompt(prompt)
Return
End Try
REM-----------------------------------------------------------------------------------
' Dim myFile As HttpPostedFile
' myFile = FileUpload1.PostedFile
Dim VarAgg As Integer = 1
Dim flag_Albergo As Boolean = False
contatore_righe += 1
Try
Using sr As New StreamReader(str_server_path)
Dim line As String
Dim xUtente As String = ""
Do
line = sr.ReadLine()
If Not (line Is Nothing) Then
If line.Substring(22, 5) = "NNNNN" Then
Cod_PROV = line.Substring(0, 3) : Cod_COM = line.Substring(3, 3) : Cod_ALB = line.Substring(6, 3)
codcat = CInt(line.Substring(9, 2)) : dataArrivo = CDate(line.Substring(11, 10))
camocc = CInt(line.Substring(27, 5))
Else
Cod_PROV = line.Substring(0, 3) : Cod_COM = line.Substring(3, 3) : Cod_ALB = line.Substring(6, 3)
codcat = CInt(line.Substring(9, 2)) : dataArrivo = CDate(line.Substring(11, 10))
codprovMov = CInt(line.Substring(22, 5))
narrivi = CInt(line.Substring(27, 5))
npartenze = CInt(line.Substring(32, 5))
'RICAVO LE INFO DELL'ALBERGO SOLO UNA VOLTA
If Not flag_Albergo Then
xUtente = Cod_PROV & Cod_COM & "!_%"
oCom.CommandText = "select * from tab_alberghi where Utente LIKE '" & xUtente & Cod_ALB & "' ESCAPE '!';"
oDr = oCom.ExecuteReader()
If oDr.HasRows Then
oDr.Read()
Codice_ALB = Val(oDr("Codice") & "")
Codice_Comune = Val(oDr("Comune_Codice") & "")
Codice_Provincia = Val(oDr("Provincia_Codice") & "")
camdisp = Val(oDr("Camere_Disponibili") & "")
End If
oDr.Close()
flag_Albergo = True
End If
If codice_albergo <> Codice_ALB Then
prompt = New ImpromptuPrompt
prompt.Options.Buttons.Add("Chiudi", "ok")
prompt.Options.Top = 350
prompt.Options.PromptSpeed = "slow"
prompt.Options.Show = "show"
prompt.Message = "<p>Impossibile Importare file di altro Albergo!</p>"
ImpromptuHelper.ShowPrompt(prompt)
Exit Sub
End If
'RICAVO LE INFO DELLA PROVINCIA DELL'OSPITE
oCom.CommandText = "select * from tab_provincie where codice_nice=" & codprovMov
oDr = oCom.ExecuteReader()
If oDr.HasRows Then
oDr.Read()
Provincia_Ospite = Val(oDr("Codice") & "")
PROV_Ospite = oDr("Descrizione")
Regione_Ospite = Val(oDr("Codice_Regione") & "")
End If
oDr.Close()
'SE NON E' ITALIANO, RICAVO LE INFO DELLA NAZIONE DELL'OSPITE
If Provincia_Ospite = 0 Then
oCom.CommandText = "select * from tab_Regioni_Nazioni where codice_nice=" & codprovMov
oDr = oCom.ExecuteReader()
If oDr.HasRows Then
oDr.Read()
Regione_Ospite = Val(oDr("Codice") & "")
REG_Ospite = oDr("Descrizione")
End If
oDr.Close()
Else
oCom.CommandText = "select * from tab_Regioni_Nazioni where codice=" & Regione_Ospite
oDr = oCom.ExecuteReader()
If oDr.HasRows Then
oDr.Read()
REG_Ospite = oDr("Descrizione")
End If
oDr.Close()
End If
'AGGIUNGO LE SCHEDINE IN ARRIVO
For VarAgg = 1 To narrivi
oCom.CommandText = "INSERT INTO tab_alloggiati (Codice_Albergo,Codice_Scheda,Tipo_Alloggiato_Codice,Appartenenza,Data_Arrivo,Cognome,Nome,Provincia_Residenza_Codice,Provincia_Residenza_Descrizione,Stato_Residenza_Codice,Stato_Residenza_Descrizione,Partito,C59,Gruppo_Codice,Gruppo_Descrizione,Codice_Scheda_Importazione) " & _
"VALUES(" & Codice_ALB & "," & contatore_righe & ",1,0, @dtArrivo" & CStr(contatore_righe) & " ,'GENERICO','OSPITE'," & Provincia_Ospite & ",'" & PROV_Ospite & "'," & Regione_Ospite & ",'" & REG_Ospite & "', 0, 1, 1,'Turistico generico'," & contatore_righe & ")"
Dim oPar As New SqlParameter
oPar = oCom.CreateParameter()
oPar.ParameterName = "@dtArrivo" & CStr(contatore_righe)
oPar.DbType = Data.DbType.DateTime
oPar.Value = CStr(dataArrivo)
oCom.Parameters.Add(oPar)
oCom.ExecuteNonQuery()
oCom.Dispose()
oPar = Nothing
contatore_righe += 1
Next
oDr.Close()
'AGGIORNO LE SCHEDINE IN PARTENZA
Dim Codici() As Integer = Nothing
intCodici = 0
If npartenze > 0 Then
If Provincia_Ospite > 0 Then
oCom.CommandText = "select * from tab_alloggiati WHERE Data_Arrivo <= '" & CStr(dataArrivo) & "' AND Partito=0 AND Provincia_Residenza_Codice=" & Provincia_Ospite & " AND Codice_Albergo=" & codice_albergo
oDr = oCom.ExecuteReader()
If oDr.HasRows Then
While oDr.Read
ReDim Preserve Codici(intCodici)
Codici(intCodici) = Val(oDr("Codice_Scheda") & "")
intCodici += 1
If intCodici = npartenze Then Exit While
End While
End If
oDr.Close()
If intCodici > 0 Then
For VarAgg = 0 To UBound(Codici)
oCom.CommandText = "UPDATE tab_Alloggiati SET Data_Partenza='" & CStr(dataArrivo) & "', Partito=1 WHERE Codice_Scheda=" & Codici(VarAgg) & " AND Codice_Albergo=" & codice_albergo
oCom.ExecuteNonQuery()
Next
End If
Else
oCom.CommandText = "select * from tab_alloggiati where Data_Arrivo <= '" & CStr(dataArrivo) & "' AND Partito=0 AND Stato_Residenza_Codice=" & Regione_Ospite & " AND Codice_Albergo=" & codice_albergo
oDr = oCom.ExecuteReader()
If oDr.HasRows Then
While oDr.Read
ReDim Preserve Codici(intCodici)
Codici(intCodici) = Val(oDr("Codice_Scheda") & "")
intCodici += 1
If intCodici = npartenze Then Exit While
End While
End If
oDr.Close()
If intCodici > 0 Then
For VarAgg = 0 To UBound(Codici)
oCom.CommandText = "UPDATE tab_Alloggiati SET Data_Partenza='" & CStr(dataArrivo) & "', Partito=1 WHERE Codice_Scheda=" & Codici(VarAgg) & " AND Codice_Albergo=" & codice_albergo
oCom.ExecuteNonQuery()
Next
End If
End If
End If
VarAgg = 1
Provincia_Ospite = 0
Regione_Ospite = 0
PROV_Ospite = ""
REG_Ospite = ""
End If
Else
End If
Loop Until line Is Nothing
End Using
'AGGIORNO LA TABELLA DISPONIBILITA' ALLA DATA DEL FILE DI IMPORTAZIONE
Dim CheckDisp As Boolean
oCom.CommandText = "select * from tab_disponibilita WHERE Codice_albergo=" & codice_albergo & " AND Data='" & CStr(dataArrivo) & "'"
oDr = oCom.ExecuteReader()
If oDr.HasRows Then
CheckDisp = True
Else
CheckDisp = False
End If
oDr.Close()
If CheckDisp Then
oCom.CommandText = "UPDATE tab_disponibilita SET disponibili=" & camdisp & ", occupate=" & camocc & " WHERE Codice_albergo=" & codice_albergo & " AND Data='" & CStr(dataArrivo) & "'"
Else
oCom.CommandText = "INSERT INTO tab_disponibilita (Codice_albergo,Data,disponibili,occupate) VALUES(" & codice_albergo & ", '" & CStr(dataArrivo) & "', " & camdisp & ", " & camocc & ")"
End If
oCom.ExecuteNonQuery()
oDr = Nothing
oCom.Dispose()
oCom = Nothing
Catch ex As SqlException
prompt = New ImpromptuPrompt
prompt.Options.Buttons.Add("Chiudi", "ok")
prompt.Options.Top = 350
prompt.Options.PromptSpeed = "slow"
prompt.Options.Show = "show"
prompt.Message = "Attenzione: " & Chr(10) & ex.Message
ImpromptuHelper.ShowPrompt(prompt)
Return
Catch ex As Exception
prompt = New ImpromptuPrompt
prompt.Options.Buttons.Add("Chiudi", "ok")
prompt.Options.Top = 350
prompt.Options.PromptSpeed = "slow"
prompt.Options.Show = "show"
prompt.Message = "Attenzione: " & Chr(10) & ex.Message
ImpromptuHelper.ShowPrompt(prompt)
Return
Finally
prompt = New ImpromptuPrompt
prompt.Options.Buttons.Add("Chiudi", "ok")
prompt.Options.Top = 350
prompt.Options.PromptSpeed = "slow"
prompt.Options.Show = "show"
prompt.Message = "<p>Importazione file avvenuta con successo</p>"
ImpromptuHelper.ShowPrompt(prompt)
End Try
Else
prompt = New ImpromptuPrompt
prompt.Options.Buttons.Add("Chiudi", "ok")
prompt.Options.Top = 350
prompt.Options.PromptSpeed = "slow"
prompt.Options.Show = "show"
prompt.Message = "<br>Attenzione!<br><p>Il File selezionato è vuoto</p>"
ImpromptuHelper.ShowPrompt(prompt)
End If
If Me.Txt_dal_0.Text = "" Then Me.Txt_dal_0.Text = dataArrivo
If Me.Txt_al_0.Text = "" Then Me.Txt_al_0.Text = Now()
CreateDataSource(CDate(Me.Txt_dal_0.Text), CDate(Txt_al_0.Text))
End Sub