Exemplo n.º 1
0
        public ActionResult Editar(Grado modelo, bool activo)
        {
            if (ModelState.IsValid)
            {
                modelo.Activo = activo;

                string strMensaje = new GradoBL().Guardar(modelo);

                if (strMensaje.Equals("OK"))
                {
                    TempData["Grado-Success"] = strMensaje;
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ModelState.AddModelError("", strMensaje);
                }
            }

            string strAtributo = "checked='checked'";

            ViewBag.ActivoSi = activo == true ? strAtributo : "";
            ViewBag.ActivoNo = activo == false ? strAtributo : "";

            this.CargaControles();
            return(View(modelo));
        }
Exemplo n.º 2
0
        public ActionResult Index(int?page, string search)
        {
            CustomHelper.setTitulo("Grado", "Listado");

            List <Grado> Grados = new List <Grado>();

            try
            {
                if (!string.IsNullOrWhiteSpace(search) && search != null)
                {
                    Grados = new GradoBL().Buscar(search, CustomHelper.getColegioId()).ToList();
                }
                else
                {
                    Grados = new GradoBL().ObtenerListado(true, CustomHelper.getColegioId());
                }
            }
            catch (Exception ex)
            {
                ViewBag.Error = string.Format("Message: {0} StackTrace: {1}", ex.Message, ex.StackTrace);
                return(View("~/Views/Shared/Error.cshtml"));
            }

            ViewBag.Search = search;

            int pageSize   = 15;
            int pageNumber = (page ?? 1);

            return(View(Grados.ToPagedList(pageNumber, pageSize)));
        }
