public JsonResult Inspecciones([Bind(Include = "zona,linea,edad,a_o_s,listaFactores,selectGrados,valoresFR,selectGradosPatologia,listaPatologias,listaFactores")] ConsultaInspecciones consulta) { List<ApoyosZonas> listaApoyosZonas = db.ApoyosZonas.Where(m => m.ul_inspeccion != null).ToList(); List<ApoyoLista> listTemp = new List<ApoyoLista>(); List<ApoyoLista> listaApoyosLista = db.ApoyoLista.Where(m => m.ul_inspeccion != null).ToList(); List<ApoyoLista> retorno = new List<ApoyoLista>(); List<Patologias> insPat = new List<Patologias>(); //Id del Grado Proximidad con valor 0 string valor0 = db.Grados_Proximidad.First(m => m.activo == true && m.valor == 0).id; List<string> gradosFR = new List<string>(); List<Factores_Riesgo> listaNuevaFR = new List<Factores_Riesgo>(); if ( consulta.valoresFR != null && consulta.valoresFR.Count > 0) { listaNuevaFR = db.Factores_Riesgo.Where(item => consulta.valoresFR.Contains(item.id)).ToList(); foreach(Factores_Riesgo e in listaNuevaFR){ gradosFR.Add("TODAS"); } int psFR = 0; foreach(string e in consulta.selectGrados){ if(e != valor0){ string id = db.Grados_Proximidad.SingleOrDefault(m => m.id == e).valor.ToString(); gradosFR.Add(id); id = consulta.listaFactores.ToArray()[psFR]; Factores_Riesgo introFR = db.Factores_Riesgo.SingleOrDefault(m => m.id == id); listaNuevaFR.Add(introFR); } psFR++; } } List<string> gradosPat = new List<string>(); int ps = 0; foreach (string f in consulta.selectGradosPatologia) { int val = int.Parse(f); if (val != 0) { string idPatologia = consulta.listaPatologias.ToArray()[ps]; Patologias retornarPat = db.Patologias.SingleOrDefault(m => m.id == idPatologia); insPat.Add(retornarPat); gradosPat.Add(f); } ps++; } List<string> criterios = new List<string>(); try { //Compruebo Zona if (String.IsNullOrEmpty(consulta.zona) != true) { listaApoyosZonas = listaApoyosZonas.Where(m => m.id_zona == consulta.zona).ToList(); var zon = db.ZonasLista.SingleOrDefault(m => m.id == consulta.zona); List<string> idsApoyos = listaApoyosZonas.Select(m => m.id_apoyo).Distinct().ToList(); //retorno = db.ApoyoLista.Where(s => idsApoyos.Any(f => f == s.id)).ToList(); //foreach (string i in idsApoyos) //{ // ApoyoLista nuevo = db.ApoyoLista.SingleOrDefault(m => m.id == i); // retorno.Add(nuevo); //} retorno = db.ApoyoLista.Where(item => idsApoyos.Contains(item.id) && item.ul_inspeccion != null).ToList(); //retorno = retorno.Where(m => m.ul_inspeccion != null).ToList(); criterios.Add(zon.nombre); } else { criterios.Add("TODAS"); retorno = db.ApoyoLista.Where(m=>m.ul_inspeccion != null).ToList(); } //Compruebo Línea if (String.IsNullOrEmpty(consulta.linea) != true) { var line = db.Lineas.SingleOrDefault(m => m.id == consulta.linea); retorno = retorno.Where(m => m.linea == consulta.linea).ToList(); criterios.Add(line.nombre); } else { criterios.Add("TODAS"); } //Compruebo Edad if( consulta.edad !=0){ int edad = DateTime.Now.Year - consulta.edad; retorno = retorno.Where(m => m.ano_actual == edad.ToString()).ToList(); criterios.Add(consulta.edad.ToString()); } else { criterios.Add("TODAS"); } //Compruebo Amarre o Supención if (String.IsNullOrEmpty(consulta.a_o_s) != true) { if (consulta.a_o_s == "0") { retorno = retorno.Where(m => m.amarre == true).ToList(); criterios.Add("SÍ"); criterios.Add("NO"); } else { retorno = retorno.Where(m => m.sustentacion == true).ToList(); criterios.Add("NO"); criterios.Add("SÍ"); } } else { criterios.Add("NO"); criterios.Add("NO"); } int valoresFactoresR = consulta.selectGrados.Where(m => m != valor0).Count(); int valoresPatologias = consulta.selectGradosPatologia.Where(m => m != "0").Count(); //Recorro Apoyos foreach(ApoyoLista e in retorno){ bool comprob = true; int posicion = 0; List<InspeccionesValores> InspeccionesValores = db.InspeccionesValores.Where(m => m.id_inspeccion == e.ul_inspeccion && m.gpr != valor0).ToList(); //Recorro factores de riesgo con checkbox if (consulta.valoresFR != null && consulta.valoresFR.Count > 0) { foreach (string va in consulta.valoresFR) { InspeccionesValores ValoresTotales = InspeccionesValores.SingleOrDefault(m => m.factor_riesgo == va); if (ValoresTotales != null) { comprob = true; } else { comprob = false; break; } } } //Recorro Anomalías if (comprob && valoresPatologias > 0) { int posiPa = 0; List<InspeccionPatologias> insPato = db.InspeccionPatologias.Where(m => m.idinspeccion == e.ul_inspeccion&&m.valor !=0).ToList(); foreach(string pa in consulta.selectGradosPatologia){ int val = int.Parse(pa); if(val !=0){ string idPatologia = consulta.listaPatologias.ToArray()[posiPa]; List<InspeccionPatologias> listPaTem = insPato.Where(m => m.idpatologia == idPatologia && m.valor == val).ToList(); if (listPaTem != null && listPaTem.Count > 0) { comprob = true; } else { comprob = false; break; } } posiPa++; } } //Recorro factores de riesgo con select if (comprob && valoresFactoresR > 0) { foreach (string p in consulta.selectGrados) { if (p != valor0) { string fr = consulta.listaFactores.ToArray()[posicion]; InspeccionesValores ins = InspeccionesValores.SingleOrDefault(m => m.factor_riesgo == fr && m.gpr == p); if (ins != null) { comprob = true; } else { comprob = false; break; } } posicion++; } } if(comprob){ ApoyoLista intro = db.ApoyoLista.First(m => m.id == e.id); listTemp.Add(intro); } } retorno = listTemp; ExportPDF exportar = new ExportPDF(); exportar.ConsultaInspecciones(retorno.OrderBy(m => m.linea_n).ToList(), User.Identity.GetUserId(), "RESULTADO_CONSULTA_INSPECCIONES", "RESULTADO CONSULTA DE INSPECCIONES", criterios, insPat, gradosPat, listaNuevaFR, gradosFR); RetornarDatosConsulta retornar = new RetornarDatosConsulta(); retornar.listaApoyos = retorno.OrderBy(m => m.linea_n).ToList(); retornar.exel = new ExportXSL().ExportarConsultaAnomalias(retorno.OrderBy(m => m.linea_n).ToList()); string json = JsonConvert.SerializeObject(retornar); return new System.Web.Mvc.JsonResult() { Data = json, MaxJsonLength = 1073741824, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; }//Fin try catch (Exception e) { return new System.Web.Mvc.JsonResult() { Data = "Error al realizar la consulta", MaxJsonLength = 1073741824, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; }//Fin catch }
public JsonResult Anomalias(int grado, string anomalia, string linea, string zona) { List<ApoyoLista> listaApoyos = db.ApoyoLista.Where(m => m.ul_inspeccion != null).ToList(); List<ApoyosZonas> listaApoyosZonas = db.ApoyosZonas.Where(m => m.ul_inspeccion != null).ToList(); List<ApoyosZonas> listTemp = new List<ApoyosZonas>(); List<ApoyoLista> retorno = new List<ApoyoLista>(); List<string> criterios = new List<string>(); var anoma = db.Patologias.SingleOrDefault(m=>m.id == anomalia); criterios.Add(anoma.nombre); criterios.Add(grado.ToString()); try { if (String.IsNullOrEmpty(linea) != true) { var line = db.Lineas.SingleOrDefault(m => m.id == linea); listTemp = listaApoyosZonas.Where(m => m.id_linea == linea).ToList(); listaApoyosZonas = listTemp; criterios.Add(line.nombre); } else { criterios.Add("TODAS"); } if (String.IsNullOrEmpty(zona) != true) { listTemp = listaApoyosZonas.Where(m => m.id_zona == zona).ToList(); listaApoyosZonas = listTemp; var zon = db.ZonasLista.SingleOrDefault(m=>m.id == zona); criterios.Add(zon.nombre); } else { criterios.Add("TODAS"); } List<string> ids_Inspecciones = listaApoyosZonas.Select(m => m.ul_inspeccion).Distinct().ToList(); List<InspeccionPatologias> listaInspeccionPatologias = new List<InspeccionPatologias>(); if (grado == 0) { listaInspeccionPatologias = db.InspeccionPatologias.Where(m => m.valor == 0).ToList(); } if (grado == 1) { listaInspeccionPatologias = db.InspeccionPatologias.Where(m => m.valor == 1).ToList(); } if (grado == 2) { listaInspeccionPatologias = db.InspeccionPatologias.Where(m => m.valor == 2).ToList(); } foreach (string ins in ids_Inspecciones) { if (listaInspeccionPatologias.Where(m => m.idinspeccion == ins && m.idpatologia == anomalia && m.valor == grado).Count() > 0) { retorno.Add(listaApoyos.First(m=>m.ul_inspeccion == ins)); } } ExportPDF exportar = new ExportPDF(); exportar.Consultas(retorno.OrderBy(m => m.linea_n).ToList(),User.Identity.GetUserId(),"RESULTADO_CONSULTA_ANOMALÍA","RESULTADO CONSULTA DE ANOMAlÍAS",criterios); RetornarDatosConsulta retornar = new RetornarDatosConsulta(); retornar.listaApoyos = retorno.OrderBy(m => m.linea_n).ToList(); retornar.exel = new ExportXSL().ExportarConsultaAnomalias(retorno.OrderBy(m => m.linea_n).ToList()); string json = JsonConvert.SerializeObject(retornar); return new System.Web.Mvc.JsonResult() { Data = json, MaxJsonLength = 1073741824, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } catch (Exception e) { return new System.Web.Mvc.JsonResult() { Data = "Error al realizar la consulta", MaxJsonLength = 1073741824, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } }
public JsonResult Riesgos([Bind(Include = "riesgos,comparaciones,valores")] ConsultaRiesgos consulta) { List<ApoyoLista> retorno = new List<ApoyoLista>(); try { List<string> idsApoyos = new List<string>(); List<string> criteriosRiesgos = new List<string>(); List<string> criteriosComparaciones = new List<string>(); List<string> criteriosValores = new List<string>(); IQueryable<IGrouping<string, KRiesgo>> valores_riesgos = db.KRiesgo.GroupBy(z => z.id_apoyo); int posC = 0; foreach(string e in consulta.comparaciones){ if (String.IsNullOrEmpty(e) != true && String.IsNullOrEmpty(consulta.valores.ToArray()[posC]) != true) { string idR = consulta.riesgos.ToArray()[posC]; string valorC = consulta.valores.ToArray()[posC]; string v =""; if(e=="1"){ v = "MAYOR"; } if (e == "2") { v = "MENOR"; } if (e == "3") { v = "IGUAL"; } criteriosComparaciones.Add(v); criteriosRiesgos.Add(consulta.listaRiesgos.First(m => m.Value == idR).Text); criteriosValores.Add(valorC); } posC++; } foreach(IGrouping<string, KRiesgo> k in valores_riesgos){ int pos = 0; bool comparacion = false; foreach(string e in consulta.comparaciones){ string idR = consulta.riesgos.ToArray()[pos]; string valorC = consulta.valores.ToArray()[pos]; if (String.IsNullOrEmpty(e) != true && String.IsNullOrEmpty(valorC) != true) { double val = double.Parse(valorC); if(e=="1") { var result = k.FirstOrDefault(m => m.id_riesgo == idR && m.valor > val); if (result == null) { comparacion = false; break; } else { comparacion = true; } } else if (e == "2") { var result = k.FirstOrDefault(m => m.id_riesgo == idR && m.valor < val); if (result == null) { comparacion = false; break; } else { comparacion = true; } } else if (e == "3") { var result = k.FirstOrDefault(m => m.id_riesgo == idR && m.valor == val); if (result == null) { comparacion = false; break; } else { comparacion = true; } } } pos++; }//Fin forEach 2 if (comparacion) { idsApoyos.Add(k.Key); } }//Fin forEach 1 retorno = db.ApoyoLista.Where(item => idsApoyos.Contains(item.id)).ToList(); ExportPDF exportar = new ExportPDF(); exportar.ConsultaRiesgos(retorno.OrderBy(m => m.linea_n).ToList(), User.Identity.GetUserId(), "RESULTADO_CONSULTA_RIESGOS", "RESULTADO CONSULTA DE RIESGOS",criteriosRiesgos,criteriosComparaciones,criteriosValores); RetornarDatosConsulta retornar = new RetornarDatosConsulta(); retornar.listaApoyos = retorno.OrderBy(m => m.linea_n).ToList(); retornar.exel = new ExportXSL().ExportarConsultaAnomalias(retorno.OrderBy(m => m.linea_n).ToList()); string json = JsonConvert.SerializeObject(retornar); return new System.Web.Mvc.JsonResult() { Data = json, MaxJsonLength = 1073741824, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; }//Fin try catch (Exception e) { return new System.Web.Mvc.JsonResult() { Data = "Error al realizar la consulta", MaxJsonLength = 1073741824, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; }//Fin catch }
public ActionResult GestionEconomicaInspecciones() { List<GestionEconomicaInspecciones> retorno = db.GestionEconomicaInspecciones.ToList(); ExportPDF exportar = new ExportPDF(); exportar.ExportGestionEconomicaInspecciones(retorno, User.Identity.GetUserId(), "GESTION_ECONOMICA_INSPECCIONES", "GESTIÓN ECONÓMICA DE INSPECCIONES"); return View(retorno); }