public async Task <IActionResult> ArchivoPlantel(string clavePlantel, bool descargaArchivo = false) { if (await ExistePlantel(clavePlantel)) { return(View("NoExistePlantel", clavePlantel)); } if (await UsuarioAutorizadoEnPlantel(clavePlantel)) { return(View("UsuarioNoAutorizadoEnPlantel", $"El usuario no esta autorizado en el Plantel {clavePlantel}")); } var aspiranteEvaluados = _context.Users .AsNoTracking() .Include(u => u.Grupo) .ThenInclude(g => g.Plantel) .Include(u => u.RespuestasEvaluacion) .ThenInclude(re => re.RespuestaPregunta) .ThenInclude(rp => rp.Pregunta) .Where(u => u.Grupo.ClavePlantel == clavePlantel && u.RespuestasEvaluacion.Count() > 0) .OrderBy(u => u.Grupo.Nombre) .ThenBy(u => u.Ficha); var resArchivo = new List <FormatoCargaSistemaCOSDAC>(); foreach (var aspirante in aspiranteEvaluados) { int folio = 0; if (int.TryParse(aspirante.Ficha.Substring(4), out folio)) { var item = new FormatoCargaSistemaCOSDAC { ColumnaA = folio.ToString("000000"), ColumnaE = aspirante.Edad.ToString("00"), }; if (aspirante.Paterno.Length > 12) { item.ColumnaB = aspirante.Paterno.ToUpper().Trim().Substring(0, 12); } else { item.ColumnaB = aspirante.Paterno.ToUpper().Trim(); } if (!string.IsNullOrEmpty(aspirante.Materno)) { if (aspirante.Materno.Length > 12) { item.ColumnaC = aspirante.Materno.ToUpper().Trim().Substring(0, 12); } else { item.ColumnaC = aspirante.Materno.ToUpper().Trim(); } } if (aspirante.Nombre.Length > 12) { item.ColumnaD = aspirante.Nombre.ToUpper().Trim().Substring(0, 12); } else { item.ColumnaD = aspirante.Nombre.ToUpper().Trim(); } if (aspirante.NombreSecundaria.Length > 40) { item.ColumnaG = aspirante.NombreSecundaria.ToUpper().Trim().Substring(0, 40); } else { item.ColumnaG = aspirante.NombreSecundaria.ToUpper().Trim(); } if (aspirante.Paterno.Length > 12) { aspirante.Paterno = aspirante.Paterno.Substring(0, 12); } if (!string.IsNullOrEmpty(aspirante.Materno)) { if (aspirante.Materno.Length > 12) { aspirante.Materno = aspirante.Materno.Substring(0, 12); } } if (aspirante.Nombre.Length > 12) { aspirante.Nombre = aspirante.Nombre.Substring(0, 12); } if (aspirante.NombreSecundaria.Length > 40) { aspirante.NombreSecundaria = aspirante.NombreSecundaria.Substring(0, 40); } string respuestasString = ""; for (int i = 1; i < 101; i++) { var resp = aspirante.RespuestasEvaluacion.FirstOrDefault(re => re.AspiranteId == aspirante.Id && re.RespuestaPregunta.Pregunta.NumeroPregunta == i); if (resp == null) { respuestasString += "X"; } else { respuestasString += resp.RespuestaPregunta.ClaveCOSDAC; } } item.ColumnaH = respuestasString; switch (aspirante.Genero) { case "M": item.ColumnaF = "1"; break; // case "H": item.ColumnaF = "1"; break; case "F": item.ColumnaF = "2"; break; //case "M": item.ColumnaF = "2"; break; default: item.ColumnaF = ""; break; } switch (aspirante.TipoSecundaria) { case "SECUNDARIA GENERAL": item.ColumnaI = "1"; break; case "SECUNDARIA TECNICA": item.ColumnaI = "2"; break; case "SECUNDARIA PARA TRABAJADORES": item.ColumnaI = "3"; break; case "SECUNDARIA COMUNITARIA": item.ColumnaI = "4"; break; case "TELESECUNDARIA": item.ColumnaI = "5"; break; case "OTRA": item.ColumnaI = "6"; break; default: item.ColumnaI = ""; break; } switch (aspirante.TipoSostenimientoSecundaria) { case "FEDERAL": item.ColumnaJ = "1"; break; case "ESTATAL": item.ColumnaJ = "2"; break; case "PARTICULAR (RVOE)": item.ColumnaJ = "3"; break; default: item.ColumnaJ = ""; break; } if (aspirante.PromedioSecundaria >= 6m && aspirante.PromedioSecundaria <= 6.5m) { item.ColumnaK = "1"; } else if (aspirante.PromedioSecundaria >= 6.6m && aspirante.PromedioSecundaria <= 7m) { item.ColumnaK = "2"; } else if (aspirante.PromedioSecundaria >= 7.1m && aspirante.PromedioSecundaria <= 7.5m) { item.ColumnaK = "3"; } else if (aspirante.PromedioSecundaria >= 7.6m && aspirante.PromedioSecundaria <= 8m) { item.ColumnaK = "4"; } else if (aspirante.PromedioSecundaria >= 8.1m && aspirante.PromedioSecundaria <= 8.5m) { item.ColumnaK = "5"; } else if (aspirante.PromedioSecundaria >= 8.6m && aspirante.PromedioSecundaria <= 9m) { item.ColumnaK = "6"; } else if (aspirante.PromedioSecundaria >= 9.1m && aspirante.PromedioSecundaria <= 9.5m) { item.ColumnaK = "7"; } else if (aspirante.PromedioSecundaria >= 9.6m && aspirante.PromedioSecundaria <= 10m) { item.ColumnaK = "8"; } //if (aspirante.PromedioSecundaria >= 6m) //{ // if (aspirante.PromedioSecundaria > 6.5m) // { // if (aspirante.PromedioSecundaria > 7m) // { // if (aspirante.PromedioSecundaria > 7.5m ) // { // if (aspirante.PromedioSecundaria > 8m ) // { // if (aspirante.PromedioSecundaria > 8.5m ) // if (aspirante.PromedioSecundaria > 9m) // { // if (aspirante.PromedioSecundaria > 9.5m && aspirante.PromedioSecundaria <= 10m) // { // if (aspirante.PromedioSecundaria <= 10m) // { // item.ColumnaK = "8"; // } // else // { // // Eso quiere decir que la calificacion es mayor que 10, lo cual es un error para la clasificacion // item.ColumnaK = ""; // } // } // else // { // item.ColumnaK = "8"; // } // } // else // { // item.ColumnaK = "7"; // } // else // { // item.ColumnaK = "6"; // } // } // else // { // item.ColumnaK = "5"; // } // } // else // { // item.ColumnaK = "4"; // } // } // else // { // item.ColumnaK = "3"; // } // } // else // { // item.ColumnaK = "2"; // } //} //else //{ // item.ColumnaK = "1"; //} resArchivo.Add(item); } } if (descargaArchivo) { ExcelPackage package = new ExcelPackage(); package.Workbook.Properties.Title = "CECYTECH"; package.Workbook.Properties.Author = "I.S.C. Alejandro Torres"; package.Workbook.Properties.Subject = "Exportacion de datos para sistema COSDAC"; package.Workbook.Properties.Keywords = "COSDAC"; OfficeOpenXmlExtensions.CrearHojaConLista <FormatoCargaSistemaCOSDAC>(ref package, resArchivo, "Empleados"); return(File(package.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"archivoCOSDAC_{clavePlantel}_{DateTime.Now.ToString("yyyyMMddhhmm")}.xlsx")); } else { ViewBag.clavePlantel = clavePlantel; return(View(resArchivo)); } }
public async Task <IActionResult> DescargarExcel(string clavePlantel = "", string grupo = "") { clavePlantel = clavePlantel.ToUpper().Trim(); if (clavePlantel != "TODOS" && await ExistePlantel(clavePlantel)) { return(View("NoExistePlantel", clavePlantel)); } if (clavePlantel != "TODOS" && await UsuarioAutorizadoEnPlantel(clavePlantel)) { return(View("UsuarioNoAutorizadoEnPlantel", $"El usuario no esta autorizado en el Plantel {clavePlantel}")); } var aspiranteEvaluados = _context.Users .AsNoTracking() .Include(u => u.Grupo) .ThenInclude(g => g.Plantel) .Include(u => u.RespuestasEvaluacion) .ThenInclude(re => re.RespuestaPregunta) .ThenInclude(rp => rp.Pregunta) .Where(u => ((clavePlantel.ToUpper() == "TODOS" || u.Grupo.ClavePlantel == clavePlantel)) & (grupo.ToUpper() == "TODOS" || u.Grupo.Nombre == grupo) & (grupo.ToUpper() != "TODOS" || u.Grupo.Nombre.ToUpper() != "DOCENTES")) .OrderBy(u => u.Grupo.Nombre) .ThenBy(u => u.Ficha); var res = aspiranteEvaluados .AsNoTracking() .Select(a => new { a.UserName, a.Paterno, a.Materno, a.Nombre, a.Genero, a.Edad, a.PromedioSecundaria, a.TipoSecundaria, a.TipoSostenimientoSecundaria, a.Grupo.ClavePlantel, Grupo = a.Grupo.Nombre, Correctas = a.RespuestasEvaluacion.Sum(x => x.RespuestaPregunta.Valor), Incorrectas = a.RespuestasEvaluacion.Count(x => x.RespuestaPregunta.Valor == 0), SinContestar = 100 - a.RespuestasEvaluacion.Count(), Respuestas = string.Join("", _context.Preguntas.AsNoTracking() .Select(w => new { w.NumeroPregunta, clave = a.RespuestasEvaluacion.Any(x => x.RespuestaPregunta.PreguntaId == w.PreguntaId) ? a.RespuestasEvaluacion.First(x => x.RespuestaPregunta.PreguntaId == w.PreguntaId).RespuestaPregunta.ClaveCOSDAC : "X" }) .OrderBy(h => h.NumeroPregunta) .Select(h => h.clave) ) }).ToArray(); ExcelPackage package = new ExcelPackage(); package.Workbook.Properties.Title = "CECYTECH"; package.Workbook.Properties.Author = "I.S.C. Alejandro Torres"; package.Workbook.Properties.Subject = "Exportacion de datos para simulador CECYTECH PLANEA 2018"; package.Workbook.Properties.Keywords = "PLANEA"; OfficeOpenXmlExtensions.CrearHojaConLista(ref package, res, "Empleados"); return(File(package.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"archivoCOSDAC_{clavePlantel}_{grupo}_{DateTime.Now.ToString("yyyyMMddhhmm")}.xlsx")); }