Exemplo n.º 3
0
        public JsonResult ObtenerGradoxNivelAcademicoJornada(long id, long jornadaId)
        {
            IList _result = new List <SelectListItem>();

            _result = new GradoBL().ObtenerxNivelAcademicoJornada(CustomHelper.getColegioId(), id, jornadaId).Select(m => new SelectListItem()
            {
                Text = m.Nombre, Value = m.GradoId.ToString()
            }).ToList();
            return(Json(_result, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 4
0
        public ActionResult Cuadro_x_Curso(long id, long seccionId, long cursoId, long alumnoId)
        {
            CursoModel CursoActual = new GradoBL().ObtenerCuadroxCursoAlumno(id, seccionId, cursoId, alumnoId, CustomHelper.getColegioId());

            if (CursoActual == null)
            {
                return(HttpNotFound());
            }

            CustomHelper.setTitulo("Grado", "Cuadro De Actividades Por Curso");

            return(View(CursoActual));
        }
Exemplo n.º 5
0
        public ActionResult Nota_x_Curso(long id, long seccionId)
        {
            CustomHelper.setTitulo("Grado", "Notas Por Curso");

            List <NotaxCursoModel> Cursos = new List <NotaxCursoModel>();

            try
            {
                Cursos = new GradoBL().ObtenerCursoxGrado(CustomHelper.getColegioId(), id, seccionId);
            }
            catch (Exception ex)
            {
                ViewBag.Error = string.Format("Message: {0} StackTrace: {1}", ex.Message, ex.StackTrace);
                return(View("~/Views/Shared/Error.cshtml"));
            }

            return(View(Cursos));
        }
Exemplo n.º 6
0
        public ActionResult Nota_x_Alumno(long id, long seccionId)
        {
            CustomHelper.setTitulo("Grado", "Notas");

            GradoModel GradoActual = new GradoModel();

            try
            {
                GradoActual = new GradoBL().ObtenerEncabezadoGrado(id, seccionId, CustomHelper.getColegioId());
            }
            catch (Exception ex)
            {
                ViewBag.Error = string.Format("Message: {0} StackTrace: {1}", ex.Message, ex.StackTrace);
                return(View("~/Views/Shared/Error.cshtml"));
            }

            return(View(GradoActual));
        }
Exemplo n.º 7
0
 /// <summary>
 /// Obtiene una entidad por su Id
 /// </summary>
 /// <param name="gradoID"></param>
 /// <returns></returns>
 public GradoInfo ObtenerPorID(int gradoID)
 {
     try
     {
         Logger.Info();
         var       gradoBL = new GradoBL();
         GradoInfo result  = gradoBL.ObtenerPorID(gradoID);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 8
0
        public ActionResult Editar(long id)
        {
            Grado GradoActual = new GradoBL().ObtenerxId(id);

            if (GradoActual == null || GradoActual.GradoId == 0)
            {
                return(HttpNotFound());
            }

            CustomHelper.setTitulo("Grado", "Editar");

            string strAtributo = "checked='checked'";

            ViewBag.ActivoSi = GradoActual.Activo == true ? strAtributo : "";
            ViewBag.ActivoNo = GradoActual.Activo == false ? strAtributo : "";

            this.CargaControles();
            return(View(GradoActual));
        }
Exemplo n.º 9
0
 /// <summary>
 ///  Obtiene una lista filtrando por el estatus Activo = 1, Inactivo = 0
 /// </summary>
 /// <returns></returns>
 public IList <GradoInfo> ObtenerTodos(EstatusEnum estatus)
 {
     try
     {
         Logger.Info();
         var gradoBL = new GradoBL();
         IList <GradoInfo> result = gradoBL.ObtenerTodos(estatus);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 10
0
 /// <summary>
 /// Guarda un Grado
 /// </summary>
 /// <param name="grado"></param>
 public int Guardar(GradoInfo grado)
 {
     try
     {
         Logger.Info();
         var gradoBL = new GradoBL();
         int result  = gradoBL.Guardar(grado);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 11
0
 /// <summary>
 /// Obtiene una lista paginada de Grados
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public ResultadoInfo <GradoInfo> ObtenerPorPagina(PaginacionInfo pagina, GradoInfo filtro)
 {
     try
     {
         Logger.Info();
         var gradoBL = new GradoBL();
         ResultadoInfo <GradoInfo> result = gradoBL.ObtenerPorPagina(pagina, filtro);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 12
0
        public ActionResult Cuadro_x_Asistencia(long id, long seccionId, long cursoId, DateTime?fecha)
        {
            if (!fecha.HasValue)
            {
                fecha = DateTime.Today;
            }

            CursoModel CursoActual = new GradoBL().ObtenerAsistenciaxCurso(id, seccionId, cursoId, CustomHelper.getColegioId(), fecha.Value);

            if (CursoActual == null)
            {
                return(HttpNotFound());
            }

            CustomHelper.setTitulo("Grado", "Cuadro de Asistencia Por Curso");

            ViewBag.fecha = fecha.Value.ToString("yyyy-MM-dd");

            return(View(CursoActual));
        }
Exemplo n.º 13
0
        public ActionResult Asistencia_x_Curso(CursoMaestroModel modelo, long[] alumnoId, int[] asistencia, string[] comentario)
        {
            List <Asistencia> Asistencias = new List <Asistencia>();

            if (alumnoId != null && alumnoId.Length > 0)
            {
                for (int i = 0; i < alumnoId.Length; i++)
                {
                    Asistencia AsistenciaActual = new Asistencia();

                    AsistenciaActual.ColegioId = modelo.ColegioId;
                    AsistenciaActual.CursoId   = modelo.CursoId;
                    AsistenciaActual.GradoId   = modelo.GradoId;
                    AsistenciaActual.SeccionId = modelo.SeccionId;

                    AsistenciaActual.AlumnoId = alumnoId[i];

                    AsistenciaActual.Si    = asistencia[i] == 0 ? true : false;
                    AsistenciaActual.No    = asistencia[i] == 1 ? true : false;
                    AsistenciaActual.Tarde = asistencia[i] == 2 ? true : false;

                    AsistenciaActual.Comentario = string.IsNullOrWhiteSpace(comentario[i]) ? "" : comentario[i].Trim();

                    Asistencias.Add(AsistenciaActual);
                }
            }

            string strMensaje = new GradoBL().GuardarAsistencia(Asistencias, modelo.ColegioId, modelo.CursoId, modelo.GradoId, modelo.SeccionId, CustomHelper.getUsuarioId(), DateTime.Today);

            if (strMensaje.Equals("OK"))
            {
                TempData["Maestro_Asistencia-Success"] = strMensaje;
                return(RedirectToAction("Asistencia_x_Curso", new { id = modelo.CursoMaestroId.ToString() }));
            }
            else
            {
                ModelState.AddModelError("", strMensaje);
            }

            return(View(new MaestroBL().ObtenerCursoAsignadoxId(modelo.CursoMaestroId.ToString(), CustomHelper.getColegioId(), false, false, true)));
        }
Exemplo n.º 14
0
        public ActionResult Nota(int?page)
        {
            CustomHelper.setTitulo("Grado", "Notas");

            List <GradoxCicloModel> Grados = new List <GradoxCicloModel>();

            try
            {
                Grados = new GradoBL().ObtenerGradoxCiclo(CustomHelper.getColegioId());
            }
            catch (Exception ex)
            {
                ViewBag.Error = string.Format("Message: {0} StackTrace: {1}", ex.Message, ex.StackTrace);
                return(View("~/Views/Shared/Error.cshtml"));
            }

            int pageSize   = 15;
            int pageNumber = (page ?? 1);

            return(View(Grados.ToPagedList(pageNumber, pageSize)));
        }
Exemplo n.º 15
0
        public IList <GradoInfo> ObtenerGrados()
        {
            IList <GradoInfo> result;

            try
            {
                Logger.Info();
                var grado = new GradoBL();
                result = grado.ObtenerGrados();
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
Exemplo n.º 16
0
        /// <summary>
        /// Obtiene un Grado por su Descripcion
        /// </summary>
        /// <param name="descripcion"></param>
        /// <returns></returns>
        public GradoInfo ObtenerPorDescripcion(string descripcion)
        {
            GradoInfo result;

            try
            {
                Logger.Info();
                var grado = new GradoBL();
                result = grado.ObtenerPorDescripcion(descripcion);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
Exemplo n.º 17
0
        public ActionResult Cuadro_x_Asistencia(long id, long seccionId, long cursoId, long alumnoId, DateTime?fechaInicial, DateTime?fechaFinal)
        {
            if (!fechaInicial.HasValue && !fechaFinal.HasValue)
            {
                fechaInicial = DateTime.Today;
                fechaFinal   = DateTime.Today;
            }

            CursoModel CursoActual = new GradoBL().ObtenerAsistenciaxCursoAlumno(id, seccionId, cursoId, CustomHelper.getColegioId(), alumnoId, fechaInicial.Value, fechaFinal.Value);

            if (CursoActual == null)
            {
                return(HttpNotFound());
            }

            CustomHelper.setTitulo("Encargado(a)", "Cuadro de Asistencia Por Curso y Alumno");

            ViewBag.fechaInicial = fechaInicial.Value.ToString("yyyy-MM-dd");
            ViewBag.fechaFinal   = fechaFinal.Value.ToString("yyyy-MM-dd");

            return(View(CursoActual));
        }
Exemplo n.º 18
0
        public ActionResult Boleta_x_Asistencia(long id, long seccionId, long cursoId, long alumnoId, DateTime?fechaInicial, DateTime?fechaFinal)
        {
            long   ColegioActualId = CustomHelper.getColegioId();
            string PathLogo        = ConfigurationManager.AppSettings["Path_LogoApp"].ToString();

            Entities.Colegio ColegioActual = new ColegioBL().ObtenerxId(ColegioActualId);

            if (ColegioActual != null)
            {
                DataSet Notas = new DataSet("Notas");

                DataTable EncabezadoColegio = new DataTable("EncabezadoColegio");
                DataTable EncabezadoAlumno  = new DataTable("EncabezadoAlumno");
                DataTable Asistencias       = new DataTable("Asistencias");

                //Encabezado del colegio
                EncabezadoColegio.Columns.Add(new DataColumn("ColegioId", typeof(string)));
                EncabezadoColegio.Columns.Add(new DataColumn("Colegio", typeof(string)));
                EncabezadoColegio.Columns.Add(new DataColumn("Direccion", typeof(string)));
                EncabezadoColegio.Columns.Add(new DataColumn("Telefono", typeof(string)));
                EncabezadoColegio.Columns.Add(new DataColumn("Logo", typeof(byte[])));

                byte[] Logo = null;

                //Se crea carpeta por colegio para almacenar el logo
                string Colegio_Logo = string.Format(@"{0}\{1}\logo.png", PathLogo, ColegioActualId);

                if (System.IO.File.Exists(Colegio_Logo))
                {
                    Logo = System.IO.File.ReadAllBytes(Colegio_Logo);
                }
                else
                {
                    Logo = System.IO.File.ReadAllBytes(string.Format(@"{0}\logo.jpeg", PathLogo));
                }

                EncabezadoColegio.Rows.Add(ColegioActual.ColegioId, ColegioActual.Nombre, ColegioActual.Direccion, ColegioActual.Telefono, Logo);

                //Encabezado del alumno
                EncabezadoAlumno.Columns.Add(new DataColumn("AlumnoId", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Alumno", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Ciclo", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Grado", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Seccion", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Jornada", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Curso", typeof(string)));

                //Asistencias
                Asistencias.Columns.Add(new DataColumn("AlumnoId", typeof(string)));
                Asistencias.Columns.Add(new DataColumn("Fecha", typeof(DateTime)));
                Asistencias.Columns.Add(new DataColumn("Asistencia", typeof(string)));
                Asistencias.Columns.Add(new DataColumn("Comentario", typeof(string)));

                //Se cargan el alumno
                AlumnoModel AlumnoActual = new AlumnoBL().ObtenerxId(ColegioActualId, alumnoId);

                //Se carga la informacion de asistencia
                CursoModel CursoActual = new GradoBL().ReporteDiarioPedagogicoAsistenciaxCursoAlumno(id, seccionId, cursoId, ColegioActualId, alumnoId, fechaInicial.Value, fechaFinal.Value);
                if (CursoActual != null)
                {
                    if (AlumnoActual != null)
                    {
                        EncabezadoAlumno.Rows.Add(alumnoId, AlumnoActual.Alumno, string.Format("CICLO ESCOLAR {0}", AlumnoActual.Ciclo), AlumnoActual.Grado, AlumnoActual.Seccion, AlumnoActual.Jornada, CursoActual.Curso);
                    }

                    if (CursoActual.Asistencias != null && CursoActual.Asistencias.Count() > 0)
                    {
                        CursoActual.Asistencias = CursoActual.Asistencias.OrderBy(x => x.FechaAsistencia).ToList();
                        CursoActual.Asistencias.ForEach(x =>
                        {
                            Asistencias.Rows.Add(alumnoId, x.FechaAsistencia, (x.No ? "NO ASISTIO" : "LLEGO TARDE"), x.Comentario);
                        });
                    }
                }
                else
                {
                    if (AlumnoActual != null)
                    {
                        EncabezadoAlumno.Rows.Add(alumnoId, AlumnoActual.Alumno, string.Format("CICLO ESCOLAR {0}", AlumnoActual.Ciclo), AlumnoActual.Grado, AlumnoActual.Seccion, AlumnoActual.Jornada, "SIN CURSO ASIGNADO");
                    }
                }

                Notas.Tables.Add(EncabezadoColegio);
                Notas.Tables.Add(EncabezadoAlumno);
                Notas.Tables.Add(Asistencias);

                // Se define la ruta del reporte
                var reportPath = Server.MapPath("~/Reports/ReportAsistenciaxCurso.rdlc");

                // se obtienen los bytes del reporte en pdf
                var bytes = GetReportBytes(reportPath, Notas, 8.5m, 11.0m, 0m, 0m);

                return(File(bytes, "application/pdf"));
            }

            return(View());
        }
Exemplo n.º 19
0
        public ActionResult Boleta(long id, long seccionId, long alumnoId)
        {
            long   ColegioActualId = CustomHelper.getColegioId();
            string PathLogo        = ConfigurationManager.AppSettings["Path_LogoApp"].ToString();

            Entities.Colegio ColegioActual = new ColegioBL().ObtenerxId(ColegioActualId);

            if (ColegioActual != null)
            {
                DataSet Notas = new DataSet("Notas");

                DataTable EncabezadoColegio       = new DataTable("EncabezadoColegio");
                DataTable EncabezadoAlumno        = new DataTable("EncabezadoAlumno");
                DataTable DetalleNotas            = new DataTable("Notas");
                DataTable Asistencia              = new DataTable("Asistencia");
                DataTable DetalleActitudinalNotas = new DataTable("Notas_Actitudinal");

                //Encabezado del colegio
                EncabezadoColegio.Columns.Add(new DataColumn("ColegioId", typeof(string)));
                EncabezadoColegio.Columns.Add(new DataColumn("Colegio", typeof(string)));
                EncabezadoColegio.Columns.Add(new DataColumn("Direccion", typeof(string)));
                EncabezadoColegio.Columns.Add(new DataColumn("Telefono", typeof(string)));
                EncabezadoColegio.Columns.Add(new DataColumn("Logo", typeof(byte[])));

                byte[] Logo = null;

                //Se crea carpeta por colegio para almacenar el logo
                string Colegio_Logo = string.Format(@"{0}\{1}\logo.png", PathLogo, ColegioActualId);

                if (System.IO.File.Exists(Colegio_Logo))
                {
                    Logo = System.IO.File.ReadAllBytes(Colegio_Logo);
                }
                else
                {
                    Logo = System.IO.File.ReadAllBytes(string.Format(@"{0}\logo.jpeg", PathLogo));
                }

                EncabezadoColegio.Rows.Add(ColegioActual.ColegioId, ColegioActual.Nombre, ColegioActual.Direccion, ColegioActual.Telefono, Logo);

                //Encabezado del alumno
                EncabezadoAlumno.Columns.Add(new DataColumn("AlumnoId", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Alumno", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Ciclo", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Grado", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Seccion", typeof(string)));
                EncabezadoAlumno.Columns.Add(new DataColumn("Jornada", typeof(string)));

                //Notas
                DetalleNotas.Columns.Add(new DataColumn("AlumnoId", typeof(string)));
                DetalleNotas.Columns.Add(new DataColumn("Numero", typeof(string)));
                DetalleNotas.Columns.Add(new DataColumn("Curso", typeof(string)));
                DetalleNotas.Columns.Add(new DataColumn("Unidad1", typeof(decimal)));
                DetalleNotas.Columns.Add(new DataColumn("Unidad2", typeof(decimal)));
                DetalleNotas.Columns.Add(new DataColumn("Unidad3", typeof(decimal)));
                DetalleNotas.Columns.Add(new DataColumn("Unidad4", typeof(decimal)));
                DetalleNotas.Columns.Add(new DataColumn("Total", typeof(decimal)));

                //Asistencia
                Asistencia.Columns.Add(new DataColumn("AlumnoId", typeof(string)));
                Asistencia.Columns.Add(new DataColumn("Si", typeof(int)));
                Asistencia.Columns.Add(new DataColumn("No", typeof(int)));
                Asistencia.Columns.Add(new DataColumn("Tarde", typeof(int)));

                //Notas Actitudinal
                DetalleActitudinalNotas.Columns.Add(new DataColumn("AlumnoId", typeof(string)));
                DetalleActitudinalNotas.Columns.Add(new DataColumn("Curso", typeof(string)));
                DetalleActitudinalNotas.Columns.Add(new DataColumn("Unidad1", typeof(decimal)));
                DetalleActitudinalNotas.Columns.Add(new DataColumn("Unidad2", typeof(decimal)));
                DetalleActitudinalNotas.Columns.Add(new DataColumn("Unidad3", typeof(decimal)));
                DetalleActitudinalNotas.Columns.Add(new DataColumn("Unidad4", typeof(decimal)));
                DetalleActitudinalNotas.Columns.Add(new DataColumn("Total", typeof(decimal)));

                //Se cargan el alumno
                AlumnoModel AlumnoActual = new AlumnoBL().ObtenerxId(ColegioActualId, alumnoId);

                if (AlumnoActual != null)
                {
                    EncabezadoAlumno.Rows.Add(alumnoId, AlumnoActual.Alumno, string.Format("CICLO ESCOLAR {0}", AlumnoActual.Ciclo), AlumnoActual.Grado, AlumnoActual.Seccion, AlumnoActual.Jornada);
                }

                //Se carga las notas
                List <NotaModel> TNotas = new GradoBL().ObtenerNotasxAlumno(id, seccionId, ColegioActualId, alumnoId);
                if (TNotas != null && TNotas.Count() > 0)
                {
                    List <long> UnidadIds = new List <long>()
                    {
                        20201108001, 20201108002, 20201108003, 20201108004
                    };
                    List <string> CursoNormalesIds    = TNotas.Where(x => x.Actitudinal == 0).OrderBy(x => x.Curso).Select(x => x.Curso).Distinct().ToList();
                    List <string> CursoActitudinalIds = TNotas.Where(x => x.Actitudinal == 1).OrderBy(x => x.Curso).Select(x => x.Curso).Distinct().ToList();

                    //Cursos Normales
                    int Correlativo = 1;
                    foreach (string CursoActual in CursoNormalesIds)
                    {
                        decimal NotaUnidad1 = 0;
                        decimal NotaUnidad2 = 0;
                        decimal NotaUnidad3 = 0;
                        decimal NotaUnidad4 = 0;

                        decimal TPromedio = 0;
                        decimal Promedio  = 0;

                        int CantidadUnidad = 1;

                        NotaModel TNotaUnidad1 = TNotas.Where(x => x.Curso.Equals(CursoActual) && x.UnidadId == 20201108001).FirstOrDefault();
                        if (TNotaUnidad1 != null)
                        {
                            NotaUnidad1 = TNotaUnidad1.Nota;
                        }

                        NotaModel TNotaUnidad2 = TNotas.Where(x => x.Curso.Equals(CursoActual) && x.UnidadId == 20201108002).FirstOrDefault();
                        if (TNotaUnidad2 != null)
                        {
                            NotaUnidad2 = TNotaUnidad2.Nota;

                            if (NotaUnidad2 > 0)
                            {
                                CantidadUnidad = 2;
                            }
                        }

                        NotaModel TNotaUnidad3 = TNotas.Where(x => x.Curso.Equals(CursoActual) && x.UnidadId == 20201108003).FirstOrDefault();
                        if (TNotaUnidad3 != null)
                        {
                            NotaUnidad3 = TNotaUnidad3.Nota;

                            if (NotaUnidad3 > 0)
                            {
                                CantidadUnidad = 3;
                            }
                        }

                        NotaModel TNotaUnidad4 = TNotas.Where(x => x.Curso.Equals(CursoActual) && x.UnidadId == 20201108004).FirstOrDefault();
                        if (TNotaUnidad4 != null)
                        {
                            NotaUnidad4 = TNotaUnidad4.Nota;

                            if (NotaUnidad4 > 0)
                            {
                                CantidadUnidad = 4;
                            }
                        }

                        TPromedio = decimal.Round(NotaUnidad1 + NotaUnidad2 + NotaUnidad3 + NotaUnidad4, 2);
                        if (TPromedio > 0)
                        {
                            Promedio = TPromedio / CantidadUnidad;
                        }

                        DetalleNotas.Rows.Add(alumnoId, Correlativo, CursoActual, NotaUnidad1, NotaUnidad2, NotaUnidad3, NotaUnidad4, Promedio);
                        Correlativo++;
                    }

                    //Cursos Actitudinal
                    foreach (string CursoActual in CursoActitudinalIds)
                    {
                        decimal NotaUnidad1 = 0;
                        decimal NotaUnidad2 = 0;
                        decimal NotaUnidad3 = 0;
                        decimal NotaUnidad4 = 0;

                        decimal TPromedio = 0;
                        decimal Promedio  = 0;

                        int CantidadUnidad = 1;

                        NotaModel TNotaUnidad1 = TNotas.Where(x => x.Curso.Equals(CursoActual) && x.UnidadId == 20201108001).FirstOrDefault();
                        if (TNotaUnidad1 != null)
                        {
                            NotaUnidad1 = TNotaUnidad1.Nota;
                        }

                        NotaModel TNotaUnidad2 = TNotas.Where(x => x.Curso.Equals(CursoActual) && x.UnidadId == 20201108002).FirstOrDefault();
                        if (TNotaUnidad2 != null)
                        {
                            NotaUnidad2 = TNotaUnidad2.Nota;

                            if (NotaUnidad2 > 0)
                            {
                                CantidadUnidad = 2;
                            }
                        }

                        NotaModel TNotaUnidad3 = TNotas.Where(x => x.Curso.Equals(CursoActual) && x.UnidadId == 20201108003).FirstOrDefault();
                        if (TNotaUnidad3 != null)
                        {
                            NotaUnidad3 = TNotaUnidad3.Nota;

                            if (NotaUnidad3 > 0)
                            {
                                CantidadUnidad = 3;
                            }
                        }

                        NotaModel TNotaUnidad4 = TNotas.Where(x => x.Curso.Equals(CursoActual) && x.UnidadId == 20201108004).FirstOrDefault();
                        if (TNotaUnidad4 != null)
                        {
                            NotaUnidad4 = TNotaUnidad4.Nota;

                            if (NotaUnidad4 > 0)
                            {
                                CantidadUnidad = 4;
                            }
                        }

                        TPromedio = decimal.Round(NotaUnidad1 + NotaUnidad2 + NotaUnidad3 + NotaUnidad4, 2);
                        if (TPromedio > 0)
                        {
                            Promedio = TPromedio / CantidadUnidad;
                        }

                        DetalleActitudinalNotas.Rows.Add(alumnoId, CursoActual, NotaUnidad1, NotaUnidad2, NotaUnidad3, NotaUnidad4, Promedio);
                    }
                }

                //Se cargan la asistencia
                AsistenciaModel AsistenciaActual = new GradoBL().ObtenerAsistenciaxAlumno(id, seccionId, ColegioActualId, alumnoId);

                if (AsistenciaActual != null)
                {
                    Asistencia.Rows.Add(alumnoId, AsistenciaActual.Si, AsistenciaActual.No, AsistenciaActual.Tarde);
                }

                Notas.Tables.Add(EncabezadoColegio);
                Notas.Tables.Add(EncabezadoAlumno);
                Notas.Tables.Add(DetalleNotas);
                Notas.Tables.Add(Asistencia);
                Notas.Tables.Add(DetalleActitudinalNotas);

                // Se define la ruta del reporte
                var reportPath = Server.MapPath("~/Reports/ReportNotaxAlumno.rdlc");

                // se obtienen los bytes del reporte en pdf
                var bytes = GetNotaReportBytes(reportPath, Notas, 8.5m, 11.0m, 0m, 0m);

                return(File(bytes, "application/pdf"));
            }

            return(View());
        }