예제 #1
0
        internal void GuardarDatos(string apellido, string confirmarPass, string depto, string dir, string localidad, string mail, string nombre, string num,
                                   string numdoc, string pais, string pass, string piso, string tel, string tipodoc, string usu, string currentUser, ModificarUsuario pantalla, Usuarios usuariosPantalla, ListBox roles)
        {
/*****************Modificar EMPLEADOS**************/
            SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["FrbaHotel.Properties.Settings.Setting"].ConnectionString);

            con1.Open();
            string update = "UPDATE WHERE_EN_EL_DELETE_FROM.empleados set apellido= @apellido , direccion_depto= @depto , direccion_calle=@calle" +
                            ", direccion_localidad=@localidad, mail=@mail, nombre=@nombre, direccion_nro= @num, documento_nro= @numdoc, direccion_pais=@pais, direccion_piso= @piso"
                            + ", telefono= @tel, documento_tipo= @tipodoc where usuario_id= (select u.usuario_id from WHERE_EN_EL_DELETE_FROM.usuarios u where u.usuario like @usu);";
            SqlCommand sqlQuery = new SqlCommand(update);

            sqlQuery.Connection = con1;

            sqlQuery.Parameters.Add("@apellido", SqlDbType.NVarChar).Value  = apellido;  //}
            sqlQuery.Parameters.Add("@depto", SqlDbType.NVarChar).Value     = depto;     //}
            sqlQuery.Parameters.Add("@calle", SqlDbType.NVarChar).Value     = dir;       //}
            sqlQuery.Parameters.Add("@localidad", SqlDbType.NVarChar).Value = localidad; //}
            sqlQuery.Parameters.Add("@mail", SqlDbType.NVarChar).Value      = mail;      //}
            sqlQuery.Parameters.Add("@nombre", SqlDbType.NVarChar).Value    = nombre;    //}
            sqlQuery.Parameters.Add("@num", SqlDbType.NVarChar).Value       = num;       //}
            sqlQuery.Parameters.Add("@numdoc", SqlDbType.NVarChar).Value    = numdoc;    //}
            sqlQuery.Parameters.Add("@pais", SqlDbType.NVarChar).Value      = pais;      //}
            sqlQuery.Parameters.Add("@piso", SqlDbType.NVarChar).Value      = piso;      //}
            sqlQuery.Parameters.Add("@tel", SqlDbType.NVarChar).Value       = tel;       //}
            sqlQuery.Parameters.Add("@tipodoc", SqlDbType.NVarChar).Value   = tipodoc;   //}
            sqlQuery.Parameters.Add("@usu", SqlDbType.NVarChar).Value       = currentUser;
