Vue.component('dl_menu_principal',{
  data: function () {
     return {
     empresa: "Menu Principal",
     logo: 'recursos/logos/icon-384x384.png',
     tipos: [],
     clases: []
    }
},	
template: /*html*/`
  <div>

    <div class="column col-xs middle-xs center-xs">

      <div class="row center-xs middle-xs" >
          <img v-bind:src=logo style="width:30px;height:30px">
      </div>

      <div class="row center-xs middle-xs">
         <b><p style="color:orange">{{empresa}}</p></b>
      </div>

    </div>


    <div class="column col-xs middle-xs center-xs">	
      <div class="row center-xs middle-xs" >
          <b-button  v-on:click="$store.state.layout_visible = 'layout_catastro'" type="is-warning" rounded  icon-left="map-marker"  style="width:200px">
            Catastro
          </b-button>
      </div>
      <div class="row center-xs middle-xs m-2" >
          <b-button  v-on:click="abro_indicadores()" type="is-warning" rounded   icon-left="equalizer"  style="width:200px">
            Indicadores
          </b-button>
      </div>
      <div class="row center-xs middle-xs m-2" v-if="$store.state.datos_login.nivel_acceso > 14">
          <b-button  v-on:click="abro_administracion()" type="is-warning" rounded   icon-left="cog-outline"  style="width:200px">
             Administracion
          </b-button>
      </div>
      </div>



<!-- ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄-->
<!--11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111MENU MODAL ADMINISTRACION -->
<b-modal :active.sync="$store.state.modal_visible == 'Modal_Administracion'"
has-modal-card
trap-focus
:destroy-on-hide="false"
aria-role="dialog"
aria-modal>
<form action="">
<div class="modal-card" style="width: auto">
    <header class="modal-card-head">
        <p class="modal-card-title">Herramientas Administrativas</p>
    </header>
    <section class="modal-card-body">
    <div class="column col-xs middle-xs center-xs">	

    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="abro_usuarios()" type="is-warning" rounded  icon-left="account-multiple"  style="width:200px">
        Usuarios
    </b-button>
    </div>

    <div class="row center-xs middle-xs m-2" >
      <b-button type="is-warning" rounded  icon-left="database-import"  style="width:200px">
      <b-field class="file is-warning">
          <b-upload v-model="geoJSON" class="file-label" type="is-warning" rounded accept=".geojson">                
                  <span class="file-label">Importaciones</span>
          </b-upload>
      </b-field>
      </b-button>  
    </div>

    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="abro_exportacion()" type="is-warning" rounded  icon-left="database-export"  style="width:200px">
        Exportaciones
    </b-button>
    </div>

 
    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="abro_tipologias()" type="is-warning" rounded  icon-left="form-dropdown"  style="width:200px">
        Tipologias
    </b-button>
    </div>


    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="abro_proyectos()" type="is-warning" rounded  icon-left="form-dropdown"  style="width:200px">
        Proyectos
    </b-button>
    </div>

    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="abro_planos()" type="is-warning" rounded  icon-left="floor-plan"  style="width:200px">
        Planos
    </b-button>
    </div>

    <div class="row center-xs middle-xs m-2" >
    <b-button  v-on:click="exportar_log()" type="is-warning" rounded  icon-left="table-arrow-right"  style="width:200px">
        Reporte LOG
    </b-button>
    </div>


    <div class="row center-xs middle-xs m-2" >
    <b-button  v-on:click="elementos_eliminados()" type="is-warning" rounded  icon-left="recycle"  style="width:200px">
        Elementos eliminados
    </b-button>
    </div>

    <div class="row center-xs middle-xs m-2" >
    <b-button @click="$store.state.modal_visible = 'layout_configuraciones'" type="is-warning" rounded  icon-left="cog-outline"  style="width:200px">
        Configuraciones
    </b-button>
    </div>


    </div>
    </section>
    <footer class="modal-card-foot">
    <div class="row center-xs middle-xs m-2" >
      <b-button  @click="$store.state.modal_visible = ''" type='is-danger' icon-right="backburger" >
        Volver
      </b-button>
      </div>
    </footer>
</div>
</form>
</b-modal>


<!-- ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████-->
<!-- ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████-->






<!-- ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄-->
<!--11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111MENU MODAL ADMINISTRACION -->
<b-modal :active.sync="$store.state.modal_visible == 'Modal_Administracion_Exportacion'"
has-modal-card
trap-focus
:destroy-on-hide="false"
aria-role="dialog"
aria-modal>
<form action="">
<div class="modal-card" style="width: auto">
    <header class="modal-card-head">
        <p class="modal-card-title">Exportar Datos</p>
    </header>
    <section class="modal-card-body">
    <div class="column col-xs middle-xs center-xs">	

    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="exporto_tramos()" type="is-warning" rounded  icon-left="resistor-nodes"  style="width:200px">
        Tramos
    </b-button>
    </div>


    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="exporto_psingulares()" type="is-warning" rounded  icon-left="checkbox-blank-circle-outline"  style="width:200px">
        Puntos Singulares
    </b-button>
    </div>


    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="exporto_captaciones()" type="is-warning" rounded  icon-left="checkbox-blank-circle"  style="width:200px">
        Captaciones
    </b-button>
    </div>


    <div class="row center-xs middle-xs m-2" >
    <b-button v-on:click="exporto_conex_capta()" type="is-warning" rounded  icon-left="download-network-outline"  style="width:200px">
        Conex Captaciones
    </b-button>
    </div>



    </div>
    </section>
    <footer class="modal-card-foot">
    <div class="row center-xs middle-xs m-2" >
      <b-button  @click="$store.state.modal_visible = ''" type='is-danger' icon-right="backburger" >
        Volver
      </b-button>
      </div>
    </footer>
</div>
</form>
</b-modal>


<!-- ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████-->
<!-- ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████-->




<!-- ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄-->
<!--3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a33aa3a3a3a3a3a3a3a3a3a3MENU MODAL CONFIGURACIONES -->
<b-modal :active.sync="$store.state.modal_visible == 'layout_configuraciones'"
has-modal-card
trap-focus
:destroy-on-hide="false"
aria-role="dialog"
aria-modal>
<form action="">
<div class="modal-card" style="width: auto">
    <header class="modal-card-head">
        <p class="modal-card-title">Configuraciones</p>
    </header>
    <section class="modal-card-body">
    <div class="box columns is-full-mobile  p-1 m-1">
    <div class="box">
    <b-icon  icon="loupe" type="is-warning">Amplitud de Zona</b-icon>
                <div class="column is-full-mobile p-1 m-1">
                            <b-select    v-model="$store.state.factor" placeholder="Factor zona">
                            <option value = "1">Detalle</option>
                            <option value = "2">Zona cercana</option>
                            <option value = "3">Zona entorno</option>
                            <option value = "4">Zona completa</option>
                            </b-select>
                </div>                 
      </div>
    </div>
    </section>
    <footer class="modal-card-foot">
    <div class="row center-xs middle-xs m-2" >
      <b-button  @click="$store.state.modal_visible = ''" type='is-danger' icon-right="backburger" >
        Volver
      </b-button>
      </div>
    </footer>
</div>
</form>
</b-modal>



<!-- ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████-->
<!-- ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████-->


<!--__________________________________________________________________________________________modal conexiones eliminadas-->
<b-modal :active.sync="$store.state.modal_visible == 'modal_elementos_eliminados'"
has-modal-card
trap-focus
:destroy-on-hide="false"
aria-role="dialog"
aria-modal>
<form action="">
<div class="modal-card" style="width: auto">
    <header class="modal-card-head">
        <p class="modal-card-title">Reactivar elementos</p>
    </header>
    <section class="modal-card-body">
    <div class="box m-0 p-0"  v-for="(value, key) in $store.state.elementos_eliminados">
                                      <div class="box m-0 p-0">
                                        <div class="columns m-0 p-0">
                                          <div class="column is-2">
                                            <b-tooltip label="Reactivar elemento" multilined position="is-right" type="is-success is-light">
                                              <b-button class="m-1" style="width:40px" @click.native="reactivar_elemento(key)" type="is-success"  icon-right="recycle"></b-button>
                                            </b-tooltip>  
                                          </div> 
                                          <div class="column  bg-white rounded m-2 p-2" ><b>Id:</b> {{value.id}} <br><b>Tipo:</b> {{value.tipo}}<br><b>Calle:</b> {{value.calle}} </div>
                                        </div>
                                      </div>
                      </div>
    </section>
    <footer class="modal-card-foot">
    <div class="column start-xs" >
      <b-button  @click="$store.state.modal_visible = ''" type='is-warning' icon-right="backburger" style="float:left">
        Volver
      </b-button>
      </div>
    </footer>
</div>
</form>
</b-modal>

<!-- ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄-->





</div>
`,
computed: {
          geoJSON: {
            get: function () {
            },
            set: function (valor) {
             var padre = this;
             var mensaje = '';
             var tope = 0.3;
             if (valor == null)
             {
              mensaje = 'No es un formato válido';
              this.$buefy.toast.open({duration: 5000, message: mensaje});
              return false;
             }
              valor.arrayBuffer().then(buff => {
                  var str = new TextDecoder().decode(buff)
                  str.replace(/[\n"\&\r\t\b\f]/g, '\\$&');
                  try {
                    var json = JSON.parse(str);
                    if (json.features !== undefined)
                    {
                    var listafeatures = json.features.filter(function (el) {return el.type == "Feature";});
                    }
                    else if (json.feature !== undefined)
                    {
                      var listafeatures = json.feature;
                    }
                      }
                    catch (err) {
                            mensaje = 'No es un formato válido';
                            this.$buefy.toast.open({duration: 5000, message: mensaje});
                            return false;
                    }  
                    //listafeatures = listafeatures.slice(0,10);
                    //determino tipo de elemementos a importar ____________________________________________________________
                    //_____________________________________________________________________________________________________
                    if(mensaje != '')
                    {
                      this.$buefy.toast.open({duration: 5000, message: mensaje});
                    }
                    else
                    {
                          var tipo = '';
                          if (listafeatures[0].geometry.type == 'LineString' && listafeatures[0].properties.ZARRIBA !== undefined && listafeatures[0].properties.ZABAJO !== undefined)
                          {tipo = "tramos1"}
                          else if (listafeatures[0].geometry.type == 'MultiLineString' && listafeatures[0].properties.ZARRIBA !== undefined && listafeatures[0].properties.ZABAJO !== undefined)
                          {tipo = "tramos2"}
                          else if (listafeatures[0].geometry.type == 'Point')
                          {
                            if (listafeatures[0].properties.COTA !== undefined && listafeatures[0].properties.TIPO_PTO !== undefined)
                            {tipo = "psingulares1"}
                            else if (listafeatures[0].properties.TIPO !== undefined && listafeatures[0].properties.TIPOBOCA !== undefined)
                            {tipo = "captaciones1"}
                          }
                          else if (listafeatures[0].geometry.type == 'MultiPoint')
                          {    
                          if (listafeatures[0].properties.COTA !== undefined && listafeatures[0].properties.TIPO_PTO !== undefined)
                            {tipo = "psingulares2"}
                            else if (listafeatures[0].properties.TIPO !== undefined && listafeatures[0].properties.TIPOBOCA !== undefined)
                            {tipo = "captaciones2"}
                          }
                          (tipo == '')? mensaje = 'Formato inadecuado. No es posible identificar los elementos': mensaje = '';
                    }
                    //obtengo extensión y sistema de coordenadas __________________________________________________________
                    //genero lista depurada de coordenadas y propiedades
                    //_____________________________________________________________________________________________________
                    if(mensaje != '')
                    {
                      this.$buefy.toast.open({duration: 5000, message: mensaje});
                    }
                    else
                    {
                          let listax = [];
                          let listay = [];
                          var lista_geometrias = [];
                          var lista_puntos = [];
                          var lista_propiedades = [];
                          for (let i = 0; i<listafeatures.length; i++)
                          {
                              if (tipo == 'tramos2' || tipo == 'psingulares2' || tipo == 'captaciones2')
                              {
                                lista_puntos = listafeatures[i].geometry.coordinates[0];
                              }
                              else
                              {
                                lista_puntos = listafeatures[i].geometry.coordinates;
                              }
                              if (tipo == 'tramos1' || tipo == 'tramos2')
                              {
                                  for (let j = 0; j < lista_puntos.length; j++)
                                  {     
                                      listax.push(lista_puntos[j][0]);
                                      listay.push(lista_puntos[j][1]);
                                  }    
                              }
                              else if (tipo == 'captaciones1' || tipo == 'captaciones2' || tipo == 'psingulares1' || tipo == 'psingulares2')                    
                              {
                                  listax.push(lista_puntos[0]);
                                  listay.push(lista_puntos[1]);
                              }
                              lista_geometrias.push(lista_puntos);
                              lista_propiedades.push(listafeatures[i].properties);
                          } 
                            var sistema = '';
                            var maxx = Math.max(...listax);
                            var maxy = Math.max(...listay);
                            var minx = Math.min(...listax);
                            var miny = Math.min(...listay);
                             if (minx > 550000 && maxx < 590000 && miny > 6125000 && maxy < 6160000){sistema = 'UTM';} 
                            if (minx > -56.45 && maxx < -56 && miny > -34.98 && maxy < -34.70){sistema = 'LL';} 
                            (sistema == '')?mensaje='No es correcto el sistema de coordenadas. Debe ser LL84 o UTM21S':mensaje = '';
                            if (sistema == 'UTM')
                            {
                              let lista_provisoria = lista_geometrias.slice();
                              lista_geometrias = [];
                              for (let i=0;i<lista_provisoria.length;i++)
                              {
                                let elemento = [];
                                if (tipo == 'tramos1' || tipo == 'tramos2')
                                {
                                      for (let j=0;j<lista_provisoria[i].length;j++)
                                          {
                                            let v1 = dl_coordenadas.utm2ll(lista_provisoria[i][j][0],lista_provisoria[i][j][1]);
                                            elemento.push([v1.lon,v1.lat]);
                                          }
                                }        
                                else
                                {
                                     let v1 = dl_coordenadas.utm2ll(lista_provisoria[i][0],lista_provisoria[i][1]);
                                     elemento.push([v1.lon,v1.lat]);
                                }
                                lista_geometrias.push(elemento);
                              }
                            }
                   }
                   // consulto base de datos para evitar duplicaciones______________________________________________
                   // ______________________________________________________________________________________________
                   if(mensaje != '')
                   {
                     this.$buefy.toast.open({duration: 5000, message: mensaje});
                   }
                   else
                   {
                    app.chequeo_conexion();
                    if (store.state.hayconexion == true) {
                      const cargando_algo = padre.$buefy.loading.open({ containter: null });
                      if(sistema == 'UTM')
                      {
                        let v1 = dl_coordenadas.utm2ll(minx,miny);
                        let v2 = dl_coordenadas.utm2ll(maxx,maxy);
                        maxx = v2.lon;
                        minx = v1.lon;
                        maxy = v2.lat;
                        miny = v1.lat;
                      }                             
                      var fd = new FormData();
                      fd.append("maxx", maxx);
                      fd.append("maxy", maxy);
                      fd.append("minx", minx);
                      fd.append("miny", miny);
                      var getUrl = window.location;
                      var baseUrl = getUrl.protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
                      var phpfile = baseUrl + '/php/cargo_red_control_importacion.php';
                      var xhr = new XMLHttpRequest();
                      xhr.open('POST', phpfile, true);
                      xhr.onload = function () {
                        var data = JSON.parse(this.response);
                        var hay_duplicados = false;

                        store.state.adm_tipos = data[4];
                        store.state.adm_clases = data[5];
                        var tramos_existentes = data[0];
                        var calles_existentes = data[3];
                        var psingulares_existentes = data[1];
                        var captaciones_existentes = data[2];
                        //TRAMOS TRAMOS TRAMOS TRAMOS  ______________________________________________________________
                        //chequeo duplicados en tramos ______________________________________________________________
                        if(tipo == 'tramos1' || tipo == 'tramos2')
                        {       
                                        for (let i=0;i<lista_geometrias.length;i++)
                                        {
                                          var prop_tramo_zarriba = 0, prop_tramo_zabajo = 0, prop_tramo_tipotra = 0, prop_tramo_tiposec = 0;
                                          (lista_propiedades[i].ZARRIBA != undefined)? prop_tramo_zarriba = lista_propiedades[i].ZARRIBA : prop_tramo_zarriba = 0;
                                          (lista_propiedades[i].ZABAJO  != undefined)? prop_tramo_zabajo = lista_propiedades[i].ZABAJO : prop_tramo_zabajo = 0;
                                          (lista_propiedades[i].TIPOTRA != undefined)? prop_tramo_tipotra = lista_propiedades[i].TIPOTRA : prop_tramo_tipotra = 0;
                                          (lista_propiedades[i].TIPOSEC != undefined)? prop_tramo_tiposec = lista_propiedades[i].TIPOSEC : prop_tramo_tiposec = 0;
                                          for (let j=0;j<tramos_existentes.length;j++)
                                          {
                                            let p1ini = lista_geometrias[i][0];
                                            let p1fin = lista_geometrias[i][lista_geometrias[i].length - 1];
                                            let dist1 = dl_geometria.dl_distancia_metros_de_geograficas(p1ini[1],p1ini[0],tramos_existentes[j].lat1,tramos_existentes[j].lon1);
                                            let dist2 = dl_geometria.dl_distancia_metros_de_geograficas(p1fin[1],p1fin[0],tramos_existentes[j].lat2,tramos_existentes[j].lon2); 
                                            if (dist1 < tope && dist2 < tope)
                                            {
                                              hay_duplicados = true;
                                              mensaje = 'Existen elementos duplicados. Se interrumpe importación.';
                                            }
                                          } 
                                        } 
                                        // si no hay duplicados empiezo carga_________________________________________________________
                                        if(mensaje != '')
                                        {
                                          cargando_algo.close();
                                          padre.$buefy.toast.open({duration: 5000, message: mensaje});
                                        }
                                        else
                                        {
                                          var sql = ''; 
                                          for (let i=0;i<lista_geometrias.length;i++)
                                          {
                                            // busco puntos singulares que puedan coincidir con vertices de tramos______________________
                                            var z_tapa_aa = 0, z_tapa_ab = 0, id_psig_aa = 0, id_psig_ab = 0;
                                            for (let j=0;j<psingulares_existentes.length;j++)
                                            {                              
                                              var p1ini = lista_geometrias[i][0];
                                              var p1fin = lista_geometrias[i][lista_geometrias[i].length - 1];
                                              let dist1 = dl_geometria.dl_distancia_metros_de_geograficas(p1ini[1],p1ini[0],psingulares_existentes[j].lat1,psingulares_existentes[j].lon1);
                                              let dist2 = dl_geometria.dl_distancia_metros_de_geograficas(p1fin[1],p1fin[0],psingulares_existentes[j].lat1,psingulares_existentes[j].lon1); 
                                              if (dist1 < tope){z_tapa_aa = psingulares_existentes[j].z_tapa;
                                              id_psig_aa = psingulares_existentes[j].id_psingular;
                                              }
                                              if (dist2 < tope){z_tapa_ab = psingulares_existentes[j].z_tapa;
                                                id_psig_ab = psingulares_existentes[j].id_psingular;
                                              }
                                            }                                    
                                            var prof_aa = 0;
                                            (prop_tramo_zarriba != 0 && z_tapa_aa != 0)? prof_aa = z_tapa_aa - prop_tramo_zarriba : prof_aa = 0;
                                            var prof_ab = 0;
                                            (prop_tramo_zabajo != 0 && z_tapa_ab != 0)? prof_ab = z_tapa_ab - prop_tramo_zabajo : prof_ab = 0;
                                            (prof_aa >= 0 && prof_aa <= 20)?prof_aa = prof_aa:prof_aa =0;
                                            (prof_ab >= 0 && prof_ab <= 20)?prof_ab = prof_ab:prof_ab =0;
                                            let menor_distancia = 9999;
                                            var calle = '', via = 0;
                                            for (let k=0;k<calles_existentes.length;k++)
                                            {
                                              let pmedio_calle_lat = (Number(calles_existentes[k].lat1) + Number(calles_existentes[k].lat2)) / 2.0;
                                              let pmedio_calle_lon = (Number(calles_existentes[k].lon1) + Number(calles_existentes[k].lon2)) / 2.0;
                                              let pmedio_tramo_lon = (p1ini[0] + p1fin[0]) / 2.0;
                                              let pmedio_tramo_lat = (p1ini[1] + p1fin[1]) / 2.0;
                                              let dist = dl_geometria.dl_distancia_metros_de_geograficas(pmedio_tramo_lat, pmedio_tramo_lon, pmedio_calle_lat, pmedio_calle_lon);
                                              if (dist < menor_distancia)
                                              {
                                                menor_distancia = dist;
                                                calle = calles_existentes[k].calle;
                                                via = calles_existentes[k].via;
                                              }
                                            }
                                            var tipotramo = 0;
                                            let tipotra = prop_tramo_tipotra;
                                            if (tipotra != 0)
                                            {
                                            tipotra = tipotra.trim();
                                            tipotra = tipotra.toUpperCase();
                                              for (let s = 0; s < store.state.adm_tipos.length; s++) {
                                                let tipotra2 = store.state.adm_tiposs[s]["codigo"];
                                                if (tipotra2 != undefined)
                                                {
                                                tipotra2 = tipotra2.trim();
                                                tipotra2 = tipotra2.toUpperCase();
                                                if (tipotra2 == tipotra &&  store.state.adm_tipos[s]["elemento"] == 'cat_tramos' ) {
                                                  tipotramo = store.state.adm_tipos[s]["id"];
                                                }
                                                }
                                              }
                                            }
                                            var tiposeccion = 0;
                                            let tiposec = prop_tramo_tiposec;
                                            if (tiposec != 0)
                                            {
                                                  tiposec = tiposec.trim();
                                                  tiposec = tiposec.toUpperCase();
                                                  for (let s = 0; s < store.state.adm_clases.length; s++) {
                                                    let tiposec2 = store.state.adm_clases[s]["codigo"];
                                                    if (tiposec2 != undefined)
                                                    {
                                                    tiposec2 = tiposec2.trim();
                                                    tiposec2 = tiposec2.toUpperCase();
                                                    if (tiposec2 == tiposec &&  store.state.adm_clases[s]["elemento"] == 'cat_tramos' ) {
                                                      tiposeccion = store.state.adm_clases[s]["id"];
                                                    }
                                                    }
                                                   }
                                            }
                                            let longitud = dl_geometria.dl_largo_en_metros_de_geograficas2(lista_geometrias[i]);
                                            let historias = [];
                                            let fechaactual = app.obtengo_fecha(new Date());
                                            let historia_array = { "descripcion": "NUEVO TRAMO POR IMPORTACION", "fecha": fechaactual, "usuario": store.state.datos_login.usuario };
                                            historias.push(historia_array);
                                            var historia = JSON.stringify(historias);
                                            sql += "INSERT INTO cat_tramos (SHAPE, elemred, id_psig_aa, id_psig_ab, zarriba, zabajo, z_tapa_aa, z_tapa_ab, prof_aa, prof_ab, longitud,";
                                            sql += "ccz, calle, via, historial,alta_fuente,alta_fecha,etapa,tiposec,tipotra,dim1,dim2,dim3,dim4,contrato,proyecto,material,accion) VALUES ";
                                            sql += "(GEOMFROMTEXT('LINESTRING(";
                                            for (let s = 0; s < lista_geometrias[i].length; s++) {
                                              sql += lista_geometrias[i][s][0] + " " + lista_geometrias[i][s][1] + ",";
                                            }
                                            sql = sql.slice(0, -1);
                                            sql += ")'),";
                                            sql += "(SELECT MAX(elemred) + 1 FROM cat_tramos CAT)," + id_psig_aa + "," + id_psig_ab + ",";
                                            sql += prop_tramo_zarriba + "," + prop_tramo_zabajo + "," + z_tapa_aa + "," + z_tapa_ab + "," + prof_aa + "," + prof_ab + "," + longitud + ",'" + "" + "','";
                                            sql += calle + "'," + via + ",'" + historia + "','INGRESO POR IMPORTACION','" + fechaactual + "','" + store.state.datos_por_defecto.importacion_etapa;
                                            sql += "'," + tiposeccion + "," + tipotramo;
                                            sql += "," + store.state.datos_por_defecto.tramo_dim1 + "," + store.state.datos_por_defecto.tramo_dim2;           
                                            sql += "," + store.state.datos_por_defecto.tramo_dim3 + "," + store.state.datos_por_defecto.tramo_dim4;            
                                            sql += "," + store.state.datos_por_defecto.contrato + "," + store.state.datos_por_defecto.proyecto; 
                                            sql += ",'" + store.state.datos_por_defecto.tramo_material + "','Sin asignar');";
                                          }
                                          sql.slice(0,-1);
                                                var fd2 = new FormData();
                                                fd2.append("sql", sql);
                                                fd2.append("usuario",store.state.datos_login.usuario);
                                                var getUrl2 = window.location;
                                                var baseUrl2 = getUrl2.protocol + "//" + getUrl2.host + "/" + getUrl2.pathname.split('/')[1];
                                                var phpfile2 = baseUrl2 + '/php/nuevos_tramos_importacion.php';
                                                var xhr2 = new XMLHttpRequest();
                                                xhr2.open('POST', phpfile2, true);
                                                xhr2.onload = function () {
                                                  cargando_algo.close();
                                                  padre.$buefy.toast.open({duration: 7000, message: 'Se importaron  ' + lista_geometrias.length + ' nuevos tramos al modelo'});
                                                };
                                                xhr2.send(fd2);
                                       }
                        }
                        //PSINGULARES PSINGULARES PSINGULARES ______________________________________________________________
                        //chequeo duplicados en psingulares   ______________________________________________________________
                        if(tipo == 'psingulares1' || tipo == 'psingulares2')
                        {
                          for (let i=0;i<lista_geometrias.length;i++)
                          {
                            for (let j=0;j<psingulares_existentes.length;j++)
                            {
                              let p1 = lista_geometrias[i][0];
                              let dist = dl_geometria.dl_distancia_metros_de_geograficas(p1[1],p1[0],psingulares_existentes[j].lat1,psingulares_existentes[j].lon1);
                              if (dist < tope)
                              {
                                hay_duplicados = true;
                                mensaje = 'Existen elementos duplicados. Se interrumpe importación.';
                              }
                            } 
                          } 
                          // si no hay duplicados empiezo carga_________________________________________________________
                          if(mensaje != '')
                          {
                            cargando_algo.close();
                            padre.$buefy.toast.open({duration: 5000, message: mensaje});
                          }
                          else
                          {                           
                            var sql = '';  
                            var lista_tramos_modificados = [];              
                            for (let i=0;i<lista_geometrias.length;i++)
                            {
                              var centro_psig_lat = lista_geometrias[i][0][1];
                              var centro_psig_lon = lista_geometrias[i][0][0];
                              var prop_psingular_cota = 0, prop_psingular_tipopto = '', prop_psingular_cota_fdo = 0;
                              (lista_propiedades[i].COTA != undefined)? prop_psingular_cota = lista_propiedades[i].COTA : prop_psingular_cota = 0;
                              (lista_propiedades[i].TIPO_PTO  != undefined)? prop_psingular_tipopto = lista_propiedades[i].TIPO_PTO : prop_psingular_tipopto = 0;
                              (lista_propiedades[i].COTA_FDO  != undefined)? prop_psingular_cota_fdo = lista_propiedades[i].COTA_FDO : prop_psingular_cota_fdo = 0;
                              // busco tramos que puedan coincidir con puntos_singulares______________________
                              var id_tramo = 0, cota_tapa = 0, tipo_cota = '';
                              var tramos_modificados = []; 
                              for (let j=0;j<tramos_existentes.length;j++)
                              {                              
                                let dist1 = dl_geometria.dl_distancia_metros_de_geograficas(centro_psig_lat,centro_psig_lon,tramos_existentes[j].lat1,tramos_existentes[j].lon1);
                                let dist2 = dl_geometria.dl_distancia_metros_de_geograficas(centro_psig_lat,centro_psig_lon,tramos_existentes[j].lat2,tramos_existentes[j].lon2);
                                if (dist1 < tope){
                                  id_tramo = tramos_existentes[j].id_tramo;
                                  cota_tapa = prop_psingular_cota;
                                  tipo_cota = 'aa';
                                  let elemento = {tipo:tipo_cota,id_tramo:id_tramo,cota_tapa:cota_tapa}; 
                                  tramos_modificados.push(elemento); 
                                }
                                if (dist2 < tope){
                                  id_tramo = tramos_existentes[j].id_tramo;
                                  cota_tapa = prop_psingular_cota;
                                  tipo_cota = 'ab';
                                  let elemento = {tipo:tipo_cota,id_tramo:id_tramo,cota_tapa:cota_tapa}; 
                                  tramos_modificados.push(elemento); 
                                }
                              }  
                              lista_tramos_modificados.push(tramos_modificados);                  
                              var profundidad = 0;
                              (prop_psingular_cota != 0 && prop_psingular_cota_fdo != 0)? profundidad = prop_psingular_cota - prop_psingular_cota_fdo: profundidad = 0;
                              let menor_distancia = 9999;
                              var calle = '', via = 0;
                              for (let k=0;k<calles_existentes.length;k++)
                              {
                                let pmedio_calle_lat = (Number(calles_existentes[k].lat1) + Number(calles_existentes[k].lat2)) / 2.0;
                                let pmedio_calle_lon = (Number(calles_existentes[k].lon1) + Number(calles_existentes[k].lon2)) / 2.0;
                                let dist = dl_geometria.dl_distancia_metros_de_geograficas(centro_psig_lat, centro_psig_lon, pmedio_calle_lat, pmedio_calle_lon);
                                if (dist < menor_distancia)
                                {
                                  menor_distancia = dist;
                                  calle = calles_existentes[k].calle;
                                  via = calles_existentes[k].via;
                                }
                              }
                              var tipopunto = 0;
                              let tipopto = prop_psingular_tipopto;
                              if (tipopto != '')
                              {
                              tipopto = tipopto.trim();
                              tipopto = tipopto.toUpperCase();
                                for (let s = 0; s < store.state.adm_tipos.length; s++) {
                                  let tipopto2 = store.state.adm_tipos[s]["codigo"];
                                  if (tipopto2 != undefined)
                                  {
                                  tipopto2 = tipopto2.trim();
                                  tipopto2 = tipopto2.toUpperCase();
                                  if (tipopto2 == tipopto &&  store.state.adm_tipos[s]["elemento"] == 'cat_psingulares' ) {
                                    tipopunto = store.state.adm_tipos[s]["id"];
                                  }
                                  }
                                }
                              }   
                              let pstramos_array = [];
                              for (let s = 0; s < tramos_modificados.length; s++) {
                                pstramos_array.push(tramos_modificados[s].id_tramo);
                              }
                              let pstramos = JSON.stringify(pstramos_array);
                              let historias = [];
                              let fechaactual = app.obtengo_fecha(new Date());
                              let historia_array = { "descripcion": "NUEVO PUNTO SINGULAR POR IMPORTACION", "fecha": fechaactual, "usuario": store.state.datos_login.usuario };
                              historias.push(historia_array);
                              var historia = JSON.stringify(historias);
                              sql += "INSERT INTO cat_psingulares (SHAPE, elem_red, ccz, calle, via, tramos, z_tapa, z_ab, historial, alta_fuente, alta_fecha, activo, etapa, tipo, profundidad, contrato, proyecto) VALUES (";
                              sql += "GEOMFROMTEXT('POINT(" + centro_psig_lon + " " + centro_psig_lat + ")'),";
                              sql += "(SELECT MAX(elem_red) + 1 FROM cat_psingulares CAT),'','" + calle + "'," + via + ",'" + pstramos + "',";
                              sql += prop_psingular_cota + "," + prop_psingular_cota_fdo + ",'";
                              sql += historia + "','INGRESO POR IMPORTACION','" + fechaactual + "',1,'" + store.state.datos_por_defecto.importacion_etapa;
                              sql += "'," + tipopunto + "," + profundidad + ",";
                              sql += store.state.datos_por_defecto.contrato + "," + store.state.datos_por_defecto.proyecto + ");";
                            

                              if((i > 0 && (i % 50 ) == 0) || i == lista_geometrias.length - 1)
                              {
                                setTimeout(function(){
                                  sql = sql.slice(0,-1);
                                  var fd2 = new FormData();
                                  fd2.append("sql", sql);
                                  sql = '';
                                  fd2.append("tramos", JSON.stringify(lista_tramos_modificados));
                                  lista_tramos_modificados = [];
                                  fd2.append("usuario",store.state.datos_login.usuario);
                                  var getUrl2 = window.location;
                                  var baseUrl2 = getUrl2.protocol + "//" + getUrl2.host + "/" + getUrl2.pathname.split('/')[1];
                                  var phpfile2 = baseUrl2 + '/php/nuevos_psingulares_importacion.php';
                                  var xhr2 = new XMLHttpRequest();
                                  xhr2.open('POST', phpfile2, true);
                                  xhr2.onload = function () {
                                    cargando_algo.close();
                                    if (padre.i == lista_geometrias.length - 1)
                                    {
                                    padre.$buefy.toast.open({duration: 7000, message: 'Se importaron  ' + lista_geometrias.length + ' nuevos puntos singulares al modelo'});
                                    }
                                  };
                                  xhr2.send(fd2);  
                                }, 20000);   
                              }       
                                  
                            }      
                          }
                        }  
                        //CAPTACIONES CAPTACIONES CAPTACIONES ______________________________________________________________
                        //chequeo duplicados en captaciones   ______________________________________________________________
                        if(tipo == 'captaciones1' || tipo == 'captaciones2')
                        {
                          for (let i=0;i<lista_geometrias.length;i++)
                          {
                            for (let j=0;j<captaciones_existentes.length;j++)
                            {
                              let p1 = lista_geometrias[i][0];
                              let dist = dl_geometria.dl_distancia_metros_de_geograficas(p1[1],p1[0],captaciones_existentes[j].lat1,captaciones_existentes[j].lon1);
                              if (dist < tope)
                              {
                                hay_duplicados = true;
                                mensaje = 'Existen elementos duplicados. Se interrumpe importación.';
                              }
                            } 
                          } 
                          // si no hay duplicados empiezo carga_________________________________________________________
                          if(mensaje != '')
                          {
                            cargando_algo.close();
                            padre.$buefy.toast.open({duration: 5000, message: mensaje});
                          }
                          else
                          {                           
                            var sql = '';    
                            var sql_conex = '';          
                            for (let i=0;i<lista_geometrias.length;i++)
                            {
                              var centro_capta_lat = lista_geometrias[i][0][1];
                              var centro_capta_lon = lista_geometrias[i][0][0];
                              var prop_captacion_tipo = '', prop_captacion_tipoboca = 0;
                              (lista_propiedades[i].TIPO  != undefined)? prop_captacion_tipo = lista_propiedades[i].TIPO : prop_captacion_tipo = '';
                              (lista_propiedades[i].TIPOBOCA  != undefined)? prop_captacion_tipoboca = lista_propiedades[i].TIPOBOCA : prop_captacion_tipoboca = 0;
                              // busco tramos que puedan coincidir con puntos_singulares______________________
                              let menor_distancia = 99999;
                              var id_tramo_colector = 0;
                              var lat_en_colector = 0;
                              var lon_en_colector = 0;
                              var colector_vinculado = false;
                              for (var s = 0; s < tramos_existentes.length; s++) {
                                var coordenadas = '';
                                var geom_tramo = tramos_existentes[s].geom;
                                geom_tramo = geom_tramo.replace(/[A-z()]/g, '');
                                let puntos = geom_tramo.split(",");
                                for(let i = 0;i<puntos.length;i++)
                                        {  
                                            let punto = puntos[i];
                                            let puntoarr = punto.split(' ');
                                            coordenadas += puntoarr[0] + " " + puntoarr[1] + ",";
                                 }
                                coordenadas = coordenadas.slice(0, -1);
                                let res_dist = dl_geometria.dl_punto_cercano_linestring(centro_capta_lat,centro_capta_lon,coordenadas)  
                                if (res_dist.distancia < menor_distancia && res_dist.distancia < 30) {
                                  id_tramo_colector = tramos_existentes[s].id_tramo;
                                  lat_en_colector = res_dist.lat;
                                  lon_en_colector = res_dist.lon;
                                  menor_distancia = res_dist.distancia;
                                  colector_vinculado = tramos_existentes[s];
                                }
                              }
                              var zencol = 0.00;
                              if (colector_vinculado == false)
                              {
                                lat_en_colector = centro_capta_lat + 0.00005;
                                lon_en_colector = centro_capta_lon;
                              }
                              else
                              {
                                let zarriba = colector_vinculado.zarriba;
                                let zabajo = colector_vinculado.zabajo;
                                let largo_tramo = colector_vinculado.longitud;
                                let distancia_abajo = dl_geometria.dl_distancia_metros_de_geograficas(colector_vinculado.lat2,colector_vinculado.lon2, lat_en_colector,lon_en_colector);
                                if (largo_tramo > 0 && zarriba > 0 && zabajo > 0 && zarriba > zabajo && distancia_abajo >= 0 && distancia_abajo <= largo_tramo) {
                                  let zres = 0;
                                  let fac1 = distancia_abajo / largo_tramo;
                                  let fac2 = zarriba - zabajo;
                                  zres = Number(zabajo) + Number(fac2 * fac1);
                                  zres = String(zres);
                                  zencol = zres.substring(0, 5);
                                }
                              }
                              let largo_conex = dl_geometria.dl_distancia_metros_de_geograficas(centro_capta_lat,centro_capta_lon, lat_en_colector,lon_en_colector);
                             
                              var calle = '', via = 0;
                              for (let k=0;k<calles_existentes.length;k++)
                              {
                                let pmedio_calle_lat = (Number(calles_existentes[k].lat1) + Number(calles_existentes[k].lat2)) / 2.0;
                                let pmedio_calle_lon = (Number(calles_existentes[k].lon1) + Number(calles_existentes[k].lon2)) / 2.0;
                                let dist = dl_geometria.dl_distancia_metros_de_geograficas(centro_capta_lat, centro_capta_lon, pmedio_calle_lat, pmedio_calle_lon);
                                if (dist < menor_distancia)
                                {
                                  menor_distancia = dist;
                                  calle = calles_existentes[k].calle;
                                  via = calles_existentes[k].via;
                                }
                              }
                              var tipopunto = 0;
                              let tipopto = prop_captacion_tipo;
                              if (tipopto != '')
                              {
                              tipopto = tipopto.trim();
                              tipopto = tipopto.toUpperCase();
                                for (let i = 0; i < store.state.adm_tipos.length; i++) {
                                  let tipopto2 = store.state.adm_tipos[i]["codigo"];
                                  if (tipopto2 != undefined)
                                  {
                                  tipopto2 = tipopto2.trim();
                                  tipopto2 = tipopto2.toUpperCase();
                                  if (tipopto2 == tipopto &&  store.state.adm_tipos[i]["elemento"] == 'cat_captaciones' ) {
                                    tipopunto = store.state.adm_tipos[i]["id"];
                                  }
                                  }
                                }
                              }
                              var tiposeccion = 0;
                              let tiposec = prop_captacion_tipoboca;
                              switch (tiposec)
                              {
                                case 1: tiposeccion = 24;
                                break;
                                case 2: tiposeccion = 25;
                                break;
                                case 3: tiposeccion = 26;
                                break;
                                case 4: tiposeccion = 27;
                                break;
                                default: tiposeccion = 0;
                              }
 

                              let historias = [];
                              let fechaactual = app.obtengo_fecha(new Date());
                              let historia_array = { "descripcion": "NUEVA CONEXION DE CAPTACION POR IMPORTACION", "fecha": fechaactual, "usuario": store.state.datos_login.usuario };
                              historias.push(historia_array);
                              var historia = JSON.stringify(historias);
                              sql_conex += "INSERT INTO cat_conex_capt (SHAPE, id, id_tramo, longitud, historial, alta_fuente, alta_fecha, activo, etapa, tipo,material,seccion,profundidad,contrato,proyecto) VALUES (";
                              sql_conex += "GEOMFROMTEXT('LINESTRING(" + centro_capta_lon + " " + centro_capta_lat + "," + lon_en_colector + " " + lat_en_colector + ")'),";
                              sql_conex += "(SELECT MAX(id) + 1 FROM cat_conex_capt CAT)," + id_tramo_colector + "," + largo_conex + ",'" ;
                              sql_conex +=  historia + "','INGRESO CON APLICACION DE CATASTRO','" + fechaactual + "',1,'";
                              sql_conex +=  store.state.datos_por_defecto.importacion_etapa + "'," + store.state.datos_por_defecto.conex_capta_tipo + ",'" + store.state.datos_por_defecto.conex_capta_material;
                              sql_conex +=  "'," + store.state.datos_por_defecto.conex_capta_seccion + "," + store.state.datos_por_defecto.conex_capta_profundidad + ",";
                              sql_conex +=  store.state.datos_por_defecto.contrato + "," + store.state.datos_por_defecto.proyecto + ");";
                              historias = [];
                              fechaactual = app.obtengo_fecha(new Date());
                              historia_array = { "descripcion": "NUEVA CAPTACION POR IMPORTACION", "fecha": fechaactual, "usuario": store.state.datos_login.usuario };
                              historias.push(historia_array);
                              var historia2 = JSON.stringify(historias);
                              sql += "INSERT INTO cat_captaciones (SHAPE, elem_red, ccz, calle, via, historial, alta_fuente, alta_fecha, activo, id_tramo, z_col, etapa, tipo, clase, contrato, proyecto) VALUES (";
                              sql += "GEOMFROMTEXT('POINT(" + centro_capta_lon + " " + centro_capta_lat + ")'),";
                              sql += "(SELECT MAX(elem_red) + 1 FROM cat_captaciones CAT),'','" + calle + "'," + via + ",'";
                              sql += historia2 + "','INGRESO CON APLICACION DE CATASTRO','" + fechaactual + "',1," + id_tramo_colector + "," + zencol;
                              sql += ",'"  + store.state.datos_por_defecto.importacion_etapa + "'," + tipopunto + "," + tiposeccion;
                              sql += "," + store.state.datos_por_defecto.contrato + "," + store.state.datos_por_defecto.proyecto + ");";
                            }
                            sql.slice(0,-1);
                            sql_conex.slice(0,-1);
                                  var fd2 = new FormData();
                                  fd2.append("sql", sql);
                                  fd2.append("sql_conex", sql_conex);
                                  fd2.append("usuario",store.state.datos_login.usuario);
                                  var getUrl2 = window.location;
                                  var baseUrl2 = getUrl2.protocol + "//" + getUrl2.host + "/" + getUrl2.pathname.split('/')[1];
                                  var phpfile2 = baseUrl2 + '/php/nuevas_captaciones_importacion.php';
                                  var xhr2 = new XMLHttpRequest();
                                  xhr2.open('POST', phpfile2, true);
                                  xhr2.onload = function () {
                                    cargando_algo.close();
                                    padre.$buefy.toast.open({duration: 7000, message: 'Se importaron  ' + lista_geometrias.length + ' nuevas captaciones al modelo'});
                                  };
                                  xhr2.send(fd2);    
                            }
                        }              
                        //fin de procesos de carga__________________________________________________________________________________________
                        //fin de procesos de carga__________________________________________________________________________________________
                        //fin de procesos de carga__________________________________________________________________________________________
                      };
                      xhr.send(fd);
                    }
                    else {
                      this.$buefy.toast.open({duration: 5000, message: 'No es consultar los datos por falta de conexión. Intente nuevamente'});
                    }
                   }
                });
                store.state.modal_visible = '';
            },
          },
          elem_eliminados:{
          get:  function () {
              resultado = store.state.elementos_eliminados;
              return resultado; 
            },
            set:  function (valor) {
              store.state.elementos_eliminados = valor;
            }
 }
},
methods:
{
  elementos_eliminados: function(){
    if (store.state.elementos_eliminados.length == 0)
    {
      app.chequeo_conexion();
      if (store.state.hayconexion == true) {
        var getUrl = window.location;
        var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
        var phpfile = baseUrl + '/php/elementos_eliminados.php';
        var xhr = new XMLHttpRequest();	
        xhr.open('GET',phpfile,true);
        xhr.onload = function() {
                  var data = JSON.parse(this.response);
                  store.state.elementos_eliminados = data;
                  store.state.modal_visible = 'modal_elementos_eliminados';
                                };
        xhr.send();
      }//fin de bloque chequeo conexion
      else
      {
        this.$buefy.toast.open('No es posible modificar los datos por falta de conexión. Intente nuevamente'); 
      }
    } 
    else 
    {
      store.state.modal_visible = 'modal_elementos_eliminados';
    }
  },
  reactivar_elemento: function(e){    
    var padre = this;
    app.chequeo_conexion();
   if (store.state.hayconexion == true) {
     const cargando_algo =  this.$buefy.loading.open({containter: null});
     let id_con = store.state.elementos_eliminados[e].id;
     let historia = store.state.elementos_eliminados[e].historial;
     let tipo = store.state.elementos_eliminados[e].tipo;
     var fd = new FormData();
     fd.append("id",id_con);
     fd.append("tipo",tipo);
     fd.append("historia",historia);
     fd.append("usuario", store.state.datos_login.usuario);
     fd.append("revisar", store.state.datos_login.revisar);
     var getUrl = window.location;
     var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
     var phpfile = baseUrl + '/php/reactivar_elemento.php';
     var xhr = new XMLHttpRequest();	
     xhr.open('POST',phpfile,true);
     xhr.onload = function() {
               var data = JSON.parse(this.response);
               if (data.mensaje == 'ok')
               {
               store.state.elementos_eliminados = store.state.elementos_eliminados.filter(function (el) {return el != store.state.elementos_eliminados[e]});
               store.state.modal_visible = 'modal_elementos_eliminados'
               cargando_algo.close();
               padre.$buefy.toast.open('Se reactivo elemento exitosamente'); 
               }
                             };
     xhr.send(fd);
   }//fin de bloque chequeo conexion
   else
   {
     this.$buefy.toast.open('No es posible modificar los datos por falta de conexión. Intente nuevamente'); 
   }
  
},
  abro_tipologias: function(){
    //store.state.layout_visible = 'layout_administracion';
    if (store.state.datos_login.nivel_acceso > 19) 
    {
      const cargando_algo = this.$buefy.loading.open({ containter: null });
      app.chequeo_conexion();
      if (store.state.hayconexion == true) { // si hay conexion........................................................................
        //consulto base de datos
        var fd = new FormData();
        var getUrl = window.location;
        var baseUrl = getUrl.protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
        var phpfile = baseUrl + '/php/cargo_datos_administrativos.php';
        var xhr = new XMLHttpRequest();
        xhr.open('POST', phpfile, true);
        xhr.onload = function () {
          var data = JSON.parse(this.response);
          store.state.adm_tipos = data[0];
          store.state.adm_clases = data[1];
          store.state.layout_visible = 'layout_tipologias';
          cargando_algo.close();
        };
        xhr.send(fd);
      }
    }
    else
    {
      this.$buefy.toast.open({duration: 5000, message: 'Para modificar tipologias es necesario contar con privilegios de ADMINISTRADOR'});
    }
  },
  abro_proyectos: function(){
    //store.state.layout_visible = 'layout_administracion';
    if (store.state.datos_login.nivel_acceso > 19) 
    {
              const cargando_algo = this.$buefy.loading.open({ containter: null });
              app.chequeo_conexion();
              if (store.state.hayconexion == true) { // si hay conexion........................................................................
                //consulto base de datos
                var fd = new FormData();
                var getUrl = window.location;
                var baseUrl = getUrl.protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
                var phpfile = baseUrl + '/php/cargo_datos_administrativos.php';
                var xhr = new XMLHttpRequest();
                xhr.open('POST', phpfile, true);
                xhr.onload = function () {
                  var data = JSON.parse(this.response);
                  store.state.adm_contratos = data[2];
                  store.state.adm_proyectos = data[3];
                  store.state.layout_visible = 'layout_proyectos';
                  cargando_algo.close();
                };
                xhr.send(fd);
              }
    }
    else
    {
      this.$buefy.toast.open({duration: 5000, message: 'Para modificar proyectos es necesario contar con privilegios de ADMINISTRADOR'});
    }
  },
  abro_planos: function(){
    //store.state.layout_visible = 'layout_administracion';
    if (store.state.datos_login.nivel_acceso > 19) 
    {
              const cargando_algo = this.$buefy.loading.open({ containter: null });
              app.chequeo_conexion();
              if (store.state.hayconexion == true) { // si hay conexion........................................................................
                //consulto base de datos
                var fd = new FormData();
                var getUrl = window.location;
                var baseUrl = getUrl.protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
                var phpfile = baseUrl + '/php/cargo_datos_planos.php';
                var xhr = new XMLHttpRequest();
                xhr.open('POST', phpfile, true);
                xhr.onload = function () {
                  var data = JSON.parse(this.response);
                  store.state.adm_planos = data;
                  store.state.layout_visible = 'layout_planos';
                  cargando_algo.close();
                };
                xhr.send(fd);
              }
    }
    else
    {
      this.$buefy.toast.open({duration: 5000, message: 'Para modificar planos es necesario contar con privilegios de ADMINISTRADOR'});
    }
  },
  abro_indicadores: function(){
      //this.$buefy.toast.open({duration: 5000, message: 'Módulo de Indicadores en desarrollo'});
      store.state.layout_visible = 'layout_indicadores';
  },
  abro_administracion: function(){
        //store.state.layout_visible = 'layout_administracion';
        if (store.state.datos_login.nivel_acceso > 19) 
        {
            store.state.modal_visible = 'Modal_Administracion';
        }
        else
        {
          this.$buefy.toast.open({duration: 5000, message: 'Para modificar datos administrativos es necesario contar con privilegios de ADMINISTRADOR'});
        }
  },
  abro_usuarios: function(){
      //store.state.layout_visible = 'layout_administracion';
      if (store.state.datos_login.nivel_acceso > 19) 
      {
          store.state.layout_visible = 'layout_usuarios';
      }
      else
      {
        this.$buefy.toast.open({duration: 5000, message: 'Para modificar usuarios es necesario contar con privilegios de ADMINISTRADOR'});
      }
  },
  abro_exportacion: function(){
    if (store.state.datos_login.nivel_acceso > 19) 
    {
      store.state.modal_visible = 'Modal_Administracion_Exportacion';
    }
    else
    {
      this.$buefy.toast.open({duration: 5000, message: 'Para exportar datos es necesario contar con privilegios de ADMINISTRADOR'});
    }
  },
  exporto_tramos(){
    var padre = this;
      app.chequeo_conexion();
      if (store.state.hayconexion == true) {
                        var mensaje_espera = this.$buefy.toast.open({indefinite:true, message: 'Generando shapefile.....'});
                        const cargando_algo =  this.$buefy.loading.open({containter: null});
                        var fd = new FormData();
                        var getUrl = window.location;
                        var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
                        var phpfile = baseUrl + '/php/bajar_shape_tramos_todos.php';
                        var xhr = new XMLHttpRequest();	
                        xhr.open('POST',phpfile,true);
                        xhr.onload = function() {
                          cargando_algo.close();
                          mensaje_espera.close();
                          data = this.response;
                          if (data != '')
                          { 
                             var fecha_nom_archivo = "Tramos_Shp" + app.obtengo_fecha2(new Date()) + ".zip";
                             app.bajar_archivo('https://' + data, fecha_nom_archivo);
                             store.state.modal_visible = 'Modal_Administracion';
                          }

                          };
                        xhr.send(fd);
        }
        else
        {
          this.$buefy.toast.open('No es posible generar shapefile por falta de conexión. Intente nuevamente'); 
        }
  },
  exporto_psingulares(){
    var padre = this;
      app.chequeo_conexion();
      if (store.state.hayconexion == true) {
                        var mensaje_espera = this.$buefy.toast.open({indefinite:true, message: 'Generando shapefile.....'});
                        const cargando_algo =  this.$buefy.loading.open({containter: null});
                        var fd = new FormData();
                        var getUrl = window.location;
                        var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
                        var phpfile = baseUrl + '/php/bajar_shape_psingulares_todos.php';
                        var xhr = new XMLHttpRequest();	
                        xhr.open('POST',phpfile,true);
                        xhr.onload = function() {
                          cargando_algo.close();
                          mensaje_espera.close();
                          data = this.response;
                          if (data != '')
                          { 
                             var fecha_nom_archivo = "Psingulares_Shp" + app.obtengo_fecha2(new Date()) + ".zip";
                             app.bajar_archivo('https://' + data, fecha_nom_archivo);
                             store.state.modal_visible = 'Modal_Administracion';
                          }

                          };
                        xhr.send(fd);
        }
        else
        {
          this.$buefy.toast.open('No es posible generar shapefile por falta de conexión. Intente nuevamente'); 
        }
  },
  exporto_captaciones(){
    var padre = this;
      app.chequeo_conexion();
      if (store.state.hayconexion == true) {
                        var mensaje_espera = this.$buefy.toast.open({indefinite:true, message: 'Generando shapefile.....'});
                        const cargando_algo =  this.$buefy.loading.open({containter: null});
                        var fd = new FormData();
                        var getUrl = window.location;
                        var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
                        var phpfile = baseUrl + '/php/bajar_shape_captaciones_todos.php';
                        var xhr = new XMLHttpRequest();	
                        xhr.open('POST',phpfile,true);
                        xhr.onload = function() {
                          cargando_algo.close();
                          mensaje_espera.close();
                          data = this.response;
                          if (data != '')
                          { 
                             var fecha_nom_archivo = "Captaciones_Shp" + app.obtengo_fecha2(new Date()) + ".zip";
                             app.bajar_archivo('https://' + data, fecha_nom_archivo);
                             store.state.modal_visible = 'Modal_Administracion';
                          }

                          };
                        xhr.send(fd);
        }
        else
        {
          this.$buefy.toast.open('No es posible generar shapefile por falta de conexión. Intente nuevamente'); 
        }
  },
  exporto_conex_capta(){
    var padre = this;
      app.chequeo_conexion();
      if (store.state.hayconexion == true) {
                        var mensaje_espera = this.$buefy.toast.open({indefinite:true, message: 'Generando shapefile.....'});
                        const cargando_algo =  this.$buefy.loading.open({containter: null});
                        var fd = new FormData();
                        var getUrl = window.location;
                        var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
                        var phpfile = baseUrl + '/php/bajar_shape_conex_capta_todos.php';
                        var xhr = new XMLHttpRequest();	
                        xhr.open('POST',phpfile,true);
                        xhr.onload = function() {
                          cargando_algo.close();
                          mensaje_espera.close();
                          data = this.response;
                          if (data != '')
                          { 
                             var fecha_nom_archivo = "Conex_Capta_Shp" + app.obtengo_fecha2(new Date()) + ".zip";
                             app.bajar_archivo('https://' + data, fecha_nom_archivo);
                             store.state.modal_visible = 'Modal_Administracion';
                          }

                          };
                        xhr.send(fd);
        }
        else
        {
          this.$buefy.toast.open('No es posible generar shapefile por falta de conexión. Intente nuevamente'); 
        }
  },
  abro_importacion: function(){
    if (store.state.datos_login.nivel_acceso > 19) 
    {







    }
    else
    {
      this.$buefy.toast.open({duration: 5000, message: 'Para importar datos es necesario contar con privilegios de ADMINISTRADOR'});
    }
  },
  exportar_log: function(){
    var padre = this;
    app.chequeo_conexion();
    if (store.state.hayconexion == true) { // si hay conexion........................................................................
      //consulto base de datos
      var fd = new FormData();
      var getUrl = window.location;
      var baseUrl = getUrl.protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
      var phpfile = baseUrl + '/php/cargo_datos_log2.php';
      var xhr = new XMLHttpRequest();
      xhr.open('POST', phpfile, true);
      xhr.onload = function () {
        var data = JSON.parse(this.response);
        store.state.datos_log = data;
        var mensaje_espera = padre.$buefy.toast.open({indefinite:true, message: 'Generando excel......'});
        const cargando_algo =  padre.$buefy.loading.open({containter: null});
        app.genero_reporte_excel_log().then(v=>{
        mensaje_espera.close();
        cargando_algo.close();    
        });
      };
      xhr.send(fd);
    }
    else {
      this.$buefy.toast.open('No hay conectividad para traer los datos. Espere conexión e intente nuevamente');
    }
  }


}
	
})