joenilson /
residentes
| 1 | <?php |
||
| 2 | /* |
||
| 3 | * Copyright (C) 2016 Joe Nilson <joenilson at gmail.com> |
||
| 4 | * |
||
| 5 | * This program is free software: you can redistribute it and/or modify |
||
| 6 | * it under the terms of the GNU Lesser General Public License as published by |
||
| 7 | * the Free Software Foundation, either version 3 of the License, or |
||
| 8 | * (at your option) any later version. |
||
| 9 | * |
||
| 10 | * This program is distributed in the hope that it will be useful, |
||
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
| 13 | * GNU Lesser General Public License for more details. |
||
| 14 | * |
||
| 15 | * You should have received a copy of the GNU Lesser General Public License |
||
| 16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
||
| 17 | */ |
||
| 18 | require_once 'plugins/residentes/extras/residentes_controller.php'; |
||
| 19 | /** |
||
| 20 | * Description of edificaciones |
||
| 21 | * |
||
| 22 | * @author Joe Nilson <joenilson at gmail.com> |
||
| 23 | */ |
||
| 24 | class edificaciones extends residentes_controller |
||
| 25 | { |
||
| 26 | public $edificaciones; |
||
| 27 | public $edificaciones_tipo; |
||
| 28 | public $edificaciones_mapa; |
||
| 29 | public $allow_delete; |
||
| 30 | public $nombre_edificacion; |
||
| 31 | public $residentes_setup; |
||
| 32 | public $mapa; |
||
| 33 | public $padre_interior; |
||
| 34 | public $padre_inmuebles; |
||
| 35 | public $lista_interior; |
||
| 36 | public $lista_inmuebles; |
||
| 37 | public function __construct() |
||
| 38 | { |
||
| 39 | parent::__construct(__CLASS__, 'Edificaciones', 'residentes', false, true, false); |
||
| 40 | } |
||
| 41 | |||
| 42 | protected function private_core() |
||
| 43 | { |
||
| 44 | parent::private_core(); |
||
| 45 | $this->shared_extensions(); |
||
| 46 | $this->init(); |
||
| 47 | |||
| 48 | $tipos = $this->edificaciones_tipo->all(); |
||
| 49 | $this->padre = $tipos[0]; |
||
|
0 ignored issues
–
show
Bug
Best Practice
introduced
by
Loading history...
|
|||
| 50 | $accion = $this->filter_request('accion'); |
||
| 51 | $this->verificar_accion($accion); |
||
| 52 | |||
| 53 | $tipo = \filter_input(INPUT_GET, 'type'); |
||
| 54 | if ($tipo === 'select-hijos') { |
||
| 55 | $this->obtener_hijos(); |
||
| 56 | } elseif ($tipo === 'select-iddireccion') { |
||
| 57 | $this->mostrar_direcciones_residente(\filter_input(INPUT_GET, 'codcliente')); |
||
| 58 | } |
||
| 59 | |||
| 60 | $this->fsvar = new fs_var(); |
||
|
0 ignored issues
–
show
The type
fs_var was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths Loading history...
|
|||
| 61 | //Aqui almacenamos las variables del plugin |
||
| 62 | $this->residentes_setup = $this->fsvar->array_get( |
||
| 63 | array( |
||
| 64 | 'residentes_nombre_edificacion' => 'Inmueble', |
||
| 65 | ), |
||
| 66 | false |
||
| 67 | ); |
||
| 68 | |||
| 69 | $this->nombre_edificacion = $this->residentes_setup['residentes_nombre_edificacion']; |
||
| 70 | |||
| 71 | if (isset($_REQUEST['busqueda'])) { |
||
| 72 | if ($_REQUEST['busqueda'] === 'arbol_tipo_edificaciones') { |
||
| 73 | $this->buscar_tipo_edificaciones(); |
||
| 74 | } |
||
| 75 | } |
||
| 76 | $interior = \filter_input(INPUT_GET, 'interior'); |
||
| 77 | if ($interior) { |
||
| 78 | $this->padre_interior = $this->edificaciones_mapa->get($interior); |
||
| 79 | $this->lista_interior = $this->edificaciones_mapa->get_by_field('padre_id', $interior); |
||
| 80 | } |
||
| 81 | $inmuebles = \filter_input(INPUT_GET, 'inmuebles'); |
||
| 82 | if ($inmuebles) { |
||
| 83 | $this->padre_inmuebles = $this->edificaciones_mapa->get($inmuebles); |
||
| 84 | $this->lista_inmuebles = $this->edificaciones->get_by_field('id_edificacion', $inmuebles); |
||
| 85 | } |
||
| 86 | |||
| 87 | if (\filter_input(INPUT_GET, 'buscar_cliente')) { |
||
| 88 | $this->buscar_cliente(); |
||
| 89 | } |
||
| 90 | |||
| 91 | $this->mapa = $this->edificaciones_mapa->get_by_field('id_tipo', $this->padre->id); |
||
| 92 | } |
||
| 93 | |||
| 94 | public function init() |
||
| 95 | { |
||
| 96 | $this->allow_delete = ($this->user->admin)?TRUE:$this->user->allow_delete_on(__CLASS__); |
||
| 97 | $this->edificaciones_tipo = new residentes_edificaciones_tipo(); |
||
| 98 | $this->edificaciones_mapa = new residentes_edificaciones_mapa(); |
||
| 99 | $this->edificaciones = new residentes_edificaciones(); |
||
| 100 | } |
||
| 101 | |||
| 102 | public function verificar_accion($accion) |
||
| 103 | { |
||
| 104 | switch ($accion) { |
||
| 105 | case "agregar": |
||
| 106 | $this->tratar_edificaciones(); |
||
| 107 | break; |
||
| 108 | case "eliminar": |
||
| 109 | $this->eliminar(); |
||
| 110 | break; |
||
| 111 | case "desocupar": |
||
| 112 | $this->desocupar(); |
||
| 113 | break; |
||
| 114 | case "agregar_inmueble": |
||
| 115 | $this->agregar_inmueble(); |
||
| 116 | break; |
||
| 117 | case "agregar_residente": |
||
| 118 | $this->agregar_residente(); |
||
| 119 | break; |
||
| 120 | case "agregar_hijo": |
||
| 121 | $objeto = $this->edificaciones_tipo->get(\filter_input(INPUT_POST, 'id_hijo')); |
||
| 122 | $this->agregar($objeto); |
||
| 123 | break; |
||
| 124 | case "tratar_tipo": |
||
| 125 | $this->tratar_tipo_edificaciones(); |
||
| 126 | break; |
||
| 127 | case "cambiar_datos": |
||
| 128 | $nombre = filter_input(INPUT_POST, 'nombre_edificacion'); |
||
| 129 | $residentes_config = array('residentes_nombre_edificacion' => trim($nombre)); |
||
| 130 | $this->fsvar->array_save($residentes_config); |
||
| 131 | break; |
||
| 132 | default: |
||
| 133 | break; |
||
| 134 | } |
||
| 135 | } |
||
| 136 | |||
| 137 | public function url() |
||
| 138 | { |
||
| 139 | $interior = \filter_input(INPUT_GET, 'interior'); |
||
| 140 | $inmuebles = \filter_input(INPUT_GET, 'inmuebles'); |
||
| 141 | if ($interior) { |
||
| 142 | return 'index.php?page='.__CLASS__.'&interior='.$interior; |
||
| 143 | } elseif ($inmuebles) { |
||
| 144 | return 'index.php?page='.__CLASS__.'&inmuebles='.$inmuebles; |
||
| 145 | } else { |
||
| 146 | return 'index.php?page='.__CLASS__; |
||
| 147 | } |
||
| 148 | } |
||
| 149 | |||
| 150 | public function parent_url() |
||
| 151 | { |
||
| 152 | return 'index.php?page='.__CLASS__; |
||
| 153 | } |
||
| 154 | |||
| 155 | public function desocupar() |
||
| 156 | { |
||
| 157 | $id = \filter_input(INPUT_GET, 'id'); |
||
| 158 | $edificacion = $this->edificaciones->get($id); |
||
| 159 | if ($edificacion->ocupado) { |
||
| 160 | $edificacion->ocupado = false; |
||
| 161 | $edificacion->iddireccion = 0; |
||
| 162 | $edificacion->codcliente = ''; |
||
| 163 | $edificacion->fecha_disponibilidad = null; |
||
| 164 | $edificacion->fecha_ocupacion = null; |
||
| 165 | try{ |
||
| 166 | $edificacion->save(); |
||
| 167 | $this->new_message('Inmueble desocupado exitosamente.'); |
||
| 168 | } catch (Exception $ex) { |
||
| 169 | $this->new_error_msg('Ocurrio un error al intentar desocupar el inmueble, intentelo nuevamente.'); |
||
| 170 | $this->new_error_msg($ex->getTraceAsString()); |
||
| 171 | } |
||
| 172 | } |
||
| 173 | } |
||
| 174 | |||
| 175 | public function eliminar() |
||
| 176 | { |
||
| 177 | $id = \filter_input(INPUT_GET, 'id'); |
||
| 178 | $edificacion = $this->edificaciones->get($id); |
||
| 179 | if ($edificacion->ocupado) { |
||
| 180 | $this->new_error_msg('Esta edificacion tiene un residente, '. |
||
| 181 | 'primero debe quitar al residente para proceder '. |
||
| 182 | 'a eliminar esta edificacion.'); |
||
| 183 | } else { |
||
| 184 | try { |
||
| 185 | $edificacion->delete(); |
||
| 186 | $this->new_message('Edificación eliminada correctamente.'); |
||
| 187 | } catch (\Exception $ex) { |
||
| 188 | $this->new_error_msg('Ocurrió un error intentando eliminar la edificación'); |
||
| 189 | $this->new_error_msg($ex->getTraceAsString()); |
||
| 190 | } |
||
| 191 | } |
||
| 192 | } |
||
| 193 | |||
| 194 | private function buscar_cliente() |
||
| 195 | { |
||
| 196 | /// desactivamos la plantilla HTML |
||
| 197 | $this->template = false; |
||
| 198 | |||
| 199 | $cliente = new cliente(); |
||
| 200 | $json = array(); |
||
| 201 | foreach ($cliente->search(\filter_input(INPUT_GET, 'buscar_cliente')) as $cli) { |
||
| 202 | $json[] = array('value' => $cli->razonsocial, 'data' => $cli->codcliente); |
||
| 203 | } |
||
| 204 | |||
| 205 | header('Content-Type: application/json'); |
||
| 206 | echo \json_encode(array( |
||
| 207 | 'query' => \filter_input(INPUT_GET, 'buscar_cliente'), |
||
| 208 | 'suggestions' => $json), JSON_THROW_ON_ERROR); |
||
| 209 | } |
||
| 210 | |||
| 211 | public function buscar_padre($id, &$codigo, &$unir = false) |
||
| 212 | { |
||
| 213 | $dato = $this->edificaciones_mapa->get($id); |
||
| 214 | $codigo[] = ($unir)?'"'.$dato->id_tipo.'":"'.$dato->codigo_edificacion.'"':$dato->codigo_edificacion; |
||
| 215 | if ($dato->padre_id === 0) { |
||
| 216 | return $codigo; |
||
| 217 | } else { |
||
| 218 | $this->buscar_padre($dato->padre_id, $codigo, $unir); |
||
| 219 | } |
||
| 220 | } |
||
| 221 | |||
| 222 | public function crear_codigo($id,$unir = false) |
||
| 223 | { |
||
| 224 | $codigo = array(); |
||
| 225 | $this->buscar_padre($id, $codigo, $unir); |
||
| 226 | if ($unir) { |
||
| 227 | $lista = array(); |
||
| 228 | foreach ($codigo as $linea) { |
||
| 229 | array_unshift($lista, $linea); |
||
| 230 | } |
||
| 231 | $codigo = $lista; |
||
| 232 | } else { |
||
| 233 | rsort($codigo); |
||
| 234 | } |
||
| 235 | return $codigo; |
||
| 236 | } |
||
| 237 | |||
| 238 | public function agregar_inmueble() |
||
| 239 | { |
||
| 240 | $inicio = \filter_input(INPUT_POST, 'inicio'); |
||
| 241 | $final_p = \filter_input(INPUT_POST, 'final'); |
||
| 242 | $cantidad = \filter_input(INPUT_POST, 'cantidad'); |
||
| 243 | $incremento = \filter_input(INPUT_POST, 'incremento'); |
||
| 244 | $final=(!empty($final_p))?$final_p:$inicio; |
||
| 245 | $inmuebles = 0; |
||
| 246 | $error = 0; |
||
| 247 | $linea = 0; |
||
| 248 | if ($inicio === $final) { |
||
| 249 | $this->inmueble($inicio, $inmuebles, $error); |
||
| 250 | } else { |
||
| 251 | for ($i = $inicio; $i<=($final); $i++) { |
||
| 252 | if ($linea === $cantidad and $cantidad!=0) { |
||
| 253 | $i = ($i-$cantidad)+$incremento; |
||
| 254 | $linea = 0; |
||
| 255 | } |
||
| 256 | $this->inmueble($i, $inmuebles, $error); |
||
| 257 | $linea++; |
||
| 258 | } |
||
| 259 | } |
||
| 260 | if ($error) { |
||
| 261 | $this->new_error_msg('No puedieron guardarse la informacion de '.$error.' inmuebles, revise su listado.'); |
||
| 262 | } |
||
| 263 | |||
| 264 | if ($inmuebles) { |
||
| 265 | $this->new_message('Se guardaron correctamente '.$inmuebles.' inmuebles.'); |
||
| 266 | } |
||
| 267 | } |
||
| 268 | |||
| 269 | public function inmueble($inicio, &$inmuebles, &$error) |
||
| 270 | { |
||
| 271 | $codigo_mapa = $this->crear_codigo(\filter_input(INPUT_POST, 'id_edificacion')); |
||
| 272 | $codigo_interno = $this->crear_codigo(\filter_input(INPUT_POST, 'id_edificacion'), 1); |
||
| 273 | $codigo = implode("", $codigo_mapa); |
||
| 274 | $codigo_interno = "{".implode(",", $codigo_interno)."}"; |
||
| 275 | $ubicacion = ""; |
||
| 276 | $codcliente = ""; |
||
| 277 | $ocupado = false; |
||
| 278 | $item = (is_int($inicio))?str_pad($inicio, 3, "0", STR_PAD_LEFT):$inicio; |
||
| 279 | $edif0 = new residentes_edificaciones(); |
||
| 280 | $edif0->id = \filter_input(INPUT_POST, 'id'); |
||
| 281 | $edif0->id_edificacion = \filter_input(INPUT_POST, 'id_edificacion'); |
||
| 282 | $edif0->codigo = $codigo; |
||
| 283 | $edif0->codigo_interno = $codigo_interno; |
||
| 284 | $edif0->numero = $item; |
||
| 285 | $edif0->ubicacion = trim($ubicacion); |
||
| 286 | $edif0->codcliente = trim($codcliente); |
||
| 287 | $edif0->ocupado = (bool)$ocupado; |
||
| 288 | try { |
||
| 289 | $edif0->save(); |
||
| 290 | $inmuebles++; |
||
| 291 | } catch (Exception $exc) { |
||
| 292 | $this->new_error_msg($exc->getTraceAsString()); |
||
| 293 | $error++; |
||
| 294 | } |
||
| 295 | } |
||
| 296 | |||
| 297 | public function agregar_residente() |
||
| 298 | { |
||
| 299 | $id_edificacion = \filter_input(INPUT_POST, 'id_edificacion'); |
||
| 300 | $codcliente = \filter_input(INPUT_POST, 'codcliente'); |
||
| 301 | $iddireccion = \filter_input(INPUT_POST, 'iddireccion'); |
||
| 302 | $fecha_ocupacion = \filter_input(INPUT_POST, 'fecha_ocupacion'); |
||
| 303 | $fecha_disponibilidad = \filter_input(INPUT_POST, 'fecha_disponibilidad'); |
||
| 304 | $accion = \filter_input(INPUT_POST, 'accion'); |
||
| 305 | $inmueble = $this->edificaciones->get($id_edificacion); |
||
| 306 | if ($inmueble and $accion === 'agregar_residente') { |
||
| 307 | $inmueble->ocupado = true; |
||
| 308 | $inmueble->codcliente = $codcliente; |
||
| 309 | $descripcion_direccion = $inmueble->codigo_externo().' - Apartamento '.$inmueble->numero; |
||
| 310 | $inmueble->iddireccion = $this->actualizar_direccion_residente( |
||
| 311 | $codcliente, |
||
| 312 | $iddireccion, |
||
| 313 | $descripcion_direccion |
||
| 314 | ); |
||
| 315 | $inmueble->fecha_ocupacion = ($fecha_ocupacion)?\date('Y-m-d', strtotime($fecha_ocupacion)):null; |
||
| 316 | $inmueble->fecha_disponibilidad = ($fecha_disponibilidad) |
||
| 317 | ?\date('Y-m-d', strtotime($fecha_disponibilidad)) |
||
| 318 | :null; |
||
| 319 | if ($inmueble->save()) { |
||
| 320 | $this->new_message('Residente agregado exitosamente.'); |
||
| 321 | } else { |
||
| 322 | $this->new_error_msg('No se pudo agregar al residente confirme el '. |
||
| 323 | 'nombre del residente y las fechs de ocupación y disponibilidad'); |
||
| 324 | } |
||
| 325 | } elseif ($inmueble and $accion === 'quitar_residente') { |
||
| 326 | $inmueble->ocupado = false; |
||
| 327 | $inmueble->codcliente = ''; |
||
| 328 | $inmueble->iddireccion = null; |
||
| 329 | $inmueble->fecha_ocupacion = ''; |
||
| 330 | $inmueble->fecha_disponibilidad = ''; |
||
| 331 | if ($inmueble->save()) { |
||
| 332 | $this->new_message('Residente removido exitosamente.'); |
||
| 333 | } else { |
||
| 334 | $this->new_error_msg('No se pudo remover al residente'); |
||
| 335 | } |
||
| 336 | } |
||
| 337 | } |
||
| 338 | |||
| 339 | public function tratar_edificaciones() |
||
| 340 | { |
||
| 341 | $id = filter_input(INPUT_POST, 'id'); |
||
| 342 | $precodigo = ""; |
||
| 343 | $precodigo_interno = array(); |
||
| 344 | foreach ($this->edificaciones_tipo->all() as $i) { |
||
| 345 | $campo = "campo_".$i->id; |
||
| 346 | $linea = filter_input(INPUT_POST, $campo); |
||
| 347 | $precodigo .= $linea; |
||
| 348 | $precodigo_interno[$i->id]=$linea; |
||
| 349 | } |
||
| 350 | $codigo_p = filter_input(INPUT_POST, 'codigo'); |
||
| 351 | $codigo_interno_p = filter_input(INPUT_POST, 'codigo_interno'); |
||
| 352 | $codigo = ($codigo_p)?$codigo_p:$precodigo; |
||
| 353 | $codigo_interno = ($codigo_interno_p) |
||
| 354 | ?$codigo_interno_p |
||
| 355 | : \json_encode($precodigo_interno, JSON_THROW_ON_ERROR); |
||
| 356 | $numero = filter_input(INPUT_POST, 'numero_edificacion'); |
||
| 357 | $ubicacion = filter_input(INPUT_POST, 'ubicacion'); |
||
| 358 | $codcliente = filter_input(INPUT_POST, 'codcliente'); |
||
| 359 | $ocupado = filter_input(INPUT_POST, 'ocupado'); |
||
| 360 | $delete = filter_input(INPUT_POST, 'delete'); |
||
| 361 | if ($delete) { |
||
| 362 | $item = $this->edificaciones->get($id); |
||
| 363 | if (!$item->ocupado) { |
||
| 364 | try { |
||
| 365 | $item->delete(); |
||
| 366 | $this->new_message('Edificación eliminada con exito.'); |
||
| 367 | } catch (Exception $exc) { |
||
| 368 | $this->new_error_msg('Ocurrió un error al querer eliminar la Edificación. '. |
||
| 369 | $exc->getTraceAsString()); |
||
| 370 | } |
||
| 371 | } else { |
||
| 372 | $this->new_error_msg('¡No se puede eliminar una edificación que está ocupada!'); |
||
| 373 | } |
||
| 374 | } else { |
||
| 375 | $edif0 = new FacturaScripts\model\residentes_edificaciones(); |
||
| 376 | $edif0->id = $id; |
||
| 377 | $edif0->codigo = $codigo; |
||
| 378 | $edif0->codigo_interno = $codigo_interno; |
||
| 379 | $edif0->numero = trim($numero); |
||
| 380 | $edif0->ubicacion = trim($ubicacion); |
||
| 381 | $edif0->codcliente = trim($codcliente); |
||
| 382 | $edif0->ocupado = ($ocupado)?"TRUE":"FALSE"; |
||
|
0 ignored issues
–
show
The property
$ocupado was declared of type boolean, but $ocupado ? 'TRUE' : 'FALSE' is of type string. Maybe add a type cast?
This check looks for assignments to scalar types that may be of the wrong type. To ensure the code behaves as expected, it may be a good idea to add an explicit type cast. $answer = 42;
$correct = false;
$correct = (bool) $answer;
Loading history...
|
|||
| 383 | try { |
||
| 384 | $edif0->save(); |
||
| 385 | $this->new_message('¡Edificación guardada exitosamente!'); |
||
| 386 | } catch (Exception $exc) { |
||
| 387 | $this->new_error_msg('Ocurrió un error intentando guardar la información. '.$exc->getTraceAsString()); |
||
| 388 | } |
||
| 389 | } |
||
| 390 | $this->edificaciones = new residentes_edificaciones(); |
||
| 391 | } |
||
| 392 | |||
| 393 | public function tratar_tipo_edificaciones() |
||
| 394 | { |
||
| 395 | $id = filter_input(INPUT_POST, 'id'); |
||
| 396 | $descripcion = filter_input(INPUT_POST, 'descripcion'); |
||
| 397 | $padre = filter_input(INPUT_POST, 'padre'); |
||
| 398 | $delete = filter_input(INPUT_POST, 'delete'); |
||
| 399 | if ($delete) { |
||
| 400 | $item = $this->edificaciones_tipo->get($delete); |
||
| 401 | if (!$item->hijos()) { |
||
| 402 | try { |
||
| 403 | $item->delete(); |
||
| 404 | $this->new_message('Tipo de edificación eliminada con exito.'); |
||
| 405 | } catch (ErrorException $e) { |
||
| 406 | $this->new_error_msg('Ocurrió un error al querer eliminar el tipo de edificación. '. |
||
| 407 | $e->getTraceAsString()); |
||
| 408 | } |
||
| 409 | } else { |
||
| 410 | $this->new_error_msg('No se puede eliminar un Tipo de edificación que es padre de otros '. |
||
| 411 | 'tipos de edificación.'); |
||
| 412 | } |
||
| 413 | } else { |
||
| 414 | $tipo0 = new residentes_edificaciones_tipo(); |
||
| 415 | $tipo0->id = $id; |
||
| 416 | $tipo0->descripcion = ucfirst(strtolower(trim(htmlspecialchars($descripcion)))); |
||
| 417 | $tipo0->padre = $padre; |
||
| 418 | try { |
||
| 419 | $tipo0->save(); |
||
| 420 | $this->new_message('¡Tipo de edificación guardado exitosamente!'); |
||
| 421 | } catch (Exception $exc) { |
||
| 422 | $this->new_error_msg('Ocurrió un error intentando guardar la información. '.$exc->getTraceAsString()); |
||
| 423 | } |
||
| 424 | } |
||
| 425 | $this->edificaciones_tipo = new residentes_edificaciones_tipo(); |
||
| 426 | } |
||
| 427 | |||
| 428 | public function buscar_tipo_edificaciones() |
||
| 429 | { |
||
| 430 | $estructura = $this->edificaciones_tipo->jerarquia(); |
||
| 431 | $this->template = false; |
||
| 432 | header('Content-Type: application/json'); |
||
| 433 | echo json_encode($estructura, JSON_THROW_ON_ERROR); |
||
| 434 | } |
||
| 435 | |||
| 436 | public function obtener_hijos() |
||
| 437 | { |
||
| 438 | $this->template = false; |
||
| 439 | $id_tipo = \filter_input(INPUT_GET, 'id_tipo'); |
||
| 440 | $hijos = array(); |
||
| 441 | if ($id_tipo) { |
||
| 442 | $hijos = $this->edificaciones_tipo->get_by_field('padre', $id_tipo); |
||
| 443 | } |
||
| 444 | header('Content-Type: application/json'); |
||
| 445 | echo json_encode($hijos, JSON_THROW_ON_ERROR); |
||
| 446 | } |
||
| 447 | |||
| 448 | /** |
||
| 449 | * funcion para guardar los codigos de las edificaciones base Manzana, Zona, Grupo, Edificio, etc |
||
| 450 | */ |
||
| 451 | public function agregar($objeto) |
||
| 452 | { |
||
| 453 | $inicio = \filter_input(INPUT_POST, 'inicio'); |
||
| 454 | $final_p = \filter_input(INPUT_POST, 'final'); |
||
| 455 | $id = \filter_input(INPUT_POST, 'id'); |
||
| 456 | $codigo_padre = \filter_input(INPUT_POST, 'codigo_padre'); |
||
| 457 | $padre_id = \filter_input(INPUT_POST, 'padre_id'); |
||
| 458 | $final=(!empty($final_p))?$final_p:$inicio; |
||
| 459 | $inmuebles = 0; |
||
| 460 | $error = 0; |
||
| 461 | $linea = 0; |
||
| 462 | foreach (range($inicio, $final) as $item) { |
||
| 463 | $item = (is_int($item))?str_pad($item, 3, "0", STR_PAD_LEFT):$item; |
||
| 464 | $punto = new residentes_edificaciones_mapa(); |
||
| 465 | $punto->id = $id; |
||
| 466 | $punto->id_tipo = $objeto->id; |
||
| 467 | $punto->codigo_edificacion = $item; |
||
| 468 | $punto->codigo_padre = $codigo_padre; |
||
| 469 | $punto->padre_tipo = $objeto->padre; |
||
| 470 | $punto->padre_id = $padre_id; |
||
| 471 | $punto->numero = ''; |
||
| 472 | if ($punto->save()) { |
||
| 473 | $inmuebles++; |
||
| 474 | } else { |
||
| 475 | $error++; |
||
| 476 | } |
||
| 477 | $linea++; |
||
| 478 | } |
||
| 479 | if ($error) { |
||
| 480 | $this->new_error_msg('No puedieron guardarse la informacion de '.$error.' inmuebles, revise su listado.'); |
||
| 481 | } |
||
| 482 | $this->new_message('Se guardaron correctamente '.$inmuebles.' inmuebles.'); |
||
| 483 | } |
||
| 484 | |||
| 485 | private function mayusculas($string) |
||
| 486 | { |
||
| 487 | return strtoupper(trim(strip_tags(stripslashes($string)))); |
||
| 488 | } |
||
| 489 | |||
| 490 | private function minusculas($string) |
||
| 491 | { |
||
| 492 | return strtolower(trim(strip_tags(stripslashes($string)))); |
||
| 493 | } |
||
| 494 | |||
| 495 | public function shared_extensions() |
||
| 496 | { |
||
| 497 | $extensiones = array( |
||
| 498 | array( |
||
| 499 | 'name' => 'tipo_edificaciones', |
||
| 500 | 'page_from' => __CLASS__, |
||
| 501 | 'page_to' => __CLASS__, |
||
| 502 | 'type' => 'button', |
||
| 503 | 'text' => '<span class="fa fa-list-ol"></span> Tipo Edificaciones', |
||
| 504 | 'params' => '&tipo_edificaciones=TRUE' |
||
| 505 | ), |
||
| 506 | array( |
||
| 507 | 'name' => 'configurar_residentes_js', |
||
| 508 | 'page_from' => __CLASS__, |
||
| 509 | 'page_to' => __CLASS__, |
||
| 510 | 'type' => 'head', |
||
| 511 | 'text' => '<script src="'.FS_PATH. |
||
|
0 ignored issues
–
show
|
|||
| 512 | 'plugins/residentes/view/js/2/residentes.js" type="text/javascript"></script>', |
||
| 513 | 'params' => '' |
||
| 514 | ), |
||
| 515 | array( |
||
| 516 | 'name' => 'treeview_edificaciones_js', |
||
| 517 | 'page_from' => __CLASS__, |
||
| 518 | 'page_to' => __CLASS__, |
||
| 519 | 'type' => 'head', |
||
| 520 | 'text' => '<script src="'.FS_PATH. |
||
| 521 | 'plugins/residentes/view/js/1/bootstrap-treeview.min.js" type="text/javascript"></script>', |
||
| 522 | 'params' => '' |
||
| 523 | ), |
||
| 524 | array( |
||
| 525 | 'name' => 'treeview_edificaciones_css', |
||
| 526 | 'page_from' => __CLASS__, |
||
| 527 | 'page_to' => __CLASS__, |
||
| 528 | 'type' => 'head', |
||
| 529 | 'text' => '<link rel="stylesheet" type="text/css" media="screen" href="'.FS_PATH. |
||
| 530 | 'plugins/residentes/view/css/bootstrap-treeview.min.css"/>', |
||
| 531 | 'params' => '' |
||
| 532 | ), |
||
| 533 | ); |
||
| 534 | |||
| 535 | foreach ($extensiones as $ext) { |
||
| 536 | $fsext0 = new fs_extension($ext); |
||
| 537 | if (!$fsext0->delete()) { |
||
| 538 | $this->new_error_msg('Imposible eliminar los datos de la extensión ' . $ext['name'] . '.'); |
||
| 539 | } |
||
| 540 | } |
||
| 541 | |||
| 542 | $extensiones2 = array( |
||
| 543 | array( |
||
| 544 | 'name' => '001_edificaciones_js', |
||
| 545 | 'page_from' => __CLASS__, |
||
| 546 | 'page_to' => __CLASS__, |
||
| 547 | 'type' => 'head', |
||
| 548 | 'text' => '<script src="'.FS_PATH. |
||
| 549 | 'plugins/residentes/view/js/1/bootstrap-treeview.min.js" type="text/javascript"></script>', |
||
| 550 | 'params' => '' |
||
| 551 | ), |
||
| 552 | array( |
||
| 553 | 'name' => '002_edificaciones_js', |
||
| 554 | 'page_from' => __CLASS__, |
||
| 555 | 'page_to' => __CLASS__, |
||
| 556 | 'type' => 'head', |
||
| 557 | 'text' => '<script src="'.FS_PATH. |
||
| 558 | 'plugins/residentes/view/js/2/residentes.js" type="text/javascript"></script>', |
||
| 559 | 'params' => '' |
||
| 560 | ), |
||
| 561 | array( |
||
| 562 | 'name' => '003_edificaciones_js', |
||
| 563 | 'page_from' => __CLASS__, |
||
| 564 | 'page_to' => __CLASS__, |
||
| 565 | 'type' => 'head', |
||
| 566 | 'text' => '<link rel="stylesheet" type="text/css" media="screen" href="'.FS_PATH. |
||
| 567 | 'plugins/residentes/view/css/bootstrap-treeview.min.css"/>', |
||
| 568 | 'params' => '' |
||
| 569 | ), |
||
| 570 | ); |
||
| 571 | |||
| 572 | foreach ($extensiones2 as $ext) { |
||
| 573 | $fsext0 = new fs_extension($ext); |
||
| 574 | if (!$fsext0->save()) { |
||
| 575 | $this->new_error_msg('Imposible guardar los datos de la extensión ' . $ext['name'] . '.'); |
||
| 576 | } |
||
| 577 | } |
||
| 578 | } |
||
| 579 | |||
| 580 | /** |
||
| 581 | * Función para devolver el valor de una variable pasada ya sea por POST o GET |
||
| 582 | * @param type string |
||
| 583 | * @return type string |
||
| 584 | */ |
||
| 585 | public function filter_request($nombre) |
||
| 586 | { |
||
| 587 | $nombre_post = \filter_input(INPUT_POST, $nombre); |
||
| 588 | $nombre_get = \filter_input(INPUT_GET, $nombre); |
||
| 589 | return ($nombre_post) ? $nombre_post : $nombre_get; |
||
| 590 | } |
||
| 591 | |||
| 592 | } |
||
| 593 |