private void GrillaActividades_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int index = e.RowIndex;

            if (index < 0)
            {
            }
            else
            {
                DataGridViewRow selectedRow = grillaActividades.Rows[index];
                int             id          = int.Parse(selectedRow.Cells[0].Value.ToString());
                Actividad       act         = AD_Actividad.buscarActividad(id);
                txtDescripcion.Text = act.Descripcion;
                DateTime fecha = act.FechaInicio;
                string   dia   = fecha.Day.ToString();
                string   mes   = fecha.Month.ToString();
                string   año   = fecha.Year.ToString();

                if (dia.Length == 1)
                {
                    dia = "0" + dia;
                }
                if (mes.Length == 1)
                {
                    mes = "0" + mes;
                }
                txtInicio.Text = dia + "/" + mes + "/" + año;
                DateTime fechaFin = act.FechaFin;
                string   diaFin   = fechaFin.Day.ToString();
                string   mesFin   = fechaFin.Month.ToString();
                string   añoFin   = fechaFin.Year.ToString();

                if (diaFin.Length == 1)
                {
                    diaFin = "0" + diaFin;
                }
                if (mesFin.Length == 1)
                {
                    mesFin = "0" + mesFin;
                }
                txtFin.Text = diaFin + "/" + mesFin + "/" + añoFin;

                cmbTipoActividad.SelectedValue = act.IdTipoActividad;
                cmbArea.SelectedValue          = act.IdArea.ToString();
                cmbGrupo.SelectedValue         = act.IdGrupo.ToString();
                cmbPatentes.SelectedValue      = act.Patente;
                lblId.Text = act.Id.ToString();
            }
        }
        internal static Actividad buscarActividad(int id)
        {
            SqlConnection cn = new SqlConnection(connectionString);

            try
            {
                SqlCommand cmd = new SqlCommand();

                string consulta = "SELECT * FROM Actividades WHERE id = @id";

                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@id", id);
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = consulta;

                cn.Open();
                cmd.Connection = cn;

                Actividad act = new Actividad();

                SqlDataReader dr = cmd.ExecuteReader();

                if (dr != null && dr.Read())
                {
                    act.Id              = int.Parse(dr["id"].ToString());
                    act.Descripcion     = dr["descripcion"].ToString();
                    act.FechaInicio     = DateTime.Parse(dr["fechaInicio"].ToString());
                    act.FechaFin        = DateTime.Parse(dr["fechaFin"].ToString());
                    act.IdTipoActividad = int.Parse(dr["idTipoActividad"].ToString());
                    act.IdArea          = int.Parse(dr["idArea"].ToString());
                    act.Patente         = dr["patente"].ToString();
                    act.IdGrupo         = int.Parse(dr["idGrupo"].ToString());
                }

                return(act);
            }
            catch (Exception)
            {
                throw;
            }
            finally { cn.Close(); }
        }
        internal static bool modificarElemento(Actividad act)
        {
            SqlConnection  cn             = new SqlConnection(connectionString);
            SqlTransaction objTransaccion = null;
            bool           resultado      = false;

            try
            {
                SqlCommand cmd = new SqlCommand();

                string consulta = "UPDATE Actividades SET descripcion = @descripcion, fechaInicio = @fechaInicio, fechaFin = @fechaFin, idTipoActividad = @idTipoActividad, idArea = @idArea, patente = @patente, idGrupo = @idGrupo WHERE id = @id";

                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@id", act.Id);
                cmd.Parameters.AddWithValue("@descripcion", act.Descripcion);
                cmd.Parameters.AddWithValue("@fechaInicio", act.FechaInicio);
                cmd.Parameters.AddWithValue("@fechaFin", act.FechaFin);
                cmd.Parameters.AddWithValue("@idTipoActividad", act.IdTipoActividad);
                cmd.Parameters.AddWithValue("@idArea", act.IdArea);
                cmd.Parameters.AddWithValue("@patente", act.Patente);
                cmd.Parameters.AddWithValue("@idGrupo", act.IdGrupo);

                cmd.CommandType = CommandType.Text;
                cmd.CommandText = consulta;

                cn.Open();
                objTransaccion  = cn.BeginTransaction("ModificarActividad");
                cmd.Transaction = objTransaccion;
                cmd.Connection  = cn;
                cmd.ExecuteNonQuery();
                objTransaccion.Commit();
                resultado = true;
            }
            catch (Exception)
            {
                objTransaccion.Rollback();
                throw;
            }
            finally { cn.Close(); }
            return(resultado);
        }
        public static bool insertarActividad(Actividad act)
        {
            SqlConnection  cn             = new SqlConnection(connectionString);
            SqlTransaction objTransaccion = null;
            bool           resultado      = false;

            try
            {
                SqlCommand cmd = new SqlCommand();

                string consulta = "INSERT INTO Actividades(descripcion, fechaInicio, fechaFin, idTipoActividad, idArea, patente, idGrupo) VALUES (@descripcion, @fechaInicio, @fechaFin, @idTipoActividad, @idArea, @patente, @idGrupo)";

                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@descripcion", act.Descripcion);
                cmd.Parameters.AddWithValue("@fechaInicio", act.FechaInicio);
                cmd.Parameters.AddWithValue("@fechaFin", act.FechaFin);
                cmd.Parameters.AddWithValue("@idTipoActividad", act.IdTipoActividad);
                cmd.Parameters.AddWithValue("@idArea", act.IdArea);
                cmd.Parameters.AddWithValue("@patente", act.Patente);
                cmd.Parameters.AddWithValue("@idGrupo", act.IdGrupo);


                cmd.CommandType = CommandType.Text;
                cmd.CommandText = consulta;

                cn.Open();
                objTransaccion  = cn.BeginTransaction("InsertarActividad");
                cmd.Transaction = objTransaccion;
                cmd.Connection  = cn;
                cmd.ExecuteNonQuery();

                objTransaccion.Commit();
                resultado = true;
            }
            catch (Exception)
            {
                objTransaccion.Rollback();
            }
            finally { cn.Close(); }
            return(resultado);
        }
        private void BtnModificar_Click(object sender, EventArgs e)
        {
            try
            {
                int id = int.Parse(lblId.Text);

                bool resultado = AD_Actividad.validarExistente(id);
                if (resultado)
                {
                    DialogResult respuesta = MessageBox.Show("¿Esta seguro que desea modificar esta Actividad? Esta acción no tiene vuelta atras", "Confrmación", MessageBoxButtons.YesNo);
                    if (respuesta == DialogResult.Yes)
                    {
                        Actividad act = new Actividad();
                        act.Id              = int.Parse(lblId.Text);
                        act.Descripcion     = txtDescripcion.Text;
                        act.FechaInicio     = DateTime.Parse(txtInicio.Text);
                        act.FechaFin        = DateTime.Parse(txtFin.Text);
                        act.IdTipoActividad = int.Parse(cmbTipoActividad.SelectedValue.ToString());
                        act.IdArea          = int.Parse(cmbArea.SelectedValue.ToString());
                        act.Patente         = cmbPatentes.SelectedValue.ToString();
                        act.IdGrupo         = int.Parse(cmbGrupo.SelectedValue.ToString());
                        bool res = AD_Actividad.modificarElemento(act);
                        if (res)
                        {
                            MessageBox.Show("Se ha modificado con éxito");
                        }
                        cargarTabla();
                        limpiarCampos();
                        lblId.Text = "-1";
                    }
                }
                else
                {
                    MessageBox.Show("No se encuentra la actividad deseada");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }