lookup for owner
[Pman.Core] / DataObjects / Core_company.php
index ac63449..c9b31ee 100644 (file)
@@ -38,7 +38,7 @@ class Pman_Core_DataObjects_Core_Company extends DB_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
     
-    function applyFilters($q, $au)
+    function applyFilters($q, $au, $roo)
     {
         
         $tn = $this->tableName();
@@ -497,12 +497,38 @@ class Pman_Core_DataObjects_Core_Company extends DB_DataObject
         $companies->insert();
         $companies->onInsert(array(), $roo);
     }
+    
+    function owner()
+    {
+        if (empty($this->owner_id)) {
+            return false;
+        }
+        static $cache = false;
+        if ($cache !== false && isset($cache[$this->owner_id])) {
+            return $cache[$this->owner_id]; 
+        }
+        $o = DB_DataObject::factory('core_company');
+        if (!$o->get($this->owner_id)) {
+            return false;
+        }
+        $cache[$this->owner_id] = $o;
+        return $o;
+        
+    }
+    
+    /// look up the company which is the system owner...
     static function lookupOwner()
     {
+        static $cache = false;
+        if ($cache !== false) {
+            return clone($cache); // no updating this object..
+        }
+        
         $enum = DB_DataObject::Factory('core_enum')->lookup('COMPTYPE', 'OWNER'  );
         $companies = DB_DataObject::factory('core_company');
         $companies->comptype_id = $enum;
         if ($companies->find(true)) {
+            $cache = clone($companies);
             return $companies;
         }
         return false;