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
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5