示例#1
0
 public void CreaLegislatura()
 {
     using (Entities c = new Entities())
     {
         l = new LEGISLATURA()
         {
             DESCRIPCION = "Legislatura Desde Test"
         };
         c.LEGISLATURA.Add(l);
     }
 }
示例#2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            StringBuilder htmlText = new StringBuilder();

            if (!IsPostBack)
            {
                bool bSinMarcoEnDrupal = false;

                //Si especificamos el parametro d cargaremos los enlaces para apuntar directamente a la página de Drupal
                if (Request["d"] != null)
                {
                    bSinMarcoEnDrupal = true;
                }

                // Check to see if the startup script is already registered.
                //if (!cs.IsStartupScriptRegistered(cstype, csname1))
                {
                    using (Entities c = new Entities())
                    {
                        c.Configuration.ProxyCreationEnabled = false;
                        int iLegActual = LEGISLATURA.GetActualLegislatura();
                        var results    = c.DEPARTAMENTO.Where(d => d.LEGISLATURA_ID == iLegActual && d.VISIBLE == true).ToList().OrderBy(d => d.ORDEN);


                        string  sProgBarId = "";
                        string  sLinkDep   = "";
                        decimal decProg;

                        decimal decTL;
                        int     iObjetivosSinIniciar          = 0;
                        int     iObjetivosIniciados           = 0;
                        int     iObjetivosTerminados          = 0;
                        int     iNumAcciones                  = 0;
                        int     iNumObjetivos                 = 0;
                        int     iSumaPorcenajesAvanceAcciones = 0;
                        decimal dPorcSinIniciar               = 0;
                        decimal dPorcIniciados                = 0;
                        decimal dPorcTerminados               = 0;
                        decimal dPorcIndiceGlobalCumplimiento = 0;

                        //decimal dObjetivosEnMarcha;
                        LEGISLATURA.GetDatosCuadroMando(out decTL, out iObjetivosSinIniciar, out iObjetivosIniciados, out iObjetivosTerminados,
                                                        out iSumaPorcenajesAvanceAcciones, out iNumAcciones, out iNumObjetivos,
                                                        out dPorcSinIniciar, out dPorcIniciados, out dPorcTerminados, out dPorcIndiceGlobalCumplimiento);



                        htmlText.Append("<div class='cont-progress-bar-sinmarco' style='width:99%' title='" + dPorcIndiceGlobalCumplimiento + "% índice global de cumplimiento. " + decTL + "% Legislatura completada'>Índice global de cumplimiento");
                        htmlText.Append("<div class='progress'>");

                        if (dPorcIndiceGlobalCumplimiento >= decTL)
                        {
                            htmlText.Append("<div class='progress-bar-marca-leg-sup' style='width: " + decTL + "%' title='" + dPorcIndiceGlobalCumplimiento + "% Índice global de cumplimiento. " + decTL + "% Legislatura completada'></div>");
                            htmlText.Append("<div class='progress-bar progress-bar-striped active-sup' style='background-color: #a2c451; width: " + dPorcIndiceGlobalCumplimiento + "%;'>" + dPorcIndiceGlobalCumplimiento + "%</div>");
                        }
                        else
                        {
                            htmlText.Append("<div class='progress-bar-marca-leg' style='width: " + decTL + "%' title='" + decTL + "% Legislatura completada'></div>");
                            htmlText.Append("<div class='progress-bar progress-bar-striped active' style='background-color: #a2c451; width: " + dPorcIndiceGlobalCumplimiento + "%;'>" + dPorcIndiceGlobalCumplimiento + "%</div>");
                        }



                        htmlText.Append("</div></div>");
                        int i = 1;

                        foreach (DEPARTAMENTO dep in results)
                        {
                            if (i == 1)
                            {
                                htmlText.Append("<div class='row'>");
                            }

                            htmlText.Append("<div class='col-sm-4'>");

                            sProgBarId = "progbar" + dep.DEPARTAMENTO_ID;
                            sLinkDep   = "a" + dep.DEPARTAMENTO_ID;
                            decProg    = dep.GetEvolucion();

                            htmlText.Append("<div class='cont-progress-bar' title='Plan de Gobierno del Departamento de " + dep.DESCRIPCION + ": " + decProg + "% índice global de cumplimiento. Haga clic para ver el detalle.' onclick='document.getElementById(\"" + sLinkDep + "\").click()'>");


                            if (bSinMarcoEnDrupal)
                            {
                                htmlText.Append("<a title='Plan de Gobierno del Departamento de " + dep.DESCRIPCION + ": " + decProg + "% índice global de cumplimiento. Haga clic para ver el detalle.' class='apg' id=" + sLinkDep + " style='cursor: pointer;' onclick='return handleOnclick(event);' target='_parent' href='//transparencia.aragon.es/content/plan-de-gobierno-detalle-departamento?id=" + dep.DEPARTAMENTO_ID + "'>" + dep.DESCRIPCION + "</a>");
                            }
                            else
                            {
                                htmlText.Append("<a title='Plan de Gobierno del Departamento de " + dep.DESCRIPCION + ": " + decProg + "% índice global de cumplimiento. Haga clic para ver el detalle.' class='apg' id=" + sLinkDep + " style='cursor: pointer;' onclick='return handleOnclick(event);' target='_blank' href='DetalleDepartamento?id=" + dep.DEPARTAMENTO_ID + "'>" + dep.DESCRIPCION + "</a>");
                            }

                            htmlText.Append("<div class='progress'>");

                            if (decProg >= decTL)
                            {
                                //Si sobrepasa el % cambiamos el estilo para que se vea la barra
                                htmlText.Append("<div class='progress-bar-marca-leg-sup' style='width: " + decTL + "%' title='Plan de Gobierno del Departamento de " + dep.DESCRIPCION + ": " + decProg + "% índice global de cumplimiento. " + decTL + "% Legislatura completada. Haga clic para ver el detalle.'></div>");
                                htmlText.Append("<div class='progress-bar progress-bar-striped active-sup' title='Plan de Gobierno del Departamento de " + dep.DESCRIPCION + ": " + decProg + "% índice global de cumplimiento. Haga clic para ver el detalle.' style='width: " + decProg + "%;'>" + decProg + "%</div>");
                            }
                            else
                            {
                                htmlText.Append("<div class='progress-bar-marca-leg' style='width: " + decTL + "%' title='" + decTL + "% Legislatura completada'></div>");
                                htmlText.Append("<div class='progress-bar progress-bar-striped active' title='Plan de Gobierno del Departamento de " + dep.DESCRIPCION + ": " + decProg + "% índice global de cumplimiento. Haga clic para ver el detalle.' style='width: " + decProg + "%;'>" + decProg + "%</div>");
                            }



                            htmlText.Append("</div></div></div>");

                            if (i == 3)
                            {
                                i = 1;
                                htmlText.Append("</div>");
                            }
                            else
                            {
                                i++;
                            }
                        }
                    }

                    this.litBarrasDep.Text = htmlText.ToString();
                }
            }
        }
