public List <ReporteAlumno> GetReporteAlumno(Usuario alumno) { List <ReporteAlumno> reporteAlumno = new List <ReporteAlumno>(); try { OpenConnection(); SqlCommand cmdMaterias = new SqlCommand("select distinct coalesce( com.anio_especialidad, 0) anio_especialidad, m.desc_materia, m.id_materia, p.desc_plan " + "from materias m " + "inner join planes p on p.id_plan = m.id_plan " + "left join cursos c on c.id_materia = m.id_materia " + "left join comisiones com on com.id_comision = c.id_comision " + "where m.id_plan = @IdPlan", sqlConn); cmdMaterias.Parameters.Add("@IdPlan", SqlDbType.Int).Value = alumno.IdPlan; SqlDataReader drMaterias = cmdMaterias.ExecuteReader(); while (drMaterias.Read()) { ReporteAlumno report = new ReporteAlumno(); report.AnioEspecialidad = (int)drMaterias["anio_especialidad"]; report.DescMateria = (string)drMaterias["desc_materia"]; report.IdMateria = (int)drMaterias["id_materia"]; report.DescPlan = (string)drMaterias["desc_plan"]; if (report.AnioEspecialidad != 0)// si es 0 es porque la materia no tiene comision por lo tanto no tiene anio_especialidad { reporteAlumno.Add(report); } } drMaterias.Close(); SqlCommand cmdCursada = new SqlCommand("select com.desc_comision, m.id_materia, coalesce(ai.condicion,'') condicion, ai.nota " + "from cursos c " + "inner join alumnos_inscripciones ai on ai.id_curso=c.id_curso " + "inner join comisiones com on com.id_comision = c.id_comision " + "inner join materias m on m.id_materia = c.id_materia " + "where ai.id_alumno=@IdAlumno ", sqlConn); cmdCursada.Parameters.Add("@IdAlumno", SqlDbType.Int).Value = alumno.IdPersona; SqlDataReader drCursada = cmdCursada.ExecuteReader(); while (drCursada.Read()) { ReporteAlumno report = new ReporteAlumno(); switch ((string)drCursada["condicion"]) { case "": report.Estado = ""; break; case "Libre": report.Estado = "Libre"; break; case "Cursando": report.Estado = "Cursa en: " + (string)drCursada["desc_comision"]; break; case "Regular": report.Estado = "Regular"; break; case "Aprobado": report.Estado = "Aprobado con " + ((int)drCursada["nota"]).ToString(); break; default: report.Estado = ""; break; } report.IdMateria = (int)drCursada["id_materia"]; //añadir a donde id_materia = id_materia foreach (var r in reporteAlumno) { if (r.IdMateria == report.IdMateria) { r.Estado = report.Estado; } } } drCursada.Close(); } catch (Exception Ex) { Exception ExcepcionManejada = new Exception("Error al recuperar lista de cursos GetAll()", Ex); throw ExcepcionManejada; } finally { CloseConnection(); } return(reporteAlumno); }
public List <ReporteAlumno> GetReportesDelAlumno(int?idPersona) { List <ReporteAlumno> reporteAlumno = new List <ReporteAlumno>(); try { OpenConnection(); SqlCommand cmdMaterias = new SqlCommand("SELECT ISNULL(com.anio_especialidad,0) anio_especialidad, ISNULL(com.desc_comision,' ') desc_comision, " + " m.desc_materia, m.id_materia, " + " ISNULL(ai.condicion,'') condicion, ISNULL(ai.nota,0) nota, " + " pl.desc_plan " + " FROM materias m " + " LEFT JOIN cursos c ON c.id_materia = m.id_materia " + " LEFT JOIN comisiones com ON com.id_comision = c.id_comision " + " LEFT JOIN alumnos_inscripciones ai ON ai.id_curso = c.id_curso " + " LEFT JOIN personas p ON p.id_persona = ai.id_alumno " + " LEFT JOIN planes pl ON m.id_plan = pl.id_plan " + " WHERE p.id_persona = @idPersona or p.id_persona is null", sqlConn); cmdMaterias.Parameters.Add("@idPersona", SqlDbType.Int).Value = idPersona; SqlDataReader drMaterias = cmdMaterias.ExecuteReader(); while (drMaterias.Read()) { ReporteAlumno report = new ReporteAlumno(); report.AnioEspecialidad = (int)drMaterias["anio_especialidad"]; report.DescMateria = (string)drMaterias["desc_materia"]; report.IdMateria = (int)drMaterias["id_materia"]; report.DescPlan = (string)drMaterias["desc_plan"]; switch ((string)drMaterias["condicion"]) { case "": report.Estado = ""; break; case "Libre": report.Estado = "Libre"; break; case "Cursando": report.Estado = "Cursa en: " + (string)drMaterias["desc_comision"]; break; case "Regular": report.Estado = "Regular"; break; case "Aprobado": report.Estado = "Aprobado con " + ((int)drMaterias["nota"]).ToString(); break; } reporteAlumno.Add(report); } drMaterias.Close(); } catch (Exception Ex) { Exception ExcepcionManejada = new Exception("Error al recuperar lista de cursos GetAll() " + Ex.ToString(), Ex); throw ExcepcionManejada; } finally { CloseConnection(); } return(reporteAlumno); }