whereNotEqual('nombre', '')->order_by_asc('nombre')->findMany(); foreach ($bancos as &$banco) { $banco = $banco->as_array('nombre')['nombre']; } return json_encode($bancos); } protected static function buscarBanco() { $q = get('q'); if ($q == null) { $q = get('query'); if ($q == null) { return ''; } } $bancos = \Model::factory(\Incoviba\old\Common\Banco::class)->whereLike('nombre', '%' . $q . '%')->order_by_asc('nombre')->findMany(); foreach ($bancos as &$banco) { $banco = $banco->as_array('nombre')['nombre']; } return json_encode($bancos); } public static function comunas() { $id = post('region'); $comunas = \Model::factory(\Incoviba\old\Common\Comuna::class) ->select('comuna.*') ->join('provincia', ['provincia.id', '=', 'comuna.provincia']) ->where('provincia.region', $id) ->order_by_asc('comuna.descripcion') ->findMany(); foreach ($comunas as &$comuna) { $comuna = $comuna->as_array('id', 'descripcion'); } return json_encode($comunas); } public static function propietario() { $id = post('rut'); $propietario = \Model::factory(\Incoviba\old\Venta\Propietario::class)->where('rut', $id)->findOne(); if ($propietario) { $propietario = $propietario->as_array(); return json_encode($propietario); } return null; } public static function direccion() { $id = post('direccion'); $direccion = \Model::factory(\Incoviba\old\Common\Direccion::class)->findOne($id); $comuna = $direccion->comuna(); $provincia = $comuna->provincia(); $region = $provincia->region(); $direccion = $direccion->as_array(); $direccion['comuna'] = $comuna->as_array(); $direccion['comuna']['provincia'] = $provincia->as_array(); $direccion['comuna']['provincia']['region'] = $region->as_array(); return json_encode($direccion); } public static function tipo_unidades() { $id = post('proyecto'); $proyecto = \Model::factory(\Incoviba\old\Proyecto\Proyecto::class)->findOne($id); $tipos = $proyecto->tipoUnidades(); foreach ($tipos as &$tipo) { $tipo = $tipo->as_array(); } return json_encode($tipos); } public static function unidades() { $id_proyecto = post('proyecto'); $id_tipo = post('tipo'); $proyecto = model(\Incoviba\old\Proyecto\Proyecto::class)->findOne($id_proyecto); $unidades = $proyecto->unidadesDisponibles($id_tipo); foreach ($unidades as &$unidad) { $tipologia = $unidad->tipologia(); $unidad = $unidad->as_array(); $unidad['tipologia'] = $tipologia->as_array(); if ($tipologia->tipologia()) { $unidad['tipologia']['tipologia'] = (array) $tipologia->tipologia(); continue; } $unidad['tipologia']['tipologia'] = ['descripcion' => $tipologia->abreviacion]; } return json_encode($unidades); } public static function unidades_precios() { $proyecto = model(\Incoviba\old\Proyecto\Proyecto::class)->findOne(post('proyecto')); $unidades = $proyecto->unidades(); usort($unidades, function($a, $b) { $t = $a->tipo - $b->tipo; if ($t == 0) { return (int) $a->descripcion - (int) $b->descripcion; } return $t; }); $output = []; foreach ($unidades as $u) { $info = [ 'id' => $u->id, 'abreviacion' => $u->abreviacion, 'descripcion' => $u->descripcion, 'valor' => '--' ]; if ($u->precio()) { $info['valor'] = format('ufs', $u->precio()->valor, null, true); } $output []= $info; } return json_encode($output); } public static function operadores() { $id_proyecto = post('proyecto'); $proyecto = \Model::factory(\Incoviba\old\Proyecto\Proyecto::class)->findOne($id_proyecto); $operadores = $proyecto->operadores(); foreach ($operadores as &$operador) { $operador = [ 'id' => $operador->id, 'abreviacion' => $operador->abreviacion ]; } return json_encode($operadores); } public static function promociones() { $id = post('proyecto'); $proyecto = \Model::factory(\Incoviba\old\Proyecto\Proyecto::class)->findOne($id); $promociones = $proyecto->promociones(); foreach ($promociones as &$promocion) { $promocion = $promocion->as_array(); } return json_encode($promociones); } public static function nombres() { $nss = model(Propietario::class)->select('nombres')->orderByAsc('nombres')->findMany(); $nombres = []; foreach ($nss as $n) { $ns = explode(' ', $n->nombres); foreach ($ns as $nombre) { $nombres []= $nombre; } } $nombres = array_values(array_unique($nombres)); return json_encode($nombres); } public static function apellidos() { $aps = model(Propietario::class)->select('apellido_paterno')->orderByAsc('apellido_paterno')->findMany(); $apellidos = []; foreach ($aps as $ap) { $apellidos []= $ap->apellido_paterno; } $aps = model(Propietario::class)->select('apellido_materno')->orderByAsc('apellido_materno')->findMany(); foreach ($aps as $ap) { $apellidos []= $ap->apellido_paterno; } $apellidos = array_values(array_unique($apellidos)); sort($apellidos); return json_encode($apellidos); } public static function calles() { $results = model(Direccion::class)->select('calle')->orderByAsc('calle')->findMany(); $calles = []; foreach ($results as $result) { $calles []= $result->calle; } $calles = array_values(array_unique($calles)); return json_encode($calles); } public static function inmobiliarias() { $q = post('rut'); $inmobiliaria = model(Inmobiliaria::class)->findOne($q); return json_encode($inmobiliaria->as_array()); } } ?>