/// <summary> /// Guardar nuevo curso en la base de datos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGuardar_Click(object sender, EventArgs e) { try { ECurso nuevo = new ECurso(); nuevo.Codigo = txtbCodigo.Text; nuevo.IdOferta = Convert.ToInt16(cmbOferta.SelectedValue); nuevo.NombreOferta = cmbOferta.Text; nuevo.IdEstado = 1; nuevo.NombreEstado = txtbEstado.Text; nuevo.IdTipo = Convert.ToInt16(cmbTipo.SelectedValue); nuevo.NombreTipo = cmbTipo.Text; nuevo.Nombre = txtbNombre.Text; nuevo.IdSede = Convert.ToInt16(cmbSede.SelectedValue); nuevo.NombreSede = cmbSede.Text; nuevo.Facilitador = txtbFacilitador.Text; nuevo.Horario = txtbHorario.Text; nuevo.PoblacionMeta = txtbPobMeta.Text; nuevo.FechaRegistro = DateTime.Parse(txtbFechaReg.Text); nuevo.UltimaModificacion = DateTime.Parse(txtbUltMod.Text); nuevo.NumeroGrupo = Convert.ToInt16(nudGrupo.Value); nuevo.CursoRequisitoDe = txtbRequisitoDe.Text; nuevo.Observaciones = txtbObservaciones.Text; nuevo.MatriculaPresencial = rbMatPresSi.Checked; nuevo.MatriculaTelefonica = rbMatTelSi.Checked; nuevo.MatriculaEnLinea = rbMatLinSi.Checked; nuevo.CantidadPresTel = Convert.ToInt16(nudCantidadPres.Value); nuevo.CantidadEnLinea = Convert.ToInt16(nudEnLinea.Value); nuevo.ListaDeEspera = rbEsperaSi.Checked; nuevo.Total = Convert.ToInt16(txtbTotal.Text); nuevo.LoginUsuario = MainForm.sesion.Login; if (nuevo.DatosValidos()) { if (new CursosNeg().RegistrarCurso(nuevo)) { MessageBox.Show("El curso '" + nuevo.Nombre + "' se registró exitosamente", "Éxito"); this.Close(); } else { MessageBox.Show("El grupo '" + nuevo.Codigo + " - " + nuevo.NumeroGrupo + "' " + "ya se encuentra registrado para la oferta '" + nuevo.NombreOferta + "' de " + "la sede '" + nuevo.NombreSede + "'", "Ya existe"); } } else { MessageBox.Show(this, "Revise que los datos en los campos sean correctos.", "Error"); } } catch (Exception ex) { MainForm.NotificarExcepcion("CU MAT008", ex); } }
/// <summary> /// Cambia el estado de la curso y actualiza el historial + validaciones /// </summary> /// <param name="curso"></param> /// <returns>true - si el procedimiento tuvo éxito</returns> public bool CambiarEstadoCurso(ECurso curso, string anterior, string nuevo) { try { if (anterior.Equals("Planificado") && nuevo.Equals("Abierto") || anterior.Equals("Curso en pausa") && nuevo.Equals("Abierto") || anterior.Equals("Matrícula incompleta") && nuevo.Equals("Abierto") || anterior.Equals("Abierto") && !nuevo.Equals("Abierto")) { if (cursosDAL.CambiarEstadoCurso(curso) != 0) { // Notificar a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = curso.LoginUsuario; entrada.Accion = "Cambiar estado de curso"; entrada.TipoEvento = "Modificar"; entrada.Descripcion = "El estado del curso '" + curso.Nombre + "' fue cambiado de '" + anterior + "' a '" + nuevo + "'."; entrada.Entidad = curso.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } else { return false; } } catch { return false; } }
/// <summary> /// Registrar curso /// </summary> /// <param name="curso"></param> /// <returns></returns> public bool RegistrarCurso(ECurso curso) { try { if (cursosDAL.RegistrarCurso(curso) != 0) { // Notificar a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = curso.LoginUsuario; entrada.Accion = "Registrar curso"; entrada.TipoEvento = "Registrar"; entrada.Descripcion = "Se ha registrado el curso '" + curso.Nombre + "' con la siguiente información: " + "Oferta = " + curso.NombreOferta + ", " + "Estado = " + curso.NombreEstado + ", " + "Código = " + curso.Codigo + ", " + "Tipo = " + curso.NombreTipo + ", " + "Sede = " + curso.NombreSede + ", " + "Facilitador = " + curso.Facilitador + ", " + "Población meta = " + curso.PoblacionMeta + ", " + "Horario = " + curso.Horario + ", " + "Número de grupo = " + curso.NumeroGrupo + ", " + "Lista de espera = " + GetSiNo(curso.ListaDeEspera) + ", " + "Curso requisito de = " + curso.CursoRequisitoDe + ", " + "Requisitos y observaciones = " + curso.Observaciones + ", " + "Total = " + curso.Total.ToString() + ", " + "Matrícula presencial = " + GetSiNo(curso.MatriculaPresencial) + ", " + "Matrícula telefónica = " + GetSiNo(curso.MatriculaTelefonica) + ", " + "Cantidad presencial y telefónica = " + curso.CantidadPresTel.ToString() + ", " + "Matrícula en línea = " + GetSiNo(curso.MatriculaEnLinea) + ", " + "Cantidad en línea = " + curso.CantidadEnLinea + "."; entrada.Entidad = curso.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } catch { return false; } }
/// <summary> /// Eliminar un curso seleccionado desde la tabla /// </summary> /// <param name="curso"></param> /// <returns></returns> public bool EliminarCurso(ECurso curso) { try { if (cursosDAL.EliminarCurso(curso.Codigo) != 0) { // Notificar a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = curso.LoginUsuario; entrada.Accion = "Eliminar curso"; entrada.TipoEvento = "Eliminar"; entrada.Descripcion = "Se ha eliminado la información del curso '" + curso.Nombre + "'."; entrada.Entidad = curso.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } catch { return false; } }
/// <summary> /// Consultar tabla de cursos /// </summary> /// <param name="consulta"></param> /// <returns></returns> public DataView ConsultarCursos(ECurso consulta) { DataTable tabla = cursosDAL.ConsultarCursos(consulta); return tabla.AsDataView(); }
/// <summary> /// Guardar cambios en el curso /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGuardar_Click(object sender, EventArgs e) { try { ECurso mod = new ECurso(); mod.Codigo = txtbCodigo.Text; mod.IdOferta = Convert.ToInt16(cmbOferta.SelectedValue); mod.NombreOferta = cmbOferta.Text; mod.IdTipo = Convert.ToInt16(cmbTipo.SelectedValue); mod.NombreTipo = cmbTipo.Text; mod.Nombre = txtbNombre.Text; mod.IdSede = Convert.ToInt16(cmbSede.SelectedValue); mod.NombreSede = cmbSede.Text; mod.Facilitador = txtbFacilitador.Text; mod.Horario = txtbHorario.Text; mod.PoblacionMeta = txtbPobMeta.Text; mod.UltimaModificacion = DateTime.Parse(txtbUltMod.Text); mod.CursoRequisitoDe = txtbRequisitoDe.Text; mod.Observaciones = txtbObservaciones.Text; mod.MatriculaPresencial = rbMatPresSi.Checked; mod.MatriculaTelefonica = rbMatTelSi.Checked; mod.MatriculaEnLinea = rbMatLinSi.Checked; mod.CantidadPresTel = Convert.ToInt16(nudCantidadPres.Value); mod.CantidadEnLinea = Convert.ToInt16(nudEnLinea.Value); mod.ListaDeEspera = rbEsperaSi.Checked; mod.LoginUsuario = sesion.Login; if (mod.DatosValidos()) { if (new CursosNeg().ModificarCurso(mod)) { MessageBox.Show("El curso '" + mod.Nombre + "' se modificó exitosamente.", "Éxito"); this.Close(); } } else { MessageBox.Show(this, "Revise que los datos en los campos sean correctos.", "Error"); } } catch (Exception ex) { MainForm.NotificarExcepcion("CU MAT009", ex); } }
/// <summary> /// Eliminar el curso de la fila seleccionada (evento del botón Eliminar) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEliminarCurso_Click(object sender, EventArgs e) { try { if (GridCursos.SelectedRows.Count != 0) { DataGridViewRow row = GridCursos.SelectedRows[0]; string codCurso = row.Cells["Código"].Value.ToString(); string nomCurso = row.Cells["Nombre del curso"].Value.ToString(); DialogResult dialogResult = MessageBox.Show("¿Desea eliminar el curso seleccionado?", "Confirmación", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { if (row.Cells["Estado"].Value.ToString().Equals("Planificado")) { ECurso elim = new ECurso(); elim.LoginUsuario = sesion.Login; elim.Codigo = codCurso; elim.Nombre = nomCurso; if (new CursosNeg().EliminarCurso(elim)) { MessageBox.Show("Se ha eliminado la información del curso '" + nomCurso + "'.", "Éxito"); CargarTablaCursos(new ECurso()); } } else { MessageBox.Show("El curso “" + nomCurso + "” no se puede eliminar ya que no se " + "encuentra en el estado “Planificado”", "Error"); } } } } catch (Exception ex) { MainForm.NotificarExcepcion("CU MAT010", ex); } }
/// <summary> /// Cargar datos actualizados de ofertas /// </summary> /// <param name="Nombre"></param> /// <param name="Descripcion"></param> private void CargarTablaCursos(ECurso consulta) { try { // Reiniciar contenidos del DataGridView GridCursos.DataSource = null; GridCursos.Rows.Clear(); GridCursos.Refresh(); // Llenar valores de entidad consulta consulta.Nombre = txtbNombre.Text; if (!cmbEstado.Text.Equals("Cualquiera")) consulta.IdEstado = Convert.ToInt16(cmbEstado.SelectedValue); if (!cmbOferta.Text.Equals("Cualquiera")) consulta.IdOferta = Convert.ToInt16(cmbOferta.SelectedValue); if (!cmbTipo.Text.Equals("Cualquiera")) consulta.IdTipo = Convert.ToInt16(cmbTipo.SelectedValue); DataView info = new CursosNeg().ConsultarCursos(consulta); GridCursos.DataSource = info; // Mostrar subrayado si el usuario dispone del permiso Ver Detalles if (sesion.permisos.VerDetallesCurso) GridCursos.Columns["Nombre del curso"].DefaultCellStyle.Font = new Font(Font, FontStyle.Underline); } catch (Exception ex) { MainForm.NotificarExcepcion("CU MAT006", ex); } }