belongs_to(Unidad::class, 'unidad_principal')->findOne(); $unidad->setContainer($this->container); return $unidad; } protected $unidades; public function unidades() { if ($this->unidades == null) { $this->unidades = $this->hasMany(PropiedadUnidad::class, 'propiedad')->findMany(); } return $this->unidades; } protected $departamentos; public function departamentos() { if ($this->departamentos == null) { $this->departamentos = array_map(function($item) { return $item->unidad(); }, array_filter($this->unidades(), function($item) { return ($item->unidad()->tipo()->descripcion == 'departamento'); })); } return $this->departamentos; } public function estacionamientos($mod = null) { if ($this->estacionamientos_arr == null) { if (($unidades = $this->unidades()) !== false) { $estacionamientos = array_filter($unidades, function($item) { return ($item->unidad()->tipo()->descripcion == 'estacionamiento'); }); $this->estacionamientos_arr = array_map(function($item) { return $item->unidad(); }, $estacionamientos); } else { $ests = explode(';', $this->estacionamientos); $estacionamientos = []; foreach ($ests as $e) { $estacionamiento = \Model::factory(Unidad::class)->findOne($e); if ($estacionamiento) { $estacionamientos []= $estacionamiento; } } $this->estacionamientos_arr = $estacionamientos; } } if ($mod != null) { switch ($mod) { case 'array': $result = []; foreach ($this->estacionamientos_arr as $est) { $result []= $est->descripcion; } return $result; } } return $this->estacionamientos_arr; } public function bodegas($mod = null) { if ($this->bodegas_arr == null) { if (($unidades = $this->unidades()) !== false) { $bodegas = array_filter($unidades, function($item) { return ($item->unidad()->tipo()->descripcion == 'bodega'); }); $this->bodegas_arr = array_map(function($item) { return $item->unidad(); }, $bodegas); } else { $bods = explode(';', $this->bodegas); $bodegas = []; foreach ($bods as $b) { $bodega = \Model::factory(Unidad::class)->findOne($b); if ($bodega) { $bodegas []= $bodega; } } $this->bodegas_arr = $bodegas; } } if ($mod != null) { switch ($mod) { case 'array': $result = []; foreach ($this->bodegas_arr as $bod) { $result []= $bod->descripcion; } return $result; } } return $this->bodegas_arr; } public function venta() { return $this->has_one(Venta::class, 'propiedad')->findOne(); } } ?>