DataObjects/Core_domain.php
[Pman.Core] / DataObjects / ProjectDirectory.php
index 6930160..4342af7 100644 (file)
@@ -1,6 +1,9 @@
 <?php
 /**
  * Table Definition for ProjectDirectory
+ *
+ * Note - projectdirectory is linked to this - due to an issue with postgres - we should keep to lowercase names only for tables..
+ * 
  */
 require_once 'DB/DataObject.php';
 
@@ -68,19 +71,22 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject
      */
     function projects($au)
     {
-        $c = clone ($this);
         if (empty($au)) {
             $p = DB_DataObject::Factory('Projects');
             $p->get('code',  '*PUBLIC');
             return array($p->id);          
             
         } 
+        $c = clone ($this);
         
         if (is_array($au)) {
             $c->whereAddIn('person_id', $au, 'int');
         } else {
             $c->person_id = $au->id;
         }
+        $c->selectAdd();
+        // people may have multiple roles for a project..
+        $c->selectAdd("distinct({$this->tableName()}.project_id) as project_id");
         return $c->fetchAll('project_id');
     }
         /**
@@ -91,11 +97,15 @@ class Pman_Core_DataObjects_ProjectDirectory extends DB_DataObject
     function people($pr)
     {
         $c = clone ($this);
+        //echo '<PRE>';print_R($this);exit;
+        
         if (is_array($pr)) {
-            $c->whereAddIn('project_id', $pr, 'int');
+            $c->whereAddIn("{$this->tableName()}.project_id", $pr, 'int');
         } else {
             $c->project_id = $pr->id;
         }
+        $c->selectAdd();
+        $c->selectAdd("{$this->tableName()}.person_id as person_id");
         return $c->fetchAll('person_id');