示例#3
0
    protected void Page_Load()
    {
        if (Request["id"] == null)
        {
            Response.Redirect("AdminPlan.aspx?id=" + getDptoId().ToString(), true);
        }


        if (!IsPostBack)
        {
            int?iDptoId = null;

            iDptoId = getDptoId();

            //Comprobamos lo primero de todo que la entidad a administrar es la del usuario o es un administrador
            try
            {
                if (!User.IsInRole(AspNetRoles.ADMINISTRADOR) && !User.IsInRole(AspNetRoles.VALIDADOR))
                {
                    if (Request["id"] != null)
                    {
                        if (iDptoId != Convert.ToInt32(Request["id"]))
                        {
                            //No autorizado
                            logger.Info("No autorizado en AdminPlan.aspx. Usuario: " + User.Identity.GetUserId() + " Departamento: " + Request["id"]);
                            Response.Redirect("../Default.aspx", true);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Warn("Error en AdminPlan.aspx (2). Error: " + ex.Message + " " + ex.InnerException);
                Notificaciones.NotifySystemOps(ex);
                Response.Redirect("../Default.aspx", true);
            }

            using (Entities c = new Entities())
            {
                DEPARTAMENTO dep = c.DEPARTAMENTO.Find(iDptoId);
                if (dep != null)
                {
                    LEGISLATURA leg = c.LEGISLATURA.Find(dep.LEGISLATURA_ID);

                    if (!dep.VISIBLE)
                    {
                        if (!User.IsInRole(AspNetRoles.ADMINISTRADOR) && !User.IsInRole(AspNetRoles.VALIDADOR))
                        {
                            ////No se puede editar un departamento no visible
                            //logger.Info("Editando un departamento no visible. Usuario: " + User.Identity.GetUserId() + " Departamento: " + iDptoId);
                            //Response.Redirect("../Default.aspx", true);
                        }
                    }
                    else if (!leg.ACTUAL)
                    {
                        //if (!User.IsInRole(AspNetRoles.ADMINISTRADOR))
                        //{
                        //    logger.Info("Editando un departamento de una legislatura no actual. Usuario: " + User.Identity.GetUserId() + " Departamento: " + iDptoId);
                        //    Response.Redirect("../Default.aspx", true);
                        //}
                    }


                    //List<ESTADOS_SEGUIMIENTO> tipos = c.ESTADOS_SEGUIMIENTO.ToList();
                    //tipos.Add(new ESTADOS_SEGUIMIENTO() { ESTADO_SEGUIMIENTO_ID = -1, DESCRIPCION = "Seleccione..." });

                    //this.ddlEstadoSeguimiento.DataTextField = "DESCRIPCION";
                    //this.ddlEstadoSeguimiento.DataValueField = "ESTADO_SEGUIMIENTO_ID";
                    //this.ddlEstadoSeguimiento.DataSource = tipos;
                    //this.ddlEstadoSeguimiento.DataBind();
                    //this.ddlEstadoSeguimiento.ClearSelection();
                    //this.ddlEstadoSeguimiento.Items.FindByText("Seleccione...").Selected = true;


                    this.litLegislatura.Text = leg.DESCRIPCION;
                    this.litNombredDEP.Text  = dep.DESCRIPCION;
                    this.Title = dep.DESCRIPCION;
                }
                else
                {
                    logger.Info("El departamento no existe (Planes/AdminPlan.aspx).");
                    Response.Redirect("../Default.aspx", true);
                }
            }

            if (!String.IsNullOrEmpty(Request["e"]))
            {
                ErrorMessage         = Request["e"];
                errorMessage.Visible = true;
            }
            else if (!String.IsNullOrEmpty(Request["m"]))
            {
                SuccessMessage         = Request["m"];
                successMessage.Visible = true;
            }
            else
            {
                ErrorMessage           = "";
                errorMessage.Visible   = false;
                SuccessMessage         = "";
                successMessage.Visible = false;
            }
        }
    }
示例#4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (!String.IsNullOrEmpty(Request["t"]))
                {
                    string sInforme           = Request["t"].ToString();
                    bool   exportacionDirecta = false;
                    bool   bFormatoCorrecto   = false;
                    string sFormato           = "";
                    if (!String.IsNullOrEmpty(Request["f"]))
                    {
                        sFormato           = Request["f"].ToString().ToUpper();
                        exportacionDirecta = true;
                    }

                    Warning[] warnings;
                    string[]  streamIds;
                    string    mimeType      = string.Empty;
                    string    encoding      = string.Empty;
                    string    extension     = string.Empty;
                    string    contentType   = string.Empty;
                    string    nombreArchivo = string.Empty;
                    byte[]    bytes         = null;



                    ReportViewer1.ProcessingMode      = ProcessingMode.Local;
                    ReportViewer1.AsyncRendering      = false;
                    ReportViewer1.SizeToReportContent = true;
                    ReportViewer1.Width  = Unit.Percentage(100);
                    ReportViewer1.Height = Unit.Percentage(100);
                    ReportViewer1.LocalReport.EnableHyperlinks = true;



                    ReportViewer1.ZoomMode = ZoomMode.PageWidth;


                    if (sInforme == "plan")
                    {
                        int?id            = null;
                        int?LegislaturaId = null;

                        if (!String.IsNullOrEmpty(Request["id"]))
                        {
                            int i;
                            Int32.TryParse(Request["id"], out i);
                            id = i;
                        }

                        if (!String.IsNullOrEmpty(Request["lid"]))
                        {
                            int i;
                            Int32.TryParse(Request["lid"], out i);
                            LegislaturaId = i;
                        }


                        if (id.HasValue)
                        {
                            ReportViewer1.LocalReport.ReportPath = Server.MapPath(@"PlanGobiernoXdpto.rdlc");
                        }
                        else
                        {
                            ReportViewer1.LocalReport.ReportPath = Server.MapPath(@"PlanGobierno.rdlc");
                            //  ReportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LegPlanSubreportProcessingEventHandler);
                        }



                        ds = LEGISLATURA.Informe(id, Server.MapPath("informePLGO.xsd"), LegislaturaId);

                        ReportDataSource datasource = new ReportDataSource("DataSetPLGO", ds.Tables["DataTable1"]);
                        ReportViewer1.LocalReport.DataSources.Clear();
                        ReportViewer1.LocalReport.DataSources.Add(datasource);
                        nombreArchivo = "PlanDeGobierno";
                    }



                    if (sFormato == "PDF")
                    {
                        bytes            = ReportViewer1.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);
                        contentType      = "application/pdf";
                        bFormatoCorrecto = true;
                    }
                    else if (sFormato == "XLSX")
                    {
                        bytes            = ReportViewer1.LocalReport.Render("EXCELOPENXML", null, out mimeType, out encoding, out extension, out streamIds, out warnings);
                        contentType      = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                        bFormatoCorrecto = true;
                    }
                    else if (sFormato == "DOCX")
                    {
                        bytes            = ReportViewer1.LocalReport.Render("WORDOPENXML", null, out mimeType, out encoding, out extension, out streamIds, out warnings);
                        contentType      = "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
                        bFormatoCorrecto = true;
                    }



                    if (exportacionDirecta && bFormatoCorrecto)
                    {
                        Response.Buffer = true;
                        Response.Clear();
                        Response.ContentType = contentType;
                        Response.AddHeader("content-disposition", "attachment; filename=" + nombreArchivo + "." + extension);
                        Response.AddHeader("content-length", bytes.Length.ToString());
                        Response.BinaryWrite(bytes);
                        Response.Flush();
                    }
                }
            }
        }
