/// <summary> /// Consultar Ofertas disponibles a partir de criterios como la sede, el /// estado y el nombre de la oferta registrada. /// </summary> /// <param name="oferta"></param> /// <returns>datatable con las coincidencias</returns> public DataTable ConsultarOfertas(EOferta oferta) { SqlCommand comando = CrearComandoProc("MAT_OfertaConsultar"); comando.Parameters.AddWithValue("@IdEstado", oferta.IdEstado); comando.Parameters.AddWithValue("@IdSede", oferta.IdSede); comando.Parameters.AddWithValue("@Nombre", oferta.Nombre); return EjecutarComandoDataTable(comando); }
/// <summary> /// Cambiar el estado de la oferta /// </summary> /// <param name="oferta">Entidad de oferta</param> /// <returns>1 - si la operación finalizó sin excepciones</returns> public int CambiarEstadoOferta(EOferta oferta) { SqlCommand comando = CrearComandoProc("MAT_OfertaCambiarEstado"); comando.Parameters.AddWithValue("@IdOferta", oferta.IdOferta); comando.Parameters.AddWithValue("@IdEstadoOferta", oferta.IdEstado); comando.Parameters.AddWithValue("@LoginUsuario", oferta.LoginUsuario); comando.Parameters.AddWithValue("@Observaciones", oferta.Observacion); comando.Parameters.AddWithValue("@FechaHora", oferta.FechaRegistro); return EjecutarComando(comando); }
/// <summary> /// Cambia el estado de la oferta y actualiza el historial /// </summary> /// <param name="oferta"></param> /// <returns>true - si el procedimiento tuvo éxito</returns> public bool CambiarEstadoOferta(EOferta oferta, string anterior, string nuevo) { try { if (anterior.Equals("En matrícula") && !nuevo.Equals("En matrícula") || !anterior.Equals("En matrícula") && nuevo.Equals("En matrícula")) { if (ofertasDAL.CambiarEstadoOferta(oferta) != 0) { // Notificar a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = oferta.LoginUsuario; entrada.Accion = "Cambiar estado de oferta"; entrada.TipoEvento = "Modificar"; entrada.Descripcion = "El estado de la oferta '" + oferta.Nombre + "' fue cambiado de '" + anterior + "' a '" + nuevo + "'."; entrada.Entidad = oferta.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } else { return false; } } catch { return false; } }
/// <summary> /// Comprobar y guardar el nuevo registro de oferta /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGuardar_Click(object sender, EventArgs e) { try { EOferta nueva = new EOferta(); nueva.LoginUsuario = sesion.Login; nueva.Nombre = txtbNombre.Text; nueva.Estado = cmbEstado.Text; nueva.IdEstado = Convert.ToInt16(cmbEstado.SelectedValue); nueva.IdSede = Convert.ToInt16(cmbSede.SelectedValue); nueva.Sede = cmbSede.Text; nueva.MatriculaIniciaEl = Convert.ToDateTime(txtbInicioMatricula.Text + " " + cmbHora.Text + ":" + cmbMinutos.Text + ":00"); nueva.FechaRegistro = Convert.ToDateTime(txtbFechaReg.Text); nueva.UltimaModificacion = Convert.ToDateTime(txtbUltMod.Text); nueva.Observacion = txtbObservacion.Text; if (nueva.DatosValidos()) { new OfertasNeg().RegistrarOferta(nueva); MessageBox.Show(this, "La oferta '" + nueva.Nombre + "' se registró " + "exitosamente. ", "Éxito"); this.Close(); } else { MessageBox.Show(this, "Revise que los datos en los campos sean correctos.", "Error"); } } catch (Exception ex) { MainForm.NotificarExcepcion("CU MAT003", ex); } }
/// <summary> /// Registrar una nueva oferta en la base de datos /// </summary> /// <param name="oferta">Entidad de oferta</param> /// <returns>1 - si la operación finalizó sin excepciones</returns> public int RegistrarOferta(EOferta oferta) { SqlCommand comando = CrearComandoProc("MAT_OfertaRegistrar"); comando.Parameters.AddWithValue("@IdEstadoOferta", oferta.IdEstado); comando.Parameters.AddWithValue("@IdSede", oferta.IdSede); comando.Parameters.AddWithValue("@Nombre", oferta.Nombre); comando.Parameters.AddWithValue("@FechaInicio", oferta.MatriculaIniciaEl); comando.Parameters.AddWithValue("@FechaRegistro", oferta.FechaRegistro); comando.Parameters.AddWithValue("@UltimaModificacion", oferta.UltimaModificacion); comando.Parameters.AddWithValue("@Observacion", oferta.Observacion); return EjecutarComando(comando); }
/// <summary> /// Registra una oferta /// </summary> /// <param name="oferta"></param> /// <returns>true - si el procedimiento tuvo éxito</returns> public bool RegistrarOferta(EOferta oferta) { try { if (ofertasDAL.RegistrarOferta(oferta) != 0) { // Notificar a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = oferta.LoginUsuario; entrada.Accion = "Registrar oferta"; entrada.TipoEvento = "Registrar"; entrada.Descripcion = "Se ha registrado la oferta '" + oferta.Nombre + "' con la siguiente información: " + "estado = " + oferta.Estado + ", " + "Sede = " + oferta.Sede + ", " + "Fecha y hora de matrícula = " + oferta.FechaRegistro + ", " + "Observaciones = " + oferta.Observacion; entrada.Entidad = oferta.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } catch { return false; } }
/// <summary> /// Elimina una oferta de la base de datos a partir de su ID /// </summary> /// <param name="oferta"></param> /// <returns>true - si el procedimiento tuvo éxito</returns> public bool EliminarOferta(EOferta oferta) { try { if (ofertasDAL.EliminarOferta(oferta.IdOferta) != 0) { // Notificar a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = oferta.LoginUsuario; entrada.Accion = "Eliminar oferta"; entrada.TipoEvento = "Eliminar"; entrada.Descripcion = "Se ha eliminado la información de la oferta '" + oferta.Nombre + "'."; entrada.Entidad = oferta.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } catch { return false; } }
/// <summary> /// Consultar tabla de ofertas /// </summary> /// <param name="consulta"></param> /// <returns></returns> public DataView ConsultarOfertas(EOferta consulta) { DataTable tabla = ofertasDAL.ConsultarOfertas(consulta); return tabla.AsDataView(); }
/// <summary> /// Guardar cambios sobre una oferta /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGuardar_Click(object sender, EventArgs e) { try { EOferta mod = new EOferta(); mod.LoginUsuario = sesion.Login; mod.IdOferta = idOferta; mod.Nombre = txtbNombre.Text; mod.IdEstado = Convert.ToInt16(cmbEstado.SelectedValue); mod.IdSede = Convert.ToInt16(cmbSede.SelectedValue); mod.MatriculaIniciaEl = Convert.ToDateTime(txtbInicioMatricula.Text + " " + cmbHora.Text + ":" + cmbMinutos.Text + ":00"); mod.UltimaModificacion = DateTime.Now; mod.Observacion = txtbObservacion.Text; if (mod.DatosValidos()) { if (new OfertasNeg().ModificarOferta(mod)) { MessageBox.Show(this, "La oferta '" + 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 MAT004", ex); } }
/// <summary> /// Eliminar una oferta si se encuentra una fila seleccionada /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEliminarOferta_Click(object sender, EventArgs e) { try { if (GridOferta.SelectedRows.Count != 0) { DataGridViewRow row = GridOferta.SelectedRows[0]; string nombreOferta = row.Cells["Nombre"].Value.ToString(); int idOferta = int.Parse(row.Cells["ID"].Value.ToString()); DialogResult dialogResult = MessageBox.Show("¿Desea eliminar la oferta seleccionada?", "Confirmación", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { EOferta elim = new EOferta(); elim.Nombre = nombreOferta; elim.IdOferta = idOferta; if (new OfertasNeg().EliminarOferta(elim)) { MessageBox.Show("Se ha eliminado la información de la oferta '" + nombreOferta + "'.", "Éxito"); CargarTablaOfertas(new EOferta()); } else { MessageBox.Show("No se ha podido eliminar la oferta '" + nombreOferta + "' porque tiene cursos asignados.", "Error"); } } } } catch (Exception ex) { MainForm.NotificarExcepcion("CU MAT005", ex); } }
/// <summary> /// Cargar datos actualizados de ofertas /// </summary> /// <param name="Nombre"></param> /// <param name="Descripcion"></param> private void CargarTablaOfertas(EOferta consulta) { try { // Reiniciar contenidos del DataGridView GridOferta.DataSource = null; GridOferta.Rows.Clear(); GridOferta.Refresh(); // Llenar valores de entidad consulta if (!cmbEstado.Text.Equals("Cualquiera")) consulta.IdEstado = Convert.ToInt16(cmbEstado.SelectedValue); if (!cmbSede.Text.Equals("Cualquiera")) consulta.IdSede = Convert.ToInt16(cmbSede.SelectedValue); consulta.Nombre = txtbNombre.Text; DataView info = new OfertasNeg().ConsultarOfertas(consulta); GridOferta.DataSource = info; // Configurar alineación de columnas especiales GridOferta.Columns["ID"].Visible = false; GridOferta.Columns["Sede"].DefaultCellStyle.Font = new Font(Font, FontStyle.Bold); GridOferta.Columns["Matrícula inicia el"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; // Mostrar subrayado si el usuario dispone del permiso Ver Detalles if (sesion.permisos.VerDetallesOferta) GridOferta.Columns["Nombre"].DefaultCellStyle.Font = new Font(Font, FontStyle.Underline); } catch (Exception ex) { MainForm.NotificarExcepcion("CU MAT001", ex); } }