//-----------------------------------------------------------------------------------------------------------------
        private int estruturaBoletinI(string idPeriodo, string idGrupo, matricula2 item, List<reportesDTO.b_Body> Body, reportesDTO.b_Head Head, int b, matricula1 item2, string eitem, string aitem2)
        {
            reportesDTO.b_Body BodyObj = new reportesDTO.b_Body();
            notas N = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem &&
                                    t.id_periodo == idPeriodo && t.id_asignatura == aitem2).FirstOrDefault();
            if (b == 0)
            {
                Head.estudiante = item.personas1.apellidos.ToString() + " " + item.personas1.nombres.ToString();
                Head.ano = item2.grupos.año.ToString();
                Head.grado = item2.grupos.grados.nom_grado.ToString();
                Head.grupo = item2.id_grupo.ToString();
                Head.id = item.id_estudiante.ToString();
                Head.periodo = idPeriodo;
                periodos P = bd.periodos.Where(t => t.id == idPeriodo).FirstOrDefault();
                Head.rango = P.rangoI + "-" + P.rangoF;
                b = 1;
            }
            if (N != null) // registramos como 0  si no hay nada
            {
                BodyObj.area = item2.asignatura.area.ToString();
                BodyObj.asig = item2.asignatura.nombre.ToString();
                BodyObj.ih = item2.asignatura.horas.ToString();
                BodyObj.logro = N.logros.descripcion.ToString();
            }
            else
            {
                BodyObj.area = item2.asignatura.area.ToString();
                BodyObj.asig = item2.asignatura.nombre.ToString();
                BodyObj.ih = item2.asignatura.horas.ToString();
                BodyObj.logro = "Sin asignar.";
            }
            if (N == null) // registramos como 0  si no hay nada
            { BodyObj.nota = 0; }
            else
            {
                BodyObj.nota = AjustarNenEnEnteros(N.nota_s.ToString());
                if (BodyObj.nota == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal
                {
                    BodyObj.nota = AjustarNenEnEnteros(N.nota.ToString());
                }
                else //Quiere decir que SI hay superacion y configuramos con la nota superada
                {
                    BodyObj.nota = AjustarNenEnEnteros(N.nota_s.ToString());
                }
            }

            BodyObj.equival = validarEquivalenciaSimpleEnEnt(Convert.ToString(BodyObj.nota));
            Body.Add(BodyObj);
            return b;
        }
        // lo que devuelve esta funcion es lo se manda a llamar  en el dsBoletin
        public List<reportesDTO.reporteDTOPeriodo> c_reporteI(string idEstudiante, string idPeriodo, string idGrupo, string observacion)
        {
            try
            {
                reportesDTO.reporteDTOPeriodo Bmm = new reportesDTO.reporteDTOPeriodo();
                List<reportesDTO.reporteDTOPeriodo> Boletin = new List<reportesDTO.reporteDTOPeriodo>();
                // primero verifacmos que este habilitado el reporte para el estudiante,
                reportes R = bd.reportes.Where(t =>
                t.id_grupo == idGrupo &&
                t.id_estudiante == idEstudiante &&
                t.id_periodo == idPeriodo
                ).FirstOrDefault();
                if (R == null)
                {
                    Bmm.resultado = "Este reporte que solicita no ha sido generado por la administración.";
                    Boletin.Add(Bmm);
                    return Boletin;
                }
                else if (R.acceso.ToString() == "TRUE")
                {
                    List<matricula2> k = bd.matricula2.Where(t =>
                    t.id_grupo == idGrupo && t.id_estudiante == idEstudiante).OrderBy(t => t.id_estudiante).ToList();
                    // OBTENEMOS LAS ASIGNATURAS QUE TIENE ESE GRUPO
                    List<matricula1> kk = bd.matricula1.Where(t => t.id_grupo == idGrupo).ToList();
                    if (k.Count != 0)
                    {
                        foreach (matricula2 item in k) //  CHEQUEO EL ESTUDIANTE PARA ARMAR SU BOLETIN....
                        {
                            List<reportesDTO.b_Body> Body = new List<reportesDTO.b_Body>();
                            reportesDTO.b_Head Head = new reportesDTO.b_Head();
                            int b = 0;
                            float nota_prom = 0;
                            int conta = 1;
                            foreach (matricula1 item2 in kk) // CHEQUEO LAS ASIGNATURAS QUE CONTIENE EL GRUPO
                            {
                                string eitem = item.id_estudiante.ToString();
                                string aitem2 = item2.id_asignatura.ToString();
                                reportesDTO.b_Body BodyObj = new reportesDTO.b_Body();
                                notas N = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem &&
                                                        t.id_periodo == idPeriodo && t.id_asignatura == aitem2).FirstOrDefault();
                                if (b == 0)
                                {
                                    Head.estudiante = item.personas1.apellidos.ToString() + " " + item.personas1.nombres.ToString();
                                    Head.ano = item2.grupos.año.ToString();
                                    Head.grado = item2.grupos.grados.nom_grado.ToString();
                                    Head.grupo = item2.id_grupo.ToString();
                                    Head.id = item.id_estudiante.ToString();
                                    Head.periodo = idPeriodo;
                                    b = 1;
                                }
                                if (N != null) // registramos como 0  si no hay nada
                                {
                                    BodyObj.area = item2.asignatura.area.ToString();
                                    BodyObj.asig = item2.asignatura.nombre.ToString();
                                    BodyObj.ih = item2.asignatura.horas.ToString();
                                    BodyObj.logro = N.logros.descripcion.ToString();
                                    Head.rango = N.periodos.rangoI + "-" + N.periodos.rangoF;
                                }
                                else
                                {
                                    BodyObj.area = item2.asignatura.area.ToString();
                                    BodyObj.asig = item2.asignatura.nombre.ToString();
                                    BodyObj.ih = item2.asignatura.horas.ToString();
                                    BodyObj.logro = "Sin asignar.";
                                }
                                if (N == null) // registramos como 0  si no hay nada
                                { BodyObj.nota = 0; }
                                else
                                {
                                  
                                        BodyObj.nota = AjustarNenEnEnteros(N.nota_s.ToString());
                                        if (BodyObj.nota == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal
                                        {
                                            BodyObj.nota = AjustarNenEnEnteros(N.nota.ToString());
                                        }
                                        else //Quiere decir que SI hay superacion y configuramos con la nota superada
                                        {
                                            BodyObj.nota = AjustarNenEnEnteros(N.nota_s.ToString());
                                        }
                                }
                                BodyObj.equival = validarEquivalenciaSimpleEnEnt(Convert.ToString(BodyObj.nota));
                                Body.Add(BodyObj);
                                // PREGUNTO SI YA LLEGO AL LIMETE DE LA CANTIDAD DE ASIGNATURAS EN EL GRUPO
                                if (conta == kk.Count)
                                {
                                    List<puestosDef> O = OrganizarPuestos(idPeriodo, idGrupo);
                                    puestosDef P = O.Where(t => t.id_estudiante == idEstudiante).FirstOrDefault();
                                    if (P != null)
                                    {
                                        nota_prom = P.nota_prom;
                                        Head.puesto = P.No;
                                        if (nota_prom==0 || nota_prom==100 || nota_prom.ToString().Length ==2)
                                        {
                                            Head.nota_prom = Convert.ToString(nota_prom);
                                        }
                                        else
                                        {
                                            Head.nota_prom = Convert.ToString(nota_prom).Substring(0, 4);
                                        }
                                    }
                                    else
                                    {
                                        nota_prom = 0;
                                        Head.nota_prom = Convert.ToString(nota_prom);
                                        Head.puesto = 0;
                                    }



                                    if (nota_prom == 0 || nota_prom == 100 || nota_prom.ToString().Length == 2)
                                    {
                                        Head.equi_prom = validarEquivalenciaSimpleEnEnt(Convert.ToString(nota_prom));
                                    }
                                    else
                                    {
                                        Head.equi_prom = validarEquivalenciaSimpleEnEnt(Convert.ToString(nota_prom).Substring(0, 2));
                                    }
                                    // AHORA COMENZAMOS A LLENAR LA LISTA QUE NECESITAMOS DEVOLVER

                                    foreach (reportesDTO.b_Body item3 in Body)
                                    {
                                        reportesDTO.reporteDTOPeriodo Bmmk = new reportesDTO.reporteDTOPeriodo();
                                        Bmmk.id = Head.id;
                                        Bmmk.estudiante = Head.estudiante;
                                        Bmmk.ano = Head.ano;
                                        Bmmk.grado = Head.grado;
                                        Bmmk.periodo = Head.periodo;
                                        Bmmk.rango = Head.rango;
                                        Bmmk.grupo = Head.grupo;

                                        Bmmk.equi_prom = Head.equi_prom;
                                        Bmmk.nota_prom = Head.nota_prom;
                                        Bmmk.puesto = Head.puesto;

                                        Bmmk.area = item3.area;
                                        Bmmk.asig = item3.asig;

                                        Bmmk.ih = item3.ih;
                                        Bmmk.nota = item3.nota;
                                        Bmmk.equival = item3.equival;
                                        Bmmk.logro = item3.logro;
                                        Bmmk.resultado = "c_yes";
                                        Boletin.Add(Bmmk);
                                    }
                                }
                                conta = conta + 1;
                            }
                        }
                        if (observacion == "SOLICITADO POR ACUDIENTE")
                        {
                            R.notificacion = "VISTA";
                            bd.SaveChanges();
                        }
                        return Boletin;
                    }
                    else
                    {
                        Bmm.resultado = "c_no";
                        Boletin.Add(Bmm);
                        return Boletin;
                    }
                }
                else
                {
                    Bmm.resultado = "El reporte que esta solicitando no esta habilitado por el colegio. Contactese con la administración de la institución.";
                    Boletin.Add(Bmm);
                    return Boletin;
                }
            }
            catch
            {
                return null;
            }
        }
