From 07261ebb14be1eeb966eaed07ca9036addcb8099 Mon Sep 17 00:00:00 2001 From: Gerardo Date: Wed, 17 Apr 2024 22:55:01 +0200 Subject: [PATCH] Revision de pesos vehiculo y modo de kilos por contenedor --- Config.daml | 4 +- Model/OliviaConf.cs | 26 ++- Model/RecogidaDef.cs | 246 ++++++++++++++++++++----- Services/EjecServ.cs | 2 + Services/LanzaSrv/LanzaRecoSrv.cs | 2 +- View/Recogida/PaneRecogidaSub1.xaml | 4 +- View/Recogida/PaneRecogidaSub1.xaml.cs | 4 +- 7 files changed, 233 insertions(+), 55 deletions(-) diff --git a/Config.daml b/Config.daml index eedcc0f..743a8e6 100644 --- a/Config.daml +++ b/Config.daml @@ -1,12 +1,12 @@  - + OliviaAddInPro AddIn de Optimización de la Limpieza Viaria para ArcGIs Pro Images\AddinDesktop32.png VSM VSM - Narvaling - 12/04/2024 12:00:00, 2024 + 17/04/2024 12:00:00, 2024 Framework diff --git a/Model/OliviaConf.cs b/Model/OliviaConf.cs index 2917ad9..6de9cca 100644 --- a/Model/OliviaConf.cs +++ b/Model/OliviaConf.cs @@ -12,6 +12,8 @@ using Xceed.Wpf.Toolkit.PropertyGrid; using Xceed.Wpf.Toolkit.PropertyGrid.Editors; using Xceed.Wpf.Toolkit.PropertyGrid.Attributes; using static OliviaAddInPro.Model.OliviaConf; +using System.Reflection; +using System.Collections.ObjectModel; namespace OliviaAddInPro.Model { @@ -51,12 +53,12 @@ namespace OliviaAddInPro.Model public enum OpsNW { - nw_0, //TomTom + nw_0/*, //TomTom nw_1, //Streetmap nw_2, // nw_3, nw_4, - + */ } private string m2s(int min) { @@ -489,6 +491,7 @@ namespace OliviaAddInPro.Model { val= OpsRecoCont.UsaKgDef; } + check(val); return val; } set @@ -516,14 +519,23 @@ namespace OliviaAddInPro.Model { PropertyDescriptor propDescrKgDef = TypeDescriptor.GetProperties(this.GetType())["kgrec_val"]; PropertyDescriptor propDescrKgTabla = TypeDescriptor.GetProperties(this.GetType())["kgrec"]; + if (propDescrKgDef == null && propDescrKgTabla == null) + { + return; + } ReadOnlyAttribute attrKgDef = propDescrKgDef.Attributes[typeof(ReadOnlyAttribute)] as ReadOnlyAttribute; ReadOnlyAttribute attrKgTabla = propDescrKgTabla.Attributes[typeof(ReadOnlyAttribute)] as ReadOnlyAttribute; if (attrKgDef != null && attrKgTabla != null) - { - System.Reflection.FieldInfo aFieldKgDef = attrKgDef.GetType().GetField("isReadOnly", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); - System.Reflection.FieldInfo aFieldKgTabla = attrKgTabla.GetType().GetField("isReadOnly", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); - aFieldKgDef.SetValue(attrKgDef, val!= OpsRecoCont.UsaKgDef); - aFieldKgDef.SetValue(attrKgTabla, val != OpsRecoCont.LeeCampoTabla); + { + //System.Reflection.FieldInfo aFieldKgDef = attrKgDef.GetType().GetField(/*"isReadOnly"*/nameof(ReadOnlyAttribute.IsReadOnly), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | BindingFlags.IgnoreCase); + // System.Reflection.FieldInfo aFieldKgTabla = attrKgTabla.GetType().GetField(/*"isReadOnly"*/nameof(ReadOnlyAttribute.IsReadOnly), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | BindingFlags.IgnoreCase); + System.Reflection.FieldInfo aFieldKgDef = attrKgDef.GetType().GetField("k__BackingField", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | BindingFlags.IgnoreCase); + System.Reflection.FieldInfo aFieldKgTabla = attrKgTabla.GetType().GetField("k__BackingField", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | BindingFlags.IgnoreCase); + + if (aFieldKgDef!=null) + aFieldKgDef.SetValue(attrKgDef, val!= OpsRecoCont.UsaKgDef); + if(aFieldKgDef!=null) + aFieldKgDef.SetValue(attrKgTabla, val != OpsRecoCont.LeeCampoTabla); } } diff --git a/Model/RecogidaDef.cs b/Model/RecogidaDef.cs index 8146505..676ffca 100644 --- a/Model/RecogidaDef.cs +++ b/Model/RecogidaDef.cs @@ -409,25 +409,26 @@ namespace OliviaAddInPro.Model //Carga Trasera //////////////////////////////////////////////// //Trasera-satelite - n = 4; + n = 3; i_def = 2; //Rellena volumenes - info[0] = 2; - info[1] = 3; - info[2] = 5; - info[3] = 7; + info[0] = 3; + info[1] = 5; + info[2] = 7; + rellena_carg((int)RecogidaDef.TiposCarga.Trasera, (int)RecogidaDef.TiposVehic.Satelite, n, i_def, info); //rellena la corrección de la carga máxima - info[0] = info[1] = -500; - info[2] = info[3] = 0; + info[0] = - 850; + info[1] = -1000; + info[2] =-1500; rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Resto, n, info); rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Organica, n, info); //Trasera-2 ejes - n = 6; + n = 5; i_def = 2; //Rellena volumenes info[0] = 8; @@ -435,15 +436,15 @@ namespace OliviaAddInPro.Model info[2] = 12; info[3] = 14; info[4] = 16; - info[5] = 17; + //info[5] = 17; rellena_carg((int)RecogidaDef.TiposCarga.Trasera, (int)RecogidaDef.TiposVehic.Ejes2, n, i_def, info); //rellena la corrección de la carga máxima - info[1] = -500; - info[2] = -1000; + info[0] = 0; + info[1] = 500; + info[2] = 0; info[3] = -1500; - info[4] = -2000; - info[0] = info[5] = 0; + info[4] = -3500; rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Resto, n, info); rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, @@ -460,6 +461,16 @@ namespace OliviaAddInPro.Model rellena_carg((int)RecogidaDef.TiposCarga.Trasera, (int)RecogidaDef.TiposVehic.Ejes3, n, i_def, info); + info[0] = 1500; + info[1] = 0; + info[2] = 0; + info[3] = 0; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Resto, n, info); + rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Organica, n, info); + + ////////////////////////////////////////////////// //Carga Lateral //////////////////////////////////////////////// @@ -476,30 +487,50 @@ namespace OliviaAddInPro.Model rellena_carg((int)RecogidaDef.TiposCarga.Lateral, (int)RecogidaDef.TiposVehic.Ejes2, n, i_def, info); //rellena la corrección de la carga máxima - info[0] = -500; - info[1] = -1000; + info[0] = -3400; + info[1] = -4500; rellena_carg_offset((int)RecogidaDef.TiposCarga.Lateral, (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Resto, n, info); rellena_carg_offset((int)RecogidaDef.TiposCarga.Lateral, (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Organica, n, info); //Lateral - 3 ejes - n = 3; + n = 4; i_def = 2; //Rellena volumenes - info[0] = 21; - info[1] = 23; - info[2] = 26; + info[0] = 19; + info[1] = 21; + info[2] = 23; + info[3] = 26; rellena_carg((int)RecogidaDef.TiposCarga.Lateral, (int)RecogidaDef.TiposVehic.Ejes3, n, i_def, info); + + + info[0] = -400; + info[1] = -1500; + info[2] = -2400; + info[3] = -3000; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Lateral, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Resto, n, info); + rellena_carg_offset((int)RecogidaDef.TiposCarga.Lateral, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Organica, n, info); - //Superior - satelite, no hay - rellena_carg((int)RecogidaDef.TiposCarga.Superior, - (int)RecogidaDef.TiposVehic.Satelite, 0, 0, null); ////////////////////////////////////////////////// //Carga Superior - //////////////////////////////////////////////// + //////////////////////////////////////////////// + /// + //Superior - satelite, no hay + n = 1; + i_def = 0; + //Rellena volumenes + info[0] = 11; + info[1] = 17; + rellena_carg((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Satelite, i_def, 0, null); + + + //Superior - 2 ejes n = 2; i_def = 0; @@ -509,19 +540,30 @@ namespace OliviaAddInPro.Model rellena_carg((int)RecogidaDef.TiposCarga.Superior, (int)RecogidaDef.TiposVehic.Ejes2, n, i_def, info); + info[0] = -5500; + info[1] = -8500; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Resto, n, info); + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Organica, n, info); + //Superior - 3 ejes - n = 3; + n = 2; i_def = 2; //Rellena volumenes info[0] = 20; info[1] = 23; - info[2] = 25; + //info[2] = 25; + rellena_carg((int)RecogidaDef.TiposCarga.Superior, (int)RecogidaDef.TiposVehic.Ejes3, n, i_def, info); + info[1] = -4000; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Resto, n, info); + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Organica, n, info); - //Bilateral - satelite, no hay - rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, - (int)RecogidaDef.TiposVehic.Satelite, 0, 0, null); + ////////////////////////////////////////////////// //Carga Bilateral @@ -530,48 +572,50 @@ namespace OliviaAddInPro.Model n = 1; i_def = 0; info[0] = 11; + //Bilateral - satelite, no hay rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, - (int)RecogidaDef.TiposVehic.Satelite, n, i_def, info); + (int)RecogidaDef.TiposVehic.Satelite, i_def, 0, null); - //offsets - //Bilateral - satelite - resto, org - info[0] = -3700; + //bilateral -satélite - envases + info[0] = -3850; rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Resto, n, info); rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Organica, n, info); + + //bilateral -satélite - envases info[0] = 480; rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Envases, n, info); //bilateral -satélite - papel - info[0] = -2160; + info[0] = 7; rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Papel, n, info); //bilateral -satélite - vidrio - info[0] = -2050; + info[0] = 0; rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Vidrio, n, info); - //Bilateral - 2 ejes - n = 3; + //Bilateral - 2 ejes------------------------------------------------------ + n = 1; i_def = 1; //Rellena volumenes info[0] = 14; - info[1] = 16; - info[2] = 18; + //info[1] = 16; + //info[2] = 18; rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, - (int)RecogidaDef.TiposVehic.Ejes2, n, i_def, info); + (int)RecogidaDef.TiposVehic.Ejes2, n, (int)RecogidaDef.TiposFracción.Resto, info); //Bilateral - 3 ejes - n = 3; + n = 2; i_def = 1; //Rellena volumenes info[0] = 20; info[1] = 23; - info[2] = 26; + // info[2] = 26; rellena_carg((int)RecogidaDef.TiposCarga.Bilateral, (int)RecogidaDef.TiposVehic.Ejes3, n, i_def, info); @@ -588,7 +632,125 @@ namespace OliviaAddInPro.Model //////////////////////////////////////////////////////// //Rellena offsets - rellena_offsets_bcn(); + //rellena_offsets_bcn(); + n = 4; + info[0] = 240; + info[1] = 0; + info[2] = 0; + info[3] = 0; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Lateral, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Envases, n, info); + + n = 2; + info[0] = 0; + info[1] = -2040; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Envases, n, info); + + //papel + n =3; + info[0] = -430; + info[1] = -500; + info[2] = -770; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, + (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Papel, n, info); + info[0] = -400; + info[1] = -250; + info[2] = -450; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, + (int)RecogidaDef.TiposVehic.Satelite, (int)RecogidaDef.TiposFracción.Vidrio, n, info); + + + + n = 4; + info[0] = 700; + info[1] = 0; + info[2] = 0; + info[3] = 0; + + rellena_carg_offset((int)RecogidaDef.TiposCarga.Lateral, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Vidrio, n, info); + info[0] = -1590; + info[1] = -2310; + info[2] = -2530; + info[3] = -2860; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Lateral, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Papel, n, info); + + n = 2; + info[0] = -3100; + info[1] = -5950; + + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Vidrio, n, info); + info[0] = -1760; + info[1] = -6120; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Papel, n, info); + + + info[0] = 0; + info[1] = -550; + + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Vidrio, n, info); + info[0] = -2200; + info[1] = -2530; + + rellena_carg_offset((int)RecogidaDef.TiposCarga.Superior, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Papel, n, info); + + + + info[0] = 0; + info[1] = -2450; + + rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Vidrio, n, info); + info[0] = -2200; + info[1] = -2530; + + rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Papel, n, info); + + + n = 1; + info[0] = -2540; + + rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Papel, n, info); + info[0] = -2400; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Bilateral, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Vidrio, n, info); + + + + n = 5; + info[0] = -880; + info[1] = -1100; + info[2] = -1320; + info[3] = -1540; + info[4] = -1760; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Papel, n, info); + n = 4; + info[0] = -1980; + info[1] = -2200; + info[2] = -2420; + info[3] = -2530; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Trasera, + (int)RecogidaDef.TiposVehic.Ejes3, (int)RecogidaDef.TiposFracción.Papel, n, info); + + n = 2; + info[0] = -1650; + info[1] = -1770; + rellena_carg_offset((int)RecogidaDef.TiposCarga.Lateral, + (int)RecogidaDef.TiposVehic.Ejes2, (int)RecogidaDef.TiposFracción.Papel, n, info); + + + + + } private static void rellena_offsets_bcn() diff --git a/Services/EjecServ.cs b/Services/EjecServ.cs index fe482ad..475b89d 100644 --- a/Services/EjecServ.cs +++ b/Services/EjecServ.cs @@ -1079,6 +1079,8 @@ namespace OliviaAddInPro.Services //HelperGdb.SaveFileDlg("Introduzca nombre de Feature Class a importar", GdbFileName, null, ArcGIS.Desktop.Catalog.ItemFilters.featureClasses_all); if (!string.IsNullOrEmpty(path_aux)) { + /*var aux = path_aux.Split("\\"); + tratamiento = aux[aux.Length-1];*/ tratamiento = new DirectoryInfo(System.IO.Path.GetDirectoryName(path_aux)).Name; //tratamiento = System.IO.Path.GetFileName(System.IO.Path.GetDirectoryName(path_aux)); amb_aux = System.IO.Path.GetFileNameWithoutExtension(path_aux); diff --git a/Services/LanzaSrv/LanzaRecoSrv.cs b/Services/LanzaSrv/LanzaRecoSrv.cs index 5db2441..29a232d 100644 --- a/Services/LanzaSrv/LanzaRecoSrv.cs +++ b/Services/LanzaSrv/LanzaRecoSrv.cs @@ -67,7 +67,7 @@ namespace OliviaAddInPro.Services.LanzaSrv GeneralDef.EjecGeoParamSep + GeneralDef.GR_kgM + GeneralDef.EjecGeoParamIgual + reco.KgMaxVehic + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GR_camp_kgrec + GeneralDef.EjecGeoParamIgual + conf.kgrec + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GR_camp_uds + GeneralDef.EjecGeoParamIgual + conf.uds + " " + - GeneralDef.EjecGeoParamSep + GeneralDef.GR_kgrecog + GeneralDef.EjecGeoParamIgual + conf.kgrec_val + " " + + GeneralDef.EjecGeoParamSep + GeneralDef.GR_kgrecog + GeneralDef.EjecGeoParamIgual + (conf.is_campo?"0":(conf.is_lleno?"-1":conf.kgrec_val)) + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GR_carga_cont + GeneralDef.EjecGeoParamIgual + 0 + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GR_dens + GeneralDef.EjecGeoParamIgual + reco.DensCont + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_tco + GeneralDef.EjecGeoParamIgual + reco.TConv + " " + diff --git a/View/Recogida/PaneRecogidaSub1.xaml b/View/Recogida/PaneRecogidaSub1.xaml index 29b319a..20ae8da 100644 --- a/View/Recogida/PaneRecogidaSub1.xaml +++ b/View/Recogida/PaneRecogidaSub1.xaml @@ -91,8 +91,8 @@ - -