// lo que devuelve esta funcion es lo se manda a llamar en el dsBoletinF public List<reportesDTO.reporteDTOFin> c_reporteFinal(string idEstudiante, string idGrupo, string observacion) { try { List<reportesDTO.reporteDTOFin> Boletin = new List<reportesDTO.reporteDTOFin>(); reportesDTO.reporteDTOFin Bmm = new reportesDTO.reporteDTOFin(); string[] Ano = idGrupo.Split('-'); string ano = Ano[0]; //========================================================================================= reportes R = bd.reportes.Where(t => t.id_grupo == idGrupo && t.id_estudiante == idEstudiante && t.id_periodo == (ano +"-"+"V")).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.... { int conta = 0; float nota_prom = 0; List<reportesDTO.b_BodyFin> Body = new List<reportesDTO.b_BodyFin>(); reportesDTO.b_headFin Head = new reportesDTO.b_headFin(); int b = 0; // CONSULTO LAS NOTAS PARA EL PERIOD V , ES DECIR SOLO LOS LOGROS. foreach (matricula1 item2 in kk) // CHEQUEO LAS ASIGNATURAS QUE CONTIENE EL GRUPO { reportesDTO.b_BodyFin BodyObj = new reportesDTO.b_BodyFin(); // AHOR PROCESAMOS LOS ACOMULADOS DE ACURDO A LAS NOTAS ANTERIORES //Y EL CUERPO DEL BOLETIN DE ACUERDO A LAS MATERIAS QUE HAY EN EL GRUPO string eitem = item.id_estudiante.ToString(); string aitem2 = item2.id_asignatura.ToString(); notas N = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"V") && 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 = "FINAL"; Head.rango = "RESUMEN FINAL"; 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."; } notas NI = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"I") && t.id_asignatura == aitem2).FirstOrDefault(); notas NII = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"II") && t.id_asignatura == aitem2).FirstOrDefault(); notas NIII = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"III") && t.id_asignatura == aitem2).FirstOrDefault(); notas NIV = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"IV") && t.id_asignatura == aitem2).FirstOrDefault(); if (NI == null) // registramos como 0 si no hay nada { BodyObj.I = 0; } else { BodyObj.I = AjustarNenEnEnteros(NI.nota_s.ToString()); if (BodyObj.I == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal { BodyObj.I = AjustarNenEnEnteros(NI.nota.ToString()); } else //Quiere decir que SI hay superacion y configuramos con la nota superada { BodyObj.I = AjustarNenEnEnteros(NI.nota_s.ToString()); } } if (NII == null) // registramos como 0 si no hay nada { BodyObj.II = 0; } else { BodyObj.II = AjustarNenEnEnteros(NII.nota_s.ToString()); if (BodyObj.II == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal { BodyObj.II = AjustarNenEnEnteros(NII.nota.ToString()); } else //Quiere decir que SI hay superacion y configuramos con la nota superada { BodyObj.II = AjustarNenEnEnteros(NII.nota_s.ToString()); } } if (NIII == null) // registramos como 0 si no hay nada { BodyObj.III = 0; } else { BodyObj.III = AjustarNenEnEnteros(NIII.nota_s.ToString()); if (BodyObj.III == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal { BodyObj.III = AjustarNenEnEnteros(NIII.nota.ToString()); } else //Quiere decir que SI hay superacion y configuramos con la nota superada { BodyObj.III = AjustarNenEnEnteros(NIII.nota_s.ToString()); } } if (NIV == null) // registramos como 0 si no hay nada { BodyObj.IV = 0; } else { BodyObj.IV = AjustarNenEnEnteros(NIV.nota_s.ToString()); if (BodyObj.IV == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal { BodyObj.IV = AjustarNenEnEnteros(NIV.nota.ToString()); } else //Quiere decir que SI hay superacion y configuramos con la nota superada { BodyObj.IV = AjustarNenEnEnteros(NIV.nota_s.ToString()); } } int i = BodyObj.I; int ii = BodyObj.II; int iii = BodyObj.III; int iv = BodyObj.IV; float v = (i + ii + iii + iv) / 4; // Esta seria la nota promedio de CADA asignatura en el periodo V decimal vv = Math.Round((decimal)v, 1); BodyObj.notaV = vv; //string i = Convert.(); nota_prom = v + nota_prom; // Esta seria la nota final del estudiante para sus asignaturas en todo el periodp V BodyObj.equiv = validarEquivalenciaSimpleEnEnt(Convert.ToString(BodyObj.notaV)); // esta seria la equivalencia para el promedio del V general Body.Add(BodyObj); conta++; } // LUEGO DE CONSULTAR EL CUERPO DEL BOLETIN FINAL, PROCEDEMOS A DEVOLVERLO //-----------Version Para notas en eenteros si deseas estas lineas comentarias las siguientes string h = Convert.ToString(nota_prom / conta); if (h.Length == 2|| h == "100" || h == "0") { Head.notaPromV = Convert.ToString(nota_prom / conta); Head.equiPromV = validarEquivalenciaEnEnt(Convert.ToString(Head.notaPromV)); } else { Head.notaPromV = Convert.ToString(nota_prom / conta).Substring(0, 4); Head.equiPromV = validarEquivalenciaEnEnt(Convert.ToString(Head.notaPromV.Substring(0, 2))); } List<puestosDef> O = OrganizarPuestosBoletinFinal(idGrupo); puestosDef P = O.Where(t => t.id_estudiante == idEstudiante).FirstOrDefault(); if (P != null) { Head.puesto = P.No; } else { Head.puesto = 0; } //----------------- AHORA SI LLENO EL OBJETO QUE VOY A DEVOLVER -------------- foreach (reportesDTO.b_BodyFin item2 in Body) { reportesDTO.reporteDTOFin Bmmk = new reportesDTO.reporteDTOFin(); 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.notaPromV = Head.notaPromV; Bmmk.equiPromV = Head.equiPromV; Bmmk.puesto = Head.puesto; //b_head Bmmk.area = item2.area; Bmmk.asig = item2.asig; Bmmk.ih = item2.ih; Bmmk.logro = item2.logro; Bmmk.equiv = item2.equiv; Bmmk.I = item2.I; Bmmk.II = item2.II; Bmmk.III = item2.III; Bmmk.IV = item2.IV; Bmmk.notaV = item2.notaV; Bmmk.resultado = "c_yes"; Boletin.Add(Bmmk); } } 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; } }
public List<reportesDTO.reporteDTOFin> c_reporteFinal(string idEstudiante, string idGrupo, string observacion) { try { List<reportesDTO.reporteDTOFin> Boletin = new List<reportesDTO.reporteDTOFin>(); reportesDTO.reporteDTOFin Bmm = new reportesDTO.reporteDTOFin(); string[] Ano = idGrupo.Split('-'); string ano = Ano[0]; reportes R = bd.reportes.Where(t => t.id_grupo == idGrupo && t.id_estudiante == idEstudiante && t.id_periodo == (ano + "-" + "V")).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) { int conta = 0; float nota_prom = 0; List<reportesDTO.b_BodyFin> Body = new List<reportesDTO.b_BodyFin>(); reportesDTO.b_headFin Head = new reportesDTO.b_headFin(); int b = 0; foreach (matricula1 item2 in kk) { reportesDTO.b_BodyFin BodyObj = new reportesDTO.b_BodyFin(); string eitem = item.id_estudiante.ToString(); string aitem2 = item2.id_asignatura.ToString(); notas N = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "V") && 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 = "FINAL"; Head.rango = "RESUMEN FINAL"; 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(); } else { BodyObj.area = item2.asignatura.area.ToString(); BodyObj.asig = item2.asignatura.nombre.ToString(); BodyObj.ih = item2.asignatura.horas.ToString(); BodyObj.logro = "Sin asignar."; } notas NI = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "I") && t.id_asignatura == aitem2).FirstOrDefault(); notas NII = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "II") && t.id_asignatura == aitem2).FirstOrDefault(); notas NIII = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "III") && t.id_asignatura == aitem2).FirstOrDefault(); notas NIV = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "IV") && t.id_asignatura == aitem2).FirstOrDefault(); if (NI == null) { BodyObj.I = 0; } else { BodyObj.I = AjustarNenEnEnteros(NI.nota_s.ToString()); if (BodyObj.I == 0) BodyObj.I = AjustarNenEnEnteros(NI.nota.ToString()); else BodyObj.I = AjustarNenEnEnteros(NI.nota_s.ToString()); } if (NII == null) { BodyObj.II = 0; } else { BodyObj.II = AjustarNenEnEnteros(NII.nota_s.ToString()); if (BodyObj.II == 0) BodyObj.II = AjustarNenEnEnteros(NII.nota.ToString()); else BodyObj.II = AjustarNenEnEnteros(NII.nota_s.ToString()); } if (NIII == null) { BodyObj.III = 0; } else { BodyObj.III = AjustarNenEnEnteros(NIII.nota_s.ToString()); if (BodyObj.III == 0) BodyObj.III = AjustarNenEnEnteros(NIII.nota.ToString()); else BodyObj.III = AjustarNenEnEnteros(NIII.nota_s.ToString()); } if (NIV == null) { BodyObj.IV = 0; } else { BodyObj.IV = AjustarNenEnEnteros(NIV.nota_s.ToString()); if (BodyObj.IV == 0) BodyObj.IV = AjustarNenEnEnteros(NIV.nota.ToString()); else BodyObj.IV = AjustarNenEnEnteros(NIV.nota_s.ToString()); } int i = BodyObj.I; int ii = BodyObj.II; int iii = BodyObj.III; int iv = BodyObj.IV; float v = (i + ii + iii + iv) / 4; decimal vv = Math.Round((decimal)v, 1); BodyObj.notaV = vv; nota_prom = v + nota_prom; BodyObj.equiv = validarEquivalenciaSimpleEnEnt(Convert.ToString(BodyObj.notaV)); Body.Add(BodyObj); conta++; } string h = Convert.ToString(nota_prom / conta); if (h.Length == 2 || h == "100" || h == "0") { Head.notaPromV = Convert.ToString(nota_prom / conta); Head.equiPromV = validarEquivalenciaEnEnt(Convert.ToString(Head.notaPromV)); } else { Head.notaPromV = Convert.ToString(nota_prom / conta).Substring(0, 4); Head.equiPromV = validarEquivalenciaEnEnt(Convert.ToString(Head.notaPromV.Substring(0, 2))); } List<puestosDef> O = OrganizarPuestosBoletinFinal(idGrupo); puestosDef P = O.Where(t => t.id_estudiante == idEstudiante).FirstOrDefault(); if (P != null) Head.puesto = P.No; else Head.puesto = 0; foreach (reportesDTO.b_BodyFin item2 in Body) { reportesDTO.reporteDTOFin Bmmk = new reportesDTO.reporteDTOFin(); 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.notaPromV = Head.notaPromV; Bmmk.equiPromV = Head.equiPromV; Bmmk.puesto = Head.puesto; Bmmk.area = item2.area; Bmmk.asig = item2.asig; Bmmk.ih = item2.ih; Bmmk.logro = item2.logro; Bmmk.equiv = item2.equiv; Bmmk.I = item2.I; Bmmk.II = item2.II; Bmmk.III = item2.III; Bmmk.IV = item2.IV; Bmmk.notaV = item2.notaV; Bmmk.resultado = "c_yes"; Boletin.Add(Bmmk); } } 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; } }
private void estructuraBoletinG(string idGrupo, List<matricula1> kk, matricula2 item, ref int conta, ref float nota_prom, List<reportesDTO.b_BodyFin> Body, reportesDTO.b_headFin Head, ref int b) { string[] Ano = idGrupo.Split('-'); string ano = Ano[0]; foreach (matricula1 item2 in kk) // CHEQUEO LAS ASIGNATURAS QUE CONTIENE EL GRUPO { reportesDTO.b_BodyFin BodyObj = new reportesDTO.b_BodyFin(); // AHOR PROCESAMOS LOS ACOMULADOS DE ACURDO A LAS NOTAS ANTERIORES //Y EL CUERPO DEL BOLETIN DE ACUERDO A LAS MATERIAS QUE HAY EN EL GRUPO string eitem = item.id_estudiante.ToString(); string aitem2 = item2.id_asignatura.ToString(); notas N = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"V") && 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 = "FINAL"; //periodos P = bd.periodos.Where(t => t.id == idPeriodo).FirstOrDefault(); //Head.rango = P.rangoI + "-" + P.rangoF; Head.rango = "RESUMEN FINAL"; 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."; } notas NI = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"I") && t.id_asignatura == aitem2).FirstOrDefault(); notas NII = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"II") && t.id_asignatura == aitem2).FirstOrDefault(); notas NIII = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"III") && t.id_asignatura == aitem2).FirstOrDefault(); notas NIV = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano +"-"+"IV") && t.id_asignatura == aitem2).FirstOrDefault(); if (NI == null) // registramos como 0 si no hay nada { BodyObj.I = 0; } else { BodyObj.I = AjustarNenEnEnteros(NI.nota_s.ToString()); if (BodyObj.I == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal { BodyObj.I = AjustarNenEnEnteros(NI.nota.ToString()); } else //Quiere decir que SI hay superacion y configuramos con la nota superada { BodyObj.I = AjustarNenEnEnteros(NI.nota_s.ToString()); } } if (NII == null) // registramos como 0 si no hay nada { BodyObj.II = 0; } else { BodyObj.II = AjustarNenEnEnteros(NII.nota_s.ToString()); if (BodyObj.II == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal { BodyObj.II = AjustarNenEnEnteros(NII.nota.ToString()); } else //Quiere decir que SI hay superacion y configuramos con la nota superada { BodyObj.II = AjustarNenEnEnteros(NII.nota_s.ToString()); } } if (NIII == null) // registramos como 0 si no hay nada { BodyObj.III = 0; } else { BodyObj.III = AjustarNenEnEnteros(NIII.nota_s.ToString()); if (BodyObj.III == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal { BodyObj.III = AjustarNenEnEnteros(NIII.nota.ToString()); } else //Quiere decir que SI hay superacion y configuramos con la nota superada { BodyObj.III = AjustarNenEnEnteros(NIII.nota_s.ToString()); } } if (NIV == null) // registramos como 0 si no hay nada { BodyObj.IV = 0; } else { BodyObj.IV = AjustarNenEnEnteros(NIV.nota_s.ToString()); if (BodyObj.IV == 0)//Quiere decir que NO hay superacion y configuramos con la nota principal { BodyObj.IV = AjustarNenEnEnteros(NIV.nota.ToString()); } else //Quiere decir que SI hay superacion y configuramos con la nota superada { BodyObj.IV = AjustarNenEnEnteros(NIV.nota_s.ToString()); } } int i = BodyObj.I; int ii = BodyObj.II; int iii = BodyObj.III; int iv = BodyObj.IV; float v = (i + ii + iii + iv) / 4; // Esta seria la nota promedio de CADA asignatura en el periodo V decimal vv = Math.Round((decimal)v, 1); BodyObj.notaV = vv; //string i = Convert.(); nota_prom = v + nota_prom; // Esta seria la nota final del estudiante para sus asignaturas en todo el periodp V BodyObj.equiv = validarEquivalenciaSimpleEnEnt(Convert.ToString(BodyObj.notaV)); // esta seria la equivalencia para el promedio del V general Body.Add(BodyObj); conta++; } }
private void estructuraBoletinG(string idGrupo, List<matricula1> kk, matricula2 item, ref int conta, ref float nota_prom, List<reportesDTO.b_BodyFin> Body, reportesDTO.b_headFin Head, ref int b) { string[] Ano = idGrupo.Split('-'); string ano = Ano[0]; foreach (matricula1 item2 in kk) { reportesDTO.b_BodyFin BodyObj = new reportesDTO.b_BodyFin(); string eitem = item.id_estudiante.ToString(); string aitem2 = item2.id_asignatura.ToString(); notas N = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "V") && 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 = "FINAL"; Head.rango = "RESUMEN FINAL"; 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(); } else { BodyObj.area = item2.asignatura.area.ToString(); BodyObj.asig = item2.asignatura.nombre.ToString(); BodyObj.ih = item2.asignatura.horas.ToString(); BodyObj.logro = "Sin asignar."; } notas NI = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "I") && t.id_asignatura == aitem2).FirstOrDefault(); notas NII = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "II") && t.id_asignatura == aitem2).FirstOrDefault(); notas NIII = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "III") && t.id_asignatura == aitem2).FirstOrDefault(); notas NIV = bd.notas.Where(t => t.id_grupo == idGrupo && t.id_estudiante == eitem && t.id_periodo == (ano + "-" + "IV") && t.id_asignatura == aitem2).FirstOrDefault(); if (NI == null) { BodyObj.I = 0; } else { BodyObj.I = AjustarNenEnEnteros(NI.nota_s.ToString()); if (BodyObj.I == 0) BodyObj.I = AjustarNenEnEnteros(NI.nota.ToString()); else BodyObj.I = AjustarNenEnEnteros(NI.nota_s.ToString()); } if (NII == null) { BodyObj.II = 0; } else { BodyObj.II = AjustarNenEnEnteros(NII.nota_s.ToString()); if (BodyObj.II == 0) BodyObj.II = AjustarNenEnEnteros(NII.nota.ToString()); else BodyObj.II = AjustarNenEnEnteros(NII.nota_s.ToString()); } if (NIII == null) { BodyObj.III = 0; } else { BodyObj.III = AjustarNenEnEnteros(NIII.nota_s.ToString()); if (BodyObj.III == 0) BodyObj.III = AjustarNenEnEnteros(NIII.nota.ToString()); else BodyObj.III = AjustarNenEnEnteros(NIII.nota_s.ToString()); } if (NIV == null) { BodyObj.IV = 0; } else { BodyObj.IV = AjustarNenEnEnteros(NIV.nota_s.ToString()); if (BodyObj.IV == 0) BodyObj.IV = AjustarNenEnEnteros(NIV.nota.ToString()); else BodyObj.IV = AjustarNenEnEnteros(NIV.nota_s.ToString()); } int i = BodyObj.I; int ii = BodyObj.II; int iii = BodyObj.III; int iv = BodyObj.IV; float v = (i + ii + iii + iv) / 4; decimal vv = Math.Round((decimal)v, 1); BodyObj.notaV = vv; nota_prom = v + nota_prom; BodyObj.equiv = validarEquivalenciaSimpleEnEnt(Convert.ToString(BodyObj.notaV)); Body.Add(BodyObj); conta++; } }