/*****************Modifico USUARIOS_ROLES**********/
            ConexionSQL con                 = new ConexionSQL();
            DataTable   usuario             = con.cargarTablaSQL("select usuario_id from WHERE_EN_EL_DELETE_FROM.usuarios where usuario like'" + usu + "'");
            string      usuarioTOUSE        = usuario.Rows[0].ItemArray[0].ToString();
            string      deleteUsuariosRoles = "DELETE FROM WHERE_EN_EL_DELETE_FROM.usuarios_roles where usuario_id=@usuarioDelete";

            SqlConnection con3 = new SqlConnection(ConfigurationManager.ConnectionStrings["FrbaHotel.Properties.Settings.Setting"].ConnectionString);

            con3.Open();
            SqlCommand sqlQuery3 = new SqlCommand(deleteUsuariosRoles);

            sqlQuery3.Connection = con3;
            sqlQuery3.Parameters.Add("@usuarioDelete", SqlDbType.Int).Value = Int32.Parse(usuarioTOUSE);
            sqlQuery3.ExecuteNonQuery();

            foreach (var usuRol in roles.Items)
            {
                ConexionSQL   conrol              = new ConexionSQL();
                DataTable     conrol_res          = conrol.cargarTablaSQL("select rol_id from WHERE_EN_EL_DELETE_FROM.roles where nombre like '" + usuRol.ToString() + "'");
                string        insertUsuariosRoles = "INSERT INTO WHERE_EN_EL_DELETE_FROM.usuarios_roles values (@rolNuevo,@usuarioMismo)";
                SqlConnection con4 = new SqlConnection(ConfigurationManager.ConnectionStrings["FrbaHotel.Properties.Settings.Setting"].ConnectionString);
                con4.Open();
                SqlCommand sqlQuery4 = new SqlCommand(insertUsuariosRoles);
                sqlQuery4.Connection = con4;
                sqlQuery4.Parameters.Add("@rolNuevo", SqlDbType.Int).Value     = Int32.Parse(conrol_res.Rows[0].ItemArray[0].ToString());
                sqlQuery4.Parameters.Add("@usuarioMismo", SqlDbType.Int).Value = Int32.Parse(usuarioTOUSE);
                result_usu_roles = sqlQuery4.ExecuteNonQuery();
                vecesUsuRoles++;
            }



            /************Modifico USUARIO*****************/

            int         modificacionUsuario = sqlQuery.ExecuteNonQuery();
            ConexionSQL c   = new ConexionSQL();
            DataTable   res = c.cargarTablaSQL("select usuario_id from WHERE_EN_EL_DELETE_FROM.usuarios where usuario like '" + currentUser + "'");
            int         id  = Int32.Parse(res.Rows[0].ItemArray[0].ToString());

            if (pass != "")
            {
                SqlConnection con2 = new SqlConnection(ConfigurationManager.ConnectionStrings["FrbaHotel.Properties.Settings.Setting"].ConnectionString);
                con2.Open();
                updateUsuarioClave += "UPDATE WHERE_EN_EL_DELETE_FROM.usuarios set contrasena=HASHBYTES('SHA2_256', CONVERT(VARCHAR(32),@pass)) where usuario_id=@id";
                SqlCommand sqlQuery2 = new SqlCommand(updateUsuarioClave);
                sqlQuery2.Connection = con2;

                //if (usu != "" || pass != "" || confirmarPass != "") {

                sqlQuery2.Parameters.Add("@pass", SqlDbType.NVarChar).Value = pass;
                sqlQuery2.Parameters.Add("@id", SqlDbType.Int).Value        = id;//}
                modificacionUsuarioClave = sqlQuery2.ExecuteNonQuery();
            }


            else
            {
                modificacionUsuarioClave = 1;
            }



            if (modificacionUsuario.Equals(1) && modificacionUsuarioClave.Equals(1) && vecesUsuRoles.Equals(roles.Items.Count))
            {
                MessageBox.Show("¡Usuario modificado con éxito!");
                pantalla.Hide();
                usuariosPantalla.Hide();
                usuariosPantalla.Show();
                usuariosPantalla.Usuarios_Load(new object(), new EventArgs());
            }
            else
            {
                MessageBox.Show("Error modificando el usuario: " + usu);
            }
        }
        public void Crear(ConexionSQL c, string ape, string depto, string dir, string mail, string nom, string num, string numdoc, string pais, string piso, string tel, string tipodoc, string usu, DateTime fechanac, string localidad, string pass, ListBox roles, int hID, AgregarUsuario pantalla, Usuarios pInicial)
        {
            this.pantallita = pantalla;
            string        nacimiento = fechanac.Year.ToString() + fechanac.Month.ToString() + fechanac.Date.ToString();
            SqlConnection con        = new SqlConnection(ConfigurationManager.ConnectionStrings["FrbaHotel.Properties.Settings.Setting"].ConnectionString);

            con.Open();
            string     addUser       = "******";
            SqlCommand sqlInsertUser = new SqlCommand(addUser);

            sqlInsertUser.Connection = con;
            sqlInsertUser.Parameters.Add("@usuario", SqlDbType.NVarChar).Value    = usu;
            sqlInsertUser.Parameters.Add("@contrasena", SqlDbType.NVarChar).Value = pass;
            int useradded = sqlInsertUser.ExecuteNonQuery();

            if (useradded.Equals(1))
            {
                ConexionSQL nuevaConsulta = new ConexionSQL();
                DataTable   usuario       = nuevaConsulta.cargarTablaSQL("select usuario_id from WHERE_EN_EL_DELETE_FROM.usuarios where usuario like '" + usu + "'");
                string      usuario_id    = usuario.Rows[0].ItemArray[0].ToString();
                string      query         = "INSERT INTO WHERE_EN_EL_DELETE_FROM.empleados (usuario_id, mail, nombre, apellido, documento_tipo, documento_nro, telefono, direccion_calle, direccion_nro, direccion_piso, direccion_depto, direccion_localidad, direccion_pais)";
                query += " VALUES (@usuario_id, @mail, @nombre, @apellido, @documento_tipo, @documento_nro, @telefono, @direccion_calle, @direccion_nro, @direccion_piso, @direccion_depto, @direccion_localidad, @direccion_pais)";
                SqlCommand sql = new SqlCommand(query);
                sql.Connection = con;
                sql.Parameters.Add("@usuario_id", SqlDbType.NVarChar).Value          = usuario_id;
                sql.Parameters.Add("@mail", SqlDbType.NVarChar).Value                = mail;
                sql.Parameters.Add("@nombre", SqlDbType.NVarChar).Value              = nom;
                sql.Parameters.Add("@apellido", SqlDbType.NVarChar).Value            = ape;
                sql.Parameters.Add("@documento_tipo", SqlDbType.NVarChar).Value      = tipodoc;
                sql.Parameters.Add("@documento_nro", SqlDbType.NVarChar).Value       = numdoc;
                sql.Parameters.Add("@telefono", SqlDbType.NVarChar).Value            = tel;
                sql.Parameters.Add("@direccion_calle", SqlDbType.NVarChar).Value     = dir;
                sql.Parameters.Add("@direccion_nro", SqlDbType.NVarChar).Value       = num;
                sql.Parameters.Add("@direccion_piso", SqlDbType.NVarChar).Value      = piso;
                sql.Parameters.Add("@direccion_depto", SqlDbType.NVarChar).Value     = depto;
                sql.Parameters.Add("@direccion_localidad", SqlDbType.NVarChar).Value = localidad;
                sql.Parameters.Add("@direccion_pais", SqlDbType.NVarChar).Value      = pais;
                int result           = sql.ExecuteNonQuery();
                int resultadoParcial = 0;
                if (result.Equals(1))
                {
                    foreach (var item in roles.Items)
                    {
                        string rol = item.ToString();

                        string addRoles = "INSERT INTO WHERE_EN_EL_DELETE_FROM.usuarios_roles values((select rol_id from WHERE_EN_EL_DELETE_FROM.roles where" +
                                          " nombre like @rol), @usu_id)";
                        SqlCommand sql2 = new SqlCommand(addRoles);
                        sql2.Connection = con;
                        sql2.Parameters.Add("@rol", SqlDbType.NVarChar).Value = rol;
                        sql2.Parameters.Add("@usu_id", SqlDbType.Int).Value   = usuario_id;
                        int resultInUsuariosRoles = sql2.ExecuteNonQuery();
                        if (resultInUsuariosRoles.Equals(1))
                        {
                            resultadoParcial++;
                        }
                        else
                        {
                            MessageBox.Show("Error al intentar registrar a " + usu + "con el rol " + rol);
                        }
                    }
                    if (resultadoParcial.Equals(roles.Items.Count))
                    {
                        string addEmpleHotel = "INSERT INTO WHERE_EN_EL_DELETE_FROM.empleados_hoteles values ((select empleado_id from" +
                                               " WHERE_EN_EL_DELETE_FROM.empleados where usuario_id=@user_id), @hotel_id_)";
                        SqlCommand sql3 = new SqlCommand(addEmpleHotel);
                        sql3.Connection = con;
                        sql3.Parameters.Add("@user_id", SqlDbType.Int).Value   = usuario_id;
                        sql3.Parameters.Add("@hotel_id_", SqlDbType.Int).Value = hID;
                        int resultadoEmpleHotel = sql3.ExecuteNonQuery();
                        if (resultadoEmpleHotel.Equals(1))
                        {
                            MessageBox.Show("¡Usuario agregado con éxito!");
                            this.pantallita.Hide();
                            pInicial.Usuarios_Load(new object(), new EventArgs());
                        }
                        else
                        {
                            MessageBox.Show("Error al agregar usuario");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Error al agregar usuario");
                    }
                }
            }
            else
            {
                MessageBox.Show("Error al agregar el usuario");
            }
        }