Exemple #1
0
    public void OnSelectedIndexChange_LBEliminar(object sender, EventArgs e)
    {
        if (LBEliminar.SelectedItem != null)
        {
            ServiciosCD40.Sectorizaciones n = new ServiciosCD40.Sectorizaciones();
            Configuration config            = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
            KeyValueConfigurationElement s  = config.AppSettings.Settings["Sistema"];
            n.IdSistema       = s.Value;
            n.IdSectorizacion = LBEliminar.SelectedValue;

            if (ServiceServiciosCD40.DeleteSQL(n) >= 0)
            {
                RecuperaSectorizaciones(n.IdSistema);
                RecuperaSectoresSectorizaciones(n.IdSistema);
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //Si no está autentificado se redirige a la pagina de login
        if (Context.Request.IsAuthenticated)
        {
            // retrieve user's identity from httpcontext user
            FormsIdentity ident  = (FormsIdentity)Context.User.Identity;
            string        perfil = ident.Ticket.UserData;
            //A esta pantalla tienen accesos todos los usuarios menos los operadores
            if (string.Compare(perfil, "0") == 0)
            {
                Response.Redirect("~/Login.aspx", false);
                return;
            }
        }
        else
        {
            Response.Redirect("~/Login.aspx", false);
            return;
        }

        if (!IsPostBack)
        {
            StringBuilder strConsulta = new StringBuilder();

            strVersion             = strNucleo = string.Empty;
            dtst                   = null;
            dtstPermisosRedes      = null;
            dtstUsuAbonados        = null;
            dtstDestinosPanelTlf   = null;
            dtstDestinosPanelLC    = null;
            dtstDestinosPanelRadio = null;
            bExistenTopsFS         = false;
            bSectorizacionActiva   = false;

            /*
             * CRVInfSectorizacion.DisplayToolbar = true;
             * CRVInfSectorizacion.EnableParameterPrompt = false;
             * CRVInfSectorizacion.EnableDatabaseLogonPrompt = false;
             * CRVInfSectorizacion.Visible = false;
             * CRVInfSectorizacion.HasToggleGroupTreeButton = false;
             * CRVInfSectorizacion.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
             * CRVInfSectorizacion.HasToggleParameterPanelButton = false;
             * CRVInfSectorizacion.HasDrilldownTabs = false; //Se oculta la pestaña pagina principal
             * CRVInfSectorizacion.HasExportButton = false; //Se ocultan las opciones de exportacion de la Toolbar
             * CRVInfSectorizacion.HasCrystalLogo = false; //Se oculta el logo de Crystal Reports
             * CRVInfSectorizacion.HasPrintButton = true; //Se muestra la opción de imprimir
             */
            string strIdioma = System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName;

            strIdSectorizacion = (string)Request.Params["SECTORIZACION"];

            if (!string.IsNullOrEmpty(strIdSectorizacion))
            {
                ServiciosCD40.ServiciosCD40 Servicio = new ServiciosCD40.ServiciosCD40();

                //Se obtiene el valor del parámetro Sistema, configurado en el fichero Web.config
                Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
                KeyValueConfigurationElement objConf = config.AppSettings.Settings[CONF_KEY_SISTEMA];
                strIdSistema = objConf.Value;

                bConSafta = false;
                //Se obtiene el parametro que indica si se debe o no visualizar la posición Sacta
                objConf = config.AppSettings.Settings[CONF_KEY_CON_SACTA];

                if ((objConf != null) && (!string.IsNullOrEmpty(objConf.Value) && string.Compare(objConf.Value, "SI", true) == 0))
                {
                    //El sistema está configurado con el sistema SACTA
                    bConSafta = true;
                }

                //Obtenemos el Núcleo, que se pasa como parámetro en todos los informes
                ServiciosCD40.Nucleos tabNucleo = new ServiciosCD40.Nucleos();

                tabNucleo.IdSistema = strIdSistema;
                ServiciosCD40.Tablas[] dTabNucleos = Servicio.ListSelectSQL(tabNucleo);

                if (null != dTabNucleos && dTabNucleos.Length > 0)
                {
                    //Nos quedamos con el primer registro, porque en el sistema sólo se puede definir un nucleo
                    strNucleo   = ((ServiciosCD40.Nucleos)dTabNucleos[0]).IdNucleo;
                    dTabNucleos = null; //Liberamos la memoria
                }

                //Comprobamos si se trata de la sectorización activa
                ServiciosCD40.Tablas[]        objListaSectorizaciones = null;
                ServiciosCD40.Sectorizaciones objSectorizacion        = new ServiciosCD40.Sectorizaciones();

                objSectorizacion.IdSistema       = strIdSistema;
                objSectorizacion.IdSectorizacion = strIdSectorizacion;
                DateTime objFechaActivacion = new DateTime();

                objListaSectorizaciones = Servicio.ListSelectSQL(objSectorizacion);

                if (objListaSectorizaciones != null && objListaSectorizaciones.Length > 0)
                {
                    if (((ServiciosCD40.Sectorizaciones)objListaSectorizaciones[0]).Activa == true)
                    {
                        bSectorizacionActiva = true;
                        objFechaActivacion   = ((ServiciosCD40.Sectorizaciones)objListaSectorizaciones[0]).FechaActivacion;
                    }
                }

                sFicheroReport = Server.MapPath(CR_INF_SECTORIZACION);

                //Se obtienen los datos a visualizar en el informe
                //Lista de Sectores sectorizados y sus parámetros, se excluyen los puestos de operador que están fuera de sectorización
                strConsulta.Append("SELECT sectoressectorizacion.IdSistema, sectoressectorizacion.IdSectorizacion, sectoressectorizacion.IdNucleo, sectoressectorizacion.IdSector, ");
                strConsulta.Append("sectoressectorizacion.IdTOP, sectores.Tipo, sectores.TipoPosicion, sectores.PrioridadR2, sectores.TipoHMI, parametrossector.NumLlamadasEntrantesIDA, ");
                strConsulta.Append("parametrossector.NumFreqPagina, parametrossector.NumLlamadasEnIDA, parametrossector.NumPagFreq, parametrossector.NumDestinosInternosPag, ");
                strConsulta.Append("parametrossector.NumPagDestinosInt, parametrossector.Intrusion, parametrossector.Intruido, parametrossector.KeepAlivePeriod, ");
                strConsulta.Append("parametrossector.KeepAliveMultiplier, parametrossector.NumEnlacesAI, parametrossector.GrabacionEd137, teclassector.TransConConsultaPrev, ");
                strConsulta.Append("teclassector.TransDirecta, teclassector.Conferencia, teclassector.Escucha, teclassector.Retener, teclassector.Captura, teclassector.Redireccion, ");
                strConsulta.Append("teclassector.RepeticionUltLlamada, teclassector.RellamadaAut, teclassector.TeclaPrioridad, teclassector.Tecla55mas1, teclassector.Monitoring, ");
                strConsulta.Append("teclassector.CoordinadorTF, teclassector.CoordinadorRD, teclassector.IntegracionRDTF, teclassector.LlamadaSelectiva, teclassector.GrupoBSS, teclassector.LTT, ");
                strConsulta.Append("teclassector.InhabilitacionRedirec, teclassector.SayAgain, teclassector.Glp ");
                strConsulta.Append("FROM sectoressectorizacion INNER JOIN sectores ON sectoressectorizacion.IdSistema = sectores.IdSistema AND sectoressectorizacion.IdNucleo = sectores.IdNucleo AND ");
                strConsulta.Append("sectoressectorizacion.IdSector = sectores.IdSector INNER JOIN ");
                strConsulta.Append("parametrossector ON sectores.IdSistema = parametrossector.IdSistema AND sectores.IdNucleo = parametrossector.IdNucleo AND ");
                strConsulta.Append("sectores.IdSector = parametrossector.IdSector INNER JOIN ");
                strConsulta.Append("teclassector ON sectores.IdSistema = teclassector.IdSistema AND sectores.IdNucleo = teclassector.IdNucleo AND sectores.IdSector = teclassector.IdSector ");
                strConsulta.AppendFormat(" WHERE sectoressectorizacion.IdSistema='{0}' AND sectoressectorizacion.idSectorizacion='{1}' AND sectoressectorizacion.IdSector!='{2}' ", strIdSistema, strIdSectorizacion, ID_SECTOR_FS);
                strConsulta.Append("ORDER BY sectoressectorizacion.idSectorizacion, sectoressectorizacion.idtop");

                dtst = Servicio.ObtenerDataSet(strConsulta.ToString());

                if (dtst != null && dtst.Tables.Count > 0)
                {
                    dtst.Tables[0].TableName = "Sectores";

                    strConsulta.Clear();

                    //Lista de Permisos redes de los sectores
                    ServiciosCD40.PermisosRedes tabPermisosRedes = new ServiciosCD40.PermisosRedes();
                    tabPermisosRedes.IdSistema = strIdSistema;

                    strConsulta.Append("SELECT IdSistema, IdRed, IdSector, IdNucleo, Llamar, Recibir FROM permisosredes P ");
                    strConsulta.Append("WHERE EXISTS(SELECT 1 FROM SectoresSector S, sectoressectorizacion SS  WHERE SS.IdSistema = S.IdSistema AND SS.IdNucleo = S.IdNucleo AND  SS.IdSector = S.IdSector ");
                    strConsulta.AppendFormat("AND S.IdSector=P.IdSector AND S.IdSistema=P.IdSistema  AND S.IdNucleo=P.IdNucleo AND S.IdSistema='{0}' AND SS.idSectorizacion='{1}') ", strIdSistema, strIdSectorizacion);
                    dtstPermisosRedes = Servicio.ObtenerDataSet(strConsulta.ToString());

                    strConsulta.Clear();

                    //Lista de sectores asociados a cada puesto de operador
                    strConsulta.Append("SELECT  sectoressectorizacion.IdSistema, sectoressectorizacion.IdSectorizacion, sectoressectorizacion.IdNucleo, sectoressectorizacion.IdSector, ");
                    strConsulta.Append("sectoressectorizacion.IdTOP, sectoressector.IdSectorOriginal, sectoressector.EsDominante, sectores.NumSacta ");
                    strConsulta.Append("FROM sectoressectorizacion INNER JOIN ");
                    strConsulta.Append("sectoressector ON sectoressectorizacion.IdSistema = sectoressector.IdSistema AND sectoressectorizacion.IdNucleo = sectoressector.IdNucleo AND ");
                    strConsulta.Append("sectoressectorizacion.IdSector = sectoressector.IdSector INNER JOIN ");
                    strConsulta.Append("sectores ON sectoressector.IdSistema = sectores.IdSistema AND sectoressector.IdNucleo = sectores.IdNucleo AND ");
                    strConsulta.Append("sectoressector.IdSectorOriginal = sectores.IdSector ");
                    strConsulta.AppendFormat("WHERE sectoressectorizacion.IdSistema='{0}' AND sectoressectorizacion.idSectorizacion='{1}' AND sectoressectorizacion.idSector!='{2}' ", strIdSistema, strIdSectorizacion, ID_SECTOR_FS);

                    strConsulta.Append("ORDER BY sectoressectorizacion.IdSectorizacion, sectoressectorizacion.IdSector, sectoressector.EsDominante DESC ");

                    dtstSectores = Servicio.ObtenerDataSet(strConsulta.ToString());

                    strConsulta.Clear();

                    //Lista de Abonados a los que atiende cada sector de la sectorización
                    strConsulta.Append("SELECT U.IdSistema, U.IdPrefijo, U.IdNucleo, U.IdSector,");
                    strConsulta.Append("U.IdAbonado, R.IdRed ");
                    strConsulta.Append("FROM usuariosabonados U inner JOIN ");
                    strConsulta.Append("redes R ON R.IdSistema = R.IdSistema AND U.IdPrefijo = R.IdPrefijo ");
                    strConsulta.AppendFormat("WHERE U.IdSistema='{0}' AND ", strIdSistema);

                    strConsulta.Append("EXISTS(SELECT 1 FROM SectoresSector S, sectoressectorizacion SS  WHERE SS.IdSistema = S.IdSistema AND SS.IdNucleo = S.IdNucleo AND  SS.IdSector = S.IdSector ");
                    strConsulta.AppendFormat("AND S.IdSector=U.IdSector AND S.IdSistema=U.IdSistema  AND S.IdNucleo=U.IdNucleo AND S.IdSistema='{0}' AND SS.idSectorizacion='{1}') ", strIdSistema, strIdSectorizacion);

                    dtstUsuAbonados = Servicio.ObtenerDataSet(strConsulta.ToString());

                    strConsulta.Clear();

                    //Se obtienen los destinos del panel de telefonía de todos los sectores de la sectorizacion
                    strConsulta.Append("SELECT IdSectorizacion, IdSistema, IdNucleo, IdSector, IdDestino, IdPrefijo, PosHMI, Prioridad, OrigenR2, PrioridadSIP, TipoAcceso, Literal, NULL AS Grupo ");
                    strConsulta.AppendFormat("FROM internos WHERE IdSistema='{0}' AND idSectorizacion='{1}' AND TipoAcceso='DA' ", strIdSistema, strIdSectorizacion);
                    strConsulta.Append("UNION  SELECT IdSectorizacion, IdSistema, IdNucleo, IdSector, IdDestino, IdPrefijo, PosHMI, Prioridad, OrigenR2, PrioridadSIP, TipoAcceso, Literal, Grupo ");
                    strConsulta.AppendFormat("FROM externos WHERE IdSistema='{0}' AND idSectorizacion='{1}' AND TipoAcceso='DA'  AND IdPrefijo<>1 ", strIdSistema, strIdSectorizacion);
                    dtstDestinosPanelTlf = Servicio.ObtenerDataSet(strConsulta.ToString());

                    strConsulta.Clear();

                    //Se obtienen los destinos del panel de Línea Caliente
                    strConsulta.Append("SELECT IdSectorizacion, IdSistema, IdNucleo, IdSector, IdDestino, IdPrefijo, PosHMI, Prioridad, OrigenR2, PrioridadSIP, TipoAcceso, Literal, NULL AS Grupo ");
                    strConsulta.AppendFormat("FROM internos WHERE IdSistema='{0}' AND idSectorizacion='{1}' AND TipoAcceso='IA' ", strIdSistema, strIdSectorizacion);
                    strConsulta.Append("UNION  SELECT IdSectorizacion, IdSistema, IdNucleo, IdSector, IdDestino, IdPrefijo, PosHMI, Prioridad, OrigenR2, PrioridadSIP, TipoAcceso, Literal, Grupo ");
                    strConsulta.AppendFormat("FROM externos WHERE IdSistema='{0}' AND idSectorizacion='{1}' AND TipoAcceso='IA'  AND IdPrefijo=3 ", strIdSistema, strIdSectorizacion);
                    dtstDestinosPanelLC = Servicio.ObtenerDataSet(strConsulta.ToString());

                    strConsulta.Clear();

                    //Se obtienen los destinos del panel de radio
                    strConsulta.Append("SELECT IdSistema, IdDestino, IdNucleo, IdSector, PosHMI, Prioridad, PrioridadSIP, ModoOperacion, Cascos, Literal, SupervisionPortadora, IdSectorizacion ");
                    strConsulta.AppendFormat("FROM  radio R WHERE IdSistema='{0}' AND idSectorizacion='{1}'  AND EXISTS (SELECT 1 FROM SectoresSector S WHERE S.IdSector=R.IdSector  ", strIdSistema, strIdSectorizacion);
                    strConsulta.Append("AND R.IdSistema=R.IdSistema  AND S.IdNucleo=R.IdNucleo AND S.IdSistema= R.IdSistema ) ");
                    dtstDestinosPanelRadio = Servicio.ObtenerDataSet(strConsulta.ToString());

                    strConsulta.Clear();

                    //Se obtiene la lista de terminales de operador que está fuera de sectorización
                    strConsulta.Append("SELECT  IdSistema, IdSectorizacion, IdNucleo, IdTOP, IdSector FROM sectoressectorizacion ");
                    strConsulta.AppendFormat("WHERE IdSistema='{0}' AND idSectorizacion='{1}' AND IdSector='{2}' ", strIdSistema, strIdSectorizacion, ID_SECTOR_FS);
                    dtsTopFS = Servicio.ObtenerDataSet(strConsulta.ToString());
                }

                if (System.IO.File.Exists(sFicheroReport))
                {
                    CRSourceInf.Report.FileName = sFicheroReport;
                    CRSourceInf.ReportDocument.Load(sFicheroReport);

                    TraducirInforme(CRSourceInf.ReportDocument, strIdioma);

                    //Asociamos el datasource
                    if (null != dtst && dtst.Tables.Count > 0)
                    {
                        try
                        {
                            if (null != GetLocalResourceObject("LB_INFORME_SECTORIZACION_SUMMARY"))
                            {
                                CRSourceInf.ReportDocument.SummaryInfo.ReportTitle = GetLocalResourceObject("LB_INFORME_SECTORIZACION_SUMMARY").ToString() + " " + strIdSectorizacion;
                            }
                            else
                            {
                                CRSourceInf.ReportDocument.SummaryInfo.ReportTitle = "Informe de la Sectorización: " + strIdSectorizacion;
                            }

                            //Se añaden los dataset al informe principal y a los subinformes
                            CRSourceInf.ReportDocument.SetDataSource(dtst.Tables[0]);

                            //El informe principal tiene 7 subreports

                            if (CRSourceInf.ReportDocument.Subreports.Count > 0)
                            {
                                for (int i = 0; i < CRSourceInf.ReportDocument.Subreports.Count; i++)
                                {
                                    if (CRSourceInf.ReportDocument.Subreports[i] != null)
                                    {
                                        switch (CRSourceInf.ReportDocument.Subreports[i].Name.ToString())
                                        {
                                        case CR_INF_SCT_SUBINF_ABONADOS:
                                            TraducirInforme(CRSourceInf.ReportDocument.Subreports[i], strIdioma);
                                            if (dtstUsuAbonados != null && dtstUsuAbonados.Tables.Count > 0)
                                            {
                                                dtstUsuAbonados.Tables[0].TableName = "usuariosabonados";
                                                CRSourceInf.ReportDocument.Subreports[i].SetDataSource(dtstUsuAbonados.Tables[0]);
                                            }
                                            break;

                                        case CR_INF_SCT_SUBINF_PERMISOS:
                                            TraducirInforme(CRSourceInf.ReportDocument.Subreports[i], strIdioma);
                                            if (dtstPermisosRedes != null && dtstPermisosRedes.Tables.Count > 0)
                                            {
                                                dtstPermisosRedes.Tables[0].TableName = "permisosredes";
                                                CRSourceInf.ReportDocument.Subreports[i].SetDataSource(dtstPermisosRedes.Tables[0]);
                                            }
                                            break;

                                        case CR_INF_SCT_SUBINF_PANEL_TLF:

                                            TraducirInforme(CRSourceInf.ReportDocument.Subreports[i], strIdioma);
                                            if (dtstDestinosPanelTlf != null && dtstDestinosPanelTlf.Tables.Count > 0)
                                            {
                                                dtstDestinosPanelTlf.Tables[0].TableName = "destinostelefoniasector";
                                                CRSourceInf.ReportDocument.Subreports[i].SetDataSource(dtstDestinosPanelTlf.Tables[0]);
                                            }
                                            break;

                                        case CR_INF_SCT_SUBINF_PANEL_LC:

                                            TraducirInforme(CRSourceInf.ReportDocument.Subreports[i], strIdioma);
                                            if (dtstDestinosPanelLC != null && dtstDestinosPanelLC.Tables.Count > 0)
                                            {
                                                dtstDestinosPanelLC.Tables[0].TableName = "destinostelefoniasector";
                                                CRSourceInf.ReportDocument.Subreports[i].SetDataSource(dtstDestinosPanelLC.Tables[0]);
                                            }
                                            break;

                                        case CR_INF_SCT_SUBINF_PANEL_RADIO:

                                            TraducirInforme(CRSourceInf.ReportDocument.Subreports[i], strIdioma);
                                            if (dtstDestinosPanelRadio != null && dtstDestinosPanelRadio.Tables.Count > 0)
                                            {
                                                dtstDestinosPanelRadio.Tables[0].TableName = "destinosradiosector";
                                                CRSourceInf.ReportDocument.Subreports[i].SetDataSource(dtstDestinosPanelRadio.Tables[0]);
                                            }
                                            break;

                                        case CR_INF_SCT_SUBINF_SECTORES:
                                            TraducirInforme(CRSourceInf.ReportDocument.Subreports[i], strIdioma);
                                            if (dtstSectores != null && dtstSectores.Tables.Count > 0)
                                            {
                                                dtstSectores.Tables[0].TableName = "sectoresSector";
                                                CRSourceInf.ReportDocument.Subreports[i].SetDataSource(dtstSectores.Tables[0]);
                                            }
                                            break;

                                        case CR_INT_SCT_SUBINF_PO_FS:
                                            TraducirInforme(CRSourceInf.ReportDocument.Subreports[i], strIdioma);
                                            if (dtsTopFS != null && dtsTopFS.Tables.Count > 0)
                                            {
                                                dtstSectores.Tables[0].TableName = "sectoresSectorizacion";
                                                CRSourceInf.ReportDocument.Subreports[i].SetDataSource(dtsTopFS.Tables[0]);

                                                if (dtsTopFS.Tables[0].Rows.Count > 0)
                                                {
                                                    bExistenTopsFS = true;
                                                }
                                            }
                                            break;

                                        default:
                                            break;
                                        }
                                    }
                                }
                            }

                            //Se lee el recurso Version LB_VERSION
                            if (null != GetGlobalResourceObject("Espaniol", "LB_VERSION"))
                            {
                                strVersion = GetGlobalResourceObject("Espaniol", "LB_VERSION").ToString();
                            }

                            //Se pasan los parámetros al informe. Los parámetros se deben pasar siempre después de configurar
                            //los data Sources. Si no se hace así, la ejecución del report falla, indicando que le faltan parámetros
                            CRSourceInf.ReportDocument.SetParameterValue("p_version", strVersion.ToString());
                            CRSourceInf.ReportDocument.SetParameterValue("p_idEmplazamiento", strNucleo.ToString());
                            CRSourceInf.ReportDocument.SetParameterValue("p_bSAFTA", bConSafta);
                            CRSourceInf.ReportDocument.SetParameterValue("p_idSectorizacion", strIdSectorizacion);
                            CRSourceInf.ReportDocument.SetParameterValue("p_bExistenTopsFS", bExistenTopsFS);             // Se indica la informe si hay puestos de operador FS
                            CRSourceInf.ReportDocument.SetParameterValue("p_bSectorizacionActiva", bSectorizacionActiva); // Se indica la informe si hay puestos de operador FS
                            CRSourceInf.ReportDocument.SetParameterValue("p_fechaActivacion", objFechaActivacion);        //Fecha de activación de la sectorización activa

                            //CRVInfSectorizacion.DataBind();
                            //CRVInfSectorizacion.Visible = true;
                            VisualizaInformePdf();
                        }
                        catch (System.Threading.ThreadAbortException)
                        { //ThreadException can happen for internale Response implementation
                            //La visualización del informe en pdf lanza la excepción interna
                            //Se liberan los dataset
                            if (dtst != null)
                            {
                                dtst.Clear();
                            }

                            if (dtstPermisosRedes != null)
                            {
                                dtstPermisosRedes.Clear();
                            }

                            if (dtstUsuAbonados != null)
                            {
                                dtstUsuAbonados.Clear();
                            }

                            if (dtstDestinosPanelTlf != null)
                            {
                                dtstDestinosPanelTlf.Clear();
                            }

                            if (dtstDestinosPanelLC != null)
                            {
                                dtstDestinosPanelLC.Clear();
                            }

                            if (dtstDestinosPanelRadio != null)
                            {
                                dtstDestinosPanelRadio.Clear();
                            }
                        }
                        catch (Exception ex)
                        {
                            logDebugView.Error(string.Format("Error al ejecutar el informe {0}. Error:{1} ", sFicheroReport, ex.Message.ToString()));
                        }
                    }
                    else
                    {
                        logDebugView.Error(string.Format("Error al ejecutar el informe {0}: el fichero no existe ", sFicheroReport));
                        DeshabilitaBotonesExportar();
                    }
                }
            }
        }
    }
Exemple #3
0
    protected bool ObtenerListaSectorizaciones()
    {
        bool bCorrecto = false;

        try
        {
            ServiciosCD40.Tablas[]        objListaSectorizaciones = null;
            ServiciosCD40.Sectorizaciones objSectorizacion        = new ServiciosCD40.Sectorizaciones();

            Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
            KeyValueConfigurationElement s;

            String strSectorizacionAux = string.Empty;

            s = config.AppSettings.Settings["Sistema"];

            if (s != null)
            {
                objSectorizacion.IdSistema = s.Value;
            }

            if (DListSectorizaciones.Items.Count > 0)
            {
                DListSectorizaciones.Items.Clear();
            }

            LbValorSectorizacionActiva.Text = string.Empty;

            objListaSectorizaciones = ServicioCD40.ListSelectSQL(objSectorizacion);

            DListSectorizaciones.DataTextField = "IdSectorizacion";

            if (objListaSectorizaciones != null && objListaSectorizaciones.Length > 0)
            {
                for (int i = 0; i < objListaSectorizaciones.Length; i++)
                {
                    strSectorizacionAux = ((ServiciosCD40.Sectorizaciones)objListaSectorizaciones[i]).IdSectorizacion;

                    // Evitar que aparezca la sectorización activa y SACTA
                    if ((((ServiciosCD40.Sectorizaciones)objListaSectorizaciones[i]).IdSectorizacion !=
                         ((ServiciosCD40.Sectorizaciones)objListaSectorizaciones[i]).FechaActivacion.ToString("dd/MM/yyyy HH:mm:ss")) &&
                        string.Compare(strSectorizacionAux, "SCV") != 0 &&
                        string.Compare(strSectorizacionAux, "SACTA") != 0)
                    {
                        DListSectorizaciones.Items.Add(strSectorizacionAux);

                        if (((ServiciosCD40.Sectorizaciones)objListaSectorizaciones[i]).Activa == true)
                        {
                            LbValorSectorizacionActiva.Text = strSectorizacionAux;
                        }
                    }
                    else if (string.Compare(strSectorizacionAux, "SACTA") == 0 && ((ServiciosCD40.Sectorizaciones)objListaSectorizaciones[i]).Activa == true)
                    {
                        //Si SACTA es la sectorización activa
                        LbValorSectorizacionActiva.Text = strSectorizacionAux;
                        DListSectorizaciones.Items.Add(strSectorizacionAux);
                    }
                }

                if (!string.IsNullOrEmpty(LbValorSectorizacionActiva.Text) && DListSectorizaciones.Items.Count > 0)
                {
                    DListSectorizaciones.SelectedValue = LbValorSectorizacionActiva.Text;
                }
            }

            bCorrecto = true;
        }
        catch (Exception ex)
        {
            logDebugView.Error("(InformeSectorizaciones-ObtenerListaSectorizaciones): ", ex);
        }

        return(bCorrecto);
    }