public ActionResult ReporteCiudad(string id, DateTime fechai, DateTime fechaf)
        {
            LocalReport lr = new LocalReport();
            string fileName = string.Concat("VentasPorCiudad.pdf"); 
            string path = Path.Combine(Server.MapPath("~/Reportes"), "VentasPorCiudad.rdlc");
            if (System.IO.File.Exists(path))
            {
                lr.ReportPath = path;
            }
            else
            {
                return View("Index");
            }

        
            List<string> pedidosCiudad = bl.consultarCantidadPedidosPorCiudad(fechai, fechaf);
            List<ReporteCiudad> pedidos = new List<ReporteCiudad>();
            ReporteCiudad pedidoTemporal;

            for (int i = 0; i < pedidosCiudad.Count() - 1; i += 2)
            {
                pedidoTemporal = new ReporteCiudad();
                pedidoTemporal.FechaInicio = fechai.Date;
                pedidoTemporal.FechaFin = fechaf.Date;
                pedidoTemporal.Ciudad = pedidosCiudad.ElementAt(i);
                pedidoTemporal.Cantidad = pedidosCiudad.ElementAt(i + 1);
                pedidos.Add(pedidoTemporal);
            }
         
   
            ReportDataSource rd = new ReportDataSource("VentasPorCiudadDataSet", pedidos);
            lr.DataSources.Add(rd);
            string reportType = id;
            string mimeType;
            string encoding;
            string fileNameExtension;



            string deviceInfo =
            "<DeviceInfo>" +
            "  <OutputFormat>" + id + "</OutputFormat>" +
            "  <PageWidth>8.5in</PageWidth>" +
            "  <PageHeight>11in</PageHeight>" +
            "  <MarginTop>0.5in</MarginTop>" +
            "  <MarginLeft>1in</MarginLeft>" +
            "  <MarginRight>1in</MarginRight>" +
            "  <MarginBottom>0.5in</MarginBottom>" +
            "</DeviceInfo>";

            Warning[] warnings;
            string[] streams;
            byte[] renderedBytes;

            renderedBytes = lr.Render(
                reportType,
                deviceInfo,
                out mimeType,
                out encoding,
                out fileNameExtension,
                out streams,
                out warnings);



            return File(renderedBytes, mimeType);
        }
        public ActionResult VentasPorCiudad(DateTime fecha_inicio, DateTime fecha_fin)
        {

            
             
                List<ReporteCiudad> pedidos = new List<ReporteCiudad>();
                ReporteCiudad pedidoTemporal;
        try
                {
                    List<string> pedidosCiudad = bl.consultarCantidadPedidosPorCiudad(fecha_inicio, fecha_fin);
                for (int i = 0; i < pedidosCiudad.Count() - 1; i += 2)
                {
                    pedidoTemporal = new ReporteCiudad();
                    pedidoTemporal.FechaInicio = fecha_inicio;
                    ViewBag.desde = "desde";
                    ViewBag.hasta = "hasta";
                    ViewBag.fechainicio = fecha_inicio.ToString("yyyy-MM-dd");
                    pedidoTemporal.FechaFin = fecha_fin;
                    ViewBag.fechafin = fecha_fin.ToString("yyyy-MM-dd");
                    pedidoTemporal.Ciudad = pedidosCiudad.ElementAt(i);
                    pedidoTemporal.Cantidad = pedidosCiudad.ElementAt(i + 1);
                    pedidos.Add(pedidoTemporal);
                }
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", "Seleccione las fechas para generar el reporte");
            }

     
            return View(pedidos);
        }