示例#5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!(User.IsInRole(AspNetRoles.ADMINISTRADOR)) && !(User.IsInRole(AspNetRoles.VALIDADOR)))
        {
            //Intenta acceder un usuario sin permisos
            logger.Info("No autorizadoError en get_report.aspx. Usuario: " + User.Identity.GetUserId());
        }


        ReportDocument rpt = new ReportDocument();

        int?iDptoId = null;

        try
        {
            if (!String.IsNullOrEmpty(Request["id"]))
            {
                iDptoId = Convert.ToInt32(Request["id"]);
            }



            using (Entities c = new Entities())
            {
                List <DEPARTAMENTO> dptos = null;

                if (iDptoId.HasValue)
                {
                    dptos = c.DEPARTAMENTO.Where(st => st.DEPARTAMENTO_ID == iDptoId.Value).ToList();
                }
                else
                {
                    int iLegActual = LEGISLATURA.GetActualLegislatura();
                    dptos = c.DEPARTAMENTO.Where(st => st.LEGISLATURA_ID == iLegActual).OrderBy(st => st.ORDEN).ToList();
                }

                int     iRow = 0;
                DataSet ds   = new DataSet();
                ds.ReadXmlSchema(Server.MapPath("~/App_Code/informePLGO.xsd"));


                foreach (DEPARTAMENTO dep in dptos)
                {
                    List <OBJETIVO> objetivos;

                    objetivos = c.CONTENIDO.OfType <OBJETIVO>().Where(st => st.DEPARTAMENTO_ID == dep.DEPARTAMENTO_ID && st.VISIBLE == true).OrderBy(st => st.OBJETIVO_ESTRATEGICO).ToList();

                    foreach (OBJETIVO obj in objetivos)
                    {
                        List <ACCION> acciones;
                        acciones = c.CONTENIDO.OfType <ACCION>().Where(st => st.DEPARTAMENTO_ID == dep.DEPARTAMENTO_ID && st.OBJETIVO_CONTENIDO_ID == obj.CONTENIDO_ID && st.VISIBLE == true).OrderBy(st => st.INSTRUMENTOS_ACT).ToList();

                        foreach (ACCION acc in acciones)
                        {
                            DataRow dr = ds.Tables[0].NewRow();
                            dr[0] = dep.DESCRIPCION;
                            dr[1] = obj.OBJETIVO_ESTRATEGICO;
                            dr[2] = acc.INSTRUMENTOS_ACT;
                            dr[3] = acc.ORGANO_RESPONSABLE;
                            dr[4] = acc.RECURSOS_HUMANOS;
                            dr[5] = acc.COSTE_ECONOMICO;
                            dr[6] = acc.MEDIOS_OTROS;
                            dr[7] = acc.TEMPORALIDAD;
                            dr[8] = acc.SEGUIMIENTO;
                            dr[9] = acc.ESTADOS_SEGUIMIENTO.DESCRIPCION;

                            if (acc.FECHA_MODIFICACION.HasValue)
                            {
                                dr[10] = acc.FECHA_MODIFICACION.Value.ToShortDateString();
                            }
                            else
                            {
                                dr[10] = acc.FECHA_CREACION.ToShortDateString();
                            }

                            dr[11] = dep.ORDEN;

                            ds.Tables[0].Rows.Add(dr);
                        }
                    }
                }


                rpt.Load(MapPath(Request.ApplicationPath + "/AdmPlanes/InformeAdmPlanes.rpt"));

                rpt.Database.Tables["DataTable1"].SetDataSource(ds);

                string sFormato       = "";
                string sNombreArchivo = "EstadoSeguimientoPlanDeGobierno";

                if (!String.IsNullOrEmpty(Request["format"]))
                {
                    sFormato = Request["format"].ToUpper();
                }


                if (String.IsNullOrEmpty(sFormato))
                {
                    //por defecto exportamos en PDF
                    rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, sNombreArchivo);
                }

                if (sFormato.Equals("PDF"))
                {
                    rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, sNombreArchivo);
                }
                else if (sFormato.Equals("DOC"))
                {
                    rpt.ExportToHttpResponse(ExportFormatType.WordForWindows, Response, false, sNombreArchivo);
                }
                else if (sFormato.Equals("XLS"))
                {
                    rpt.ExportToHttpResponse(ExportFormatType.Excel, Response, false, sNombreArchivo);
                }
                else if (sFormato.Equals("XLSREC"))
                {
                    rpt.ExportToHttpResponse(ExportFormatType.ExcelRecord, Response, false, sNombreArchivo);
                }
                else if (sFormato.Equals("RTF"))
                {
                    rpt.ExportToHttpResponse(ExportFormatType.RichText, Response, false, sNombreArchivo);
                }

                /*else if (sFormato.Equals("XML")) //NO ES COMPATIBLE CON CR10, si que va con CR13
                 *  rpt.ExportToHttpResponse(ExportFormatType.Xml, Response, false, sNombreArchivo);                */
            }
        }
        catch (Exception ex)
        {
            logger.Error("Error en AdmPlanes/get_report.aspx  get_report(). Error: " + ex.Message + " " + ex.InnerException);
        }
    }
