예제 #1
0
        private void btnEliminar_Click(object sender, EventArgs e)//evento que se dispara cuando das clic al boton actualizar
        {
            try
            {
                if (txtCedula.MaskFull)                                                                                                                                                                   //Para que necesariamente el textbox de la cedula tenga 11 digitos
                {
                    UsuarioTableAdapter adapter = new UsuarioTableAdapter();                                                                                                                              //objeto que permite utilizar los querys de tblUsuario

                    string Cedula = metodos.Filtrar(txtCedula);                                                                                                                                           //para guardar la cedula sin los guiones del MaskedTextBox

                    UsuarioDataTable data = adapter.BuscarPorCedulaU(Cedula);                                                                                                                             //objeto paraguardar la informacion de tblUsuario, en este caso un usuario buscado por su cedula

                    if (data.Count != 0)                                                                                                                                                                  //verifica que si haya una fila que contenta la informacion del usuario buscado por la cedula
                    {
                        foreach (UsuarioRow item in data)                                                                                                                                                 //recorre cada fila, en este caso solo una
                        {
                            string estado = item.Activo == true ? "desactivar" : "activar";                                                                                                               //determina que estado tiene actualmente el usuario buscado por su cedula
                            if (MessageBox.Show($"Está seguro que desea {estado} al usuario {item.Nombre} {item.Apellidos} del sistema?", "Cambiar estado", MessageBoxButtons.YesNo) == DialogResult.Yes) //se le pregunta al usuario si desea cambiar de estado a este usuario, si responde si entonces
                            {
                                string contra = null;                                                                                                                                                     //para guardar la contraseña del usuario que usa actualmente el sistema
                                contra = metodos.InputBox("Confirmación de identidad", $"Ingrese su contraseña nuevamente {usuario.Nombre} {usuario.Apellidos}: ", ref contra);                           //ventana para que el usuario que usa el sistema ingrese nuevamente su contraseña para validar que si es el


                                if (contra == usuario.Contra)                                                                                                                    //verifica que las contraseñas sean las mismas
                                {
                                    adapter.CambiaEstado(Cedula);                                                                                                                //cambia de estado al usuario de quien ingresaron su cedula
                                    estado = item.Activo == true ? "desactivado del" : "activado en el";                                                                         //determina como quedó el estado del usuario
                                    MessageBox.Show($"{item.Nombre} {item.Apellidos} fue {estado} sistema", "Cambiar Estado", MessageBoxButtons.OK, MessageBoxIcon.Information); //notifica al usuario que cambió de estado al usuario que ingresó por su cedula

                                    log.Info($"{item.Nombre} {item.Apellidos} fue {estado} sistema por el usuario {usuario.Nombre} {usuario.Apellidos}");                        //se registra que se cambió de estado un usuario
                                    if (item.Cedula == usuario.Cedula)                                                                                                           //verifica si el usuario que desactivaron es el que esta usando el sistema
                                    {
                                        Application.Exit();                                                                                                                      //sale del sistema(aplicacion)
                                    }
                                    txtCedula.Text = "";                                                                                                                         //limpia el textbox cedula
                                    txtCedula.Focus();                                                                                                                           //focus en el textbox cedula
                                }
                                else//si no coinciden las contraseñas
                                {
                                    MessageBox.Show("La contraseña ingresada no coincide con su usuario, vuelva a intentarlo", "Cambiar de Estado", MessageBoxButtons.OK, MessageBoxIcon.Error);         //notifica al usuario que la contraseña que ingresó no coincide con su contraseña
                                    log.Info($"El usuario {usuario.Nombre} {usuario.Apellidos} intentó cambiar de estado a {item.Nombre} {item.Apellidos} pero no ingresó correctamente su contraseña"); //registra que se intentó cambiar de estado a un usuario pero el usuario que usaba el sistema no pudo verificar que en realidad era el al ingresar su contraseña
                                }
                            }
                        }
                    }
                    else//si no encuentra un usuario con esa cedula
                    {
                        MessageBox.Show("No se encontró un usuario con la cédula ingresada, vuelva a intentarlo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);//notifica al usuario que no se encontró ningun usuario con cedula
                        log.Info($"El usuario {usuario.Nombre} {usuario.Apellidos} intentó cambiar de estado al usuario {Cedula} pero este no está ingresado en el sistema");//registra que se trató de buscar un usuario con la cedula ingresada pero no se encontró
                    }
                }
                else//si no se ingresó completamente la cedula
                {
                    MessageBox.Show("Debe ingresar completamente la cédula", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);//notifica al usuario que debe ingresar completamente la cedula
                    txtCedula.Focus();//hace focus en el textbox cedula
                }
            }
            catch (Exception error)
            {
                log.Error($"Error: {error.Message}", error);
                MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
        private void btnAgregar_Click(object sender, EventArgs e)//evento que te activa al dar clic al boton agregar
        {
            try
            {
                if (txtNombre.Text != "" && txtApellidos.Text != "" && txtTelefono.MaskFull && cboTipo.Text != "" && txtCedula.MaskFull && txtContrasena.TextLength >= 6 && txtContrasena.Text == txtReContrasena.Text)
                {
                    //Quita todos los label de error
                    UsuarioTableAdapter adapter = new UsuarioTableAdapter();                                                                                                                                                   //objeto para utilizar los querys de tblUsuario
                    UsuarioDataTable    data;                                                                                                                                                                                  //objeto que almacena data proveniente de tblUsuario

                    string Cedula = metodos.Filtrar(txtCedula);                                                                                                                                                                //quita los guiones de la cedula

                    string telefono = metodos.Filtrar(txtTelefono);                                                                                                                                                            //quita los guiones del telefono

                    data = adapter.BuscarPorCedulaU(Cedula);                                                                                                                                                                   //busca si hay un usuario en tblUsuario con la cedula ingresada

                    if (data.Count == 0)                                                                                                                                                                                       //si no hay ninguna fila significa que noy un usuario con la cedula ingresada
                    {
                        if (txtContrasena.Text == txtReContrasena.Text)                                                                                                                                                        //verifica que las contraseñas ingresadas sean la misma
                        {
                            if (MessageBox.Show($"¿Está seguro que desea añadir al usuario {txtNombre.Text} {txtApellidos.Text} al sistema?", "Añadir", MessageBoxButtons.YesNo) == DialogResult.Yes)                          //pregunta si de verdad desea añadir este usuario, si es si ocurre lo siguiente
                            {
                                string contrasena = null;                                                                                                                                                                      //string para guardar la contraseña del usuario que usa el sistema
                                contrasena = metodos.InputBox("Reingresar contraseña", $"Reescriba su contraseña {usuario.Nombre}", ref contrasena);                                                                           //muestra una ventana donde el usuario que esta agregando a otro usuario ingrese su contraseña para verificar que de verdad es el

                                if (contrasena == usuario.Contra)                                                                                                                                                              //si la contraseña corresponde al usuario que usa el sistema
                                {
                                    int tipoUsuario = cboTipo.Text == "Administrador" ? 1 : 2;                                                                                                                                 //determina que tipo de usuario se registro
                                    adapter.InsertarU(tipoUsuario, telefono, txtContrasena.Text, Cedula, txtNombre.Text.Trim(), txtApellidos.Text.Trim(), txtDireccion.Text.Trim(), true);                                     //se inserta el usuario con la informacion que se ingresó
                                    log.Info($"Se agregó al sistema el usuario {txtNombre.Text} {txtApellidos.Text} de cédula {Cedula} como {cboTipo.Text} por el administrador {usuario.Nombre} {usuario.Apellidos}");        // se registra que se ingresó un usuario nuevo y su cedula
                                    MessageBox.Show($"{txtNombre.Text} {txtApellidos.Text} ha sido añadido al sistema como {cboTipo.Text} exitosamente", "Agregar usuario", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); //le notifica al usuario que se agregó el nuevo usuario
                                    this.Limpiar();                                                                                                                                                                            //se limpia toda la ventana
                                }
                                else//si la contraseña no es igual a la del usuario que usa el sistema
                                {
                                    log.Warn($"Se intentó agregar al sistema el usuario {txtNombre.Text} {txtApellidos.Text} de cédula {Cedula} como {cboTipo.Text}, " +
                                             $"pero no se pudo confirmar la identidad del administrador {usuario.Nombre} {usuario.Apellidos} ingresando la siguiente contraseña incorrecta: {txtContrasena.Text}"); //notifica que se intentó agregar un usuario pero fracasó la autenticacion
                                    MessageBox.Show("La contraseña ingresada no coincide con su usuario, vuelva a intentarlo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);                              //notifica al usuario que La contraseña ingresada no coincide con su usuario
                                }
                            }
                            else//si se responde que no
                            {
                                this.Limpiar();//se limpia toda la ventana
                            }
                        }
                        else//si las contraseñas ingresadas no coinciden
                        {
                            MessageBox.Show("Las contraseñas ingresadas no coinciden, favor verificar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            txtContrasena.Text   = ""; //limpia el textbox de la contraseña
                            txtReContrasena.Text = ""; //limpia el textbox para verificar la contraseña
                        }
                    }
                    else//si ya hay un usuario con la cedula ingresa
                    {
                        log.Warn($"Se intentó agregar al sistema el usuario {txtNombre.Text} {txtApellidos.Text} de cédula {Cedula} como {cboTipo.Text}, pero ya hay un usuario con esta cédula con anterioridad " +
                                 $"por el administrador {usuario.Nombre} {usuario.Apellidos}");                                                                                                  //notifica que se intentó ingresar un usuario con una cedula que ya pertenece a otro usuario
                        MessageBox.Show("Ya se encuentra un usuario ingresado con esta cedula.\n\nFavor ingresar otra cedula y/o usuario", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //le notifica al usuario mediante un mensaje que ya hay un usuario ingresado con esta cedula
                    }
                }
                else//si no se ingresó toda la informacion necesaria
                {
                    cboTipo.SelectedItem = 0;
                    this.ErrorAgregar();//no permite que algun campo obligatorio esté vacío
                }
            }
            catch (Exception error)
            {
                log.Error($"Error: {error.Message}", error);
                MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #3
0
        private void btnLogin_Click(object sender, EventArgs e)//Si se presiona el boton login o se presiona enter dentro del textbox contrasena
        {
            try
            {
                if (txtCedula.MaskFull == true && txtContra.Text.Length > 0)        //revisa si hay 11 digitos ingresados para la cedula
                {
                    string Cedula = metodos.Filtrar(txtCedula);                     //le quita los guiones a la cedula

                    UsuarioTableAdapter adapter = new UsuarioTableAdapter();        //para usar los query de la tabla usuarios
                    UsuarioDataTable    data    = adapter.BuscarPorCedulaU(Cedula); //busca por la cedula y lo armacena en data


                    if (data.Rows.Count > 0)                                                                       //si es igual a 0 quiere decir que no se encontró la cedula, por lo que no se puede iniciar sesión
                    {
                        foreach (UsuarioRow item in data)                                                          //Se usa foreach para facilitar el manejo de los campos de la tabla usuarios
                        {
                            if (Cedula == item.Cedula && txtContra.Text == item.Contraseña && item.Activo == true) //aqui comprueba que la cedula, contrasena y el estado, que debe ser activo, son los correctos para iniciar sesión
                            {
                                usuario.Id        = item.IdUsuario;                                                //Se guarda el id del usuario que inicia sesión
                                usuario.Tipo      = item.TipoUsuario;                                              //Se guarda el tipo del usuario que inicia sesión
                                usuario.Apellidos = item.Apellidos;                                                //Se guarda el apellido del usuario que inicia sesión
                                usuario.Nombre    = item.Nombre;                                                   //Se guarda el nombre del usuario que inicia sesión
                                usuario.Cedula    = item.Cedula;                                                   //Se guarda la cedula del usuario que inicia sesión
                                usuario.Contra    = item.Contraseña;                                               //Se guarda la contrasena del usuario que inicia sesión

                                string tipoUsuario = usuario.Tipo == 1 ? "Administrador" : "Cajero";
                                MessageBox.Show($"{usuario.Nombre} {usuario.Apellidos} con la cedula: {usuario.Cedula} entró al sistema como {tipoUsuario}"); //MessageBox para notificar que se inició sesión correctamente
                                log.Info($"{usuario.Nombre} {usuario.Apellidos} con la cedula: {usuario.Cedula} entró al sistema como {tipoUsuario}");        //Hace el log de quien inicia sesión

                                this.Hide();                                                                                                                  //Cierra la ventana de login

                                frmMenu menu = new frmMenu(usuario);                                                                                          //Abre la ventada de menu pasandole los datos del usuario

                                menu.Show();                                                                                                                  //Se muestra la ventana menú
                            }
                            else //Si coincide la cedula con la contra o el usuario no esta activo se hace lo siguiente
                            {
                                if (item.Activo != true)                                                                                                                    //Aunque coincidan la contra y la cedula no podrá iniciar sesión debido a que no está activo
                                {
                                    MessageBox.Show($"{item.Nombre} {item.Apellidos} no está activo en el sistema", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); //Aqui le deja saber al usuario que los datos del usuario ingresado no se encuentra activo
                                    txtCedula.Text = ""; txtContra.Text = "";                                                                                               //para limpiar el txtCedula y txtContra
                                    txtCedula.Focus();                                                                                                                      //Para hacer focus en el txtCedula
                                    log.Warn($"{item.Nombre} {item.Apellidos} intentó ingresar al sistema pero no se encuentra activo");                                    //log para dejar saber que el usuario intentó ingresar estando inactivo
                                }
                                else if (txtContra.Text != item.Contraseña)                                                                                                 //Aqui se hace lo siguiente si no coincide la contra
                                {
                                    MessageBox.Show("Contraseña y/o cédula incorrecta, intente de nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);             //Le deja saber al usuario que la contrasena que ingresó no es la correcta
                                    log.Info($"Se intentó iniciar sesión con la cédula: {txtCedula.Text} y la contraseña: {txtContra.Text}");                               //log para dejar saber que se intentó iniciar sesión
                                }
                            }
                        }
                    }
                    else//Si no se encuentra la cedula se hace lo siguiente
                    {
                        MessageBox.Show("Contraseña y/o cédula incorrecta, intente de nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //Le deja saber al usuario que la cedula que ingresó no esta en la base de datos
                        log.Info($"Se intentó iniciar sesión con la cédula: {txtCedula.Text} y la contraseña: {txtContra.Text}"); //log para dejar saber que se intentó iniciar sesión con datos erroneos
                    }
                }
                else//si no hay 11 digitos en la cedula y la contraseña ingresada se hace lo siguiente
                {
                    string mensaje = "Debe realizar lo siguiente:";
                    if (!txtCedula.MaskFull)
                    {
                        mensaje += "\nIngresar los 11 dígitos de la cédula";
                    }
                    if (txtContra.Text.Length == 0)
                    {
                        mensaje += "\nIngresar su contraseña";
                    }
                    MessageBox.Show(mensaje, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //le deja saber al usuario que faltan digitos
                }
            }
            catch (Exception error)
            {
                log.Error($"Error: {error.Message}", error);
                MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }