コード例 #1
0
        // 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);
        }
コード例 #2
0
        // *** 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);
        }