From bf4fffcaffde0f84d2e9b56e0f4bd207547474cb Mon Sep 17 00:00:00 2001 From: Gerardo Date: Fri, 12 Apr 2024 22:35:29 +0200 Subject: [PATCH] Remates version 4.0.0.0 --- Config.daml | 2 +- Helper/HelperGdb.cs | 5 +- Model/RecogidaDef.cs | 121 ++++++++++-------- Services/ConfigServ.cs | 20 +-- Services/EjecServ.cs | 6 +- .../Limpieza/PaneLimpiezaSub1ViewModel.cs | 6 +- .../Recogida/PaneRecogidaSub1ViewModel.cs | 32 +++-- 7 files changed, 112 insertions(+), 80 deletions(-) diff --git a/Config.daml b/Config.daml index b506adc..eedcc0f 100644 --- a/Config.daml +++ b/Config.daml @@ -6,7 +6,7 @@ Images\AddinDesktop32.png VSM VSM - Narvaling - 10/04/2024 12:00:00, 2024 + 12/04/2024 12:00:00, 2024 Framework diff --git a/Helper/HelperGdb.cs b/Helper/HelperGdb.cs index 243422f..565fa90 100644 --- a/Helper/HelperGdb.cs +++ b/Helper/HelperGdb.cs @@ -2412,7 +2412,7 @@ namespace OliviaAddInPro.Helper /** * Importa el shp en la gdb y el dataset, como una featureclass */ - public static Respuesta ImportShp(string nom_shp, string Gdb_dataset, string namefc) + public static Respuesta ImportShp(string nom_shp, string Gdb_dataset, string namefc, ArcGIS.Core.Geometry.SpatialReference spatref=null) { var res = new Respuesta { Value = false }; string[] args = { nom_shp, Gdb_dataset, namefc }; @@ -2420,7 +2420,8 @@ namespace OliviaAddInPro.Helper try { - ArcGIS.Core.Geometry.SpatialReference spatref = GetSpatRef(nom_shp); + if(spatref==null) + spatref = GetSpatRef(nom_shp); var environments = Geoprocessing.MakeEnvironmentArray(outputCoordinateSystem: spatref); //CancelableProgressorSource cps = new CancelableProgressorSource(); var _cts = new System.Threading.CancellationTokenSource(); diff --git a/Model/RecogidaDef.cs b/Model/RecogidaDef.cs index fac37a8..8146505 100644 --- a/Model/RecogidaDef.cs +++ b/Model/RecogidaDef.cs @@ -405,9 +405,13 @@ namespace OliviaAddInPro.Model int n, i_def, icar, iveh; //Rellena las opciones de carga máxima por vehículo + ////////////////////////////////////////////////// + //Carga Trasera + //////////////////////////////////////////////// //Trasera-satelite n = 4; i_def = 2; + //Rellena volumenes info[0] = 2; info[1] = 3; info[2] = 5; @@ -425,6 +429,7 @@ namespace OliviaAddInPro.Model //Trasera-2 ejes n = 6; i_def = 2; + //Rellena volumenes info[0] = 8; info[1] = 10; info[2] = 12; @@ -447,6 +452,7 @@ namespace OliviaAddInPro.Model //Trasera-3ejes n = 4; i_def = 3; + //Rellena volumenes info[0] = 18; info[1] = 20; info[2] = 22; @@ -454,6 +460,9 @@ namespace OliviaAddInPro.Model rellena_carg((int)RecogidaDef.TiposCarga.Trasera, (int)RecogidaDef.TiposVehic.Ejes3, n, i_def, info); + ////////////////////////////////////////////////// + //Carga Lateral + //////////////////////////////////////////////// //Lateral-satelite, no hay rellena_carg((int)RecogidaDef.TiposCarga.Lateral, (int)RecogidaDef.TiposVehic.Satelite, 0, 0, null); @@ -461,6 +470,7 @@ namespace OliviaAddInPro.Model //Lateral - 2 ejes n = 2; i_def = 1; + //Rellena volumenes info[0] = 15; info[1] = 17; rellena_carg((int)RecogidaDef.TiposCarga.Lateral, @@ -476,6 +486,7 @@ namespace OliviaAddInPro.Model //Lateral - 3 ejes n = 3; i_def = 2; + //Rellena volumenes info[0] = 21; info[1] = 23; info[2] = 26; @@ -486,9 +497,13 @@ namespace OliviaAddInPro.Model rellena_carg((int)RecogidaDef.TiposCarga.Superior, (int)RecogidaDef.TiposVehic.Satelite, 0, 0, null); + ////////////////////////////////////////////////// + //Carga Superior + //////////////////////////////////////////////// //Superior - 2 ejes n = 2; i_def = 0; + //Rellena volumenes info[0] = 16; info[1] = 17; rellena_carg((int)RecogidaDef.TiposCarga.Superior, @@ -497,6 +512,7 @@ namespace OliviaAddInPro.Model //Superior - 3 ejes n = 3; i_def = 2; + //Rellena volumenes info[0] = 20; info[1] = 23; info[2] = 25; @@ -507,47 +523,9 @@ namespace OliviaAddInPro.Model rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Satelite, 0, 0, null); - //Bilateral - 2 ejes - n = 3; - i_def = 1; - info[0] = 14; - info[1] = 16; - info[2] = 18; - rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, - (int)RecogidaDef.TiposVehic.Ejes2, n, i_def, info); - - //Bilateral - 3 ejes - n = 3; - i_def = 1; - info[0] = 20; - info[1] = 23; - info[2] = 26; - rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, - (int)RecogidaDef.TiposVehic.Ejes3, n, i_def, info); - - //Bolseo - todas, no hay - //Lavado - todas, no hay - //Otra - todas, no hay - for (icar = (int)RecogidaDef.TiposCarga.BolseoPtaPta; icar < (int)RecogidaDef.TiposCarga.N; icar++) - { - for (iveh = (int)RecogidaDef.TiposVehic.Ejes3; iveh < (int)RecogidaDef.TiposVehic.N; iveh++) - { - rellena_carg(icar, iveh, 0, 0, null); - } - } - - //////////////////////////////////////////////////////// - //Barcelona new - rellena_offsets_bcn(); - } - - private static void rellena_offsets_bcn() - { - int[] info = new int[10]; - int n, i_def; - //////////////////////////////////////////////////////// - //Barcelona new - + ////////////////////////////////////////////////// + //Carga Bilateral + //////////////////////////////////////////////// //Bilateral - satelite n = 1; i_def = 0; @@ -577,6 +555,50 @@ namespace OliviaAddInPro.Model info[0] = -2050; rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Vidrio, n, info); + //Bilateral - 2 ejes + n = 3; + i_def = 1; + //Rellena volumenes + info[0] = 14; + info[1] = 16; + info[2] = 18; + rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, + (int)RecogidaDef.TiposVehic.Ejes2, n, i_def, info); + + //Bilateral - 3 ejes + n = 3; + i_def = 1; + //Rellena volumenes + info[0] = 20; + info[1] = 23; + info[2] = 26; + rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, + (int)RecogidaDef.TiposVehic.Ejes3, n, i_def, info); + + //Bolseo - todas, no hay + //Lavado - todas, no hay + //Otra - todas, no hay + for (icar = (int)RecogidaDef.TiposCarga.BolseoPtaPta; icar < (int)RecogidaDef.TiposCarga.N; icar++) + { + for (iveh = (int)RecogidaDef.TiposVehic.Ejes3; iveh < (int)RecogidaDef.TiposVehic.N; iveh++) + { + rellena_carg(icar, iveh, 0, 0, null); + } + } + + //////////////////////////////////////////////////////// + //Rellena offsets + rellena_offsets_bcn(); + } + + private static void rellena_offsets_bcn() + { + int[] info = new int[10]; + int n, i_def; + //////////////////////////////////////////////////////// + //Barcelona revisado abril 24 + + //////////////////////////////////////////////////////////////////////////////////////////////// //Trasera - satélite - organico, resto @@ -814,22 +836,15 @@ namespace OliviaAddInPro.Model //Bilateral - 2 ejes - vidrio rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, - (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Vidrio, n, info); + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Vidrio, n, info); //Bilateral - 2 ejes - papel - info[0] = 1820; - info[1] = 2080; - info[2] = 2340; + info[0] = 1540; + info[1] = 1760; + info[2] = 1980; rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Papel, n, info); - - //Bilateral - 2 ejes - vidrio - info[0] = -140; - info[1] = -160; - info[2] = -180; - rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, - (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Vidrio, n, info); - + //////////////////////////////////////////////////////////////////////////////////////////////// //Bilateral - 3 ejes - resto, org n = 3; diff --git a/Services/ConfigServ.cs b/Services/ConfigServ.cs index 193f5ee..21657fd 100644 --- a/Services/ConfigServ.cs +++ b/Services/ConfigServ.cs @@ -16,10 +16,10 @@ namespace OliviaAddInPro.Services private static string pathConfigDef = "C:\\Olivia"; private static ConfigServ configServ=null; private static string nameDirWork = "%dir_work%"; - public const string OlvRegKey = "SOFTWARE\\Narvaling\\Olivia_3_1"; + public const string OlvRegKey = "SOFTWARE\\Narvaling\\Olivia_4_0"; public const string OlvRegName = "workdir"; public const string OlvConfigName = "olv.conf"; - public const string VersionConfiguracion = "1.1.0.2"; + public const string VersionConfiguracion = "1.2.0.0"; public static ConfigServ Serv { get { @@ -354,13 +354,13 @@ namespace OliviaAddInPro.Services c.dens_vehi_org=500; c.dens_vehi_res=500; c.dens_vehi_env=120; - c.dens_vehi_pap=250; + c.dens_vehi_pap=360; c.dens_vehi_vid=350; c.dens_vehi_otr=100; - c.dens_cont_org=150; + c.dens_cont_org=200; c.dens_cont_res=100; c.dens_cont_env=28; - c.dens_cont_pap=90; + c.dens_cont_pap=75; c.dens_cont_vid=250; c.dens_cont_otr=100; c.anch_vehi_3=2.4000000; @@ -456,7 +456,7 @@ namespace OliviaAddInPro.Services { nombre = "Vehiculo pequeño", filtro_omitir = "(FREEWAY <> 1 AND SLIPRD = 0)", - campo_prioridad = "IIF($feature.PRIVATERD==2 || $feature.RDCOND==2 || ($feature.FOW>13 && $feature.FOW<16) , -2 , 0)", + campo_prioridad = "IIF($feature.PRIVATERD>1 || ($feature.FOW>13 && $feature.FOW<16) , -2 , 0)", vehiculo_def_reco = 2, vehiculo_def_lim = 1 @@ -464,8 +464,8 @@ namespace OliviaAddInPro.Services c.ListaMV.Add(new OliviaConfMV() { nombre = "Vehiculo mediano", - filtro_omitir = "(RDCOND <> 2 AND ONEWAY = 'N' AND FOW NOT IN (14, 15, 19))", - campo_prioridad = "IIF($feature.PRIVATERD==2 || $feature.RDCOND==3 , -2 , 0)", + filtro_omitir = "(ONEWAY <> 'N' AND FOW NOT IN (14, 15, 19))", + campo_prioridad = "IIF($feature.PRIVATERD>1 || $feature.RDCOND>1 , -2 , 0)", vehiculo_def_reco = 1, vehiculo_def_lim = -1 @@ -473,8 +473,8 @@ namespace OliviaAddInPro.Services c.ListaMV.Add(new OliviaConfMV() { nombre = "Vehiculo grande", - filtro_omitir = "(RDCOND NOT IN (2, 3) AND ONEWAY = 'N' AND FOW NOT IN (14, 15, 19))", - campo_prioridad = "IIF($feature.PRIVATERD==2 , -2 , 0)", + filtro_omitir = "(ONEWAY <> 'N' AND FOW NOT IN (14, 15, 19))", + campo_prioridad = "IIF($feature.RDCOND>1,-3, (IIF($feature.PRIVATERD>1 , -2 , 0)))", vehiculo_def_reco =0, vehiculo_def_lim = -1 diff --git a/Services/EjecServ.cs b/Services/EjecServ.cs index e19fbed..fe482ad 100644 --- a/Services/EjecServ.cs +++ b/Services/EjecServ.cs @@ -145,9 +145,9 @@ namespace OliviaAddInPro.Services ErrStr = Resource1.String_cancel_progreso; return false; } - //mira spatialreference de los datos de entrada - spatRefData = geom_export.SpatialReference; + //mira spatialreference de los datos de entrada spatref = HelperGdb.GetSpatRefSync(com.CapaElemsRef); + spatRefData = spatref; if (spatref != null) { geom_export = HelperGdb.ReproyectaGeom(geom_export, spatref); @@ -1205,7 +1205,7 @@ namespace OliviaAddInPro.Services } } - resp2 = HelperGdb.ImportShp(dir_shp + "\\" + noms_shp[i] + HelperGdb.SHP_EXT, GdbFileName + "\\" + dataset, noms_gdb[i]); + resp2 = HelperGdb.ImportShp(dir_shp + "\\" + noms_shp[i] + HelperGdb.SHP_EXT, GdbFileName + "\\" + dataset, noms_gdb[i], spatRefData); if (!resp2.Value) { err_st = "Error al importar la capa " + noms_gdb[i]; diff --git a/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs b/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs index 976d380..a9b4e85 100644 --- a/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs +++ b/ViewModel/Limpieza/PaneLimpiezaSub1ViewModel.cs @@ -135,6 +135,7 @@ namespace OliviaAddInPro } } private int tipoTto = -1; + private int tipoTto_old = -2; public int TipoTto { get { return tipoTto; } @@ -278,12 +279,13 @@ namespace OliviaAddInPro */ public void ComboTtoSel(int tto) { - if (tto < 0) + if (tto < 0 || tto== tipoTto_old) return; - TipoTto = tto; + TipoTto = tto; cambia_tiempo_tto(); ambitosSel = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //reinicia los ambitos seleccionados + tipoTto_old = tto; //////////////////////////////////////// //Otros cambios que dependen del tratamiento if (TipoTto != (int)LimpiezaDef.TiposTto.TtoNoDef) diff --git a/ViewModel/Recogida/PaneRecogidaSub1ViewModel.cs b/ViewModel/Recogida/PaneRecogidaSub1ViewModel.cs index a9881ff..bb4f082 100644 --- a/ViewModel/Recogida/PaneRecogidaSub1ViewModel.cs +++ b/ViewModel/Recogida/PaneRecogidaSub1ViewModel.cs @@ -123,6 +123,7 @@ namespace OliviaAddInPro } } private int tipoFrac = -1; + private int tipoFrac_old = -2; public int TipoFrac { get { return tipoFrac; } @@ -133,6 +134,7 @@ namespace OliviaAddInPro } } private int tipoCarg = -1; + private int tipoCarg_old = -2; public int TipoCarg { get { return tipoCarg; } @@ -143,6 +145,7 @@ namespace OliviaAddInPro } } private int tipoVehic = -1; + private int tipoVehic_old = -2; public int TipoVehic { get { return tipoVehic; } @@ -153,6 +156,7 @@ namespace OliviaAddInPro } } private int tipoCapac = -1; + private int tipoCapac_old = -2; public int TipoCapac { get { return tipoCapac; } @@ -163,6 +167,7 @@ namespace OliviaAddInPro } } private int tipoLate = -1; + private int tipoLate_old = -2; public int TipoLate { get { return tipoLate; } @@ -435,7 +440,7 @@ namespace OliviaAddInPro */ public bool ComboFracSel(int tto) { - if (tto < 0) + if (tto < 0 || tto== tipoFrac_old) return false; if (!tipos_fracc_bool[tto]) { @@ -445,7 +450,8 @@ namespace OliviaAddInPro try { //cuando se selecciona un item pintado en gris (que no existe en la GDB) se actúa como si no se hubiera seleccionado item - TipoFrac = tto; + TipoFrac = tto; + tipoFrac_old = tto; if ((TipoVehic >= 0) && (TipoCarg >= 0)) { //si también se ha seleccionado tipo de carga y de vehículo, se rellena la lista de capacidades @@ -548,7 +554,7 @@ namespace OliviaAddInPro public bool ComboCargSel(int tto) { VisCombLate = Visibility.Hidden; - if (tto < 0) + if (tto < 0 || tto== tipoCarg_old) return false; if (!tipos_carg_bool[tto]) { @@ -557,7 +563,9 @@ namespace OliviaAddInPro try { TipoCarg=tto; - + tipoCarg_old = tto; + + if (TipoCarg == (int)RecogidaDef.TiposCarga.Lateral) VisCombLate = Visibility.Visible; else @@ -597,21 +605,25 @@ namespace OliviaAddInPro */ public void ComboVehicSel(int tto) { - if (tto < 0) + if (tto < 0 ) return; try { TipoVehic = tto; if (TipoVehic >= 0) { - int tmv =new LimpiezaServ(null).GetModosViajesDefecto(TipoVehic); - if(tmv>=0) + if (tipoVehic_old != tto) { - TipoMv = tmv; + int tmv = new LimpiezaServ(null).GetModosViajesDefecto(TipoVehic); + if (tmv >= 0) + { + TipoMv = tmv; + } } //si también se ha seleccionado tipo de carga, se rellena la lista de capacidades rellena_capac(); } + tipoVehic_old = tto; } catch (Exception) { @@ -630,6 +642,7 @@ namespace OliviaAddInPro try { TipoCapac = tto; + tipoCapac_old = tto; rellena_kgmax(); } catch (Exception) @@ -643,11 +656,12 @@ namespace OliviaAddInPro */ public void ComboLatSel(int tto) { - if (tto < 0) + if (tto < 0 || tto== tipoLate_old) return; try { TipoLate = tto; + tipoLate_old = tto; } catch (Exception) {