private void CargarSectores() { try { ServiciosCD40.ServiciosCD40 g = new ServiciosCD40.ServiciosCD40(); ServiciosCD40.SectoresAgrupacion t = new ServiciosCD40.SectoresAgrupacion(); t.IdSistema = (string)Session["idsistema"]; t.IdAgrupacion = TxtIdAgrupacion.Text; ServiciosCD40.Tablas[] d = g.ListSelectSQL(t); if (d != null && d.Length > 0) { if (ListaSectoresOriginal.Length > 0) { ListaSectoresOriginal.Remove(0, ListaSectoresOriginal.Length); } if (ListaOriginal.Length > 0) { ListaOriginal.Remove(0, ListaOriginal.Length); } for (int i = 0; i < d.Length; i++) { ListaSectoresOriginal.AppendFormat("'{0}',", ((ServiciosCD40.SectoresAgrupacion)d[i]).IdSector); ListaOriginal.AppendFormat("{0},", ((ServiciosCD40.SectoresAgrupacion)d[i]).IdSector); ListSectores.Items.Add(((ServiciosCD40.SectoresAgrupacion)d[i]).IdSector); } if (ListaSectoresOriginal.Length > 0) { ListaSectoresOriginal.Remove(ListaSectoresOriginal.Length - 1, 1); } if (ListaOriginal.Length > 0) { ListaOriginal.Remove(ListaOriginal.Length - 1, 1); } IdNucleo = ((ServiciosCD40.SectoresAgrupacion)d[0]).IdNucleo; } } catch (Exception e) { logDebugView.Error("(Agrupacion-CargarSectores):", e); } }
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 */ }