// Get all courses of speciefied profesor public static List <int> GetAllCoursesFromDNIProfesor(string dni) { List <int> allCourses = new List <int>(); Conexion con = new Conexion(); con.Abrir(); string query = "SELECT * FROM `curso`"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaCursos = new DataTable(); tablaCursos.Load(myReader); foreach (DataRow row in tablaCursos.Rows) { // Obtiene el profesor del curso recorrido y compara si coincide con el profesor que estamos actualizando if (dni.Equals(IDtoTEXT.GetProfesorDNIFromIDInAsignatura(IDtoTEXT.GetIDAsignaturaFromAsignaturaInCurso(int.Parse(row["ID"].ToString()))))) { // Si coincide entonces lo aniadimos a cursos del profesor allCourses.Add(int.Parse(row["ID"].ToString())); } } con.Cerrar(); return(allCourses); }
// Cargar asignaturas public void CargarAsignaturas() { // Limpia listViewAsignaturas listViewAsignaturas.Items.Clear(); Conexion con = new Conexion(); con.Abrir(); string query = "SELECT * FROM `asignatura`"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaAsignaturas = new DataTable(); tablaAsignaturas.Load(myReader); foreach (DataRow row in tablaAsignaturas.Rows) { ListViewItem lvi = new ListViewItem(); lvi.Text = row["ID"].ToString(); lvi.SubItems.Add(row["carrera"].ToString()); lvi.SubItems.Add(row["asignatura"].ToString()); lvi.SubItems.Add(IDtoTEXT.GetProfesorFullNameFromDNIInProfesor(row["profesor"].ToString())); listViewAsignaturas.Items.Add(lvi); } con.Cerrar(); }
// Carga cursos public void cargarCursos(string dni) { // Limpia listViews listViewCursosDesapuntado.Items.Clear(); listViewCursosApuntado.Items.Clear(); Conexion con = new Conexion(); con.Abrir(); string query = "SELECT * FROM `curso`;"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaCursos = new DataTable(); tablaCursos.Load(myReader); // Introduce todos los cursos en listBiewcursosDesapuntado foreach (DataRow row in tablaCursos.Rows) { listViewCursosDesapuntado.Items.Add(row["ID"].ToString() + " " + IDtoTEXT.GetAsignaturaFromIDAsignaturaInAsignatura(IDtoTEXT.GetIDAsignaturaFromAsignaturaInCurso(int.Parse(row["ID"].ToString())))); } // Busca los cursos a los que esta apuntado el dni en cursoalumnos string queryApuntado = "SELECT * FROM `cursoalumno` WHERE `DNIAlumno` = '" + dni + "';"; MySqlCommand comandApuntado = con.Comando(queryApuntado); MySqlDataReader myReaderApuntado = comandApuntado.ExecuteReader(); DataTable tablaCursosApuntado = new DataTable(); tablaCursosApuntado.Load(myReaderApuntado); // Introduce los cursos a los que esta apuntado el alumno y lo elimina de la lista de desapuntados foreach (DataRow row in tablaCursosApuntado.Rows) { listViewCursosApuntado.Items.Add(row["IDCurso"].ToString() + " " + IDtoTEXT.GetAsignaturaFromIDAsignaturaInAsignatura(IDtoTEXT.GetIDAsignaturaFromAsignaturaInCurso(int.Parse(row["IDCurso"].ToString())))); List <ListViewItem> itemsEliminar = new List <ListViewItem>(); foreach (ListViewItem lvi in listViewCursosDesapuntado.Items) { if (lvi.Text.Equals(row["IDCurso"].ToString() + " " + IDtoTEXT.GetAsignaturaFromIDAsignaturaInAsignatura(IDtoTEXT.GetIDAsignaturaFromAsignaturaInCurso(int.Parse(row["IDCurso"].ToString()))))) { itemsEliminar.Add(lvi); } } foreach (ListViewItem lvi in itemsEliminar) { listViewCursosDesapuntado.Items.Remove(lvi); } } }
// Click buttonEliminarHorario private void buttonEliminarHorario_Click(object sender, EventArgs e) { try { ComboItem idAula = comboBoxAulas.SelectedItem as ComboItem; int idCursoAula = int.Parse(dataGridView.Rows[dataGridView.SelectedCells[0].RowIndex].Cells[dataGridView.SelectedCells[0].ColumnIndex].Value.ToString().Split(' ')[0]); Conexion con = new Conexion(); con.Abrir(); // Obtiene IDCurso del IDCursoAula eliminado int idCurso = IDtoTEXT.GetIDCursoFromIDCursoAulaInCursoAula(idCursoAula); string query = "DELETE FROM `cursoaula` WHERE `cursoaula`.`IDCursoAula` = " + idCursoAula; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaCursoAula = new DataTable(); tablaCursoAula.Load(myReader); // Recarga el dataGridView FormHorarios.sharedInstance.dateTimePicker_ValueChanged(null, null); // Calcula las horas totales de este curso y actualiza el precio Utils.CalcularPrecioCurso(idCurso); MessageBox.Show("Horario eliminado", "HORARIO ELIMINADO", MessageBoxButtons.OK, MessageBoxIcon.Information); con.Cerrar(); } catch (System.FormatException) { MessageBox.Show("No hay horario establecido en la celda seleccionada.", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
// Cargar profesores private void CargarProfesores() { // Limpia comboBoxProfesores comboBoxProfesores.Items.Clear(); Conexion con = new Conexion(); con.Abrir(); string query = "SELECT * FROM `profesor`"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaProfesores = new DataTable(); tablaProfesores.Load(myReader); foreach (DataRow row in tablaProfesores.Rows) { comboBoxProfesores.Items.Add(new ComboItem(IDtoTEXT.GetProfesorFullNameFromDNIInProfesor(row["DNI"].ToString()), row["DNI"].ToString())); } con.Cerrar(); }
// Click BtnBuscar private void BtnBuscar_Click(object sender, EventArgs e) { try { // Limpia listViewCursos listViewCursos.Items.Clear(); RadioButton rb = new RadioButton(); if (radioButtonCarrera.Checked) { rb = radioButtonCarrera; } else if (radioButtonAsignatura.Checked) { rb = radioButtonAsignatura; } else if (radioButtonTipoCurso.Checked) { rb = radioButtonTipoCurso; } else if (radioButtonProfesor.Checked) { rb = radioButtonProfesor; } else if (radioButtonMostrarTodos.Checked) { rb = radioButtonMostrarTodos; } switch (rb.Text) { case "Carrera": // Carga todos los cursos Conexion con = new Conexion(); con.Abrir(); string query = "SELECT * FROM `curso`"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaCursos = new DataTable(); tablaCursos.Load(myReader); // Carga los datos en listViewCursos foreach (DataRow row in tablaCursos.Rows) { ListViewItem lvi = new ListViewItem(); // asignatura string queryAs = "SELECT `carrera`, `asignatura` FROM `asignatura` WHERE `id` = " + row["asignatura"].ToString(); MySqlCommand comandAs = con.Comando(queryAs); MySqlDataReader myReaderAs = comandAs.ExecuteReader(); DataTable tablaAsignatura = new DataTable(); tablaAsignatura.Load(myReaderAs); if (tablaAsignatura.Rows[0]["carrera"].ToString().Equals(comboBoxBusquedaCursos.SelectedItem.ToString())) { // id lvi.Text = row["id"].ToString(); // asignatura lvi.SubItems.Add(tablaAsignatura.Rows[0]["asignatura"].ToString()); // tipoCurso string queryTC = "SELECT `tipoCurso` FROM `precio` WHERE `id` = " + row["tipoCurso"].ToString(); MySqlCommand comandTC = con.Comando(queryTC); MySqlDataReader myReaderTC = comandTC.ExecuteReader(); DataTable tablaTC = new DataTable(); tablaTC.Load(myReaderTC); lvi.SubItems.Add(tablaTC.Rows[0]["tipoCurso"].ToString()); // precio lvi.SubItems.Add(row["precio"].ToString()); // Add to listViewCursos listViewCursos.Items.Add(lvi); } } con.Cerrar(); break; case "Asignatura": // Carga todos los cursos Conexion con2 = new Conexion(); con2.Abrir(); string query2 = "SELECT * FROM `curso`"; MySqlCommand comand2 = con2.Comando(query2); MySqlDataReader myReader2 = comand2.ExecuteReader(); DataTable tablaCursos2 = new DataTable(); tablaCursos2.Load(myReader2); // Carga los datos en listViewCursos foreach (DataRow row in tablaCursos2.Rows) { ListViewItem lvi = new ListViewItem(); // asignatura string queryAs = "SELECT `asignatura` FROM `asignatura` WHERE `id` = " + row["asignatura"].ToString(); MySqlCommand comandAs = con2.Comando(queryAs); MySqlDataReader myReaderAs = comandAs.ExecuteReader(); DataTable tablaAsignatura = new DataTable(); tablaAsignatura.Load(myReaderAs); if (tablaAsignatura.Rows[0]["asignatura"].ToString().Equals(comboBoxBusquedaCursos.SelectedItem.ToString())) { // id lvi.Text = row["id"].ToString(); // asignatura lvi.SubItems.Add(tablaAsignatura.Rows[0]["asignatura"].ToString()); // tipoCurso string queryTC = "SELECT `tipoCurso` FROM `precio` WHERE `id` = " + row["tipoCurso"].ToString(); MySqlCommand comandTC = con2.Comando(queryTC); MySqlDataReader myReaderTC = comandTC.ExecuteReader(); DataTable tablaTC = new DataTable(); tablaTC.Load(myReaderTC); lvi.SubItems.Add(tablaTC.Rows[0]["tipoCurso"].ToString()); // precio lvi.SubItems.Add(row["precio"].ToString()); // Add to listViewCursos listViewCursos.Items.Add(lvi); } } con2.Cerrar(); break; case "Tipo de curso": // Carga todos los cursos Conexion con3 = new Conexion(); con3.Abrir(); string query3 = "SELECT * FROM `curso`"; MySqlCommand comand3 = con3.Comando(query3); MySqlDataReader myReader3 = comand3.ExecuteReader(); DataTable tablaCursos3 = new DataTable(); tablaCursos3.Load(myReader3); // Carga los datos en listViewCursos foreach (DataRow row in tablaCursos3.Rows) { ListViewItem lvi = new ListViewItem(); string queryTC = "SELECT `tipoCurso` FROM `precio` WHERE `id` = " + row["tipoCurso"].ToString(); MySqlCommand comandTC = con3.Comando(queryTC); MySqlDataReader myReaderTC = comandTC.ExecuteReader(); DataTable tablaTC = new DataTable(); tablaTC.Load(myReaderTC); if (tablaTC.Rows[0]["tipoCurso"].ToString().Equals(comboBoxBusquedaCursos.SelectedItem.ToString())) { // id lvi.Text = row["id"].ToString(); // asignatura string queryAs = "SELECT `asignatura` FROM `asignatura` WHERE `id` = " + row["asignatura"].ToString(); MySqlCommand comandAs = con3.Comando(queryAs); MySqlDataReader myReaderAs = comandAs.ExecuteReader(); DataTable tablaAsignatura = new DataTable(); tablaAsignatura.Load(myReaderAs); lvi.SubItems.Add(tablaAsignatura.Rows[0]["asignatura"].ToString()); // tipoCurso lvi.SubItems.Add(tablaTC.Rows[0]["tipoCurso"].ToString()); // precio lvi.SubItems.Add(row["precio"].ToString()); // Add to listViewCursos listViewCursos.Items.Add(lvi); } } con3.Cerrar(); break; case "Profesor": // Carga todos los cursos Conexion con4 = new Conexion(); con4.Abrir(); string query4 = "SELECT * FROM `curso`"; MySqlCommand comand4 = con4.Comando(query4); MySqlDataReader myReader4 = comand4.ExecuteReader(); DataTable tablaCursos4 = new DataTable(); tablaCursos4.Load(myReader4); // Carga los datos en listViewCursos foreach (DataRow row in tablaCursos4.Rows) { ListViewItem lvi = new ListViewItem(); string queryPr = "SELECT `profesor` FROM `asignatura` WHERE `id` = " + row["asignatura"].ToString(); MySqlCommand comandPr = con4.Comando(queryPr); MySqlDataReader myReaderPr = comandPr.ExecuteReader(); DataTable tablaPr = new DataTable(); tablaPr.Load(myReaderPr); string nombreProfesor = IDtoTEXT.GetProfesorFullNameFromDNIInProfesor(tablaPr.Rows[0]["profesor"].ToString()); if (nombreProfesor.Equals(comboBoxBusquedaCursos.SelectedItem.ToString())) { // id lvi.Text = row["id"].ToString(); // asignatura string queryAs = "SELECT `asignatura` FROM `asignatura` WHERE `id` = " + row["asignatura"].ToString(); MySqlCommand comandAs = con4.Comando(queryAs); MySqlDataReader myReaderAs = comandAs.ExecuteReader(); DataTable tablaAsignatura = new DataTable(); tablaAsignatura.Load(myReaderAs); lvi.SubItems.Add(tablaAsignatura.Rows[0]["asignatura"].ToString()); // tipoCurso string queryTC = "SELECT `tipoCurso` FROM `precio` WHERE `id` = " + row["tipoCurso"].ToString(); MySqlCommand comandTC = con4.Comando(queryTC); MySqlDataReader myReaderTC = comandTC.ExecuteReader(); DataTable tablaTC = new DataTable(); tablaTC.Load(myReaderTC); lvi.SubItems.Add(tablaTC.Rows[0]["tipoCurso"].ToString()); // precio lvi.SubItems.Add(row["precio"].ToString()); // Add to listViewCursos listViewCursos.Items.Add(lvi); } } con4.Cerrar(); break; case "Mostrar todos": CargarCursos(); break; default: break; } } catch (System.NullReferenceException) { MessageBox.Show("Debe seleccionar un elemento para realizar una busqueda.", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static void MakeCSV(DateTime[] week, int idAula) { string filePath = @"week.csv"; string delimiter = ";"; // Get cursos from week selected Conexion con = new Conexion(); con.Abrir(); string query = "SELECT * FROM `cursoaula` WHERE `IDAula` = " + idAula + " AND `comienzo` >= '" + week[0].ToString("yyyy/MM/dd HH:mm:ss") + "' AND `fin` < '" + week[6].AddDays(1).ToString("yyyy/MM/dd HH:mm:ss") + "'"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaCursos = new DataTable(); tablaCursos.Load(myReader); con.Cerrar(); // Array bidimensional string[][] output = new string[][] { new string[] { "HORAS/DIAS", week[0].ToString("dd/MM/yyyy"), week[1].ToString("dd/MM/yyyy"), week[2].ToString("dd/MM/yyyy"), week[3].ToString("dd/MM/yyyy"), week[4].ToString("dd/MM/yyyy"), week[5].ToString("dd/MM/yyyy"), week[6].ToString("dd/MM/yyyy") }, new string[] { "08:00:00", "", "", "", "", "", "", "" }, new string[] { "08:30:00", "", "", "", "", "", "", "" }, new string[] { "09:00:00", "", "", "", "", "", "", "" }, new string[] { "09:30:00", "", "", "", "", "", "", "" }, new string[] { "10:00:00", "", "", "", "", "", "", "" }, new string[] { "10:30:00", "", "", "", "", "", "", "" }, new string[] { "11:00:00", "", "", "", "", "", "", "" }, new string[] { "11:30:00", "", "", "", "", "", "", "" }, new string[] { "12:00:00", "", "", "", "", "", "", "" }, new string[] { "12:30:00", "", "", "", "", "", "", "" }, new string[] { "13:00:00", "", "", "", "", "", "", "" }, new string[] { "13:30:00", "", "", "", "", "", "", "" }, new string[] { "14:00:00", "", "", "", "", "", "", "" }, new string[] { "14:30:00", "", "", "", "", "", "", "" }, new string[] { "15:00:00", "", "", "", "", "", "", "" }, new string[] { "15:30:00", "", "", "", "", "", "", "" }, new string[] { "16:00:00", "", "", "", "", "", "", "" }, new string[] { "16:30:00", "", "", "", "", "", "", "" }, new string[] { "17:00:00", "", "", "", "", "", "", "" }, new string[] { "17:30:00", "", "", "", "", "", "", "" }, new string[] { "18:00:00", "", "", "", "", "", "", "" }, new string[] { "18:30:00", "", "", "", "", "", "", "" }, new string[] { "19:00:00", "", "", "", "", "", "", "" }, new string[] { "19:30:00", "", "", "", "", "", "", "" }, new string[] { "20:00:00", "", "", "", "", "", "", "" }, new string[] { "20:30:00", "", "", "", "", "", "", "" }, new string[] { "21:00:00", "", "", "", "", "", "", "" }, new string[] { "21:30:00", "", "", "", "", "", "", "" }, new string[] { "22:00:00", "", "", "", "", "", "", "" } }; // Introduce datos en el array bidimensional foreach (DataRow row in tablaCursos.Rows) { // Seleccion de columna string[] fechaHoraComienzo = row["comienzo"].ToString().Split(' '); string[] fechaHoraFin = row["fin"].ToString().Split(' '); int columna = 1; for (int i = columna; i < output[0].Length; i++) { if (output[0][i].ToString().Equals(fechaHoraComienzo[0])) { columna = i; } } // Seleccion de hora comienzo y hora fin int fila = 1; for (int i = fila; i < output.Length; i++) { DateTime horaFila = Convert.ToDateTime(output[i][0].ToString()); DateTime horaComienzoCurso = Convert.ToDateTime(fechaHoraComienzo[1]); DateTime horaFinCurso = Convert.ToDateTime(fechaHoraFin[1]); // Si esta dentro del rango de horas introduce la clase en array bidimensional if (horaComienzoCurso <= horaFila && horaFinCurso >= horaFila) { // Obtiene el idAsignatura de curso, despues obtiene el nombre de la asignatura de asignaturas y lo introduce en el array bidimensional output[i][columna] = row["IDCursoAula"].ToString() + " - " + IDtoTEXT.GetAsignaturaFromIDAsignaturaInAsignatura(IDtoTEXT.GetIDAsignaturaFromAsignaturaInCurso(int.Parse(row["IDCurso"].ToString()))) + " (" + row["IDCurso"].ToString() + ")"; } } } int length = output.GetLength(0); StringBuilder sb = new StringBuilder(); for (int index = 0; index < length; index++) { sb.AppendLine(string.Join(delimiter, output[index])); } File.WriteAllText(filePath, sb.ToString()); }
// Load data public void loadData() { // Carga aulas Conexion con = new Conexion(); con.Abrir(); string query = "SELECT * FROM `curso`"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaCursos = new DataTable(); tablaCursos.Load(myReader); foreach (DataRow row in tablaCursos.Rows) { comboBoxCursos.Items.Add(new ComboItem(row["id"].ToString() + " - " + IDtoTEXT.GetAsignaturaFromIDAsignaturaInAsignatura(int.Parse(row["asignatura"].ToString())), int.Parse(row["id"].ToString()))); } query = "SELECT * FROM `aula`"; MySqlCommand comandA = con.Comando(query); MySqlDataReader myReaderA = comandA.ExecuteReader(); DataTable tablaAulas = new DataTable(); tablaAulas.Load(myReaderA); foreach (DataRow row in tablaAulas.Rows) { comboBoxAulas.Items.Add(new ComboItem(row["nombre"].ToString(), int.Parse(row["id"].ToString()))); } }
// Calcular mensualidad de profesor public static double calcularMensualidadProfesor(List <int> allCourses) { double precioMensual = 0.0; Conexion con = new Conexion(); con.Abrir(); // Recorre todos los cursos del profesor foreach (int idCurso in allCourses) { double horasTotal = 0.0; // Almacena la cantidad de alumnos apuntados al curso int alumnosApuntados = 0; // Primero selecciona todos los alumnos apuntados a dicho curso string query = "select * from `cursoalumno` WHERE `IDCurso` = " + idCurso; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaCantidadAlumnos = new DataTable(); tablaCantidadAlumnos.Load(myReader); myReader.Close(); // Calcula la cantidad de alumnos apuntados alumnosApuntados = tablaCantidadAlumnos.Rows.Count; // Carga todos los horarios de el curso recorrido string queryHorario = "select * from `cursoaula` WHERE `IDCurso` = " + idCurso; MySqlCommand comandHorario = con.Comando(queryHorario); MySqlDataReader myReaderHorario = comandHorario.ExecuteReader(); DataTable cursoAula = new DataTable(); cursoAula.Load(myReaderHorario); myReader.Close(); foreach (DataRow row in cursoAula.Rows) { DateTime comienzo = Convert.ToDateTime(row["comienzo"].ToString()); DateTime fin = Convert.ToDateTime(row["fin"].ToString()); // Si el horario pertenece al mes actual entonces lo aniade if (comienzo.Month == DateTime.Today.Month) { TimeSpan result = fin.Subtract(comienzo); horasTotal += result.TotalHours; } } // Obtiene tipo precio del curso especificado y lo multiplica por las horas totales string queryPrecio = "select `tipoCurso` from `curso` WHERE ID = " + idCurso; MySqlCommand comandPrecio = con.Comando(queryPrecio); MySqlDataReader myReaderPrecio = comandPrecio.ExecuteReader(); DataTable precio = new DataTable(); precio.Load(myReaderPrecio); myReaderPrecio.Close(); double precioHora = IDtoTEXT.GetPrecioFromIDInPrecio(int.Parse(precio.Rows[0]["tipoCurso"].ToString())); // precioMensual = horasTotal * precio/hora precioMensual += (horasTotal * precioHora * alumnosApuntados); } // Multiplica por gananciaProfesores precioMensual = precioMensual * (double.Parse(Utils.cargarGananciaProfesores()) / 100); return(precioMensual); }
// *** Actualiza cobro al profesor del curso especificado *** public static void ActualizaPagosProfesores(int idCurso) { // Get profesor DNI from idAsignatura string dni = IDtoTEXT.GetProfesorDNIFromIDInAsignatura(IDtoTEXT.GetIDAsignaturaFromAsignaturaInCurso(idCurso)); // Get all courses of this profesor List <int> allCourses = IDtoTEXT.GetAllCoursesFromDNIProfesor(dni); // Calcula mensualidad del profesor double precioMensual = calcularMensualidadProfesor(allCourses); // Actualiza las ganancias del profesor Conexion con = new Conexion(); con.Abrir(); string query = "select `pagos` from `profesor` WHERE `DNI` = '" + dni + "';"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable tablaPagos = new DataTable(); tablaPagos.Load(myReader); myReader.Close(); if (tablaPagos.Rows.Count != 0) { string[] arrayPagos = tablaPagos.Rows[0]["pagos"].ToString().Split('*'); List <string> pagos = arrayPagos.ToList <string>(); bool pagoEncontrado = false; string pagoEncontradoTexto = ""; foreach (string pago in pagos) { string mes = pago.Split('-')[0]; if (mes.Equals(GetMonthName(DateTime.Today.Month))) { pagoEncontrado = true; pagoEncontradoTexto = pago; } } if (pagoEncontrado) { pagos.Remove(pagoEncontradoTexto); } // Aniade la ganancia del mes actual pagos.Add(GetMonthName(DateTime.Today.Month) + "-" + precioMensual); string fullPagos = ""; foreach (string pago in pagos) { if (!pago.Equals("")) { fullPagos += pago + "*"; } } string queryUpdatePago = "UPDATE `profesor` SET `pagos` = '" + fullPagos + "' WHERE `profesor`.`DNI` = '" + dni + "';"; MySqlCommand comandUpdatePago = con.Comando(queryUpdatePago); MySqlDataReader myReaderUpdatePago = comandUpdatePago.ExecuteReader(); con.Cerrar(); } }
// *** Actualiza precio a pagar de los alumnos del curso especificado *** public static void ActualizaPagosPendientesAlumnos(int idCurso) { List <string> cursosAlumno = new List <string>(); Conexion con = new Conexion(); con.Abrir(); // Primero selecciona todos los alumnos apuntados a dicho curso string query = "select * from `cursoalumno` WHERE `IDCurso` = " + idCurso; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable cursoAlumno = new DataTable(); cursoAlumno.Load(myReader); myReader.Close(); foreach (DataRow row in cursoAlumno.Rows) { // Comprueba si el curso recorrido ya esta pagado por ese alumno if (!Utils.CheckCursoPagado(idCurso, row["DNIAlumno"].ToString())) { // Selecciona todos los datos de uno de los alumnos apuntados al curso string queryAlumno = "select * from `alumno` WHERE `DNI` = '" + row["DNIAlumno"].ToString() + "';"; MySqlCommand comandAlumno = con.Comando(queryAlumno); MySqlDataReader myReaderAlumno = comandAlumno.ExecuteReader(); DataTable alumno = new DataTable(); alumno.Load(myReaderAlumno); myReaderAlumno.Close(); // Si el alumno existe y tiene pagosPendientes crea una lista con dichos pagos if (alumno.Rows.Count != 0) { if (!alumno.Rows[0]["pagosPendientes"].ToString().Equals("")) { // Generar lista de pagos pendientes de alumno recorrido cursosAlumno = GenerarCursosAlumno(alumno.Rows[0]["pagosPendientes"].ToString()); } else { cursosAlumno = new List <string>(); } } // Si no crea una lista vacia else { cursosAlumno = new List <string>(); } // Close MySqlDataReaders myReader.Close(); myReaderAlumno.Close(); // Actualizar el curso actual en la lista generada anteriormente // Si el alumno tiene pagosPendientes... if (cursosAlumno.Count != 0) { string fullDatos = ""; // Recorre los pagosPendientes del alumno, comprueba si el curso ya se encuentra entre ellos: // Si lo encuentra lo elimina y despues lo aniade // SI no lo encuentra lo aniade foreach (string curso in cursosAlumno) { if (curso.Split('-')[0].ToString().Equals(idCurso.ToString())) { cursosAlumno.Remove(curso); break; } } fullDatos = idCurso + "-" + IDtoTEXT.GetAsignaturaFromIDAsignaturaInAsignatura(IDtoTEXT.GetIDAsignaturaFromAsignaturaInCurso(idCurso)) + "-" + IDtoTEXT.GetPrecioFromIDInCurso(idCurso); cursosAlumno.Add(fullDatos); fullDatos = ""; foreach (string curso in cursosAlumno) { // Si el precio del curso no es 0... if (!curso.Split('-')[2].Equals("0")) { fullDatos = fullDatos + curso + "*"; } } string queryMultiple = "UPDATE `alumno` SET `pagosPendientes` = '" + fullDatos + "' WHERE `alumno`.`DNI` = '" + row["DNIAlumno"] + "';"; MySqlCommand comandMultiple = con.Comando(queryMultiple); MySqlDataReader myReaderMultiple = comandMultiple.ExecuteReader(); myReaderMultiple.Close(); } // si el alumno no tiene pagos pendientes... else { string fullDatos = ""; fullDatos = idCurso + "-" + IDtoTEXT.GetAsignaturaFromIDAsignaturaInAsignatura(IDtoTEXT.GetIDAsignaturaFromAsignaturaInCurso(idCurso)) + "-" + IDtoTEXT.GetPrecioFromIDInCurso(idCurso) + "*"; string queryUnico = "UPDATE `alumno` SET `pagosPendientes` = '" + fullDatos + "' WHERE `alumno`.`DNI` = '" + row["DNIAlumno"] + "';"; MySqlCommand comandUnico = con.Comando(queryUnico); MySqlDataReader myReaderUnico = comandUnico.ExecuteReader(); myReaderUnico.Close(); } } } con.Cerrar(); }
// *** Calcula precio total de un curso y lo actualiza *** public static void CalcularPrecioCurso(int idCurso) { double precioTotal = 0.0; double horasTotal = 0.0; Conexion con = new Conexion(); con.Abrir(); string query = "select * from `cursoaula`"; MySqlCommand comand = con.Comando(query); MySqlDataReader myReader = comand.ExecuteReader(); DataTable cursoAula = new DataTable(); cursoAula.Load(myReader); myReader.Close(); foreach (DataRow row in cursoAula.Rows) { // Si es el curso especificado calcula las horas totales if (idCurso == int.Parse(row["IDCurso"].ToString())) { DateTime comienzo = Convert.ToDateTime(row["comienzo"].ToString()); DateTime fin = Convert.ToDateTime(row["fin"].ToString()); TimeSpan result = fin.Subtract(comienzo); horasTotal += result.TotalHours; } } // Obtiene tipo precio del curso especificado y lo multiplica por las horas totales string queryPrecio = "select `tipoCurso` from `curso` WHERE ID = " + idCurso; MySqlCommand comandPrecio = con.Comando(queryPrecio); MySqlDataReader myReaderPrecio = comandPrecio.ExecuteReader(); DataTable precio = new DataTable(); precio.Load(myReaderPrecio); myReaderPrecio.Close(); double precioHora = IDtoTEXT.GetPrecioFromIDInPrecio(int.Parse(precio.Rows[0]["tipoCurso"].ToString())); // precioTotal = horasTotal * precio/hora precioTotal = horasTotal * precioHora; // Actualiza el precio en el curso string queryUpdatePrecio = "UPDATE `curso` SET `precio` = '" + precioTotal.ToString().Replace(',', '.') + "' WHERE `curso`.`ID` = " + idCurso + ";"; MySqlCommand comandUpdatePrecio = con.Comando(queryUpdatePrecio); MySqlDataReader myReaderUpdatePrecio = comandUpdatePrecio.ExecuteReader(); myReaderUpdatePrecio.Close(); con.Cerrar(); // Actualiza todos los alumnos apuntados al curso ActualizaPagosPendientesAlumnos(idCurso); // Actualiza el cobro mensual del profesor que imparte el curso especificado ActualizaPagosProfesores(idCurso); }