using System;

/**
*	@file LimpiezaDef.cs
*	Clase con definiciones de limpieza comunes al proyecto Olivia y a OliviaTask.
*/
/**
*	Clase con definiciones de limpieza comunes al proyecto Olivia y a OliviaTask.
*/
namespace OliviaAddInPro.Model
{
    public static class LimpiezaDef
    {
        public const int NMaxZon = 9;
        public const int NMaxNiv = 12;

        //*************************************************************************************
        //Enums y structs generales  
        /**
        * Nombre de las capas que se van a necesitar para la exportación de datos para la limpieza
        */
        public struct Capas
        {
            public static string ftclass_niveles;   //<Nombre de la capa de niveles
            public static string ftclass_cont;      //<Nombre de la capa de contenedores
            public static string ftclass_mobi;      //<Nombre de la capa de mobiliario (pipicanes, papeleras, etc)
            public static string ftclass_limp_mec;  //<Nombre de la capa de los ámbitos de limpieza lineales
            public static string ftclass_instala;   //<Nombre de la capa de instalaciones
        };
        /**
        * Nombre de los campos (de las capas) sobre los que se realizarán consultas para la limpieza
        */
        public struct Campos
        {
            public static string consulta_entidad;   //<Campo a consultar de la capa de limpieza el tipo de entidad (ámbito)
            public static string consulta_mecan;     //<Campo a consultar de la capa de limpieza si es mecanizable o no
            public static string consulta_observ;     //<Campo a consultar de la capa de limpieza, observaciones 
            public static string consulta_anch_tip;    //<Campo a consultar de la capa de limpieza, ancho tipo 
            public static string consulta_tipolo;     //<Campo a consultar de la capa de limpieza, tipología
        };
        /**
        * Nombre de los atributos (de las capas) sobre los que se realizarán consultas para la limpieza
        */
        public struct Atributos
        {
            public static string atr_bord;          //<Atributo a consultar para los Bordillos libres
            public static string atr_aparc;         //<Atributo a consultar para las Bandas de Aparcamiento
            public static string atr_acera;         //<Atributo a consultar para las Aceras
            public static string atr_peat;          //<Atributo a consultar para las Peatonales
            public static string atr_hoja;          //<Atributo a consultar para la Caida de Hoja
            public static string atr_esca;          //<Atributo a consultar para las Escaleras
            public static string atr_fuent;         //<Atributo a consultar para las Fuentes
            public static string atr_infan;         //<Atributo a consultar para las Zonas Infantiles
            public static string atr_pape;          //<Atributo a consultar para las Papeleras
            public static string atr_paso_niv;      //<Atributo a consultar para los Pasos a Nivel
            public static string atr_pipi;          //<Atributo a consultar para los Pipicanes
            public static string atr_sane;          //<Atributo a consultar para los Sanecanes
            public static string atr_terri;         //<Atributo a consultar para las Areas Terrizas
            public static string atr_ocio;          //<Atributo a consultar para las Zonas de Ocio
            public static string atr_org_ofi;       //<Atributo a consultar para los Organismos Oficiales
            public static string atr_parq;          //<Atributo a consultar para los Parques
            public static string atr_park;          //<Atributo a consultar para los Parkings
            public static string atr_play;          //<Atributo a consultar para las Playas
            public static string atr_polid;         //<Atributo a consultar para los Plideportivos
            public static string atr_turis;         //<Atributo a consultar para los Puntos de Interés Turístico
            public static string atr_solar;         //<Atributo a consultar para los Solares
            public static string atr_suelo;         //<Atributo a consultar para los Usos del Suelo
            public static string atr_ap_lin;         //<Atributo a consultar para el aparcamiento en Linea
            public static string atr_ap_bat;         //<Atributo a consultar para el aparcamiento en Bateria

        };
        /**
        * Nombre de los parámetros que intervienen en el cálculo para la limpieza
        */
        public struct Parametros
        {
            public static int t_ttoM;               //<Tiempo de tratamiento máximo admitido
            public static int t_ttom;               //<Tiempo de tratamiento mínimo permitido
            public static int v_despM;              //<Velocidad de desplazamiento máximo admitido
            public static int v_despm;              //<Velocidad de desplazamiento mínimo admitido
            public static int t_cardescM;           //<Tiempo de descarga máximo admitido
            public static int t_cardescm;           //<Tiempo de descarga mínimo admitido
            public static int t_cardesc;            //<Tiempo de descarga establecido
            public static int t_despM;              //<Tiempo de desplazamiento máximo admitido
            public static int t_despm;              //<Tiempo de desplazamiento mínimo admitido
            public static int t_desp;               //<Tiempo de desplazamiento establecido
            public static int t_convM;              //<Tiempo de convenio máximo admitido
            public static int t_convm;              //<Tiempo de convenio mínimo admitido
            public static int t_conv;               //<Tiempo de convenio establecido
            public static int t_descansoM;          //<Tiempo de descanso máximo admitido
            public static int t_descansom;          //<Tiempo de descanso mínimo admitido
            public static int t_descanso;           //<Tiempo de descanso establecido
            public static int h_inicio;             //<Hora de inicio de la jornada de trabajo
            public static int reduc_traf;           //<Porcent de reducción por tráfico
            public static bool igno_ais;
            public static int ancho_viaM;           //<Ancho de vía máximo admitido
            public static int ancho_viam;           //<Ancho de vía mínimo admitido
            public static int ancho_via;            //<Ancho de vía establecido
            public static int ttoBarMan;            //<Tiempo de tratamiento de Barrido_Manual
            public static int ttoBarManMant;        //<Tiempo de tratamiento de Barrido_mantenimiento_manual
            public static int ttoBarMMot;           //<Tiempo de tratamiento de Barrido_manual_motorizado
            public static int ttoBarMC;             //<Tiempo de tratamiento de Barrido_mecanico_calzadas
            public static int ttoBarMAP;            //<Tiempo de tratamiento de Barrido_mecanico_aceras_peatonales
            public static int ttoBarMix;            //<Tiempo de tratamiento de Barrido_mixto
            public static int ttoBalMan;            //<Tiempo de tratamiento de Baldeo_manual
            public static int ttoBalMC;             //<Tiempo de tratamiento de Baldeo_mecanico_calzadas
            public static int ttoBalMAP;            //<Tiempo de tratamiento de Baldeo_mecanico_aceras_peatonales
            public static int ttoBalMix;            //<Tiempo de tratamiento de Baldeo_mixto
            public static int ttoBL;                //<Tiempo de tratamiento de Brigada_limpieza
            public static int ttoCH;                //<Tiempo de tratamiento de Caida_Hoja
            public static int ttoVPap;              //<Tiempo de tratamiento de Vaciado_papeleras
            public static int ttoLPap;              //<Tiempo de tratamiento de Limpieza_papeleras
            public static int ttoLC;                //<Tiempo de tratamiento de Limpieza_contenedores
            public static int ttoLZI;               //<Tiempo de tratamiento de Limpieza_zonas_infantiles
            public static int ttoLPip;              //<Tiempo de tratamiento de Limpieza_pipicanes
            public static int ttoLS;                //<Tiempo de tratamiento de Limpieza_sanecanes
            public static int vdespBarMan;          //<Velocidad de desplazamiento de Barrido_Manual
            public static int vdespBarManMant;      //<Velocidad de desplazamiento de Barrido_mantenimiento_manual
            public static int vdespBarMMot;         //<Velocidad de desplazamiento de Barrido_manual_motorizado
            public static int vdespBarMC;           //<Velocidad de desplazamiento de Barrido_mecanico_calzadas
            public static int vdespBarMAP;          //<Velocidad de desplazamiento de Barrido_mecanico_aceras_peatonales
            public static int vdespBarMix;          //<Velocidad de desplazamiento de Barrido_mixto
            public static int vdespBalMan;          //<Velocidad de desplazamiento de Baldeo_manual
            public static int vdespBalMC;           //<Velocidad de desplazamiento de Baldeo_mecanico_calzadas
            public static int vdespBalMAP;          //<Velocidad de desplazamiento de Baldeo_mecanico_aceras_peatonales
            public static int vdespBalMix;          //<Velocidad de desplazamiento de Baldeo_mixto
            public static int vdespBL;              //<Velocidad de desplazamiento de Brigada_limpieza
            public static int vdespCH;              //<Velocidad de desplazamiento de Caida_Hoja
            public static int vdespVPap;            //<Velocidad de desplazamiento de Vaciado_papeleras
            public static int vdespLPap;            //<Velocidad de desplazamiento de Limpieza_papeleras
            public static int vdespLC;              //<Velocidad de desplazamiento de Limpieza_contenedores
            public static int vdespLZI;             //<Velocidad de desplazamiento de Limpieza_zonas_infantiles
            public static int vdespLPip;            //<Velocidad de desplazamiento de Limpieza_pipicanes
            public static int vdespLS;              //<Velocidad de desplazamiento de Limpieza_sanecanes
            public static double umbral_reco;       //<Umbral de llenado para la recogida de contenedores
        };
        public struct OtrosParam
        { 
            public static double anch_peat;  
            public static double anch_ace;   
            public static double anch_aplin;
            public static double anch_apbat;
            public static double anch_bordlib;
        };
        //*************************************************************************************
        //Enums globales limpieza
        /**
        *	Tipos de tratamiento.
        *	Enumeración de los diferentes tipos de tratamiento correspondientes 
        *	a los servicios de limpieza viaria.
        */
        public enum TiposTto
        {
            TtoNoDef = -1,
            //lineales
            TtoBarrMan,				//<Barrido manual
            TtoBarrMant,            //<Barrido manual de mantenimiento
            TtoBarrMot,				//<Barrido manual motorizado
            TtoBarrMecCalz,			//<Barrido mecánico de calzadas
            TtoBarrMecAcYCalzP,		//<Barrido mecánico de aceras y calzadas peatonales
            TtoBarrMixAcYCalz,		//<Barrido mixto de aceras y calzadas
            TtoBaldMan,				//<Baldeo manual
            TtoBaldMecCalz,			//<Baldeo mecánico de calzadas
            TtoBaldMecAcYCalzP,		//<Baldeo mecánico de aceras y calzadas peatonales
            TtoBaldMixAcYCalz,		//<Baldeo mixto de aceras y calzadas
            TtoFregMecAcYCalzP,		//<Fregado mecánico de aceras y calzadas peatonales
            TtoCaidaHoja,			//<Caída de la hoja
            //puntuales
            TtoPapeVaci,			//<Vaciado de papeleras
            TtoPapeLimp,			//<Limpieza de papeleras
            TtoLimpCont,			//<Limpieza de ubicación de contenedores
            TtoLimpZInf,			//<Limpieza de zonas infantiles
            TtoLimpPipi,			//<Limpieza de pipicanes
            TtoLimpSane,			//<Limpieza y reposición de sanecanes
            TtoCustom,			    //<Tratamiento editable para seleccionar cualquier tipo de ámbito
            TtoN					//<Número de tipos de tratamiento
        };
        /**
        *	Ámbitos de trabajo.
        *	Enumeración de los diferentes ámbitos de trabajo en los que se pueden efectuar los tratamientos 
        *	correspondientes a los servicios de limpieza viaria.
        */
        public enum AmbitsTra
        {
            AmbNoDef = -1,
            //lineales
            AmbEjeCalle,            //<Ejes de calle, tipo línea
            AmbBordLibreMec,        //<Bordillos libres de aparcamiento mecanizables, tipo línea
            AmbBordLibreNoMec,      //<Bordillos libres de aparcamiento no mecanizables, tipo línea
            AmbBordAparc,           //<Bordillos con banda de aparcamiento, tipo línea
            AmbAceMec,              //<Aceras mecanizables, tipo línea
            AmbAceNoMec,            //<Aceras no mecanizables, tipo línea
            AmbCallePeatMec,        //<Calles peatonales mecanizables, tipo línea
            AmbCallePeatNoMec,      //<Calles peatonales no mecanizables, tipo línea
            AmbBordHojaMec,         //<Bordillos con caída de hoja mecanizables, tipo línea
            AmbBordHojaNoMec,       //<Bordillos con caída de hoja no mecanizables, tipo línea
            //puntuales
            AmbConte,               //<Puntos de contenerización, tipo punto
            AmbPape,                //<Papeleras, tipo punto
            AmbZInf,                //<Zonas infantiles, tipo punto
            AmbPipi,                //<Pipicanes, tipo punto
            AmbSane,                //<Sanecanes, tipo punto
            AmbN                    //<Número de ámbitos de trabajo
        };
        /**
         * Array que indica qué ámbitos tiene cada opción, mediante true en las posiciones de los ámbitos válidos
         */
        public struct AmbsValOps
        {
            public bool[] ambs;
        };
        /**
         * Definición de tipo para la matriz que da los ámbitos
         * Donde hay n opciones y cada opción un array de booleanos que indican con true si esa opción tiene ese ámbito
         */
        public struct AmbsVal
        {
            public int n_ops;
            public AmbsValOps[] ambs_ops;
        };
        //*************************************************************************************
        //Variables generales                
        /*array de las diferentes consltas de atributos a realizar en Ambitos_limpiezas_mecanicas. Se añade uno porque en los ámbitos sólo se recoge una vez Papeleras, mientras que hay Vaciado y Limpieza de las mismas.*/
        public static string[] filtro_str = new string[(int)AmbitsTra.AmbN];
        