Beispiel #3
0
        public List<reportesDTO.reporteDTOPeriodo> c_reporteI(string idEstudiante, string idPeriodo, string idGrupo, string observacion)
        {
            try
            {
                reportesDTO.reporteDTOPeriodo Bmm = new reportesDTO.reporteDTOPeriodo();
                List<reportesDTO.reporteDTOPeriodo> Boletin = new List<reportesDTO.reporteDTOPeriodo>();
                reportes R = bd.reportes.Where(t =>
                t.id_grupo == idGrupo &&
                t.id_estudiante == idEstudiante &&
                t.id_periodo == idPeriodo
                ).FirstOrDefault();
                if (R == null)
                {
                    Bmm.resultado = "Este reporte que solicita no ha sido generado por la administración.";
                    Boletin.Add(Bmm);
                    return Boletin;
                }
                else if (R.acceso.ToString() == "TRUE")
                {
                    List<matricula2> k = bd.matricula2.Where(t =>
                    t.id_grupo == idGrupo && t.id_estudiante == idEstudiante).OrderBy(t => t.id_estudiante).ToList();
                    List<matricula1> kk = bd.matricula1.Where(t => t.id_grupo == idGrupo).ToList();
                    if (k.Count != 0)
                    {
                        foreach (matricula2 item in k)
                        {
                            List<reportesDTO.b_Body> Body = new List<reportesDTO.b_Body>();
                            reportesDTO.b_Head Head = new reportesDTO.b_Head();
                            int b = 0;
                            float nota_prom = 0;
                            int conta = 1;
                            foreach (matricula1 item2 in kk)
                            {
                                string eitem = item.id_estudiante.ToString();
                                string aitem2 = item2.id_asignatura.ToString();
                                reportesDTO.b_Body BodyObj = new reportesDTO.b_Body();
                                notas N = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem &&
                                                        t.id_periodo == idPeriodo && t.id_asignatura == aitem2).FirstOrDefault();
                                if (b == 0)
                                {
                                    Head.estudiante = item.personas1.apellidos.ToString() + " " + item.personas1.nombres.ToString();
                                    Head.ano = item2.grupos.año.ToString();
                                    Head.grado = item2.grupos.grados.nom_grado.ToString();
                                    Head.grupo = item2.id_grupo.ToString();
                                    Head.id = item.id_estudiante.ToString();
                                    Head.periodo = idPeriodo;
                                    b = 1;
                                }
                                if (N != null)
                                {
                                    BodyObj.area = item2.asignatura.area.ToString();
                                    BodyObj.asig = item2.asignatura.nombre.ToString();
                                    BodyObj.ih = item2.asignatura.horas.ToString();
                                    BodyObj.logro = N.logros.descripcion.ToString();
                                    Head.rango = N.periodos.rangoI + "-" + N.periodos.rangoF;
                                }
                                else
                                {
                                    BodyObj.area = item2.asignatura.area.ToString();
                                    BodyObj.asig = item2.asignatura.nombre.ToString();
                                    BodyObj.ih = item2.asignatura.horas.ToString();
                                    BodyObj.logro = "Sin asignar.";
                                }
                                if (N == null)
                                { BodyObj.nota = 0; }
                                else
                                {
                                    BodyObj.nota = AjustarNenEnEnteros(N.nota_s.ToString());
                                    if (BodyObj.nota == 0)
                                        BodyObj.nota = AjustarNenEnEnteros(N.nota.ToString());
                                    else
                                        BodyObj.nota = AjustarNenEnEnteros(N.nota_s.ToString());
                                }
                                BodyObj.equival = validarEquivalenciaSimpleEnEnt(Convert.ToString(BodyObj.nota));
                                Body.Add(BodyObj);
                                if (conta == kk.Count)
                                {
                                    List<puestosDef> O = OrganizarPuestos(idPeriodo, idGrupo);
                                    puestosDef P = O.Where(t => t.id_estudiante == idEstudiante).FirstOrDefault();
                                    if (P != null)
                                    {
                                        nota_prom = P.nota_prom;
                                        Head.puesto = P.No;
                                        if (nota_prom == 0 || nota_prom == 100 || nota_prom.ToString().Length == 2)
                                            Head.nota_prom = Convert.ToString(nota_prom);
                                        else
                                            Head.nota_prom = Convert.ToString(nota_prom).Substring(0, 4);
                                    }
                                    else
                                    {
                                        nota_prom = 0;
                                        Head.nota_prom = Convert.ToString(nota_prom);
                                        Head.puesto = 0;
                                    }

                                    if (nota_prom == 0 || nota_prom == 100 || nota_prom.ToString().Length == 2)
                                        Head.equi_prom = validarEquivalenciaSimpleEnEnt(Convert.ToString(nota_prom));
                                    else
                                        Head.equi_prom = validarEquivalenciaSimpleEnEnt(Convert.ToString(nota_prom).Substring(0, 2));
                                    foreach (reportesDTO.b_Body item3 in Body)
                                    {
                                        reportesDTO.reporteDTOPeriodo Bmmk = new reportesDTO.reporteDTOPeriodo();
                                        Bmmk.id = Head.id;
                                        Bmmk.estudiante = Head.estudiante;
                                        Bmmk.ano = Head.ano;
                                        Bmmk.grado = Head.grado;
                                        Bmmk.periodo = Head.periodo;
                                        Bmmk.rango = Head.rango;
                                        Bmmk.grupo = Head.grupo;
                                        Bmmk.equi_prom = Head.equi_prom;
                                        Bmmk.nota_prom = Head.nota_prom;
                                        Bmmk.puesto = Head.puesto;
                                        Bmmk.area = item3.area;
                                        Bmmk.asig = item3.asig;
                                        Bmmk.ih = item3.ih;
                                        Bmmk.nota = item3.nota;
                                        Bmmk.equival = item3.equival;
                                        Bmmk.logro = item3.logro;
                                        Bmmk.resultado = "c_yes";
                                        Boletin.Add(Bmmk);
                                    }
                                }
                                conta = conta + 1;
                            }
                        }
                        if (observacion == "SOLICITADO POR ACUDIENTE")
                        {
                            R.notificacion = "VISTA";
                            bd.SaveChanges();
                        }
                        return Boletin;
                    }
                    else
                    {
                        Bmm.resultado = "c_no";
                        Boletin.Add(Bmm);
                        return Boletin;
                    }
                }
                else
                {
                    Bmm.resultado = "El reporte que esta solicitando no esta habilitado por el colegio. Contactese con la administración de la institución.";
                    Boletin.Add(Bmm);
                    return Boletin;
                }
            }
            catch
            {
                return null;
            }
        }