private void InitializarQuejas(QuejasReportViewModel quejasReport) { List <QuejaReportViewModel> quejas = new List <QuejaReportViewModel>(); db.Quejas .Include(q => q.Cliente) .Include(q => q.Empleado) .Include(q => q.Sucursal) .Include(q => q.Departamento) .Include(q => q.Tipo_Queja) .Include(q => q.Estado_QR) .ToList().ForEach( q => { QuejaReportViewModel tempQueja = new QuejaReportViewModel(); tempQueja.Numero = q.QRID.GetValueOrDefault(); tempQueja.Fecha = q.Fecha.GetValueOrDefault(); tempQueja.Cliente = q.Cliente?.Nombre + " " + q.Cliente?.Apellido; tempQueja.Departamento = q.Departamento?.Nombre; tempQueja.Sucursal = q.Sucursal?.Nombre; tempQueja.Empleado = q.Empleado?.Nombre + " " + q.Empleado?.Apellido; tempQueja.Estado = q.Estado_QR?.Descripcion; tempQueja.Tipo = q.Tipo_Queja?.Descripcion; tempQueja.Comentario = q.Comentario; quejas.Add(tempQueja); } ); quejasReport.Quejas = quejas; }
public ActionResult ExportQuejas() { ExcelPackage.LicenseContext = LicenseContext.NonCommercial; using (ExcelPackage Ep = new ExcelPackage()) { QuejasReportViewModel quejasReport = InitializarQuejasReportViewModel(); ExcelWorksheet Sheet = Ep.Workbook.Worksheets.Add("Report"); Sheet.Cells["A1"].Value = "Número de queja"; Sheet.Cells["B1"].Value = "Fecha"; Sheet.Cells["C1"].Value = "Cliente"; Sheet.Cells["D1"].Value = "Departamento"; Sheet.Cells["E1"].Value = "Sucursal"; Sheet.Cells["F1"].Value = "Empleado"; Sheet.Cells["G1"].Value = "Estado"; Sheet.Cells["H1"].Value = "Tipo de queja"; Sheet.Cells["I1"].Value = "Comentario"; int row = 2; foreach (var item in quejasReport.Quejas) { Sheet.Cells[string.Format("A{0}", row)].Value = item.Numero; Sheet.Cells[string.Format("B{0}", row)].Value = item.Fecha; Sheet.Cells[string.Format("C{0}", row)].Value = item.Cliente; Sheet.Cells[string.Format("D{0}", row)].Value = item.Departamento; Sheet.Cells[string.Format("E{0}", row)].Value = item.Sucursal; Sheet.Cells[string.Format("F{0}", row)].Value = item.Empleado; Sheet.Cells[string.Format("G{0}", row)].Value = item.Estado; Sheet.Cells[string.Format("H{0}", row)].Value = item.Tipo; Sheet.Cells[string.Format("I{0}", row)].Value = item.Comentario; row++; } row++; Sheet.Cells[string.Format("A{0}", row)].Value = "Estado"; Sheet.Cells[string.Format("B{0}", row)].Value = "Cantidad"; Sheet.Cells[string.Format("C{0}", row)].Value = "Porcentaje"; foreach (var item in quejasReport.Estados) { Sheet.Cells[string.Format("A{0}", row)].Value = item.Estado; Sheet.Cells[string.Format("B{0}", row)].Value = item.Cantidad; Sheet.Cells[string.Format("C{0}", row)].Value = string.Format("{0}%", item.Porcentaje); row++; } Sheet.Cells["A:AZ"].AutoFitColumns(); var stream = new MemoryStream(); Ep.SaveAs(stream); string fileName = "QuejasReport.xlsx"; string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; stream.Position = 0; return(File(stream, contentType, fileName)); } }
private QuejasReportViewModel InitializarQuejasReportViewModel() { QuejasReportViewModel quejasReport = new QuejasReportViewModel(); InitializarQuejas(quejasReport); InitializarEstadosQuejas(quejasReport); return(quejasReport); }
private void InitializarEstadosQuejas(QuejasReportViewModel quejasReport) { int totalQR = db.Quejas.Count(); List <EstadoViewModel> estados = new List <EstadoViewModel>(); db.Estado_QRs.ToList().ForEach( e => { EstadoViewModel tempEstado = new EstadoViewModel(); tempEstado.Estado = e.Descripcion; tempEstado.Cantidad = db.Quejas.Count(q => q.Estado_QR_EstadoID == e.EstadoID); tempEstado.Porcentaje = getPorcentaje((decimal)tempEstado.Cantidad, (decimal)totalQR); estados.Add(tempEstado); } ); quejasReport.Estados = estados; }
public ActionResult Quejas() { QuejasReportViewModel quejasReport = InitializarQuejasReportViewModel(); return(View(quejasReport)); }