codice:
Private Sub link_emetti_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles link_emetti.Click
If Me.solo_lettura Then
Me.messaggioJS = Libreria.toStringaJS("Non si hanno le autorizzazioni per modificare i dati.")
Exit Sub
End If
If Me.id_utente = "" Or Me.c_id_utente.SelectedValue = "" Then
Me.messaggioJS = "Devi selezionare un utente e un settore"
Exit Sub
End If
Dim Connessione As OleDbConnection
Dim Comando As OleDbCommand
Dim Transazione As OleDbTransaction
Dim Parametro As OleDbParameter
Dim Sql$ = ""
Dim flag_7, in_servizio, abilitato As Boolean
Try
'l'utente connesso non può modificarsi il privilegio 7, in servizio, abilitato
If CInt(Me.id_utente) = j.id_utente Then
flag_7 = True
in_servizio = True
abilitato = True
Else
flag_7 = Me.c_flag_7.Checked
in_servizio = Me.c_in_servizio.Checked
abilitato = Me.c_abilitato.Checked
End If
Connessione = New OleDbConnection(StringaConnessione)
Connessione.Open()
Transazione = Connessione.BeginTransaction()
Sql = "INSERT INTO DETTAGLIO_UTENTI (ID_SETTORE, QUALIFICA, IN_SERVIZIO,FLAG_1,FLAG_2,FLAG_3,FLAG_4,FLAG_5,FLAG_6,FLAG_7,FLAG_8,FLAG_9,FLAG_10,ID_UTENTE,DATA_STATO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) "
Comando = New OleDbCommand(Sql, Connessione, Transazione)
Comando.Parameters.Clear()
Comando.Parameters.Add("id_settore", OleDbType.Integer).Value = Me.c_id_settore.SelectedValue
Comando.Parameters.Add("qualifica", OleDbType.VarChar, 80).Value = Libreria.StringNullToDBNull(Me.c_qualifica.Text)
Comando.Parameters.Add("IN_SERVIZIO", OleDbType.Boolean).Value = in_servizio
Comando.Parameters.Add("flag_1", OleDbType.Boolean).Value = Me.c_flag_1.Checked
Comando.Parameters.Add("flag_2", OleDbType.Boolean).Value = Me.c_flag_2.Checked
Comando.Parameters.Add("flag_3", OleDbType.Boolean).Value = Me.c_flag_3.Checked
Comando.Parameters.Add("flag_4", OleDbType.Boolean).Value = Me.c_flag_4.Checked
Comando.Parameters.Add("flag_5", OleDbType.Boolean).Value = Me.c_flag_5.Checked
Comando.Parameters.Add("flag_6", OleDbType.Boolean).Value = Me.c_flag_6.Checked
Comando.Parameters.Add("flag_7", OleDbType.Boolean).Value = flag_7
Comando.Parameters.Add("flag_8", OleDbType.Boolean).Value = Me.c_flag_8.Checked
Comando.Parameters.Add("flag_9", OleDbType.Boolean).Value = Me.c_flag_9.Checked
Comando.Parameters.Add("flag_10", OleDbType.Boolean).Value = Me.c_flag_10.Checked
Comando.Parameters.Add("id_utente", OleDbType.Integer).Value = Me.c_id_utente.SelectedValue
Comando.Parameters.Add("data_stato", OleDbType.Date).Value = DateTime.Now
Comando.ExecuteNonQuery()
aggiornaDatiAccesso(Comando)
'Transazione.Commit()
Transazione.Rollback() 'sono in debug
messaggioJS = "Aggiornato con successo il profilo utente"
Catch ex As Exception
Transazione.Rollback()
'Me.messaggioJS = Libreria.toStringaJS(ex.ToString)
Me.messaggioJS = Libreria.toStringaJS(ex.Message)
Finally
If (Not (Connessione Is Nothing)) Then Connessione.Close()
Me.BindData()
End Try
End Sub
Private Sub aggiornaDatiAccesso(ByVal comando As OleDbCommand)
'l'utente connesso non può modificarsi il privilegio 7, in servizio, abilitato
Dim sql$ = ""
Dim abilitato As Boolean
Try
If CInt(Me.id_utente) = j.id_utente Then
abilitato = True
Else
abilitato = Me.c_abilitato.Checked
End If
sql = "UPDATE UTENTI_REGIONE SET [NOME_COMPLETO] = ?, [SIGLA] = ?, [TELEFONO] = ?, [TITOLO_STUDIO] = ?, [NOTE] = ?, [ABILITATO] = ? WHERE [ID_UTENTE] = ? "
comando.CommandText = sql
comando.Parameters.Clear()
comando.Parameters.Add("nome_completo", OleDbType.VarChar, 50).Value = Libreria.StringNullToDBNull(Me.c_nome_completo.Text)
comando.Parameters.Add("sigla", OleDbType.VarChar, 5).Value = Libreria.StringNullToDBNull(Me.c_sigla.Text)
comando.Parameters.Add("telefono", OleDbType.VarChar, 60).Value = Libreria.StringNullToDBNull(Me.c_telefono.Text)
comando.Parameters.Add("titolo_studio", OleDbType.VarChar, 40).Value = Libreria.StringNullToDBNull(Me.c_titolo_studi.Text)
comando.Parameters.Add("note", OleDbType.VarChar, 200).Value = Libreria.StringNullToDBNull(Me.c_note.Text)
comando.Parameters.Add("abilitato", OleDbType.Boolean).Value = abilitato
comando.Parameters.Add("id_utente", OleDbType.Integer).Value = Me.id_utente
comando.ExecuteNonQuery()
Catch ex As Exception
Throw
End Try
End Sub
Private Sub button_refresh_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button_refresh.Click
InizializzaComboBox()
Libreria.SelectItemFromValue(Me.c_id_utente, Me.id_utente_nuovo.Value)
c_id_utente_SelectedIndexChanged(c_id_utente, Nothing)
End Sub
Private Sub link_elimina_utente_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles link_elimina_utente.ServerClick
Dim Connessione As OleDbConnection
Dim Comando As OleDbCommand
Dim Transazione As OleDbTransaction
Dim Sql$ = ""
Dim id_utente$ = ""
Dim i%
Dim tabelle$() = {"PROTOCOLLO", "ASSEGNAZIONE_PRATICHE", "INFORTUNI", "VERBALI_PRESCRIZIONI"}
Try
id_utente = Me.c_id_utente.SelectedValue
If id_utente = "" Then
Me.messaggioJS = Libreria.toStringaJS("Bisogna selezionare un utente")
Exit Sub
End If
Connessione = New OleDbConnection(StringaConnessione)
Connessione.Open()
Transazione = Connessione.BeginTransaction()
Comando = New OleDbCommand(Sql, Connessione, Transazione)
Comando.Parameters.Clear()
'controllo le tabelle correlate: se esiste id_utente esco
For i = 0 To tabelle.GetUpperBound(0)
If CInt(Libreria.RisultatoAggregazioneSQL(Comando, String.Format("SELECT COUNT(*) FROM {0} WHERE [ID_UTENTE] = {1} ", tabelle(i), id_utente))) > 0 Then
Me.messaggioJS = Libreria.toStringaJS("Non si può eliminare l'utente perchè è referenziato nella tabella PROTOCOLLO")
Exit Sub
End If
Next
Sql = "DELETE FROM [DETTAGLIO_UTENTI] WHERE [ID_UTENTE] = " & id_utente
Comando.CommandText = Sql
Comando.Parameters.Clear()
Comando.ExecuteNonQuery()
Sql = "DELETE FROM [UTENTI_REGIONE] WHERE [ID_UTENTE] = " & id_utente
Comando.CommandText = Sql
Comando.Parameters.Clear()
Comando.ExecuteNonQuery()
Transazione.Commit()
'Transazione.Rollback()
InizializzaComboBox()
Me.messaggioJS = Libreria.toStringaJS("Utente eliminato con successo")
Catch ex As Exception
Transazione.Rollback()
Me.messaggioJS = Libreria.toStringaJS(ex.Message)
Finally
If (Not (Connessione Is Nothing)) Then Connessione.Close()
End Try
End Sub
End Class