DataObjects/ProjectDirectory.php
[Pman.Core] / DataObjects / ProjectDirectory.php
index 4df0092..4df19fd 100644 (file)
@@ -4,7 +4,7 @@
  */
 require_once 'DB/DataObject.php';
 
-class Pman_Documents_DataObjects_ProjectDirectory extends DB_DataObject 
+class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject 
 {
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
@@ -14,8 +14,6 @@ class Pman_Documents_DataObjects_ProjectDirectory extends DB_DataObject
     public $project_id;                      // int(11)  not_null
     public $person_id;                       // int(11)  not_null
     public $ispm;                            // int(11)  not_null
-    public $office_id;                       // int(11)  
-    public $company_id;                      // int(11)  
     public $role;                            // string(16)  not_null
 
     
@@ -23,9 +21,17 @@ class Pman_Documents_DataObjects_ProjectDirectory extends DB_DataObject
     ###END_AUTOCODE
     
     
-    function toEventString() {
+    function person()
+    {
         $p = DB_DataObject::factory('Person');
         $p->get($this->person_id);
+        return $p;
+    }
+    
+    function toEventString() {
+        $p = $this->person();
+        // this is weird... company is in the person.. - effieciency??
+        // for seaching??
         $c = DB_DataObject::factory('Companies');
         $c->get($this->company_id);
         $pr = DB_DataObject::factory('Projects');
@@ -53,10 +59,42 @@ class Pman_Documents_DataObjects_ProjectDirectory extends DB_DataObject
         $this->office_id = $pe->office_id;
         $this->role = $pe->role;
         $this->insert();
+         
+    }
+    /**
+     * project id's for a user.
+     * @param DB_DataObject_Core_Person|array - who, or list of people.
+     * @return array id's of the project they are a member of..
+     */
+    function projects($au)
+    {
+        $c = clone ($this);
+        if (is_array($au)) {
+            $c->whereAddIn('person_id', $au, 'int');
+        } else {
+            $c->person_id = $au->id;
+        }
+        return $c->fetchAll('project_id');
+    }
+        /**
+     * project id's for a user.
+     * @param DB_DataObject_Core_Person - who
+     * @return array id's of the project they are a member of..
+     */
+    function people($pr)
+    {
+        $c = clone ($this);
+        if (is_array($pr)) {
+            $c->whereAddIn('project_id', $pr, 'int');
+        } else {
+            $c->project_id = $pr->id;
+        }
+        return $c->fetchAll('person_id');
         
-        
-        
+         
     }
+    
+    
     function checkPerm($lvl, $au) 
     {
         return $au->hasPerm('Documents.Project_Directory', $lvl);
@@ -67,7 +105,7 @@ class Pman_Documents_DataObjects_ProjectDirectory extends DB_DataObject
         
         if ($this->id && 
             ($this->project_id == $roo->old->project_id) &&
-            ($this->person_id == $roo->old->person_id) &&
+            ($this->person_id  == $roo->old->person_id) &&
             ($this->company_id == $roo->old->company_id) )
         {
             return true;