        public static string[] ftclass = new string[(int)AmbitsTra.AmbN];   
        /** 
        * Array de strings con los nombres de los tipos de tratamiento que se asignará  la gdb importada a ArcGIS una vez realizada la sectorización y la planificación
        */
        public static String[] tto_gdb = new String[(int)TiposTto.TtoN - 1];
        /** 
        * Array de strings con los nombres de los ámbitos de trabajo que se asignará  la gdb importada a ArcGIS una vez realizada la sectorización y la planificación
        */
        public static String[] ambs_gdb = new String[(int)LimpiezaDef.AmbitsTra.AmbN];
        /** 
        * Array de strings con los prefijos del tipo de tratamiento para poner a "ambs_gdb" para que no haya posibles capas duplicadas
        */
        public static String[] preftto_gdb = new String[(int)TiposTto.TtoN - 1];
        /** 
        * Array de strings con los tipos de tratamientos y diferentes zonas de actuación de limpieza
        */
        public static String[] simb_tto = new String[22];
        /** 
        * Array de strings con nombres de los sibmolos referentes al tipo de tratamiento de limpieza viaria
        */
        public static String[] nombre_simblimp_vsm = new String[22];
        /** 
        * Array de cadenas de doubles enumerando los tiempos de tratamiento para los diferentes tipos de tratamiento.
         */
        public static int[] tiempos_tto = new int[(int)LimpiezaDef.TiposTto.TtoN - 1];
        /** 
        * Array de cadenas de doubles enumerando las velocidades de desplazamiento para los diferentes tipos de tratamiento.
         */
        public static int[] v_desplazamiento = new int[(int)LimpiezaDef.TiposTto.TtoN - 1];
        /** 
         * Array de cadenas de caracteres enumerando los tipos de tratamiento
         */
        public static String[] tipos_tto_str = new String[(int)LimpiezaDef.TiposTto.TtoN - 1];
        /** 
         * Array de cadenas de caracteres enumerando los ámbitos de trabajo
         */
        public static String[] ambits_tra_str = new String[(int)LimpiezaDef.AmbitsTra.AmbN];
        /**
         * Matriz que da si los tratamientos tienen en cuenta las restricciones de circulación o no
         */
        public static bool[] rest_circ;
        /**
         * Matriz que da si los tratamientos tienen en cuenta las restricciones de circulación o no
        */
        public static bool[] t_carg_desc;
        /**
         * Matriz que da los ámbitos correspondientes a los tipos de tratamiento
         */
        public static AmbsVal[] ambs_val;
        /**
         * Anchos por defecto para el cálculo de rendimientos de los tratamientos
         * De momento los lee olivia del cfg_geo.ini, habría que pasarlos por socket?
         */
        public static double ancho_peat_def = 6;
        public static double ancho_acera_def = 1.5;
        public static double ancho_ap_lin_def = 2;
        public static double ancho_ap_bat_def = 4;
        public static double ancho_bord_lib_def = 1.5;
        //*************************************************************************************     
        public static void iniciaLimpDef()
        {
            rellena_tto_gdb();
            rellena_amb_gdb();
            rellena_preftto_gdb();
            rellena_simb_tiptto();
            rellena_simblimp_vsm();
            inicia_tiempos();
            rellena_matrs();
            inicia_matr_restr();
            inicia_matr_amb();
            inicia_matr_carg_desc();
            forma_filtros();
        }
        /**
         * Inicializa la matriz de strings con los nombres (tipos de tratamiento) que llevarán los grupos de la geodatabase importada a ArcGIS una vez realizada la sectorización y la planificación
         */
        public static void rellena_tto_gdb()
        {
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMan] = "Barrido_man";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMant] = "Barrido_man_mantenimiento";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMot] = "Barrido_man_motorizado";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz] = "Barrido_mec_calzadas";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP] = "Barrido_mec_aceras_peat";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz] = "Barrido_mixto";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBaldMan] = "Baldeo_manual";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz] = "Baldeo_mec_calzadas";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP] = "Baldeo_mec_aceras_peat";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz] = "Baldeo_mixto";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP] = "Brigada_limpieza";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoCaidaHoja] = "Caida_hoja";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoPapeVaci] = "Vaciado_papeleras";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoPapeLimp] = "Limpieza_papeleras";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoLimpCont] = "Limpieza_contenedores";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoLimpZInf] = "Limpieza_zonas_infant";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoLimpPipi] = "Limpieza_pipicanes";
            LimpiezaDef.tto_gdb[(int)LimpiezaDef.TiposTto.TtoLimpSane] = "Limpieza_sanecanes";
        }

        /**
         * Inicializa la matriz de strings con los nombres (ambitos de trabajo) que llevarán los featureclass de la geodatabase importada a ArcGIS una vez realizada la sectorización y la planificación
         */
        public static void rellena_amb_gdb()
        {
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbEjeCalle] = "EjCal";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = "BordLibM";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbBordLibreNoMec] = "BordLibNM";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = "BordBndApar";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = "AceM";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = "AceNM";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = "PeatM";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbCallePeatNoMec] = "PeatNM";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbBordHojaMec] = "CaiHojM";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbBordHojaNoMec] = "CaiHojNM";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbConte] = "Contenerización";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbPape] = "Papeleras";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbZInf] = "ZonasInfantiles";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbPipi] = "Pipicanes";
            LimpiezaDef.ambs_gdb[(int)LimpiezaDef.AmbitsTra.AmbSane] = "Sanecanes";
        }

        /**
        * Inicializa la matriz de strings con los prefijos (tipo de tratamiento) que llevarán los featureclass de la geodatabase importada a ArcGIS una vez realizada la sectorización y la planificación
        */
        public static void rellena_preftto_gdb()
        {
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMan] = "BarMan";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMant] = "BarManMant";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMot] = "BarMMot";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz] = "BarMC";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP] = "BarMAP";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz] = "BarMix";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBaldMan] = "BalMan";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz] = "BalMC";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP] = "BalMAP";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz] = "BalMix";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP] = "BL";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoCaidaHoja] = "CH";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoPapeVaci] = "VPap";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoPapeLimp] = "LPap";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoLimpCont] = "LC";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoLimpZInf] = "LZI";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoLimpPipi] = "LPip";
            LimpiezaDef.preftto_gdb[(int)LimpiezaDef.TiposTto.TtoLimpSane] = "LS";
        }



        /**
        * Inicializa la matriz de strings con los tipos de tratamientos y diferentes zonas de actuación de limpieza
        */
        public static void rellena_simb_tiptto()
        {
            LimpiezaDef.simb_tto[0] = LimpiezaDef.Atributos.atr_esca;
            LimpiezaDef.simb_tto[1] = LimpiezaDef.Atributos.atr_fuent;
            LimpiezaDef.simb_tto[2] = LimpiezaDef.Atributos.atr_infan;
            LimpiezaDef.simb_tto[3] = LimpiezaDef.Atributos.atr_pape;
            LimpiezaDef.simb_tto[4] = LimpiezaDef.Atributos.atr_paso_niv;
            LimpiezaDef.simb_tto[5] = LimpiezaDef.Atributos.atr_pipi;
            LimpiezaDef.simb_tto[6] = LimpiezaDef.Atributos.atr_sane;
            LimpiezaDef.simb_tto[7] = LimpiezaDef.Atributos.atr_acera;
            //LimpiezaDef.simb_tto[7] = "Acera_Mecanizable";
            LimpiezaDef.simb_tto[8] = LimpiezaDef.Atributos.atr_aparc;
            LimpiezaDef.simb_tto[9] = LimpiezaDef.Atributos.atr_bord;
            LimpiezaDef.simb_tto[10] = LimpiezaDef.Atributos.atr_hoja;
            LimpiezaDef.simb_tto[11] = LimpiezaDef.Atributos.atr_peat;
            LimpiezaDef.simb_tto[12] = LimpiezaDef.Atributos.atr_terri;
            LimpiezaDef.simb_tto[13] = LimpiezaDef.Atributos.atr_ocio;
            LimpiezaDef.simb_tto[14] = LimpiezaDef.Atributos.atr_org_ofi;
            LimpiezaDef.simb_tto[15] = LimpiezaDef.Atributos.atr_parq;
            LimpiezaDef.simb_tto[16] = LimpiezaDef.Atributos.atr_park;
            LimpiezaDef.simb_tto[17] = LimpiezaDef.Atributos.atr_play;
            LimpiezaDef.simb_tto[18] = LimpiezaDef.Atributos.atr_polid;
            LimpiezaDef.simb_tto[19] = LimpiezaDef.Atributos.atr_turis;
            LimpiezaDef.simb_tto[20] = LimpiezaDef.Atributos.atr_solar;
            LimpiezaDef.simb_tto[21] = LimpiezaDef.Atributos.atr_suelo;
        }

        /**
        * Inicializa la matriz de strings con los nombres de los sibmolos referentes al tipo tratamiento de limpieza viaria
        */
        public static void rellena_simblimp_vsm()
        {
            LimpiezaDef.nombre_simblimp_vsm[0] = "escaleras";
            LimpiezaDef.nombre_simblimp_vsm[1] = "Fuentes";
            LimpiezaDef.nombre_simblimp_vsm[2] = "Juegos infantiles";
            LimpiezaDef.nombre_simblimp_vsm[3] = "Papeleras";
            LimpiezaDef.nombre_simblimp_vsm[4] = "Paso a distinto nivel";
            LimpiezaDef.nombre_simblimp_vsm[5] = "Pipicans";
            LimpiezaDef.nombre_simblimp_vsm[6] = "Sanecans";
            LimpiezaDef.nombre_simblimp_vsm[7] = "Aceras";
            LimpiezaDef.nombre_simblimp_vsm[8] = "Aparcamiento";
            LimpiezaDef.nombre_simblimp_vsm[9] = "Bordillo libre";
            LimpiezaDef.nombre_simblimp_vsm[10] = "Caida Hoja";
            LimpiezaDef.nombre_simblimp_vsm[11] = "Peatonal";
            LimpiezaDef.nombre_simblimp_vsm[12] = "areas terrizas";
            LimpiezaDef.nombre_simblimp_vsm[13] = "Ocio";
            LimpiezaDef.nombre_simblimp_vsm[14] = "Organismos oficiales";
            LimpiezaDef.nombre_simblimp_vsm[15] = "Parques";
            LimpiezaDef.nombre_simblimp_vsm[16] = "Parquin";
            LimpiezaDef.nombre_simblimp_vsm[17] = "Playa";
            LimpiezaDef.nombre_simblimp_vsm[18] = "Polideportivo";
            LimpiezaDef.nombre_simblimp_vsm[19] = "Puntos de interes turistico";
            LimpiezaDef.nombre_simblimp_vsm[20] = "Solares";
            LimpiezaDef.nombre_simblimp_vsm[21] = "Uso suelo";
        }

        public static void inicia_tiempos()
        {
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBarrMan] = LimpiezaDef.Parametros.ttoBarMan;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBarrMant] = LimpiezaDef.Parametros.ttoBarManMant;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBarrMot] = LimpiezaDef.Parametros.ttoBarMMot;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz] = LimpiezaDef.Parametros.ttoBarMC;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP] = LimpiezaDef.Parametros.ttoBarMAP;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz] = LimpiezaDef.Parametros.ttoBarMix;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBaldMan] = LimpiezaDef.Parametros.ttoBalMan;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz] = LimpiezaDef.Parametros.ttoBalMC;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP] = LimpiezaDef.Parametros.ttoBalMAP;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz] = LimpiezaDef.Parametros.ttoBalMix;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP] = LimpiezaDef.Parametros.ttoBL;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoCaidaHoja] = LimpiezaDef.Parametros.ttoCH;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoPapeVaci] = LimpiezaDef.Parametros.ttoVPap;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoPapeLimp] = LimpiezaDef.Parametros.ttoLPap;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoLimpCont] = LimpiezaDef.Parametros.ttoLC;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoLimpZInf] = LimpiezaDef.Parametros.ttoLZI;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoLimpPipi] = LimpiezaDef.Parametros.ttoLPip;
            LimpiezaDef.tiempos_tto[(int)LimpiezaDef.TiposTto.TtoLimpSane] = LimpiezaDef.Parametros.ttoLS;

            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBarrMan] = LimpiezaDef.Parametros.vdespBarMan;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBarrMant] = LimpiezaDef.Parametros.vdespBarManMant;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBarrMot] = LimpiezaDef.Parametros.vdespBarMMot;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz] = LimpiezaDef.Parametros.vdespBarMC;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP] = LimpiezaDef.Parametros.vdespBarMAP;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz] = LimpiezaDef.Parametros.vdespBarMix;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBaldMan] = LimpiezaDef.Parametros.vdespBalMan;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz] = LimpiezaDef.Parametros.vdespBalMC;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP] = LimpiezaDef.Parametros.vdespBalMAP;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz] = LimpiezaDef.Parametros.vdespBalMix;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP] = LimpiezaDef.Parametros.vdespBL;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoCaidaHoja] = LimpiezaDef.Parametros.vdespCH;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoPapeVaci] = LimpiezaDef.Parametros.vdespVPap;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoPapeLimp] = LimpiezaDef.Parametros.vdespLPap;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoLimpCont] = LimpiezaDef.Parametros.vdespLC;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoLimpZInf] = LimpiezaDef.Parametros.vdespLZI;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoLimpPipi] = LimpiezaDef.Parametros.vdespLPip;
            LimpiezaDef.v_desplazamiento[(int)LimpiezaDef.TiposTto.TtoLimpSane] = LimpiezaDef.Parametros.vdespLS;
        }

        /**
         * Rellena las matrices de datos
         */
        public static void rellena_matrs()
        {
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBarrMan] = "Barrido manual";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBarrMant] = "Barrido manual de mantenimiento";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBarrMot] = "Barrido manual motorizado";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz] = "Barrido mecánico de calzadas";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP] = "Barrido mecánico de aceras y calzadas peatonales";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz] = "Barrido mixto de aceras y calzadas";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBaldMan] = "Baldeo manual";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz] = "Baldeo mecánico de calzadas";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP] = "Baldeo mecánico de aceras y calzadas peatonales";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz] = "Baldeo mixto de aceras y calzadas";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP] = "Fregado mecánico de aceras y calzadas peatonales";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoCaidaHoja] = "Caída de la hoja";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoPapeVaci] = "Vaciado de papeleras";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoPapeLimp] = "Limpieza de papeleras";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoLimpCont] = "Limpieza de ubicación de contenedores";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoLimpZInf] = "Limpieza de zonas infantiles";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoLimpPipi] = "Limpieza de pipicanes";
            tipos_tto_str[(int)LimpiezaDef.TiposTto.TtoLimpSane] = "Limpieza y reposición de sanecanes";

            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbEjeCalle] = "Ejes de calle";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = "Bordillos libres de aparcamiento mec.";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbBordLibreNoMec] = "Bordillos libres de aparcamiento no mec.";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = "Bordillos con banda de aparcamiento";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = "Aceras mecanizables";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = "Aceras no mecanizables";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = "Calles peatonales mecanizables";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbCallePeatNoMec] = "Calles peatonales no mecanizables";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbBordHojaMec] = "Bordillos con caída de hoja mecanizables";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbBordHojaNoMec] = "Bordillos con caída de hoja no mecanizables";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbConte] = "Puntos de contenerización";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbPape] = "Papeleras";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbZInf] = "Zonas infantiles";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbPipi] = "Pipicanes";
            ambits_tra_str[(int)LimpiezaDef.AmbitsTra.AmbSane] = "Sanecanes";
        }
        /**
         * Inicializa la matriz que da las restricciones de circulación de los tipos de tratamiento
         */
        public static void inicia_matr_restr()
        {
            rest_circ = new bool[(int)LimpiezaDef.TiposTto.TtoN];//se inician a false
            rest_circ[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoCaidaHoja] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoPapeVaci] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoPapeLimp] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoLimpCont] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoLimpZInf] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoLimpPipi] = true;
            rest_circ[(int)LimpiezaDef.TiposTto.TtoLimpSane] = true;
        }

        /**
         * Inicializa la matriz que da los ámbitos correspondientes a los tipos de tratamiento
         */
        public static void inicia_matr_amb()
        {
            //crea la matriz
            ambs_val = new AmbsVal[(int)LimpiezaDef.TiposTto.TtoN];

            //va creando los arrays de cada elemento de la matriz correspondiente a un tipo de tratamiento

            //Barrido manual
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatNoMec] = true;

            //Barrido manual de mantenimiento
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMant].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMant].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMant].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMant].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMant].ambs_ops[0].ambs = ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMan].ambs_ops[0].ambs;//igual que el manual
            //igual que el manual

            //Barrido manual motorizado
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMot].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatNoMec] = true;

            //Barrido mecánico de calzadas
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;

            //Barrido mecánico de aceras y calzadas peatonales
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = true;

            //Barrido mixto de aceras y calzadas
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].n_ops = 4;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[1].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[2].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[3].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[3].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[3].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[3].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz].ambs_ops[3].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            //Baldeo manual
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMan].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMan].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMan].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMan].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMan].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMan].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = true;

            //Baldeo mecánico de calzadas
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz].n_ops = 2;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz].ambs_ops[1].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbEjeCalle] = true;

            //Baldeo mecánico de aceras y calzadas peatonales
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = true;

            //Baldeo mixto de aceras y calzadas
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].n_ops = 4;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[1].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[2].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[3].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[3].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[3].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[3].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz].ambs_ops[3].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            //Fregado mecánico de aceras y calzadas peatonales
            ambs_val[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = true;


            //Caída de la hoja
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].n_ops = 3;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            //No están especififacadas las características de la opción 1 ?
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbEjeCalle] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[1].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[2].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCaidaHoja].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;

            //Vaciado de papeleras
            ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeVaci].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeVaci].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeVaci].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeVaci].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeVaci].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbPape] = true;

            //Limpieza de papeleras
            ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeLimp].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeLimp].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeLimp].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeLimp].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoPapeLimp].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbPape] = true;

            //Limpieza de ubicación de contenedores
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpCont].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpCont].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpCont].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpCont].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpCont].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbConte] = true;

            //<Limpieza de zonas infantiles
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpZInf].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpZInf].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpZInf].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpZInf].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpZInf].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbZInf] = true;

            //<Limpieza de pipicanes
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpPipi].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpPipi].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpPipi].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpPipi].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpPipi].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbPipi] = true;

            //<Limpieza y reposición de sanecanes
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpSane].n_ops = 1;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpSane].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpSane].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpSane].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoLimpSane].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbSane] = true;

            //<Tratamiento personalizado
            //se pone 3 opciones para generar el array de booleanos para poder elegir ambitos lienales, puntutales o eje de calle.
            //realmente son opciones comunes a todos los tratamientos y no exclusivos de TtoCustom
            //se aprovecha que está creado el array de booleanos para rellenar las opciones golobales a todos los tratamientos
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].n_ops = 3;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops = new AmbsValOps[ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].n_ops];
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordLibreNoMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbCallePeatNoMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordHojaMec] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[0].ambs[(int)LimpiezaDef.AmbitsTra.AmbBordHojaNoMec] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[1].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbConte] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbPape] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbZInf] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbPipi] = true;
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[1].ambs[(int)LimpiezaDef.AmbitsTra.AmbSane] = true;

            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[2].ambs = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; //se inicializa todo a false
            ambs_val[(int)LimpiezaDef.TiposTto.TtoCustom].ambs_ops[2].ambs[(int)LimpiezaDef.AmbitsTra.AmbEjeCalle] = true;
        }

        /**
         * Inicializa la matriz booleana que habilita o deshabilita el timechecker del tiempo de carga y descarga, dependiendo del tipo de tratamiento
         */
        public static void inicia_matr_carg_desc()
        {
            t_carg_desc = new bool[(int)LimpiezaDef.TiposTto.TtoN]; //se inician a false
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBarrMan] = false;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBarrMant] = false;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBarrMot] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBarrMecCalz] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBarrMecAcYCalzP] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBarrMixAcYCalz] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBaldMan] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBaldMecCalz] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBaldMecAcYCalzP] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoBaldMixAcYCalz] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoFregMecAcYCalzP] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoCaidaHoja] = true;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoPapeVaci] = false;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoPapeLimp] = false;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoLimpCont] = false;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoLimpZInf] = false;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoLimpPipi] = false;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoLimpSane] = false;
            t_carg_desc[(int)LimpiezaDef.TiposTto.TtoCustom] = true;
        }
        /**
         * Forma los filtros con las consultas y atributos
         */
        public static void forma_filtros()
        {
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbEjeCalle] = "";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbBordLibreMec] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_bord + "' AND " + LimpiezaDef.Campos.consulta_mecan + " = 'Si'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbBordLibreNoMec] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_bord + "' AND " + LimpiezaDef.Campos.consulta_mecan + " = 'No'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbBordAparc] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_aparc + "'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbAceMec] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_acera + "' AND " + LimpiezaDef.Campos.consulta_mecan + " = 'Si'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbAceNoMec] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_acera + "' AND " + LimpiezaDef.Campos.consulta_mecan + " = 'No'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbCallePeatMec] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_peat + "' AND " + LimpiezaDef.Campos.consulta_mecan + " = 'Si'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbCallePeatNoMec] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_peat + "' AND " + LimpiezaDef.Campos.consulta_mecan + " = 'No'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbBordHojaMec] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_hoja + "' AND " + LimpiezaDef.Campos.consulta_mecan + " = 'Si'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbBordHojaNoMec] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_hoja + "' AND " + LimpiezaDef.Campos.consulta_mecan + " = 'No'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbConte] = "";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbPape] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_pape + "'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbZInf] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_infan + "'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbPipi] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_pipi + "'";
            LimpiezaDef.filtro_str[(int)LimpiezaDef.AmbitsTra.AmbSane] = LimpiezaDef.Campos.consulta_entidad + " = '" + LimpiezaDef.Atributos.atr_sane + "'";
        }

    }
}
