From 9273611e3f3a5fb22db06be54f8bf252a2344a44 Mon Sep 17 00:00:00 2001 From: Gerardo Date: Wed, 24 Jan 2024 13:22:01 +0100 Subject: [PATCH] modos de viaje --- Model/ComunDef.cs | 3 ++- Model/Limpieza.cs | 2 ++ Model/OliviaConfMV.cs | 4 ++++ Services/EjecServ.cs | 10 ++++++++-- Services/LimpiezaServ.cs | 18 +++++++++++++++--- .../Limpieza/PaneLimpiezaSub1ViewModel.cs | 1 + ViewModel/Limpieza/PaneLimpiezaViewModel.cs | 2 ++ ViewModel/Recogida/PaneRecogidaViewModel.cs | 1 + 8 files changed, 35 insertions(+), 6 deletions(-) diff --git a/Model/ComunDef.cs b/Model/ComunDef.cs index b13c4c0..d8cc04e 100644 --- a/Model/ComunDef.cs +++ b/Model/ComunDef.cs @@ -10,8 +10,9 @@ namespace OliviaAddInPro.Model //************************************************************************************* //Enums y structs generales public static int BuffExport = 1000; - //public static int MaxCaracteresBBDD = 10; + //public static int MaxCaracteresBBDD = 10; + public static OliviaConfMV configMV; //configuracion para modos de viaje /** * Nombre de los campos de la cartografía de la red navegable que se consultan para la exportación */ diff --git a/Model/Limpieza.cs b/Model/Limpieza.cs index 8d56763..9f95a80 100644 --- a/Model/Limpieza.cs +++ b/Model/Limpieza.cs @@ -66,6 +66,8 @@ namespace OliviaAddInPro.Model Respuesta res = new Respuesta { Value=false}; Respuesta res2 = new Respuesta (){ Value = TiposEjecucion.FinEjecNOk }; Serv.TipoMv = TipoMV; + + res = Serv.Ejecuta(modo); if (res.Value) { diff --git a/Model/OliviaConfMV.cs b/Model/OliviaConfMV.cs index c059889..b2ed2be 100644 --- a/Model/OliviaConfMV.cs +++ b/Model/OliviaConfMV.cs @@ -12,6 +12,10 @@ namespace OliviaAddInPro.Model { public OliviaConfMV() { + nombre = "default"; + filtro_omitir = ""; + campo_prioridad = "0"; + } public string nombre { get; set; } diff --git a/Services/EjecServ.cs b/Services/EjecServ.cs index ebe4633..0f712e5 100644 --- a/Services/EjecServ.cs +++ b/Services/EjecServ.cs @@ -340,7 +340,13 @@ namespace OliviaAddInPro.Services ////////////////////////////////////// /// //Hace el filtro con la geometría final - filtroEspacial = HelperGdb.CreateFiler(String.Empty, geom_export); + //ComunDef.configMV + var where = String.Empty; + if (!String.IsNullOrEmpty(ComunDef.configMV.filtro_omitir)) + { + where = "not(" + ComunDef.configMV.filtro_omitir + ")"; + } + filtroEspacial = HelperGdb.CreateFiler(where, geom_export); if (filtroEspacial == null) { ErrStr = "Error al crear el filtro de exportacion de la red navegable"; @@ -477,7 +483,7 @@ namespace OliviaAddInPro.Services if (!HelperGdb.CalculateFieldsSync(pathNW, ComunDef.CamposNW.cons_ele_f, ComunDef.CamposNW.config.campo_elevacion_from)) return false; - if (!HelperGdb.CalculateFieldsSync(pathNW, ComunDef.CamposNW.cons_evit, "0")) + if (!HelperGdb.CalculateFieldsSync(pathNW, ComunDef.CamposNW.cons_evit, ComunDef.configMV.campo_prioridad)) return false; return true; } diff --git a/Services/LimpiezaServ.cs b/Services/LimpiezaServ.cs index 0395e73..0959bbe 100644 --- a/Services/LimpiezaServ.cs +++ b/Services/LimpiezaServ.cs @@ -2,6 +2,7 @@ using ArcGIS.Core.Geometry; using ArcGIS.Core.Internal.CIM; using ArcGIS.Desktop.Framework.Threading.Tasks;*/ +using ActiproSoftware.Windows.Extensions; using OliviaAddInPro.Helper; using OliviaAddInPro.Model; using System; @@ -32,6 +33,15 @@ namespace OliviaAddInPro.Services */ public Respuesta Ejecuta(ModosEjec modo) { + var modos_viaje = ConfigServ.Serv.Leer().ListaMV; + if (modos_viaje != null && modos_viaje.Count > TipoMv) + { + ComunDef.configMV = modos_viaje[TipoMv]; + } + else + { + ComunDef.configMV = new OliviaConfMV(); + } var res = new Respuesta() { Value = false @@ -110,9 +120,11 @@ namespace OliviaAddInPro.Services { var conf=ConfigServ.Serv.Leer(); - if(conf.ListaMV==null || conf.ListaMV.Count<=0 ) - return new ObservableCollection(); - return (ObservableCollection)conf.ListaMV.Select(c => c.nombre); + var res = new ObservableCollection(); + if (conf.ListaMV==null || conf.ListaMV.Count<=0 ) + return res; + res.AddRange(conf.ListaMV.Select(c => c.nombre)); + return res; } /** * Comprueba lo necesario para ver si hay campos para la planificación diff --git a/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs b/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs index 8a7e3f6..c96fbcc 100644 --- a/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs +++ b/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs @@ -220,6 +220,7 @@ namespace OliviaAddInPro limpServ = new LimpiezaServ(null); //no hace falta instancia limp textAnchoVia = LimpiezaDef.Parametros.ancho_via.ToString(); tiposMv = limpServ.GetNombreModosViajes(); + tipoMv = -1; } /** * Realiza las comprobaciones para cuando se ha abierto una capa diff --git a/ViewModel/Limpieza/PaneLimpiezaViewModel.cs b/ViewModel/Limpieza/PaneLimpiezaViewModel.cs index b5ba21e..788ac7e 100644 --- a/ViewModel/Limpieza/PaneLimpiezaViewModel.cs +++ b/ViewModel/Limpieza/PaneLimpiezaViewModel.cs @@ -92,6 +92,8 @@ namespace OliviaAddInPro err_str = "No se ha seleccionado ningún Tipo de Tratamiento"; return false; } + limp.TipoMV = _subPanel1ViewModel.TipoMv; + limp.TipoTto = _subPanel1ViewModel.TipoTto; limp.TipoTtoStr = LimpiezaDef.tto_gdb[_subPanel1ViewModel.TipoTto]; //lee el/los ámbito seleccionado diff --git a/ViewModel/Recogida/PaneRecogidaViewModel.cs b/ViewModel/Recogida/PaneRecogidaViewModel.cs index 1cd5f03..9eaacde 100644 --- a/ViewModel/Recogida/PaneRecogidaViewModel.cs +++ b/ViewModel/Recogida/PaneRecogidaViewModel.cs @@ -112,6 +112,7 @@ namespace OliviaAddInPro err_str = "No se ha seleccionado ningún Tipo de Fracción"; return false; } + reco.TipoMV = _subPanel1ViewModel.TipoMv; reco.TipoFracStr = RecogidaDef.tipos_fracc_str[reco.TipoFrac]; reco.TipoTto = reco.TipoFrac; reco.TipoTtoStr = RecogidaDef.tipos_fracc_str[reco.TipoFrac];