예제 #1
0
    private bool bExisteAgrupacionConSectores(bool bNuevaAgrupacion, string strListaSectores)
    {
        bool   bExiste      = false;
        string idAgrupacion = String.Empty;

        //En el Alta, se comprueba si ya existe otra agrupación con el mismo identificador.
        //En el alta y en la modificación, se comprueba si en el sistema existe una agrupación con el conjunto de sectores configurado
        try
        {
            ServiciosCD40.Sectores s = new ServiciosCD40.Sectores();

            if (bNuevaAgrupacion) //Nueva Agrupacion
            {
                ServiciosCD40.Agrupaciones n = new ServiciosCD40.Agrupaciones();

                n.IdSistema    = (string)Session["idsistema"];
                n.IdAgrupacion = TxtIdAgrupacion.Text;

                //Se comprueba que si existe otra agrupación en el sistema con el mismo nombre
                ServiciosCD40.Tablas[] d = servicioParaSectorizacion.ListSelectSQL(n);
                if (null != d && d.Length > 0)
                {
                    cMsg.alert(string.Format((string)GetGlobalResourceObject("Espaniol", "AvisoAgrupacionExiste"), TxtIdAgrupacion.Text));
                    bExiste = true;
                }
            }
            else
            {   //Se obtiene el id de la agrupación que se está modificando
                idAgrupacion = TxtIdAgrupacion.Text;
            }

            if (!bExiste)
            {
                //Si la agrupación es nueva y no existe o se va a modificar, se comprueba si existe en el sistema
                //otra agrupación con el mismo conjunto de sectores

                if (servicioParaSectorizacion.ExisteAgrupacionConSectores(strListaSectores, idAgrupacion))
                {
                    cMsg.alert(string.Format((string)GetGlobalResourceObject("Espaniol", "AvisoAgrupacionConMismosSectoresExiste"), strListaSectores));
                    bExiste = true;
                }
            }
        }
        catch (Exception objEx)
        {
            logDebugView.Error("Agrupacion (bExisteAgrupacionConSectores): error en la comprobación de la existencia de la agrupación de sectores.");
            logDebugView.Error("Error:", objEx);
        }

        return(bExiste);
    }
예제 #2
0
    private ServiciosCD40.Tablas[] DameDatos()
    {
        try
        {
            // ServiciosCD40.ServiciosCD40 g = new ServiciosCD40.ServiciosCD40();
            ServiciosCD40.Agrupaciones t   = new ServiciosCD40.Agrupaciones();
            Configuration config           = WebConfigurationManager.OpenWebConfiguration("~");
            KeyValueConfigurationElement s = config.AppSettings.Settings["Sistema"];
            t.IdSistema          = s.Value;
            Session["idsistema"] = s.Value;

            ServiciosCD40.Tablas[] d = servicioParaSectorizacion.ListSelectSQL(t);
            datos = d;
            return(d);
        }
        catch (Exception e)
        {
            logDebugView.Error("(Agrupacion-DameDatos):", e);
        }
        return(null);
    }