示例#6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpContext ctx = HttpContext.Current;

        ctx.Response.ContentType = "application/json";

        if (!String.IsNullOrEmpty(Request["op"]))
        {
            string sOperacion    = Request["op"].ToString();
            string sEcho         = "";
            int?   displayLength = null;
            int?   displayStart  = null;
            int?   sortCol       = null;
            string sortOrder     = null;

            if (!String.IsNullOrEmpty(Request["sEcho"]))
            {
                sEcho = HttpContext.Current.Request.Params["sEcho"];
            }
            if (!String.IsNullOrEmpty(Request["iDisplayLength"]))
            {
                displayLength = int.Parse(HttpContext.Current.Request.Params["iDisplayLength"]);
            }
            if (!String.IsNullOrEmpty(Request["iDisplayStart"]))
            {
                displayStart = int.Parse(HttpContext.Current.Request.Params["iDisplayStart"]);
            }
            if (!String.IsNullOrEmpty(Request["sSortDir_0"]))
            {
                sortOrder = HttpContext.Current.Request.Params["sSortDir_0"];
            }
            if (!String.IsNullOrEmpty(Request["iSortCol_0"]))
            {
                sortCol = int.Parse(HttpContext.Current.Request.Params["iSortCol_0"]);
            }


            if (sOperacion == "O")
            {
                //Carga de Objetivo y sus Acciones
                if (Request["id"] != null)
                {
                    using (Entities c = new Entities())
                    {
                        int iDeptId;
                        try
                        {
                            iDeptId = Convert.ToInt32(Request["id"]);

                            DEPARTAMENTO d = c.DEPARTAMENTO.Find(Convert.ToInt32(Request["id"]));
                            LEGISLATURA  l = c.LEGISLATURA.Find(d.LEGISLATURA_ID);
                            if (d.VISIBLE && l.ACTUAL)
                            {
                                c.Configuration.ProxyCreationEnabled = false;
                                var results = c.CONTENIDO.Include("ACCION").OfType <OBJETIVO>().Where(st => st.DEPARTAMENTO_ID == iDeptId && st.VISIBLE == true && st.OBJETIVO_ESTRATEGICO != null).ToList();

                                //Para poder listar por Json sin necesidad de personalizarlo

                                /*Response.Write(JsonConvert.SerializeObject(results, Formatting.Indented,
                                 *      new JsonSerializerSettings
                                 *      {
                                 *          ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                                 *      }, ObjSerializer));*/

                                Response.Write(JsonConvert.SerializeObject(results, Formatting.Indented, new JsonConverter[] { new ObjSerializer() }));


                                /* //Así con json personalizado
                                 *  List<OBJETIVO> list = new List<OBJETIVO>();
                                 *      list = c.CONTENIDO.OfType<OBJETIVO>().Where(st => st.DEPARTAMENTO_ID == iDptoId.Value).ToList();
                                 *
                                 *      //Response.Write("{ \"data\":");
                                 *      Response.Write(Json.GetJson(list) );
                                 *      //Response.Write("}");*/
                            }
                        }
                        catch (Exception ex)
                        {
                            logger.Error("View/json_data.aspx.cs (op=O). Error: " + ex.Message + " " + ex.InnerException);
                            Notificaciones.NotifySystemOps(ex, "View/json_data.aspx.cs (op=O). Error: " + ex.Message + " " + ex.InnerException);
                        }
                    }
                }
            }
            else if (sOperacion == "dG")
            {
                //Datos Generales: num objetivos, num acciones, fecha de última actualización
                using (Entities c = new Entities())
                {
                    using (var conn = c.Database.Connection)
                    {
                        try
                        {
                            int             iAcciones  = 0;
                            int             iObjetivos = 0;
                            List <DateTime> dtFechas   = new List <DateTime>();

                            /*  Response.Write("[{\"objetivos\": XXX, \"acciones\":XXX, \"ultima_mod\":\"XXX\"}]");*/

                            var cmd = conn.CreateCommand();
                            conn.Open();
                            cmd.CommandText = @"select COUNT(A.CONTENIDO_ID) as acciones, max(fecha_modificacion) as ultimo_modificado, max (fecha_creacion) as ultimo_creado
                                from PLGO_OWN.accion a
                                inner join PLGO_OWN.CONTENIDO c on c.contenido_id = A.CONTENIDO_ID
                                inner join PLGO_OWN.DEPARTAMENTO d on C.DEPARTAMENTO_ID = D.DEPARTAMENTO_ID
                                inner join PLGO_OWN.LEGISLATURA l on L.LEGISLATURA_ID = D.LEGISLATURA_ID
                                WHERE l.actual = 1 and d.visible = 1 and c.visible = 1 and C.TIPO_CAMBIO_CONTENIDO_ID <> 1
                                ";
                            using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
                            {
                                while (reader.Read())
                                {
                                    iAcciones = reader.GetInt32(0);
                                    dtFechas.Add(reader.GetDateTime(1));
                                    dtFechas.Add(reader.GetDateTime(2));
                                }
                            }

                            cmd.CommandText = @"select COUNT(A.CONTENIDO_ID) as objetivos, max(fecha_modificacion) as ultimo_modificado, max (fecha_creacion) as ultimo_creado
                            from PLGO_OWN.OBJETIVO a
                            inner join PLGO_OWN.CONTENIDO c on c.contenido_id = A.CONTENIDO_ID
                            inner join PLGO_OWN.DEPARTAMENTO d on C.DEPARTAMENTO_ID = D.DEPARTAMENTO_ID
                            inner join PLGO_OWN.LEGISLATURA l on L.LEGISLATURA_ID = D.LEGISLATURA_ID
                            WHERE l.actual = 1 and d.visible = 1 and c.visible = 1 and C.TIPO_CAMBIO_CONTENIDO_ID <> 1
                                ";


                            using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
                            {
                                while (reader.Read())
                                {
                                    iObjetivos = reader.GetInt32(0);
                                    dtFechas.Add(reader.GetDateTime(1));
                                    dtFechas.Add(reader.GetDateTime(2));
                                }
                            }
                            Response.Write("[{\"objetivos\":" + iObjetivos + ",\"acciones\":" + iAcciones + ",\"ultima_mod\":\"" + dtFechas.OrderByDescending(x => x).First() + "\"}]");
                        }
                        catch (Exception ex)
                        {
                            logger.Error("View/json_data.aspx.cs (op=dG). Error: " + ex.Message + " " + ex.InnerException);
                            Notificaciones.NotifySystemOps(ex, "View/json_data.aspx.cs (op=dG). Error: " + ex.Message + " " + ex.InnerException);
                        }
                    }
                }
            }
            //Detalle Departamento
            else if (sOperacion == "dD")
            {
                if (Request["id"] != null)
                {
                    try
                    {
                        using (Entities c = new Entities())
                        {
                            if (Request["id"] == null)
                            {
                                Response.Redirect("VerDepartamentos.aspx", false);
                            }
                            else
                            {
                                DEPARTAMENTO d = c.DEPARTAMENTO.Find(Convert.ToInt32(Request["id"]));
                                if (d.VISIBLE)
                                {
                                    Response.Write("{\"desc\":\"" + d.DESCRIPCION + "\"}");
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error("View/json_data.aspx.cs (op=dD) ID= " + Request["id"] + ". Error: " + ex.Message + " " + ex.InnerException);
                        Notificaciones.NotifySystemOps(ex, "View/json_data.aspx.cs (op=dD) ID= " + Request["id"] + ". Error: " + ex.Message + " " + ex.InnerException);
                    }
                }
            }
            //Cuadro de mando
            else if (sOperacion == "cm")
            {
                /*  Response.Write("{\"pLegT\": XXX, \"pObjM\":XXX, \"pObjNI\":\"XXX\", \"pObjI\":\"XXX\", \"pObjT\":\"XXX\"}");*/
                decimal dLegTranscurrida;
                int     iObjetivosSinIniciar          = 0;
                int     iObjetivosIniciados           = 0;
                int     iObjetivosTerminados          = 0;
                int     iNumAcciones                  = 0;
                int     iNumObjetivos                 = 0;
                int     iSumaPorcenajesAvanceAcciones = 0;
                decimal dPorcSinIniciar               = 0;
                decimal dPorcIniciados                = 0;
                decimal dPorcTerminados               = 0;
                decimal dPorcIndiceGlobalCumplimiento = 0;


                LEGISLATURA.GetDatosCuadroMando(out dLegTranscurrida, out iObjetivosSinIniciar, out iObjetivosIniciados, out iObjetivosTerminados,
                                                out iSumaPorcenajesAvanceAcciones, out iNumAcciones, out iNumObjetivos,
                                                out dPorcSinIniciar, out dPorcIniciados, out dPorcTerminados, out dPorcIndiceGlobalCumplimiento);

                dPorcTerminados = 100 - dPorcSinIniciar - dPorcIniciados; //nos aseguramos que la suma no sea mayor que 100%

                Response.Write("{\"pLegT\": " + dLegTranscurrida + ", \"pObjM\": " + dPorcIndiceGlobalCumplimiento + ", \"pObjNI\":" + dPorcSinIniciar + ", \"pObjI\":" + dPorcIniciados + ", \"pObjT\":" + dPorcTerminados + "}");
            }
            //Cuadro de mando por departamento
            else if (sOperacion == "cmd")
            {
                if (Request["id"] != null)
                {
                    try
                    {
                        using (Entities c = new Entities())
                        {
                            if (Request["id"] == null)
                            {
                                Response.Redirect("VerDepartamentos.aspx", false);
                            }
                            else
                            {
                                DEPARTAMENTO d = c.DEPARTAMENTO.Find(Convert.ToInt32(Request["id"]));
                                LEGISLATURA  l = c.LEGISLATURA.Find(d.LEGISLATURA_ID);
                                if (d.VISIBLE && l.ACTUAL)
                                {
                                    //Response.Write("{\"desc\":\"" + d.DESCRIPCION + "\"}");

                                    decimal dLegTranscurrida = LEGISLATURA.GetTiempoLegislatura();
                                    decimal dPorcIndiceGlobalCumplimiento = d.GetEvolucion();
                                    string  sFecha = "";

                                    using (var conn = c.Database.Connection)
                                    {
                                        var cmd = conn.CreateCommand();
                                        conn.Open();
                                        cmd.CommandText = @"select max(fecha_modificacion) as ultimo_modificado
                                        from PLGO_OWN.accion a
                                        inner join PLGO_OWN.CONTENIDO c on c.contenido_id = A.CONTENIDO_ID
                                        inner join PLGO_OWN.DEPARTAMENTO d on C.DEPARTAMENTO_ID = D.DEPARTAMENTO_ID
                                        inner join PLGO_OWN.LEGISLATURA l on L.LEGISLATURA_ID = D.LEGISLATURA_ID
                                        WHERE l.actual = 1 and d.visible = 1 and d.DEPARTAMENTO_ID = :DptoId  and c.visible = 1 and C.TIPO_CAMBIO_CONTENIDO_ID <> 1
                                        ";


                                        var parameter = cmd.CreateParameter();
                                        parameter.ParameterName = ":DptoId";
                                        parameter.Value         = d.DEPARTAMENTO_ID;
                                        cmd.Parameters.Add(parameter);

                                        using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
                                        {
                                            while (reader.Read())
                                            {
                                                try
                                                {
                                                    sFecha = reader.GetDateTime(0).ToShortDateString();
                                                }
                                                catch {
                                                    sFecha = "No disponible";
                                                }
                                            }
                                        }
                                    }
                                    Response.Write("{\"desc\":\"" + d.DESCRIPCION + "\", \"pLegT\": " + dLegTranscurrida + ", \"pObjM\": " + dPorcIndiceGlobalCumplimiento + ", \"um\":\"" + sFecha + "\"}");
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error("View/json_data.aspx.cs (op=dD) ID= " + Request["id"] + ". Error: " + ex.Message + " " + ex.InnerException);
                        Notificaciones.NotifySystemOps(ex, "View/json_data.aspx.cs (op=dD) ID= " + Request["id"] + ". Error: " + ex.Message + " " + ex.InnerException);
                    }
                }
            }
        }
    }