diff --git a/Button/ButtonConfig.cs b/Button/ButtonConfig.cs index 5cf9a36..113febf 100644 --- a/Button/ButtonConfig.cs +++ b/Button/ButtonConfig.cs @@ -27,7 +27,7 @@ namespace OliviaAddInPro { if (OliviaGlob.TipoEjec == TiposEjecucion.Ninguno) { - OliviaGlob.TipoEjec = TiposEjecucion.Props; + OliviaGlob.SetFlagTipEjec(TiposEjecucion.Props); DockpaneConfigViewModel.Reset(); DockpaneConfigViewModel.Show(); } diff --git a/Button/ButtonLimp.cs b/Button/ButtonLimp.cs index 49258f1..51565d6 100644 --- a/Button/ButtonLimp.cs +++ b/Button/ButtonLimp.cs @@ -29,7 +29,7 @@ namespace OliviaAddInPro "Procesando", "Canceled", 100, false); if (OliviaGlob.TipoEjec == TiposEjecucion.Ninguno) { - OliviaGlob.TipoEjec = TiposEjecucion.Limp; + OliviaGlob.SetFlagTipEjec(TiposEjecucion.Limp); OliviaGlob.Limp = new Limpieza(); DockpaneLimpiezaViewModel.Reset(); DockpaneLimpiezaViewModel.Show(); diff --git a/Button/ButtonRec.cs b/Button/ButtonRec.cs index f6a51e6..5131d2a 100644 --- a/Button/ButtonRec.cs +++ b/Button/ButtonRec.cs @@ -25,10 +25,13 @@ namespace OliviaAddInPro { protected override void OnClick() { - if(OliviaGlob.TipoEjec==TiposEjecucion.Ninguno) + OliviaGlob.progrDialog = new ProgressDialog( + "Procesando", "Canceled", 100, false); + if (OliviaGlob.TipoEjec==TiposEjecucion.Ninguno) { - OliviaGlob.TipoEjec = TiposEjecucion.Reco; - //OliviaGlob.Reco=new + OliviaGlob.SetFlagTipEjec(TiposEjecucion.Reco); + OliviaGlob.Reco = new Recogida(); + DockpaneRecogidaViewModel.Reset(); DockpaneRecogidaViewModel.Show(); } else diff --git a/Config.daml b/Config.daml index e6f696b..1e55652 100644 --- a/Config.daml +++ b/Config.daml @@ -16,27 +16,29 @@ + - + - - diff --git a/Helper/HelperGdb.cs b/Helper/HelperGdb.cs index 6e673c0..f463fc6 100644 --- a/Helper/HelperGdb.cs +++ b/Helper/HelperGdb.cs @@ -791,5 +791,76 @@ namespace OliviaAddInPro.Helper return true; } + /** + * Recorre los ámbitos lineales del shp viendo qué longitud tienen dentro de la geometría, y si + * es menos de un porcentaje, lo quitan del shp + **/ + public static bool RemoveRowsGeom(string shp_path, ArcGIS.Core.Geometry.Geometry geom_zon, double porc) + { + + /*int[] ids = null; + IFeature f = null; + IFeatureClass fc = null; + IGeometry geom_aux = null; + ITopologicalOperator union = null; + IPolyline poli = null; + double longi_zon = 0, longi_tot = 0; + List quita = new List(); + int j; + + try + { + ids = FunGDB.dame_ids_consulta(shp_path, ""); //consulta todos + if (ids == null) + return false; + fc = FunGDB.abre_ftclass(shp_path); + if (fc == null) + return false; + for (j = 0; j < ids.Length; j++) + { + f = fc.GetFeature(ids[j]); + geom_aux = f.Shape; + poli = (IPolyline)geom_aux; + longi_tot = poli.Length; + union = (ITopologicalOperator)geom_zon; + if (geom_aux == null) + return false; + geom_aux = union.Intersect(geom_aux, esriGeometryDimension.esriGeometry1Dimension);//se realiza la interseccion entre ámbito (linea) y nivel (poligono) + poli = (IPolyline)geom_aux; + longi_zon = poli.Length;//se consigue la longitud de ámbito (linea) que interseca con el nivel) + + if ((longi_zon / longi_tot) < porc) + { + //quita esa línea + quita.Add(ids[j]); + } + FunGDB.libera(f); + } + + + FunGDB.libera(fc); + FunGDB.libera(f); + + if (quita.Count > 0) + { + //borra las líneas que se han indicado + if (!FunGDB.quita_filas(shp_path, quita)) + return false; + } + + return true; + } + catch (Exception) + { + return false; + } + finally + { + FunGDB.libera(fc); + FunGDB.libera(f); + }*/ + return true; + } + } } diff --git a/Images/Tiporeco.png b/Images/Tiporeco.png deleted file mode 100644 index fceb0ec..0000000 Binary files a/Images/Tiporeco.png and /dev/null differ diff --git a/Images/carrito.png b/Images/carrito.png deleted file mode 100644 index 73ac8da..0000000 Binary files a/Images/carrito.png and /dev/null differ diff --git a/Images/carrito2.png b/Images/carrito2.png new file mode 100644 index 0000000..603ea65 Binary files /dev/null and b/Images/carrito2.png differ diff --git a/Images/config2.png b/Images/config2.png index cec6441..de7e0b2 100644 Binary files a/Images/config2.png and b/Images/config2.png differ diff --git a/Images/config2_.png b/Images/config2_.png new file mode 100644 index 0000000..cec6441 Binary files /dev/null and b/Images/config2_.png differ diff --git a/Images/contenedor.png b/Images/contenedor.png deleted file mode 100644 index 765af6d..0000000 Binary files a/Images/contenedor.png and /dev/null differ diff --git a/Images/maqueta.png b/Images/maqueta.png deleted file mode 100644 index 8c699a3..0000000 Binary files a/Images/maqueta.png and /dev/null differ diff --git a/Images/reco2.png b/Images/reco2.png new file mode 100644 index 0000000..653b605 Binary files /dev/null and b/Images/reco2.png differ diff --git a/Images/resReco/Tiporeco.png b/Images/resReco/Tiporeco.png deleted file mode 100644 index 110d08b..0000000 Binary files a/Images/resReco/Tiporeco.png and /dev/null differ diff --git a/Images/resReco/control.png b/Images/resReco/control.png deleted file mode 100644 index 912f215..0000000 Binary files a/Images/resReco/control.png and /dev/null differ diff --git a/Images/resReco/tiempos.png b/Images/resReco/tiempos.png deleted file mode 100644 index f7157dc..0000000 Binary files a/Images/resReco/tiempos.png and /dev/null differ diff --git a/Images/resReco/zonificación.gif b/Images/resReco/zonificación.gif deleted file mode 100644 index d3f2037..0000000 Binary files a/Images/resReco/zonificación.gif and /dev/null differ diff --git a/Model/Limpieza.cs b/Model/Limpieza.cs index 23f8a81..9319d47 100644 --- a/Model/Limpieza.cs +++ b/Model/Limpieza.cs @@ -22,7 +22,7 @@ namespace OliviaAddInPro.Model /** * Tipo de tratamiento elegidos */ - public int TipoTto { get; set; } = -1; + //public int TipoTto { get; set; } = -1; //En la clase TratamientoComun /** * Ámbitos de trabajo elegidos */ diff --git a/Model/OliviaGlob.cs b/Model/OliviaGlob.cs index 68ddccb..150a423 100644 --- a/Model/OliviaGlob.cs +++ b/Model/OliviaGlob.cs @@ -13,21 +13,22 @@ namespace OliviaAddInPro.Model { [Flags] /** - * 2 primeros bit indican si es nada (0), limp (1), reco(2), u otros (3) - * 3er bit indica si es config - * 4º bit indica ejec + * */ public enum TiposEjecucion { Ninguno = 0, Limp=1, Reco=2, - Config = 4, //está configurando por primera vez - Ejec=8,//está ejecutando por primera vez - Config2=16,//está configurando después de haber planificado ya al menos una primera vez - Ejec2=32,//está ejecutando después de haber planificado ya al menos una primera vez - Props = 64,//está editando propiedades - Maqueta=128, + Props = 4,//está editando propiedades + Config = 8, //está configurando la ventana de limpieza o recogida por primera vez + EjecSecto=16,//está ejecutando por primera vez + EjecPlanif = 32,//está ejecutando después de haber planificado ya al menos una primera vez + FinEjecOk = 64, //ha terminado de ejecutar Bien + FinEjecNOk = 128,//ha terminado de ejecutar y ha habido errores + Config2 =256,//está configurando la ventana de limpieza o recogida después de haber sectorizado + //ya al menos una primera vez + //se pone este estado cuando ha terminado ya la primera vez } static class OliviaGlob { @@ -50,6 +51,14 @@ namespace OliviaAddInPro.Model public static string PathSimbVSM; // + @@ -292,11 +293,6 @@ Resource1.Designer.cs - - - - - @@ -306,9 +302,6 @@ - - - @@ -327,6 +320,13 @@ + + + + + + + - + diff --git a/View/Recogida/PaneRecogida.xaml b/View/Recogida/PaneRecogida.xaml index d315c4d..9d54189 100644 --- a/View/Recogida/PaneRecogida.xaml +++ b/View/Recogida/PaneRecogida.xaml @@ -20,7 +20,7 @@ - + diff --git a/View/Recogida/PaneRecogidaSub1.xaml b/View/Recogida/PaneRecogidaSub1.xaml index 4b4afd0..7dbcfa7 100644 --- a/View/Recogida/PaneRecogidaSub1.xaml +++ b/View/Recogida/PaneRecogidaSub1.xaml @@ -34,14 +34,19 @@ - - + + + + + @@ -53,12 +58,18 @@ - + SelectionChanged="comboBox_tipoCarg_SelectionChanged" SelectedIndex="{Binding Path=TipoCarg, Mode = TwoWay}" + DisplayMemberPath="Item"> + + + + = 0 && DataContext is PaneRecogidaSub1ViewModel mod) { - if (!mod.ComboFracSel(i)) - combo.SelectedIndex = -1; + mod.ComboFracSel(i); + /*if (!mod.ComboFracSel(i)) + combo.SelectedIndex = -1;*/ } } @@ -86,11 +87,12 @@ namespace OliviaAddInPro if (sender is System.Windows.Controls.ComboBox combo) { i = combo.SelectedIndex; - - if (DataContext is PaneRecogidaSub1ViewModel mod) + + if (i>=0 && DataContext is PaneRecogidaSub1ViewModel mod) { - if(!mod.ComboCargSel(i)) - combo.SelectedIndex = -1; + mod.ComboCargSel(i); + /*if (!mod.ComboCargSel(i)) + combo.SelectedIndex = -1;*/ } } } @@ -102,7 +104,7 @@ namespace OliviaAddInPro { i = combo.SelectedIndex; - if (DataContext is PaneRecogidaSub1ViewModel mod) + if (i >= 0 && DataContext is PaneRecogidaSub1ViewModel mod) { mod.ComboVehicSel(i); } @@ -116,7 +118,7 @@ namespace OliviaAddInPro { i = combo.SelectedIndex; - if (DataContext is PaneRecogidaSub1ViewModel mod) + if (i >= 0 && DataContext is PaneRecogidaSub1ViewModel mod) { mod.ComboCapacSel(i); } @@ -135,7 +137,7 @@ namespace OliviaAddInPro { i = combo.SelectedIndex; - if (DataContext is PaneRecogidaSub1ViewModel mod) + if (i >= 0 && DataContext is PaneRecogidaSub1ViewModel mod) { mod.ComboLatSel(i); } diff --git a/ViewModel/Configuracion/DockpaneConfigViewModel.cs b/ViewModel/Configuracion/DockpaneConfigViewModel.cs index 71051f0..ebf32d7 100644 --- a/ViewModel/Configuracion/DockpaneConfigViewModel.cs +++ b/ViewModel/Configuracion/DockpaneConfigViewModel.cs @@ -64,7 +64,7 @@ namespace OliviaAddInPro if (isVisible == false && !firstTimeShow) { //avisa de cerrar la ventana - OliviaGlob.TipoEjec = TiposEjecucion.Ninguno; + OliviaGlob.SetFlagTipEjec(TiposEjecucion.Ninguno); } if (firstTimeShow) firstTimeShow = false; diff --git a/ViewModel/Limpieza/DockpaneLimpiezaViewModel.cs b/ViewModel/Limpieza/DockpaneLimpiezaViewModel.cs index cea3a9b..a95768a 100644 --- a/ViewModel/Limpieza/DockpaneLimpiezaViewModel.cs +++ b/ViewModel/Limpieza/DockpaneLimpiezaViewModel.cs @@ -65,7 +65,7 @@ namespace OliviaAddInPro if (isVisible == false && !firstTimeShow && !hideTemp) { //avisa de cerrar la ventana - OliviaGlob.TipoEjec = TiposEjecucion.Ninguno; + OliviaGlob.SetFlagTipEjec(TiposEjecucion.Ninguno); } if (firstTimeShow) firstTimeShow = false; diff --git a/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs b/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs index 2c274b5..38a1d09 100644 --- a/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs +++ b/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs @@ -181,7 +181,7 @@ namespace OliviaAddInPro CapaElems = string.Empty; OpsAmbs.Clear(); Ambitos.Clear(); - OliviaGlob.TipoEjec = OliviaGlob.TipoEjec | TiposEjecucion.Config; //lo reinicia, por si estaba después de planificar + OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config); //lo reinicia, por si estaba después de planificar if (string.IsNullOrEmpty(capa)) return false; //comprueba los campos de limpieza diff --git a/ViewModel/Limpieza/PaneLimpiezaViewModel.cs b/ViewModel/Limpieza/PaneLimpiezaViewModel.cs index 769d266..29d4a74 100644 --- a/ViewModel/Limpieza/PaneLimpiezaViewModel.cs +++ b/ViewModel/Limpieza/PaneLimpiezaViewModel.cs @@ -87,7 +87,7 @@ namespace OliviaAddInPro return false; } limp.TipoTto = _subPanel1ViewModel.TipoTto; - + limp.TipoTtoStr = LimpiezaDef.tto_gdb[_subPanel1ViewModel.TipoTto]; //lee el/los mbito seleccionado if (!_subPanel1ViewModel.lee_ambitos()) { diff --git a/ViewModel/Recogida/DockpaneRecogidaViewModel.cs b/ViewModel/Recogida/DockpaneRecogidaViewModel.cs index 1d45c1d..442a550 100644 --- a/ViewModel/Recogida/DockpaneRecogidaViewModel.cs +++ b/ViewModel/Recogida/DockpaneRecogidaViewModel.cs @@ -64,7 +64,7 @@ namespace OliviaAddInPro if (isVisible == false && !firstTimeShow && !hideTemp) { //avisa de cerrar la ventana - OliviaGlob.TipoEjec = TiposEjecucion.Ninguno; + OliviaGlob.SetFlagTipEjec(TiposEjecucion.Ninguno); } if (firstTimeShow) firstTimeShow = false; diff --git a/ViewModel/Recogida/PaneRecogidaSub1ViewModel.cs b/ViewModel/Recogida/PaneRecogidaSub1ViewModel.cs index 94872dd..25e0ef4 100644 --- a/ViewModel/Recogida/PaneRecogidaSub1ViewModel.cs +++ b/ViewModel/Recogida/PaneRecogidaSub1ViewModel.cs @@ -143,7 +143,7 @@ namespace OliviaAddInPro get { return tipoLate; } set { - tipoCapac = value; + tipoLate = value; base.NotifyPropertyChanged("TipoLate"); } } @@ -273,7 +273,7 @@ namespace OliviaAddInPro TiposCarg.Clear(); TiposVehic.Clear(); TiposCapac.Clear(); - OliviaGlob.TipoEjec = OliviaGlob.TipoEjec | TiposEjecucion.Config; //lo reinicia, por si estaba después de planificar + OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config); //lo reinicia, por si estaba después de planificar if (string.IsNullOrEmpty(capa)) return false; diff --git a/ViewModel/Recogida/PaneRecogidaViewModel.cs b/ViewModel/Recogida/PaneRecogidaViewModel.cs index d06d521..ccfad63 100644 --- a/ViewModel/Recogida/PaneRecogidaViewModel.cs +++ b/ViewModel/Recogida/PaneRecogidaViewModel.cs @@ -102,7 +102,8 @@ namespace OliviaAddInPro return false; } reco.CapaElems = _subPanel1ViewModel.CapaElems; - + reco.TipoTto = reco.TipoFrac; + reco.TipoTtoStr= RecogidaDef.tipos_fracc_str[reco.TipoFrac]; //lee la fracción reco.TipoFrac = _subPanel1ViewModel.TipoFrac; if (reco.TipoFrac == -1)