protected void btnAceptar_Click(object sender, ImageClickEventArgs e) { EParticipante nuevo = new EParticipante(); nuevo.Usuario = "admin"; nuevo.Codigo = Session["Cod"].ToString(); nuevo.NombreCurso = Session["NombreCurso"].ToString(); nuevo.IdTipoId = Convert.ToInt16(cmbTipoId.SelectedValue); nuevo.Identificacion = txtbIdenti.Text; nuevo.Nombre = txtbNombre.Text; nuevo.Apellidos = txtbApellidos.Text; nuevo.Telefono = txtbTel.Text; nuevo.Correo = txtbCorreo.Text; nuevo.Observaciones = ta_observ.Value; nuevo.TipoApoyo = ta_apoyo.Value; if (new MatriculaNeg().MatricularParticipanteEnLinea(nuevo)) { Response.Redirect("Exito.aspx"); } else { string message = "Ya no existen cupos disponibles para el curso seleccionado."; System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("alert('"); sb.Append(message); sb.Append("');"); ClientScript.RegisterOnSubmitStatement(this.GetType(), "alert", sb.ToString()); } }
/// <summary> /// Matricular a un participante /// </summary> /// <param name="part">Entidad Participante</param> /// <returns></returns> public int MatricularParticipante(EParticipante part) { SqlCommand comando = CrearComandoProc("MAT_ParticipanteRegistrar"); comando.Parameters.AddWithValue("@Login", part.Usuario); comando.Parameters.AddWithValue("@Estado", part.Estado); comando.Parameters.AddWithValue("@Codigo", part.Codigo); comando.Parameters.AddWithValue("@IdTipoMatricula", part.IdTipoMatricula); comando.Parameters.AddWithValue("@FechaMatricula", part.FechaMatricula); comando.Parameters.AddWithValue("@Orden", part.Orden); comando.Parameters.AddWithValue("@ListaEspera", part.ListaEspera); comando.Parameters.AddWithValue("@IdTipoId", part.IdTipoId); comando.Parameters.AddWithValue("@Identificacion", part.Identificacion); comando.Parameters.AddWithValue("@Nombre", part.Nombre); comando.Parameters.AddWithValue("@Apellidos", part.Apellidos); comando.Parameters.AddWithValue("@Correo", part.Correo); comando.Parameters.AddWithValue("@Telefono", part.Telefono); comando.Parameters.AddWithValue("@Observaciones", part.Observaciones); comando.Parameters.AddWithValue("@TipoApoyo", part.TipoApoyo); return EjecutarComando(comando); }
/// <summary> /// Cargar datos actualizados de participantes /// </summary> /// <param name="consulta"></param> private void CargarTablaPart(EParticipante consulta) { try { // Reiniciar contenidos del DataGridView GridPart.DataSource = null; GridPart.Rows.Clear(); GridPart.Refresh(); // Llenar valores de entidad consulta if (!cmbOferta.Text.Equals("Cualquiera")) consulta.IdOferta = Convert.ToInt16(cmbOferta.SelectedValue); if (!cmbTipo.Text.Equals("Cualquiera")) consulta.IdTipoMatricula = Convert.ToInt16(cmbTipo.SelectedValue); if (!cmbEstado.Text.Equals("Cualquiera")) consulta.IdEstado = Convert.ToInt16(cmbEstado.SelectedValue); consulta.Usuario = txtbUsuario.Text; consulta.Identificacion = txtbIdenti.Text; DataView info = new ParticipantesNeg().ConsultarParticipantes(consulta); infoDat = info; GridPart.DataSource = info; // Configurar alineación de columnas especiales GridPart.Columns["ID"].Visible = false; GridPart.Columns["Fecha de matrícula"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; GridPart.Columns["Orden"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; } catch (Exception ex) { MainForm.NotificarExcepcion("CU MAT013", ex); } }
/// <summary> /// Matricular un nuevo participante en línea /// </summary> /// <param name="part"></param> /// <returns></returns> public bool MatricularParticipanteEnLinea(EParticipante part) { try { if (matriculaDAL.MatricularParticipanteEnLinea(part) != 0) { // Notificar a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = part.Usuario; entrada.Accion = "Registrar participante"; entrada.TipoEvento = "Registrar"; entrada.Descripcion = "Se ha registrado al participante en línea: " + "Curso = " + part.NombreCurso + ", " + "Identificación = " + part.Identificacion + ", " + "Nombre = " + part.Nombre + ", " + "Teléfono = " + part.Telefono + ", " + "Correo electrónico = " + part.Correo + ", " + "Observaciones = " + part.Observaciones + ", " + "Tipos de apoyo requeridos = " + part.TipoApoyo + "."; entrada.Entidad = part.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } catch { return false; } }
/// <summary> /// Matricular participante en línea validando que el estado /// de ofertas, cursos y cupos sea correcto. /// </summary> /// <param name="part"></param> /// <returns></returns> public int MatricularParticipanteEnLinea(EParticipante part) { SqlCommand comando = CrearComandoProc("MAT_EnLineaRegistrar"); comando.Parameters.AddWithValue("@Codigo", part.Codigo); comando.Parameters.AddWithValue("@IdTipoId", part.IdTipoId); comando.Parameters.AddWithValue("@Identificacion", part.Identificacion); comando.Parameters.AddWithValue("@Nombre", part.Nombre); comando.Parameters.AddWithValue("@Apellidos", part.Apellidos); comando.Parameters.AddWithValue("@Correo", part.Correo); comando.Parameters.AddWithValue("@Telefono", part.Telefono); comando.Parameters.AddWithValue("@Observaciones", part.Observaciones); comando.Parameters.AddWithValue("@TipoApoyo", part.TipoApoyo); var returnParameter = comando.Parameters.Add("@ReturnVal", SqlDbType.Int); returnParameter.Direction = ParameterDirection.ReturnValue; EjecutarComando(comando); return Convert.ToInt16(returnParameter.Value); }
/// <summary> /// Matricular todos los cupos editados, uno a uno /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMatricular_Click(object sender, EventArgs e) { try { if (FilasValidas()) // Ninguna fila contiene nulos o vacíos SI es requerida { string login = sesion.Login; DateTime fechaMat = DateTime.Now; for (int i = 0; i < GridCupos.Rows.Count; i++) { EParticipante nuevo = new EParticipante(); DataGridViewRow fila = GridCupos.Rows[i]; nuevo.Usuario = login; switch (fila.Cells["ListaEspera"].Value.ToString()) { case "No": nuevo.Estado = "Matriculado"; nuevo.ListaEspera = false; break; default: nuevo.Estado = "En espera"; nuevo.ListaEspera = true; break; } nuevo.Codigo = codCurso; nuevo.IdTipoMatricula = idTipoMat; nuevo.FechaMatricula = fechaMat; nuevo.Orden = i + 1; var val = Convert.ToInt16(fila.Cells["TipoIdentificacion"].Value); nuevo.NombreCurso = fila.Cells["Cursos"].Value.ToString(); nuevo.IdTipoId = Convert.ToInt16(fila.Cells["TipoIdentificacion"].Value); nuevo.Identificacion = fila.Cells["Identificacion"].Value.ToString(); nuevo.Nombre = fila.Cells["Nombre"].Value.ToString(); nuevo.Apellidos = fila.Cells["Apellidos"].Value.ToString(); nuevo.Correo = fila.Cells["Correo"].Value.ToString(); nuevo.Telefono = fila.Cells["Telefono"].Value.ToString(); nuevo.Observaciones = fila.Cells["Observaciones"].Value.ToString(); nuevo.TipoApoyo = fila.Cells["TipoApoyo"].Value.ToString(); new MatriculaNeg().MatricularParticipante(nuevo); } MessageBox.Show("Matrícula realizada exitosamente.", "Éxito"); MainForm par = (MainForm)this.ParentForm; par.UnlockButtons(); MainForm.panel.Controls.Clear(); MainForm.panel.Controls.Add(new ControlMatriculaPres1()); } else { MessageBox.Show("Una o más filas contienen valores vacíos o inválidos.", "Imposible continuar"); } } catch (Exception ex) { MainForm.NotificarExcepcion("MAT011", ex); } }