예제 #1
0
        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;
        }
예제 #2
0
        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));
            }
        }
예제 #3
0
        private QuejasReportViewModel InitializarQuejasReportViewModel()
        {
            QuejasReportViewModel quejasReport = new QuejasReportViewModel();

            InitializarQuejas(quejasReport);

            InitializarEstadosQuejas(quejasReport);

            return(quejasReport);
        }
예제 #4
0
        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;
        }
예제 #5
0
        public ActionResult Quejas()
        {
            QuejasReportViewModel quejasReport = InitializarQuejasReportViewModel();

            return(View(quejasReport));
        }