예제 #3
0
    private void EliminarElemento()
    {
        try
        {
            ServiciosCD40.Agrupaciones n = new ServiciosCD40.Agrupaciones();
            n.IdSistema    = (string)Session["idsistema"];
            n.IdAgrupacion = ListBox1.SelectedValue;
            //ServiciosCD40.ServiciosCD40 g = new ServiciosCD40.ServiciosCD40();

            if (servicioParaSectorizacion.DeleteSQL(n) < 0)
            {
                logDebugView.Warn("(Nucleos-EliminarElemento): No se ha borrado el elemento");
                cMsg.alert(String.Format((string)GetGlobalResourceObject("Espaniol", "ErrorEliminarAgrupacion"), n.IdAgrupacion));
            }
            else
            {
                Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
                KeyValueConfigurationElement sincronizar = config.AppSettings.Settings["SincronizaCD30"];
                if ((sincronizar != null) && (Int32.Parse(sincronizar.Value) == 1))
                {
                    SincronizaCD30.SincronizaCD30 sincro = new SincronizaCD30.SincronizaCD30();
                    switch (sincro.BajaAgrupacion(n.IdAgrupacion))
                    {
                    case 112:
                        string s = (string)GetGlobalResourceObject("Espaniol", "ElementoEliminado") + "\\n\\n"
                                   + String.Format((string)GetGlobalResourceObject("Espaniol", "Cod112"), n.IdAgrupacion);
                        cMsg.alert(s);
                        break;

                    case 113:
                        string s1 = (string)GetGlobalResourceObject("Espaniol", "ElementoEliminado") + "\\n\\n"
                                    + String.Format((string)GetGlobalResourceObject("Espaniol", "Cod113"), n.IdAgrupacion);
                        cMsg.alert(s1);
                        break;

                    default:
                        break;
                    }
                }

                cMsg.alert((string)GetGlobalResourceObject("Espaniol", "ElementoEliminado"));

                System.Text.StringBuilder strbListaSectores = new System.Text.StringBuilder();

                // Obtener los sectores que componen la agrupación para actualizar la lista
                if (ListSectores.Items.Count > 0)
                {
                    //Se compone la lista de sectores, con el nombre de cada sector entre comillas simples y la última coma
                    for (int i = 0; i < ListSectores.Items.Count; i++)
                    {
                        strbListaSectores.AppendFormat("'{0}',", ListSectores.Items[i].Text);
                    }
                    strbListaSectores = strbListaSectores.Remove(strbListaSectores.Length - 1, 1);

                    //La lista de sectores debe ir con cada item entre comillas simples para que la consulta no falle
                    ActualizaSectores(strbListaSectores);
                }

                if (ListaSectoresOriginal.Length > 0 && ListaOriginal.Length > 0)
                {
                    // Nombre de los sectores que componían la agrupación antes de ser modificada
                    string nomSectorOriginal = servicioParaSectorizacion.GeneraAlgoritmo((string)Session["idsistema"], IdNucleo, ListaSectoresOriginal.ToString());
                    // Generar el sector con el nombre de la agrupación
                    GeneraSector(nomSectorOriginal, ListaSectoresOriginal, IdNucleo, 0);
                    // Modificar las sectorizaciones que componían los sectores originales (agrupación) con el del algoritmo
                    ActualizaSectoresSectorizacion(nomSectorOriginal, TxtIdAgrupacion.Text, IdNucleo);
                    // Generar los SectoresSector que componen la agrupación...
                    GeneraSectoresSector(nomSectorOriginal, ListaOriginal.ToString(), IdNucleo);
                    // Actualiza los Parámetros y los números de abonado de los sectores que componen una agrupación
                    //servicioParaSectorizacion.RegeneraParametrosAgrupacion((string)Session["idsistema"], IdNucleo, nomSectorOriginal);
                }

                // Se elimina de la tabla Sectores el sector correspondiente a la agrupación.
                ServiciosCD40.Sectores sc = new ServiciosCD40.Sectores();
                sc.IdSistema = (string)Session["idsistema"];
                sc.IdNucleo  = IdNucleo;
                sc.IdSector  = ListBox1.SelectedValue;
                servicioParaSectorizacion.DeleteSQL(sc);

                MuestraDatos(DameDatos());

                servicioParaSectorizacion.BeginRegeneraSectorizaciones((string)Session["idsistema"], true /* completa */, false /* radio */, false /* tf */, CallbackCompletado, null);

                strbListaSectores.Clear();
            }
        }
        catch (Exception e)
        {
            logDebugView.Error("(Agrupacion-EliminarElemento):", e);
        }
    }
