/** * Setea la capa * @param int $id_capa * @throws Exception */ public function setCapa($id_capa) { $this->_capa = $this->_capa_model->getById($id_capa); if (is_null($this->_capa)) { throw new Exception(__METHOD__ . " - La capa no existe"); } }
/** * Contenido de tabs */ protected function _htmlTabCapaContent($id_categoria) { $html = "<div class=\"tab-content\">"; $primero = true; $lista_capas = $this->_capa_model->listarCapasPorComunasYCategoria($id_categoria, $this->_comunas); foreach ($lista_capas as $key => $capa) { $class = ""; if ($primero) { $class = "active"; } $html .= "<div role=\"tabpanel\" class=\"tab-pane top-spaced " . $class . "\" id=\"capa_" . $capa["cap_ia_id"] . "\">"; $subcapas = $this->_capa_detalle_model->listarPorCapaComuna($capa["cap_ia_id"], $this->_comunas); $html .= "<div class=\"col-lg-12\">" . $this->_ci->load->view("pages/mapa/grilla-subcapas", array("sufijo" => "comuna", "subcapas" => $subcapas, "id_capa" => $capa["cap_ia_id"]), true) . "</div>"; $html .= "</div>"; $primero = false; } $html .= "</div>"; return $html; }
/** * */ public function ajax_elemento() { $this->load->helper(array("modulo/capa/capa")); $json = array(); header('Content-type: application/json'); $data = array("correcto" => false, "error" => ""); $params = $this->input->post(null, true); $elemento = $this->_capa_detalle_elemento_model->getById($params["id"]); if (!is_null($elemento)) { $subcapa = $this->_capa_detalle_model->getById($elemento->poligono_capitem); $capa = $this->_capa_model->getById($subcapa->geometria_capa); if ($subcapa->geometria_icono != "") { $icono = base_url($subcapa->geometria_icono); } else { $icono = base_url($capa->icon_path); } $json = array("id" => $elemento->poligono_id, "id_subcapa" => $elemento->poligono_capitem, "propiedades" => unserialize($elemento->poligono_propiedades), "geojson" => unserialize($elemento->poligono_geometria), "zona" => $capa->cap_c_geozone_number . $capa->cap_c_geozone_letter, "color" => $capa->color, "icono" => $icono); } $data["correcto"] = true; $data["resultado"] = $json; echo json_encode($data); }
public function ajax_grilla_items_subcapas_server() { $this->load->database(); $params = $this->uri->uri_to_assoc(); $subcapa = $params['subcapa']; $this->load->model('capa_model', 'capa_model'); $sub_capa = $this->capa_model->getSubCapa($subcapa); $id_usuario_capa = $sub_capa['cap_ia_usuario']; $id_usuario = $this->session->userdata('session_idUsuario'); $arr_cabeceras = explode(",", $sub_capa['cap_c_propiedades']); $aColumns = array('com_c_nombre', 'prov_c_nombre', 'reg_c_nombre', 'poligono_propiedades', 'poligono_id'); // DB table to use $sTable = 'capas_poligonos_informacion'; // $iDisplayStart = $this->input->get_post('iDisplayStart', true); $iDisplayLength = $this->input->get_post('iDisplayLength', true); $iSortCol_0 = $this->input->get_post('iSortCol_0', true); $iSortingCols = $this->input->get_post('iSortingCols', true); $sSearch = $this->input->get_post('sSearch', true); $sEcho = $this->input->get_post('sEcho', true); $where = ' WHERE poligono_capitem = ' . $subcapa; $limit = ''; // Paging if (isset($iDisplayStart) && $iDisplayLength != '-1') { $limit .= ' LIMIT ' . $iDisplayStart . ',' . $iDisplayLength; //$this->db->limit($this->db->escape_str($iDisplayLength), $this->db->escape_str($iDisplayStart)); } // Ordering $order = ''; if (isset($iSortCol_0)) { for ($i = 0; $i < intval($iSortingCols); $i++) { $iSortCol = $this->input->get_post('iSortCol_' . $i, true); $bSortable = $this->input->get_post('bSortable_' . intval($iSortCol), true); $sSortDir = $this->input->get_post('sSortDir_' . $i, true); if ($bSortable == 'true') { if (empty($order)) { $order .= ' ORDER BY '; } $order .= $aColumns[intval($this->db->escape_str($iSortCol))] . ' ' . $sSortDir; //$this->db->order_by($aColumns[intval($this->db->escape_str($iSortCol))], $this->db->escape_str($sSortDir)); } } } /* * Filtering * NOTE this does not match the built-in DataTables filtering which does it * word by word on any field. It's possible to do here, but concerned about efficiency * on very large tables, and MySQL's regex functionality is very limited */ if (isset($sSearch) && !empty($sSearch)) { $like = ''; for ($i = 0; $i < count($aColumns); $i++) { $bSearchable = $this->input->get_post('bSearchable_' . $i, true); // Individual column filtering if (isset($bSearchable) && $bSearchable == 'true') { if (!empty($like)) { $like .= ' OR '; } $like .= $aColumns[$i] . ' LIKE "%' . $sSearch . '%"'; //$this->db->or_like($aColumns[$i], $this->db->escape_like_str($sSearch)); } } $where .= ' AND (' . $like . ') '; } $query = 'select SQL_CALC_FOUND_ROWS ' . str_replace(' , ', ' ', implode(', ', $aColumns)) . ' from ' . $sTable . ' '; $query .= 'LEFT JOIN comunas c ON c.com_ia_id = capas_poligonos_informacion.poligono_comuna LEFT JOIN provincias p ON (p.prov_ia_id = c.prov_ia_id or p.prov_ia_id = capas_poligonos_informacion.poligono_provincia) LEFT JOIN regiones r ON (r.reg_ia_id = p.reg_ia_id or r.reg_ia_id = capas_poligonos_informacion.poligono_region) '; $this->load->model('rol_model', 'rolModel'); $puedeEditar = false; if ($this->usuario->tieneRol(27) or $id_usuario == $id_usuario_capa) { $puedeEditar = true; } if (!$puedeEditar) { $regiones = $this->session->userdata('session_regiones'); $arr_regionesUsuarios = explode(',', $regiones); $arr_provinciasUsuario = array(); $arr_comunasUsuario = array(); $this->load->model('provincia_model'); $this->load->model('comuna_model'); foreach ($arr_regionesUsuarios as $id_region) { $provinciasRegion = $this->provincia_model->listaProvinciasPorRegion($id_region); foreach ($provinciasRegion as $prov) { $arr_provinciasUsuario[] = $prov['prov_ia_id']; $comunasProvincia = $this->comuna_model->getComunasPorProvincia($prov['prov_ia_id']); foreach ($comunasProvincia as $com) { $arr_comunasUsuario[] = $com->com_ia_id; } } } $provincias = implode(",", $arr_provinciasUsuario); $comunas = implode(",", $arr_comunasUsuario); $where .= ' and ((r.reg_ia_id IN (' . $regiones . ') or poligono_region IN (' . $regiones . ')) or (p.prov_ia_id IN (' . $provincias . ') or poligono_provincia IN (' . $provincias . ')) or (c.com_ia_id IN (' . $comunas . ') or poligono_comuna IN (' . $comunas . ')))'; } $query = $query . $where . $order . $limit; /*$this->db->where('poligono_capitem',$subcapa); $this->db->join('comunas c','c.com_ia_id = capas_poligonos_informacion.poligono_comuna','inner'); $this->db->join('provincias p','p.prov_ia_id = c.prov_ia_id','inner'); $this->db->join('regiones r','r.reg_ia_id = p.reg_ia_id','inner');*/ // Select Data //$this->db->select('SQL_CALC_FOUND_ROWS '.str_replace(' , ', ' ', implode(', ', $aColumns)), false); //$rResult = $this->db->get($sTable); $rResult = $this->db->query($query); // Data set length after filtering $foundRows = $this->db->query('select FOUND_ROWS() AS found_rows'); $foundRows = $foundRows->result_array(); $iFilteredTotal = $foundRows[0]['found_rows']; // Total data set length //$iTotal = $this->db->count_all($sTable);ex // Output $output = array('sEcho' => intval($sEcho), 'iTotalRecords' => $iFilteredTotal, 'iTotalDisplayRecords' => $iFilteredTotal, 'aaData' => array()); foreach ($rResult->result_array() as $aRow) { $row = array(); foreach ($aColumns as $col) { if ($col == 'poligono_propiedades') { $arr_propiedades = array(); $propiedades = unserialize($aRow['poligono_propiedades']); foreach ($arr_cabeceras as $cabecera) { $row[] = $propiedades[$cabecera]; } } elseif ($col == 'poligono_id') { $buttons = '<div class="btn-group-vertical">'; if (permisoCapas("editar")) { $buttons .= '<a class="btn btn-xs btn-default btn-square" onclick="$(\'#cargador\').show();Layer.editarItemSubcapa(' . $aRow[$col] . ');$(\'#cargador\').fadeOut();" > <i class="fa fa-edit"></i> </a>'; } if (permisoCapas("eliminar")) { $buttons .= '<a class="btn btn-xs btn-danger btn-square" onclick="Layer.eliminarItemSubcapa(' . $aRow[$col] . ',' . $subcapa . ')"> <i class="fa fa-trash"></i> </a>'; } $buttons .= '</div>'; $row[] = $buttons; } else { $row[] = $aRow[$col]; } } $output['aaData'][] = $row; } echo json_encode($output); }