belongs_to(Direccion::class, 'direccion')->findOne(); } public function nombreCompleto($ap = false) { $str = ''; if ($ap) { $str = $this->apellido_paterno . ' ' . $this->apellido_materno . ', ' . $this->nombres; } else { $str = $this->nombres . ' ' . $this->apellido_paterno . ' ' . $this->apellido_materno; } return $str; } public function representante() { $r = $this->belongsTo(Propietario::class, 'representante', 'rut'); if ($r) { return $r->findOne(); } return null; } public function ventas() { return $this->hasMany(Venta::class, 'propietario', 'rut') ->select('venta.*') ->join('propiedad', ['propiedad.id', '=', 'venta.propiedad']) ->join('unidad', ['unidad.id', '=', 'propiedad.unidad_principal']) ->join('proyecto', ['proyecto.id', '=', 'unidad.proyecto']) ->orderByAsc('proyecto.descripcion') ->orderByExpr("LPAD(unidad.descripcion, 4, '0')") ->findMany(); } public function rut() { return format('rut', $this->rut) . '-' . $this->dv; } } ?>