예제 #4
0
    private void GuardarCambios()
    {
        uint idSactaDominante = 0;

        try
        {
            ServiciosCD40.Sectores    s             = new ServiciosCD40.Sectores();
            System.Text.StringBuilder lista         = new System.Text.StringBuilder();              //Lista Sectores entre comillas simples y separados por comas
            System.Text.StringBuilder listaSectores = new System.Text.StringBuilder();              //Lista de Sectores separados por comas
            string strNucleo = "";

            //Se ordena la lista de sectores
            OrdenaLista();

            //Se componen la lista de sectores entre comillas simples
            for (int i = 0; i < ListSectores.Items.Count; i++)
            {
                listaSectores.AppendFormat("'{0}',", ListSectores.Items[i].Text);
                lista.AppendFormat("{0},", ListSectores.Items[i].Text);
            }

            //Se elimina la última coma de las listas
            if (lista.Length > 0)
            {
                lista = lista.Remove(lista.Length - 1, 1);
            }

            if (listaSectores.Length > 0)
            {
                listaSectores = listaSectores.Remove(listaSectores.Length - 1, 1);
            }

            //Se comprueba si en el sistema existe otra agrupación con el mismo nombre o con el mismo conjunto de sectores
            if (bExisteAgrupacionConSectores(TxtIdAgrupacion.Enabled, listaSectores.ToString()))
            {
                return;
            }
            else
            {
                ServiciosCD40.Agrupaciones n = new ServiciosCD40.Agrupaciones();

                n.IdSistema = (string)Session["idsistema"];

                n.IdAgrupacion = TxtIdAgrupacion.Text;

                if (TxtIdAgrupacion.Enabled) //Nueva Agrupacion
                {
                    if (servicioParaSectorizacion.InsertSQL(n) < 0)
                    {
                        logDebugView.Warn("(Agrupacion-GuardarCambios): No se han podido insertar los datos (InsertSQL).");
                        cMsg.alert(String.Format((string)GetGlobalResourceObject("Espaniol", "ErrorGuardarAgrupacion"), n.IdAgrupacion));
                        return;
                    }
                }
                else
                if (servicioParaSectorizacion.UpdateSQL(n) < 0)
                {
                    logDebugView.Warn("(Agrupacion-GuardarCambios): No se han podido actualizar los datos (UpdateSQL).");
                    cMsg.alert(String.Format((string)GetGlobalResourceObject("Espaniol", "ErrorGuardarAgrupacion"), n.IdAgrupacion));
                }

                ServiciosCD40.SectoresAgrupacion r = new ServiciosCD40.SectoresAgrupacion();
                r.IdSistema    = (string)Session["idsistema"];
                r.IdAgrupacion = TxtIdAgrupacion.Text;

                NewItem = r.IdAgrupacion;

                servicioParaSectorizacion.DeleteSQL(r);

                List <string> lossectores = new List <string>();

                for (int i = 0; i < ListSectores.Items.Count; i++)
                {
                    ServiciosCD40.SectoresAgrupacion r1 = new ServiciosCD40.SectoresAgrupacion();
                    r1.IdSistema    = (string)Session["idsistema"];
                    r1.IdAgrupacion = TxtIdAgrupacion.Text;
                    r1.IdSector     = ListSectores.Items[i].Text;
                    lossectores.Add(r1.IdSector);
                    ServiciosCD40.Sectores s1 = new ServiciosCD40.Sectores();
                    s1.IdSistema = (string)Session["idsistema"];
                    s1.IdSector  = ListSectores.Items[i].Text;
                    ServiciosCD40.Tablas[] tsector = servicioParaSectorizacion.ListSelectSQL(s1);
                    if (tsector != null)
                    {
                        for (int j = 0; j < tsector.Length; j++)
                        {
                            strNucleo = r1.IdNucleo = ((ServiciosCD40.Sectores)tsector[j]).IdNucleo;
                        }
                        servicioParaSectorizacion.InsertSQL(r1);
                    }

                    if (i == 0)
                    {
                        idSactaDominante = ((ServiciosCD40.Sectores)tsector[0]).NumSacta;
                    }
                }

                Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
                KeyValueConfigurationElement sincronizar = config.AppSettings.Settings["SincronizaCD30"];
                if ((sincronizar != null) && (Int32.Parse(sincronizar.Value) == 1))
                {
                    SincronizaCD30.SincronizaCD30 sincro = new SincronizaCD30.SincronizaCD30();
                    switch (sincro.AltaAgrupacion(TxtIdAgrupacion.Text, lossectores.ToArray()))
                    {
                    case 110:
                        cMsg.alert(String.Format((string)GetGlobalResourceObject("Espaniol", "Cod110"), TxtIdAgrupacion.Text));
                        break;

                    case 111:
                        cMsg.alert(String.Format((string)GetGlobalResourceObject("Espaniol", "Cod111"), TxtIdAgrupacion.Text));
                        break;

                    default:
                        break;
                    }
                }

                // Comprobar si la combinación de los sectores que componen la agrupación existe como sector
                ServiciosCD40.Sectores sct = new ServiciosCD40.Sectores();
                sct.IdSistema = (string)Session["idsistema"];
                sct.IdNucleo  = strNucleo;
                sct.IdSector  = servicioParaSectorizacion.GeneraAlgoritmo(sct.IdSistema, strNucleo, listaSectores.ToString());
                if (ListSectores.Items.Count > 0)
                {
                    //Si se está realizando una modificación, hay actualizar la anterior agrupación: SectoresOriginal y ListaOriginal contienen la lista de sectores antes de realizar
                    // alguna modificación. Si se está dando de alta una nueva agrupacion, la lista estará vacía.
                    if (ListaSectoresOriginal.Length > 0 && ListaOriginal.Length > 0)
                    {
                        // Nombre de los sectores que componían la agrupación antes de ser modificada
                        string nomSectorOriginal = servicioParaSectorizacion.GeneraAlgoritmo(sct.IdSistema, strNucleo, ListaSectoresOriginal.ToString());
                        // Generar el sector con el nombre de la agrupación
                        GeneraSector(nomSectorOriginal, ListaSectoresOriginal, strNucleo, idSactaDominante);
                        // Modificar las sectorizaciones que componían los sectores originales (agrupación) con el del algoritmo
                        ActualizaSectoresSectorizacion(nomSectorOriginal, TxtIdAgrupacion.Text, strNucleo);
                        // Generar los SectoresSector que componen la agrupación...
                        GeneraSectoresSector(nomSectorOriginal, ListaOriginal.ToString(), strNucleo);
                        // Actualiza los Parámetros y los números de abonado de los sectores que componen una agrupación
                        //servicioParaSectorizacion.RegeneraParametrosAgrupacion(r.IdSistema, strNucleo, nomSectorOriginal);
                    }

                    // Generar el sector con el nombre de la agrupación
                    GeneraSector(TxtIdAgrupacion.Text, listaSectores, strNucleo, idSactaDominante);
                    // Generar los SectoresSector que componen la agrupación...
                    GeneraSectoresSector(TxtIdAgrupacion.Text, lista.ToString(), strNucleo);
                    // Cambia los identificadores de los sectores asignado a tops por el de la agrupación recién creada
                    ActualizaSectoresSectorizacion(TxtIdAgrupacion.Text, sct.IdSector, strNucleo);
                    // Actualiza los Parámetros y los números de abonado de los sectores que componen una agrupación
                    servicioParaSectorizacion.RegeneraParametrosAgrupacion(r.IdSistema, strNucleo, r.IdAgrupacion);

                    servicioParaSectorizacion.BeginRegeneraSectorizaciones((string)Session["idsistema"], true /* completa */, false /* radio */, false /* tf */, CallbackCompletado, null);
                }
            }

            lista.Clear();
            listaSectores.Clear();

            IndexListBox1 = ListBox1.SelectedIndex;
        }
        catch (Exception e)
        {
            logDebugView.Error("(Agrupacion-GuardarCambios):", e);
        }


        /**
         * AGL ID.83/84.  Al aceptar en modo edición no se muestran bien los datos.
         * */
        /* Comentado en el cambio
         * ModoEdicion(false);*/
        MuestraDatos(DameDatos());

        /**
         * Fin de la Modificacion */
    }